Manuel PHP

par:
Mehdi Achour
Friedhelm Betz
Antony Dovgal
Nuno Lopes
Hannes Magnusson
Georg Richter
Damien Seguy
Jakub Vrana
Et bien d'autres
2024-04-29
É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-2024 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 macOS
    • 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
    • Les énumérations
    • Erreurs
    • Les exceptions
    • Fibres
    • Generators
    • Attributs
    • Les références
    • Variables prédéfinies
    • Exceptions prédéfinies
    • Interfaces et Classes Prédéfinies
    • Attributs prédéfinis
    • 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
    • Sécurité des Sessions
    • Sécurité des fichiers
    • Sécurité des bases de données
    • Rapport d'erreurs
    • Données transmises par les internautes
    • 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
    • Utilisation des lignes de commande — Utiliser PHP en ligne de commande
    • Ramasse-miettes (Garbage Collection)
    • DTrace Traçage dynamique
  • 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
    • 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
  • 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
    • Hachage de mots de passe — Hachage de mots de passe sûr
    • PHP et HTML
    • PHP et COM
    • Questions diverses
  • Annexes
    • Histoire de PHP
    • Migrating from PHP 8.2.x to PHP 8.3.x
    • Migration de PHP 8.1.x vers PHP 8.2.x
    • Migration de PHP 8.0.x vers PHP 8.1.x
    • Migration de PHP 7.4.x vers PHP 8.0.x
    • Migration de PHP 7.3.x vers PHP 7.4.x
    • Migration de PHP 7.2.x vers PHP 7.3.x
    • Migration de PHP 7.1.x vers PHP 7.2.x
    • Migration de PHP 7.0.x vers 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
    • 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 jetons 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 - 2024 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 » https://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, Stig Bakken, George Peter Banyard, Christoph M. Becker, Daniel Beckham, 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, Yoshinari Takaoka, 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
    • 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 côté 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 souhaitez juste expérimenter la programmation 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, macOS, 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 incluent la création de types de fichiers riches, tels que des images ou des fichiers PDF, le chiffrement de données et l'envoi d'e-mails. Vous pouvez également facilement générer n'importe quel texte, tel que JSON ou XML. PHP peut générer automatiquement ces fichiers et les enregistrer dans le système de fichiers au lieu de les imprimer, formant ainsi un cache côté serveur pour votre contenu dynamique.

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 régulières 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
  • 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 côté temporairement les autres possibilités de PHP. Voir 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 sûr » 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 ayez 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 » 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

<!DOCTYPE html>
<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 sera envoyé à votre navigateur :

<!DOCTYPE html>
<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. Regardez 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.

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).

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/5.0 (Linux) Firefox/112.0

Il y a de nombreux types de variables disponibles en PHP. Dans l'exemple ci-dessus, nous avons affiché un élément d'une variable 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 Firefox, nous pouvons faire cela :

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

<?php
if (str_contains($_SERVER['HTTP_USER_AGENT'], 'Firefox')) {
echo 'Vous utilisez Firefox.';
}
?>

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

Vous utilisez Firefox.

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 str_contains(). str_contains() est une fonction intégrée à PHP, qui détermine la présence d'une chaîne donnée dans une autre. Dans notre cas, nous avons recherché la chaîne "Firefox" dans la chaîne $_SERVER['HTTP_USER_AGENT']. Sinon elle retourne false. Si elle retourne true 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 (str_contains($_SERVER['HTTP_USER_AGENT'], 'Firefox')) {
?>
<h3>str_contains() a retourné true</h3>
<p>Vous utilisez Firefox</p>
<?php
} else {
?>
<h3>str_contains() a retourné false</h3>
<p>Vous n'utilisez pas Firefox</p>
<?php
}
?>

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

<h3>str_contains() a retourné true</h3>
<p>Vous utilisez Firefox</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 str_contains(). En d'autres termes, cela dépend si la chaîne Firefox 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">
   <label>Votre nom :</label>
   <input name="nom" id="nom" type="text" />

   <label>Votre âge :</label>
   <input name="age" id="age" type="number" /></p>

   <button type="submit">Valider</button>
</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.

Mis à 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 nous 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.


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 2.x sur les systèmes Unix
    • Nginx 1.4.x sur les systèmes Unix
    • Lighttpd 1.4 sur les systèmes Unix
    • LiteSpeed Web Server/OpenLiteSpeed Web Server on Unix systems
    • CGI et configuration en ligne de commande
    • Installation sur les systèmes OpenBSD
    • Installation sous Solaris
    • Notes d'installation sous Debian GNU/Linux
  • Installation sur un système macOS
    • Utilisation des paquets
    • Utilisation de PHP embarqué antérieur à macOS Monterey
    • Compiler PHP sur macOS
  • Installation sur les système Windows
    • Configuration requise pour l'installation
    • PECL
    • Outils d'installation de PHP pour Windows
    • Configuration recommandée sur les systèmes Windows
    • Installation manuelle de PHP sous Windows
    • Building from source
    • Command Line PHP on Microsoft Windows
    • Apache 2.x on Microsoft Windows
    • Dépannage de PHP sous Windows
  • Installation sur des plateformes de Cloud Computing
    • Azure App services
    • Amazon EC2
    • DigitalOcean
  • 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 et macOS 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, 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 à » https://www.php.net/downloads.php.


Installation sur les systèmes UNIX

Sommaire

  • 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
  • LiteSpeed Web Server/OpenLiteSpeed Web Server on Unix systems
  • CGI et configuration en ligne de commande
  • 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.59+ (pour PHP >= 7.0.0), 2.64+ (pour PHP >= 7.2.0)
  • automake: 1.4+
  • libtool: 1.4.x+ (sauf 1.4.2)
  • re2c: 0.13.4+
  • bison :
    • PHP 7.0 - 7.3: 2.4 ou ultérieur (incluant Bison 3.x)
    • PHP 7.4: > 3.0

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.

Note:

Certains systèmes UNIX (tels qu'OpenBSD et SELinux) peuvent interdire la cartographie des pages à la fois inscriptibles et exécutables pour des raisons de sécurité, ce qu'on appelle PaX MPROTECT ou W^X protection contre les violations. Ce type de mappage de mémoire est, cependant, nécessaire pour le soutien JIT de PCRE, donc soit php doit être construit sans le soutien JIT pour PCRE, ou le binaire doit être ajouter à la liste blanche par tous les moyens fournis par le système.

Note: La compilation croisée pour ARM avec la chaîne Android n'est actuellement pas prise en charge.


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, lire 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.4 et 2.2. Il y a plusieurs raisons de choisir l'une plutôt que l'autre ; néanmoins, la version 2.4 est actuellement la dernière version disponible et c'est aussi celle que nous vous recommandons. Cependant, les instructions contenues dans ce guide devraient fonctionner pour la version 2.4 comme pour la version 2.2. Note: Apache httpd 2.2 est officiellement en Fin de Vie, il n'y aura plus de développement ni de patch pour cette version.

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

    tar -xzf httpd-2.x.NN.tar.gz

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

    tar -xzf php-NN.tar.gz

  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 installé 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-pdo-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.

    Pour PHP 8:

    LoadModule php_module modules/libphp.so

    Pour PHP 7:

    LoadModule php7_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 multithreadé, 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 compiler une version multithreadée d'Apache, le système cible doit supporter les threads. Dans ce cas, PHP doit également être construit avec 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 MySQLi.

    cd ../php-x.x.x
./configure --enable-fpm --with-mysqli
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.d/www.conf.default /usr/local/etc/php-fpm.d/www.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.d/www.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 FPM 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.

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 ))
)


LiteSpeed Web Server/OpenLiteSpeed Web Server on Unix systems

LiteSpeed PHP is an optimized compilation of PHP built to work with LiteSpeed products through the LiteSpeed SAPI. LSPHP runs as its own process and has its own standalone binary, which can be used as a simple command line binary to execute PHP scripts from the command line.

The LSAPI is a highly optimized API that allows communication between LiteSpeed and third party web engines. Its protocol is similar to FCGI, but is more efficient.

This documentation will cover installing and configuring PHP with LSAPI for a LiteSpeed Web Server and OpenLiteSpeed Web Server.

This guide will assume that either LSWS or OLS is installed with their default paths and flags. The default installation directory for both web servers is /usr/local/lsws and both can be run from the bin subdirectory.

Please note that throughout this documentation, version numbers have been replaced with an x to ensure this documentation stays correct in the future, please replace these, as necessary, with the corresponding version numbers.

  1. To obtain and install either LiteSpeed Web Server or OpenLiteSpeed Web Server, visit the LiteSpeed Web Server documentation » install page or OpenLiteSpeed documentation » install page.

  2. Obtain and unpack the php source:

    mkdir /home/php
cd /home/php
wget http://us1.php.net/get/php-x.x.x.tar.gz/from/this/mirror
tar -zxvf php-x.x.x.tar.gz
cd php-x.x.x

  3. Configure and build PHP. This is where PHP can be customized with various options, such as which extensions will be enabled. Run ./configure --help for a list of available options. In the example, we'll use the default recommended configuration options for LiteSpeed Web Server:

    ./configure ... '--with-litespeed'
make
sudo make install

  4. Checking The LSPHP Installation

    One of the simplest ways to check whether the installation of PHP was successful is to run the following code:

    cd /usr/local/lsws/fcgi-bin/
./lsphp5 -v

    This should return information about the new PHP build:

    PHP 5.6.17 (litespeed) (built: Mar 22 2016 11:34:19)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies

    Notice the litespeed in parenthesis. This means that the PHP binary has been built with LSAPI support.

Following the steps above, LiteSpeed / OpenLiteSpeed Web Server should now be running with support for PHP as an SAPI extension. There are many more configuration options available for LSWS / OLS and PHP. For more information, check out the LiteSpeed documentation about » PHP.

Using LSPHP from the command line:

LSPHP(LSAPI + PHP) command line mode is used to process PHP scripts running on a remote server that does not necessarily have a web server running. It is used to process PHP scripts residing on a local web server (separate). This setup is suitable for service scalability as PHP processing is offloaded to a remote server.

Start lsphp from the command line on a remote server: LSPHP is an executable and can be started manually and bound to IPv4, IPv6, or Unix domain socket addresses with the command line option -b socket_address

Examples:

Have LSPHP bind to port 3000 on all IPv4 and IPv6 addresses:

/path/to/lsphp -b [::]:3000

Have LSPHP bind to port 3000 on all IPv4 addresses:

/path/to/lsphp -b *:3000

Have LSPHP bind to address 192.168.0.2:3000:

/path/to/lsphp -b 192.168.0.2:3000

Have LSPHP accept requests on Unix domain socket /tmp/lsphp_manual.sock:

/path/to/lsphp -b /tmp/lsphp_manual.sock

Environment variables can be added before the LSPHP executable:

PHP_LSAPI_MAX_REQUESTS=500 PHP_LSAPI_CHILDREN=35 /path/to/lsphp -b IP_address:port

Currently LiteSpeed PHP can be used with LiteSpeed Web Server, OpenLiteSpeed Web Server, and Apache mod_lsapi. For steps on server-side configuration, visit the documentation pages for » LiteSpeed Web Server and » OpenLiteSpeed.

LSPHP can be installed in several other ways as well.

CentOS: On CentOS, LSPHP can be installed from the LiteSpeed Repository or the Remi Repository using » RPM.

Debian: On Debian, LSPHP can be installed from the LiteSpeed Repository using » apt.

cPanel: Visit the respective » documentation page about how to install LSPHP with cPanel and LSWS/OLS using EasyApache 4.

Plesk: Plesk can be used with LSPHP on CentOS, CloudLinux, Debian, and Ubuntu, for more details on this, visit the respective » documentation page


CGI et configuration en ligne de commande

Par défaut, 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

Un serveur déployé en mode CGI s'expose à plusieurs vulnérabilités possibles. Veuillez lire notre section sur la sécurité en mode CGI pour apprendre comment vous protéger 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 sur les systèmes OpenBSD

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

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 php, qui contient le moteur de base (en plus de fpm, gettext et iconv) et pourrait etre disponible sous plusieurs versions au choix. Puis, jetez un oeil aux paquets de module, comme php-mysqli ou php-imap. 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 php
# pkg_add php-apache
# pkg_add php-mysqli
  (install the PEAR libraries)
# pkg_add pear

Follow the instructions shown with each package!

  (to remove packages)
# pkg_delete php
# pkg_delete php-apache
# pkg_delete php-mysqli
# pkg_delete pear

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 PHP est divisé en 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

  • Apache et Nginx ne sont plus le serveur par défaut sur OpenBSD, mais ils peuvent être facilement trouvés dans les ports et les packages. Le nouveau serveur par défaut est également appelé 'httpd'.
  • 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.
  • Le paquet OpenBSD pour l'extension » gd requiert Xorg. A moins d'être déjà inclue après l'installation en ajoutant le jeu de fichiers xbase.tgz, cela peut être ajouté a posteriori (voir » OpenBSD FAQ#4).


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

  • 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 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 libapache-mod-php 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 update.

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

# apt install php-common libapache2-mod-php php-cli

APT installera et activera automatiquement le module PHP 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.

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

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

Ces exemples montreront de nombreux paquets, donc beaucoup spécifiques à PHP, comme php-cgi, php-cli et php-dev. Déterminez ceux qui sont nécessaires et installez les comme n'importe quel autre en utilisant apt 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 install php-mysql php-curl

APT ajoutera automatiquement les bonnes lignes aux fichiers connexes à php.ini, comme /etc/php/7.4/php.ini, /etc/php/7.4/conf.d/*.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 et aptitude. Expliquer les différences subtiles entre les deux sort du cadre de ce manuel.


Installation sur un système macOS

Sommaire

  • Utilisation des paquets
  • Utilisation de PHP embarqué antérieur à macOS Monterey
  • Compiler PHP sur macOS

Cette section contient les notes et conseils pour installer PHP sur macOS. PHP est embarqué avec macOS depuis macOS X (10.0.0) et antérieur à macOS Monterey (12.0.0). La compilation est similaire au guide d'installation Unix.


Utilisation des paquets

Il existe quelques versions pré-packagées et pré-compilées de PHP pour macOS. 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.

La façon la plus rapide d'installer php sur macOS est avec homebrew :

  1. Installer homebrew, en suivant les instruction sur » brew.sh

  2. brew install php

Les ressources alternatives 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/ (PHP 5.3 - PHP 7.3; obsolète)
  • Fink : » http://www.finkproject.org/


Utilisation de PHP embarqué antérieur à macOS Monterey

PHP est embarqué avec macOS depuis macOS X (10.0.0) et antérieur à macOS Monterey (12.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 macOS 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 macOS 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 macOS 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 de macOS. 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é antérieur à macOS Monterey
  • Installation sur les système Windows »
  • PHP Manual
  • Installation sur un système macOS
  • Compiler PHP sur macOS

Compiler PHP sur macOS

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


Installation sur les système Windows

Sommaire

  • Configuration requise pour l'installation
  • PECL
  • Outils d'installation de PHP pour Windows
  • Configuration recommandée sur les systèmes Windows
  • Installation manuelle de PHP sous Windows
  • Building from source
  • Command Line PHP on Microsoft Windows
  • Apache 2.x on Microsoft Windows
  • Dépannage de PHP sous Windows

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

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 (c.à.d. Microsoft Azure, Windows Azure, ou (Windows) Azure Web Apps).


Configuration requise pour l'installation

PHP nécessite au moins Windows 2008/Vista. Soit 32-Bit soit 64-bit (AKA X86 or X64. PHP ne fonctionne pas sur Windows RT/WOA/ARM). À partir de PHP 7.2.0 Windows 2008 et Vista ne sont plus supporté.

PHP nécessite le Visual C runtime (CRT). Beaucoup d'applications l'exige aussi, ainsi il se peut qu'il soit déjà installé.

Le Microsoft Visual C++ Redistributable pour Visual Studio 2019 convient pour toutes les versions de PHP, voir » https://visualstudio.microsoft.com/downloads/.

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

Si CRT est déjà installé, l'installeur vous le dira que 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.


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.


Outils d'installation de PHP pour Windows

Outils d'installation de PHP

» XAMPP, WampServer et BitNami installera des applications PHP pour une utilisation avec Apache sous Windows.

Installer et configurer Nginx sur Windows nécessite un peu plus de configuration. Voir la » documentation d'Nginx pour obtenir une aide d'installation supplémentaire.


Configuration recommandée sur les systèmes Windows

OpCache

Il est fortement recommandé d'activer OpCache. Cette extension est incluse avec PHP pour Windows. Il compile et optimise les scripts PHP et les met en cache mémoire afin qu'ils ne soient pas compilés chaque fois que la page est chargée.

Définir le php.ini à :

Exemple #1 Configuration recommandée pour OpCache

opcache.enable=On
opcache.enable_cli=On
Et redémarrer le serveur web. Pour plus d'information, lire : Configuration d'OpCache

WinCache

Il est recommandé d'utiliser WinCache lors de l'utilisation d'ISS, surtout si dans un environnement d'hébergement Web partagé ou en utilisant le stockage de fichiers en réseau (NAS). Il est à noter que WinCache n'est plus supporté à partir de PHP 8.0.0. Toutes les applications PHP bénéficient automatiquement de la fonctionnalité de cache de fichiers de WinCache. Les opérations du système de fichiers sont mises en cache en mémoire. WinCache peut également mettre en cache mémoire des objets de l'utilisateur et les partager entre les processus php.exe ou php-cgi.exe (partager des objets entre les requêtes). De nombreuses applications Web majeures ont un plugin ou une extension ou une option de configuration pour utiliser le cache d'objet de l'utilisateur de WinCache. Si vous avez besoin de hautes performances, vous devriez utiliser le cache d'objets dans vos applications. Voir : » http://pecl.php.net/package/WinCache pour télécharger WinCache DLL (ou tgz) vers votre dossier d'extension PHP (extensions_dir dans votre php.ini). Définir le php.ini à :

Exemple #2 Configuration recommandée pour WinCache

extension=php_wincache.dll
wincache.fcenabled=1
wincache.ocenabled=1 ; removed as of wincache 2.0.0.0
Pour plus d'information, lire : Configuration de WinCache

Configuration IIS

Dans la console d'administration de IIS, installer le module FastCGI et ajouter le mappage du gestionnaire pour `.php` vers le chemin d'accès à PHP-CGI.exe (pas PHP.exe)

Vous pouvez utiliser l'outil de ligne de commande APPCMD pour scripter la configuration IIS.

Base de données

Vous aurez probablement besoin d'un serveur de base de données. Les bases de données populaires fournissent des extensions PHP pour les utiliser. Si votre site Web n'a pas beaucoup de trafic, vous pouvez exécuter votre serveur de base de données sur le même serveur que votre serveur Web. De nombreux serveurs de base de données populaires s'exécutent sous Windows.

PHP inclut les extensions mysqli et PDO_MYSQL.

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


Installation manuelle de PHP sous Windows

Choix du serveur Web

IIS

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. La documentaion de Microsoft a » des instructions détaillées. 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 download .ZIP file of PHP build from http://windows.php.net/downloads/

REM path to directory you decompressed PHP .ZIP file into (no trailing \)
set phppath=c:\php

REM Clear current PHP handlers
%windir%\system32\inetsrv\appcmd clear config /section:system.webServer/fastCGI
REM The following command will generate an error message if PHP is not installed. This can be ignored.
%windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers /-[name='PHP_via_FastCGI']

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

REM Configure FastCGI Variables
%windir%\system32\inetsrv\appcmd set config -section:system.webServer/fastCgi /[fullPath='%phppath%\php-cgi.exe'].instanceMaxRequests:10000
%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%phppath%\php-cgi.exe'].environmentVariables.[name='PHP_FCGI_MAX_REQUESTS',value='10000']"
%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='%phppath%\php-cgi.exe'].environmentVariables.[name='PHPRC',value='%phppath%\php.ini']"

Apache

Il y a plusieurs versions d'Apache2 pour Windows. Nous supportons ApacheLounge, mais d'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).

Choix de la version

Téléchargez la version de production de PHP pour Windows depuis » http://windows.php.net/download/. Toutes les versions sont optimisées (PGO), et les versions QA et GA sont minutieusement testées.

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 - pour système 32-bits.

  • x64 - pour système 64-bits.


Building from source

This chapter teaches how to compile PHP from sources on Windows, using Microsoft's tools. To compile PHP with cygwin, please refer to Installation sur les systèmes UNIX.

See the Wiki documentation at: » https://wiki.php.net/internals/windows/stepbystepbuild


Command Line PHP on Microsoft Windows

This section contains notes and hints specific to getting PHP running from the command line for Windows.

Note:

You should read the manual installation steps first!

Getting PHP to run from the command line can be performed without making any changes to Windows.

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

But there are some easy steps that can be followed to make this simpler. Some of these steps should already have been taken, but are repeated here to be able to provide a complete step-by-step sequence.

    Note:

    Both PATH and PATHEXT are important pre-existing system variables in Windows, and care should be taken to not overwrite either variable, only to add to them.

  • Append the location of the PHP executable (php.exe, php-win.exe or php-cli.exe depending upon your PHP version and display preferences) to the PATH environment variable. Read more about how to add your PHP directory to PATH in the corresponding FAQ entry.

  • Append the .PHP extension to the PATHEXT environment variable. This can be done at the same time as amending the PATH environment variable. Follow the same steps as described in the FAQ but amend the PATHEXT environment variable rather than the PATH environment variable.

    Note:

    The position in which you place the .PHP will determine which script or program is executed when there are matching filenames. For example, placing .PHP before .BAT will cause your script to run, rather than the batch file, if there is a batch file with the same name.

  • Associate the .PHP extension with a file type. This is done by running the following command:

    assoc .php=phpfile

  • Associate the phpfile file type with the appropriate PHP executable. This is done by running the following command:

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

Following these steps will allow PHP scripts to be run from any directory without the need to type the PHP executable or the .PHP extension and all parameters will be supplied to the script for processing.

The example below details some of the registry changes that can be made manually.

Exemple #1 Registry changes

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:\\php\\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:\\php\\php.exe\" -f \"%1\" -- %~2"

With these changes the same command can be written as:

"C:\PHP Scripts\script" -arg1 -arg2 -arg3
or, if your "C:\PHP Scripts" path is in the PATH environment variable:
script -arg1 -arg2 -arg3

Note:

There is a small problem if you intend to use this technique and use your PHP scripts as a command line filter, like the example below:

dir | "C:\PHP Scripts\script" -arg1 -arg2 -arg3
or
dir | script -arg1 -arg2 -arg3
You may find that the script simply hangs and nothing is output. To get this operational, you need to make another registry change.
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer]
"InheritConsoleHandles"=dword:00000001
Further information regarding this issue can be found in this » Microsoft Knowledgebase Article : 321788. As of Windows 10, this setting seems to be reversed, making the default install of Windows 10 support inherited console handles automatically. This » Microsoft forum post provides the explanation.


Apache 2.x on Microsoft Windows

This section contains notes and hints specific to Apache 2.x installs of PHP on Microsoft Windows systems.

Note:

Please read the manual installation steps first!

It is strongly recommended to consult the » Apache Documentation to get have a basic understanding of the Apache 2.x Server. Also consider reading the » Windows specific notes for Apache 2.x before reading on here.

Download the most recent version of » Apache 2.x and a fitting PHP version. Follow the Manual Installation Steps and come back to go on with the integration of PHP and Apache.

There are three ways to set up PHP to work with Apache 2.x on Windows. PHP can be run as a handler, as a CGI, or under 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.

Installing as an Apache handler

To load the PHP module for Apache 2.x, the following lines in the Apache httpd.conf configuration file must be inserted:

Exemple #1 PHP and Apache 2.x as handler

# before PHP 8.0.0 the name of the module was php7_module
LoadModule php_module "c:/php/php8apache2_4.dll"
<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>
# configure the path to php.ini
PHPIniDir "C:/php"

Note: The actual path to PHP must be substituted instead of C:/php/ in the above examples. Make sure that the file referenced in the LoadModule directive is at the specified location. Use php7apache2_4.dll for PHP 7, or php8apache2_4.dll for PHP 8.

Running PHP as CGI

It is strongly recommended to consult the » Apache CGI documentation for a more complete understanding of running CGI on Apache.

To run PHP as CGI, the php-cgi files will need to be placed in a directory designated as a CGI directory using the ScriptAlias directive.

A #! line will need to be placed in the PHP files, which point to the location of the PHP binary:

Exemple #2 PHP and Apache 2.x as CGI

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

Avertissement

Un serveur déployé en mode CGI s'expose à plusieurs vulnérabilités possibles. Veuillez lire notre section sur la sécurité en mode CGI pour apprendre comment vous protéger contre ces attaques.

Running PHP under FastCGI

Running PHP under FastCGI has a number of advantages over running it as a CGI. Setting it up this way is fairly straightforward:

Obtain mod_fcgid from » https://www.apachelounge.com. Win32 binaries are available for download from that site. Install the module according to the instructions that will come with it.

Configure your web server as shown below, taking care to adjust any paths to reflect how you have installed things on your particular system:

Exemple #3 Configure Apache to run PHP as FastCGI

LoadModule fcgid_module modules/mod_fcgid.so
# Where is your php.ini file?
FcgidInitialEnv PHPRC        "c:/php"
<FilesMatch \.php$>
    SetHandler fcgid-script
</FilesMatch>
FcgidWrapper "c:/php/php-cgi.exe" .php
Files with a .php extension will now be executed by the PHP FastCGI wrapper.


Dépannage de PHP sous Windows

Vérifier les autorisations du répertoire Temp

  1. Cliquez avec le bouton droit sur répertoire le Temp dans l'Explorateur de fichiers pour obtenir les autorisations.

  2. Pour IIS, vérifiez que l'utilisateur IIS_User a la permission "Modifier". Vous pouvez obtenir le répertoire temporaire à partir de la configuration ou des informations de PHP.


  • « Dépannage de PHP sous Windows
  • Azure App services »
  • PHP Manual
  • Installation et configuration
  • Installation sur des plateformes de Cloud Computing

Installation sur des plateformes de Cloud Computing

Sommaire

  • Azure App services
  • Amazon EC2
  • DigitalOcean

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


Azure App services

PHP est fréquemment utilisé sur Azure App Services (alias Microsoft Azure, Windows Azure, Azure Web Apps).

Azure App Services gère les pools de serveurs Web Windows pour héberger votre application Web, en tant qu'alternative à la gestion de votre propre serveur Web sur vos propres VM de calcul Azure ou d'autres serveurs.

PHP est déjà activé pour votre site web automatique Azure App Services. Dans le portail Azure, sélectionnez votre site Web, et vous pouvez choisir la version de PHP à utiliser. Vous voudrez peut-être choisir une version plus récente que la valeur par défaut.

En tant que tel, PHP et les extensions s'exécutent sur Azure App Services tout comme ils le feraient sur d'autres serveurs Windows. Une grande partie de la base de connaissances est également portable, vous pouvez donc également consulter la page de dépannage Windows. Toutefois, l'interface de gestion pour Azure app services est différente :

  • Portail Azure : créer, modifier et supprimer les sites Web. » Portail Azure

  • Tableau de bord Kudu : [votre nom de site Web].azurewebsites.net ensuite, le tableau de bord Kudu est à l'adresse » https://[votre nom de site Web].scm.azurewebsites.net/. Le tableau de bord vous donne accès à certaines fonctionnalités de débogage, de gestion de fichiers et d'extensions de site. Les extensions de site sont un mécanisme Azure pour ajouter des programmes supplémentaires, comme les builds d'aperçu PHP, à votre site Web.

  • Vous ne pouvez pas utiliser le gestionnaire des services Internet, le gestionnaire de serveur ou RDP.

Il existe également un SDK PHP, qui vous permettra d'utiliser les nombreux services d'Azure à partir de votre code PHP. Voir » Azure SDK pour PHP.

Pour plus d'informations, voir » Azure PHP Developer Center

WinCache

WinCache est activé par défaut sur Azure App Services et il est recommandé de le laisser activé. Si vous installez votre propre verison de PHP, vous devez activer WinCache.

Build personnalisée de PHP

Vous pouvez télécharger votre propre version de PHP dans votre D:\Home (C:\ n'est pas accessible en écriture). Ensuite, dans le portail Azure, définissez SCRIPT_PROCESSOR pour .php sur le chemin d'accès absolu au fichier php-cgi.exe dans votre build personnalisée.


  • « Azure App services
  • DigitalOcean »
  • 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.


DigitalOcean

DigitalOcean offers the following platforms to get PHP installed, and running web application on its cloud-hosting infrastructure.

  • » Cloudways: One-click deployment of major PHP applications: WordPress, Magento, Drupal, Laravel, and more.

  • » Droplet: Virtual machine boxes and installing » Lamp stack on a Linux server .

  • » App Platform: Managed infrastructure to build, deploy, and scale apps quickly. Learn » how to run PHP application on the App Platform .

  • » Functions: Serverless platform that allows developers to run code without provisioning or managing servers. PHP is supported natively. Learn » how to create serverless functions in PHP .


FastCGI Process Manager (FPM)

Sommaire

  • Installation
  • Configuration

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.

Ces fonctionnalités incluent :

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

  • Pools qui donnent la possibilité de démarrer des travailleurs avec différents uid/gid/chroot/environnement, écoutant sur différents ports et utilisant différents php.ini (remplace le safe_mode) ;

  • Configurable 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/ondemand/static ;

  • Informations d'état de base et étendues (similaire à mod_status d'Apache) avec différents formats supportés comme json, xml et openmetrics ;

  • 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 - no).

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

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

Historique

Version | Description
8.2.0 | L'option --with-fpm-selinux a été ajoutée.
8.0.0 | L'option --with-fpm-apparmor a été ajoutée.


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 chaîne de caractères

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

error_log chaîne de caractères

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 chaîne de caractères

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

log_limit entier

Limite d'historique pour les lignes enregistrés qui permet des messages d'événements plus long que 1024 caractères sans s'emballer. Valeur par default : 1024 Disponible à partir de PHP 7.3.0.

log_buffering booléen

Historique expérimental sans tampon. Valeur par default : yes. Disponible à partir de PHP 7.3.0.

syslog.facility chaîne de caractères

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

syslog.ident chaîne de caractères

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 convienne à vos besoins. Valeur par défaut : php-fpm.

emergency_restart_threshold entier

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 entier

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. À utiliser avec attention. Valeur par défaut : 0.

process.priority entier

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 booléen

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 entier

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

rlimit_core entier

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

events.mechanism chaîne de caractères

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

systemd_interval entier

Quand FPM est construit avec le support de systemd, spécifie l'intervalle en seconde, entre les notifications 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 exécuter plusieurs pools de processus avec des paramètres différents. Voici les paramètres qui peuvent être ajustés par pool.

listen chaîne de caractères

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 entier

Affecte listen(2) backlog. Une valeur de -1 signifie le maximum sur les systèmes BSD. Valeur par défaut : -1 (FreeBSD ou OpenBSD) ou 511 (Linux et autres plateformes).

listen.allowed_clients chaîne de caractères

Liste des adresses IPv4 ou IPv6 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 acceptées depuis toute adresse ip. Valeur par défaut: non définie (toute adresse IP acceptée).

listen.owner chaîne de caractères

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 chaîne de caractères

Voyez listen.owner.

listen.mode chaîne de caractères

Voyez listen.owner.

listen.acl_users chaîne de caractères

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.

listen.acl_groups chaîne de caractères

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

user chaîne de caractères

Utilisateur Unix des processus FPM. Cette option est obligatoire.

group chaîne de caractères

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

pm chaîne de caractères

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 les directives suivantes: pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.

pm.max_children entier

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. Option 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 entier

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 entier

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 entier

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

pm.max_spawn_rate int

Nombre maximum de taux de génération de processus enfants simultanés. Utilisé seulement si pm est défini à dynamic.

pm.process_idle_timeout mixed

Nombre de secondes après lesquelles un processus d'inactif sera tué. Utilisé uniquelent quand pm est défini à ondemand. Unité disponible : s (secondes)(par défaut), m (minutes), h (heure), ou d (jourd). Valeur par défaut : 10s.

pm.max_requests entier

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_listen string

L'adresse sur laquelle accepter la demande de statut FastCGI. Cela crée un nouveau pool invisible qui peut traiter les requêtes indépendamment. Ceci est utile si le pool principal est occupé par des requêtes de longue durée car il est toujours possible d'obtenir le statut FPM status page tant qu'elles ne sont pas terminées. La syntaxe est la même que pour la directive listen. Valeur par défaut : none.

pm.status_path chaîne de caractères

L'URI vers la page de statut de FPM. Cette valeur doit commencer par une barre oblique (/). Si cette valeur n'est pas définie, aucun URI ne sera reconnu en tant qu'une page d'état. Valeur par défaut : none.

ping.path chaîne de caractères

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 chaîne de caractères

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.

process.priority entier

Spécifiez la priorité nice(2) à appliquer au processus de travail (uniquement s'il est défini). La valeur peut varier de -19 (priorité la plus élevée) à 20 (priorité la plus basse). Valeur par défaut: non définie.

process.dumpable booléen

Défini l'indicateur de processus dumpable (PR_SET_DUMPABLE prctl) même si l'utilisateur ou le groupe de processus est différent de l'utilisateur du processus maître. Il permet de créer un core dump du processus et ptrace le processus pour l'utilisateur de pool. Valeur par défaut : no. Depuis PHP 7.0.29, 7.1.17 et 7.2.5.

prefix chaîne de caractères

Spécifier le préfixe pour l'évaluation du chemin

request_terminate_timeout_track_finished bool

Le timeout défini par request_terminate_timeout n'est pas engagé après un fastcgi_finish_request ou lorsque l'application s'est terminée et que les fonctions internes d'arrêt sont appelées. Cette directive permet d'appliquer la limite de temps sans condition. Valeur par défaut : no. À partir de PHP 7.3.0.

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' n'arrête 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.

request_slowlog_trace_depth int

Le niveau de profondeur de la trace de la pile de log slowlog. Valeur par défaut : 20. À partir de PHP 7.2.0.

slowlog chaîne de caractères

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

rlimit_files entier

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 entier

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 chaîne de caractères

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 chaîne de caractères

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 booléen

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.

decorate_workers_output booléen

Active la décoration de sortie pour les travailleurs de sortie quand catch_workers_output est activé. Valeur par défaut : yes. Disponible à partir de PHP 7.3.0.

clear_env booléen

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é dans la configuration du pool ne soient ajoutées.

security.limit_extensions chaîne de caractères

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 .phar

apparmor_hat string

Si AppArmor est activé, permet de changer un hat (chapeau). Valeur par défaut : non défini

access.log chaîne de caractères

Le fichier journal d'accès. Valeur par défaut : non définie

access.format chaîne de caractères

Le format du journal d'accès. Valeur par défaut : "%R - %u %t \"%m %r\" %s":

Options valide
Placeholder | Description
%C | %CPU
%d | durée µs
%e | fastcgi env
%f | script
%l | content length
%m | method
%M | memory
%n | pool name
%o | header output
%p | PID
%q | query string
%Q | la "colle" entre %q et %r
%r | requête URI
%R | adresse IP remote
%s | statut
%T | time
%t | time
%u | remote user

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().

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.

Note: Les pools ne sont pas un mécanisme de sécurité, car elles ne fournissent pas une séparation totale ; par exemple toutes les pools utiliserait une seule instance OPcache.


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 est disponibles via le système de paquet » PEAR. Cette section du manuel a pour but de présenter la manière d'obtenir et d'installer les extensions de PECL.

Ces instructions supposent que /path/to/php/src/dir/ est le chemin jusqu'aux sources de la distribution PHP, et extname est le nom de l'extension PECL. Ajuster les commandes qui suivent en conséquence. Ces instructions supposent aussi une familiarité avec l'utilisation des » commandes pear. Les informations dans le manuel PEAR pour la commande pear sont également applicables à la commande pecl.

Une extension partagée doit être compilée, installée et chargée pour être utilisée. Les méthodes décrites ci-dessous 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().

Lors de la compilation de modules PHP, il est important d'avoir les outils dans leurs versions appropriées, tels que autoconf, automake, libtool, etc. Se référer aux » 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.

  • » https://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. Plusieurs informations y sont disponibles incluant 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.
  • git Beaucoup d'extension PECL demeurent sur GitHub.
  • SVN Certaines extensions PECL demeurent sur SVN. Une interface Web est disponible à » https://svn.php.net/pecl/. Pour télécharger directement depuis SVN, la séquence d'instructions ci-dessous peut être utilisée :

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

  • Téléchargements pour Windows : Le projet PHP compile et offre des DLLs Windows pour la plupart des extensions PECL disponible sur la page du package.


Installer une extension PHP sous Windows

Il existe deux moyens de charger une extension PHP sous Windows : soit la compiler dans PHP, soit charger une DLL. Charger une extension précompilée est la méthode la plus pratique et la plus recommandée.

Pour charger une extension, son fichier .dll doit être disponible sur le système. Toutes les extensions sont automatiquement et périodiquement compilées par le groupe PHP (voir la section de téléchargements).

Pour compiler une extension dans PHP, se référer à la documentation sur la compilation des sources.

Pour compiler une extension autonome, (c'est-à-dire un fichier DLL), se référer à la documentation sur la compilation des sources. Si le fichier DLL est absent de la distribution PHP et de PECL, il pourrait être necessaire de le 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 intégrées, ou bundled.

Cependant, si les extensions intégrées ne fournissent pas la fonctionnalité nécessaire, une extension qui le fait peut être trouvée dans » PECL. Le PHP Extension Community Library (PECL, aussi dit Bibliothèque d'Extensions Communautaires de PHP) est un dépôt pour les extensions PHP, fournissant un répertoire de toutes les extensions connues et des facilités d'hébergement pour le téléchargement et le développement d'extensions PHP.

Si une extension a été développée pour un usage particulier, elle peut être hébergée sur PECL afin que d'autres personnes ayant les mêmes besoins puissent en bénéficier. Un effet secondaire intéressant est que c'est une bonne occasion de recevoir des commentaires, (avec un peu de chance) des remerciements, des rapports de bogues et même des correctifs. Avant de soumettre une extension pour hébergement sur PECL, merci de lire » PECL submit.

Quelles extensions télécharger ?

Il existe souvent 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 PHP est utilisé. Le script suivant va afficher toutes les 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 le fichier de configuration php.ini. Il est à noter que de nombreuses extensions sont déjà présentes dans le fichier php.ini et qu'il suffit simplement de supprimer le point-virgule pour les activer.

À partir de PHP 7.2.0, le nom de l'extension peut être utilisé à la place du nom de l'extension. Comme il est indépendant de l'os et plus facile, en particulier pour les nouveaux arrivants, il devient la manière recommandée de spécifier des extensions à charger. Les noms de fichiers restent pris en charge pour la compatibilité avec les versions antérieures.

;extension=php_extname.dll

extension=php_extname.dll

; À partir de PHP 7.2, favoriser :
extension=extname
zend_extension=another_extension

Cependant, certains serveurs Web sont déroutants, car ils n'utilisent pas le fichier php.ini rangé avec l'exécutable PHP. Pour en savoir plus sur le véritable php.ini utilisé, il est possible de rechercher son emplacement à l'aide de phpinfo():

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

Loaded Configuration File   C:\Program Files\PHP\8.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 phpinfo(), il convient de vérifier les logs pour savoir d'où vient le problème.

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

Si PHP est utilisé sur un serveur Web, la position et le format des logs varient grandement d'un serveur à l'autre. Lire la documentation du serveur Web pour savoir où ils sont : PHP n'a aucun control sur cet emplacement.

Les problèmes les plus courants sont la localisation du fichier DLL et les DLLs dont il dépend, 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, la DLL téléchargée n'est probablement pas la bonne. Essayez d'en télécharger une nouvelle, avec les bonnes configurations du serveur. phpinfo() sera fortement utile.


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

PECL facilite la création d'extensions 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 le 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 n'est disponible, il est possible d'installer un paquet beta en utilisant la commande suivante :

$ pecl install extname-beta

Il est également possible d'installer une version spécifique en utilisant la commande :

$ pecl install extname-0.1

Note:

Après avoir activé l'extension dans le php.ini, il est requis de relancer 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 option. Cela peut être dû à la présence d'un pare-feu ou au fait que l'extension en cours d'installation n'est pas disponible en tant que paquet PECL compatible, comme les extensions non publiées provenant de git. Si une telle extension doit être construite, les outils de construction de niveau inférieur peuvent être utilisés pour effectuer la construction 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 créera un fichier extname.so et le placera dans le dossier des extensions de PHP. Le php.ini devra être ajusté, et la ligne extension=extname.so ajoutée avant de pouvoir utiliser l'extension.

Si le système ne possède pas la commande phpize et que des paquets précompilés (comme des RPM) sont utilisés, il faut s'assurer 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écuter 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 plusieurs versions de PHP sont installées, l'installation pour laquelle il faut construire peut être spécifiée en utilisant l'option --with-php-config lors de la configuration, en définissant le chemin du script php-config correspondant.

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 être nécessaire de construire une extension PECL statiquement dans le binaire PHP. Pour ce faire, les sources de l'extension doivent être placées dans le répertoire /path/to/php/src/dir/ext/, et le système de compilation de PHP doit régénérer son script de configuration.

$ cd /path/to/php/src/dir/ext
$ pecl download extname
$ gzip -d < extname.tgz | tar -xvf -
$ mv extname-x.x.x extname

Cela générera le dossier suivant :

/path/to/php/src/dir/ext/extname

À partir de là, PHP doit être forcé à reconstruire le script de configuration, et ensuite il peut être construit normalement :

$ cd /path/to/php/src/dir
$ rm configure
$ ./buildconf --force
$ ./configure --help
$ ./configure --with-extname --enable-someotherext --with-foobar
$ make
$ make install

Note: Pour exécuter le script buildconf, autoconf 2.68 et automake 1.4+ seront nécessaires. 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. En général, une extension qui ne nécessite pas de bibliothèques externes utilise --enable. Pour s'en assurer, exécuter la commande suivante après 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 à : » https://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, 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 à » https://github.com/php/php-src/issues. 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 -c en CGI et en CLI)
  • La variable d'environnement PHPRC.
  • L'endroit où se trouve le fichier php.ini peut être définis pour différentes versions de PHP. La racine des clés de registre dépend de l'architecture 32 ou 64 bit de l'OS et de PHP. Pour un OS et PHP 32 bit ou un OS et PHP 64 bit, utiliser [HKEY_LOCAL_MACHINE\SOFTWARE\PHP] pour PHP 32 bit sur un OS 64 bit, utiliser [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP] à la place. Pour une installation avec la même architecture, 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. Pour une architecture 32 bit de PHP sur un OS 64 bit, les clés de registre suivantes sont cherchées dans cet ordre : [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x.y.z], [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x.y] and [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\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] ou [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\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"

Il est possible de se référer à des variables .ini depuis des fichiers .ini. Par exemple : open_basedir = ${open_basedir} ":/new/dir".

Lire un répertoire

Il est possible de configurer PHP pour lire les fichiers .ini présent dans un dossier. après la lecture de php.ini. Cela est réglé lors de la compilation avec l'argument --with-config-file-scan-dir. Le dossier à lire peut être modifié lors de l'exécution par la définition de la variable d'environnement PHP_INI_SCAN_DIR.

Il est possible de lire plusieurs dossiers en les séparant avec un séparateur de chemin spécifique à la plateforme (; pour Windows, NetWare et RISC OS; : pour toutes les autres plateforme; la valeur utilisée par PHP est disponible dans la contante PATH_SEPARATOR). Si un dossier vide est fourni dans PHP_INI_SCAN_DIR, PHP lira également le dossier fournis à la compilation via --with-config-file-scan-dir.

Dans chaque répertoire, PHP lira tous les fichiers terminant par .ini dans l'ordre alphabétique. Une liste des fichiers qui ont été chargé et dans quel ordre est disponible en appelant la fonction php_ini_scanned_files(), ou en exécutant PHP avec l'option --ini.

Assuming PHP is configured with --with-config-file-scan-dir=/etc/php.d,
and that the path separator is :...

$ php
  PHP va charger tous les fichiers présent dans /etc/php.d/*.ini comme fichier
  de configuration.

$ PHP_INI_SCAN_DIR=/usr/local/etc/php.d php
  PHP va charger tous les fichiers présent dans /usr/local/etc/php.d/*.ini
  comme fichier de configuration.

$ PHP_INI_SCAN_DIR=:/usr/local/etc/php.d php
  PHP va charger tous les fichiers présent dans /etc/php.d/*.ini, puis
  /usr/local/etc/php.d/*.ini comme fichier de configuration.

$ PHP_INI_SCAN_DIR=/usr/local/etc/php.d: php
  PHP va charger tous les fichiers présent dans /usr/local/etc/php.d/*.ini, puis dans
  /etc/php.d/*.ini comme fichier de configuration.


Fichiers .user.ini

PHP inclut la prise en charge des fichiers INI de configuration par répertoire. Ces fichiers sont analysés uniquement par le SAPI CGI/FastCGI. Cette fonctionnalité rend obsolète l'extension PECL htscanner. Si vous exécutez PHP en tant que module 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 INI_PERDIR et 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 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 INI_ALL, et peut être modifiée n'importe où, y compris avec la fonction ini_set().

Constantes mode INI
Constantes | Description
INI_USER (int) | Cette entrée peut être définie dans les scripts utilisateur (comme avec ini_set()) ou dans le registre Windows. L'entrée peut être définie dans le fichier .user.ini.
INI_PERDIR (int) | Cette entrée peut être définie dans le fichier php.ini, .htaccess, httpd.conf ou .user.ini.
INI_SYSTEM (int) | Cette entrée peut être définie dans le fichier php.ini ou httpd.conf.
INI_ALL (int) | Cette entrée peut être définie 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 INI_ALL, INI_PERDIR ou 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 INI_ALL et 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 INI_ALL et 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 INI_USER peuvent être fixées de cette manière, celles dans INI_PERDIR ne peuvent l'être, car ces valeurs de configurations sont relues à chaque requête.

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
    • Système de type
    • NULL
    • Booléen
    • Les entiers
    • Nombres à virgules flottantes
    • Les chaînes de caractères
    • Chaînes numériques
    • Les tableaux
    • Les objets
    • Les énumérations
    • Les ressources
    • Fonctions de rappel / Types Callable
    • Mixed
    • Void
    • Never
    • Types de classes relatives
    • Types de valeur
    • Itérables
    • Déclarations de type
    • Jonglage de type
  • Les variables
    • Essentiel
    • Variables pré-définies
    • Portée des variables
    • Les variables dynamiques
    • Variables externes à PHP
  • Les constantes
    • Syntaxe
    • Constantes prédéfinie
    • Constantes magiques
  • Les expressions
  • Les opérateurs
    • Priorité des opérateurs — La priorité des opérateurs
    • Arithmétique — Les opérateurs arithmétiques
    • Opérateurs d'incrémentation et décrémentation
    • Affectation — Les opérateurs d'affectation
    • Bitwise — Opérateurs sur les bits
    • Comparaison — Opérateurs de comparaison
    • Contrôle d'erreur — Opérateur de contrôle d'erreur
    • Exécution — Opérateur d'exécution
    • Logique — Les opérateurs logiques
    • Opérateurs de chaînes de caractères
    • Tableaux — Opérateurs de tableaux
    • Type — 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
    • match
    • 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
    • Fonction Fléchée
    • Syntaxe callable de première classe
  • 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"
    • Clonage d'objets
    • Comparaison d'objets
    • Late Static Bindings (Résolution statique à la volée)
    • Objets et références
    • Sérialisation d'objets — Sérialiser des objets - des objets en session
    • Covariance et Contravariance
    • Modifications en POO (Programmation orientée objet)
  • Les espaces de noms
    • Introduction — Introduction aux espaces de noms
    • Définition des espaces de noms
    • Sous espace de noms — Déclaration d'un sous espace de noms
    • Définition de plusieurs espaces de noms dans le même fichier
    • Introduction — Utilisation des espaces de noms : introduction
    • Espaces de noms et langage dynamique
    • Commande namespace et __NAMESPACE__ — La commande namespace et la constante __NAMESPACE__
    • Importation et alias — Utilisation des espaces de noms : importation et alias
    • Global — Espace de noms global
    • Retour sur l'espace global — Utilisation des espaces de noms : retour sur l'espace global pour les fonctions et les constantes
    • Règles de résolutions de noms
    • Foire aux questions — Foire aux questions : ce que vous devez savoir des espaces de noms
  • Les énumérations
    • Aperçu des énumérations
    • Énumérations de base
    • Énumérations soutenues
    • Méthodes d'énumération
    • Méthodes statiques d'Enumération
    • Constantes d'énumération
    • Traits
    • Valeurs d'énumération dans les expressions constantes
    • Différences avec les objets
    • Liste de valeurs
    • Sérialisation
    • Pourquoi les enums ne sont pas extensibles
    • Exemples
  • Erreurs
    • Bases
    • Les Erreurs en PHP 7
  • Les exceptions
    • Etendre les Exceptions
  • Fibres
  • Generators
    • Résumé sur les générateurs
    • Syntaxe d'un Générateur
    • Comparaison des générateurs avec les objets Iterator
  • Attributs
    • Aperçu des attributs
    • Syntaxe des attributs
    • Lecture des attributs avec l'API de Reflection
    • Déclaration des classes d'attributs
  • 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 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_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
    • ClosedGeneratorException — The ClosedGeneratorException class
    • Error
    • ArgumentCountError
    • ArithmeticError
    • AssertionError
    • DivisionByZeroError
    • CompileError
    • ParseError
    • TypeError
    • ValueError
    • UnhandledMatchError
    • FiberError
  • Interfaces et Classes Prédéfinies
    • Traversable — L'interface Traversable
    • Iterator — L'interface Iterator
    • IteratorAggregate — L'interface IteratorAggregate
    • InternalIterator — La classe InternalIterator
    • Throwable
    • ArrayAccess — L'interface ArrayAccess
    • Serializable — L'interface Serializable
    • Closure — La classe Closure
    • stdClass — La classe stdClass
    • Generator — La classe Generator
    • Fiber — La classe Fiber
    • WeakReference — La classe WeakReference
    • WeakMap — La classe WeakMap
    • Stringable — L'interface Stringable
    • UnitEnum — L'interface UnitEnum
    • BackedEnum — L'interface BackedEnum
    • SensitiveParameterValue — La classe SensitiveParameterValue
  • Attributs prédéfinis
    • Attribute — La classe Attribute
    • AllowDynamicProperties — La classe AllowDynamicProperties
    • Override — La classe Override
    • ReturnTypeWillChange — La classe ReturnTypeWillChange
    • SensitiveParameter — La classe SensitiveParameter
  • 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
    • Les options du contexte Phar — Liste des options du contexte Phar
    • Paramètres de contexte — Liste des paramètres de contexte
    • Options de contexte Zip — Zip context option listing
    • Options de contexte Zlib — Liste des options de contexte Zlib
  • 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 inclut une balise ouvrante echo courte <?= qui est un raccourci au code plus verbeux <?php echo.

Exemple #1 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. Vous pouvez utiliser la balise courte pour <?= 'écrire ce texte' ?>.
Est équivalent à <?php echo 'écrire ce texte' ?>.

3. <? echo 'ce code est entre des balises courtes'; ?>
Le code suivant <?= 'du texte' ?> est un raccourci pour <? echo 'du texte' ?>

Les balises courtes (troisième exemple) sont disponibles par défaut, mais peuvent être désactivées soit via l'option short_open_tag du fichier de configuration php.ini, ou sont désactivées par défaut si PHP est compilé avec l'option --disable-short-tags.

Note:

Comme les balises courtes peuvent être désactivées il est recommandé de seulement utiliser les balises normales (<?php ?> et <?= ?>) pour maximiser la compatibilité.

Si un fichier contient seulement 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 le cas 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 (mis à part la nouvelle ligne qui est immédiatement suivie : 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.

Note:

Si PHP est intégré dans un document XML ou XHTML, la balise PHP standard <?php ?> doit être utilisé pour rester conforme aux standards.


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 inclus le caractère de nouvelle ligne suivi immédiatement si un est présent.

Exemple #1 Exemple montrant que la balise fermente englobe la nouvelle ligne qui suit

<?php echo "Some text"; ?>
No newline
<?= "But newline now" ?>

L'exemple ci-dessus va afficher :

Some textNo newline
But newline now

Exemples d'entrée et de sortie de l'analyseur PHP :

<?php
echo 'This is a test';
?>

<?php echo 'This is a test' ?>

<?php echo 'We omitted the last closing tag';

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.

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
  • Système de type
  • NULL
  • Booléen
  • Les entiers
  • Nombres à virgules flottantes
  • Les chaînes de caractères
  • Chaînes numériques
  • Les tableaux
  • Les objets
  • Les énumérations
  • Les ressources
  • Fonctions de rappel / Types Callable
  • Mixed
  • Void
  • Never
  • Types de classes relatives
  • Types de valeur
  • Itérables
  • Déclarations de type
  • Jonglage de type


Introduction

En PHP, chaque expression a l'un des types intégrés suivants en fonction de sa valeur:

  • null
  • bool
  • int
  • float (nombre à virgule flottante)
  • string
  • array
  • object
  • callable
  • resource

PHP est un langage typé dynamiquement, ce qui signifie que par défaut, il n'est pas nécessaire de spécifier le type d'une variable, car cela sera déterminé au moment de l'exécution. Cependant, il est possible de typer statiquement certains aspects du langage en utilisant les déclarations de type.

Les types limitent le type d'opérations qui peuvent être effectuées sur eux. Cependant, si une expression/variable est utilisée dans une opération que son type ne supporte pas, PHP tentera de jongler de type dans un type compatible avec l'opération. Ce processus dépend du contexte dans lequel la valeur est utilisée. Pour plus d’informations, consultez la section sur le jonglage de type.

Astuce

Les tableaux de comparaison de type peuvent également être utiles, car divers exemples de comparaison entre des valeurs de différents types sont présents.

Note: Il est possible de forcer l’évaluation d’une expression à un certain type en utilisant un type casting. Une variable peut également être convertie sur place à l’aide de la fonction settype().

Pour vérifier le type et la valeur d'une expression, utilisez la fonction var_dump(). Pour récupérer le type d'une expression, utiliser la fonction get_debug_type(). Toutefois, pour vérifier si une expression est d'un certain type, utilisez plutôt les fonctions is_type.

<?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";
}
?>

Résultat de l'exemple ci-dessus en PHP 8 :

bool
string
int(16)

Note: Antérieur à PHP 8.0.0, lorsque le get_debug_type() n’est pas disponible, la fonction gettype() peut être utilisée à la place. Cependant, elle n’utilise pas les noms de type canoniques.


Système de type

PHP utilise un système de type nominal avec une relation de sous-typage comportementale forte. La relation de sous-typage est vérifiée à la compilation, tandis que la vérification des types est vérifiée dynamiquement au moment de l'exécution.

Le système de type de PHP supporte plusieurs types atomiques qui peuvent être composés ensemble pour créer des types plus complexes. Certains de ces types peuvent être écrits sous forme de déclaration de type.

Types atomiques

Certains types atomiques sont des types qui sont étroitement intégrés au langage et ne peuvent être reproduits avec des types définis par l'utilisateur.

La liste des types de base est la suivante :

  • Types intégrés
    • type null
    • Types scalaires :
      • type bool
      • type int
      • type float
      • type string
    • type array
    • type object
    • type resource
    • type never
    • type void
    • Types de classes relatives: self, parent, et static
  • Types de valeur
    • false
    • true
  • Types définis par l'utilisateur (généralement appelés classes-types)
    • Interfaces
    • Classes
    • Énumérations
  • type callable

Types composites

Il est possible de combiner plusieurs types atomiques en des types composites. PHP permet de combiner les types de la manière suivante :

  • Intersection de classes-types (interfaces et noms de classes).
  • Union de types.

Intersection de types

Un type d'intersection accepte des valeurs qui satisfont plusieurs déclarations de type de classe, plutôt qu'une seule. Les types individuels qui forment le type d'intersection sont reliés par le symbole &. Par conséquent, un type d'intersection composé des types T, U et V s'écrit T&U&V.

Types d'union

Un type union accepte des valeurs de plusieurs types différents, plutôt qu'un seul. Les types individuels qui forment le type d'union sont reliés par le symbole |. Par conséquent, un type d'union composé des types T, U et V s'écrit T|U|V. Si l'un des types est un type d'intersection, il doit être mis entre parenthèses pour être écrit en DNF. T|(X&Y).

Alias de type

PHP supporte deux alias de type : mixed et iterable qui correspond au type type d'union de object|resource|array|string|float|int|bool|null et Traversable|array respectivement.

Note: PHP ne supporte pas les alias de type définis par l'utilisateur.


NULL

Le type null est le type unité de PHP, c'est-à-dire qu'il n'a qu'une seule valeur: null.

Les variables non définies et les variables unset() auront la valeur null.

Syntaxe

Il y a une seule valeur de type null, et c'est la constante insensible à la casse null.

<?php
$var = NULL;
?>

Transtyper vers null

Avertissement

Cette fonctionnalité est OBSOLÈTE à partir de PHP 7.2.0, et SUPPRIMÉE à partir de PHP 8.0.0. Dépendre de cette fonctionnalité est fortement déconseillé.

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.

Voir aussi

  • is_null()
  • unset()


Booléen

Le type bool ne possède que deux valeurs, et est utilisé pour exprimer une valeur de vérité. Il peut être soit true soit 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, utilisez le cast (bool). Généralement, cela n'est pas nécessaire car lorsqu'une valeur est utilisée dans un contexte logique, elle sera automatiquement interprétée comme une valeur de type bool. Pour plus d'informations, voir le page Type Juggling.

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)
  • les nombres à virgule flottante 0.0 et -0.0 (zéro)
  • la chaîne vide "", et la chaîne "0"
  • un tableau avec aucun élément
  • le type unité NULL (incluant les variables non définies)
  • les objets internes qui surchargent leur comportement de casting en booléen. Par exemple : les objets SimpleXML créés à partir d'éléments vides sans attributs.

Toutes les autres valeurs sont considérées comme true (y compris les ressources et NAN).

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) "0"); // 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 à l'ensemble Z = {..., -2, -1, 0, 1, 2, ...}.

Voir aussi

  • Les nombres à virgule flottante
  • Les précisions arbitraires / BCMath
  • Les entiers de longueur arbitraire / GMP

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). L'opérateur de négation peut être utilisé pour désigner un entier négatif.

Pour utiliser la notation octale, précédez le nombre d'un 0 (zéro). À partir PHP 8.1.0, la notation octale peut être précédé avec 0o ou 0O. Pour utiliser la notation hexadécimale, précédez le nombre de 0x. Pour utiliser la notation binaire, précédez le nombre de 0b.

À partir de PHP 7.4.0, les entiers littéraux peuvent contenir des underscores (_) entre les chiffres, pour une meilleure lisibilité des littéraux. Ces underscores sont supprimés par le scanner de PHP.

Exemple #1 Les entiers littéraux

<?php
$a = 1234; // un nombre décimal
$a = 0123; // un nombre octal (équivalent à 83 en décimal)
$a = 0o123; // un nombre octal (à partir de PHP 8.1.0)
$a = 0x1A; // un nombre hexadecimal (équivalent à 26 en décimal)
$a = 0b11111111; // un nombre binaire (équivalent à 255 en decimal)
$a = 1_234_567; // un nombre décimal (à partir de PHP 7.4.0)
?>

Formellement, la structure d'un entier littéral est à partir de PHP 8.1.0 (auparavant, les préfixes octaux 0o ou 0O n'étaient pas autorisés, et avant PHP 7.4.0, les underscores n'étaient pas autorisés.

decimal     : [1-9][0-9]*(_[0-9]+)*
            | 0

hexadecimal : 0[xX][0-9a-fA-F]+(_[0-9a-fA-F]+)*

octal       : 0[oO]?[0-7]+(_[0-7]+)*

binary      : 0[bB][01]+(_[01]+)*

integer     : decimal
            | hexadecimal
            | octal
            | binary

La taille d'un entier est dépendante 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. 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, la valeur maximale, en utilisant la constante PHP_INT_MAX, et la valeur minimale en utilisant la constante PHP_INT_MIN.

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 en dehors de l'intervalles du type 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 d'entier en PHP, pour accomplir ceci utiliser la fonction intdiv(). 1/2 produit le nombre décimal (0.5). La valeur peut être transtypé en un entier pour l'arrondir vers zéro, ou en utilisant la fonction round() pour avoir un contrôle plus fin sur la façon dont l'arrondi est exécuté.

<?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, utiliser 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 ressource est convertie vers un entier, alors le résultat sera l'identifiant unique de la ressource 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

Lors de la convertion d'un nombre décimal en entier, le nombre est arrondi vers zéro. À partir de PHP 8.1.0, une notification de dépréciation est émise lors de la conversion implicite d'un nombre décimal non-intégral en entier perdant en précision.

<?php

function foo($value): int {
return $value;
}

var_dump(foo(8.1)); // "Deprecated: Implicit conversion from float 8.1 to int loses precision" à partir de PHP 8.1.0
var_dump(foo(8.1)); // Avant PHP 8.1.0
var_dump(foo(8.0)); // 8 dans les deux cas

var_dump((int)8.1); // 8 dans les deux cas
var_dump(intval(8.1)); // 8 dans les deux cas
?>

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), le résultat sera indéfini, sachant que le nombre décimal n'a pas une précision suffisante pour donner un résultat entier exact. Aucune alerte n'est émise lorsque ce comportement survient !

Note:

NaN et Infinity sont toujours égal à zéro lors d'une conversion en entier.

Avertissement

Ne convertissez jamais une fraction inconnue en un entier, ceci peut engendrer des résultats inattendus.

<?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

Si une chaîne est numérique ou numérique de tête alors elle sera transformer en sa valeur entière correspondante, sinon elle sera convertie à zéro(0).

Depuis NULL

null est toujours converti en zéro (0).

Depuis d'autres types

Attention

Le comportement de la conversion en entier est indéfini depuis les autres types. Ne rapporter aucun comportement observé, sachant qu'ils peuvent changer sans avertissement.


Nombres à virgules flottantes

Les nombres à virgule flottante (aussi connus comme "floats", "doubles", ou "nombres réels") peuvent être spécifiés en utilisant les syntaxes suivantes :

<?php
$a = 1.234;
$b = 1.2e3;
$c = 7E-10;
$d = 1_234.567; // à partir de PHP 7.4.0
?>

Formellement à partir de PHP 7.4.0 (auparavant, les underscores n'étaient pas autorisé) :

LNUM          [0-9]+(_[0-9]+)*
DNUM          ({LNUM}?"."{LNUM}) | ({LNUM}"."{LNUM}?)
EXPONENT_DNUM (({LNUM} | {DNUM}) [eE][+-]? {LNUM})

La taille d'un nombre décimal est dépendante de la plate-forme, cependant, un nombre maximal d'environ 1.8e308 avec une précision sur 14 chiffres est une valeur commune (format 64 bits IEEE).

Avertissement

Précision des nombres flottants

Les nombres flottants 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 flottant, mais aussi, ne comparez pas l'égalité de 2 nombres flottant directement. Si une plus grande précision est nécessaire, les fonctions mathématiques de précision arbitraire et les fonctions gmp sont disponibles.

Pour une explication "simple", voir le » guide relatif aux nombres à virgule flottante.

Convertir en un nombre flottant

Depuis des chaînes de caractères

Si une chaîne est numérique ou numérique de tête alors elle sera transformée en sa valeur flottante correspondante, sinon elle sera convertie à zéro(0).

Depuis d'autres types

Pour les valeurs d'autres types, la conversion est effectuée en convertissant la valeur d'abord en int puis en float. Voir conversion en entier pour plus d'informations.

Note:

Comme certains types ont un comportement indéfinie lors de la conversion en int, ceci est aussi le cas lors de la conversion en float.

Comparaison de nombres flottants

Comme dit dans la note ci-dessus, le test d'égalité des valeurs de nombres flottants 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 flottants, 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, sauf si elle est égale à true, 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: Sur les systèmes 32-bit une chaîne de caractères peut être d'une taille allant jusqu'au plus 2Go (2147483647 octets maximum).

Syntaxe

Une chaîne de caractères littérale peut être spécifiée de 4 façons différentes :

  • Guillemets simples
  • Guillemets doubles
  • Syntaxe Heredoc
  • Syntaxe Nowdoc

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, il doit être échappé à l'aide d'un antislash (\). Pour spécifier un antislash littéral, doublez-le (\\). Toute les autres instances d'antislash seront traitées comme un antislash littéral : 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';
?>

Guillemets doubles

Si la chaîne de caractères est entourée de guillemets doubles ("), PHP interprétera les séquences d'échappement suivantes pour les 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)
\e | échappement (ESC or 0x1B (27) en ASCII)
\f | Saut de page (FF ou 0x0C (12) en ASCII)
\\ | Antislash
\$ | Signe dollar
\" | Guillemet double
\[0-7]{1,3} | Octal: la séquence de caractères correspondant à l'expression rationnelle [0-7]{1,3} est un caractère en notation octale (par example "\101" === "A"), qui débordera silencieusement pour s'adapter à un octet (par example "\400" === "\000")
\x[0-9A-Fa-f]{1,2} | Hexadécimal: la séquence de caractères correspondant à l'expression rationnelle [0-9A-Fa-f]{1,2} est un caractère en notation hexadécimale (par example "\x41" === "A")
\u{[0-9A-Fa-f]+} | Unicode: la séquence de caractères correspondant à l'expression rationnelle [0-9A-Fa-f]+ est un point de code Unicode, qui sera la sortie de la chaîne de caractères représentant ce point de code UTF-8. Les accolades sont requis dans la séquence. Par example "\u{41}" === "A"

De la même façon que pour les chaîne de caractères entourées de guillemets simples, l'échappement de tout autre caractère affichera l'antislash.

La fonctionnalité la plus intéressante des chaîne de caractères 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 troisiè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 de caractères en elle-même vient ensuite, suivie du même identifiant pour fermer la notation.

L'identifiant de fin peut être indenté par des espaces ou tabulations, au quel cas l'indentation sera retirée de toutes les lignes dans la chaîne de caractères doc. Antérieur à PHP 7.3.0, 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").

Exemple #1 Exemple Heredoc basique à partir de PHP 7.3.0

<?php
// no indentation
echo <<<END
 a
b
c
\n
END;

// 4 spaces of indentation
echo <<<END
 a
b
c
 END;

Résultat de l'exemple ci-dessus en PHP 7.3 :

      a
     b
    c

  a
 b
c

Si l'identifiant de fin est indenté plus que n'importe quelle ligne du texte, alors une ParseError sera lancée :

Exemple #2 Closing identifier must not be indented further than any lines of the body

<?php
echo <<<END
 a
b
c
 END;

Résultat de l'exemple ci-dessus en PHP 7.3 :

PHP Parse error:  Invalid body indentation level (expecting an indentation level of at least 3) in example.php on line 4

Si l'identifiant de fin est indenté, alors les tabulations peuvent aussi être utilisé, néanmoins, les tabulations et les espaces ne doivent pas être mélangé en ce qui concerne l'indentation de l'identifiant et l'indentation du texte (jusqu'à l'identifiant de fin). Dans quelconque de ces cas, une ParseError sera lancée. Ces contraintes sur les caractères d'espacement blanc ont été incluse car le mélange de tabulations et d'espaces pour l'indentation est nuisible à la lisibilité.

Exemple #3 Indentation différente pour le texte (espace) et identifiant de fin

<?php
// All the following code do not work.
// different indentation for body (spaces) ending marker (tabs)
{
echo <<<END
 a
 END;
}
// mixing spaces and tabs in body
{
echo <<<END
 a
 END;
}
// mixing spaces and tabs in ending marker
{
echo <<<END
 a
 END;
}

Résultat de l'exemple ci-dessus en PHP 7.3 :

PHP Parse error:  Invalid indentation - tabs and spaces cannot be mixed in example.php line 8

L'identifiant de fin du corps du texte n'est pas requis d'être suivi d'une point virgule ou une nouvelle ligne. Par exemple, le code suivant est autorisé à partir de PHP 7.3.0:

Exemple #4 Continuer une expression après un identifiant de fin

<?php
$values = [<<<END
a
b
c
END, 'd e f'];
var_dump($values);

Résultat de l'exemple ci-dessus en PHP 7.3 :

array(2) {
  [0] =>
  string(11) "a
  b
    c"
  [1] =>
  string(5) "d e f"
}
Avertissement

Si l'identifiant de fin a été trouvé au début d'une ligne, alors peut importe s'il fait partie d'un autre mot, il peut être considéré comme l'identifiant de fin et causer une ParseError.

Exemple #5 Identifiant de fin dans le corps de la chaîne de caractères tend à causer une ParseError

<?php
$values = [<<<END
a
b
END ING
END, 'd e f'];

Résultat de l'exemple ci-dessus en PHP 7.3 :

PHP Parse error:  syntax error, unexpected identifier "ING", expecting "]" in example.php on line 6

Pour éviter ce problème, il suffit de suivre cette règle simple : ne pas choisir comme identifiant de fin si ceci apparait dans le corps du texte.

Avertissement

Antérieur à PHP 7.3.0, 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 macOS, 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.

Exemple #6 Exemple invalide, antérieur à PHP 7.3.0

<?php
class foo {
public $bar = <<<EOT
bar
 EOT;
}
// L'identifiant ne doit pas être indenté
?>

Exemple #7 Exemple valide, même antérieur à PHP 7.3.0

<?php
class foo {
public $bar = <<<EOT
bar
EOT;
}
?>

Heredoc contenant des variables ne peuvent être utilisé pour initialiser les propriétés d'une classe.

Heredoc se comporte exactement comme une chaîne de caractères 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 précautions doivent être prises lorsque des variables complexes sont exprimées dans une Heredoc comme avec chaîne de caractères.

Exemple #8 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 __construct()
{
$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 #9 Exemple d'utilisation de Heredoc pour passer des arguments

<?php
var_dump(array(<<<EOD
foobar!
EOD
));

Il est possible d'initialiser les variables statiques et les propriétés ou constantes de classes avec la syntaxe Heredoc :

Exemple #10 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;
}
?>

L'identifiant ouvrant Heredoc peut éventuellement être écrit entre guillemets doubles :

Exemple #11 Utilisation des guillemets doubles avec Heredoc

<?php
echo <<<"FOOBAR"
Hello World!
FOOBAR;
?>

Nowdoc

Nowdoc est aux chaînes guillemets simples ce qu'Heredoc est aux chaînes guillemets doubles. Un Nowdoc est spécifié de manière similaire à un Heredoc, mais aucune analyse n'est effectuée à l'intérieur d'une 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 #12 Exemple de chaîne Nowdoc

<?php
echo <<<'EOD'
Exemple de chaîne sur plusieurs lignes en utilisant la syntaxe Nowdoc.
Les barre oblique inversée sont toujours traité de façon littérale,
par exemple \\ and \'.
EOD;

L'exemple ci-dessus va afficher :

Exemple de chaîne sur plusieurs lignes en utilisant la syntaxe Nowdoc.
Les barre oblique inversée sont toujours traité de façon littérale,
par exemple \\ and \'.

Exemple #13 Exemple de chaîne Nowdoc avec des variables

<?php
class foo
{
public $foo;
public $bar;

function __construct()
{
$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

Exemple #14 Exemple avec des données statiques

<?php
class foo {
public $bar = <<<'EOT'
bar
EOT;
}
?>

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 de caractères 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. 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;

// Non souhaité. "s" est un caractère valide pour un nom de variable, ainsi ceci fait référence à $juices, et non à $juice.
echo "Il a bu du jus constitué de $juices." . PHP_EOL;
// Spécifiez explicitement la fin du nom de la variable en plaçant la référence entre accolades.
echo "Il a bu du jus constitué de ${juice}s.";

?>

L'exemple ci-dessus va afficher :

Il a bu du jus de pomme.
Il a bu du jus constitué de .
Il a bu du jus constitué de pommes.

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 #15 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 .

À partir de PHP 7.1.0 les indices numériques négatifs sont aussi supportés.

Exemple #16 Indices numériques négatifs

<?php
$string = 'string';
echo "Le personnage à l'index -2 est $string[-2].", PHP_EOL;
$string[-3] = 'o';
echo "Change le caractère à l'index -3 par o donne $string.", PHP_EOL;
?>

L'exemple ci-dessus va afficher :

Le personnage à l'index -2 est n.
Change le caractère à l'index -3 par o donne strong.

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, élément de tableau ou attribut d'objet représentable en tant que chaîne de caractères peut être utilisé avec cette syntaxe. L'expression est écrite de la même façon qu'elle apparaitrait à l'extérieur de la chaîne de caractères et est entouré des caractères { et }. Sachant que { ne peut pas être échappé, cette syntaxe ne sera reconnue que lorsque le $ suit immédiatement {. Utiliser {\$ 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}";

// 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.
// PHP recherche d'abord une constante nommée foo et génère une erreur si elle n'est pas trouvée.
// Si la constante est trouvée, sa valeur (et non 'foo' elle-même) serait utilisée
// comme indice de tableau.
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()}";

// Ne fonctionne pas, affiche : C:\folder\{fantastic}.txt
echo "C:\folder\{$great}.txt"
// fonctionne, affiche : C:\folder\fantastic.txt
echo "C:\\folder\\{$great}.txt"
?>

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 valeurs accédé via les fonctions, méthodes, variables statiques de classes, ainsi que les constantes de classes à l'intérieur de {$} sont 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) après la chaîne de caractères en utilisant les crochets de tableau, tel que $str[42]. Il convient dans ce cas de voir une chaîne de caractères comme un tableau de caractères. Les fonctions substr() et substr_replace() peuvent être utilisées lorsque vous voulez extraire ou remplacer plus d'un caractère.

Note: À partir de PHP 7.1.0, les positions négatives dans les chaînes de caractères sont aussi supportées. Cela spécifie la position en partant de la fin de la chaîne de caractères. Auparavant, les index négatif émettait E_NOTICE pour la lecture (donnant une chaîne vide) et E_WARNING pour l'écriture (laissant la chaîne inchangée).

Note: Antérieur à PHP 8.0.0, les strings pouvait aussi être accédé en utilisant les accolades, comme ceci $str{42}. La syntaxe avec les accolades a été rendue obsolète en PHP 7.4.0 et n'est plus supportée à partir de PHP 8.0.0.

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 émettent une E_WARNING. Seul le premier caractère d'une chaîne assignée est utilisé. À partir de PHP 7.1.0, assigner une chaîne vide lève une erreur fatale. Auparavant, cela affectait un octet NULL.

Avertissement

En interne, les chaînes PHP sont des tableaux d'octets. Ainsi, l'accès ou la modification d'une chaîne en utilisant les crochets d'un tableau n'est pas multioctets, et ne doit être utilisé qu'avec les chaînes dont l'encodage est sur un seul octet, comme ISO-8859-1.

Note: À partir de PHP 7.1.0, appliquer un index vide sur une chaîne vide lève une erreur fatale. Auparavant, la chaîne était silencieusement convertie en un tableau.

Exemple #17 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';

?>

Les positions d'une chaîne doivent être un entier, ou des chaînes pouvant être converties en entier, sinon, une alerte sera émise.

Exemple #18 Exemple de Positions de Chaîne Invalide

<?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']));
?>

L'exemple ci-dessus va afficher :

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:

Les caractères dans une chaîne de caractères littérales peuvent être accédé en utilisant la syntaxe [] ou {}.

Note:

Accéder aux caractères dans une chaîne de caractères littérales en utilisant la syntaxe {} a été rendu obsolète en PHP 7.4. Ceci a été supprimée en PHP 8.0.

Fonctions et opérateurs utiles

Les chaîne de caractères peuvent être concaténées en utilisant l'opérateur '.' (point). Il est à noter que l'opérateur '+' (addition) ne fonctionnera pas. Voir opérateurs de chaînes pour plus d'informations.

Il existe de nombreuses fonctions utiles pour la manipulation de chaîne de caractères.

Voir la section sur les fonctions de chaînes de caractères pour des fonctions génériques, et à la section sur les expressions régulières 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 (Sodium et Hash).

Finalement, voir aussi les 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 de caractères. Les sections sur les types et sur le transtypage expliquent ce qui suit de manière plus détaillée. Voir aussi la fonction settype().

Une valeur booléen true est convertie en la chaîne de caractères "1". Une valeur booléen false est convertie en "" (une chaîne vide). Ceci permet les conversions vers et depuis les valeurs booléen et chaîne de caractères.

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 nombre décimal). Les nombres à virgule flottante peuvent être convertis en utilisant la notation exponentielle (4.1E+6).

Note:

À partir de PHP 8.0.0, le point décimal est toujours un point .. Antérieur à PHP 8.0.0, le point décimal est défini dans la locale du script (catégorie LC_NUMERIC). Voir la fonction setlocale().

Les tableau sont toujours convertis en la chaîne de caractères "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, il faut utiliser une syntaxe tel que echo $arr['foo']. Voir ci-dessous pour des astuces permettant d'afficher le contenu complet.

Pour pouvoir convertir un objet en chaîne de caractères la méthode magique __toString doit être utilisée.

Les ressources sont toujours converties en chaîne de caractères sous 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 sa valeur, mis à part son type. Voir les 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 "sérialisation", et est effectuée par serialize().

Détails sur le type "chaîne de caractères"

Le type chaîne de caractères en PHP est implémenté sous la forme d'un tableau d'octets accompagné d'un entier indiquant la longueur de la mémoire tampon. 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 (“octets NUL”) 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 mémoires tampons ; 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 setlocale()), mais opèrent octet par octet.
  • Enfin, elles peuvent juste supposer que la chaîne utilise un encodage spécifique, généralement 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é).

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.


Chaînes numériques

Une chaîne de caractères PHP string est considérée comme numérique si elle peut être interprétée comme un int ou un float.

Formellement à partir de PHP 8.0.0 :

WHITESPACES      \s*
LNUM             [0-9]+
DNUM             ([0-9]*[\.]{LNUM}) | ({LNUM}[\.][0-9]*)
EXPONENT_DNUM    (({LNUM} | {DNUM}) [eE][+-]? {LNUM})
INT_NUM_STRING   {WHITESPACES} [+-]? {LNUM} {WHITESPACES}
FLOAT_NUM_STRING {WHITESPACES} [+-]? ({DNUM} | {EXPONENT_DNUM}) {WHITESPACES}
NUM_STRING       ({INT_NUM_STRING} | {FLOAT_NUM_STRING})

PHP dispose également d'un concept de chaînes débutant numériquement. Il s'agit simplement d'une chaîne qui commence comme une chaîne numérique suivie de n'importe quel caractère.

Note:

Toute chaîne contenant la lettre E (insensible à la casse) délimitée par des nombres sera considérée comme un nombre exprimé en notation scientifique. Cela peut produire des résultats inattendus.

<?php
var_dump("0D1" == "000"); // false, "0D1" is not scientific notation
var_dump("0E1" == "000"); // true, "0E1" is 0 * (10 ^ 1), or 0
var_dump("2E1" == "020"); // true, "2E1" is 2 * (10 ^ 1), or 20
?>

Chaînes de caractères utilisées dans des contextes numériques

Lorsqu'une string doit être évaluée comme un nombre (par exemple, opérations arithmétiques, déclaration de type int, etc.), les étapes suivantes sont suivies pour déterminer le résultat :

  1. Si la string est numérique, elle est résolue en int si la string est une chaîne numérique entière et entre dans les limites du type int (telles que définies par PHP_INT_MAX), sinon elle est résolue en un float.
  2. Si le contexte autorise les chaînes débutant numériquement et que la string en est une, elle est résolue en int si la partie initiale de la chaîne string est une chaîne numérique entière et entre dans les limites du type int (telles que définies par PHP_INT_MAX), sinon elle est résolue en un float. De plus, une erreur de niveau E_WARNING est soulevée.
  3. Si la string n'est pas numérique, une TypeError est lancée.

Comportement antérieur à PHP 8.0.0

Antérieur à PHP 8.0.0, une string était considérée comme numérique seulement si elle avait des espaces blancs en début de chaîne, si elle avait des espaces blancs en fin de chaîne, la chaîne était considérée comme une chaîne débutant numériquement.

Antérieur à PHP 8.0.0, lorsqu'une chaîne de caractères était utilisée dans un contexte numérique, elle effectuait les mêmes étapes que ci-dessus, avec les différences suivantes :

  • L'utilisation d'une chaîne de caractères débutant numériquement générait une erreur de type E_NOTICE au lieu de E_WARNING.
  • Si la chaîne de caractères n'était pas numérique, une E_WARNING était levée et la valeur 0 était retournée.
Antérieur à PHP 7.1.0, ni E_NOTICE ni E_WARNING n'étaient levées.

<?php
$foo = 1 + "10.5"; // $foo is float (11.5)
$foo = 1 + "-1.3e3"; // $foo is float (-1299)
$foo = 1 + "bob-1.3e3"; // TypeError as of PHP 8.0.0, $foo is integer (1) previously
$foo = 1 + "bob3"; // TypeError as of PHP 8.0.0, $foo is integer (1) previously
$foo = 1 + "10 Small Pigs"; // $foo is integer (11) and an E_WARNING is raised in PHP 8.0.0, E_NOTICE previously
$foo = 4 + "10.2 Little Piggies"; // $foo is float (14.2) and an E_WARNING is raised in PHP 8.0.0, E_NOTICE previously
$foo = "10.0 pigs " + 1; // $foo is float (11) and an E_WARNING is raised in PHP 8.0.0, E_NOTICE previously
$foo = "10.0 pigs " + 1.0; // $foo is float (11) and an E_WARNING is raised in PHP 8.0.0, E_NOTICE previously
?>


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 hachage, 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.

Note:

Une syntaxe de tableau courte existe qui remplace array() par [].

Exemple #1 Un tableau simple

<?php
$array = array(
"foo" => "bar",
"bar" => "foo",
);

// Utilisant la syntaxe de tableau courte
$array = [
"foo" => "bar",
"bar" => "foo",
];
?>

La clé key peut être soit un int, 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, sauf si le nombre est précédé d'un signe + 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 int 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 int 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 la dernière clé entière la plus grande utilisé auparavant était 6.

Exemple #6 Exemple complexe sur la modification de type et l'écrasement

Cet exemple inclus toutes les variations de modification de type de clés et écrasements des éléments.

<?php
$array = array(
1 => 'a',
'1' => 'b', // la valeur "a" sera écrasé par "b"
1.5 => 'c', // la valeur "b" sera écrasé par "c"
-1 => 'd',
'01' => 'e', // comme ceci n'est pas une chaîne de caractère entière elle N'écrasera PAS la clé pour 1
'1.5' => 'f', // comme ceci n'est pas une chaîne de caractère entière elle N'écrasera PAS la clé pour 1
true => 'g', // la valeur "c" sera écrasé par "g"
false => 'h',
'' => 'i',
null => 'j', // la valeur "i" sera écrasé par "j"
'k', // la valeur "k" est assigné la clé 2. Ceci est du au fait que la dernière clé entière la plus grande utilisé auparavant était 1
2 => 'l', // la valeur "k" sera écrasé par "l"
);
var_dump($array);
?>

L'exemple ci-dessus va afficher :

array(7) {
  [1]=>
  string(1) "g"
  [-1]=>
  string(1) "d"
  ["01"]=>
  string(1) "e"
  ["1.5"]=>
  string(1) "f"
  [0]=>
  string(1) "h"
  [""]=>
  string(1) "j"
  [2]=>
  string(1) "l"
}

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 #7 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:

Antérieur à PHP 8.0.0, les crochets et accolades pouvait être utilisé de façon interchangeable pour accéder aux éléments d'un tableau (e.g. $array[42] et $array{42} feraient tous deux la même chose dans l'exemple ci-dessus). La syntaxe avec les accolades a été rendue obsolète en PHP 7.4.0 et n'est plus supportée à partir de PHP 8.0.0.

Exemple #8 Faire référence à un tableau à la sortie d'une fonction ou d'une méthode

<?php
function getArray() {
return array(1, 2, 3);
}

$secondElement = getArray()[1];
?>

Note:

Une tentative d'accès à une clé d'un tableau qui n'a pas été définie revient à tenter d'accéder à une variable non définie : une alerte de niveau E_WARNING sera émise (E_NOTICE avant PHP 8.0.0), et le résultat vaudra null.

Note:

Faire référence à un tableau à la sortie d'une fonction ou d'une méthode d'une valeur scalaire qui n'est pas une chaîne de caractères génère null. Antérieur à PHP 7.4.0, ceci ne générait pas de message d'erreur. À partir de PHP 7.4.0, ceci émet une E_NOTICE ; À partir de PHP 8.0.0, ceci émet une E_WARNING.

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 lors de l'assignation $arr n'existe pas ou est défini à null ou false, 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 affectation directe.

Note: À partir de PHP 7.1.0, l'application de l'opérateur d'index vide sur une chaîne lève une erreur fatale. Auparavant, la chaîne aurait été convertie silencieusement en tableau.

Note: À partir de PHP 8.1.0, créer un nouveau tableau à partir de false est obsolète. Créer un nouveau tableau depuis null et les valeurs indéfinies est toujours autorisé.

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);

// Maintenant, 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
)

Déstructuration de tableau

Les tableaux peuvent être déstructurés en utilisant [] (à partir de PHP 7.1.0) ou list(). Ces constructions peuvent être utilisées pour déstructurer un tableau en variables distinctes.

<?php
$tableau_source = ['foo', 'bar', 'baz'];

[$foo, $bar, $baz] = $tableau_source;

echo $foo; // prints "foo"
echo $bar; // prints "bar"
echo $baz; // prints "baz"
?>

La déstructuration de tableau peut être utilisée dans un foreach pour déstructurer un tableau multidimensionnel tout en itérant sur celui-ci.

<?php
$tableau_source = [
[1, 'John'],
[2, 'Jane'],
];

foreach ($tableau_source as [$id, $name]) {
// Logique utilisant $id et $name
}
?>

Les éléments du tableau seront ignorés si la variable n'est pas fournie. Le tableau commence toujours à l'index 0.

<?php
$tableau_source = ['foo', 'bar', 'baz'];

// Assigne l'élément situé à l'indice 2 à la variable $baz
[, , $baz] = $tableau_source;

echo $baz; // Affiche "baz"
?>

A partir de PHP 7.1.0, les tableaux associatifs peuvent aussi être déstructurés. Cela permet de sélectionner plus facilement le bon élément dans les tableaux à indexation numérique, car l'index peut être explicitement spécifié.

<?php
$tableau_source = ['foo' => 1, 'bar' => 2, 'baz' => 3];

// Assigne l'élément situé à l'indice 'baz' à la variable $three
['baz' => $three] = $tableau_source;

echo $three; // Affiche "3"

$tableau_source = ['foo', 'bar', 'baz'];

// Assigne l'élément situé à l'indice 2 à la variable $baz
[2 => $baz] = $tableau_source;

echo $baz; // Affiche "baz"
?>

La déstructuration de tableau peut être utilisée pour permuter facilement deux variables.

<?php
$a = 1;
$b = 2;

[$b, $a] = [$a, $b];

echo $a; // Affiche 2
echo $b; // Affiche 1
?>

Note:

L'opérateur de décomposition (...) n'est pas supporté dans les assignations.

Note:

Une tentative d'accès à une clé d'un tableau qui n'a pas été définie revient à tenter d'accéder à une variable non définie : une alerte de niveau E_WARNING sera émise (E_NOTICE avant PHP 8.0.0), et le résultat vaudra null.

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 de caractères ('bar' - notez les guillemets). 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.

Avertissement

La solution de recours qui considère une constante non-définie comme une chaîne de caractères nu est une erreur de niveau E_NOTICE. Ceci est obsolète à partir de PHP 7.2.0, et émet une erreur de niveau E_WARNING. À partir de PHP 8.0.0, ceci a été retiré et lance une exception Error.

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 émettra 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 occurred";
$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 occurred";
$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 index d'un tableau avec des guillemets, et donc, "$foo[bar]" est valide. Voir les exemples ci-dessous pour plus de 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 inaccessibles?; 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. Ces valeurs préfixées ont des octets NUL des deux côtés. Les propriétés typées non-initialisées sont silencieusement défaussés.

<?php
class A {
private $B;
protected $C;
public $D;
function __construct()
{
$this->{1} = null;
}
}
var_export((array) new A());
?>

L'exemple ci-dessus va afficher :

array (
  '' . "\0" . 'A' . "\0" . 'B' => NULL,
  '' . "\0" . '*' . "\0" . 'C' => NULL,
  'D' => NULL,
  1 => NULL,
)

Ces octets NUL peuvent 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());
?>

L'exemple ci-dessus va afficher :

array(3) {
  ["BA"]=>
  NULL
  ["AA"]=>
  NULL
  ["AA"]=>
  NULL
}

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.

Déballage des tableaux

Un tableau préfixé par ... sera déballé sur place lors de la définition du tableau. Seul les tableaux et les objets qui implémente Traversable peuvent être déballé. Le déballage de tableau avec ... est disponible à partir de PHP 7.4.0.

Il est possible de déballer plusieurs fois, et d'ajouter des éléments normaux avant et après l'opérateur ... :

Exemple #9 Déballage simple de tableau

<?php
// Using short array syntax.
// Also, works with array() syntax.
$arr1 = [1, 2, 3];
$arr2 = [...$arr1]; //[1, 2, 3]
$arr3 = [0, ...$arr1]; //[0, 1, 2, 3]
$arr4 = [...$arr1, ...$arr2, 111]; //[1, 2, 3, 1, 2, 3, 111]
$arr5 = [...$arr1, ...$arr1]; //[1, 2, 3, 1, 2, 3]

function getArr() {
return ['a', 'b'];
}
$arr6 = [...getArr(), 'c' => 'd']; //['a', 'b', 'c' => 'd']
?>

Déballer un tableau avec l'opérateur ... suit les sémantiques de la fonction array_merge(). C'est-à-dire, que les clés ultérieures écrasent les valeurs antérieures et les clés numériques sont renumérotées :

Exemple #10 Déballage de tableau avec clé dupliqué

<?php
// string key
$arr1 = ["a" => 1];
$arr2 = ["a" => 2];
$arr3 = ["a" => 0, ...$arr1, ...$arr2];
var_dump($arr3); // ["a" => 2]

// integer key
$arr4 = [1, 2, 3];
$arr5 = [4, 5, 6];
$arr6 = [...$arr4, ...$arr5];
var_dump($arr6); // [1, 2, 3, 4, 5, 6]
// Which is [0 => 1, 1 => 2, 2 => 3, 3 => 4, 4 => 5, 5 => 6]
// where the original integer keys have not been retained.
?>

Note:

Les clés qui ne sont ni des entiers, ni des chaînes lance une TypeError. De telles clés peuvent uniquement être généré par un objet Traversable.

Note:

Antérieur à PHP 8.1, le déballage de tableau qui avait une clé sous forme de chaîne n'est pas supporté :

<?php

$arr1 = [1, 2, 3];
$arr2 = ['a' => 4];
$arr3 = [...$arr1, ...$arr2];
// Fatal error: Uncaught Error: Cannot unpack array with string keys in example.php:5

$arr4 = [1, 2, 3];
$arr5 = [4, 5];
$arr6 = [...$arr4, ...$arr5]; // works. [1, 2, 3, 4, 5]
?>

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 #11 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 (entier !)
'02' => 77, // clé = '02'
0 => 12 // la valeur 10 sera écrasée par la valeur 12
);

// empty array
$empty = array();
?>

Exemple #12 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 array est possible en le passant par référence.

Exemple #13 Modification d'un élément dans la boucle

<?php
foreach ($colors as &$color) {
$color = mb_strtoupper($color);
}
unset($color); /* On s'assure que les écritures suivantes
sur $color ne modifie pas le dernier élément du tableau */

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 #14 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 #15 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 #16 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 #17 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 convertit en object avec les propriétés nommées au regard des clés avec leurs valeurs correspondantes. Notez que dans ce cas, avant php 7.2.0 les clés numériques ont été inaccessibles à moins d'être itérées.

<?php
$obj = (object) array('1' => 'foo');
var_dump(isset($obj->{'1'})); // affiche 'bool(true)' depuis PHP 7.2.0; 'bool(false)' auparavant
var_dump(key($obj)); // affiche 'string(1) "1"' depuis PHP 7.2.0; 'int(1)' auparavant
?>

Pour n'importe quel autre type, un membre appelé scalar contiendra la valeur.

<?php
$obj = (object) 'ciao';
echo $obj->scalar; // Affiche : 'ciao'
?>


Les énumérations

(PHP 8 >= 8.1.0)

Les énumérations de base

Les énumérations constituent une couche restrictive au-dessus des classes et des constantes de classe, Elles permettent de définir un ensemble fermé de valeurs possibles pour un type.

<?php
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}

function do_stuff(Suit $s)
{
// ...
}

do_stuff(Suit::Spades);
?>

Pour une description complète, voir le chapitre sur les énumérations.

Casting

Si une enum est convertie en object, elle n'est pas modifiée. Si une enum est convertie en array, un tableau avec une seule clé name (pour les Pure enums) ou un tableau avec les clés name et value (pour les Backed enums) est créé. Tous les autres types de conversion entraîneront une erreur.


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

Grâce au système de compteur de référence qui fait partie du Zend Engine, une ressource qui n'a plus aucune référence est détectée automatiquement et est libérée par le ramasse miette. Pour cette raison, 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 ramasse miette. Voir la section sur les connexions persistantes pour plus d'informations.


Fonctions de rappel / Types Callable

Les fonctions de rappel peuvent être identifiées via le type callable.

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 forme de 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. Accéder aux méthodes protégées et privées à l'intérieur d'une classe est autorisé.

Les méthodes statiques de classe peuvent aussi être passées sans instancier d'objet de cette classe soit, en passant le nom de la classe au lieu d'un objet à l'index 0, ou en passant 'NomDeLaClasse::NomDeLaMethode'.

En dehors des fonctions définies normalement par l'utilisateur, les fonctions anonymes et les fonctions fléchées peuvent aussi être utilisées comme paramètre de type callback.

Note:

À partir de PHP 8.1.0, les fonctions anonymes peuvent aussi être créées en utilisant la syntaxe callable de première classe.

Généralement, tout objet implémentant __invoke() peut aussi être passé au paramètre 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
call_user_func('MyClass::myCallbackMethod');

// Type 5 : Appel à une méthode statique de classe relative
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, obsoléte à partir de PHP 8.2.0
// Type 6 : Les objets implémentent __invoke peuvent être utilisés comme callables
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:

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.


Mixed

Le type mixed accepte toutes les valeurs. Il est équivalent au type union objet|ressource|array|string|float|int|bool|null. Disponible à partir de PHP 8.0.0.

mixed est, dans le langage de la théorie des types, le type supérieur. Cela signifie que tous les autres types sont des sous-types de ce type.


Void

void est une déclaration de type de retour uniquement, indiquant que la fonction ne retourne pas de valeur, mais que la fonction peut quand même se terminer. Il ne peut donc pas faire partie d'une déclaration de type d'union Disponible à partir de PHP 7.1.0.

Note: Même si une fonction a un type de retour void, elle retournera toujours une valeur, cette valeur est toujours null.


Never

never est uniquement un type de retour indiquant que la fonction ne se termine pas. Cela signifie qu'elle appelle exit(), lève une exception ou est une boucle infinie. Elle ne peut donc pas faire partie d'une déclaration de type union Disponible à partir de PHP 8.1.0.

never est, dans le langage de la théorie des types, le type vide. Cela signifie qu'il est le sous-type de tous les autres types et qu'il peut remplacer n'importe quel autre type de retour lors de l'héritage.


Types de classes relatives

Ces déclarations de types ne peuvent être utilisées qu'à l'intérieur des classes.

self

La valeur doit être une instance de la même classe que celle dans laquelle la déclaration de type est utilisée.

parent

La valeur doit être une instance d'un parent de la classe dans laquelle la déclaration de type est utilisée.

static

static est un type de retour uniquement qui exige que la valeur retournée soit une instance de la même classe que celle sur laquelle la méthode est appelée. Disponible à partir de PHP 8.0.0.


Types de valeur

Les types de valeur sont ceux qui vérifient non seulement le type d'une valeur, mais aussi la valeur elle-même. PHP supporte deux types de valeur : false à partir de PHP 8.0.0, et true à partir de PHP 8.2.0.

Avertissement

Antérieur à PHP 8.2.0, le type false ne pouvait être utilisé qu'en tant que partie d'un type union.

Note: Il n'est pas possible de définir des types de valeur personnalisés. Considérez l'utilisation d'une énumeration à la place.


Itérables

Un Iterable est un alias de type intégré au moment de la compilation pour array|Traversable. Depuis son introduction dans PHP 7.1.0 et avant PHP 8.2.0, iterable était un pseudo-type intégré qui agissait comme l'alias de type susmentionné et peut être utilisé comme une déclaration de type. iterable peut être utilisé dans une boucle foreach et avec yield from dans un générateur.

Note:

Les fonctions déclarant un type de retour itérable peuvent aussi être des générateurs.

Exemple #1 Exemple de type de retour itérable d'un générateur

<?php

function gen(): iterable {
yield 1;
yield 2;
yield 3;
}

?>


Déclarations de type

Les déclarations de types peuvent être ajoutées aux arguments des fonctions, valeurs de retour, et, à partir de PHP 7.4.0, les propriétés de classes. Elles assurent que les valeurs sont du type spécifié au temps de l'appel, sinon une TypeError est lancée.

Chaque type pris en charge par PHP, à l'exception du type resource, peut être utilisé dans une déclaration de type par l'utilisateur. Cette page contient un journal des modifications de la disponibilité des différents types et de la documentation sur leur utilisation dans les déclarations de type.

Note:

Lorsqu'une classe implémente une méthode d'interface ou réimplémente une méthode qui a déjà été définie par une classe parente, elle doit être compatible avec la définition susmentionnée. Une méthode est compatible si elle suit les règles de variance.

Historique

Version | Description
8.3.0 | Ajout du support pour les constantes typées de classe, interface, trait, et enum.
8.2.0 | Ajout du support de type DNF (Forme Normale Disjonctive).
8.2.0 | Ajout du support du type true.
8.2.0 | Les type null et false peuvent désormais être utilisés de manière autonome.
8.1.0 | La prise en charge des types d’intersection a été ajoutée.
8.1.0 | Le renvoi par référence à partir d’une fonction void est désormais déconseillé.
8.1.0 | La prise en charge du type de retour uniquement never a été ajoutée.
8.0.0 | Ajout du support de mixed
8.0.0 | La prise en charge du type de retour uniquement static a été ajoutée.
8.0.0 | La prise en charge des types union a été ajoutée.
7.4.0 | Ajout du support du typage des propriétés de classe.
7.2.0 | Ajout du support pour object.
7.1.0 | Ajout du support pour iterable.
7.1.0 | Ajout du support pour void.
7.1.0 | La prise en charge des types nullable a été ajoutée.

Notes d'utilisation des types atomiques

Les types atomiques ont un comportement direct avec quelques mises en garde mineures qui sont décrites dans cette section.

Types scalaires

Avertissement

Les alias pour les types scalaires (bool, int, float, string) ne sont pas supportés. À la place, ils sont traités comme des noms de classe ou d'interface. Par exemple, utiliser boolean comme une déclaration de type nécessite que la valeur soit une instanceof de la classe ou interface boolean, plutôt que de type bool :

<?php
function test(boolean $param) {}
test(true);
?>

Résultat de l'exemple ci-dessus en PHP 8 :

Warning: "boolean" will be interpreted as a class name. Did you mean "bool"? Write "\boolean" to suppress this warning in /in/9YrUX on line 2

Fatal error: Uncaught TypeError: test(): Argument #1 ($param) must be of type boolean, bool given, called in - on line 3 and defined in -:2
Stack trace:
#0 -(3): test(true)
#1 {main}
  thrown in - on line 2

void

Note:

Le retour par référence à partir d’une fonction void est obsolète à partir de PHP 8.1.0, car une telle fonction est contradictoire. Auparavant, elle émettait déjà les E_NOTICE suivants lorsqu’elle était appelée : Only variable references should be returned by reference.

<?php
function &test(): void {}
?>

Types Callable

Ce type ne peut pas être utilisé comme déclaration de type de propriété de classe.

Note: Il n’est pas possible de spécifier la signature de la fonction.

Déclarations de type sur les paramètres de référence

Si un paramètre passé par référence à une déclaration de type, le type de la variable n’est vérifié qu’à l’entrée de la fonction, au début de l’appel, mais pas lorsque la fonction est de nouveau appelée. Cela signifie qu’une fonction peut modifier le type de la variable passée par référence.

Exemple #1 Paramètre typé passé par référence

<?php
function array_baz(array &$param)
{
$param = 1;
}
$var = [];
array_baz($var);
var_dump($var);
array_baz($var);
?>

Résultat de l'exemple ci-dessus est similaire à :

int(1)

Fatal error: Uncaught TypeError: array_baz(): Argument #1 ($param) must be of type array, int given, called in - on line 9 and defined in -:2
Stack trace:
#0 -(9): array_baz(1)
#1 {main}
  thrown in - on line 2

Notes d’utilisation des types composites

Les déclarations de type composite sont soumises à quelques restrictions et effectueront un contrôle de redondance au moment de la compilation pour éviter les bogues simples.

Attention

Antérieur à PHP 8.2.0 et l’introduction des types DNF, il n’était pas possible de combiner les intersections de type avec les unions de type.

Types d’unions

Avertissement

Il n’est pas possible de combiner les deux types de valeur false et true ensemble dans une union de type. Utilisez plutôt bool.

Attention

Antérieur à PHP 8.2.0, comme false et null ne pouvaient pas être utilisés comme types autonomes, une union de type composé uniquement de ces types n’était pas autorisé. Cela comprend les types suivants : false, false|null et ?false.

Sucre syntaxique de type nullable

Une déclaration de type de base unique peut être marquée comme valeur NULL en faisant précéder le type d’un point d’interrogation (?). Ainsi ?T et T|null sont identiques.

Note: Cette syntaxe est prise en charge à partir de PHP 7.1.0, et est antérieure à la prise en charge généralisée des unions de type.

Note:

Il est également possible d’obtenir des arguments nullable en faisant de null la valeur par défaut. Ceci n’est pas recommandé, car si la valeur par défaut est modifiée dans une classe enfant, une violation de compatibilité de type sera déclenchée car le type null devra être ajouté à la déclaration de type.

Exemple #2 Ancienne façon de rendre les arguments nullables

<?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

Types dupliqués et redondants

Pour détecter des bogues simples dans les déclarations de type composite, les types redondants qui peuvent être détectés sans effectuer de chargement de classe entraîneront une erreur de compilation. Cela comprend :

  • Chaque type résolu par nom ne peut se produire qu’une seule fois. Les types tels que int|string|INT ou Countable&Traversable&COUNTABLE génèrent une erreur.
  • L’utilisation de mixed entraîne une erreur.
  • Pour les types d’unions :
    • Si bool est utilisé, false ou true ne peut pas être utilisé en plus.
    • Si object est utilisé, les types de classe ne peuvent pas être utilisés en plus.
    • Si iterable est utilisé, array et Traversable ne peuvent pas être utilisés en plus.
  • Pour les types d’intersections :
    • L’utilisation d’un type qui n’est pas un type de classe génère une erreur.
    • L’utilisation de self, parent ou static entraîne une erreur.
  • Pour les type DNF :
    • Si un type plus générique est utilisé, le plus restrictif est redondant.
    • Utilisation de deux types d’intersection identiques.

Note: Cela ne garantit pas que le type est « minimal », car cela nécessiterait de charger tous les types de classe utilisés.

Par exemple, si A et B sont des alias de classe, alors A|B reste une union de type légale, même s'il est possible de réduire à A ou B. De même, si la classe B extends A {}, alors A|B est également une union de type légale, même s'il pourrait être réduit au type A uniquement.

<?php
function foo(): int|INT {} // Disallowed
function foo(): bool|false {} // Disallowed
function foo(): int&Traversable {} // Disallowed
function foo(): self&Traversable {} // Disallowed

use A as B;
function foo(): A|B {} // Disallowed ("use" is part of name resolution)
function foo(): A&B {} // Disallowed ("use" is part of name resolution)

class_alias('X', 'Y');
function foo(): X|Y {} // Allowed (redundancy is only known at runtime)
function foo(): X&Y {} // Allowed (redundancy is only known at runtime)
?>

Exemples

Exemple #3 Déclaration de type de classe de base

<?php
class C {}
class D extends C {}

// This doesn't extend C.
class E {}

function f(C $c) {
echo get_class($c)."\n";
}

f(new C);
f(new D);
f(new E);
?>

Résultat de l'exemple ci-dessus en PHP 8 :

C
D

Fatal error: Uncaught TypeError: f(): Argument #1 ($c) must be of type C, E given, called in /in/gLonb on line 14 and defined in /in/gLonb:8
Stack trace:
#0 -(14): f(Object(E))
#1 {main}
  thrown in - on line 8

Exemple #4 Déclaration de type d’interface de base

<?php
interface I { public function f(); }
class C implements I { public function f() {} }

// This doesn't implement I.
class E {}

function f(I $i) {
echo get_class($i)."\n";
}

f(new C);
f(new E);
?>

Résultat de l'exemple ci-dessus en PHP 8 :

C

Fatal error: Uncaught TypeError: f(): Argument #1 ($i) must be of type I, 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 #5 Déclaration de type de retour de base

<?php
function sum($a, $b): float {
return $a + $b;
}

// Note that a float will be returned.
var_dump(sum(1, 2));
?>

L'exemple ci-dessus va afficher :

float(3)

Exemple #6 Renvoi d’un objet

<?php
class C {}

function getC(): C {
return new C;
}

var_dump(getC());
?>

L'exemple ci-dessus va afficher :

object(C)#1 (0) {
}

Exemple #7 Déclaration de type d’argument nullable

<?php
class C {}

function f(?C $c) {
var_dump($c);
}

f(new C);
f(null);
?>

L'exemple ci-dessus va afficher :

object(C)#1 (0) {
}
NULL

Exemple #8 Déclaration de type de retour nullable

<?php
function get_item(): ?string {
if (isset($_GET['item'])) {
return $_GET['item'];
} else {
return null;
}
}
?>

Exemple #9 Déclaration de type pour les propriétés de classe

<?php
class User {
public static string $foo = 'foo';

public int $id;
public string $username;

public function __construct(int $id, string $username) {
$this->id = $id;
$this->username = $username;
}
}
?>

Typage Strict

Par défaut, PHP va convertir les valeurs d'un mauvais type vers le type scalaire attendu tant que possible. Par exemple, une fonction, qui attend comme paramètre une string, à laquelle est passée un int recevra une variable de type string.

Il est possible d'activer le mode de typage strict fichier par fichier. Dans le mode strict, seule une variable correspondant exactement au type attendu dans la déclaration sera acceptée sinon une TypeError sera levée. La seule exception à cette règle est qu'une valeur de type int peut passer une déclaration de type float.

Avertissement

Les appels aux fonctions depuis des fonctions internes ne seront pas affectés par la déclaration strict_types.

Pour activer le mode strict, l'expression declare est utilisée avec la déclaration strict_types :

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 (mode coercitif) sera respecté et la valeur sera forcée.

Note:

Le typage strict n'est défini que pour les déclarations de type scalaire.

Exemple #10 Typage strict pour les valeurs d'arguments

<?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));
?>

Résultat de l'exemple ci-dessus en PHP 8 :

int(3)

Fatal error: Uncaught TypeError: sum(): Argument #1 ($a) must be of type int, 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 coercitif pour les valeurs d'arguments

<?php
function sum(int $a, int $b) {
return $a + $b;
}

var_dump(sum(1, 2));

// These will be coerced to integers: note the output below!
var_dump(sum(1.5, 2.5));
?>

L'exemple ci-dessus va afficher :

int(3)
int(3)

Exemple #12 Typage strict pour les valeurs de retour

<?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: sum(): Return value must be of type int, float returned in -:5
Stack trace:
#0 -(9): sum(1, 2.5)
#1 {main}
  thrown in - on line 5


Jonglage de type

PHP ne requiert pas une définition de type explicite dans les déclarations de variables. Dans ce cas, le type d'une variable est déterminé en fonction de la valeur qu'elle a stocké. C'est-à-dire, si une string est assignée à la variable $var, alors $var est de type string. Si après une valeur int est assignée à $var, elle sera de type int.

PHP peut tenter de convertir le type d'une valeur en une autre automatiquement dans certains contextes. Les différents contextes qui existent sont :

  • Numérique
  • String
  • Logique
  • Intégral et string
  • Comparatif
  • Fonction

Note: Quand une valeur a besoin d'être interprétée comme un type différent, la valeur elle-même ne change pas de type.

Pour forcer une variable à être évaluée comme un type particulier, voir la section sur le casting de type. Pour changer le type d'une variable, voir la fonction settype().

Contextes numériques

Ceci est le contexte lors de l'utilisation d' opérateur arithmétique.

Dans ce contexte si un des opérandes est un float (ou pas interprétable comme int), les deux opérandes sont interprétés comme des floats, et le résultat sera un float. Sinon, les opérandes sont interprétés comme des ints, et le résultat sera aussi un int. À partir de PHP 8.0.0, si un des opérandes ne peut être interprété une TypeError est lancée.

Contextes string

Ceci est le contexte lors de l'utilisation de echo, print, l'interpolation de chaînes de caractères, ou l' opérateur de concaténation pour les chaînes de caractères.

Dans ce contexte la valeur sera interprétée comme une string. Si la valeur ne peut pas être interprétée, une TypeError est levée. Antérieur à PHP 7.4.0, une E_RECOVERABLE_ERROR était soulevée.

Contextes logiques

Ceci est le contexte lors de l'utilisation de déclarations conditionnelles, l'opérateur ternaire, ou un opérateur logique.

Dans ce contexte la valeur sera interprétée comme un bool.

Contextes intégraux et string

Ceci est le contexte lors de l'utilisation d'un opérateur bit à bit.

Dans ce contexte si tous les opérandes sont de type string alors le résultat sera aussi une string. Sinon, les opérandes seront interprétés comme des ints, et le résultat sera aussi un int. À partir de PHP 8.0.0, si un des opérandes ne peut être interprétés une TypeError est lancée.

Contextes comparatifs

Ceci est le contexte lors de l'utilisation d'un opérateur de comparaison.

Les conversions de types qui se produisent dans ce contexte sont expliqués dans le tableau Comparaison avec plusieurs types.

Contextes de fonctions

Ceci est le contexte quand une valeur est passée à un paramètre ou propriété typée ou retournée depuis une fonction qui déclare un type de retour.

Dans ce contexte, la valeur doit être une valeur du type. Il existe deux exceptions, la première est la suivante : si la valeur est de type int et que le type déclaré est float, alors l'entier est converti en nombre à virgule flottante. La seconde est : si le type déclaré est un type scalaire , la valeur est convertible en un type scalaire, et le mode de typage coercitif est actif (par défaut), la valeur peut être convertie en une valeur scalaire acceptée. Voir ci-dessous pour une description de ce comportement.

Avertissement

Les fonctions internes contraigne automatiquement null aux types scalaires, ce comportement est OBSOLÈTE à partir de PHP 8.1.0.

Typage coercitif avec déclarations de type simples

  • Type de déclaration bool : valeur est interprétée comme bool.
  • Type de déclaration int : valeur est interprétée comme int si la conversion est bien-définie. Par exemple le chaîne est numérique.
  • Type de déclaration float : valeur est interprétée comme float si la conversion est bien-définie. Par exemple le chaîne est numérique.
  • Type de déclaration string : valeur est interprétée comme string.

Typage coercitif avec unions de type

Lorsque strict_types n’est pas activé, les déclarations de type scalaire sont soumises à des contraintes de type implicites limitées. Si le type exact de la valeur ne fait pas partie de l’union, le type cible est choisi dans l’ordre de préférence suivant :

  1. int
  2. float
  3. string
  4. bool
Si le type existe dans l'union et que la valeur peut être forcée en ce type en utilisant la sémantique de vérification de type existante de PHP, alors le type est choisi.

Attention

À titre d’exception, si la valeur est une chaîne et que int et float font tous deux partie de l’union, le type préféré est déterminé par la sémantique de chaîne numérique. Par exemple, pour "42" int est choisi, tandis que pour "42.0" float est choisi.

Note:

Les types qui ne font pas partie de la liste de préférences ci-dessus ne sont pas des cibles admissibles à la coercition implicite. En particulier, aucune contrainte implicite aux types null et false ne se produit.

Exemple #1 Exemple de types contraints à une partie type de l'union

<?php
// int|string
42 --> 42 // exact type
"42" --> "42" // exact type
new ObjectWithToString --> "Result of __toString()"
// object never compatible with int, fall back to string
42.0 --> 42 // float compatible with int
42.1 --> 42 // float compatible with int
1e100 --> "1.0E+100" // float too large for int type, fall back to string
INF --> "INF" // float too large for int type, fall back to string
true --> 1 // bool compatible with int
[] --> TypeError // array not compatible with int or string

// int|float|bool
"45" --> 45 // int numeric string
"45.0" --> 45.0 // float numeric string

"45X" --> true // not numeric string, fall back to bool
"" --> false // not numeric string, fall back to bool
"X" --> true // not numeric string, fall back to bool
[] --> TypeError // array not compatible with int, float or bool
?>

Cast de type

Le casting de type converti la valeur à un type donnée en écrivant le type entre parenthèse avant la valeur à convertir.

<?php
$foo = 10; // $foo is an integer
$bar = (bool) $foo; // $bar is a boolean
?>

Les casts permis sont :

  • (int) - cast en int
  • (bool) - cast en bool
  • (float) - cast en float
  • (string) - cast en string
  • (array) - cast en array
  • (object) - cast en object
  • (unset) - cast en NULL

Note:

(integer) est un alias du cast (int). (boolean) est un alias du cast (bool). (binary) est un alias du cast (string). (double) et (real) sont des alias du cast (float). Ces casts n'utilisent pas le nom de type canonique et ne sont pas recommandés.

Avertissement

L'alias de cast (real) est obsolète à partir de PHP 8.0.0.

Avertissement

Le cast (unset) a été rendu obsolète à partir de PHP 7.2.0. À noter que le cast (unset) est identique à assigner la valeur NULL à une variable ou un appel. Le cast (unset) est supprimé à partir de PHP 8.0.0.

Attention

Le cast (binary) et le préfixe b existent uniquement pour la compatibilité ascendante. Actuellement (binary) et (string) sont identiques, mais ceci peut changer : vous ne devriez pas compter dessus.

Note:

Les espaces blancs sont ignoré à l'intérieur des parenthèses d'un cast. Ansi, les deux casts suivant sont équivalents :

<?php
$foo = (int) $bar;
$foo = ( int ) $bar;
?>

Cast de strings littérales et variables en strings binaires :

<?php
$binary = (binary) $string;
$binary = b"binary string";
?>

Note: Au lieu de transtyper une variable en une string, il est également possible d'entourer la variable de guillemets doubles.

<?php
$foo = 10; // $foo is an integer
$str = "$foo"; // $str is a string
$fst = (string) $foo; // $fst is also a string

// This prints out that "they are the same"
if ($fst === $str) {
echo "they are the same";
}
?>

Ce qui se produira exactement lors d'un transtypage entre certains types n'est pas forcément évident. Pour plus d'informations, voir ces sections :

  • Convertir en boolean
  • Convertir en integer
  • Convertir en float
  • Convertir en string
  • Convertir en array
  • Convertir en object
  • Convertir en resource
  • Convertir en NULL
  • Les tables de comparaison de type

Note: Comme PHP prend en charge l'indexation dans les strings via des positions en utilisant la même syntaxe que l'indexation des array, l'exemple suivant est valable 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
?>
Voir la section sur l'accès aux chaînes par caractère pour plus d'informations.


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_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$

Note: Dans nos propos, une lettre peut être a-z, A-Z, et les octets de 128 à 255 (0x80-0xff).

Note: $this est une variable spéciale, qui ne peut pas être assignée. Avant PHP 7.1.0, l'affectation indirecte (c.à.d. en utilisant les variables variables) était impossible.

Astuce

Jetez 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 float; 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. Une erreur de niveau E_WARNING (antérieur à PHP 8.0.0, 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 plus de détails voir la liste des variables pré-définies.

PHP fournit aussi un jeu de tableaux prédéfinis contenant les variables du serveur (si possible), les variables d'environnement et celles d'entrées. Ces tableaux sont un peu particuliers, car ils sont automatiquement globaux, c.à.d qu'ils sont automatiquement disponibles dans toutes les portées d'exécution. Pour cette raison, ils sont dits 'superglobaux'. (il n'y a pas de mécanisme en PHP pour créer de telles variables.) Pour plus de détails voir la liste des superglobales.

Note: Variables variables

Les superglobales ne peuvent pas être utilisées comme variables dynamiques dans les fonctions ou les méthodes des classes.

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 est le contexte dans lequel elle est définie. Pour la plupart, toutes les variables PHP n'ont qu'une seule portée. Cette portée unique englobe les fichiers inclus avec les fonctions include et require. 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();
?>

Ce génèrera un diagnostic E_WARNING (ou E_NOTICE antérieur à PHP 8.0.0) de variable non définit. Cependant, si le paramètre INI display_errors est défini pour cacher ces diagnostics alors rien du tout sera affiché. La raison pour cela est que 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 Exemple montrant les superglobales et la portée

<?php
function test_superglobal()
{
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 premier 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--;
}
?>

Les variables statiques peuvent être assignées des valeurs qui sont issue d'expression constante, mais les expressions dynamique, tel que les appels de fonctions, résulteront en une erreur d'analyse.

Exemple #8 Déclaration de variables statiques

<?php
function foo(){
static $int = 0; // correct
static $int = 1+2; // correct
static $int = sqrt(121); // faux (car c'est une fonction)

$int++;
echo $int;
}
?>

À partir de PHP 8.1.0, lorsqu'une méthode utilisant des variables statiques est héritée (mais pas surchargée), la méthode héritée partage désormais les variables statiques avec la méthode parente. Cela signifie que les variables statiques dans les méthodes se comportent dorénavant de la même manière que les propriétés statiques.

Exemple #9 Utilisation de variables statiques dans les méthodes héritées

<?php

class Foo {
public static function counter() {
static $counter = 0;
$counter++;
return $counter;
}
}

class Bar extends Foo {}
var_dump(Foo::counter()); // int(1)
var_dump(Foo::counter()); // int(2)
var_dump(Bar::counter()); // int(3), Avant PHP 8.1.0 int(1)
var_dump(Bar::counter()); // int(4), Avant PHP 8.1.0 int(2)

Note:

Les déclarations statiques sont résolues au moment de la compilation.

Les références avec les variables global et static

PHP implémente les modificateurs de variables static et global, 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;
$new = new stdClass;
$obj = &$new;
}

function test_global_noref() {
global $obj;
$new = new stdClass;
$obj = $new;
}

test_global_ref();
var_dump($obj);
test_global_noref();
var_dump($obj);
?>

L'exemple ci-dessus va afficher :

NULL
object(stdClass)#1 (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 'Static object: ';
var_dump($obj);
if (!isset($obj)) {
$new = new stdClass;
// Assign a reference to the static variable
$obj = &$new;
}
if (!isset($obj->property)) {
$obj->property = 1;
} else {
$obj->property++;
}
return $obj;
}

function &get_instance_noref() {
static $obj;

echo 'Static object: ';
var_dump($obj);
if (!isset($obj)) {
$new = new stdClass;
// Assign the object to the static variable
$obj = $new;
}
if (!isset($obj->property)) {
$obj->property = 1;
} else {
$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 :

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object(stdClass)#3 (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 la portée depuis laquelle l'appel s'effectue. Par exemple, si vous avez une expression de la forme $foo->$bar, alors la portée locale sera examinée 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";
?>

L'exemple ci-dessus va afficher :

I am bar.
I am bar.
I am bar.
I am r.

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>

Il y a que deux façons d'accéder aux données provenant d'un formulaire HTML. Les méthodes disponible actuellement sont décrites ci-dessous :

Exemple #2 Accéder simplement à des variables de formulaires POST

<?php
echo $_POST['username'];
echo $_REQUEST['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']. Voir 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 #3 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>

Note: Si le nom d'une variable externe commence par une syntaxe valide pour un tableau, les caractères qui suivent sont silencieusement ignorés. Par exemple : <input name="foo[bar]baz"> deviens $_REQUEST['foo']['bar'].

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 contenues 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.

Note: Depuis PHP 7.2.34, 7.3.23 et 7.4.11, respectivement, les noms des cookies entrants ne sont plus url-décodés, et ce, pour des raisons de sécurité.

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 #4 Exemple avec setcookie()

<?php
if (isset($_COOKIE['compte'])) {
$compte = $_COOKIE['compte'] + 1;
} else {
$compte = 1;
}
setcookie('compte', $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 œil 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.

HTTP étant un protocole texte, la plupart, sinon tous, le contenu qui vient dans les tableaux Superglobaux, comme $_POST et $_GET restera en tant que chaînes. PHP n'essaiera pas de convertir des valeurs en un type spécifique. Dans l'exemple ci-dessous, $_GET["var1"] contiendra la chaîne "null" et $_GET["var2"], la chaîne "123".

/index.php?var1=null&var2=123

Historique

Version | Description
7.2.34, 7.3.23, 7.4.11 | Les noms des cookies entrants ne sont plus url-décodés, et ce, pour des raisons de sécurité.


Les constantes

Sommaire

  • Syntaxe
  • Constantes prédéfinie
  • 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). Les constantes sont sensibles à la casse. Par convention, les constantes sont toujours en majuscule.

Note:

Antérieur à PHP 8.0.0, les constantes définies en utilisant la fonction define() peuvent être insensibles à la casse.

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_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$

Il est possible de définir une constante avec un nom réservé ou même invalide via define(), ces valeurs ne peuvent alors être récupérées qu'avec la fonction constant(). Faire ceci n'est cependant pas recommandé.

Astuce

Jetez 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 128 à 255 (0x80-0xff).

Tout comme les superglobals, la portée d'une constante est globale. Les constantes peuvent être accédées depuis partout dans un script sans tenir compte de la portée. Pour plus d'informations sur la portée, lisez la section du manuel sur la portée des variables.

Note: À partir de PHP 7.1.0, les constantes de classes peuvent définir une visibilité de protégée ou privée, les rendant disponibles que dans la portée hiérarchique de la classe où elles ont été définies.


Syntaxe

Les constantes peuvent être définies en utilisant le mot clé const ou en utilisant la fonction define(). Tandis que define() permet de définir une constante pour une expression arbitraire, le mot-clé const a des restrictions comme indiqué dans le paragraphe suivant. Une fois qu'une constante est définie, elle ne peut jamais être modifiée, ou détruite.

Lors de l'utilisation du mot-clé const, seuls les expressions de type scalaires (bool, int, float et string) et des arrays constants contenant seulement des expressions scalaires sont acceptées. 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.

La valeur d'une constante est accédée simplement en spécifiant son nom. Contrairement aux variables, une constante n'est pas préfixée d'un $. Il est aussi possible d'utiliser la fonction constant() pour lire la valeur d'une constante si son nom est obtenue dynamiquement. 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 une constante indéfinie est utilisé une Error est lancée. Antérieur à PHP 8.0.0, les constantes indéfinies étaient interprétées comme un mot nu de type chaîne de caractères, c.à.d. (CONSTANT vs "CONSTANT"). Cette solution de repli est dépréciée à partir de PHP 7.2.0, et une erreur de niveau E_WARNING était émise lorsque ce cas se produisait. Antérieur à PHP 7.2.0, une erreur de niveau E_NOTICE était émise à la place. Voir également l'entrée du manuel qui explique pourquoi $foo[bar] est faux (sauf si bar est une constante). Ceci ne s'applique pas pour les constantes (complètement) qualified, qui lance toujours une Error.

Note: Pour vérifier qu'une constante est définie, utiliser la fonction defined().

Il y a des différences entre les constantes et les variables :

  • Les constantes ne commencent pas par le signe ($).
  • 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 peuvent seulement évaluer à des valeurs scalaires ou tableaux.

Exemple #1 Définir une constante

<?php
define("CONSTANT", "Bonjour le monde.");
echo CONSTANT; // affiche "Bonjour le monde."
echo Constant; // Lance une Error : Undefined constant "Constant"
// Antérieur à PHP 8.0.0, affiche "Constante" et émet un avertissement.
?>

Exemple #2 Définir des constantes en utilisant le mot-clé const

<?php
// Simple valeur scalaire
const CONSTANT = 'Bonjour le monde !';

echo CONSTANT;

// Expression scalaire
const ANOTHER_CONST = CONSTANT.'; Aurevoir le monde !';
echo ANOTHER_CONST;

const ANIMALS = array('chien', 'chat', 'oiseaux');
echo ANIMALS[1]; // affiche "chat"

// Tableaux constant
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 prédéfinie

PHP fournit un grand nombre de constantes prédéfinie. 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.


Constantes magiques

Il y a neuf 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. Toutes ces constantes "magiques" sont évaluées au moment de la compilation, contrairement aux constantes classiques, qui sont évaluées au moment de l'exécution. Ces constantes spéciales sont insensibles à la casse.

Les constantes magiques de PHP
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, ou {closure} pour les fonctions anonymes.
__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). 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.
ClassName::class | Le nom entièrement qualifié de la classe.

Voir aussi

  • ::class
  • get_class()
  • get_object_vars()
  • file_exists()
  • function_exists()


Les expressions

Les expressions sont les pièces de construction les plus importants 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 oil 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 (bool). (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 $a = 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 $b = ($a = 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 $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

  • Priorité des opérateurs
  • Arithmétique
  • Opérateurs d'incrémentation et décrémentation
  • Affectation
  • Bitwise
  • Comparaison
  • Contrôle d'erreur
  • Exécution
  • Logique
  • Opérateurs de chaînes de caractères
  • Tableaux
  • Type

Un opérateur est quelque chose qui prend une ou plusieurs valeurs (ou expressions, dans le jargon de la programmation) et qui produit 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 priorité 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 priorité é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, dont la priorité est é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'associativité à uniquement du sens pour les opérateurs binaire (et ternaire). Les opérateurs unitaires sont soit préfixé, soit suffixé ainsi cette notion n'est pas applicable. Par exemple !!$a peut uniquement être groupé de la manière suivante !(!$a).

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 priorité des opérateurs et leurs associations.

Le tableau qui suit liste les opérateurs par ordre de priorité, avec la priorité la plus élevée en haut. Les opérateurs sur la même ligne ont une priorité équivalente (donc l'associativité décide du groupement).

Priorité des opérateurs
Associativité | Opérateurs | Information additionnelle
(n/a) | clone new | clone et new
droite | ** | arithmétique
(n/a) | + - ++ -- ~ (int) (float) (string) (array) (object) (bool) @ | arithmétique (unitaire + et -), incrément/décrément bit à bit, casting de type et contrôle d'erreur
gauche | instanceof | type
(n/a) | ! | logique
gauche | * / % | arithmétique
gauche | + - . | arithmétique (binaire + et -), tableau et chaîne de caractères (. antérieur à PHP 8.0.0)
gauche | << >> | bitwise
gauche | . | string (à partir de PHP 8.0.0)
non-associatif | < <= > >= | comparaison
non-associatif | == != === !== <> <=> | comparaison
gauche | & | bitwise et références
gauche | ^ | bitwise
gauche | | | bitwise
gauche | && | logique
gauche | || | logique
droite | ?? | coalescence nul
non-associatif | ? : | ternaire (gauche--associatif antérieur à PHP 8.0.0)
droite | = += -= *= **= /= .= %= &= |= ^= <<= >>= ??= | affectation
(n/a) | yield from | yield from
(n/a) | yield | yield
(n/a) | print | print
gauche | and | logique
gauche | xor | logique
gauche | or | logique

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 (antérieur à PHP 8.0.0)

$a = 1;
$b = 2;
$a = $b += 3; // $a = ($b += 3) -> $a = 5, $b = 5
?>

La priorité et l'association de l'opérateur ne déterminent 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
?>

Exemple #3 +, - et . ont la même priorité (antérieur à PHP 8.0.0)

<?php
$x = 4;
// cette ligne peut entraîner une sortie inattendue :
echo "x moins un est égal " . $x-1 . ", en tout cas j'espère\n";
// parce que c'est évalué comme la ligne suivante (antérieur à PHP 8.0.0) :
echo (("x moins un est égal " . $x) - 1) . ", en tout cas j'espère\n";
// la priorité désirée peut être renforcée en utilisant les parenthèses. :
echo "x moins un est égal " . ($x-1) . ", en tout cas j'espère\n";
?>

L'exemple ci-dessus va afficher :

-1, en tout cas j'espère
-1, en tout cas j'espère
x moins un est égal 3, en tout cas j'espère

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.

Historique

Version | Description
8.0.0 | La concaténation de chaînes de caractères (.) a désormais une précédence moins élevée que l'addition/soustraction arithmétique (+ et -) et les shifts bit-à-bit gauche/droite (<< et >>); auparavant ceci avait la même précédence que + et -, et une précédence plus élevée que << et >>.
8.0.0 | L'opérateur ternaire (? :) est désormais non associatif ; auparavant, il était gauche-associatif.
7.4.0 | Dépendre de la précédence de la concaténation de chaînes de caractères (.) relatif à l'addition/soustraction arithmétique (+ ou -) ou les shifts bit-à-bit gauche/droite (<< ou >>), c.-à-d. les utiliser ensemble dans une expression sans parenthèse, est obsolète.
7.4.0 | Dépendre de la gauche-associativité de l'opérateur ternaire (? :), c.-à-d. l'imbrication de plusieurs opérateurs ternaires qui ne sont pas entre parenthèse, est obsolète.


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 | Identité | Conversion de $a vers int ou float, selon le plus approprié.
-$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 | Modulus | Reste de $a divisé par $b.
$a ** $b | Exponentiation | Résultat de l'élévation de $a à la puissance $b.

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 (c.-à-d. a pour reste 0), auquel cas une valeur entière sera retournée. Pour la division entière, voir intdiv().

Les opérandes du modulo sont converties en int avant exécution. Pour le modulo sur des nombres décimaux, voir fmod().

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

  • Les fonctions mathématiques


Opérateurs d'incrémentation et décrémentation

Incrémentation et décrémentation

PHP prend en charge les opérateurs de pre- et post- incrémentation et décrémentation. Ces opérateurs unaires permettent d'augmenter ou de diminuer la valeur de un.

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 'Post-incrément:', PHP_EOL;
$a = 5;
var_dump($a++);
var_dump($a);
echo 'Pre-incrément:', PHP_EOL;
$a = 5;
var_dump(++$a);
var_dump($a);
echo 'Post-décrément:', PHP_EOL;
$a = 5;
var_dump($a--);
var_dump($a);
echo 'Pre-décrément:';
$a = 5;
var_dump(--$a);
var_dump($a);
?>

L'exemple ci-dessus va afficher :

Post-incrément:
int(5)
int(6)
Pre-incrément:
int(6)
int(6)
Post-décrément:
int(5)
int(4)
Pre-décrément:
int(4)
int(4)
Avertissement

Les opérateurs d'incrémentation et de décrémentation n'ont aucun effet sur les valeurs de type bool. Un E_WARNING est émis à partir de PHP 8.3.0, car cela convertira implicitement la valeur en int à l'avenir.

L'opérateur de décrémentation n'a aucun effet sur les valeurs de type null. Un E_WARNING est émis à partir de PHP 8.3.0, car cela convertira implicitement la valeur en int à l'avenir.

L'opérateur de décrémentation n'a aucun effet sur les chaînes non numériques. Un E_WARNING est émis à partir de PHP 8.3.0, car une TypeError sera levée à l'avenir.

Note:

Les objets internes qui prennent en charge la surcharge de l'addition et/ou de la soustraction peuvent également être incrémentés et/ou décrémentés. Un tel objet interne est GMP.

Fonctionnalité d'incrémentation de chaînes PERL

Avertissement

Cette fonctionnalité est obsolète de manière souple à partir de PHP 8.3.0. La fonction str_increment() devrait être utilisée à la place.

Il est possible d'incrémenter une chaîne non numérique dans PHP. La chaîne doit être une chaîne ASCII alphanumérique. Cela incrémente les lettres jusqu'à la lettre suivante, et lorsque la lettre Z est atteinte, l'incrément est reporté à la valeur à gauche. Par exemple, $a = 'Z'; $a++; transforme $a en 'AA'.

Exemple #1 Exemple d'incrémentation de chaîne PERL

<?php
echo '== Chaînes alphabétiques ==' . PHP_EOL;
$s = 'W';
for ($n=0; $n<6; $n++) {
echo ++$s . PHP_EOL;
}
// Les chaînes alphanumériques se comportent 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 :

== Chaînes alphabétiques ==
X
Y
Z
AA
AB
AC
== Chaînes alphanumériques ==
A9
B0
B1
B2
B3
B4
A09
A10
A11
A12
A13
A14
Avertissement

Si la chaîne alphanumérique peut être interprétée comme une chaîne numérique, elle sera convertie en int ou en float. C'est particulièrement problématique avec les chaînes qui ressemblent à des nombres à virgule flottante écrits en notation exponentielle. La fonction str_increment() ne souffre pas de ces conversions de type implicites.

Exemple #2 Conversion de chaîne alphanumérique en flottant

<?php
$s = "5d9";
var_dump(++$s);
var_dump(++$s);
?>

L'exemple ci-dessus va afficher :

string(3) "5e0"
float(6)

Cela est dû au fait que la valeur "5e0" est interprétée comme un float et convertie en la valeur 5.0 avant d'être incrémentée.


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.
?>

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. 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
?>

L'opérateur new retourne une référence automatiquement, de ce fait, assigner le résultat de new par référence est une erreur

<?php
class C {}

$o = &new C;
?>

L'exemple ci-dessus va afficher :

Parse error: syntax error, unexpected 'new' (T_NEW) in …

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.

Les opérateurs d'affectation arithmétiques

Exemple | Equivalent | Opération
$a += $b | $a = $a + $b | Addition
$a -= $b | $a = $a - $b | Soustraction
$a *= $b | $a = $a * $b | Multiplication
$a /= $b | $a = $a / $b | Division
$a %= $b | $a = $a % $b | Modulo
$a **= $b | $a = $a ** $b | Exponentiation

Opérateurs d'affectation bits à bits

Exemple | Equivalent | Opération
$a &= $b | $a = $a & $b | Opérateur And
$a |= $b | $a = $a | $b | Opérateur Or
$a ^= $b | $a = $a ^ $b | Opérateur Xor
$a <<= $b | $a = $a << $b | Décalage à gauche
$a >>= $b | $a = $a >> $b | Décalage à droite

Autres opérateurs d'affectation

Exemple | Equivalent | Opération
$a .= $b | $a = $a . $b | Concaténation d'une chaîne de caractères
$a ??= $b | $a = $a ?? $b | Opérateur de coalescence nul

Voir aussi

  • les opérateurs arithmétiques
  • les opérateurs bits à bits
  • les opérateurs de coalescence nul


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écale les bits de $a, $b fois sur 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
 --------- --------- -- ---------
résultat 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 :

---------     ---------  -- ---------
 résultat       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

Utilisez les fonctions de l'extension gmp pour les manipulations sur les bits, lorsque les entiers dépassent PHP_INT_MAX.

Voir 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 | Égal | 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 | Combiné | Un entier inférieur, égal ou supérieur à zéro lorsque $a est inférieur, égal, ou supérieur à $b respectivement.

Si les deux opérandes sont des chaînes numériques, ou si un opérande est un nombre et l'autre est une chaîne numérique, alors 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.

Avertissement

Antérieur à PHP 8.0.0, si une string est comparé à un nombre ou à une chaîne numérique alors la string sera convertie en un nombre avant d'effectuer la comparaison. Ceci peut mener à des résultats surprenant comme il peut être vu avec l'exemple suivant :

<?php
var_dump(0 == "a");
var_dump("1" == "01");
var_dump("10" == "1e1");
var_dump(100 == "1e2");

switch ("a") {
case 0:
echo "0";
break;
case "a":
echo "a";
break;
}
?>

Résultat de l'exemple ci-dessus en PHP 7 :

bool(true)
bool(true)
bool(true)
bool(true)
0

Résultat de l'exemple ci-dessus en PHP 8 :

bool(false)
bool(true)
bool(true)
bool(true)
a

<?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

// non seulement les valeurs sont comparées; les clés doivent correspondre
$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 string | string | Convertit null en "", comparaison numérique ou lexicale
bool ou null | N'importe quoi | Convertit en bool, false < true
object | object | Les classes internes peuvent définir leur propre méthode de comparaison?; différentes classes sont incomparables?; entre objets de même classe voir Comparaison d'objet
chaîne de caractères, ressource, entier ou nombre décimal | chaîne de caractères, ressource, entier ou nombre décimal | Transforme les chaînes de caractères et les ressources en nombres
array | array | 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 sont incomparables, 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éen 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 et l'opérateur combiné
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 1;
} elseif ($val < $op2[$key]) {
return -1;
} elseif ($val > $op2[$key]) {
return 1;
}
}
return 0; // $op1 == $op2
}
?>

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.

Note: Soyez conscient que la manipulation des types n'est pas toujours évidente lors de la comparaison de valeurs de différents types, en particulier comparant des entiers à des booléens ou des entiers à des chaîne de caractèress. Il est par conséquent généralement recommandé d'utiliser les opérateurs de comparaison === et !== au lieu de == et != dans la plupart des cas.

Valeurs incomparables

Tandis que les comparaisons d'identité (=== et !==) peuvent être appliqué à des valeurs arbitraires, les autres opérateurs de comparaisons devrait seulement être appliqué à des valeurs comparables. Le résultat de la comparaison des valeurs incomparables est indéfini, et ne devrait pas être utilisé.

Voir aussi

  • strcasecmp()
  • strcmp()
  • opérateur de tableaux
  • Types

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.

Il est possible d'omettre la partie centrale de l'opérateur ternaire. L'expression expr1 ?: expr3 évalue le résultat de expr1 si expr1 vaut true, et expr3 sinon. expr1 n'est évalué qu'une seule fois dans ce cas.

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 plusieurs opérateurs ternaire qui ne sont pas entre parenthèse en une unique expression est non évident comparé à d'autres langages. En effet antérieur à PHP 8.0.0, l'expression ternaire était évalué gauche-associatif, au lieu de droite-associatif comme la plupart des autres langages de programmations. Dépendre de la gauche associativité est obsolète à partir de PHP 7.4.0. À partir de PHP 8.0.0, l'opérateur ternaire est non associatif.

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' antérieur à PHP 8.0.0
// car l'expression ternaire est gauche-associatif

// l'expression suivante est une version plus évidente du même code
echo ((true ? 'true' : false) ? 't' : 'f');

// ici, on peut constater 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.
?>

Note:

La combinaison de ternaire court (?:), cependant, est stable et se comporte de manière raisonnable. Ceci évaluera au premier argument qui évalue à une valeur non-falsy. À noter que des valeurs indéfinies émettront toujours un avertissement.

Exemple #5 Combinaison de ternaire court

<?php
echo 0 ?: 1 ?: 2 ?: 3, PHP_EOL; //1
echo 0 ?: 0 ?: 2 ?: 3, PHP_EOL; //2
echo 0 ?: 0 ?: 0 ?: 3, PHP_EOL; //3
?>

Opérateur de fusion Null

Un autre opérateur court utile est l'opérateur "??" (ou fusion null).

Exemple #6 Assigner une valeur par défaut

<?php
// Exemple d'utilisation pour : Opérateur de fusion Null
$action = $_POST['action'] ?? 'default';

// le code ci-dessus est équivalent à cette structure if/else
if (isset($_POST['action'])) {
$action = $_POST['action'];
} else {
$action = 'default';
}
?>
L'expression (expr1) ?? (expr2) retourne expr2 si expr1 est null, et expr1 dans les autres cas.

En particulier, cet opérateur n'émet pas de notice ou avertissement si la partie gauche n'existe pas, exactement comme isset(). Ceci est particulièrement utile pour les clés des tableaux.

Note: Veuillez noter que l'opérateur null de fusion est une expression, et qu'il ne s'évalue pas comme une variable, mais comme le résultat d'une expression. Il est important de le savoir si vous souhaitez renvoyer une variable par référence. L'expression return $foo ?? $bar; est un retour par référence qui ne fonctionne donc pas et émet un avertissement.

Note:

L'opérateur de fusion null à une précédence faible. Ceci signifie que le mélanger avec d'autres opérateurs (tel que la concaténation de chaînes ou les opérateurs arithmétiques) des parenthèses seront requis.

<?php
// Émet un avertissement que $name est indéfinie.
print 'Mr. ' . $name ?? 'Anonymous';

// Prints "Mr. Anonymous"
print 'Mr. ' . ($name ?? 'Anonymous');
?>

Note:

Veuillez noter que l'opérateur de fusion null permet une imbrication simple:

Exemple #7 Imbrication de l'opération de fusion null

<?php

$foo = null;
$bar = null;
$baz = 1;
$qux = 2;

echo $foo ?? $bar ?? $baz ?? $qux; // sortie 1

?>


Opérateur de contrôle d'erreur

PHP supporte un opérateur de contrôle d'erreur : l'arobase (@). Lorsque cet opérateur est ajouté en préfixe d'une expression PHP, les diagnostics d'erreurs qui peuvent être générés par cette expression seront ignorés.

Si un gestionnaire d'erreur personnalisé est défini avec set_error_handler(), il sera quand même appelé même si le diagnostic a été ignorée.

Avertissement

Antérieur à PHP 8.0.0, le error_reporting() appelée dans le gestionnaire d'erreur personnalisé retournait toujours 0 si l'erreur a été ignorée avec l'opérateur @. À partir de 8.0.0, il retourne la valeur de cette expression (bit à bit) : E_ERROR | E_CORE_ERROR | E_COMPILE_ERROR | E_USER_ERROR | E_RECOVERABLE_ERROR | E_PARSE.

Tous les messages d'erreur générés par l'expression sont disponibles dans l'élément "message" du tableau retourné par la fonction error_get_last(). Le résultat de la fonction changera à chaque erreur, aussi, il convient de le vérifier souvent.

<?php
/* Erreur intentionnelle (le fichier n'existe pas): */
$mon_fichier = @file ('non_persistent_file') or
die ("Impossible d'ouvrir le fichier : L'erreur est : '" . error_get_last()['message'] . "'");

// 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 est : s'il est possible de prendre la valeur de quelque chose alors, on peut préfixer l'opérateur @ à celui-ci. Par exemple, il peut être préfixé devant les variables, appels de fonctions, certains appels aux constructions de langages (e.g. include), etc. Il ne peut pas être préfixé devant les définitions de fonctions ou de classes ou structures conditionnelles telles que if et foreach, etc.

Avertissement

Antérieur à PHP 8.0.0, il était possible pour l'opérateur @ de désactiver les erreurs critiques qui terminaient l'exécution du script. Par exemple, préfixer @ à un appel d'une fonction qui n'existe pas, en étant indisponible ou mal orthographiée, causait le script à se terminer sans aucune indication pourquoi.

Voir aussi

  • error_reporting()
  • Gestion d'Erreur et fonction de Logging


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é (c'est-à-dire : 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 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îne entourée de guillemets doubles.

Voir aussi

  • Les fonctions d'exécution système
  • popen()
  • proc_open()
  • Utiliser PHP depuis la ligne de commande


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 une 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 avant que l'opération "or" apparaisse
// Agit comme : (($f = false) or true)
$f = false or true;

var_dump($e, $f);

// --------------------
// "&&" a une 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 avant que l'opération "and" apparaisse
// Agit comme : (($h = true) and false)
$h = true and false;

var_dump($g, $h);
?>

Résultat de l'exemple ci-dessus est similaire à :

bool(true)
bool(false)
bool(false)
bool(true)


Opérateurs de chaînes de caractères

Chaînes de caractères

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 (.=). Voir 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

  • Le type string
  • Les fonctions de 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 | Égalité | 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);

$a += $b; // Union de $a += $b est $a and $b
echo "Union de \$a += \$b: \n";
var_dump($a);
?>
À 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"
}
Union de $a += $b:
array(3) {
  ["a"]=>
  string(5) "pomme"
  ["b"]=>
  string(6) "banane"
  ["c"]=>
  string(6) "cerise"
}

Les éléments d'un tableau sont égaux en termes 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)
?>

Voir aussi

  • Le type array
  • Les 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

À partir de PHP 7.3.0, les constantes sont autorisées sur le côté gauche de l'opérateur instanceof.

Exemple #7 Utilisation de instanceof pour tester des constantes

<?php
var_dump(FALSE instanceof stdClass);
?>

Résultat de l'exemple ci-dessus en PHP 7.3 :

bool(false)

À partir de PHP 8.0.0, instanceof peut désormais être utilisé avec des expressions arbitraires. L'expression doit être entre parenthèses et produire une string.

Exemple #8 Utilisation de instanceof avec une expression arbitraire

<?php

class ClassA extends \stdClass {}
class ClassB extends \stdClass {}
class ClassC extends ClassB {}
class ClassD extends ClassA {}

function getSomeClass(): string
{
return ClassA::class;
}

var_dump(new ClassA instanceof ('std' . 'Class'));
var_dump(new ClassB instanceof ('Class' . 'B'));
var_dump(new ClassC instanceof ('Class' . 'A'));
var_dump(new ClassD instanceof (getSomeClass()));
?>

Résultat de l'exemple ci-dessus en PHP 8 :

bool(true)
bool(true)
bool(false)
bool(true)

L'opérateur instanceof a une variante fonctionnelle avec la fonction is_a().

Voir aussi

  • get_class()
  • is_a()


Les structures de contrôle

Sommaire

  • Introduction
  • if
  • else
  • elseif/else if
  • Syntaxe alternative
  • while
  • do-while
  • for
  • foreach
  • break
  • continue
  • switch
  • match
  • 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.

Voir aussi

Les éléments suivant sont considérés comme des structures de contrôles même s'ils sont référencés dans les fonctions dans la documentation.

  • list()
  • array()
  • echo
  • eval()
  • print


if

(PHP 4, PHP 5, PHP 7, PHP 8)

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, PHP 8)

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).

Note: Dangling else

Dans le cas d'instructions if-else imbriquées, un else est toujours associé avec le if le plus proche.

<?php
$a = false;
$b = true;
if ($a)
if ($b)
echo "b";
else
echo "c";
?>
Malgré l'indentation (qui n'a pas d'importance en PHP), le else est associé avec le if ($b), ainsi cet exemple ne produit pas de sortie. Tant bien que s'appuyer sur ce comportement est valide, il est recommandé de l'éviter en utilisant des accolades pour résoudre toute ambiguïté possible.


elseif/else if

(PHP 4, PHP 5, PHP 7, PHP 8)

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, il est possible d'écrire else if en deux mots et son comportement sera identique à celle de elseif (en un seul mot). La sémantique des deux expressions est légèrement différente (tout comme en C), 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 vos conditions if/elseif, l'utilisation de elseif en un seul mot devient nécessaire. PHP échouera avec une erreur d'analyse si else if est utilisé.

<?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 8)

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, PHP 8)

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). 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, PHP 8)

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);
?>

Il est possible d'utiliser l'opérateur goto au lieu de ce bidouillage.


for

(PHP 4, PHP 5, PHP 7, PHP 8)

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 nombres entiers de 1 à 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. Étant 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, PHP 8)

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 (iterable_expression as $value){
    //commandes
}
foreach (iterable_expression as $key => $value){
    //commandes
}

La première forme passe en revue le tableau iterable_expression. À chaque itération, la valeur de l'élément courant est assignée à $value.

La seconde forme assignera en plus la clé de l'élément courant à la variable $key à chaque itération.

Il est à noter que foreach ne modifie pas le pointeur interne du tableau, qui est utilisé par les fonctions tel que current() et key().

Il est possible de personnaliser l'itération sur des objets.

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
?>

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(). Sinon, vous ressentirez le comportement suivant :

<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
$value = $value * 2;
}
// $arr est maintenant array(2, 4, 6, 8)

// sans un unset($value), $value est toujours une référence au dernier élément: $arr[3]

foreach ($arr as $key => $value) {
// $arr[3] sera mis à jour avec chaque valeur de $arr...
echo "{$key} => {$value} ";
print_r($arr);
}
// ...jusqu'à ce que finalement la valeur de deuxième à dernière soit copiée sur la dernière valeur

// sortie :
// 0 => 2 Array ( [0] => 2, [1] => 4, [2] => 6, [3] => 2 )
// 1 => 4 Array ( [0] => 2, [1] => 4, [2] => 6, [3] => 4 )
// 2 => 6 Array ( [0] => 2, [1] => 4, [2] => 6, [3] => 6 )
// 3 => 6 Array ( [0] => 2, [1] => 4, [2] => 6, [3] => 6 )
?>

Il est possible d'itérer la valeur d'un tableau constant par référence :

<?php
foreach (array(1, 2, 3, 4) as &$value) {
$value = $value * 2;
}
?>

Note:

foreach ne supporte pas la suppression des messages d'erreur utilisant @.

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 8)

Il est possible 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, PHP 8)

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');
foreach ($arr as $val) {
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;
}
}
?>


continue

(PHP 4, PHP 5, PHP 7, PHP 8)

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 (lorsque aucun argument n'est passé) mais émettra un avertissement, car il est probable que ceci soit une erreur. 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
$arr = ['zero', 'one', 'two', 'three', 'four', 'five', 'six'];
foreach ($arr as $key => $value) {
if (0 === ($key % 2)) { // évite les membres pairs
continue;
}
echo $value . "\n";
}
?>

Les exemples ci-dessus vont afficher :

one
three
five
<?php
$i = 0;
while ($i++ < 5) {
echo "Outer\n";
while (1) {
echo "Middle\n";
while (1) {
echo "Inner\n";
continue 3;
}
echo "This never gets output.\n";
}
echo "Neither does this.\n";
}
?>

Les exemples ci-dessus vont afficher :

Outer
Middle
Inner
Outer
Middle
Inner
Outer
Middle
Inner
Outer
Middle
Inner
Outer
Middle
Inner

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

Historique pour continue
Version | Description
7.3.0 | continue à l'intérieur d'un switch qui tente d'agir comme une déclaration break pour switch émettra E_WARNING.


switch

(PHP 4, PHP 5, PHP 7, PHP 8)

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.

Dans l'exemple suivant, chaque bloc de code est équivalent. L'un utilise une série d'instructions if et elseif, et l'autre une instruction de type switch. Dans chaque cas, la sortie est la même.

Exemple #1 Instruction switch

<?php
// Ce switch:

switch ($i) {
case 0:
echo "i égal 0";
break;
case 1:
echo "i égal 1";
break;
case 2:
echo "i égal 2";
break;
}

// Équivaut à:

if ($i == 0) {
echo "i égal 0";
} elseif ($i == 1) {
echo "i égal 1";
} elseif ($i == 2) {
echo "i égal 2";
}
?>

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é. Uniquement lorsqu'une instruction case est trouvée dont l'expression est évaluée à une valeur qui correspond à la valeur de l'expression switch, PHP exécute alors les instructions correspondantes. PHP continu 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.";
}
?>

Note: Plusieurs cas default lèveront une erreur de niveau E_COMPILE_ERROR.

Note: Techniquement, le cas default peut être placé à n'importe quelle position. Il ne sera utilisé que si aucun autre cas ne correspond. Cependant, par convention, il est préférable de le placer à la fin.

Si aucun case ne correspond, et qu'il n'y a pas de default, alors aucun code ne sera exécuté, tout comme si aucune instruction if n'était vraie.

Une valeur de case peut être donnée sous forme d'expression. Cependant, cette expression sera évaluée seule, puis comparée de manière approximative à la valeur du switch. Cela signifie qu'elle ne peut pas être utilisée pour des évaluations complexes de la valeur du switch. Par exemple :

<?php
$target = 1;
$start = 3;

switch ($target) {
case $start - 1:
print "A";
break;
case $start - 2:
print "B";
break;
case $start - 3:
print "C";
break;
case $start - 4:
print "D";
break;
}

// Prints "B"
?>

Pour des comparaisons plus complexes, la valeur true peut être utilisée comme valeur de switch. Ou, alternativement, des blocs if-else au lieu de switch.

<?php
$offset = 1;
$start = 3;

switch (true) {
case $start - $offset === 1:
print "A";
break;
case $start - $offset === 2:
print "B";
break;
case $start - $offset === 3:
print "C";
break;
case $start - $offset === 4:
print "D";
break;
}

// Prints "B"
?>

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;
}
?>

Voir aussi

  • match


match

(PHP 8)

L'expression match permet d'effectuer une évaluation basée sur le contrôle d'identité d'une valeur. De la même manière qu'une instruction switch, une expression match a une expression sujet qui est comparée à plusieurs alternatives. Contrairement à switch, elle s'évalue à une valeur, comme les expressions ternaires. Contrairement à switch, la comparaison est une vérification d'identité (===) plutôt qu'un contrôle d'égalité faible (==). Les expressions Match sont disponibles à partir de PHP 8.0.0.

Exemple #1 Structure d'une expression match

<?php
$return_value = match (subject_expression) {
single_conditional_expression => return_expression,
conditional_expression1, conditional_expression2 => return_expression,
};
?>

Exemple #2 Utilisation de base des expressions match

<?php
$food = 'cake';

$return_value = match ($food) {
'apple' => 'This food is an apple',
'bar' => 'This food is a bar',
'cake' => 'This food is a cake',
};

var_dump($return_value);
?>

L'exemple ci-dessus va afficher :

string(19) "This food is a cake"

Note: Le résultat d'une expression match n'a pas besoin d'être utilisé.

Note: Une expression match doit être terminée par un point-virgule ;.

L'expression match est similaire à une instruction switch mais présente quelques différences essentielles:

  • Une expression match compare les valeurs de manière stricte (===) et non de manière faible comme le fait l'instruction switch.
  • Une expression match renvoie une valeur.
  • Les expressions match ne passent pas aux cas suivants comme le font les les instructions switch.
  • Une expression match doit être exhaustive.

Comme les instructions switch, les expressions match sont exécutées bras par bras. Au début, aucun code n'est exécuté. Les expressions conditionnelles ne sont évaluées que si toutes les expressions conditionnelles précédentes ne correspondent pas à l'expression de l'objet. Seule l'expression de retour correspondant à l'expression conditionnelle correspondante sera évaluée. Par exemple :

<?php
$result = match ($x) {
foo() => ...,
$this->bar() => ..., // $this->bar() n'est pas appelé si foo() === $x
$this->baz => beep(), // beep() n'est pas appelé sauf si $x === $this->baz
// etc.
};
?>

Les bras de l'expression de match peuvent contenir plusieurs expressions séparées par une virgule. Il s'agit d'un OU logique et d'une abréviation pour plusieurs bras qui utilisent la même expression comme résultat.

<?php
$result = match ($x) {
// Ce bras
$a, $b, $c => 5,
// Est équivalent à ces trois bras :
$a => 5,
$b => 5,
$c => 5,
};
?>

Le motif default est un cas particulier. Ce motif correspond à tout ce qui n'a pas été recherché précédemment. Par exemple :

<?php
$expressionResult = match ($condition) {
1, 2 => foo(),
3, 4 => bar(),
default => baz(),
};
?>

Note: L'utilisation de plusieurs motifs par défaut entraînera une erreur E_FATAL_ERROR.

Une expression match doit être exhaustive. Si l'expression n'est traitée par aucun bras de match, une erreur UnhandledMatchError est lancée.

Exemple #3 Exemple d'une expression match non gérée

<?php
$condition = 5;

try {
match ($condition) {
1, 2 => foo(),
3, 4 => bar(),
};
} catch (\UnhandledMatchError $e) {
var_dump($e);
}
?>

L'exemple ci-dessus va afficher :

object(UnhandledMatchError)#1 (7) {
  ["message":protected]=>
  string(33) "Unhandled match value of type int"
  ["string":"Error":private]=>
  string(0) ""
  ["code":protected]=>
  int(0)
  ["file":protected]=>
  string(9) "/in/ICgGK"
  ["line":protected]=>
  int(6)
  ["trace":"Error":private]=>
  array(0) {
  }
  ["previous":"Error":private]=>
  NULL
}

Utilisation d'expressions match pour gérer les contrôles de non-identité

Il est possible d'utiliser une expression match pour traiter les cas conditionnels de non-identité en utilisant true comme expression sujet.

Exemple #4 Utilisation d'une expression match généralisée pour effectuer des branchements sur des plages d'entiers

<?php

$age = 23;

$result = match (true) {
$age >= 65 => 'senior',
$age >= 25 => 'adult',
$age >= 18 => 'young adult',
default => 'kid',
};

var_dump($result);
?>

L'exemple ci-dessus va afficher :

string(11) "young adult"

Exemple #5 Utilisation d'une expression match généralisée pour effectuer des branchements sur le contenu d'une chaîne de caractères

<?php

$text = 'Bienvenue chez nous';

$result = match (true) {
str_contains($text, 'Welcome') || str_contains($text, 'Hello') => 'en',
str_contains($text, 'Bienvenue') || str_contains($text, 'Bonjour') => 'fr',
// ...
};

var_dump($result);
?>

L'exemple ci-dessus va afficher :

string(2) "fr"


declare

(PHP 4, PHP 5, PHP 7, PHP 8)

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 trois directives sont reconnues : la directive ticks (voir plus bas pour plus de détails sur les ticks), la directive d'encodage encoding (Voir plus bas pour plus de détails sur la directive encoding) et la directive strict_types (Voir la section Typage strict sur la page de déclaration de type).

Comme les directives sont gérées lors de la compilation du fichier, seulement les litté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'); // causes a tick event

$a = 1; // causes a tick event

if ($a > 0) {
$a += 2; // causes a tick event
print $a; // causes a tick event
}

?>

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 #2 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.

Voir aussi zend.script_encoding.


return

(PHP 4, PHP 5, PHP 7, PHP 8)

return retourne le contrôle du programme au module appelant. L'exécution reprend alors à l'instruction suivante 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 et leur utilisation est découragée.

Note: Si aucun paramètre n'est fourni, alors les parenthèses doivent être omises et null sera retourné. L'appel de return avec des parenthèses mais sans argument résultera en une alerte d'analyse.

À partir de PHP 7.1.0, les déclarations de retour sans argument dans la fonction déclenche une E_COMPILE_ERROR, sauf si le type de retour est void, auquel cas les déclarations retour avec un argument déclenche cette erreur.


require

(PHP 4, PHP 5, PHP 7, PHP 8)

require est identique à include mis à 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, PHP 8)

L'expression 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 émettra E_WARNING si elle ne peut trouver le fichier; ce comportement est différent de require, qui émettra E_ERROR.

Notez que include et require vont lancer des erreurs de type E_WARNING, si le fichier n'est pas accessible, avant de lancer une erreur de type E_WARNING ou E_ERROR, respectivement.

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';
?>

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 en cas d'erreur et émet un avertissement. 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') == TRUE), i.e. include('1')
if (include('vars.php') == TRUE) {
echo 'OK';
}

// Fonctionne
if ((include 'vars.php') == TRUE) {
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 émettra une erreur fatale car les fonctions ont déjà été déclarées. 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 ou arguments nommés.

Voir aussi require, require_once, include_once, get_included_files(), readfile(), virtual(), et include_path.


require_once

(PHP 4, PHP 5, PHP 7, PHP 8)

L'expression 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 documentation 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, PHP 8)

L'instruction 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.


goto

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

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 une étiquette sensible à la casse, 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. Il est de même impossible d'entrer dans une structure de boucle ou un switch. Il est néanmoins possible d'en sortir, 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


Les fonctions

Sommaire

  • Les fonctions définies par l'utilisateur
  • Les arguments de fonction
  • Les valeurs de retour
  • Fonctions variables
  • Fonctions internes
  • Fonctions anonymes
  • Fonction Fléchée
  • Syntaxe callable de première classe


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_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$

Astuce

Jetez 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";
}
}

/* Maintenant, 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 surcharge, la destruction et la redéfinition de fonctions déjà déclarées.

Note: Les noms de fonctions sont insensibles à la casse pour les caractères ASCII A à Z, 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. À 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, avant que la fonction soit actuellement appelée (évaluation immédiate).

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, ainsi que les Arguments Nommés sont également supportés.

Exemple #1 Nombre variable d'arguments sous forme de tableau

<?php
function takes_array($input)
{
echo "$input[0] + $input[1] = ", $input[0]+$input[1];
}
?>

À partir de PHP 8.0.0, la liste des arguments de fonction peut inclure une virgule trainante, qui sera ignoré. Ceci est particulièrement pratique dans les cas où la liste d'arguments est longue ou contient des noms de variables longs, le rendant pratique pour lister les arguments verticalement.

Exemple #2 Function Argument List with trailing Comma

<?php
function takes_many_args(
$first_arg,
$second_arg,
$a_very_long_argument_name,
$arg_with_default = 5,
$again = 'a default string', // Cette virgule trainant n'était pas permit avant 8.0.0.
)
{
// ...
}
?>

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 #3 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.'
?>

C'est une erreur de passer une valeur en tant qu'argument qui est supposé d'être passé par référence.

Valeur par défaut des arguments

Une fonction peut définir des valeurs par défaut pour les arguments en utilisant une syntaxe similaire à l'affectation d'une variable. La valeur par défaut n'est utilisée que lorsque le paramètre n'est pas spécifié ; en particulier, notez que le passage de null n'assigne pas la valeur par défaut.

Exemple #4 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.

Les valeurs par défaut des paramètres peuvent être des valeurs scalaires, des tableaus, le type spécial null, et à partir de PHP 8.1.0, des objets utilisant la syntaxe new ClassName().

Exemple #5 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");
?>

L'exemple ci-dessus va afficher :

Préparation d'une tasse de cappuccino avec les mains.
Préparation d'une tasse de cappuccino, lavazza avec une cafetière.

Exemple #6 Utilisation d'objets comme valeurs par défaut (à partir de PHP 8.1.0)

<?php
class DefaultCoffeeMaker {
public function brew() {
return 'Faire du café.\n';
}
}
class FancyCoffeeMaker {
public function brew() {
return 'Créer un beau café rien que pour vous.\n';
}
}
function makecoffee($coffeeMaker = new DefaultCoffeeMaker)
{
return $coffeeMaker->brew();
}
echo makecoffee();
echo makecoffee(new FancyCoffeeMaker);
?>

L'exemple ci-dessus va afficher :

Faire du café.
Créer un beau café rien que pour vous.

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 tous les arguments facultatifs doivent être spécifiés après les arguments obligatoires, sinon ils ne peuvent pas être omis dans les appels. Considérons le code suivant :

Exemple #7 Les arguments sans valeur par défaut doivent être en premiers : erreur

<?php
function faireunyaourt ($container = "bol", $flavour)
{
return "Préparer un $container de yaourt à la $flavour.\n";
}

echo faireunyaourt("framboise"); // "framboise" est $container, pas $flavour
?>

L'exemple ci-dessus va afficher :

Fatal error: Uncaught ArgumentCountError: Too few arguments
 to function faireunyaourt(), 1 passed in example.php on line 42

Maintenant comparons l'exemple précédent avec l'exemple suivant :

Exemple #8 Les arguments sans valeur par défaut doivent être en premiers : valide

<?php
function faireunyaourt ($flavour, $container = "bol")
{
return "Préparer un $container de yaourt à la $flavour.\n";
}

echo faireunyaourt ("framboise"); // "framboise" est $flavour
?>

L'exemple ci-dessus va afficher :

Préparer un bol de yaourt à la framboise.

À partir de PHP 8.0.0, les arguments nommés peuvent être utilisées pour passer outre plusieurs paramètres optionnels.

Exemple #9 Utilisation correcte des arguments de fonction par défaut

<?php
function faireunyaourt($container = "bol", $flavour = "framboise", $style = "Grec")
{
return "Préparer un $container de yaourt $style à la $flavour.\n";
}
echo faireunyaourt(style: "naturel");
?>

L'exemple ci-dessus va afficher :

Préparer un bol de yaourt naturel à la framboise.

À partir de PHP 8.0.0, déclarer des arguments obligatoires après des arguments optionnels est obsolète. Ce problème peut généralement être résolu en abandonnant la valeur par défaut, puisqu'elle ne sera jamais utilisée. Une exception à cette règle concerne les arguments de la forme Type $param = null, où le null par défaut rend le type implicitement nullable. Cet usage reste autorisé, bien qu'il soit recommandé d'utiliser un type nullable explicite à la place.

Exemple #10 Déclarer des arguments facultatifs après les arguments obligatoires

<?php
function foo($a = [], $b) {} // Par défaut, non utilisé ; obsolète à partir de PHP 8.0.0.
function foo($a, $b) {} // Fonctionnement équivalent, pas de notice d’obsolescence
function bar(A $a = null, $b) {} // Toujours autorisé ; $a est obligatoire mais nullable.
function bar(?A $a, $b) {} // Recommandé
?>

Note: À partir de PHP 7.1.0, l'omission d'un paramètre qui ne spécifie pas une valeur par défaut lance un ArgumentCountError ; dans les versions précédentes, cela levait un avertissement.

Note: Les arguments passés par référence peuvent avoir une valeur par défaut.

Liste d'argument à nombre variable

PHP supporte les arguments à nombre variable dans les fonctions défini par l'utilisateur en utilisant le token ....

La liste des arguments peut inclure le token ... 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:

Exemple #11 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

... peut aussi être utilisé lors des appels de fonctions pour extraire le tableau ou la variable Traversable ou le littéral dans la liste d'arguments :

Exemple #12 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 une déclaration de type avant le jeton .... Si ceci est présent, alors tous les arguments capturés par ... doivent correspondre au type de paramètre.

Exemple #13 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 (&).

Arguments Nommés

PHP 8.0.0 introduit les arguments nommés comme extension aux paramètres positionnels existant. Les arguments nommés permettent de passer les arguments à une fonction en s'appuyant sur le nom du paramètre, au lieu de la position du paramètre. Ceci documente automatiquement la signification de l'argument, rend l'ordre des arguments indépendant et permet d'ignorer les valeurs par défaut arbitrairement.

Les arguments nommés sont passés en préfixant la valeur avec le nom du paramètre suivit d'un deux-points. Utiliser des mots-clés réservés comme nom de paramètre est autorisé. Le nom du paramètre doit être un identifiant, le spécifiant de façon dynamique n'est pas permis.

Exemple #14 Syntaxe des arguments nommés

<?php
myFunction(paramName: $value);
array_foobar(array: $value);

// NON supporté.
function_name($variableStoringParamName: $value);
?>

Exemple #15 Arguments positionnels comparés aux arguments nommés

<?php
// Utilisant les arguments positionnels :
array_fill(0, 100, 50);

// Utilisant les arguments nommés :
array_fill(start_index: 0, count: 100, value: 50);
?>

L'ordre dans lequel les arguments nommés sont passés n'importe pas.

Exemple #16 Même exemple que ci-dessus, mais avec un ordre de paramètre différent

<?php
array_fill(value: 50, count: 100, start_index: 0);
?>

Les arguments nommés peuvent être combinés avec les arguments positionnels. Auquel cas, les arguments nommés doivent venir après les arguments positionnels. Il est aussi possible de spécifier seulement certains des arguments optionnels d'une fonction, peu importe leur ordre.

Exemple #17 Combiner les arguments nommés avec les arguments positionnels

<?php
htmlspecialchars($string, double_encode: false);
// Same as
htmlspecialchars($string, ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401, 'UTF-8', false);
?>

Passer le même paramètre plusieurs fois résulte en une Error exception.

Exemple #18 Error émise quand un même paramètre est passé plusieurs fois

<?php
function foo($param) { ... }

foo(param: 1, param: 2);
// Error: Named parameter $param overwrites previous argument
foo(1, param: 2);
// Error: Named parameter $param overwrites previous argument
?>

À partir de PHP 8.1.0, il est possible d'utiliser des arguments nommés après avoir décompressé les arguments. Un argument nommé ne doit pas écraser un argument déjà déballé.

Exemple #19 Utiliser les arguments nommés après le déballage

<?php
function foo($a, $b, $c = 3, $d = 4) {
return $a + $b + $c + $d;
}
var_dump(foo(...[1, 2], d: 40)); // 46
var_dump(foo(...['b' => 2, 'a' => 1], d: 40)); // 46
var_dump(foo(...[1, 2], b: 20)); // Erreur fatale. Le paramètre nommé $b écrase l'argument précédent.
?>


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 [0, 1, 2];
}
// La déconstruction d'un tableau collectera chaque membre du tableau individuellement
[$zero, $one, $two] = petit_nombre();

// Antérieur à PHP 7.1, la seule alternative équivalente est en utilisant la structure de langage list()
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.


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 langage 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 de 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.

?>

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"

Voir aussi

  • is_callable()
  • call_user_func()
  • function_exists()
  • Les variables variable


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 mysqli_connect(), vous aurez besoin de l'extension MySQLi. 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. À partir de PHP 8.0.0, une exception TypeError est normalement lancée dans ce cas.

Note:

En mode coercitif, les types scalaires des fonctions internes sont nullables par défaut. À partir PHP 8.1.0, passer null à un paramètre de fonction interne qui n'est pas déclaré nullable est déconseillé et émet une notice de dépréciation en mode coercitif pour s'aligner sur le comportement des fonctions définies par l'utilisateur, où les types scalaires doivent être marqués comme nullables explicitement.

Par exemple, la fonction strlen() attend du paramètre $string soit de type chaîne de caractères et non null. Pour des raisons historiques, PHP autorise le passage de null pour ce paramètre en mode coercitif. Le paramètre est alors implicitement converti en string, résultant en une valeur "". Noter qu'une TypeError est émise en mode strict.

<?php
var_dump(strlen(null));
// "Deprecated: Passing null to parameter #1 ($string) of type string is deprecated" as of PHP 8.1.0
// int(0)

var_dump(str_contains("foobar", null));
// "Deprecated: Passing null to parameter #2 ($needle) of type string is deprecated" as of PHP 8.1.0
// bool(true)
?>

Voir aussi

  • function_exists()
  • l'index des fonctions
  • get_extension_funcs()
  • 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 callable, 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'une affectation 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. À partir de PHP 7.1, ces variables ne doivent pas inclure de superglobals, $this, ou des variables ayant le même nom qu'un paramètre. Une déclaration de type de retour pour la fonction doit être placé après la clause 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 lorsque 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 acceptent également des arguments classiques
$example = function ($arg) use ($message) {
var_dump($arg . ' ' . $message);
};
$example("hello");

// Return type declaration comes after the use clause
$example = function () use ($message): string {
return "hello $message";
};
var_dump($example());
?>

Résultat de l'exemple ci-dessus est 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"
string(11) "hello world"

À partir de PHP 8.0.0, la liste des variables hérité du contexte peut inclure une virgule trainante, qui sera ignoré.

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 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) {
}

Lorsque déclarée dans le contexte d'une classe, la classe courante est automatiquement liée, la rendant $this disponible dans le contexte de la fonction. Si ce liage automatique de la classe courante n'est pas souhaité, alors les fonctions anonymes statiques peuvent être utilisées à la place.

Les fonctions anonymes statiques

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'usage de $this dans une fonction anonyme statique

<?php

class Foo
{
function __construct()
{
$func = static function() {
var_dump($this);
};
$func();
}
};
new Foo();

?>

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

$func = static function() {
// function body
};
$func = $func->bindTo(new stdClass);
$func();

?>

L'exemple ci-dessus va afficher :

Warning: Cannot bind an instance to a static closure in %s on line %d

Historique

Version | Description
7.1.0 | Les fonctions anonymes peuvent ne pas se fermer sur les superglobals, $this, ou toute variable avec le même nom qu'un paramètre.

Notes

Note: Il est possible d'utiliser les fonctions func_num_args(), func_get_arg() et func_get_args() dans une fonction anonyme.


Fonction Fléchée

Les fonctions fléchées ont été introduites en PHP 7.4 en tant que syntaxe plus concise pour les fonctions anonymes.

Les fonctions anonymes comme les fonctions fléchées sont implémentées en utilisant la classe Closure.

Les fonctions fléchées ont la forme basique fn (argument_list) => expr.

Les fonctions fléchées supportent les mêmes fonctionnalités que les fonctions anonymes, à l'exception que l'utilisation des variables de la portée parente est automatique.

Quand une variable utilisée dans l'expression est définie dans la portée parente, elle sera implicitement capturée par valeur. Dans l'exemple suivant, les fonctions $fn1 et $fn2 se comportent de façon identique.

Exemple #1 Les fonctions fléchées capturent les variables par valeur automatiquement

<?php

$y = 1;

$fn1 = fn($x) => $x + $y;
// equivalent to using $y by value:
$fn2 = function ($x) use ($y) {
return $x + $y;
};

var_export($fn1(3));
?>

L'exemple ci-dessus va afficher :

4

Ceci fonctionne aussi si les fonctions fléchées sont imbriquées :

Exemple #2 Les fonctions fléchées capturent les variables par valeur automatiquement, même imbriquées

<?php

$z = 1;
$fn = fn($x) => fn($y) => $x * $y + $z;
// Outputs 51
var_export($fn(5)(10));
?>

Similairement aux fonctions anonymes, la syntaxe des fonctions fléchées permet les signatures de fonction arbitraire, ceci inclus les types de paramètres et de retour, valeur par défaut, variable, aussi bien que le passage et retour par référence. Tous les exemples suivants sont des fonctions fléchées valides :

Exemple #3 Exemples de fonctions fléchées

<?php

fn(array $x) => $x;
static fn(): int => $x;
fn($x = 42) => $x;
fn(&$x) => $x;
fn&($x) => $x;
fn($x, ...$rest) => $rest;

?>

Les fonctions fléchées lie les variables par valeur. Ceci est à peu près équivalent à effectuer un use($x) pour chaque variable $x utilisée à l'intérieur de la fonction fléchée. Un liage par valeur signifie qu'il n'est pas possible de modifier une valeur de la portée extérieure. Les fonctions anonymes peuvent être utilisées à la place pour des liaisons par référence.

Exemple #4 Valeurs de la portée extérieure ne peuvent pas être modifiées par les fonctions fléchées

<?php

$x = 1;
$fn = fn() => $x++; // Has no effect
$fn();
var_export($x); // Outputs 1

?>

Historique

Version | Description
7.4.0 | Les fonctions fléchées sont désormais disponibles.

Notes

Note: Il est possible d'utiliser func_num_args(), func_get_arg(), et func_get_args() depuis l'intérieur d'une fonction fléchée.


Syntaxe callable de première classe

La syntaxe de callable de première classe est introduite à partir de PHP 8.1.0, comme une manière de créer des fonctions anonymes depuis des callable. Elle remplace la syntaxe des callables existante utilisant les chaînes et tableaux. L'avantage de cette syntaxe est qu'elle est accessible à l'analyse statique et utilise la portée du point où le callable est acquis.

La syntaxe CallableExpr(...) est utilisée pour créer un objet Closure depuis le callable. CallableExpr accepte toute expression qui peut être directement appelée dans la grammaire de PHP :

Exemple #1 Syntaxe callable de première classe basique

<?php
class Foo {
public function method() {}
public static function staticmethod() {}
public function __invoke() {}
}
$obj = new Foo();
$classStr = 'Foo';
$methodStr = 'method';
$staticmethodStr = 'staticmethod';
$f1 = strlen(...);
$f2 = $obj(...); // invokable object
$f3 = $obj->method(...);
$f4 = $obj->$methodStr(...);
$f5 = Foo::staticmethod(...);
$f6 = $classStr::$staticmethodStr(...);
// traditional callable using string, array
$f7 = 'strlen'(...);
$f8 = [$obj, 'method'](...);
$f9 = [Foo::class, 'staticmethod'](...);
?>

Note:

Les ... font partie de la syntaxe et ne sont pas une omission.

CallableExpr(...) a les mêmes sémantiques que Closure::fromCallable(). C'est-à-dire, contrairement aux callables utilisant les chaînes et tableaux, CallableExpr(...) respecte la portée du point où il est créé :

Exemple #2 Comparaison de portée de CallableExpr(...) et des callables traditionnels

<?php
class Foo {
public function getPrivateMethod() {
return [$this, 'privateMethod'];
}
private function privateMethod() {
echo __METHOD__, "\n";
}
}
$foo = new Foo;
$privateMethod = $foo->getPrivateMethod();
$privateMethod();
// Fatal error: Call to private method Foo::privateMethod() from global scope
// This is because call is performed outside from Foo and visibility will be checked from this point.
class Foo1 {
public function getPrivateMethod() {
// Uses the scope where the callable is acquired.
return $this->privateMethod(...); // identical to Closure::fromCallable([$this, 'privateMethod']);
}
private function privateMethod() {
echo __METHOD__, "\n";
}
}
$foo1 = new Foo1;
$privateMethod = $foo1->getPrivateMethod();
$privateMethod(); // Foo1::privateMethod
?>

Note:

La création d'objets avec cette syntaxe (e.g new Foo(...)) n'est pas supportée, car la syntaxe new Foo() n'est pas considérée comme un appel.

Note:

La syntaxe de callable de première classe ne peut pas être combinée avec l'opérateur nullsafe. Les deux cas suivants entraînent une erreur de compilation :

<?php
$obj?->method(...);
$obj?->prop->method(...);
?>


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"
  • Clonage d'objets
  • Comparaison d'objets
  • Late Static Bindings (Résolution statique à la volée)
  • Objets et références
  • Sérialisation d'objets
  • Covariance et Contravariance
  • Modifications en POO (Programmation orientée objet)


Introduction

PHP inclus un modèle objet complet. Certaines de ses fonctionnalités sont : la visibilité, les classes et méthodes abstraites et finales mais aussi les méthodes magiques, les interfaces, et le clonage.

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

Jetez 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_\x80-\xff][a-zA-Z0-9_\x80-\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 la valeur de l'objet appelant.

Avertissement

Appeler une méthode non-statique statiquement lance une Error. Antérieur à PHP 8.0.0, ceci générait une notice d'obsolescence, et $this était indéfini.

Exemple #2 Quelques exemples de la pseudo-variable $this

<?php
class A
{
function foo()
{
if (isset($this)) {
echo '$this is defined (';
echo get_class($this);
echo ")\n";
} else {
echo "\$this is not defined.\n";
}
}
}

class B
{
function bar()
{
A::foo();
}
}

$a = new A();
$a->foo();

A::foo();

$b = new B();
$b->bar();

B::bar();
?>

Résultat de l'exemple ci-dessus en PHP 7 :

$this is defined (A)

Deprecated: Non-static method A::foo() should not be called statically in %s  on line 27
$this is not defined.

Deprecated: Non-static method A::foo() should not be called statically in %s  on line 20
$this is not defined.

Deprecated: Non-static method B::bar() should not be called statically in %s  on line 32

Deprecated: Non-static method A::foo() should not be called statically in %s  on line 20
$this is not defined.

Résultat de l'exemple ci-dessus en PHP 8 :

$this is defined (A)

Fatal error: Uncaught Error: Non-static method A::foo() cannot be called statically in %s :27
Stack trace:
#0 {main}
  thrown in %s  on line 27

Classes en lecture seule (readonly)

À partir de PHP 8.2.0, une classe peut être marquée avec le modificateur readonly. Marquer une classe comme readonly ajoutera le modificateur readonly à chaque propriété déclarée, et empêchera la création de propriétés dynamiques. En outre, il est impossible d'ajouter leur prise en charge en utilisant l'attribut AllowDynamicProperties. Toute tentative de le faire déclenchera une erreur de compilation.

<?php
#[\AllowDynamicProperties]
readonly class Foo {
}

// Fatal error: Cannot apply #[AllowDynamicProperties] to readonly class Foo
?>

Comme ni les propriétés non typées ni les propriétés statiques ne peuvent être marquées avec le modificateur readonly, les classes readonly ne peuvent pas non plus les déclarer :

<?php
readonly class Foo
{
public $bar;
}

// Fatal error: Readonly property Foo::$bar must have type
?>
<?php
readonly class Foo
{
public static int $bar;
}

// Fatal error: Readonly class Foo cannot declare static properties
?>

Une classe readonly peut être étendu si, et seulement si, la classe enfant est également une classe readonly.

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 variable string 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é.

Note:

S'il n'y a pas d'arguments à passer au constructeur de la classe, les parenthèses après le nom de la classe peuvent être omises.

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()
?>

À partir de PHP 8.0.0, l'utilisation de new avec des expressions arbitraires est supportée. Ceci permet des instantiations plus complexes si l'expression produit une string. L'expression doit être entourée de parenthèses.

Exemple #4 Créer une instance en utilisant une expression arbitraire

Dans l'exemple donné, nous montrons plusieurs exemples d'expressions arbitraires valides qui produisent un nom de classe. Ceci montre un appel de fonction, une concaténation de chaînes et la constante ::class.

<?php

class ClassA extends \stdClass {}
class ClassB extends \stdClass {}
class ClassC extends ClassB {}
class ClassD extends ClassA {}

function getSomeClass(): string
{
return 'ClassA';
}

var_dump(new (getSomeClass()));
var_dump(new ('Class' . 'B'));
var_dump(new ('Class' . 'C'));
var_dump(new (ClassD::class));
?>

Résultat de l'exemple ci-dessus en PHP 8 :

object(ClassA)#1 (0) {
}
object(ClassB)#1 (0) {
}
object(ClassC)#1 (0) {
}
object(ClassD)#1 (0) {
}

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 #5 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"
}

Il est possible de créer une instance d'un objet de quelques manières différentes :

Exemple #6 Créer de nouveaux objets

<?php

class Test
{
public static function getNew()
{
return new static();
}
}

class Child extends Test {}

$obj1 = new Test(); // Par le nom de la classe
$obj2 = new $obj1; // À travers la variable contenant un objet
var_dump($obj1 !== $obj2);

$obj3 = Test::getNew(); // Par la méthode de classe
var_dump($obj3 instanceof Test);

$obj4 = Child::getNew(); // À travers une méthode de classe enfant
var_dump($obj4 instanceof Child);

?>

L'exemple ci-dessus va afficher :

bool(true)
bool(true)
bool(true)

Il est possible d'accéder à un membre d'un objet nouvellement créé en une seule expression :

Exemple #7 Accéder un membre d'un objet nouvellement créé

<?php
echo (new DateTime())->format('Y');
?>

Résultat de l'exemple ci-dessus est similaire à :

2016

Note: Antérieur à PHP 7.1, les arguments ne sont pas évalués s'il n'y a pas de fonction constructeur définie.

Propriétés et méthodes

Les propriétés et méthodes de classe vivent dans des "espaces de noms" séparé, donc il est possible d'avoir une propriété et une méthode avec le même nom. Faire référence à la fois a une propriété ainsi qu'une méthode ont la même notation, et le fait qu'une propriété sera accédée ou qu'une méthode sera appelée, dépend seulement du contexte, c'est-à-dire si l'utilisation est un accès variable ou un appel de fonction.

Exemple #8 Accès de propriété contre appel de méthode

<?php
class Foo
{
public $bar = 'property';

public function bar() {
return 'method';
}
}

$obj = new Foo();
echo $obj->bar, PHP_EOL, $obj->bar(), PHP_EOL;

L'exemple ci-dessus va afficher :

property
method

Ceci signifie qu'appeler une fonction anonyme qui a été assigné à une propriété n'est pas possible directement. Au lieu de cela, la propriété doit d'abord être affectée à une variable. Il est possible d'appeler ce genre de propriété directement en la mettant entre parenthèses.

Exemple #9 Appeler une fonction anonyme enregistrée dans une propriété

<?php
class Foo
{
public $bar;

public function __construct() {
$this->bar = function() {
return 42;
};
}
}

$obj = new Foo();

echo ($obj->bar)(), PHP_EOL;

L'exemple ci-dessus va afficher :

42

Le mot-clé extends

Une classe peut hériter des constantes, méthodes et des propriétés 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 constantes, méthodes et propriétés héritées peuvent être redéfinies 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 ou constante comme final, alors celles-ci ne peuvent pas être redéfinies. Il est possible d'accéder aux méthodes ou propriétés statiques redéfinies en y faisant référence avec l'opérateur parent::.

Note: À partir de PHP 8.1.0, les constantes peuvent être déclaré comme finale.

Exemple #10 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

Règles de compatibilité de signature

Lors de la surcharge d'une méthode, sa signature doit être compatible avec la méthode parente. Sinon, une erreur fatale est émise, ou, antérieur à PHP 8.0.0, une erreur de niveau E_WARNING est générée. Une signature est compatible si elle respecte les règles de variance, rend un paramètre obligatoire optionnel, et seulement si tous les nouveaux paramètres sont optionnels et assouplissent les régles de visibilité. Ceci est connu sous le Principe de Substitution de Liskov (Liskov Substitution Principle), ou simplement LSP. Le constructeur, et les méthodes private sont exclus de ces règles de compatibilité des signatures, et par conséquent n'émettront pas d'erreur fatale en cas de signature incompatible.

Exemple #11 Méthodes enfant compatibles

<?php
class Base
{
public function foo(int $a) {
echo "Valid\n";
}
}
class Extend1 extends Base
{
function foo(int $a = 5)
{
parent::foo($a);
}
}
class Extend2 extends Base
{
function foo(int $a, $b = 5)
{
parent::foo($a);
}
}
$extended1 = new Extend1();
$extended1->foo();
$extended2 = new Extend2();
$extended2->foo(1);

L'exemple ci-dessus va afficher :

Valid
Valid

Les exemples suivants démontrent qu'une méthode enfant qui supprime un paramètre, ou rend un paramètre optionnel obligatoire, n'est pas compatible avec la méthode parente.

Exemple #12 Erreur fatale quand une méthode enfant supprime un paramètre

<?php
class Base
{
public function foo(int $a = 5) {
echo "Valid\n";
}
}
class Extend extends Base
{
function foo()
{
parent::foo(1);
}
}

Résultat de l'exemple ci-dessus en PHP 8 est similaire à :

Fatal error: Declaration of Extend::foo() must be compatible with Base::foo(int $a = 5) in /in/evtlq on line 13

Exemple #13 Erreur fatale quand une méthode enfant rend un paramètre optionnel obligatoire

<?php
class Base
{
public function foo(int $a = 5) {
echo "Valid\n";
}
}
class Extend extends Base
{
function foo(int $a)
{
parent::foo($a);
}
}

Résultat de l'exemple ci-dessus en PHP 8 est similaire à :

Fatal error: Declaration of Extend::foo(int $a) must be compatible with Base::foo(int $a = 5) in /in/qJXVC on line 13
Avertissement

Renommer un paramètre d'une méthode dans une classe enfant n'est pas une incompatibilité de signature. Cependant, ceci est découragé car ceci va résulter en une Error lors du runtime si les arguments nommés sont utilisés.

Exemple #14 Erreur lors de l'utilisation des arguments nommés et que les paramètres ont été renommés dans une classe enfant

<?php
class A {
public function test($foo, $bar) {}
}
class B extends A {
public function test($a, $b) {}
}
$obj = new B;
// Pass parameters according to A::test() contract
$obj->test(foo: "foo", bar: "bar"); // ERROR!

Résultat de l'exemple ci-dessus est similaire à :

Fatal error: Uncaught Error: Unknown named parameter $foo in /in/XaaeN:14
Stack trace:
#0 {main}
  thrown in /in/XaaeN on line 14

::class

Le mot clé class est également utilisé pour la résolution des noms de classes. Il est possible d'obtenir le nom complètement qualifié d'une classe ClassName en utilisant ClassName::class. C'est particulièrement utile avec les classes utilisant des espaces de noms.

Exemple #15 Résolution de nom de classe

<?php
namespace NS {
class ClassName {
}

echo ClassName::class;
}
?>

L'exemple ci-dessus va afficher :

NS\ClassName

Note:

La résolution du nom de classe en utilisant ::class est une transformation lors de la compilation. C'est-à-dire à l'instant où la chaine du nom de classe est créé aucun autochargement n'a encore eu lieu. Par conséquent, les noms de classes sont étendues même si la classe n'existe pas. Aucune erreur n'est émise dans ce cas là.

Exemple #16 Résolution de nom de classe manquante

<?php
print Does\Not\Exist::class;
?>

L'exemple ci-dessus va afficher :

Does\Not\Exist

À partir de PHP 8.0.0, ::class peut être utilisé sur les objets. Cette résolution se produit lors de l'exécution, et non lors de la compilation. Ses effets sont les mêmes que d'appeler get_class() sur l'objet.

Exemple #17 Résolution du nom d'un objet

<?php
namespace NS {
class ClassName {
}
}
$c = new ClassName();
print $c::class;
?>

L'exemple ci-dessus va afficher :

NS\ClassName

Méthodes et propriétés nullsafe

À partir de PHP 8.0.0, les méthodes et propriétés peuvent aussi être accédés avec l'opérateur "nullsafe": ?->. L'opérateur nullsafe fonctionne à l'identique que l'accès de propriétés ou méthodes comme si dessus, à l'exception que si l'objet qui est déréférencé est null alors null sera retourné au lieu de lancer une exception. Si le déréférencement fait par d'une chaîne, le reste de la chaîne est ignoré.

L'effet est similaire à entourer chaque accès par une vérification avec is_null() d'abord, mais plus compact.

Exemple #18 Opérateur nullsafe

<?php

// À partir de PHP 8.0.0, cette ligne:
$result = $repository?->getUser(5)?->name;

// Est équivalente à bloc de code suivant :
if (is_null($repository)) {
$result = null;
} else {
$user = $repository->getUser(5);
if (is_null($user)) {
$result = null;
} else {
$result = $user->name;
}
}
?>

Note:

L'opérateur nullsafe est mieux utilisé quand null est considéré une valeur valide et potentiellement attendu pour une propriété ou valeur de retour d'une méthode. Pour indiquer une erreur, lancer une exception est préférable.


Propriétés

Les variables au sein d'une classe sont appelées propriétés. On peut également les retrouver sous d'autres dénominations tel que champs, mais pour cette documentation propriété sera utilisé. Elles sont définies en utilisant au moins un modificateur (tel que Visibilité, Statique, ou, à partir de PHP 8.1.0, readonly), suivi optionnellement (sauf pour les propriétés readonly), à partir de PHP 7.4, d'une déclaration de type, suivi d'une déclaration classique de variable. Cette déclaration peut comprendre une initialisation, mais celle-ci doit être une valeur constante

Note:

Une manière obsolète de déclarer une propriété de classe est d'utiliser le mot-clé var au lieu d'un modificateur.

Note: Une propriété déclarée sans modificateur de Visibilité sera 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 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 au sein d'un objet. $this est la valeur de l'objet appelant.

Exemple #1 Déclarations de propriétés

<?php
class SimpleClass
{
public $var1 = 'hello ' . 'world';
public $var2 = <<<EOD
hello world
EOD;
public $var3 = 1+2;
// déclaration de propriété invalide :
public $var4 = self::myStaticMethod();
public $var5 = $myVar;

// Déclarations valides de propriétés :
public $var6 = myConstant;
public $var7 = [true, false];
public $var8 = <<<'EOD'
hello world
EOD;

// Sans modificateur de visibilité :
static $var9;
readonly int $var10;
}
?>

Note:

Il existe des fonctions diverses qui permettent de gérer des classes et des objets. Voir la référence sur les Fonctions Classes/Objets.

Déclarations des types

À partir de PHP 7.4.0, les définitions de propriétés peuvent inclure une Déclarations de type, avec l'exception du type callable.

Exemple #2 Exemple de propriétés typées

<?php

class User
{
public int $id;
public ?string $name;

public function __construct(int $id, ?string $name)
{
$this->id = $id;
$this->name = $name;
}
}

$user = new User(1234, null);

var_dump($user->id);
var_dump($user->name);

?>

L'exemple ci-dessus va afficher :

int(1234)
NULL

Les propriétés typées doivent être initialisées avant d'y accéder, sinon, une Error sera émise.

Exemple #3 Accès aux propriétés

<?php

class Shape
{
public int $numberOfSides;
public string $name;

public function setNumberOfSides(int $numberOfSides): void
{
$this->numberOfSides = $numberOfSides;
}

public function setName(string $name): void
{
$this->name = $name;
}

public function getNumberOfSides(): int
{
return $this->numberOfSides;
}

public function getName(): string
{
return $this->name;
}
}

$triangle = new Shape();
$triangle->setName("triangle");
$triangle->setNumberofSides(3);
var_dump($triangle->getName());
var_dump($triangle->getNumberOfSides());

$circle = new Shape();
$circle->setName("circle");
var_dump($circle->getName());
var_dump($circle->getNumberOfSides());
?>

L'exemple ci-dessus va afficher :

string(8) "triangle"
int(3)
string(6) "circle"

Fatal error: Uncaught Error: Typed property Shape::$numberOfSides must not be accessed before initialization

Propriétés en lecture seule (readonly)

À partir de PHP 8.1.0, une propriété peut être déclarée avec le modificateur readonly, qui empêche la modification de la propriété après l'initialisation.

Exemple #4 Exemple de propriétés en lecture seule

<?php

class Test {
public readonly string $prop;

public function __construct(string $prop) {
// Initialization légale.
$this->prop = $prop;
}
}

$test = new Test("foobar");
// Lecture légale.
var_dump($test->prop); // string(6) "foobar"

// Réaffectation illégal. Ce n'importe pas que la valeur assigné soit identique.
$test->prop = "foobar";
// Error: Cannot modify readonly property Test::$prop
?>

Note:

Le modificateur de lecture seule ne peut être appliqué qu'aux propriétés typées. Une propriété en lecture seule sans contrainte de type peut être créée en utilisant le type Mixed.

Note:

Les propriétés statiques en lecture seule ne sont pas supportées.

Une propriété en lecture seule ne peut être initialisée qu'une seule fois, et seulement depuis la portée dans laquelle elle a été déclarée. Tout autre affectation ou modification de la propriété résultera en une exception Error.

Exemple #5 Initialisation illégale de propriétés en lecture seule

<?php
class Test1 {
public readonly string $prop;
}

$test1 = new Test1;
// Initialisation illégale en dehors de la portée privée.
$test1->prop = "foobar";
// Error: Cannot initialize readonly property Test1::$prop from global scope
?>

Note:

Spécifier une valeur par défaut explicite à une propriété en lecture seule n'est pas autorisé, car une propriété en lecture seule avec une valeur par défaut est essentiellement identique à une constante, et par conséquent pas particulièrement utile.

<?php

class Test {
// Fatal error: Readonly property Test::$prop cannot have default value
public readonly int $prop = 42;
}
?>

Note:

Les propriétés en lecture seule ne peuvent pas être unset() une fois qu'elles ont été initialisées. Cependant, il est possible de unset une propriété en lecture seule avant son initialisation, depuis la portée où la propriété a été déclarée.

Les modifications ne sont pas nécessairement des affectations simples, tous les exemples suivants résulteront en une exception Error :

<?php

class Test {
public function __construct(
public readonly int $i = 0,
public readonly array $ary = [],
) {}
}

$test = new Test;
$test->i += 1;
$test->i++;
++$test->i;
$test->ary[] = 1;
$test->ary[0][] = 1;
$ref =& $test->i;
$test->i =& $ref;
byRef($test->i);
foreach ($test as &$prop);
?>

Cependant, les propriétés en lecture seule n'excluent pas la mutabilité intérieure. Les objets (ou ressources) stockés dans les propriétés en lecture seule peuvent toujours être modifiés en interne :

<?php

class Test {
public function __construct(public readonly object $obj) {}
}

$test = new Test(new stdClass);
// Mutation interne légale.
$test->obj->foo = 1;
// Réaffectation illégale.
$test->obj = new stdClass;
?>

Propriétés Dynamiques

Lors d'une tentative d'assignation à une propriété non existante sur un objet, PHP créera automatiquement une propriété correspondante. Cette propriété créée dynamiquement sera uniquement disponible sur cette instance de classe.

Avertissement

Les propriétés dynamiques sont obsolètes à partir de PHP 8.2.0. Il est recommandé de déclarer la propriété à la place. Pour gérer des noms de propriétés arbitraires, la classe devrait implémenter les méthodes magiques __get() et __set(). Comme dernier recours la classe peut être marqué avec l'attribut #[\AllowDynamicProperties].


Constantes de classe

Il est possible de définir des constantes par classes qui restent identiques et non modifiables. La visibilité par défaut des constantes de classe est public.

Note:

Les constantes de classes peuvent être redéfinies par une classe enfant. À partir de PHP 8.1.0, les constantes de classes ne peuvent pas être redéfinies par une classe enfant si elle a été défini comme finale.

Il est aussi possible pour les interfaces d'avoir des constantes. Voir la documentation des interfaces pour des exemples.

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).

Notez que les constantes de classe sont allouées une fois par classe, et non pour chaque instance de classe.

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";

$class = new MyClass();
$class->showConstant();

echo $class::CONSTANT."\n";
?>

La constante spéciale ::class permet une résolution de nom de classe pleinement qualifié au moment de la compilation, cela est utile pour les classes dans un espace de nom :

Exemple #2 Exemple d'utilisation de ::class

<?php
namespace foo {
class bar {
}

echo bar::class; // foo\bar
}
?>

Exemple #3 Exemple d'expressions pour une constante de classe

<?php
const ONE = 1;
class foo {
const TWO = ONE * 2;
const THREE = ONE + self::TWO;
const SENTENCE = 'The value of THREE is '.self::THREE;
}
?>

Exemple #4 Modificateur de visibilité des constantes de classe, à partir de PHP 7.1

<?php
class Foo {
public const BAR = 'bar';
private const BAZ = 'baz';
}
echo Foo::BAR, PHP_EOL;
echo Foo::BAZ, PHP_EOL;
?>

Résultat de l'exemple ci-dessus en PHP 7.1 :

bar

Fatal error: Uncaught Error: Cannot access private const Foo::BAZ in …

Note:

À partir de PHP 7.1.0, les modificateurs de visibilité sont autorisés sur les constantes de classe.


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.

La fonction spl_autoload_register() enregistre un nombre quelconque de chargeurs automatiques, ce qui permet aux classes et aux interfaces d'être automatiquement chargées si elles ne sont pas définies actuellement. En enregistrant des autochargeurs, PHP donne une dernière chance d'inclure une définition de classe ou interface, avant que PHP n'échoue avec une erreur.

Toute construction similaire à des classes peuvent être autochargées de la même manière. Ceci inclut les classes, interfaces, trait, et énumérations.

Attention

Antérieur à PHP 8.0.0, il était possible d'utiliser __autoload() pour autocharger les classes et interfaces. Cependant c'est une alternative moins flexible à spl_autoload_register() et __autoload() est obsolète à partir de PHP 7.2.0, et supprimée à partir de PHP 8.0.0.

Note:

spl_autoload_register() peut être appelée plusieurs fois pour enregistrer plusieurs autochargeur. Lancer une exception depuis une fonction d'autochargement, interrompra ce processus et ne permet pas aux fonctions d'autochargement suivantes à être exécutées. Pour cette raison, lancer des exceptions depuis une fonction d'autochargement est fortement découragée.

Exemple #1 Exemple d'autochargement

Cet exemple tente de charger les classes MaClasse1 et MaClasse2, respectivement depuis les fichiers MaClasse1.php et MaClasse2.php.

<?php
spl_autoload_register(function ($class_name) {
include $class_name . '.php';
});

$obj = new MaClasse1();
$obj2 = new MaClasse2();
?>

Exemple #2 Autre exemple d'autochargement

Cet exemple tente de charger l'interface ITest.

<?php

spl_autoload_register(function ($name) {
var_dump($name);
});

class Foo implements ITest {
}

/*
string(5) "ITest"

Fatal error: Interface 'ITest' not found in ...
*/
?>

Voir aussi

  • unserialize()
  • unserialize_callback_func
  • unserialize_max_depth
  • spl_autoload_register()
  • spl_autoload()
  • __autoload()


Constructeurs et destructeurs

Constructeur

__construct(mixed ...$values = ""): void

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 parente, 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 Constructeur lors de l'héritage

<?php
class BaseClass {
function __construct() {
print "Dans le constructeur de BaseClass\n";
}
}

class SubClass extends BaseClass {
function __construct() {
parent::__construct();
print "Dans le constructeur de SubClass\n";
}
}

class OtherSubClass extends BaseClass {
// Constructeur hérité de BaseClass
}

// Dans le constructeur de BaseClass
$obj = new BaseClass();

// Dans le constructeur de BaseClass
// Dans le constructeur de SubClass
$obj = new SubClass();

// Dans le constructeur de BaseClass
$obj = new OtherSubClass();
?>

À la différence des autres méthodes, __construct() est exclue des règles de compatibilités des signatures usuelles quand elle est étendue.

Les constructeurs sont des méthodes ordinaires qui sont appelées lors de l'instanciation de leur objet correspondant. Par conséquent, ils peuvent définir un nombre arbitraire d'arguments, qui peuvent être requis, avoir un type, et peuvent avoir une valeur par défaut. Les arguments d'un constructeur sont appelés en plaçant les arguments dans des parenthèses après le nom de la classe.

Exemple #2 Utiliser les arguments d'un constructeur

<?php
class Point {
protected int $x;
protected int $y;

public function __construct(int $x, int $y = 0) {
$this->x = $x;
$this->y = $y;
}
}

// Pass both parameters.
$p1 = new Point(4, 5);
// Pass only the required parameter. $y will take its default value of 0.
$p2 = new Point(4);
// With named parameters (as of PHP 8.0):
$p3 = new Point(y: 5, x: 4);
?>

Si une classe n'a pas de constructeur, ou que le constructeur n'a pas d'arguments requis, les parenthèses peuvent être omises.

Style ancien des constructeurs

Antérieur à PHP 8.0.0, les classes dans le nom d'espace global interpréteront une méthode qui a le même nom que la classe comme un constructeur de style ancien. Cette syntaxe est obsolète, et résultera en une erreur E_DEPRECATED mais appellera quand même cette fonction comme un constructeur. Si __construct() et une méthode du même nom sont définies, __construct() sera appelé.

Les classes dans les espaces de nom, ou toute classe à partir de PHP 8.0.0, une méthode du même nom que la classe n'a jamais de signification particulière.

Toujours utiliser __construct() dans du nouveau code.

Promotion du Constructeur

À partir de PHP 8.0.0, les paramètres du constructeur peuvent être promus pour correspondre à une propriété de l'objet. Il est très commun pour les paramètres d'un constructeur d'être assignés à une propriété sans effectuer d'opérations dessus. La promotion du constructeur fournit un raccourci pour ce cas d'utilisation. L'exemple ci-dessus peut être réécrit de la façon suivante.

Exemple #3 Utilisant la promotion de propriété de constructeur

<?php
class Point {
public function __construct(protected int $x, protected int $y = 0) {
}
}

Quand un argument de constructeur inclut un modificateur, PHP l'interprétera comme une propriété d'objet et un argument du constructeur, et assigne la valeur de l'argument à la propriété. Le corps du constructeur peut être alors vide ou peut contenir d'autres déclarations. Toutes déclarations additionnelles seront exécutées après que la valeur de l'argument a été assignée à sa propriété correspondante.

Tous les arguments ne doivent pas être promus. Il est possible de mélanger et assortir les arguments promus et non-promus, dans n'importe quel ordre. Les arguments promus n'ont aucun impact sur du code appellant le constructeur.

Note:

Utiliser un modificateur de visibilité (public, protected ou private) est la manière la plus probable d'appliquer la promotion de propriété, mais tout autre modificateur unique (comme readonly) aura le même effet.

Note:

Les propriétés d'objet ne peuvent être typés callable à cause des ambiguïtés du moteur que ceci introduirait. Ainsi, les arguments promus, ne peuvent pas non plus être typés callable. Cependant, toute autre déclaration de type est permise.

Note:

Comme les propriétés promues sont à la fois désucrées à une propriété et aussi comme le paramètre d'une fonction, toutes les restrictions de nommage pour les propriétés et les paramètres s'appliquent.

Note:

Les attributs placés sur un argument de constructeur promu seront reproduits à la fois sur la propriété et sur l'argument. Les valeurs par défaut sur un argument de constructeur promu ne seront répliquées que sur l'argument et non sur la propriété.

New in initializers

À partir de PHP 8.1.0, les objets peuvent être utilisés comme valeur par défaut pour les paramètres, variables statiques, constantes globales et les arguments d'attributs. Les objets peuvent être désormais passés à define().

Note:

L'utilisation d'un nom de classe dynamique ou non-string ou une class anonyme n'est pas permise. L'utilisation du déballage d'arguments n'est pas permise. L'utilisation d'expressions non supportées en tant qu'argument n'est pas permise.

Exemple #4 Utilisation de new dans des initialiseurs

<?php

// All allowed:
static $x = new Foo;

const C = new Foo;

function test($param = new Foo) {}

#[AnAttribute(new Foo)]
class Test {
public function __construct(
public $prop = new Foo,
) {}
}

// All not allowed (compile-time error):
function test(
$a = new (CLASS_NAME_CONSTANT)(), // dynamic class name
$b = new class {}, // anonymous class
$c = new A(...[]), // argument unpacking
$d = new B($abc), // unsupported constant expression
) {}
?>

Méthode de création statique

PHP supporte uniquement un constructeur unique par classe. Cependant, dans certains cas il peut être désirable de permettre à un objet d'être construit de manière différente avec des entrées différentes. La façon recommandée de faire ceci est en utilisant des méthodes statiques comme une enveloppe du constructeur.

Exemple #5 Utilisant la création via une méthode statique

<?php
class Product {

private ?int $id;
private ?string $name;

private function __construct(?int $id = null, ?string $name = null) {
$this->id = $id;
$this->name = $name;
}

public static function fromBasicData(int $id, string $name): static {
$new = new static($id, $name);
return $new;
}

public static function fromJson(string $json): static {
$data = json_decode($json, true);
return new static($data['id'], $data['name']);
}

public static function fromXml(string $xml): static {
// Logique personnalisé.
$data = convert_xml_to_array($xml);
$new = new static();
$new->id = $data['id'];
$new->name = $data['name'];
return $new;
}
}

$p1 = Product::fromBasicData(5, 'Widget');
$p2 = Product::fromJson($some_json_string);
$p3 = Product::fromXml($some_xml_string);

Le constructeur peut être rendu privé ou protégé pour empêcher son appel depuis l'extérieur. Dans ce cas, seul une méthode statique sera capable d'instancier la classe. Puisqu'elles sont dans la même définition de classe, elles ont accès aux méthodes privées, même dans une instance différente de l'objet. Un constructeur privé est optionnel et peut ou pas faire de sens en fonction du cas d'utilisation.

Les trois méthodes statiques publiques démontrent alors des manières différentes d'instancier l'objet.

  • fromBasicData() prend les paramètres exacts qui sont nécessaires, puis créé l'objet en appellant le constructeur puis retournant le résultat.
  • fromJson() accepte une chaîne de caractère JSON et fait du pré-traitement sur lui même pour se convertir dans le format désiré par le constructeur. Elle retourne alors le nouvel objet.
  • fromXml() accepte une chaîne de caractère XML, fait du pré-traitement, puis créé un objet brut. Le constructeur est appelé, mais comme tous les paramètres sont optionnels la méthode les ignore. Elle assigne alors les valeurs aux propriétés de l'objet directement avant de retourner le résultat.

Dans les trois cas, le mot clé static est traduit en le nom de la classe dont le code y est. Dans ce cas, Product.

Destructeur

__destruct(): void

PHP possède 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 #6 Exemple avec un Destructeur

<?php

class MyDestructableClass
{
function __construct() {
print "In constructor\n";
}

function __destruct() {
print "Destroying " . __CLASS__ . "\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é, d'une méthode ou (à partir de PHP 7.1.0) une constante 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 sont accessibles partout. 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 parente. L'accès aux éléments privés est uniquement réservé à la classe qui les a définis.

Visibilité des propriétés

Les propriétés des classes peuvent être définies comme publiques, privées ou protégées. Les propriétés déclarées sans explicitement utiliser un mot-clef de visibilité seront automatiquement définies comme publiques.

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 propriétés publics ou protégés, mais pas ceux privés
public $public = 'Public2';
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 Public2, Protected2 et Undefined (Indéfini)

?>

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
?>

Constant Visibility

À partir de PHP 7.1.0, les constantes de classes peuvent être définies comme public, privée ou protégée. Les constantes déclarées sans mot clé de visibilité explicite sont définies en tant que public.

Exemple #3 Déclaration de constantes à partir de PHP 7.1.0

<?php
/**
* Déclarons MyClass
*/
class MyClass
{
// Déclarons une constante public
public const MY_PUBLIC = 'public';

// Déclarons une constante protégée
protected const MY_PROTECTED = 'protected';

// Déclarons une constante privée
private const MY_PRIVATE = 'private';

public function foo()
{
echo self::MY_PUBLIC;
echo self::MY_PROTECTED;
echo self::MY_PRIVATE;
}
}

$myclass = new MyClass();
MyClass::MY_PUBLIC; // Fonctionne
MyClass::MY_PROTECTED; // Erreur fatale
MyClass::MY_PRIVATE; // Erreur fatale
$myclass->foo(); // Public, Protégée et Privée fonctionne

/**
* Define MyClass2
*/
class MyClass2 extends MyClass
{
// This is public
function foo2()
{
echo self::MY_PUBLIC;
echo self::MY_PROTECTED;
echo self::MY_PRIVATE; // Erreur fatale
}
}

$myclass2 = new MyClass2;
echo MyClass2::MY_PUBLIC; // Fonctionne
$myclass2->foo2(); // Public et Protégée fonctionne, mais pas Privée
?>

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 #4 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, lorsqu'une classe est étendue, la classe enfant hérite de toutes les méthodes publiques et protégées, propriétés et constantes 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.

Les méthodes privées d'une classe parente ne sont pas accessible à la classe enfant. Par conséquent, les classes enfant peuvent réimplémenter une méthode privée eux-mêmes sans se soucier des règles d'héritage normales. Antérieur à PHP 8.0.0, cependant, les restrictions final et static étaient appliquées aux méthodes privées. À partir de PHP 8.0.0, l'unique restriction de méthode privée qui est imposé est private final sur les constructeurs, car c'est une manière courante pour "désactiver" le constructeur lors de l'utilisation de méthodes factory statique à la place.

La visibilité des méthodes, propriétés et constantes peut être relaxé, c.-à-d. une méthode protected peut être marqué comme public, mais elles ne peuvent pas être restraint, e.g. marquer une propriété public comme private. Une exception sont les constructeurs, pour lesquels la visibilité peut être restraintes, par exemple un constructeur public peut être annoté en tant que private dans la classe enfant.

Note:

A moins que l'autochargement 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.

Note:

Il n'est pas autorisé de redéfinir une propriété en lecture-écriture avec une propriété en lecture seule ou vice versa.

<?php

class A {
public int $prop;
}
class B extends A {
// Illegal: read-write -> readonly
public readonly int $prop;
}
?>

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'

?>

Compatibilité des types de retour avec les classes internes

Antérieur à PHP 8.1, la plupart des classes ou méthodes internes ne déclaraient pas leur type de retour, et tout type de retour était autorisé lors de leur héritage.

À partir de PHP 8.1.0, la plupart des méthodes internes ont commencé à déclarer "provisoirement" leur type de retour, dans ce cas, le type de retour des méthodes doit être compatible avec la classe parent; Dans le cas contraire, une notification de dépréciation est émise. Notez que l'absence d'une déclaration de retour explicite est également considérée comme une erreur de signature, et entraîne donc l'avis de dépréciation.

Si le type de retour ne peut être déclaré pour une méthode de surcharge en raison de problèmes de compatibilité entre versions de PHP, un attribut ReturnTypeWillChange peut être ajouté pour passer sous silence l'avis de dépréciation.

Exemple #2 La méthode surchargée ne déclare pas de type de retour.

<?php

class MyDateTime extends DateTime
{
public function modify(string $modifier) { return false; }
}

// "Deprecated: Return type of MyDateTime::modify(string $modifier) should either be compatible with DateTime::modify(string $modifier): DateTime|false, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice" À partir de PHP 8.1.0

Exemple #3 La méthode surchargée déclare un mauvais type de retour.

<?php

class MyDateTime extends DateTime
{
public function modify(string $modifier): ?DateTime { return null; }
}

// "Deprecated: Return type of MyDateTime::modify(string $modifier): ?DateTime should either be compatible with DateTime::modify(string $modifier): DateTime|false, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice" À partir de PHP 8.1.0

Exemple #4 La méthode surchargée déclare un mauvais type de retour sans notice de dépréciation.

<?php

class MyDateTime extends DateTime
{
/**
* @return DateTime|false
*/
#[\ReturnTypeWillChange]
public function modify(string $modifier) { return false; }
}

// Aucune notice n'est déclenchée


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 une constante, une propriété statique, ou une méthode statique d'une classe ou de l'une de ses classes parentes. De plus, les propriétés ou méthodes statiques peuvent être surchargées via la liaison statique tardive.

Lorsque vous référencez ces éléments en dehors de la définition de la classe, utilisez le nom de la classe.

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;

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';
$classname::doubleColon();

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, définir des fonctions anonymes statiques et pour des Résolutions statiques à la volée. 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. Celles-ci peuvent alors être accédées statiquement depuis une instance d'objet.

Méthodes statiques

Comme les méthodes statiques peuvent être appelées sans qu'une instance d'objet n'ait été créée, la pseudo-variable $this n'est pas disponible dans les méthodes déclarées comme statiques.

Avertissement

Appeler une méthode non-statique statiquement lancera une Error.

Antérieur à PHP 8.0.0, appeler une méthode non-statique statiquement était obsolète, et générait un avertissement E_DEPRECATED.

Exemple #1 Exemple avec une méthode statique

<?php
class Foo
{
public static function aStaticMethod() {
// ...
}
}

Foo::aStaticMethod();
$classname = 'Foo';
$classname::aStaticMethod();
?>

Propriétés statiques

Les propriétés statiques sont accédées en utilisant l' opérateur de résolution de portée (::) et ne peuvent pas être accédé à travers l'opérateur objet (->).

Il est possible de référencer la classe en utilisant une variable. La valeur de la variable ne peut être un mot-clé (par exemple self, parent et static).

Exemple #2 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";

print Bar::$my_static . "\n";
$bar = new Bar();
print $bar->fooStatic() . "\n";
?>

Résultat de l'exemple ci-dessus en PHP 8 est similaire à :

foo
foo
Notice: Accessing static property Foo::$my_static as non static in /in/V0Rvv on line 23
Warning: Undefined property: Foo::$my_static in /in/V0Rvv on line 23
foo
foo
foo
foo


Abstraction de classes

PHP a des classes et 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 la classe enfant et suivre les règles habituelles d'héritage et de compatibilité de signature.

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


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 partagent l'espace de nom avec les classes et les traits, donc elles ne peuvent pas utiliser le même nom.

Les interfaces sont définies de la même façon que pour une classe, mais en utilisant le mot-clé interface à la place de class, et 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.

En pratique les interfaces servent deux rôles complémentaires :

  • Permettre aux développeurs de créer des objets de classes différentes qui peuvent être utilisé de façon interchangeable, car elles implémentent la ou les mêmes interfaces. Un exemple commun sont plusieurs services d'accès à des bases de données, plusieurs gestionnaires de paiement ou différentes stratégies de cache. Différentes implémentations peuvent être échangées sans nécessiter des changements dans le code qui les utilisent.
  • Pour permettre à une fonction ou méthode d'accepter et opérer sur un paramètre qui conforme à une interface, sans se soucier de quoi d'autre l'objet peut faire ou comment c'est implémenté. Ces interfaces sont souvent nommées Iterable, Cacheable, Renderable, etc. pour décrire la signification de leur comportement.

Les interfaces peuvent définir des méthodes magiques pour obliger les classes implémentant à implémenter ces méthodes.

Note:

Bien que cela soit supporté, inclure les constructeurs dans les interfaces est fortement déconseillé. Le faire réduit radicalement la flexibilité des objets implémentant l'interface. De plus, les constructeurs ne sont pas soumis aux règles d'héritage, ce qui peut causer des incohérences et des comportements inattendus.

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.

Avertissement

Une classe qui implémente une interface peut utiliser des noms différents pour ses paramètres que l'interface. Cependant, à partir de PHP 8.0, le langage supporte les arguments nommés, ce qui signifie que l'appeleur peut dépendre du nom du paramètre dans l'interface. Pour cette raison, il est fortement recommandé que les développeurs utilisent le même nom de paramètre que dans l'interface qui est implémenté.

Note:

Les interfaces peuvent être étendues comme des classes, en utilisant l'opérateur extends

Note:

La classe implémentant l'interface doit déclarer toutes les méthodes dans l'interface avec une signature compatible. Une classe peut implémenter deux interfaces qui définissent une méthode avec le même nom. Dans ce cas, l'implémentation doit suivre les règles de compatibilité des signatures pour toutes les interfaces. Ainsi, la covariance et la contravariance peuvent être appliquées.

Les constantes

Les interfaces peuvent contenir des constantes. Les constantes d'interfaces fonctionnent exactement comme les constantes de classe. Antérieur à PHP 8.1.0, elles ne peuvent pas être redéfinies par une classe/interface qui les hérite.

Exemples

Exemple #1 Exemple d'interface

<?php

// Declaration de l'interface 'Template'
interface Template
{
public function setVariable($name, $var);
public function getHtml($template);
}

// Implémentation de l'interface
// Ceci va fonctionner
class WorkingTemplate implements Template
{
private $vars = [];

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 (Template::getHtml)
class BadTemplate implements Template
{
private $vars = [];

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 Compatibilité de la variance avec plusieurs interfaces

<?php
class Foo {}
class Bar extends Foo {}

interface A {
public function myfunc(Foo $arg): Foo;
}

interface B {
public function myfunc(Bar $arg): Bar;
}

class MyClass implements A, B
{
public function myfunc(Foo $arg): Bar
{
return new Bar();
}
}
?>

Exemple #4 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 #5 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';
}

// Affiche : Constante de classe
// Antérieur à PHP 8.1.0, ceci ne fonctionnera pas, puisqu'il n'était pas permis
// de redéfinir des constantes.
echo B::B;
?>

Exemple #6 Les interfaces avec les classes abstraites

<?php
interface A
{
public function foo(string $s): string;

public function bar(int $i): int;
}

// An abstract class may implement only a portion of an interface.
// Classes that extend the abstract class must implement the rest.
abstract class B implements A
{
public function foo(string $s): string
{
return $s . PHP_EOL;
}
}

class C extends B
{
public function bar(int $i): int
{
return $i * 2;
}
}
?>

Exemple #7 Étendant et implémentant simultanément

<?php

class One
{
/* ... */
}

interface Usable
{
/* ... */
}

interface Updatable
{
/* ... */
}

// The keyword order here is important. 'extends' must come first.
class Two extends One implements Usable, Updatable
{
/* ... */
}
?>

Une interface, avec les déclarations de types, fournit une bonne manière pour s'assurer qu'un objet particulier contient des méthodes particulières. Voir l'opérateur instanceof et les déclarations de type.


Traits

PHP implémente une manière pour réutiliser du 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. Notez que l'opérateur as ne renomme pas la méthode et n'affecte pas d'autres méthodes non plus.

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'implémentation 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. Les méthodes publiques, protégées, et privées sont supportées. Antérieur à PHP 8.0.0, seule les méthodes publiques et protégées abstraire étaient supportées.

Attention

À partir de PHP 8.0.0, la signature d'une méthode concrète doit suivre les règles de compatibilité des signatures. Auparavant, sa signature pouvait être différente.

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

Les traits peuvent définir des variables statiques, méthodes statiques et propriétés statiques.

Note:

À partir de PHP 8.1.0, appeler une méthode statique ou accéder à une propriété statique directement sur un trait est obsolète. Les méthodes et propriétés statiques devraient seulement être accédé sur une classe utilisant le trait.

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();
?>

Exemple #11 Propriétés statiques

<?php
trait StaticExample {
public static $static = 'foo';
}

class Example {
use StaticExample;
}

echo Example::$static;
?>

Propriétés

Les traits peuvent aussi définir des propriétés.

Exemple #12 Définir des propriétés

<?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 sauf si elle est compatible (même visibilité, type, modificateur readonly, valeur initiale), sinon une erreur fatale est émise.

Exemple #13 Résolution des conflits

<?php
trait PropertiesTrait {
public $same = true;
public $different1 = false;
public bool $different2;
public bool $different3;
}

class PropertiesExample {
use PropertiesTrait;
public $same = true;
public $different1 = true; // Fatal error
public string $different2; // Fatal error
readonly protected bool $different3; // Fatal error
}
?>

Constantes

Les traits peuvent, à partir de PHP 8.2.0, aussi définir des constantes.

Exemple #14 Trait définissant une constante

<?php
trait ConstantsTrait {
public const FLAG_MUTABLE = 1;
final public const FLAG_IMMUTABLE = 5;
}

class ConstantsExample {
use ConstantsTrait;
}

$example = new ConstantsExample;
echo $example::FLAG_MUTABLE; // 1
?>

Si un trait définit une constante, alors une classe ne peut pas définir une constante avec le même nom, à moins qu'elle ne soit compatible (même visibilité, même valeur, etc.), sinon une erreur fatale est émise.

Exemple #15 Résolution de conflit

<?php
trait ConstantsTrait {
public const FLAG_MUTABLE = 1;
final public const FLAG_IMMUTABLE = 5;
}

class ConstantsExample {
use ConstantsTrait;
public const FLAG_IMMUTABLE = 5; // Fatal error
}
?>


Classes anonymes

Les classes anonymes sont utiles lorsque de simples objets uniques ont besoin d'être créés.

<?php

// Utilisant une classe explicite
class Logger
{
public function log($msg)
{
echo $msg;
}
}

$util->setLogger(new Logger());

// Utilisant une classe anonyme
$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 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 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

Tous les objets créés par la même déclaration de classe anonyme sont des instances de cette même classe.

<?php
function anonymous_class()
{
return new class {};
}

if (get_class(anonymous_class()) === get_class(anonymous_class())) {
echo 'same class';
} else {
echo 'different class';
}

L'exemple ci-dessus va afficher :

same class

Note:

Notez que les classes anonymes sont affectées d'un nom par le moteur, comme l'illustre l'exemple suivant. Ce nom doit être considéré comme un détail de mise en œuvre, qui ne doit pas être invoqué.

<?php
echo get_class(new class {});

Résultat de l'exemple ci-dessus est similaire à :

class@anonymous/in/oNi1A0x7f8636ad2021


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.

Surcharge de propriétés

public __set(string $name, mixed $value): void
public __get(string $name): mixed
public __isset(string $name): bool
public __unset(string $name): void

__set() est sollicitée lors de l'écriture de données vers des propriétés inaccessibles (protégées ou privées) ou non existante.

__get() est appelée pour lire des données depuis des propriétés inaccessibles (protégées ou privées) ou non existante.

__isset() est sollicitée lorsque isset() ou empty() sont appelées sur des propriétés inaccessibles (protégées ou privées) ou non existante.

__unset() est invoquée lorsque unset() est appelée sur des propriétés inaccessibles (protégées ou privées) ou non existante.

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. 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'affectation, comme ceci :

 $a = $obj->b = 8;

Note:

PHP n'appellera pas une méthode surchargée à partir de la même méthode surchargée. Cela signifie, par exemple, qu'écrire return $this->foo à l'intérieur de __get() retournera null et lèvera un E_WARNING s'il n'y a pas de propriété foo définie, plutôt que d'appeler __get() une deuxième fois. Toutefois, les méthodes de surcharge peuvent invoquer d'autres méthodes de surcharge de manière implicite (par exemple, __set() déclenchant __get()).

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;
}

public function __isset($name)
{
echo "Est-ce que '$name' est défini ?\n";
return isset($this->data[$name]);
}

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 __call(string $name, array $arguments): mixed
public static __callStatic(string $name, array $arguments): mixed

__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";
}

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');
?>

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 manière 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.

Voir aussi

  • Generators
  • Iterator
  • IteratorAggregate
  • SPL Iterators


Méthodes magiques

Les méthodes magiques sont des méthodes spéciales qui écrasent l'action par défaut de PHP quand certaines actions sont réalisées sur un objet.

Attention

Toutes les méthodes commençant par __ sont réservées par PHP. Ainsi, il n'est pas recommandé d'utiliser un tel nom de méthode sauf lors de l'écrasage du comportement de PHP.

Les méthodes suivantes sont considérées magiques :

__construct(),
__destruct(),
__call(),
__callStatic(),
__get(),
__set(),
__isset(),
__unset(),
__sleep(),
__wakeup(),
__serialize(),
__unserialize(),
__toString(),
__invoke(),
__set_state()
__clone(), et
__debugInfo().

Avertissement

Toutes les méthodes magiques, à l'exception de
__construct(),
__destruct(), et
__clone(),
doivent être déclarées en tant que public,
sinon une E_WARNING est émise.
Antérieur à PHP 8.0.0, aucun diagnostic n'était émis pour les méthodes magiques
__sleep(),
__wakeup(),
__serialize(),
__unserialize(), et
__set_state().

Avertissement

Si des déclarations de types sont utilisées dans la définition d'une méthode magique, elles doivent être identiques à la signature décrite dans ce document. Sinon, une erreur fatale est émise. Antérieur à PHP 8.0.0, aucun diagnostic n'était émis. Cependant, __construct() et __destruct() ne doivent pas déclarer un type de retour ; sinon une erreur fatale est émise.

__sleep() et __wakeup()

public __sleep(): array
public __wakeup(): void

serialize() vérifie si la classe a une méthode avec le nom magique __sleep(). Si c'est le cas, cette méthode sera exécutée avant toute sérialisation. 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 sérialisées. Si la méthode ne retourne rien, alors null sera sérialisé, 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. Utilisez __serialize() à la place.

Note:

À partir de PHP 8.0.0, retourner une valeur qui n'est pas un tableau depuis __sleep() émet un avertissement. Auparavant une notice était émise.

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 un objet très large n'a pas besoin d'être sauvegardés dans sa 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 sérialisation 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();
}
}
?>

__serialize() et __unserialize()

public __serialize(): array
public __unserialize(array $data): void

serialize() vérifie si la classe a une méthode avec le nom magique __serialize(). Si c'est le cas, cette méthode sera exécutée avant toute sérialisation. Elle doit construire et retourner un tableau associatif de paire clé/valeur qui représente la forme sérialisée de l'objet. Si aucun tableau n'est retournée une TypeError sera lancée.

Note:

Si __serialize() et __sleep() sont toutes les deux définies dans le même objet, alors seulement __serialize() sera appelée. __sleep() sera ignorée. Si l'objet implémente l'interface Serializable, la méthode serialize() de l'interface sera ignorée et __serialize() sera utilisée à la place.

L'utilisation prévue de __serialize() est de définir une représentation arbitraire de l'objet pour le sérialiser facilement. Les éléments du tableau peuvent correspondre aux propriétés de l'objet mais ceci n'est pas requis.

inversement, unserialize() vérifie la présence d'une fonction avec le nom magique __unserialize(). Si elle est présente, cette fonction recevra le tableau restauré renvoyé par __serialize(). Il peut alors restaurer les propriétés de l'objet depuis ce tableau comme approprié.

Note:

Si __unserialize() et __wakeup() sont toutes les deux définies dans le même objet, alors seulement __unserialize() sera appelée. __wakeup() sera ignorée.

Note:

Cette fonctionnalité est disponible à partir de PHP 7.4.0.

Exemple #2 Serialize et unserialize

<?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 __serialize(): array
{
return [
'dsn' => $this->dsn,
'user' => $this->username,
'pass' => $this->password,
];
}

public function __unserialize(array $data): void
{
$this->dsn = $data['dsn'];
$this->username = $data['user'];
$this->password = $data['pass'];

$this->connect();
}
}?>

__toString()

public __toString(): string

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.

Avertissement

Un objet Stringable ne sera pas accepté par une déclaration de type string si la déclaration de type strict est activée. Si un tel comportement est souhaité, la déclaration de type doit accepter à la fois Stringable et string via un type union.

À partir de PHP 8.0.0, la valeur de retour suit les sémantiques standard de PHP, signifiant que la valeur sera convertie en une string si possible et si le typage stricte est désactivé.

À partir de PHP 8.0.0, toute classe qui contient une méthode __toString() implémente aussi implicitement l'interface Stringable, et passera donc les vérifications de types pour cette interface. Implémenter quand même explicitement l'interface est recommandé.

En PHP 7.4, la valeur de retour doit être une string, sinon une Error est lancée.

Antérieur à PHP 7.4.0, la valeur de retour doit être une string, sinon une E_RECOVERABLE_ERROR fatale est émise.

Avertissement

Il était impossible de lancer une exception depuis la méthode __toString() antérieur à PHP 7.4.0. Cela entraînera une erreur fatale.

Exemple #3 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

__invoke()

__invoke( ...$values): mixed

La méthode __invoke() est appelée lorsqu'un script tente d'appeler un objet comme une fonction.

Exemple #4 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)

Exemple #5 Exemple avec __invoke()

<?php
class Sort
{
private $key;

public function __construct(string $key)
{
$this->key = $key;
}

public function __invoke(array $a, array $b): int
{
return $a[$this->key] <=> $b[$this->key];
}
}

$customers = [
['id' => 1, 'first_name' => 'John', 'last_name' => 'Do'],
['id' => 3, 'first_name' => 'Alice', 'last_name' => 'Gustav'],
['id' => 2, 'first_name' => 'Bob', 'last_name' => 'Filipe']
];

// trier les clients par prénom
usort($customers, new Sort('first_name'));
print_r($customers);

// trier les clients par nom de famille
usort($customers, new Sort('last_name'));
print_r($customers);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Array
        (
            [id] => 3
            [first_name] => Alice
            [last_name] => Gustav
        )

    [1] => Array
        (
            [id] => 2
            [first_name] => Bob
            [last_name] => Filipe
        )

    [2] => Array
        (
            [id] => 1
            [first_name] => John
            [last_name] => Do
        )

)
Array
(
    [0] => Array
        (
            [id] => 1
            [first_name] => John
            [last_name] => Do
        )

    [1] => Array
        (
            [id] => 2
            [first_name] => Bob
            [last_name] => Filipe
        )

    [2] => Array
        (
            [id] => 3
            [first_name] => Alice
            [last_name] => Gustav
        )

)

__set_state()

static __set_state(array $properties): object

Cette méthode statique est appelée pour les classes exportées par la fonction var_export().

Le seul paramètre de cette méthode est un tableau contenant les propriétés exportées sous la forme ['property' => value, ...].

Exemple #6 Utilisation de __set_state()

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';

$b = var_export($a, true);
var_dump($b);
eval('$c = ' . $b . ';');
var_dump($c);
?>

L'exemple ci-dessus va afficher :

string(60) "A::__set_state(array(
   'var1' => 5,
   'var2' => 'foo',
))"
object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}

Note: Lors de l'exportation d'un objet, var_export() ne vérifie pas si __set_state() est implémentée par la classe de l'objet, ainsi la réimportation d'objets résultera en une exception Error, si __set_state() n'est pas implémentée. En particulier, cela affecte certaines classes internes. Il est de la responsabilité du programmeur de vérifier que seuls les objets dont la classe implémente __set_state() seront ré-importés.

__debugInfo()

__debugInfo(): array

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.

Exemple #7 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"

Le mot-clé final empêche les classes enfants de redéfinir une méthode ou constante en préfixant la définition avec 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";
}

// Comme la classe est déjà finale, le mot clé final est redondant
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)
?>

Exemple #3 Exemple de constante finale à partir de PHP 8.1.0

<?php
class Foo
{
final public const X = "foo";
}

class Bar extends Foo
{
public const X = "bar";
}

// Fatal error: Bar::X cannot override final constant Foo::X
?>

Note: Les propriétés ne peuvent être déclarées comme finales : seules les méthodes, classes, constantes (à partir de PHP 8.1.0) peuvent être défini comme finale. À partir de PHP 8.0.0, les méthodes privées ne peuvent pas être déclaré finale à l'exception du constructeur.


Clonage 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).

<?php
$copy_of_object = clone $object;
?>

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.

__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
        )

)

Il est possible d'accéder à un membre d'un objet fraîchement cloné dans une seule expression:

Exemple #2 Accès à un membre d'un objet fraîchement cloné

<?php
$dateTime = new DateTime();
echo (clone $dateTime)->format('Y');
?>

Résultat de l'exemple ci-dessus est similaire à :

2016


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 __construct($flag = true) {
$this->flag = $flag;
}
}

class OtherFlag
{
public $flag;

function __construct($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 (==).


Late Static Bindings (Résolution statique à la volée)

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 hiérarchie 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é permet le référencement à 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 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. Dans PHP, une variable objet ne contient plus l'objet en lui-même comme valeur. 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é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
// A.php :

class A {
public $one = 1;

public function show_one() {
echo $this->one;
}
}

// page1.php :

include "A.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 "A.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 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 ajoutant une clé à la variable super-globale $_SESSION, vous devriez inclure le fichier A.php dans toutes vos pages, et pas seulement dans page1.php et page2.php

Notez que vous pouvez également utiliser les événements de sérialisation et de désérialisation sur un objet en utilisant les méthodes __sleep() et __wakeup(). L'utilisation de __sleep() vous permet également de seulement sérialiser une partie des propriétés de l'objet.


Covariance et Contravariance

À partir de PHP 7.2.0, la contravariance partielle a été introduite en supprimant les restrictions de type sur les paramètres d'une méthode enfant. À partir de PHP 7.4.0, la covariance et la contravariance complètes ont été ajoutées.

La covariance permet à une méthode enfant de retourner un type plus spécifique que le type de retour de sa méthode parente. En revanche, la contravariance permet à un type de paramètre d'être moins spécifique dans une méthode enfant que dans celui de la méthode parente.

Une déclaration de type est considérée comme plus spécifique dans le cas suivant :

  • Un type est retiré d'un type union
  • Un type est ajouté à un type d'intersection
  • Un type de classe est transformé en un type de classe enfant
  • iterable est remplacé par array ou Traversable
Un type de classe est considéré moins spécifique si l'inverse est vrai.

Covariance

Pour illustrer le fonctionnement de la covariance, une simple classe parente abstraite, Animal est créée. Animal sera étendu par des classes enfants, Cat et Dog.

<?php

abstract class Animal
{
protected string $name;

public function __construct(string $name)
{
$this->name = $name;
}

abstract public function speak();
}

class Dog extends Animal
{
public function speak()
{
echo $this->name . " barks";
}
}

class Cat extends Animal
{
public function speak()
{
echo $this->name . " meows";
}
}

Notez qu'il n'y a pas de méthodes qui renvoient des valeurs dans cet exemple. Quelques fabriques seront ajoutées et renverront un nouvel objet de classe de type Animal, Cat, ou Dog.

<?php

interface AnimalShelter
{
public function adopt(string $name): Animal;
}

class CatShelter implements AnimalShelter
{
public function adopt(string $name): Cat // au lieu de renvoyer le type de classe Animal, il peut renvoyer le type de classe Cat
{
return new Cat($name);
}
}

class DogShelter implements AnimalShelter
{
public function adopt(string $name): Dog // au lieu de renvoyer le type de classe Animal, il peut renvoyer le type de classe Dog
{
return new Dog($name);
}
}

$kitty = (new CatShelter)->adopt("Ricky");
$kitty->speak();
echo "\n";

$doggy = (new DogShelter)->adopt("Mavrick");
$doggy->speak();

L'exemple ci-dessus va afficher :

Ricky meows
Mavrick barks

Contravariance

En reprenant l'exemple précédent avec les classes Animal, Cat et Dog, deux classes appelées Food et AnimalFood sont incluses, et une méthode eat(AnimalFood $food) est ajoutée à la classe abstraite Animal .

<?php

class Food {}

class AnimalFood extends Food {}

abstract class Animal
{
protected string $name;

public function __construct(string $name)
{
$this->name = $name;
}

public function eat(AnimalFood $food)
{
echo $this->name . " eats " . get_class($food);
}
}

Afin de voir le comportement de la contravariance, la méthode méthode eat est surchargée dans la classe Dog afin d'autoriser n'importe quel objet de type Food. La classe Cat reste inchangée.

<?php

class Dog extends Animal
{
public function eat(Food $food) {
echo $this->name . " eats " . get_class($food);
}
}

L'exemple suivant montre le comportement de la contravariance.

<?php

$kitty = (new CatShelter)->adopt("Ricky");
$catFood = new AnimalFood();
$kitty->eat($catFood);
echo "\n";

$doggy = (new DogShelter)->adopt("Mavrick");
$banana = new Food();
$doggy->eat($banana);

L'exemple ci-dessus va afficher :

Ricky eats AnimalFood
Mavrick eats Food

Mais que se passe-t-il si $kitty essaie de manger (eat()) la banane ($banana) ?

$kitty->eat($banana);

L'exemple ci-dessus va afficher :

Fatal error: Uncaught TypeError: Argument 1 passed to Animal::eat() must be an instance of AnimalFood, instance of Food given


Modifications en POO (Programmation orientée objet)

Les changements du modèle objet de PHP sont recensés ici. Plus d'informations et autres notes peuvent être trouvées dans la documentation sur la POO en PHP.

Version | Description
8.1.0 | Ajout : Support pour le modificateur final pour les constantes de classe. De plus, les constantes d'interfaces peuvent être redéfinies par défaut.
8.0.0 | Ajout : Prise en charge de l'opérateur nullsafe ?-> pour accéder aux propriétés et méthodes sur des objets qui peuvent être null.
7.4.0 | Changement : Il est désormais possible de lancer des exceptions au sein de __toString().
7.4.0 | Ajout : Support limité pour la covariance du type de retour et contravariance pour le type d'argument. Support complet de variance est uniquement disponible si l'autochargement est utilisé. À l'intérieur d'un fichier unique seul les références non-cyclique de type sont possibles.
7.4.0 | Ajout : Il est désormais possible de typer les propriétés de classe.
7.3.0 | Incompatibilité : Le déballage d'argument de Traversables avec des clés non-entieres n'est plus supporté. Ce comportement n'était pas prévu et par conséquent supprimé.
7.3.0 | Incompatibilité : Dans les versions précédentes il était possible de séparer les propriétés statiques en assignant une référence. Ceci a été supprimé.
7.3.0 | Changement : L'opérateur instanceof autorise désormais des littéraux comme premier opérande, dans ce cas le résultat est toujours false.
7.2.0 | Obsolète : La méthode __autoload() a été rendu obsolète en faveur de spl_autoload_register().
7.2.0 | Changement : Le nom suivant ne peut pas être utilisé pour nommer des classes, interfaces ou traits : object.
7.2.0 | Changement : Une virgule trainant peut désormais être ajouté à la syntaxe use groupé pour les espaces de noms.
7.2.0 | Changement : Élargissement du type des paramètres. Le type des paramètres des méthodes réécrite et d'implémentation d'interface peuvent désormais être omit.
7.2.0 | Changement : Les méthodes abstraites peuvent désormais être réécrite quand une classe abstraite étend une autre classe abstraite.
7.1.0 | Changement : Les noms suivant ne peuvent pas être utilisé pour nommer des classes, interfaces ou traits : void et iterable.
7.1.0 | Ajout : Il est désormais possible de définir la visibilité des constantes de classe.
7.0.0 | Obsolète : Appel statique à des méthodes qui ne sont pas déclarées comme statique.
7.0.0 | Obsolète : Constructeur style PHP 4. C.à.d. les méthodes qui ont le même nom que la classe dans laquelle elles sont définies.
7.0.0 | Ajout : Déclaration use groupé : les classes, fonctions et constantes qui sont importer depuis un même espace de nom peuvent désormais être groupé ensemble en une seule déclaration use.
7.0.0 | Ajout : Support pour les classes anonymes a été ajouté grâce à new class.
7.0.0 | Incompatibilité : Itérer sur un objet non- Traversable aura désormais le même comportement qu'itérer sur les tableaux par référence.
7.0.0 | Changement : La définition de propriétés (compatibles) dans deux traits utilisés ne déclenche plus d'erreur.
5.6.0 | Ajout : La methode __debugInfo().
5.5.0 | Ajout : La constante magique ::class.
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 le dernier élément dans un espace de noms ne sont plus considérées comme un 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 désormais possible de référencer une classe en utilisant une variable (e.g. : echo $classname::constant;). La valeur de la variable ne peut être un mot-clé (e.g. : self, parent ou static).
5.3.0 | Changement : Une erreur de niveau E_WARNING est émise si les méthodes magiques de surcharge sont déclarées comme statiques. La visibilité publique est aussi requise.
5.3.0 | Changement : Antérieur à 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 lancé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 être utilisée récursivement pour autocharger la classe d'exception personnalisée.
5.3.0 | Ajout : La méthode __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 doivent suivre les mêmes règles que les chaîne de caractères entouré de guillemet double (e.g. pas de variable au sein).
5.3.0 | Ajout : Résolution Statique Tardive.
5.3.0 | Ajout : La méthode __invoke().
5.2.0 | Changement : La méthode __toString() n'était appelée que lors des appels à echo ou print. Désormais, elle est appelée dans n'importe quel contexte de chaîne de caractères (e.g. dans printf() avec le modificateur %s) mais pas dans les autres contextes (e.g. avec le modificateur %d). À partir de PHP 5.2.0, convertir un objet sans méthode __toString en chaîne de caractères é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 émettait une erreur E_STRICT. Ce n'est plus le cas.
5.1.0 | Changement : La méthode statique __set_state() est désormais appelée pour les classes exportées via var_export().
5.1.0 | Ajout : Des méthodes __isset() et __unset().


Les espaces de noms

Sommaire

  • Introduction
  • Définition des espaces de noms
  • Sous espace de noms
  • Définition de plusieurs espaces de noms dans le même fichier
  • Introduction
  • Espaces de noms et langage dynamique
  • Commande namespace et __NAMESPACE__
  • Importation et alias
  • Global
  • Retour sur l'espace global
  • Règles de résolutions de noms
  • Foire aux questions


Introduction aux espaces de noms

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

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, pour plusieurs raisons. 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 noms d'espaces de noms ne sont pas sensible à la casse.

Note:

Les espaces de noms 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, PHP 8)

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 (incluant 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() { /* ... */ }

?>

Note: Les nom complètement qualifié (c.à.d. les noms commençant avec un antislash) ne sont pas autorisé dans les déclarations d'espaces de noms, car de telle construction sont interprétées comme des expressions d'espace de nom relatif.

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, PHP 8)

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, PHP 8)

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, PHP 8)

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, PHP 8)

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'antislash 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";

/* 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 8)

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.

PHP peut aliaser(/importer) les constantes, fonctions, classes, interfaces, traits, énumérations et les espaces de noms.

Un 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 fonction
use function My\Full\functionName;

// alias d'une fonction
use function My\Full\functionName as func;

// importation d'une constante
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'antislash 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;

function toGreenlandic
{
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.

Déclaration du groupe use

Les classes, fonctions et constantes importées depuis le même namespace peuvent être regroupées dans une seule instruction use.

<?php

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;

// est équivalent ç la déclaration use groupé suivante
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};


Espace de noms global

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

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 antislash \, 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 sur l'espace global pour les fonctions et les constantes

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

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, PHP 8)

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.

Nom Relatif

C'est un identifiant commençant par namespace, tel que namespace\Foo\Bar.

Les noms sont résolus en suivant les règles suivantes :

  1. Les noms absolus se traduisent toujours par les noms sans le séparateur de namespace. Par exemple, \A\B se traduit par A\B.
  2. Tous les noms qui ne sont pas absolus sont traduit avec le namespace remplacé par le namespace courant. Si le nom apparait dans le namespace global, le préfixe namespace\ est retiré. Par exemple namespace\A dans le namespace X\Y se traduit par X\Y\A. Le même nom dans le namespace global se traduit par A.
  3. Pour les noms absolus, le premier segment est traduit en accord avec la class/namespace de la table d'importation. Par exemple, si le namespace A\B\C est importé comme C, le nom C\D\E est traduit par A\B\C\D\E.
  4. Pour les noms absolus, si aucune règle d'import ne s'applique, le namespace courant est préfixé par le nom. Par exemple le nom C\D\E dans le namespace A\B, est traduit par A\B\C\D\E.
  5. Pour les noms absolus, le nom est traduit en lien avec la table courante d'importation pour le type de symbol respectif. Cela signifie qu'un nom ressemblant à une classe est traduit en accord avec la table d'importation des class/namespace, les noms de fonctions en utilisant la table d'importation des fonctions, et les constantes en utilisant la table d'importation des constantes. Par exemple, après use A\B\C; un usage tel que new C() correspond au nom A\B\C(). De la même manière, après use function A\B\foo; un usage tel que foo() correspond au nom A\B\foo.
  6. Pour les noms relatifs, si aucune règle ne s'applique, et que le nom fait référence à une classe, le namespace courant sert de préfixe. Par exemple new C() dans le namespace A\B correspond au nom A\B\C.
  7. pour les noms relatifs, si aucune règle ne s'applique, et que le nom fait référence à une fonction ou une constante, et que le code est en dehors du namespace global, the nom est résolu par l'exécution. Supposons que le code est dans le namespace A\B, voici comme un appel à la fonction 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().

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'autochargement 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'autochargement 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'autochargement 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'autochargement 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'autochargement 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'autochargement 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'autochargement 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'autochargement 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'autochargement 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'autochargement 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'autochargement sur la classe "A\B"
?>


Foire aux questions : ce que vous devez savoir des espaces de noms

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

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. Les noms d'espaces de noms dynamiques doivent protéger l'antislash
  4. Des constantes indéfinies référencées avec un antislash produisent une erreur fatale
  5. Impossible de remplacer des constantes spéciales comme null, true ou false

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 $parameter_type_example = 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 de paramètre
function test(MaClasse $parameter_type_example = null) {}

// une autre manière d'utiliser une classe dans l'espace de noms courant comme type de paramètre
function test(\foo\MaClasse $parameter_type_example = 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 antislash mais ne commencent par par un antislash, 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'antislash 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'antislash 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 {}
}
?>

Les noms d'espaces de noms dynamiques doivent protéger l'antislash

Il est très important de réaliser que, comme les antislash 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 antislashs dans une chaîne qui contient un espace de noms.

Des constantes indéfinies référencées avec un antislash 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 antislash, 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 ou false

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.
?>


Les énumérations

Sommaire

  • Aperçu des énumérations
  • Énumérations de base
  • Énumérations soutenues
  • Méthodes d'énumération
  • Méthodes statiques d'Enumération
  • Constantes d'énumération
  • Traits
  • Valeurs d'énumération dans les expressions constantes
  • Différences avec les objets
  • Liste de valeurs
  • Sérialisation
  • Pourquoi les enums ne sont pas extensibles
  • Exemples


Aperçu des énumérations

(PHP 8 >= 8.1.0)

Les énumérations, ou "Enums", permettent à un développeur de définir un type personnalisé qui est limité à l'une des valeurs parmi un nombre discret de valeurs possibles. Cela peut s'avérer particulièrement utile lors de la définition d'un modèle de domaine, car cela permet de "rendre les états non valides irreprésentables".

Les Enums apparaissent dans de nombreux langages avec une variété de caractéristiques différentes. En PHP, les Enums sont un type d'objet particulier. L'Enum lui-même est une classe, et ses cas possibles sont tous des instances distinctes et uniques de cette classe. Cela signifie que les cas d'Enum sont des objets valides et peuvent être utilisés partout où un objet peut être utilisé, y compris pour les vérifications de type.

L'exemple le plus courant d'énumérations est le type booléen intégré, qui est un type énuméré avec les valeurs légales true et false. Les énumérations permettent aux développeurs de définir leurs propres énumérations arbitrairement robustes.


Énumérations de base

Les énumérations sont similaires aux classes et partagent les mêmes espaces de noms que les classes, les interfaces et les traits. Elles sont également autochargeable de la même manière. Une énumération définit un nouveau type, qui possède un nombre fixe et limité de valeurs légales possibles.

<?php
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}
?>

Cette déclaration crée un nouveau type énuméré nommé Suit, qui a quatre et seulement quatre valeurs légales : Suit::Hearts, Suit::Diamonds, Suit::Clubs, et Suit::Spades. Les variables peuvent être assignées à l'une de ces valeurs légales. Une fonction peut faire l'objet d'une vérification de type par rapport à un type énuméré, auquel cas seules les valeurs de ce type peuvent être transmises.

<?php
function pick_a_card(Suit $suit)
{
/* ... */
}

$val = Suit::Diamonds;

// OK
pick_a_card($val);

// OK
pick_a_card(Suit::Clubs);

// TypeError: pick_a_card(): Argument #1 ($suit) must be of type Suit, string given
pick_a_card('Spades');
?>

Une énumération peut avoir zéro ou plusieurs définitions de case, sans maximum. Une énumération à zéro cas est syntaxiquement valide, mais plutôt inutile.

Pour les cas d'énumération, les mêmes règles syntaxiques s'appliquent que pour n'importe quel label en PHP, voir les Constantes.

Par défaut, les cas ne sont pas intrinsèquement soutenus par une valeur scalaire. C'est-à-dire que Suit::Hearts n'est pas égal à 0. Au lieu de cela, chaque cas est soutenu par un objet singleton de ce nom. Cela signifie que :

<?php

$a = Suit::Spades;
$b = Suit::Spades;

$a === $b; // true

$a instanceof Suit; // true
?>

Cela signifie également que les valeurs de l'énumération ne sont jamais < ou > l'une à l'autre, puisque ces comparaisons ne sont pas significatives pour les objets. Ces comparaisons renvoient toujours false lorsqu'on travaille avec des valeurs d'énumération.

Ce type de cas, sans données connexes, est appelé "cas pur" ou "Pure Case". Une enum qui ne contient que des cas purs s'appelle une Enum pure ou "Pure Enum".

Tous les cas purs sont implémentés en tant qu'instances de leur type d'énumération. Le type d'énumération est représenté en interne comme une classe.

Tous les cas ont une propriété en lecture seule, name, qui est le nom sensible à la casse du cas lui-même.

<?php

print Suit::Spades->name;
// prints "Spades"
?>

Il est également possible d'utiliser les fonctions defined() et constant() pour vérifier l'existence ou lire un cas d'énumération si le nom est obtenu dynamiquement. Cette méthode est toutefois déconseillée, car l'utilisation d'une Enum soutenue devrait fonctionner pour la plupart des cas d'utilisation.


Énumérations soutenues

Par défaut, les cas énumérés n'ont pas d'équivalent scalaire. Il s'agit simplement d'objets singleton. Cependant, il existe de nombreux cas où un cas énuméré doit être capable de faire des allers-retours vers une base de données ou entrepôt de données similaire. Il est donc utile d'avoir un équivalent scalaire intégré (et donc trivialement sérialisable) défini intrinsèquement.

Pour définir un équivalent scalaire pour une énumération, la syntaxe est la suivante :

<?php

enum Suit: string
{
case Hearts = 'H';
case Diamonds = 'D';
case Clubs = 'C';
case Spades = 'S';
}
?>

Un cas qui a un équivalent scalaire est appelé un cas soutenu ou "Backed Case", car il est "soutenu" par une valeur plus simple. Une énumération qui contient uniquement des cas soutenus est appelée "énumération soutenue" ou "Backed Enum". Une Enum soutenue ne peut contenir que des cas soutenus. Une Enum pure ne peut contenir que des cas purs.

Une Enum soutenue peut être soutenue par des types int ou string, et une énumération donnée ne supporte qu'un seul type à la fois (c'est-à-dire pas d'union de int|string). Si une énumération est marquée comme ayant un équivalent scalaire, tous les cas doivent avoir un équivalent scalaire unique défini explicitement. Il n'y a pas d'équivalents scalaires auto-générés (par exemple, des entiers séquentiels). Les cas soutenus doivent être uniques ; deux cas enum soutenus ne peuvent pas avoir le même équivalent scalaire. Cependant, une constante peut faire référence à un cas, créant ainsi un alias. Voir Constantes d'énumération.

Les valeurs équivalentes doivent être des littéraux ou des expressions littérales. Les constantes et les expressions constantes ne sont pas prises en charge. Autrement dit, 1 + 1 est autorisé, mais 1 + SOME_CONST ne l'est pas.

Les cas soutenus ont une propriété supplémentaire en lecture seule, value, qui est la valeur spécifiée dans la définition.

<?php

print Suit::Clubs->value;
// Prints "C"
?>

Afin d'enforcer la propriété value en lecture seule, une variable ne peut pas être assignée en tant que référence à cette propriété. En d'autres termes, l'opération suivante entraîne une erreur:

<?php

$suit = Suit::Clubs;
$ref = &$suit->value;
// Error: Cannot acquire reference to property Suit::$value
?>

Les enums soutenues implémentent une interface interne BackedEnum, qui expose deux méthodes supplémentaires :

  • from(int|string): self prend un scalaire et renvoie le cas d'Enum correspondant. S'il n'en trouve pas, il lèvera une ValueError. Ceci est principalement utile dans les cas où le scalaire en entrée est fiable et où une valeur d'enum manquante devrait être considérée comme une erreur qui arrête l'application.
  • tryFrom(int|string): ?self prend un scalaire et renvoie le cas d'Enum correspondant. S'il n'en trouve pas, il retournera null. Ceci est principalement utile dans les cas où le scalaire en entrée n'est pas fiable et que l'appelant souhaite implémenter sa propre gestion d'erreur ou sa logique de valeur par défaut.

Les méthodes from() et tryFrom() suivent les règles standard de typage faible/fort. En mode de typage faible, il est possible de passer un entier ou une chaîne de caractères. et le système forcera la valeur en conséquence. Le passage d'un flottant fonctionnera également et sera coercitif. En mode de typage strict, passer un entier à from() sur une enum soutenue par une chaîne de caractères (ou vice versa) entraînera une erreur de type (TypeError), tout comme un float dans toutes les circonstances. Tous les autres types de paramètres provoqueront une TypeError dans les deux modes.

<?php
$record = get_stuff_from_database($id);
print $record['suit'];

$suit = Suit::from($record['suit']);
// Invalid data throws a ValueError: "X" is not a valid scalar value for enum "Suit"
print $suit->value;

$suit = Suit::tryFrom('A') ?? Suit::Spades;
// Invalid data returns null, so Suit::Spades is used instead.
print $suit->value;
?>

La définition manuelle d'une méthode from() ou tryFrom() sur une énumération soutenue entraîne une erreur fatale.


Méthodes d'énumération

Les Enums (à la fois les Enums pures et les Enums supportées) peuvent contenir des méthodes et implémenter des interfaces. Si une Enum implémente une interface, alors toute vérification de type pour cette interface acceptera également tous les cas de cette Enum.

<?php
interface Colorful
{
public function color(): string;
}

enum Suit implements Colorful
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;

// Fulfills the interface contract.
public function color(): string
{
return match($this) {
Suit::Hearts, Suit::Diamonds => 'Red',
Suit::Clubs, Suit::Spades => 'Black',
};
}

// Not part of an interface; that's fine.
public function shape(): string
{
return "Rectangle";
}
}

function paint(Colorful $c)
{
/* ... */
}

paint(Suit::Clubs); // Works

print Suit::Diamonds->shape(); // prints "Rectangle"
?>

Dans cet exemple, les quatre instances de Suit ont deux méthodes, color() et shape(). En ce qui concerne le code d'appel et les vérifications de type, elles se comportent exactement comme n'importe quelle autre instance d'objet.

Dans le cas d'une Enum soutenue, la déclaration de l'interface suit la déclaration du type de soutien.

<?php

interface Colorful
{
public function color(): string;
}

enum Suit: string implements Colorful
{
case Hearts = 'H';
case Diamonds = 'D';
case Clubs = 'C';
case Spades = 'S';

// Fulfills the interface contract.
public function color(): string
{
return match($this) {
Suit::Hearts, Suit::Diamonds => 'Red',
Suit::Clubs, Suit::Spades => 'Black',
};
}
}
?>

À l'intérieur d'une méthode, la variable $this est définie et fait référence à l'instance du cas.

Les méthodes peuvent être arbitrairement complexes, mais en pratique, elles renvoient généralement une valeur statique ou match sur $this pour des résultats différents selon les cas.

Il est à noter que dans ce cas, il serait plus judicieux de définir également un type Enum SuitColor avec les valeurs Red et Black et de le renvoyer à la place. Cependant, cela compliquerait cet exemple.

La hiérarchie ci-dessus est logiquement similaire à la structure de classe suivante (bien que ce ne soit pas le code qui s'exécute) :

<?php

interface Colorful
{
public function color(): string;
}

final class Suit implements UnitEnum, Colorful
{
public const Hearts = new self('Hearts');
public const Diamonds = new self('Diamonds');
public const Clubs = new self('Clubs');
public const Spades = new self('Spades');

private function __construct(public readonly string $name) {}

public function color(): string
{
return match($this) {
Suit::Hearts, Suit::Diamonds => 'Red',
Suit::Clubs, Suit::Spades => 'Black',
};
}

public function shape(): string
{
return "Rectangle";
}

public static function cases(): array
{
// Méthode illégale, car la définition manuelle d'une méthode cases() sur une énumération n'est pas autorisée.
// Voir aussi la section "Liste de valeurs".
}
}
?>

Les méthodes peuvent être publiques, privées ou protégées, bien qu'en pratique, privées et protégées sont équivalentes car l'héritage n'est pas autorisé.


Méthodes statiques d'Enumération

Les énumérations peuvent également avoir des méthodes statiques. L'utilisation de méthodes statiques sur une énumération elle-même est principalement pour les constructeurs alternatifs. Par exemple :

<?php

enum Size
{
case Small;
case Medium;
case Large;

public static function fromLength(int $cm): static
{
return match(true) {
$cm < 50 => static::Small,
$cm < 100 => static::Medium,
default => static::Large,
};
}
}
?>

Les méthodes statiques peuvent être publiques, privées ou protégées, bien que privées et protégées sont équivalentes car l'héritage n'est pas autorisé.


Constantes d'énumération

Les énumérations peuvent inclure des constantes, qui peuvent être publiques, privées ou protégées, bien qu'en pratique, privées et protégées soient équivalentes car l'héritage n'est pas autorisé.

Une constante d'énumération peut faire référence à un cas d'énumération :

<?php

enum Size
{
case Small;
case Medium;
case Large;

public const Huge = self::Large;
}
?>


Traits

Les énumérations peuvent s'appuyer sur des traits, qui se comportent de la même manière que les classes. La précondition est que les traits utilisés dans une énumération ne doivent pas contenir de propriétés. Ils ne peuvent inclure que des méthodes et des méthodes statiques. Un trait contenant des propriétés entraînera une erreur fatale.

<?php

interface Colorful
{
public function color(): string;
}

trait Rectangle
{
public function shape(): string {
return "Rectangle";
}
}

enum Suit implements Colorful
{
use Rectangle;

case Hearts;
case Diamonds;
case Clubs;
case Spades;

public function color(): string
{
return match($this) {
Suit::Hearts, Suit::Diamonds => 'Red',
Suit::Clubs, Suit::Spades => 'Black',
};
}
}
?>


Valeurs d'énumération dans les expressions constantes

Les cas étant représentés comme des constantes dans l'énumération elle-même, ils peuvent être utilisés comme des valeurs statiques dans la plupart des expressions constantes: valeurs par défaut des propriétés, valeurs par défaut des variables statiques, valeurs par défaut des paramètres, valeurs constantes globales et de classe. Elles ne peuvent pas être utilisées dans d'autres valeurs de cas de l'enum, mais les constantes normales peuvent faire référence à un cas d'énumération.

Cependant, les appels implicites à des méthodes magiques telles que ArrayAccess sur les enums ne sont pas autorisés dans les définitions statiques ou constantes, car nous ne pouvons pas garantir de manière absolue que la valeur résultante est déterministe ou que l'invocation de la méthode est exempte d'effets secondaires. Les appels de fonction, les appels de méthode et l'accès aux propriétés continuent d'être des opérations non valides dans les expressions constantes.

<?php

// This is an entirely legal Enum definition.
enum Direction implements ArrayAccess
{
case Up;
case Down;

public function offsetExists($offset): bool
{
return false;
}

public function offsetGet($offset): mixed
{
return null;
}

public function offsetSet($offset, $value): void
{
throw new Exception();
}

public function offsetUnset($offset): void
{
throw new Exception();
}
}

class Foo
{
// This is allowed.
const DOWN = Direction::Down;

// This is disallowed, as it may not be deterministic.
const UP = Direction::Up['short'];
// Fatal error: Cannot use [] on enums in constant expression
}

// This is entirely legal, because it's not a constant expression.
$x = Direction::Up['short'];
var_dump("\$x is " . var_export($x, true));

$foo = new Foo();
?>


Différences avec les objets

Bien que les Enums soient construites sur la base de classes et d'objets, elles ne prennent pas en charge toutes les fonctionnalités liées aux objets. En particulier, les cas d'énumérations ne peuvent pas avoir d'état.

  • Les constructeurs et les destructeurs sont interdits.
  • L'héritage n'est pas pris en charge. Les Enums ne peuvent pas étendre ou être étendues.
  • Les propriétés statiques ou d'objet ne sont pas autorisées.
  • Le clonage d'un cas d'énumération n'est pas autorisé, car les cas doivent être des instances singleton.
  • Les méthodes magiques, à l'exception de celles énumérées ci-dessous, ne sont pas autorisées.
  • Les énumérations doivent toujours être déclarées avant d'être utilisées.

Les fonctionnalités suivantes sont disponibles pour les objets et se comportent de la même manière que pour tout autre objet :

  • Méthodes publiques, privées et protégées.
  • Méthodes statiques publiques, privées et protégées.
  • Constantes publiques, privées et protégées.
  • Les Enums peuvent implémenter un nombre quelconque d'interfaces.
  • Les enums et les cas peuvent avoir des attributs qui leur sont attachés. Le filtre TARGET_CLASS inclut les Enums elles-mêmes. Le filtre cible TARGET_CLASS_CONST inclut les cas d'Enum.
  • Les méthodes magiques __call, __callStatic, et __invoke
  • Les constantes __CLASS__ et __FUNCTION__ se comportent normalement

La constante magique ::class sur un type Enum évalue le nom du type, y compris l'espace de noms, exactement comme pour un objet. La constante magique ::class sur une instance d'un cas Case évalue également le type Enum, puisqu'il s'agit d'une instance de ce type.

En outre, les cas d'énumération ne peuvent pas être instanciés directement avec new, ni avec ReflectionClass::newInstanceWithoutConstructor() de la réflexion. Ces deux méthodes entraîneront une erreur.

<?php

$clovers = new Suit();
// Error: Cannot instantiate enum Suit
$horseshoes = (new ReflectionClass(Suit::class))->newInstanceWithoutConstructor()
// Error: Cannot instantiate enum Suit
?>


Liste de valeurs

Les Enums pures et les Enums soutenues implémentent toute deux une interface interne nommée UnitEnum. UnitEnum comprend une méthode statique cases(). cases() renvoie un tableau compact de tous les cas définis dans l'ordre de leur déclaration.

<?php

Suit::cases();
// Produces: [Suit::Hearts, Suit::Diamonds, Suit::Clubs, Suit::Spades]
?>

La définition manuelle d'une méthode cases() sur un Enum entraînera une erreur fatale.


Sérialisation

Les énumérations sont sérialisées différemment des objets. En particulier, elles ont un nouveau code de sérialisation, "E", qui spécifie le nom du cas de l'énumération. La routine de désérialisation est alors en mesure d'utiliser ce code pour définir une variable à la valeur singleton existante. Cela garantit que :

<?php

Suit::Hearts === unserialize(serialize(Suit::Hearts));

print serialize(Suit::Hearts);
// E:11:"Suit:Hearts";
?>

Lors de la désérialisation, si un enum et un cas ne peuvent pas être trouvés pour correspondre à une valeur sérialisée, un avertissement sera émis et un false sera retourné.

Si une Enum pure est sérialisée en JSON, une erreur sera générée. Si une Enum soutenue est sérialisée en JSON, elle sera représentée par sa valeur scalaire uniquement, dans le type approprié. Le comportement des deux peut être surchargé en implémentant la méthode JsonSerializable.

Pour print_r(), la sortie d'un cas d'enum est légèrement différente de celle des objets afin de minimiser la confusion.

<?php

enum Foo {
case Bar;
}

enum Baz: int {
case Beep = 5;
}

print_r(Foo::Bar);
print_r(Baz::Beep);

/* Produces

Foo Enum (
[name] => Bar
)
Baz Enum:int {
[name] => Beep
[value] => 5
}
*/
?>


Pourquoi les enums ne sont pas extensibles

Les classes ont des contrats sur leurs méthodes :

<?php

class A {}
class B extends A {}

function foo(A $a) {}

function bar(B $b) {
foo($b);
}
?>

Ce code est sûr du point de vue du type, car B suit le contrat de A, et par la magie de la co/contra-variance, toute attente que l'on peut avoir à l'égard des méthodes sera préservée, sauf exceptions.

Les enums ont des contrats sur leurs cas, pas sur les méthodes :

<?php

enum ErrorCode {
case SOMETHING_BROKE;
}

function quux(ErrorCode $errorCode)
{
// Quand écrit, ce code semble couvrir tous les cas de figure
match ($errorCode) {
ErrorCode::SOMETHING_BROKE => true,
}
}

?>

L'instruction match dans la fonction quux peut être analysée statiquement pour couvrir tous les cas d'ErrorCode.

Mais imaginons qu'il soit permis d'étendre les enums :

<?php

// Code d'expérience de pensée où les enums ne sont pas finaux.
// Notez que cela ne fonctionnera pas en PHP.
enum MoreErrorCode extends ErrorCode {
case PEBKAC;
}

function fot(MoreErrorCode $errorCode) {
quux($errorCode);
}

fot(MoreErrorCode::PEBKAC);

?>

En vertu des règles d'héritage normales, une classe qui en étend une autre passera le contrôle de type.

Le problème serait que l'instruction match dans quux() ne couvre plus tous les cas. Parce qu'elle ne connaît pas MoreErrorCode::PEBKAC, la correspondance lèvera une exception.

Pour cette raison, les enums sont finaux et ne peuvent pas être étendus.


Exemples

Exemple #1 Valeurs limitées de base

<?php

enum SortOrder
{
case Asc;
case Desc;
}

function query($fields, $filter, SortOrder $order = SortOrder::Asc)
{
/* ... */
}
?>

La fonction query() peut maintenant être exécutée en sachant que $order est garanti d'être soit SortOrder::Asc ou SortOrder::Desc. Toute autre valeur aurait entraîné une TypeError, donc aucune autre vérification d'erreur ou test n'est nécessaire.

Exemple #2 Valeurs exclusives avancées

<?php

enum UserStatus: string
{
case Pending = 'P';
case Active = 'A';
case Suspended = 'S';
case CanceledByUser = 'C';

public function label(): string
{
return match($this) {
static::Pending => 'Pending',
static::Active => 'Active',
static::Suspended => 'Suspended',
static::CanceledByUser => 'Canceled by user',
};
}
}
?>

Dans cet exemple, le statut d'un utilisateur peut être l'un de, et exclusivement, UserStatus::Pending, UserStatus::Active, UserStatus::Suspended, ou UserStatus::CanceledByUser. Une fonction peut typer un paramètre par rapport à UserStatus et n'accepter que ces quatre valeurs, un point c'est tout.

Ces quatre valeurs ont une méthode label(), qui renvoie une chaîne lisible pour les humains. Cette chaîne est indépendante de la chaîne scalaire équivalente "nom machine", qui peut être utilisée dans, par exemple, un champ de base de données ou un menu déroulant HTML.

<?php

foreach (UserStatus::cases() as $case) {
printf('<option value="%s">%s</option>\n', $case->value, $case->label());
}
?>


Erreurs

Sommaire

  • Bases
  • Les Erreurs en PHP 7

Introduction

Malheureusement, peu importe la prudence que nous mettons lors de l'écriture de notre code, les erreurs sont un fait de la vie. PHP signalera des erreurs, des avertissements et des avis pour de nombreux problèmes de syntaxe et d'exécution courants, et savoir comment détecter et manipuler ces erreurs rendra le débogage beaucoup plus facile.


Bases

PHP signale des erreurs en réponse à un certain nombre de conditions d'erreurs internes. Celles-ci peuvent être utilisées pour indiquer une multitude de problèmes différents, et peuvent être affichées et/ou enregistrées dans l'historique selon les besoins.

Chaque erreur que PHP génère comprend un type. Une liste de ces types d'erreur est disponible, ainsi qu'une brève description de leur comportement et leur cause possible.

Gestion des erreurs en PHP

Si aucun gestionnaire d'erreur n'est défini, PHP gèrera les erreurs qui se produisent selon sa configuration. Quelles erreurs seront signalées et lesquelles seront ignorées est contrôlé par la directive php.ini error_reporting ou lors de l'exécution du script en appelant error_reporting(). Il est toutefois fortement recommandé de configurer la directive, car certaines erreurs peuvent se produire avant que l'exécution du script débute.

Dans un environnement de développement, la directive error_reporting devrait toujours être configurée avec E_ALL, afin d'être informé et de corriger les problèmes relevés par PHP. En production il est possible configurer la directive avec un niveau moins verbeux tel que E_ALL & ~E_NOTICE & ~E_DEPRECATED, mais généralement E_ALL reste approprié car il peut fournir des avertissements en avance à des problèmes potentiels.

Comment PHP traite ces erreurs dépend de deux directives php.ini supplémentaires. display_errors détermine si le message d'erreur est affiché dans la sortie du script. Ceci devrait toujours être désactivé dans un environnement de production, car le message d'erreur peut contenir des informations confidentielles, telles que les mots de passe de base de données. Cependant il est souvent utile d'activer cette directive lors du développement, car ceci assure un signalement immédiat des problèmes.

En plus d'afficher les erreurs, PHP peut enregistrer les erreurs quand la directive log_errors est activée. Toutes les erreurs seront alors enregistrées dans le fichier ou syslog défini par error_log. Ceci est extrêmement utile dans un environnement de production, car les erreurs qui se produisent seront enregistrées, et des rapports pourront être générés en s'appuyant sur ces erreurs.

Gestionnaire d'erreurs d'utilisateur

Si le gestionnaire d'erreur par défaut de PHP ne convient pas, beaucoup de types d'erreurs peuvent être gérés par un gestionnaire d'erreur personnalisé qui peut être défini avec set_error_handler(). Bien que certains types d'erreurs ne puissent pas être gérés de cette manière, ceux qui le peuvent seront gérés de la manière que le script utilisateur juge appropriée : par exemple, ceci peut être utilisé pour afficher une page d'erreur personnalisée à l'utilisateur et signaler l'erreur de façon plus directe qu'en l'enregistrant dans un fichier, comme en envoyant un courriel électronique.


Les Erreurs en PHP 7

PHP 7 modifie la facon dont la plupart des erreurs sont signalées en PHP. Au lieu d'utiliser le mécanisme traditionnel de gestion d'erreur de PHP 5, la plupart des erreurs sont maintenant signalées en lançant une exception Error

Comme pour les exceptions normales, ces exceptions Error remonteront jusqu'à ce qu'elles atteignent le premier bloc d'attrape catch correspondant. S'il n'y a pas de bloc correspondant, le gestionnaire d'exception défini par défaut avec la fonction set_exception_handler() sera appelé. Et s'il n'y a pas de gestionnaire d'exception par défaut, alors l'exception sera convertie en erreur fatale et sera traitée comme une erreur traditionnelle.

Comme la hiérarchie des classes Error n'hérite pas d'Exception, le code qui utilise les blocs d'attrape catch (Exception $e) { ... } pour traiter les exceptions non-interceptées en PHP 5 n'interceptera pas ces exceptions Errors. Il faudra donc utiliser soit un bloc catch (Error $e) { ... }, soit un gestionnaire d'exception défini avec set_exception_handler().

Hiérarchie Error

  • Throwable
    • Error
      • ArithmeticError
        • DivisionByZeroError
      • AssertionError
      • CompileError
        • ParseError
      • TypeError
        • ArgumentCountError
      • ValueError
      • UnhandledMatchError
      • FiberError
    • Exception
      • ...


Les exceptions

Sommaire

  • Etendre les Exceptions

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.

Si une exception est lancée et que la portée courante de la fonction n'a pas de block catch, l'exception "remontera" la pile d'appel de la fonction appelante jusqu'à trouver un bloc catch correspondant. Tous les blocs finally rencontrés seront exécutés. Si la pile d'appel est déroulée jusqu'à la portée globale sans rencontrer de bloc catch correspondant, le programme sera terminé avec une erreur fatale sauf si un gestionnaire global d'exception a été défini.

L'objet lancé doit être une instanceof Throwable. Tenter de lancer un objet qui ne l'est pas résultera en une erreur fatale émise par PHP.

À partir de PHP 8.0.0, le mot clé throw est une expression et peut être utilisé dans n'importe quel contexte d'expressions. Dans les versions antérieures c'était une déclaration qui devait être sur sa propre ligne.

catch

Un bloc catch définit comment réagir à une exception qui a été lancée. Un bloc catch définit un ou plusieurs types d'exceptions ou erreurs qu'il peut gérer, et optionnellement une variable dans laquelle assigner l'exception. (Cette variable était requise dans les versions antérieures à PHP 8.0.0) Le premier bloc catch qu'une exception ou erreur lancée rencontre et qui correspond au type de l'objet lancé gérera l'objet.

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 (throw) ou relancées dans un bloc catch. Sinon, l'exécution continuera après le bloc catch qui a été déclenché.

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().

À partir de PHP 7.1, un block catch peut spécifier plusieurs exceptions à l'aide du caratère pipe (|). Ceci est utile lorsque différentes exceptions de hiérarchies de classes différentes sont traitées de la même manière.

À partir de PHP 8.0.0, le nom de variable pour l'exception attrapée est optionnel. Si non spécifié, le bloc catch sera toujours exécuté mais n'aura pas accès à l'objet lancé.

finally

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épendamment du fait qu'une exception a été lancée, avant de continuer l'exécution normale.

Une interaction notable est entre un bloc finally et une déclaration return. Si une déclaration return est rencontrée à l'intérieur des blocs try ou catch, le bloc finally sera quand même exécuté. De plus, la déclaration return est évaluée quand elle est rencontrée, mais le résultat sera retourné après que le bloc finally soit exécuté. Additionnellement, si le bloc finally contient aussi une déclaration return la valeur du bloc finally est retournée.

Global exception handler

Si une exception est autorisée à remonter jusqu'à la portée globale, elle peut être attrapée par un gestionnaire d'exceptions global si il a été défini. La fonction set_exception_handler() peut définir une fonction qui sera appelée à la place d'un block catch si aucun autre block n'est invoqué. L'effet est essentiellement identique à entourer le programme entier dans un block try-catch avec cette fonction en tant que catch.

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. Cependant, cette technique ne fonctionne que pour les erreurs non fatales.

Exemple #1 Convertir l'error reporting en exceptions

<?php
function exceptions_error_handler($severity, $message, $filename, $lineno) {
throw new ErrorException($message, 0, $severity, $filename, $lineno);
}

set_error_handler('exceptions_error_handler');
?>

Astuce

La bibliothèque standard PHP (SPL) fournit un bon nombre d'exceptions additionnelles.

Exemples

Exemple #2 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 #3 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 #4 Interaction entre le bloc finally et return

<?php

function test() {
try {
throw new Exception('foo');
} catch (Exception $e) {
return 'catch';
} finally {
return 'finally';
}
}

echo test();
?>

L'exemple ci-dessus va afficher :

finally

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!"

Exemple #6 Gestion des exceptions de capture multiple

<?php

class MyException extends Exception { }

class MyOtherException extends Exception { }

class Test {
public function testing() {
try {
throw new MyException();
} catch (MyException | MyOtherException $e) {
var_dump(get_class($e));
}
}
}

$foo = new Test;
$foo->testing();

?>

L'exemple ci-dessus va afficher :

string(11) "MyException"

Exemple #7 Omettre la variable attrapé

Seulement permis dans PHP 8.0.0 et ultérieur.

<?php

function test() {
throw new SpecificException('Oopsie');
}

try {
test();
} catch (SpecificException) {
print "A SpecificException was thrown, but we don't care about the details.";
}
?>

Exemple #8 Throw en tant qu'expression

Seulement permis dans PHP 8.0.0 et ultérieur.

<?php

class SpecificException extends Exception {}

function test() {
do_something_risky() or throw new Exception('It did not work');
}

try {
test();
} catch (Exception $e) {
print $e->getMessage();
}
?>


Etendre les Exceptions

Une classe d'exception définie par l'utilisateur peut être définie en étendant la classe Exception intégrée. Les membres et les propriétés ci-dessous montrent ce qui est accessible dans la classe enfant qui dérive de la classe Exception intégrée.

Exemple #1 La classe d'exception intégrée

<?php
class Exception implements Throwable
{
protected $message = 'Unknown exception'; // Message d'exception
private $string; // cache de __toString
protected $code = 0; // code d'exception défini par l'utilisateur
protected $file; // nom de fichier source de l'exception
protected $line; // ligne source de l'exception
private $trace; // trace de la pile d'exécution
private $previous; // exception précédente si exception imbriquée

public function __construct($message = '', $code = 0, Throwable $previous = null);

final private function __clone(); // Inhibe la duplication 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 source
final public function getTrace(); // tableau de la trace de la pile d'exécution
final public function getPrevious(); // l'exception précédente
final public function getTraceAsString(); // trace sous forme de chaine de caractères

// Peut être redéfinie
public function __toString(); // chaîne formatée pour l'affichage
}
?>

Si une classe étend la classe Exception intégrée et redéfinit le constructeur, il est fortement recommandé qu'elle appelle également parent::__construct() pour s'assurer que toutes les données disponibles ont été correctement assignées. La méthode __toString() peut être redéfinie pour fournir une sortie personnalisée lorsque l'objet est présenté sous forme de chaîne de caractères.

Note:

Les exceptions ne peuvent pas être clonées. Tenter de cloner une Exception entraînera une erreur fatale E_ERROR.

Exemple #2 Étendre la classe Exception

<?php
/**
* Défini une classe d'exception personnalisée.
*/
class MyException extends Exception
{
// Redéfini l'exception pour que le message ne soit pas facultatif.
public function __construct($message, $code = 0, Throwable $previous = null) {
// du code

// s'assurer que tout est correctement assigné
parent::__construct($message, $code, $previous);
}

// Représentation personnalisée de l'objet sous forme de chaîne de caractères.
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éer 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 n\'est pas un paramètre valide', 5);
break;

case self::THROW_DEFAULT:
// Lance celle par défaut.
throw new Exception('2 n\'est pas autorisé comme paramètre', 6);
break;

default:
// Aucune exception, l'object sera créé.
$this->var = $avalue;
break;
}
}
}

// Exemple 1
try {
$o = new TestException(TestException::THROW_CUSTOM);
} catch (MyException $e) { // Sera capturée
echo "MyException capturée\n", $e;
$e->customFunction();
} catch (Exception $e) { // Ignoré
echo "Exception par défaut capturée\n", $e;
}

// Poursuite de 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 "MyException capturée\n", $e;
$e->customFunction();
} catch (Exception $e) { // Sera capturée
echo "Exception par défaut capturée\n", $e;
}

// Poursuite de l'exécution
var_dump($o); // Null
echo "\n\n";

// Exemple 3
try {
$o = new TestException(TestException::THROW_CUSTOM);
} catch (Exception $e) { // Sera capturée
echo "Exception par défaut capturée\n", $e;
}

// Poursuite de l'exécution
var_dump($o); // Null
echo "\n\n";

// Exemple 4
try {
$o = new TestException();
} catch (Exception $e) { // Sauté, aucune exception
echo "Exception par défaut capturée\n", $e;
}

// Poursuite de l'exécution
var_dump($o); // TestException
echo "\n\n";
?>


Fibres

Aperçu des fibres

(PHP 8 >= 8.1.0)

Les fibres représentent des fonctions interruptibles sur toute la pile. Les fibres peuvent être suspendues à n'importe quel endroit de la pile d'appels, en interrompant l'exécution à l'intérieur de la fibre jusqu'à ce que la fibre soit reprise ultérieurement.

Les fibres mettent en pause l'ensemble de la pile d'exécution, de sorte que l'appelant direct de la fonction n'a pas besoin de modifier la façon dont il invoque la fonction.

L'exécution peut être interrompue n'importe où dans la pile d'appels en utilisant Fiber::suspend() (c'est-à-dire que l'appel à Fiber::suspend() peut se trouver dans une fonction profondément imbriquée ou ne pas exister du tout).

Contrairement aux Generator n'ayant pas de pile, chaque Fiber possède sa propre pile d'appels, ce qui leur permet d'être mises en pause dans des appels de fonctions profondément imbriquées. Une fonction déclarant un point d'interruption (c'est-à-dire appelant Fiber::suspend()) n'a pas besoin de changer son type de retour, contrairement à une fonction utilisant yield qui doit retourner une instance de Generator.

Les fibres peuvent être suspendues dans n'importe quel appel de fonction, y compris celles appelées à l'intérieur de la VM PHP, comme les fonctions fournies à array_map() ou les méthodes appelées par foreach sur un objet Iterator.

Une fois suspendue, l'exécution de la fibre peut être reprise avec n'importe quelle valeur en utilisant Fiber::resume() ou en lançant une exception dans la fibre à l'aide de Fiber::throw(). La valeur est renvoyée (ou l'exception lancée) par Fiber::suspend().

Note: En raison des limitations actuelles, il n'est pas possible de changer de fibre dans le destructeur d'un objet.

Exemple #1 Utilisation de base

<?php
$fiber = new Fiber(function (): void {
$value = Fiber::suspend('fiber');
echo "Valeur utilisée pour reprendre la fibre: ", $value, PHP_EOL;
});

$value = $fiber->start();

echo "Valeur de la suspension de la fibre: ", $value, PHP_EOL;

$fiber->resume('test');
?>

L'exemple ci-dessus va afficher :

Valeur de la suspension de la fibre: fiber
Valeur utilisée pour reprendre la fibre: test


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, PHP 8)

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 positive');
}

for ($i = $start; $i <= $limit; $i += $step) {
yield $i;
}
} else {
if ($step >= 0) {
throw new LogicException('Step must be negative');
}

for ($i = $start; $i >= $limit; $i += $step) {
yield $i;
}
}
}

/*
* Il est à noter 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, un objet de la classe interne Generator est retournée. Cet 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. Toutes fonctions contenant yield est une fonction générateur.

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 appellera les méthodes d'itération de l'objet 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 peut retourner des valeurs, qui peuvent être récupérées en utilisant Generator::getReturn().

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.

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

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

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.

Attention

Stocker dans un tableau (e.g. avec iterator_to_array())

yield from ne réinitialise pas les clés. Il préserve les clés retournées par l'objet Traversable, ou array. Donc, certaines valeurs peuvent partager une clé commune avec d'autres yield ou yield from, qui, lors de l'insertion dans un tableau, écrasera les anciennes valeurs avec cette clé.

Un cas fréquent où cela est important est iterator_to_array() renvoyant un tableau avec clé par défaut, conduisant à des résultats éventuellement inattendus. iterator_to_array() a un second paramètre preserve_keys qui peut être défini sur false pour collecter toutes les valeurs en ignorant les clés renvoyées par le Generator.

Exemple #5 yield from avec iterator_to_array()

<?php
function inner() {
yield 1; // clé 0
yield 2; // clé 1
yield 3; // clé 2
}
function gen() {
yield 0; // clé 0
yield from inner(); // clés 0-2
yield 4; // clé 1
}
// met à false le second paramètre pour avoir un tableau [0, 1, 2, 3, 4]
var_dump(iterator_to_array(gen()));
?>

L'exemple ci-dessus va afficher :

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(4)
  [2]=>
  int(3)
}

Exemple #6 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 #7 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 reconstruit en appelant une nouvelle fois la fonction générateur.

Voir aussi

  • Itération d'Objet


Attributs

Sommaire

  • Aperçu des attributs
  • Syntaxe des attributs
  • Lecture des attributs avec l'API de Reflection
  • Déclaration des classes d'attributs


Aperçu des attributs

(PHP 8)

Les attributs permettent d'ajouter des informations de métadonnées structurées et lisibles par la machine sur les déclarations dans le code: les classes, les méthodes, les fonctions, les paramètres, les propriétés et les constantes de classe peuvent être la cible d'un attribut. Les métadonnées définies par les attributs peuvent ensuite être inspectées au moment de l'exécution à l'aide de l'API de Réflexion. Les attributs peuvent donc être considérés comme un langage de configuration intégré directement dans le code.

Avec les attributs, il est possible de découpler la mise en œuvre générique d'une fonctionnalité et son utilisation concrète dans une application. D'une certaine manière, ils sont comparables aux interfaces et à leurs implémentations. Mais là où les interfaces et les implémentations portent sur le code, les attributs concernent l'annotation d'informations supplémentaires et la configuration. Les interfaces peuvent être implémentées par des classes, mais les attributs peuvent également être déclarés sur sur les méthodes, les fonctions, les paramètres, les propriétés et les constantes de classe. Ils sont donc plus flexibles que les interfaces.

Un exemple simple d'utilisation d'attributs consiste à convertir une interface qui a des méthodes optionnelles pour utiliser des attributs. Supposons qu'une interface ActionHandler représentant une opération dans une application où certaines implémentations d'un gestionnaire d'action nécessitent une configuration et d'autres non. Au lieu d'exiger que toutes les classes qui implémentent ActionHandler implémentent une méthode setUp(), un attribut peut être utilisé. L'un des avantages de cette approche est que nous pouvons utiliser l'attribut plusieurs fois.

Exemple #1 Implémentation de méthodes optionnelles d'une interface avec des attributs

<?php
interface ActionHandler
{
public function execute();
}

#[Attribute]
class SetUp {}

class CopyFile implements ActionHandler
{
public string $fileName;
public string $targetDirectory;

#[SetUp]
public function fileExists()
{
if (!file_exists($this->fileName)) {
throw new RuntimeException("Le fichier n'existe pas.");
}
}

#[SetUp]
public function targetDirectoryExists()
{
if (!file_exists($this->targetDirectory)) {
mkdir($this->targetDirectory);
} elseif (!is_dir($this->targetDirectory)) {
throw new RuntimeException("Le répertoire cible $this->targetDirectory n'est pas un répertoire.");
}
}

public function execute()
{
copy($this->fileName, $this->targetDirectory . '/' . basename($this->fileName));
}
}

function executeAction(ActionHandler $actionHandler)
{
$reflection = new ReflectionObject($actionHandler);

foreach ($reflection->getMethods() as $method) {
$attributes = $method->getAttributes(SetUp::class);

if (count($attributes) > 0) {
$methodName = $method->getName();

$actionHandler->$methodName();
}
}

$actionHandler->execute();
}

$copyAction = new CopyFile();
$copyAction->fileName = "/tmp/foo.jpg";
$copyAction->targetDirectory = "/home/user";

executeAction($copyAction);


Syntaxe des attributs

La syntaxe des attributs comporte plusieurs parties. Tout d'abord, une déclaration d'attribut est toujours entourée d'un #[ et d'une terminaison correspondante ]. À l'intérieur, un ou plusieurs attributs séparés par une virgule sont énumérés. Le nom de l'attribut est un nom non qualifié, qualifié ou pleinement qualifié, comme décrit dans la section Utilisation des espaces de noms : introduction. Les arguments de l'attribut sont facultatifs, mais ils sont placés entre les parenthèses habituelles (). Les arguments des attributs ne peuvent être que des valeurs littérales ou des expressions constantes. Les syntaxes des arguments positionnels et nommés peuvent toutes deux être utilisées.

Les noms d'attributs et leurs arguments sont résolus à une classe et les arguments sont transmis à son constructeur lorsqu'une instance de l'attribut est demandée par l'intermédiaire de l'API de réflexion. Ainsi une classe doit être introduite pour chaque attribut.

Exemple #1 Syntaxe des attributs

<?php
// a.php
namespace MyExample;

use Attribute;

#[Attribute]
class MyAttribute
{
const VALUE = 'value';

private $value;

public function __construct($value = null)
{
$this->value = $value;
}
}

// b.php

namespace Another;

use MyExample\MyAttribute;

#[MyAttribute]
#[\MyExample\MyAttribute]
#[MyAttribute(1234)]
#[MyAttribute(value: 1234)]
#[MyAttribute(MyAttribute::VALUE)]
#[MyAttribute(array("key" => "value"))]
#[MyAttribute(100 + 200)]
class Thing
{
}

#[MyAttribute(1234), MyAttribute(5678)]
class AnotherThing
{
}


Lecture des attributs avec l'API de Reflection

Pour accéder aux attributs des classes, méthodes, fonctions, paramètres, propriétés et constantes de classe, l'API de Reflection fournit la méthode getAttributes() sur chacun des objets de Reflection correspondants. Cette méthode renvoie un tableau d'instances ReflectionAttribute qui peuvent être interrogées pour obtenir le nom de l'attribut, les arguments et pour instancier une instance de l'attribut représenté.

Cette séparation entre la représentation de l'attribut réfléchi et l'instance réelle permet au programmeur de mieux maîtriser la situation pour gérer les erreurs concernant les classes d'attributs manquantes, les erreurs de frappe ou les arguments manquants. Ce n'est qu'après avoir effectué l'appel à ReflectionAttribute::newInstance() que les objets de la classe d'attribut sont instanciés et la correspondance des arguments est validée, pas avant.

Exemple #1 Lecture des attributs à l'aide de l'API de Reflection

<?php

#[Attribute]
class MyAttribute
{
public $value;

public function __construct($value)
{
$this->value = $value;
}
}

#[MyAttribute(value: 1234)]
class Thing
{
}

function dumpAttributeData($reflection) {
$attributes = $reflection->getAttributes();

foreach ($attributes as $attribute) {
var_dump($attribute->getName());
var_dump($attribute->getArguments());
var_dump($attribute->newInstance());
}
}

dumpAttributeData(new ReflectionClass(Thing::class));
/*
string(11) "MyAttribute"
array(1) {
["value"]=>
int(1234)
}
object(MyAttribute)#3 (1) {
["value"]=>
int(1234)
}
*/

Au lieu d'itérer tous les attributs de l'instance de réflexion, seuls ceux d'une classe d'attributs particulière peuvent être lus en passant le nom de la classe d'attributs recherchée comme argument.

Exemple #2 Lecture d'attributs spécifiques à l'aide de l'API de Reflection

<?php

function dumpMyAttributeData($reflection) {
$attributes = $reflection->getAttributes(MyAttribute::class);

foreach ($attributes as $attribute) {
var_dump($attribute->getName());
var_dump($attribute->getArguments());
var_dump($attribute->newInstance());
}
}

dumpMyAttributeData(new ReflectionClass(Thing::class));


Déclaration des classes d'attributs

Bien que cela ne soit pas strictement nécessaire, il est recommandé de créer une classe réelle pour chaque attribut. Dans le cas le plus simple, seule une classe vide est nécessaire avec l'attribut #[Attribut] déclaré qui peut être importé à partir de l'espace de noms global à l'aide d'une déclaration d'utilisation.

Exemple #1 Classe d'attribut simple

<?php

namespace Example;

use Attribute;

#[Attribute]
class MyAttribute
{
}

Pour restreindre le type de déclaration auquel un attribut peut être assigné, un masque de bits peut être passé comme premier argument à la déclaration de l'attribut #[Attribute].

Exemple #2 Utilisation de la spécification de la cible pour restreindre l'utilisation des attributs

<?php

namespace Example;

use Attribute;

#[Attribute(Attribute::TARGET_METHOD | Attribute::TARGET_FUNCTION)]
class MyAttribute
{
}

La déclaration de MyAttribute sur un autre type lèvera désormais une exception lors de l'appel à ReflectionAttribute::newInstance()

Les cibles suivantes peuvent être spécifiées:

  • Attribute::TARGET_CLASS
  • Attribute::TARGET_FUNCTION
  • Attribute::TARGET_METHOD
  • Attribute::TARGET_PROPERTY
  • Attribute::TARGET_CLASS_CONSTANT
  • Attribute::TARGET_PARAMETER
  • Attribute::TARGET_ALL

Par défaut, un attribut ne peut être utilisé qu'une seule fois par déclaration. Si l'attribut doit pouvoir être répété dans les déclarations, cela doit être spécifié dans le masque de bits de la déclaration #[Attribute].

Exemple #3 Utilisation de IS_REPEATABLE pour permettre à un attribut d'être utilisé plusieurs fois dans une déclaration

<?php

namespace Example;

use Attribute;

#[Attribute(Attribute::TARGET_METHOD | Attribute::TARGET_FUNCTION | Attribute::IS_REPEATABLE)]
class MyAttribute
{
}


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 leurs 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 :

<?php
$foo =& find_var($bar);
?>

Utiliser la même syntaxe avec une fonction qui ne retourne par référence génèrera une erreur, comme l'utiliser avec le résultat de l'opérateur new. Tant bien que les objets sont passés comme des pointeurs, ceci n'est pas identique aux références comme expliqué dans la section les Objets et 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éées 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.

Les données suivantes peuvent être passées par référence :

  • Une variable, comme dans foo($a)

  • 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 notice

foo($a = 5); // Expression, pas une variable
foo(5); // Produit une erreur fatale

class Foobar
{
}

foo(new Foobar()) // Produit un notice depuis PHP 7.0.7
// Notice: Seules les variables devraient être passées par référence.
?>


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.

Pour utiliser la référence retournée, vous devez utiliser l'affectation 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.


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.

Sommaire

  • Les Superglobales — Les 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_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 variables internes qui sont toujours disponibles, quel que soit le contexte

  • « Variables prédéfinies
  • $GLOBALS »
  • PHP Manual
  • Variables prédéfinies
  • Les variables internes qui sont toujours disponibles, quel que soit le contexte

Les Superglobales

Les Superglobales — Les 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

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: Variable variables

Les superglobales ne peuvent pas être utilisées comme variables dynamiques 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, PHP 8)

$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();
?>

Résultat de l'exemple ci-dessus est similaire à :

$foo dans le contexte global : Exemple de contenu
$foo dans le contexte courant : variable locale

Avertissement

À partir de PHP 8.1.0, l'accès en écriture au tableau entier $GLOBALS n'est désormais plus supportée :

Exemple #2 Écrire au tableau entier $GLOBALS résultera en une erreur.

<?php
// Génère une erreur lors de la compilation :
$GLOBALS = [];
$GLOBALS += [];
$GLOBALS =& $x;
$x =& $GLOBALS;
unset($GLOBALS);
array_pop($GLOBALS);
// ...et toute autre opération d'écriture/lecture-écriture sur $GLOBALS
?>

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.

Note:

À partir de PHP 8.1.0, $GLOBALS est désormais une copie en lecture seule du tableau de symbole global. C'est-à-dire que, les variables globales ne peuvent pas être modifié via sa copie. Auparavant, le tableau $GLOBALS était exclus du comportement usuel par-valeur des tableaux PHP et les variables globales peuvent être modifié via sa copie.

<?php
// Before PHP 8.1.0
$a = 1;
$globals = $GLOBALS; // Ostensibly by-value copy
$globals['a'] = 2;
var_dump($a); // int(2)

// As of PHP 8.1.0
// this no longer modifies $a. The previous behavior violated by-value semantics.
$globals = $GLOBALS;
$globals['a'] = 1;

// To restore the previous behavior, iterate its copy and assign each property back to $GLOBALS.
foreach ($globals as $key => $value) {
$GLOBALS[$key] = $value;
}
?>


Variables de serveur et d'exécution

  • « $GLOBALS
  • $_GET »
  • PHP Manual
  • Variables prédéfinies
  • Variables de serveur et d'exécution

$_SERVER

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

$_SERVER — Variables de serveur et d'exécution

Description

$_SERVER est un tableau contenant des informations telles que les en-têtes, les chemins et les emplacements de script. Les entrées de cet array sont créées par le serveur web, il n'y a donc aucune garantie que chaque serveur web fournira chacune de ces informations ; les serveurs peuvent en omettre certaines ou en fournir d'autres qui ne sont pas répertoriées ici. Cependant, la plupart de ces variables sont prises en compte dans la spécification » CGI/1.1 et sont susceptibles d'être définies.

Note: Lorsque PHP est exécuté en ligne de commande command line , la plupart de ces entrées ne seront pas disponibles ou n'auront aucun sens.

En plus des éléments énumérés ci-dessous, PHP créera des éléments supplémentaires avec des valeurs provenant des en-têtes de requête. Ces entrées seront nommées HTTP_ suivi du nom de l'en-tête, en majuscules et avec des traits de soulignement au lieu des tirets. Par exemple, l'en-tête Accept-Language sera disponible sous la forme $_SERVER['HTTP_ACCEPT_LANGUAGE'].

Indices

'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.
'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. Par exemple '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.

Note: Sous Apache 2, UseCanonicalName = On et ServerName doivent être définis. Sinon, cette valeur reflète le nom d'hôte fourni par le client, qui peut être falsifié.

'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 ; par exemple HTTP/1.0;
'REQUEST_METHOD'
Méthode de requête utilisée pour accéder à la page ; par exemple 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.
'REQUEST_TIME_FLOAT'
Le timestamp du début de la requête, avec une précision à la microseconde.
'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.
'HTTPS'
Défini à une valeur non-vide si le script a été appelé 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: Le serveur Web doit être configuré pour créer cette variable. Par exemple, dans Apache, HostnameLookups On doit être défini à l'intérieur de httpd.conf pour qu'il existe. Voir 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: Sous Apache 2, UseCanonicalName = On, ainsi que UseCanonicalPhysicalPort = On doivent être définis pour obtenir le port physique réel, sinon cette valeur peut être falsifiée et elle peut ou non retourner la valeur du port physique.

'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: 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'URI 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 originale de 'PATH_INFO' avant d'être analysée par PHP.

Exemples

Exemple #1 Exemple avec $_SERVER

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

Résultat de l'exemple ci-dessus est 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

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

$_GET — Variables HTTP GET

Description

Un tableau associatif des valeurs passées au script courant via les paramètres d'URL (aussi connue sous le nom de "query string"). Notez que ce tableau n'est pas seulement rempli pour les requêtes GET, mais plutôt pour toutes les requêtes avec un query string.

Exemples

Exemple #1 Exemple avec $_GET

<?php
echo 'Bonjour ' . htmlspecialchars($_GET["name"]) . '!';
?>

En assumant que l'utilisateur a entré http://example.com/?name=Yannick

Résultat de l'exemple ci-dessus est 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

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

$_POST — 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.

Exemples

Exemple #1 Exemple avec $_POST

<?php
echo 'Bonjour ' . htmlspecialchars($_POST["name"]) . '!';
?>

En supposant que l'utilisateur a POSTé name=Yannick

Résultat de l'exemple ci-dessus est 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

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

$_FILES — 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. La structure de ce tableau est décrite dans la section chargements de fichiers par méthode POST.

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, PHP 8)

$_REQUEST — Variables de requête HTTP

Description

Un tableau associatif qui contient par défaut le contenu des variables $_GET, $_POST et $_COOKIE.

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 les directives de configuration PHP request_order, et variables_order.

Voir aussi

  • Gestion des variables externes
  • L'extension sur les filtres


Variables de session

  • « $_REQUEST
  • $_ENV »
  • PHP Manual
  • Variables prédéfinies
  • Variables de session

$_SESSION

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

$_SESSION — 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.

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

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

$_ENV — 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.

Exemples

Exemple #1 Exemple avec $_ENV

<?php
echo 'Mon nom d\'utilisateur est ' .$_ENV["USER"] . '!';
?>

En assumant que "yannick" exécute ce script

Résultat de l'exemple ci-dessus est 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 seule ou toutes les variables d'environnement
  • L'extension sur les filtres


Cookies HTTP

  • « $_ENV
  • $php_errormsg »
  • PHP Manual
  • Variables prédéfinies
  • Cookies HTTP

$_COOKIE

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

$_COOKIE — Cookies HTTP

Description

Un tableau associatif de variables, passé au script courant, via des cookies HTTP.

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

Résultat de l'exemple ci-dessus est 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_response_header »
  • 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

Avertissement

Cette fonctionnalité est OBSOLÈTE à partir de PHP 7.2.0. Dépendre de cette fonctionnalité est fortement déconseillé.

Utilisez error_get_last() plutôt.

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.

Historique

Version | Description
8.0.0 | La directive track_errors qui cause $php_errormsg à être disponible à été supprimée.
7.2.0 | La directive track_errors qui cause $php_errormsg à être disponible à été rendue obsolète.

Exemples

Exemple #1 Exemple avec $php_errormsg

<?php
@strpos();
echo $php_errormsg;
?>

Résultat de l'exemple ci-dessus est similaire à :

Wrong parameter count for strpos()

Voir aussi

  • error_get_last() - Récupère la dernière erreur survenue


En-têtes de réponse HTTP

  • « $php_errormsg
  • $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, PHP 8)

$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); // La variable est remplie dans la portée locale
}
get_contents();
var_dump($http_response_header); // Un appel à get_contents() ne remplit pas la variable en dehors de la portée de la fonction
?>

Résultat de l'exemple ci-dessus est 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"
}

Warning: Undefined variable $http_response_header
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, PHP 8)

$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

Résultat de l'exemple ci-dessus est similaire à :

int(4)

Notes

Note:

Également disponible dans $_SERVER['argc'].

Voir aussi

  • getopt() - Lit des options passées dans la ligne de commande


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, PHP 8)

$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

Résultat de l'exemple ci-dessus est similaire à :

array(4) {
  [0]=>
  string(10) "script.php"
  [1]=>
  string(4) "arg1"
  [2]=>
  string(4) "arg2"
  [3]=>
  string(4) "arg3"
}

Notes

Note:

Egalement disponible dans $_SERVER['argv'].

Voir aussi

  • getopt() - Lit des options passées dans la ligne de commande


Exceptions prédéfinies

Sommaire

  • Exception
  • ErrorException
  • ClosedGeneratorException
  • Error
  • ArgumentCountError
  • ArithmeticError
  • AssertionError
  • DivisionByZeroError
  • CompileError
  • ParseError
  • TypeError
  • ValueError
  • UnhandledMatchError
  • FiberError

Voir aussi les exceptions SPL.


Exception

(PHP 5, PHP 7, PHP 8)

Introduction

Exception est la classe de base pour toutes les exceptions utilisateur.

Synopsis de la classe

class Exception implements Throwable {
/* Propriétés */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes */
public __construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public getMessage(): string
final public getPrevious(): ?Throwable
final public getCode(): int
final public getFile(): string
final public getLine(): int
final public getTrace(): array
final public getTraceAsString(): string
public __toString(): string
private __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

previous

L'exception lancée précédemment

string

La représentation sous forme de chaîne de la trace de la pile

trace

La trace de la pile sous forme de tableau

Sommaire

  • Exception::__construct — Construit l'exception
  • Exception::getMessage — Récupère le message de l'exception
  • Exception::getPrevious — Retourne le Throwable précédent
  • Exception::getCode — Récupère le code de l'exception
  • Exception::getFile — Récupère le fichier dans lequel l'exception a été créée
  • Exception::getLine — Récupère la ligne dans laquelle l'exception a été créée
  • 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, PHP 7, PHP 8)

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.

Note: L'appel du constructeur de l'exception de classe à partir d'une sous-classe ignore les arguments par défaut, si les propriétés $code et $message sont déjà définies.

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, PHP 7, PHP 8)

Exception::getMessage — Récupère le message de l'exception

Description

final public Exception::getMessage(): string

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();
}
?>

Résultat de l'exemple ci-dessus est similaire à :

Un message d'erreur

Voir aussi

  • Throwable::getMessage() - Récupère le message


Retourne le Throwable précédent

  • « Exception::getMessage
  • Exception::getCode »
  • PHP Manual
  • Exception
  • Retourne le Throwable précédent

Exception::getPrevious

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Exception::getPrevious — Retourne le Throwable précédent

Description

final public Exception::getPrevious(): ?Throwable

Retourne leThrowable précédent (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 Throwable 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());
}
?>

Résultat de l'exemple ci-dessus est similaire à :

/home/bjori/ex.php:8 Un problème est survenu (911) [MyCustomException]
/home/bjori/ex.php:6 Vous avez fait une erreur ! (112) [InvalidArgumentException]

Voir aussi

  • Throwable::getPrevious() - Retourne le Throwable précédent


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, PHP 7, PHP 8)

Exception::getCode — Récupère le code de l'exception

Description

final public Exception::getCode(): int

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();
}
?>

Résultat de l'exemple ci-dessus est similaire à :

Le code de l'exception est : 30

Voir aussi

  • Throwable::getCode() - Récupère le code de l'exception


Récupère le fichier dans lequel l'exception a été créée

  • « Exception::getCode
  • Exception::getLine »
  • PHP Manual
  • Exception
  • Récupère le fichier dans lequel l'exception a été créée

Exception::getFile

(PHP 5, PHP 7, PHP 8)

Exception::getFile — Récupère le fichier dans lequel l'exception a été créée

Description

final public Exception::getFile(): string

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();
}
?>

Résultat de l'exemple ci-dessus est similaire à :

/home/bjori/tmp/ex.php

Voir aussi

  • Throwable::getFile() - Récupère le fichier où l'objet a été créé


Récupère la ligne dans laquelle l'exception a été créée

  • « Exception::getFile
  • Exception::getTrace »
  • PHP Manual
  • Exception
  • Récupère la ligne dans laquelle l'exception a été créée

Exception::getLine

(PHP 5, PHP 7, PHP 8)

Exception::getLine — Récupère la ligne dans laquelle l'exception a été créée

Description

final public Exception::getLine(): int

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();
}
?>

Résultat de l'exemple ci-dessus est similaire à :

L'exception a été créée depuis la ligne : 3

Voir aussi

  • Throwable::getLine() - Récupère le numéro de ligne où l'objet instancié a été jeté


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, PHP 7, PHP 8)

Exception::getTrace — Récupère la trace de la pile

Description

final public Exception::getTrace(): array

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());
}
?>

Résultat de l'exemple ci-dessus est 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() - Récupère la trace d'appels


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, PHP 7, PHP 8)

Exception::getTraceAsString — Récupère la trace de la pile en tant que chaîne

Description

final public Exception::getTraceAsString(): string

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();
}
?>

Résultat de l'exemple ci-dessus est similaire à :

#0 /home/bjori/tmp/ex.php(7): test()
#1 {main}

Voir aussi

  • Throwable::getTraceAsString() - Récupère la trace d'appels en tant que chaîne de caractères


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, PHP 7, PHP 8)

Exception::__toString — Représente l'exception sous la forme d'une chaîne

Description

public Exception::__toString(): string

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;
}
?>

Résultat de l'exemple ci-dessus est similaire à :

exception 'Exception' with message 'Message d'erreur' in /home/bjori/tmp/ex.php:3
Stack trace:
#0 {main}

Voir aussi

  • Throwable::__toString() - Récupère la représentation sous forme de chaîne de caractère de l'objet jeté


Clone l'exception

  • « Exception::__toString
  • ErrorException »
  • PHP Manual
  • Exception
  • Clone l'exception

Exception::__clone

(PHP 5, PHP 7, PHP 8)

Exception::__clone — Clone l'exception

Description

private Exception::__clone(): void

Les Exceptions ne peuvent pas être clonées, et tenter de le faire va lever une exception Error.

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.

Historique

Version | Description
8.1.0 | Exception::__clone() n'est plus final.


ErrorException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introduction

Une exception pour les erreurs.

Synopsis de la classe

class ErrorException extends Exception {
/* Propriétés */
protected int $severity = E_ERROR;
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes */
public __construct(
string $message = "",
int $code = 0,
int $severity = E_ERROR,
?string $filename = null,
?int $line = null,
?Throwable $previous = null
)
final public getSeverity(): int
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private 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(int $errno, string $errstr, string $errfile = null, int $errline) {
if (!(error_reporting() & $errno)) {
// Ce code d'erreur n'est pas inclus dans error_reporting
return;
}
throw new \ErrorException($errstr, 0, $errno, $errfile, $errline);
}
set_error_handler(exception_error_handler(...));
Antérieur à PHP 8.1.0 et l'introduction de la première syntaxe de classe callable, l'appel suivant doit être utilisé à la place :"

"set_error_handler(NAMESPACE . '\exception_error_handler');

/* Lance l'exception */
strpos();
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

ErrorException::__construct — Construit l'exception

Description

public ErrorException::__construct(
string $message = "",
int $code = 0,
int $severity = E_ERROR,
?string $filename = null,
?int $line = null,
?Throwable $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.

Note:

Bien que la gravité puisse être n'importe quelle valeur entier, il est prévu que les constantes d'erreur soient utilisées.

filename

Le fichier depuis lequel l'exception est lancée.

line

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
8.0.0 | filename et line sont désormais nullable. Auparavant, leurs défaut était __FILE__ et __LINE__, respectivement.


Récupère la sévérité de l'exception

  • « ErrorException::__construct
  • ClosedGeneratorException »
  • PHP Manual
  • ErrorException
  • Récupère la sévérité de l'exception

ErrorException::getSeverity

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

ErrorException::getSeverity — Récupère la sévérité de l'exception

Description

final public ErrorException::getSeverity(): int

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);
}
?>

Résultat de l'exemple ci-dessus est similaire à :

La sévérité de l'exception est : 256
bool(true)


The ClosedGeneratorException class

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Introduction

A ClosedGeneratorException is thrown when trying to retrieve a value from a closed Generator.

Synopsis de la classe

class ClosedGeneratorException extends Exception {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Error

(PHP 7, PHP 8)

Introduction

Error est la classe de base pour toutes les erreurs internes de PHP.

Synopsis de la classe

class Error implements Throwable {
/* Propriétés */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes */
public __construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public getMessage(): string
final public getPrevious(): ?Throwable
final public getCode(): int
final public getFile(): string
final public getLine(): int
final public getTrace(): array
final public getTraceAsString(): string
public __toString(): string
private __clone(): void
}

Propriétés

message

Le message d'erreur

code

Le code d'erreur

file

Le nom de fichier où l'erreur s'est produite

line

La ligne où l'erreur s'est produite

previous

L'exception lancée précédemment

string

La représentation sous forme de chaîne de la trace de la pile

trace

La trace de la pile sous forme de tableau

Sommaire

  • Error::__construct — Constructeur de l'objet Error
  • Error::getMessage — Récupère le message d'erreur
  • Error::getPrevious — Retourne Throwable précédent
  • Error::getCode — Récupère le code d'erreur
  • Error::getFile — Récupère le fichier où l'erreur s'est produite
  • Error::getLine — Récupère le numéro de ligne où l'erreur s'est produite
  • Error::getTrace — Récupère la trace d'appels
  • Error::getTraceAsString — Récupère la trace d'appels en tant que chaîne de caractères
  • Error::__toString — Représentation sous forme de chaîne de caractère de l'erreur
  • Error::__clone — Cloner l'erreur


Constructeur de l'objet Error

  • « Error
  • Error::getMessage »
  • PHP Manual
  • Error
  • Constructeur de l'objet Error

Error::__construct

(PHP 7, PHP 8)

Error::__construct — Constructeur de l'objet Error

Description

public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)

Construit l'erreur.

Liste de paramètres

message

Le message d'erreur.

code

Le code d'erreur.

previous

Le précédent throwable utilisé pour l'enchaînement d'exception.

Notes

Note:

Le message n'est PAS sûr en binaire.


Récupère le message d'erreur

  • « Error::__construct
  • Error::getPrevious »
  • PHP Manual
  • Error
  • Récupère le message d'erreur

Error::getMessage

(PHP 7, PHP 8)

Error::getMessage — Récupère le message d'erreur

Description

final public Error::getMessage(): string

Retourne le message d'erreur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le message d'erreur en tant que chaîne de caractères.

Exemples

Exemple #1 Exemple de Error::getMessage()

<?php
try {
throw new Error("Un message d'erreur");
} catch(Error $e) {
echo $e->getMessage();
}
?>

Résultat de l'exemple ci-dessus est similaire à :

Un message d'erreur

Voir aussi

  • Throwable::getMessage() - Récupère le message


Retourne Throwable précédent

  • « Error::getMessage
  • Error::getCode »
  • PHP Manual
  • Error
  • Retourne Throwable précédent

Error::getPrevious

(PHP 7, PHP 8)

Error::getPrevious — Retourne Throwable précédent

Description

final public Error::getPrevious(): ?Throwable

Retourne Throwable précédent (le troisième paramètre de Error::__construct()).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le Throwable précédent si disponible ou null sinon.

Exemples

Exemple #1 Exemple de Error::getPrevious()

Boucler sur, et affichier, une trace d'erreur

<?php
class MyCustomError extends Error {}

function doStuff() {
try {
throw new InvalidArgumentError("You are doing it wrong!", 112);
} catch(Error $e) {
throw new MyCustomError("Something happened", 911, $e);
}
}

try {
doStuff();
} catch(Error $e) {
do {
printf("%s:%d %s (%d) [%s]\n", $e->getFile(), $e->getLine(), $e->getMessage(), $e->getCode(), get_class($e));
} while($e = $e->getPrevious());
}
?>

Résultat de l'exemple ci-dessus est similaire à :

/home/bjori/ex.php:8 Something happened (911) [MyCustomError]
/home/bjori/ex.php:6 You are doing it wrong! (112) [InvalidArgumentError]

Voir aussi

  • Throwable::getPrevious() - Retourne le Throwable précédent


Récupère le code d'erreur

  • « Error::getPrevious
  • Error::getFile »
  • PHP Manual
  • Error
  • Récupère le code d'erreur

Error::getCode

(PHP 7, PHP 8)

Error::getCode — Récupère le code d'erreur

Description

final public Error::getCode(): int

Retourne le code d'erreur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le code d'erreur en tant que int

Exemples

Exemple #1 Exemple de Error::getCode()

<?php
try {
throw new Error("Un message d'erreur", 30);
} catch(Error $e) {
echo "Le code d'erreur est : " . $e->getCode();
}
?>

Résultat de l'exemple ci-dessus est similaire à :

Le code d'erreur est : 30

Voir aussi

  • Throwable::getCode() - Récupère le code de l'exception


Récupère le fichier où l'erreur s'est produite

  • « Error::getCode
  • Error::getLine »
  • PHP Manual
  • Error
  • Récupère le fichier où l'erreur s'est produite

Error::getFile

(PHP 7, PHP 8)

Error::getFile — Récupère le fichier où l'erreur s'est produite

Description

final public Error::getFile(): string

Récupère le fichier où l'erreur s'est produite.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom de fichier où l'erreur s'est produite

Exemples

Exemple #1 Exemple de Error::getFile()

<?php
try {
throw new Error;
} catch(Error $e) {
echo $e->getFile();
}
?>

Résultat de l'exemple ci-dessus est similaire à :

/home/bjori/tmp/ex.php

Voir aussi

  • Throwable::getFile() - Récupère le fichier où l'objet a été créé


Récupère le numéro de ligne où l'erreur s'est produite

  • « Error::getFile
  • Error::getTrace »
  • PHP Manual
  • Error
  • Récupère le numéro de ligne où l'erreur s'est produite

Error::getLine

(PHP 7, PHP 8)

Error::getLine — Récupère le numéro de ligne où l'erreur s'est produite

Description

final public Error::getLine(): int

Récupère le numéro de ligne où l'erreur s'est produite.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le numéro de ligne où l'erreur s'est produite

Exemples

Exemple #1 Exemple de Error::getLine()

<?php
try {
throw new Error("Un message d'erreur");
} catch(Error $e) {
echo "L'erreur a été crée à la ligne : " . $e->getLine();
}
?>

Résultat de l'exemple ci-dessus est similaire à :

L'erreur a été crée à la ligne : 3

Voir aussi

  • Throwable::getLine() - Récupère le numéro de ligne où l'objet instancié a été jeté


Récupère la trace d'appels

  • « Error::getLine
  • Error::getTraceAsString »
  • PHP Manual
  • Error
  • Récupère la trace d'appels

Error::getTrace

(PHP 7, PHP 8)

Error::getTrace — Récupère la trace d'appels

Description

final public Error::getTrace(): array

Retourne la trace d'appels.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la trace d'appels en tant que tableau.

Exemples

Exemple #1 Exemple de Error::getTrace()

<?php
function test() {
throw new Error;
}

try {
test();
} catch(Error $e) {
var_dump($e->getTrace());
}
?>

Résultat de l'exemple ci-dessus est 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() - Récupère la trace d'appels


Récupère la trace d'appels en tant que chaîne de caractères

  • « Error::getTrace
  • Error::__toString »
  • PHP Manual
  • Error
  • Récupère la trace d'appels en tant que chaîne de caractères

Error::getTraceAsString

(PHP 7, PHP 8)

Error::getTraceAsString — Récupère la trace d'appels en tant que chaîne de caractères

Description

final public Error::getTraceAsString(): string

Retourne la trace d'appels en tant que chaîne de caractères.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la trace d'appels en tant que chaîne de caractères.

Exemples

Exemple #1 Exemple de Error::getTraceAsString()

<?php
function test() {
throw new Error;
}

try {
test();
} catch(Error $e) {
echo $e->getTraceAsString();
}
?>

Résultat de l'exemple ci-dessus est similaire à :

#0 /home/bjori/tmp/ex.php(7): test()
#1 {main}

Voir aussi

  • Throwable::getTraceAsString() - Récupère la trace d'appels en tant que chaîne de caractères


Représentation sous forme de chaîne de caractère de l'erreur

  • « Error::getTraceAsString
  • Error::__clone »
  • PHP Manual
  • Error
  • Représentation sous forme de chaîne de caractère de l'erreur

Error::__toString

(PHP 7, PHP 8)

Error::__toString — Représentation sous forme de chaîne de caractère de l'erreur

Description

public Error::__toString(): string

Retourne la représentation sous forme de chaîne de caractères de l'erreur.

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'erreur.

Exemples

Exemple #1 Exemple de Error::__toString()

<?php
try {
throw new Error("Some error message");
} catch(Error $e) {
echo $e;
}
?>

Résultat de l'exemple ci-dessus est similaire à :

Error: Some error message in /home/bjori/tmp/ex.php:3
Stack trace:
#0 {main}

Voir aussi

  • Throwable::__toString() - Récupère la représentation sous forme de chaîne de caractère de l'objet jeté


Cloner l'erreur

  • « Error::__toString
  • ArgumentCountError »
  • PHP Manual
  • Error
  • Cloner l'erreur

Error::__clone

(PHP 7, PHP 8)

Error::__clone — Cloner l'erreur

Description

private Error::__clone(): void

Une erreur ne peut pas être cloner, cette méthode produit donc 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 erreurs ne sont pas clonable.

Historique

Version | Description
8.1.0 | Error::__clone() n'est plus final.


ArgumentCountError

(PHP 7 >= PHP 7.1.0, PHP 8)

Introduction

ArgumentCountError est émit quand trop peu d'arguments sont passés à une fonction ou méthode définit par l'utilisateur.

Cette erreur est aussi lancé quand trop d'arguments sont fourni à une fonction interne non variadique.

Synopsis de la classe

class ArgumentCountError extends TypeError {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


ArithmeticError

(PHP 7, PHP 8)

Introduction

ArithmeticError est émit quand une erreur se produit lors d'une opération mathématique. Ces erreurs inclus les tentatives de réaliser un bitshift par un montant négatif, n'importe quel appel à intdiv() qui donnerait lieu à une valeur en dehors des bornes possibles d'un entier.

Synopsis de la classe

class ArithmeticError extends Error {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


AssertionError

(PHP 7, PHP 8)

Introduction

AssertionError est émit quand une assertion faite avec assert() échoue.

Synopsis de la classe

class AssertionError extends Error {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


DivisionByZeroError

(PHP 7, PHP 8)

Introduction

DivisionByZeroError est émit quand un nombre essaye d'être divisé par zéro.

Synopsis de la classe

class DivisionByZeroError extends ArithmeticError {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


CompileError

(PHP 7 > 7.3.0, PHP 8)

Introduction

CompileError est émit quand une erreur de compilation se produit, précédemment une erreur fatale était émise.

Synopsis de la classe

class CompileError extends Error {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


ParseError

(PHP 7, PHP 8)

Introduction

ParseError est émit quand une erreur se produit lors de l'analyse de code PHP, comme quand eval() est appelé.

Note: ParseError étend CompileError à partir de PHP 7.3.0. Auparavant, elle étendait Error.

Synopsis de la classe

class ParseError extends CompileError {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


TypeError

(PHP 7, PHP 8)

Introduction

Une TypeError peut être lancée quand :

  • La valeur qui est définit pour une propriété de classe ne correspond pas au type déclaré de la propriété correspondante.
  • Le type de l'argument qui est passé à la fonction ne correspond pas à la déclaration du type du paramètre correspondant.
  • Une valeur qui est retourné par une fonction ne correspond pas au type de retour déclaré par la fonction.

Synopsis de la classe

class TypeError extends Error {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}

Historique

Version | Description
7.1.0 | Une TypeError n'est désormais plus lancé quand un nombre invalide d'argument est passé à une fonction interne de PHP en mode strict. À la place, une ArgumentCountError est levé.


ValueError

(PHP 8)

Introduction

Une ValueError est lancée lorsque le type d'un argument est correct mais que sa valeur est incorrecte. Par exemple, si l'on passe un entier négatif alors que la fonction attend un entier positif, ou si l'on passe une chaîne ou un tableau vide alors que la fonction s'attend à ce qu'il ne soit pas vide.

Synopsis de la classe

class ValueError extends Error {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


UnhandledMatchError

(PHP 8)

Introduction

Une UnhandledMatchError est lancée lorsque le sujet transmis à une expression match n'est traité par aucun bras de cette même expression.

Synopsis de la classe

class UnhandledMatchError extends Error {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


FiberError

(PHP 8 >= 8.1.0)

Introduction

L'erreur FiberError est lancée lorsqu'une opération invalide est effectuée sur une fibre (Fiber).

Synopsis de la classe

final class FiberError extends Error {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes */
public __construct()
/* Méthodes héritées */
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}

Sommaire

  • FiberError::__construct — Constructeur pour empêcher l'instanciation directe


Constructeur pour empêcher l'instanciation directe

  • « FiberError
  • Interfaces et Classes Prédéfinies »
  • PHP Manual
  • FiberError
  • Constructeur pour empêcher l'instanciation directe

FiberError::__construct

(PHP 8 >= 8.1.0)

FiberError::__construct — Constructeur pour empêcher l'instanciation directe

Description

public FiberError::__construct()

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Erreurs / Exceptions

Lance une exception Error lorsqu'elle est appelée.


Interfaces et Classes Prédéfinies

Sommaire

  • Traversable
  • Iterator
  • IteratorAggregate
  • InternalIterator
  • Throwable
  • ArrayAccess
  • Serializable
  • Closure
  • stdClass
  • Generator
  • Fiber
  • WeakReference
  • WeakMap
  • Stringable
  • UnitEnum
  • BackedEnum
  • SensitiveParameterValue

Voir aussi les Interfaces SPL ainsi que les classes réservées.


L'interface Traversable

(PHP 5, PHP 7, PHP 8)

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.

Sommaire de l'Interface

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.

Historique

Version | Description
7.4.0 | L'interface Traversable peut désormais être implémenté par des classes abstraites. Les classes étendant cele-ci doivent implémenter soit Iterator ou IteratorAggregate.

Notes

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:

Antérieur à PHP 7.4.0, cette interface interne au moteur ne pouvait pas être implémentée dans des scripts PHP. Soit IteratorAggregate ou Iterator doit être utilisé à la place.


L'interface Iterator

(PHP 5, PHP 7, PHP 8)

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

interface Iterator extends Traversable {
/* Méthodes */
public current(): mixed
public key(): mixed
public next(): void
public rewind(): void
public valid(): bool
}

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;
}

public function rewind(): void {
var_dump(__METHOD__);
$this->position = 0;
}

#[\ReturnTypeWillChange]
public function current() {
var_dump(__METHOD__);
return $this->array[$this->position];
}

#[\ReturnTypeWillChange]
public function key() {
var_dump(__METHOD__);
return $this->position;
}

public function next(): void {
var_dump(__METHOD__);
++$this->position;
}

public function valid(): bool {
var_dump(__METHOD__);
return isset($this->array[$this->position]);
}
}

$it = new myIterator;

foreach($it as $key => $value) {
var_dump($key, $value);
echo "\n";
}
?>

Résultat de l'exemple ci-dessus est 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"

Voir aussi

Voir aussi l'itération d'objet.

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, PHP 7, PHP 8)

Iterator::current — Retourne l'élément courant

Description

public Iterator::current(): mixed

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, PHP 7, PHP 8)

Iterator::key — Retourne la clé de l'élément courant

Description

public Iterator::key(): mixed

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, PHP 7, PHP 8)

Iterator::next — Se déplace sur l'élément suivant

Description

public 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, PHP 7, PHP 8)

Iterator::rewind — Replace l'itérateur sur le premier élément

Description

public 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, PHP 7, PHP 8)

Iterator::valid — Vérifie si la position courante est valide

Description

public Iterator::valid(): bool

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, PHP 7, PHP 8)

Introduction

Interface pour créer un itérateur externe.

Sommaire de l'Interface

interface IteratorAggregate extends Traversable {
/* Méthodes */
public getIterator(): Traversable
}

Exemples

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 $property4 = "";

public function __construct()
{
$this->property4 = "dernière propriété";
}

public function getIterator(): Traversable
{
return new ArrayIterator($this);
}
}

$obj = new myData();

foreach($obj as $key => $value) {
var_dump($key, $value);
echo "\n";
}

?>

Résultat de l'exemple ci-dessus est 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
  • InternalIterator »
  • PHP Manual
  • IteratorAggregate
  • Retourne un itérateur externe

IteratorAggregate::getIterator

(PHP 5, PHP 7, PHP 8)

IteratorAggregate::getIterator — Retourne un itérateur externe

Description

public IteratorAggregate::getIterator(): Traversable

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.


La classe InternalIterator

(PHP 8)

Introduction

Classe facilitant l'implémentation de IteratorAggregate pour les classes internes.

Synopsis de la classe

final class InternalIterator implements Iterator {
/* Méthodes */
private __construct()
public current(): mixed
public key(): mixed
public next(): void
public rewind(): void
public valid(): bool
}

Sommaire

  • InternalIterator::__construct — Constructeur privé pour empêcher l'instanciation directe
  • InternalIterator::current — Retourne l'élément courant
  • InternalIterator::key — Retourne la clé de l'élément courant
  • InternalIterator::next — Passe à l'élément suivant
  • InternalIterator::rewind — Replace l'itérateur sur le premier élément
  • InternalIterator::valid — Vérifie si la position actuelle est valide


Constructeur privé pour empêcher l'instanciation directe

  • « InternalIterator
  • InternalIterator::current »
  • PHP Manual
  • InternalIterator
  • Constructeur privé pour empêcher l'instanciation directe

InternalIterator::__construct

(PHP 8)

InternalIterator::__construct — Constructeur privé pour empêcher l'instanciation directe

Description

private InternalIterator::__construct()

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Retourne l'élément courant

  • « InternalIterator::__construct
  • InternalIterator::key »
  • PHP Manual
  • InternalIterator
  • Retourne l'élément courant

InternalIterator::current

(PHP 8)

InternalIterator::current — Retourne l'élément courant

Description

public InternalIterator::current(): mixed

Retourne l'élément courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'élément courant.


Retourne la clé de l'élément courant

  • « InternalIterator::current
  • InternalIterator::next »
  • PHP Manual
  • InternalIterator
  • Retourne la clé de l'élément courant

InternalIterator::key

(PHP 8)

InternalIterator::key — Retourne la clé de l'élément courant

Description

public InternalIterator::key(): mixed

Retourne la clé de l'élément courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la clé de l'élément courant.


Passe à l'élément suivant

  • « InternalIterator::key
  • InternalIterator::rewind »
  • PHP Manual
  • InternalIterator
  • Passe à l'élément suivant

InternalIterator::next

(PHP 8)

InternalIterator::next — Passe à l'élément suivant

Description

public InternalIterator::next(): void

Déplace la position actuelle vers l'élément suivant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Replace l'itérateur sur le premier élément

  • « InternalIterator::next
  • InternalIterator::valid »
  • PHP Manual
  • InternalIterator
  • Replace l'itérateur sur le premier élément

InternalIterator::rewind

(PHP 8)

InternalIterator::rewind — Replace l'itérateur sur le premier élément

Description

public InternalIterator::rewind(): void

Replace 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.


Vérifie si la position actuelle est valide

  • « InternalIterator::rewind
  • Throwable »
  • PHP Manual
  • InternalIterator
  • Vérifie si la position actuelle est valide

InternalIterator::valid

(PHP 8)

InternalIterator::valid — Vérifie si la position actuelle est valide

Description

public InternalIterator::valid(): bool

Vérifie que la position actuelle est valide.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne si la position actuelle est valide.


Throwable

(PHP 7, PHP 8)

Introduction

Throwable est l'interface de base pour tout objet qui peut être jeté grâce à la déclaration throw, ceci inclus Error et Exception.

Note:

Les classes PHP ne peuvent pas directement implémenter l'interface Throwable, et doivent à la place étendre de Exception.

Sommaire de l'Interface

interface Throwable extends Stringable {
/* Méthodes */
public getMessage(): string
public getCode(): int
public getFile(): string
public getLine(): int
public getTrace(): array
public getTraceAsString(): string
public getPrevious(): ?Throwable
public __toString(): string
/* Méthodes héritées */
public Stringable::__toString(): string
}

Historique

Version | Description
8.0.0 | La classe Throwable implémente désormais Stringable.

Sommaire

  • Throwable::getMessage — Récupère le message
  • Throwable::getCode — Récupère le code de l'exception
  • Throwable::getFile — Récupère le fichier où l'objet a été créé
  • Throwable::getLine — Récupère le numéro de ligne où l'objet instancié a été jeté
  • Throwable::getTrace — Récupère la trace d'appels
  • Throwable::getTraceAsString — Récupère la trace d'appels en tant que chaîne de caractères
  • Throwable::getPrevious — Retourne le Throwable précédent
  • Throwable::__toString — Récupère la représentation sous forme de chaîne de caractère de l'objet jeté


Récupère le message

  • « Throwable
  • Throwable::getCode »
  • PHP Manual
  • Throwable
  • Récupère le message

Throwable::getMessage

(PHP 7, PHP 8)

Throwable::getMessage — Récupère le message

Description

public Throwable::getMessage(): string

Retourne le message associé avec l'objet jeté.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le message associé avec l'objet jeté.

Voir aussi

  • Exception::getMessage() - Récupère le message de l'exception


Récupère le code de l'exception

  • « Throwable::getMessage
  • Throwable::getFile »
  • PHP Manual
  • Throwable
  • Récupère le code de l'exception

Throwable::getCode

(PHP 7, PHP 8)

Throwable::getCode — Récupère le code de l'exception

Description

public Throwable::getCode(): int

Retourne le code d'erreur associé avec l'objet jeté.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le code de l'exception en tant que entier dans Exception mais éventuellement sous un autre type dans les descendants de Exception (par exemple chaîne de caractères dans PDOException).

Voir aussi

  • Exception::getCode() - Récupère le code de l'exception


Récupère le fichier où l'objet a été créé

  • « Throwable::getCode
  • Throwable::getLine »
  • PHP Manual
  • Throwable
  • Récupère le fichier où l'objet a été créé

Throwable::getFile

(PHP 7, PHP 8)

Throwable::getFile — Récupère le fichier où l'objet a été créé

Description

public Throwable::getFile(): string

Récupère le fichier où l'objet lancé a été créé.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom de fichier où l'objet lancé a été créé.

Voir aussi

  • Exception::getFile() - Récupère le fichier dans lequel l'exception a été créée


Récupère le numéro de ligne où l'objet instancié a été jeté

  • « Throwable::getFile
  • Throwable::getTrace »
  • PHP Manual
  • Throwable
  • Récupère le numéro de ligne où l'objet instancié a été jeté

Throwable::getLine

(PHP 7, PHP 8)

Throwable::getLine — Récupère le numéro de ligne où l'objet instancié a été jeté

Description

public Throwable::getLine(): int

Récupère le numéro de ligne où l'objet instancié a été jeté.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le numéro de ligne où l'objet instancié a été jeté.

Voir aussi

  • Exception::getLine() - Récupère la ligne dans laquelle l'exception a été créée


Récupère la trace d'appels

  • « Throwable::getLine
  • Throwable::getTraceAsString »
  • PHP Manual
  • Throwable
  • Récupère la trace d'appels

Throwable::getTrace

(PHP 7, PHP 8)

Throwable::getTrace — Récupère la trace d'appels

Description

public Throwable::getTrace(): array

Retourne la trace d'appels en tant que tableau.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la trace d'appels en tant que tableau dans le même format que debug_backtrace().

Voir aussi

  • Exception::getTrace() - Récupère la trace de la pile


Récupère la trace d'appels en tant que chaîne de caractères

  • « Throwable::getTrace
  • Throwable::getPrevious »
  • PHP Manual
  • Throwable
  • Récupère la trace d'appels en tant que chaîne de caractères

Throwable::getTraceAsString

(PHP 7, PHP 8)

Throwable::getTraceAsString — Récupère la trace d'appels en tant que chaîne de caractères

Description

public Throwable::getTraceAsString(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la trace d'appels en tant que chaîne de caractères.

Voir aussi

  • Exception::getTraceAsString() - Récupère la trace de la pile en tant que chaîne


Retourne le Throwable précédent

  • « Throwable::getTraceAsString
  • Throwable::__toString »
  • PHP Manual
  • Throwable
  • Retourne le Throwable précédent

Throwable::getPrevious

(PHP 7, PHP 8)

Throwable::getPrevious — Retourne le Throwable précédent

Description

public Throwable::getPrevious(): ?Throwable

Retourne un Throwable précedent (par exemple, un fournit grâce au troisième paramètre de Exception::__construct()).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le Throwable précédent si disponible ou null sinon.

Voir aussi

  • Exception::getPrevious() - Retourne le Throwable précédent


Récupère la représentation sous forme de chaîne de caractère de l'objet jeté

  • « Throwable::getPrevious
  • ArrayAccess »
  • PHP Manual
  • Throwable
  • Récupère la représentation sous forme de chaîne de caractère de l'objet jeté

Throwable::__toString

(PHP 7, PHP 8)

Throwable::__toString — Récupère la représentation sous forme de chaîne de caractère de l'objet jeté

Description

public Throwable::__toString(): string

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'objet jeté.

Voir aussi

  • Exception::__toString() - Représente l'exception sous la forme d'une chaîne


L'interface ArrayAccess

(PHP 5, PHP 7, PHP 8)

Introduction

Interface permettant d'accéder aux objets de la même façon que pour les tableaux.

Sommaire de l'Interface

interface ArrayAccess {
/* Méthodes */
public offsetExists(mixed $offset): bool
public offsetGet(mixed $offset): mixed
public offsetSet(mixed $offset, mixed $value): void
public offsetUnset(mixed $offset): void
}

Exemples

Exemple #1 Exemple basique

<?php
class Obj implements ArrayAccess {
public $container = [
"one" => 1,
"two" => 2,
"three" => 3,
];

public function offsetSet($offset, $value): void {
if (is_null($offset)) {
$this->container[] = $value;
} else {
$this->container[$offset] = $value;
}
}

public function offsetExists($offset): bool {
return isset($this->container[$offset]);
}

public function offsetUnset($offset): void {
unset($this->container[$offset]);
}

public function offsetGet($offset): mixed {
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);
?>

Résultat de l'exemple ci-dessus est 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, PHP 7, PHP 8)

ArrayAccess::offsetExists — Indique si une position existe dans un tableau

Description

public ArrayAccess::offsetExists(mixed $offset): bool

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): void {
var_dump(__METHOD__);
}

public function offsetExists($var): bool {
var_dump(__METHOD__);
if ($var == "foobar") {
return true;
}
return false;
}

public function offsetUnset($var): void {
var_dump(__METHOD__);
}

#[\ReturnTypeWillChange]
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"]));
?>

Résultat de l'exemple ci-dessus est 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, PHP 7, PHP 8)

ArrayAccess::offsetGet — Position à lire

Description

public ArrayAccess::offsetGet(mixed $offset): mixed

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.

Valeurs de retour

Peut retourner n'importe quel type de valeur.

Notes

Note:

Il est possible aux implémentations de cette méthode 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é.

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, PHP 7, PHP 8)

ArrayAccess::offsetSet — Assigne une valeur à une position donnée

Description

public ArrayAccess::offsetSet(mixed $offset, mixed $value): void

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.


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, PHP 7, PHP 8)

ArrayAccess::offsetUnset — Supprime un élément à une position donnée

Description

public ArrayAccess::offsetUnset(mixed $offset): void

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, PHP 8)

Introduction

Interface permettant de personnaliser la sérialisation.

Les classes implémentant cette interface ne supportent plus __sleep() et __wakeup(). La méthode de sérialisation est appelée chaque fois qu'une instance doit être sérialisé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 sérialisé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.

Avertissement

À partir de PHP 8.1.0, une classe qui implémente Serializable sans aussi implémenter __serialize() et __unserialize() génèrera une notice de dépréciation.

Sommaire de l'Interface

interface Serializable {
/* Méthodes */
public serialize(): ?string
public unserialize(string $data): void
}

Exemples

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());
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

Serializable::serialize — Représentation linéaire de l'objet

Description

public Serializable::serialize(): ?string

Retourne la représentation en chaîne de caractères de l'objet.

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()
  • __serialize()


Construit un objet

  • « Serializable::serialize
  • Closure »
  • PHP Manual
  • Serializable
  • Construit un objet

Serializable::unserialize

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Serializable::unserialize — Construit un objet

Description

public Serializable::unserialize(string $data): void

Appelé lors de la désérialisation 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

data

La représentation en chaîne de l'objet.

Valeurs de retour

La valeur de retour est ignorée.

Voir aussi

  • __wakeup()
  • __unserialize()


La classe Closure

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Introduction

Classe utilisée pour représenter les fonctions anonymes.

Les fonctions anonymes produisent des objets de ce type. Cette classe a des méthodes qui permettent un contrôle supplémentaire de la fonction anonyme 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

final class Closure {
/* Méthodes */
private __construct()
public static bind(Closure $closure, ?object $newThis, object|string|null $newScope = "static"): ?Closure
public bindTo(?object $newThis, object|string|null $newScope = "static"): ?Closure
public call(object $newThis, mixed ...$args): mixed
public static fromCallable(callable $callback): Closure
}

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 — Lie et appelle la fermeture
  • Closure::fromCallable — Convertis un callable en une fermeture


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, PHP 8)

Closure::__construct — Constructeur empêchant l'instanciation

Description

private Closure::__construct()

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.

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, PHP 8)

Closure::bind — Duplique une fermeture avec un nouvel objet lié et un nouveau contexte de classe.

Description

public static Closure::bind(Closure $closure, ?object $newThis, object|string|null $newScope = "static"): ?Closure

Cette méthode est une version statique de Closure::bindTo(). Voir 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é. Il n'est pas autorisé de passer (un objet d') une classe interne pour ce paramètre.

Valeurs de retour

Retourne un nouvel objet Closure, ou null en cas d'échec.

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";
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

Closure::bindTo — Duplique la fermeture avec un nouvel objet lié et un nouveau contexte de classe.

Description

public Closure::bindTo(?object $newThis, object|string|null $newScope = "static"): ?Closure

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é. Il n'est pas autorisé de passer (un objet d') une classe interne pour ce paramètre.

Valeurs de retour

Retourne la nouvelle fermeture sous la forme d'un objet Closure, ou null en cas d'erreur.

Exemples

Exemple #1 Exemple Closure::bindTo()

<?php

class A
{
private $val;

public function __construct($val)
{
$this->val = $val;
}

public 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";
?>

Résultat de l'exemple ci-dessus est similaire à :

1
2

Voir aussi

  • Fonctions anonymes
  • Closure::bind() - Duplique une fermeture avec un nouvel objet lié et un nouveau contexte de classe.


Lie et appelle la fermeture

  • « Closure::bindTo
  • Closure::fromCallable »
  • PHP Manual
  • Closure
  • Lie et appelle la fermeture

Closure::call

(PHP 7, PHP 8)

Closure::call — Lie et appelle la fermeture

Description

public Closure::call(object $newThis, mixed ...$args): mixed

Lie temporairement la fermeture (closure) à newThis, et l'appelle avec les paramètres donné.

Liste de paramètres

newThis

L'objet auquel lier la fermeture pour la durée de l'appel.

args

Zéro ou plusieurs paramètres, qui seront donnés en tant que paramètres à la fermeture.

Valeurs de retour

Retourne la valeur de retour de la fermeture.

Exemples

Exemple #1 Exemple deClosure::call()

<?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)


Convertis un callable en une fermeture

  • « Closure::call
  • stdClass »
  • PHP Manual
  • Closure
  • Convertis un callable en une fermeture

Closure::fromCallable

(PHP 7 >= 7.1.0)

Closure::fromCallable — Convertis un callable en une fermeture

Description

public static Closure::fromCallable(callable $callback): Closure

Crée et retourne une nouvelle fonction anonyme à partir du callback donnée en utilisant la portée courante. Cette méthode vérifie que callback est appelable dans la portée courante et émet un TypeError si ce n'est pas le cas.

Note:

À partir de PHP 8.1.0, la syntaxe callable de première classe à les mêmes sémantiques que cette méthode.

Liste de paramètres

callback

Le callable à convertir.

Valeurs de retour

Retourne la nouvelle Closure créée ou émet une TypeError si callback n'est pas appelable dans la portée courante.

Voir aussi

  • Fonctions anonymes
  • Syntaxe callable de première classe


La classe stdClass

(PHP 4, PHP 5, PHP 7, PHP 8)

Introduction

Une classe générique vide avec des propriétés dynamiques.

Les objets de cette classe peuvent être instanciés avec l'opérateur new ou créés par en utilisant la conversion en objet. Plusieurs fonctions PHP créent également des instances de cette classe, par exemple json_decode(), mysqli_fetch_object() ou PDOStatement::fetchObject().

Bien que n'implémentant pas __get()/__set() cette classe autorise les propriétés dynamiques et ne nécessite pas l'attribut #[\AllowDynamicProperties].

Ce n'est pas une classe de base car PHP n'a pas de concept de classe de base universelle. Cependant, il est possible de créer une classe personnalisée qui étend stdClass et qui hérite ainsi de la fonctionnalité des propriétés dynamiques.

Synopsis de la classe

class stdClass {
}

Cette classe n'a pas de méthode ni de propriété par défaut.

Exemples

Exemple #1 Créé à la suite d'une conversion de type en objet

<?php
$obj = (object) array('foo' => 'bar');
var_dump($obj);

L'exemple ci-dessus va afficher :

object(stdClass)#1 (1) {
  ["foo"]=>
  string(3) "bar"
}

Exemple #2 Créé en tant que résultat de json_decode()

<?php
$json = '{"foo":"bar"}';
var_dump(json_decode($json));

L'exemple ci-dessus va afficher :

object(stdClass)#1 (1) {
  ["foo"]=>
  string(3) "bar"
}

Exemple #3 Déclaration de propriétés dynamiques

<?php
$obj = new stdClass();
$obj->foo = 42;
$obj->{1} = 42;
var_dump($obj);

L'exemple ci-dessus va afficher :

object(stdClass)#1 (2) {
  ["foo"]=>
  int(42)
  ["1"]=>
  int(42)
}


La classe Generator

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

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

final class Generator implements Iterator {
/* Méthodes */
public current(): mixed
public getReturn(): mixed
public key(): mixed
public next(): void
public rewind(): void
public send(mixed $value): mixed
public throw(Throwable $exception): mixed
public valid(): bool
public __wakeup(): void
}

Voir aussi

Voir aussi l'itération d'objet.

Sommaire

  • Generator::current — Récupère la valeur cédée
  • Generator::getReturn — Obtenir la valeur de retour d'un générateur
  • 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 sérialisation


Récupère la valeur cédée

  • « Generator
  • Generator::getReturn »
  • PHP Manual
  • Generator
  • Récupère la valeur cédée

Generator::current

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Generator::current — Récupère la valeur cédée

Description

public Generator::current(): mixed

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la valeur cédée.


Obtenir la valeur de retour d'un générateur

  • « Generator::current
  • Generator::key »
  • PHP Manual
  • Generator
  • Obtenir la valeur de retour d'un générateur

Generator::getReturn

(PHP 7, PHP 8)

Generator::getReturn — Obtenir la valeur de retour d'un générateur

Description

public Generator::getReturn(): mixed

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la valeur de retour du générateur une fois qu'il a terminé l'exécution.

Exemples

Exemple #1 Generator::getReturn() exemple

<?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


Récupère la clé cédée

  • « Generator::getReturn
  • Generator::next »
  • PHP Manual
  • Generator
  • Récupère la clé cédée

Generator::key

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Generator::key — Récupère la clé cédée

Description

public Generator::key(): mixed

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, PHP 8)

Generator::next — Reprend l'exécution du générateur

Description

public Generator::next(): void

L'appel de Generator::next() a le même effet qu'appeler Generator::send() avec null comme argument.

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, PHP 8)

Generator::rewind — Ré-initialise l'itérateur

Description

public Generator::rewind(): void

Si l'itération a déjà commencé, 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, PHP 8)

Generator::send — Envoi une valeur au générateur

Description

public Generator::send(mixed $value): mixed

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() {
echo "I'm printer!".PHP_EOL;
while (true) {
$string = yield;
echo $string;
}
}

$printer = printer();
$printer->send('Hello world!');
$printer->send('Bye world!');
?>

L'exemple ci-dessus va afficher :

I'm printer!
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, PHP 8)

Generator::throw — Lance une exception dans le générateur

Description

public Generator::throw(Throwable $exception): mixed

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.

Si le générateur est déjà fermé quand cette méthode est appelée, l'exception sera levée dans le contexte de l'appelant à la place.

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, PHP 8)

Generator::valid — Vérifie si l'itérateur a été fermé

Description

public Generator::valid(): bool

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 sérialisation

  • « Generator::valid
  • Fiber »
  • PHP Manual
  • Generator
  • Fonction de rappel de sérialisation

Generator::__wakeup

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Generator::__wakeup — Fonction de rappel de sérialisation

Description

public Generator::__wakeup(): void

Lance une exception sachant que les générateurs ne peuvent être sérialisés.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


La classe Fiber

(PHP 8 >= 8.1.0)

Introduction

Les fibres représentent des fonctions interruptibles sur toute la pile. Les fibres peuvent être suspendues à n'importe quel endroit de la pile d'appels, en interrompant l'exécution à l'intérieur de la fibre jusqu'à ce que la fibre soit reprise ultérieurement.

Synopsis de la classe

final class Fiber {
/* Méthodes */
public __construct(callable $callback)
public start(mixed ...$args): mixed
public resume(mixed $value = null): mixed
public throw(Throwable $exception): mixed
public getReturn(): mixed
public isStarted(): bool
public isSuspended(): bool
public isRunning(): bool
public isTerminated(): bool
public static suspend(mixed $value = null): mixed
public static getCurrent(): ?Fiber
}

Voir aussi

Aperçu des fibres

Sommaire

  • Fiber::__construct — Crée une nouvelle instance de Fibre
  • Fiber::start — Démarre l'exécution de la fibre
  • Fiber::resume — Reprend l'exécution de la fibre avec une valeur
  • Fiber::throw — Reprend l'exécution de la fibre avec une exception
  • Fiber::getReturn — Obtient la valeur retournée par la fibre
  • Fiber::isStarted — Détermine si la fibre a démarrée
  • Fiber::isSuspended — Détermine si la fibre est suspendue
  • Fiber::isRunning — Détermine si la fibre est en cours d'exécution
  • Fiber::isTerminated — Détermine si la fibre est terminée
  • Fiber::suspend — Suspend l'exécution de la fibre en cours
  • Fiber::getCurrent — Obtient l'instance de Fibre en cours d'exécution


Crée une nouvelle instance de Fibre

  • « Fiber
  • Fiber::start »
  • PHP Manual
  • Fiber
  • Crée une nouvelle instance de Fibre

Fiber::__construct

(PHP 8 >= 8.1.0)

Fiber::__construct — Crée une nouvelle instance de Fibre

Description

public Fiber::__construct(callable $callback)

Liste de paramètres

callback

Le callable à invoquer lors du démarrage de la fibre. Les arguments donnés à Fiber::start() seront fournis en tant qu'arguments à la fonction donnée.


Démarre l'exécution de la fibre

  • « Fiber::__construct
  • Fiber::resume »
  • PHP Manual
  • Fiber
  • Démarre l'exécution de la fibre

Fiber::start

(PHP 8 >= 8.1.0)

Fiber::start — Démarre l'exécution de la fibre

Description

public Fiber::start(mixed ...$args): mixed

Une liste variadique d'arguments à fournir à la fonction utilisée lors de la construction de la fibre.

Si la fibre a déjà été démarrée lorsque cette méthode est appelée, une erreur FiberError sera émise.

Liste de paramètres

args

Les arguments à utiliser lors de l'invocation de la fonction donnée au constructeur de la fibre.

Valeurs de retour

La valeur fournie au premier appel à Fiber::suspend() ou null si la fibre retourne. Si la fibre lance une exception avant de se suspendre, elle sera émise lors de l'appel à cette méthode.


Reprend l'exécution de la fibre avec une valeur

  • « Fiber::start
  • Fiber::throw »
  • PHP Manual
  • Fiber
  • Reprend l'exécution de la fibre avec une valeur

Fiber::resume

(PHP 8 >= 8.1.0)

Fiber::resume — Reprend l'exécution de la fibre avec une valeur

Description

public Fiber::resume(mixed $value = null): mixed

Reprend la fibre en utilisant la valeur donnée comme résultat de l'appel actuel à Fiber::suspend().

Si la fibre n'est pas suspendue lors de l'appel de cette méthode, une FiberError sera émise.

Liste de paramètres

value

La valeur pour reprendre la fibre. Cette valeur sera la valeur de retour de l'appel Fiber::suspend() en cours.

Valeurs de retour

La valeur fournie au prochain appel à Fiber::suspend() ou null si la fibre retourne. Si la fibre lance une exception avant de se suspendre, elle sera émise lors de l'appel à cette méthode.


Reprend l'exécution de la fibre avec une exception

  • « Fiber::resume
  • Fiber::getReturn »
  • PHP Manual
  • Fiber
  • Reprend l'exécution de la fibre avec une exception

Fiber::throw

(PHP 8 >= 8.1.0)

Fiber::throw — Reprend l'exécution de la fibre avec une exception

Description

public Fiber::throw(Throwable $exception): mixed

Reprend la fibre en lançant l'exception donnée à partir de l'appel Fiber::suspend() en cours.

Si la fibre n'est pas suspendue lorsque cette méthode est appelée, une exception FiberError sera émise.

Liste de paramètres

exception

L'exception à lancer dans la fibre à partir de l'appel Fiber::suspend() en cours.

Valeurs de retour

La valeur fournie au prochain appel à Fiber::suspend() ou null si la fibre retourne. Si la fibre lance une exception avant de se suspendre, elle sera émise lors de l'appel à cette méthode.


Obtient la valeur retournée par la fibre

  • « Fiber::throw
  • Fiber::isStarted »
  • PHP Manual
  • Fiber
  • Obtient la valeur retournée par la fibre

Fiber::getReturn

(PHP 8 >= 8.1.0)

Fiber::getReturn — Obtient la valeur retournée par la fibre

Description

public Fiber::getReturn(): mixed

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Renvoie la valeur retournée par la fibre callable fournie à Fiber::__construct(). Si la fibre n'a pas retourné de valeur, soit parce qu'elle n'a pas été lancée, soit parce qu'elle ne s'est pas terminée, soit parce qu'elle a lancé une exception, une FiberError sera émise.


Détermine si la fibre a démarrée

  • « Fiber::getReturn
  • Fiber::isSuspended »
  • PHP Manual
  • Fiber
  • Détermine si la fibre a démarrée

Fiber::isStarted

(PHP 8 >= 8.1.0)

Fiber::isStarted — Détermine si la fibre a démarrée

Description

public Fiber::isStarted(): bool

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true seulement après que la fibre ait été démarrée ; sinon false est retourné.


Détermine si la fibre est suspendue

  • « Fiber::isStarted
  • Fiber::isRunning »
  • PHP Manual
  • Fiber
  • Détermine si la fibre est suspendue

Fiber::isSuspended

(PHP 8 >= 8.1.0)

Fiber::isSuspended — Détermine si la fibre est suspendue

Description

public Fiber::isSuspended(): bool

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true si la fibre est actuellement suspendue ; sinon false est retourné.


Détermine si la fibre est en cours d'exécution

  • « Fiber::isSuspended
  • Fiber::isTerminated »
  • PHP Manual
  • Fiber
  • Détermine si la fibre est en cours d'exécution

Fiber::isRunning

(PHP 8 >= 8.1.0)

Fiber::isRunning — Détermine si la fibre est en cours d'exécution

Description

public Fiber::isRunning(): bool

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true seulement si la fibre est en cours d'exécution. Une fibre est considérée comme étant en cours d'exécution après un appel à Fiber::start(), Fiber::resume(), ou Fiber::throw() qui n'est pas encore retourné. Retourne false si la fibre n'est pas en cours d'exécution.


Détermine si la fibre est terminée

  • « Fiber::isRunning
  • Fiber::suspend »
  • PHP Manual
  • Fiber
  • Détermine si la fibre est terminée

Fiber::isTerminated

(PHP 8 >= 8.1.0)

Fiber::isTerminated — Détermine si la fibre est terminée

Description

public Fiber::isTerminated(): bool

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true seulement après que la fibre se soit terminée, soit en retournant, soit en lançant une exception ; sinon, false est retourné.


Suspend l'exécution de la fibre en cours

  • « Fiber::isTerminated
  • Fiber::getCurrent »
  • PHP Manual
  • Fiber
  • Suspend l'exécution de la fibre en cours

Fiber::suspend

(PHP 8 >= 8.1.0)

Fiber::suspend — Suspend l'exécution de la fibre en cours

Description

public static Fiber::suspend(mixed $value = null): mixed

Suspend l'exécution de la fibre en cours. La valeur fournie à cette méthode sera retournée par l'appel à Fiber::start(), Fiber::resume(), ou Fiber::throw() qui a fait basculer l'exécution dans la fibre en cours.

Lorsque la fibre est reprise, cette méthode retourne la valeur fournie à Fiber::resume(). Si la fibre est reprise en utilisant Fiber::throw(), l'exception donnée à cette méthode sera émise lors de l'appel à cette méthode.

Si cette méthode est appelée depuis l'extérieur d'une fibre, une FiberError sera émise.

Liste de paramètres

value

La valeur à retourner de l'appel à Fiber::start(), Fiber::resume(), ou Fiber::throw() qui a fait basculer l'exécution dans la fibre actuelle.

Valeurs de retour

La valeur fournie à Fiber::resume().


Obtient l'instance de Fibre en cours d'exécution

  • « Fiber::suspend
  • WeakReference »
  • PHP Manual
  • Fiber
  • Obtient l'instance de Fibre en cours d'exécution

Fiber::getCurrent

(PHP 8 >= 8.1.0)

Fiber::getCurrent — Obtient l'instance de Fibre en cours d'exécution

Description

public static Fiber::getCurrent(): ?Fiber

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'instance Fiber en cours d'exécution ou null si cette méthode est appelée à partir de l'extérieur d'une fibre.


La classe WeakReference

(PHP 7 >= 7.4.0, PHP 8)

Introduction

Les références faibles permettent au programmeur de conserver une référence à un objet sans en empêcher sa destruction. Ils sont utiles pour implémenter des structures tel que des caches.

Les WeakReferences ne peuvent pas être sérialisées.

Synopsis de la classe

final class WeakReference {
/* Méthodes */
public __construct()
public static create(object $object): WeakReference
public get(): ?object
}

Exemple avec WeakReference

Exemple #1 Utilisation Simple de WeakReference

<?php
$obj = new stdClass;
$weakref = WeakReference::create($obj);
var_dump($weakref->get());
unset($obj);
var_dump($weakref->get());
?>

Résultat de l'exemple ci-dessus est similaire à :

object(stdClass)#1 (0) {
}
NULL

Sommaire

  • WeakReference::__construct — Constructeur qui interdit l'initialisation
  • WeakReference::create — Créer une nouvelle référence faible
  • WeakReference::get — Récupère un objet faiblement référencé


Constructeur qui interdit l'initialisation

  • « WeakReference
  • WeakReference::create »
  • PHP Manual
  • WeakReference
  • Constructeur qui interdit l'initialisation

WeakReference::__construct

(PHP 7 >= 7.4.0, PHP 8)

WeakReference::__construct — Constructeur qui interdit l'initialisation

Description

public WeakReference::__construct()

Cette méthode existe seulement pour interdire l'initialisation de la classe WeakReference. Les références faibles doivent être initialisées avec la méthode usine (factory) WeakReference::create().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Voir aussi

  • WeakReference::create() - Créer une nouvelle référence faible


Créer une nouvelle référence faible

  • « WeakReference::__construct
  • WeakReference::get »
  • PHP Manual
  • WeakReference
  • Créer une nouvelle référence faible

WeakReference::create

(PHP 7 >= 7.4.0, PHP 8)

WeakReference::create — Créer une nouvelle référence faible

Description

public static WeakReference::create(object $object): WeakReference

Crée une nouvelle WeakReference.

Liste de paramètres

object

L'objet à référencer faiblement

Valeurs de retour

Retourne une nouvelle WeakReference, ou l'instance existante s'il y avait déjà une WeakReference vers le même objet.


Récupère un objet faiblement référencé

  • « WeakReference::create
  • WeakMap »
  • PHP Manual
  • WeakReference
  • Récupère un objet faiblement référencé

WeakReference::get

(PHP 7 >= 7.4.0, PHP 8)

WeakReference::get — Récupère un objet faiblement référencé

Description

public WeakReference::get(): ?object

Récupère un objet faiblement référencé. Si l'objet a déjà été détruit, null est retourné.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'objet référencé, ou null si l'objet a été détruit.


La classe WeakMap

(PHP 8)

Introduction

Un WeakMap est un tableau associatif (ou dictionnaire) qui accepte des objets comme clés. Cependant, contrairement au autrement similaire SplObjectStorage, un objet dans une clé de WeakMap ne contribue pas au nombre de références de l'objet. En d'autres termes, si, à un moment donné, la seule référence restante à un objet est la clé d'un WeakMap, l'objet sera ramassé et supprimé du WeakMap. Son principal cas d'utilisation est la construction de caches de données dérivées d'un objet qui n'ont pas besoin d'être conservées plus longtemps que l'objet.

WeakMap implemente ArrayAccess, Traversable (via IteratorAggregate), et Countable, de sorte que, dans la plupart des cas, il peut être utilisé de la même manière qu'un tableau associatif.

Synopsis de la classe

final class WeakMap implements ArrayAccess, Countable, IteratorAggregate {
/* Méthodes */
public count(): int
public getIterator(): Iterator
public offsetExists(object $object): bool
public offsetGet(object $object): mixed
public offsetSet(object $object, mixed $value): void
public offsetUnset(object $object): void
}

Exemples

Exemple #1 Exemple d'utilisation d'un Weakmap

<?php
$wm = new WeakMap();

$o = new stdClass;

class A {
public function __destruct() {
echo "Dead!\n";
}
}

$wm[$o] = new A;

var_dump(count($wm));
echo "Unsetting...\n";
unset($o);
echo "Done\n";
var_dump(count($wm));

L'exemple ci-dessus va afficher :

int(1)
Unsetting...
Dead!
Done
int(0)

Sommaire

  • WeakMap::count — Compte le nombre d'entrées actives dans le dictionnaire
  • WeakMap::getIterator — Récupére un itérateur externe
  • WeakMap::offsetExists — Vérifie si un certain objet se trouve dans le dictionnaire
  • WeakMap::offsetGet — Retourne la valeur indiquée par un certain objet
  • WeakMap::offsetSet — Met à jour le dictionnaire avec une nouvelle paire clé-valeur
  • WeakMap::offsetUnset — Supprime une entrée du dictionnaire


Compte le nombre d'entrées actives dans le dictionnaire

  • « WeakMap
  • WeakMap::getIterator »
  • PHP Manual
  • WeakMap
  • Compte le nombre d'entrées actives dans le dictionnaire

WeakMap::count

(PHP 8)

WeakMap::count — Compte le nombre d'entrées actives dans le dictionnaire

Description

public WeakMap::count(): int

Compte le nombre d'entrées actives dans le dictionnaire.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre d'entrées actives dans le dictionnaire.


Récupére un itérateur externe

  • « WeakMap::count
  • WeakMap::offsetExists »
  • PHP Manual
  • WeakMap
  • Récupére un itérateur externe

WeakMap::getIterator

(PHP 8)

WeakMap::getIterator — Récupére un itérateur externe

Description

public WeakMap::getIterator(): Iterator

Retourne un itérateur externe.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une instance d'un objet implémentant Iterator ou Traversable

Erreurs / Exceptions

Lance un Exception en cas d'échec.


Vérifie si un certain objet se trouve dans le dictionnaire

  • « WeakMap::getIterator
  • WeakMap::offsetGet »
  • PHP Manual
  • WeakMap
  • Vérifie si un certain objet se trouve dans le dictionnaire

WeakMap::offsetExists

(PHP 8)

WeakMap::offsetExists — Vérifie si un certain objet se trouve dans le dictionnaire

Description

public WeakMap::offsetExists(object $object): bool

Vérifie si l'objet transmis est référencé dans le dictionnaire.

Liste de paramètres

object

Objet à vérifier.

Valeurs de retour

Retourne true si l'objet est contenu dans le dictionnaire, false sinon.


Retourne la valeur indiquée par un certain objet

  • « WeakMap::offsetExists
  • WeakMap::offsetSet »
  • PHP Manual
  • WeakMap
  • Retourne la valeur indiquée par un certain objet

WeakMap::offsetGet

(PHP 8)

WeakMap::offsetGet — Retourne la valeur indiquée par un certain objet

Description

public WeakMap::offsetGet(object $object): mixed

Retourne la valeur indiquée par un certain objet.

Liste de paramètres

object

Un objet contenu comme clé dans le dictionnaire.

Valeurs de retour

Renvoie la valeur associée à l'objet passé en argument, sinon null.


Met à jour le dictionnaire avec une nouvelle paire clé-valeur

  • « WeakMap::offsetGet
  • WeakMap::offsetUnset »
  • PHP Manual
  • WeakMap
  • Met à jour le dictionnaire avec une nouvelle paire clé-valeur

WeakMap::offsetSet

(PHP 8)

WeakMap::offsetSet — Met à jour le dictionnaire avec une nouvelle paire clé-valeur

Description

public WeakMap::offsetSet(object $object, mixed $value): void

Met à jour le dictionnaire avec une nouvelle paire clé-valeur. Si la clé existait déjà, l'ancienne valeur est remplacée par la nouvelle.

Liste de paramètres

object

L'objet servant de clé à la paire clé-valeur.

value

Les données arbitraires servant de valeur à la paire clé-valeur.

Valeurs de retour

Aucune valeur n'est retournée.


Supprime une entrée du dictionnaire

  • « WeakMap::offsetSet
  • Stringable »
  • PHP Manual
  • WeakMap
  • Supprime une entrée du dictionnaire

WeakMap::offsetUnset

(PHP 8)

WeakMap::offsetUnset — Supprime une entrée du dictionnaire

Description

public WeakMap::offsetUnset(object $object): void

Supprime une entrée du dictionnaire.

Liste de paramètres

object

L'objet clé à supprimer du dictionnaire.

Valeurs de retour

Aucune valeur n'est retournée.


L'interface Stringable

(PHP 8)

Introduction

L'interface Stringable désigne une classe possédant une méthode __toString(). Contrairement à la plupart des interfaces, Stringable est implicitement présente sur toute classe pour laquelle la méthode magique __toString() est définie, et ce bien qu'elle puisse et devrait être déclarée explicitement.

Sa valeur principale est de permettre aux fonctions de vérifier le type par rapport au type d'union string|Stringable pour accepter soit une chaîne de caractères primitive, soit un objet pouvant être transtypé en chaîne de caractères.

Sommaire de l'Interface

interface Stringable {
/* Méthodes */
public __toString(): string
}

Exemples

Exemple #1 Exemple simple

<?php
class IPv4Address implements Stringable {
private string $oct1;
private string $oct2;
private string $oct3;
private string $oct4;

public function __construct(string $oct1, string $oct2, string $oct3, string $oct4) {
$this->oct1 = $oct1;
$this->oct2 = $oct2;
$this->oct3 = $oct3;
$this->oct4 = $oct4;
}

public function __toString(): string {
return "$this->oct1.$this->oct2.$this->oct3.$this->oct4";
}
}

function showStuff(string|Stringable $value) {
// Un Stringable sera converti en chaîne de caractères ici en appelant
// __toString.
print $value;
}

$ip = new IPv4Address('123', '234', '42', '9');

showStuff($ip);
?>

Résultat de l'exemple ci-dessus est similaire à :

123.234.42.9

Sommaire

  • Stringable::__toString — Retourne la représentation de l'objet sous forme de chaîne


Retourne la représentation de l'objet sous forme de chaîne

  • « Stringable
  • UnitEnum »
  • PHP Manual
  • Stringable
  • Retourne la représentation de l'objet sous forme de chaîne

Stringable::__toString

(PHP 8)

Stringable::__toString — Retourne la représentation de l'objet sous forme de chaîne

Description

public Stringable::__toString(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la représentation d'un object sous la forme d'une chaîne de caractères.

Voir aussi

  • __toString()


L'interface UnitEnum

(PHP 8 >= 8.1.0)

Introduction

L'interface UnitEnum est automatiquement appliquée à toutes les énumérations par le moteur. Elle ne peut pas être implémentée par des classes définies par l'utilisateur. Les énumérations ne peuvent pas surcharger ses méthodes, car les implémentations par défaut sont fournies par le moteur. Elle n'est disponible que pour les vérifications de type.

Sommaire de l'Interface

interface UnitEnum {
/* Méthodes */
public static cases(): array
}

Sommaire

  • UnitEnum::cases — Génère une liste de cas sur une énumération


Génère une liste de cas sur une énumération

  • « UnitEnum
  • BackedEnum »
  • PHP Manual
  • UnitEnum
  • Génère une liste de cas sur une énumération

UnitEnum::cases

(PHP 8 >= 8.1.0)

UnitEnum::cases — Génère une liste de cas sur une énumération

Description

public static UnitEnum::cases(): array

Cette méthode retourne un tableau de tous les cas d'une énumération, dans l'ordre de leur déclaration.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau de tous les cas définis de cette énumération, dans l'ordre de la déclaration.

Exemples

Exemple #1 Utilisation de base

L'exemple suivant illustre la façon dont les cas d'énumération sont retournés.

<?php
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}

var_dump(Suit::cases());
?>

L'exemple ci-dessus va afficher :

array(4) {
    [0]=>
    enum(Suit::Hearts)
    [1]=>
    enum(Suit::Diamonds)
    [2]=>
    enum(Suit::Clubs)
    [3]=>
    enum(Suit::Spades)
}


L'interface BackedEnum

(PHP 8 >= 8.1.0)

Introduction

L'interface BackedEnum est automatiquement appliquée aux énumérations soutenues par le moteur. Elle ne peut pas être implémentée par des classes définies par l'utilisateur. Les énumérations ne peuvent pas surcharger ses méthodes, car les implémentations par défaut sont fournies par le moteur. Elle n'est disponible que pour les vérifications de type.

Sommaire de l'Interface

interface BackedEnum extends UnitEnum {
/* Méthodes */
public static from(int|string $value): static
public static tryFrom(int|string $value): ?static
/* Méthodes héritées */
public static UnitEnum::cases(): array
}

Sommaire

  • BackedEnum::from — Convertit un scalaire en une instance d'enum
  • BackedEnum::tryFrom — Associe un scalaire à une instance d'enum ou à null


Convertit un scalaire en une instance d'enum

  • « BackedEnum
  • BackedEnum::tryFrom »
  • PHP Manual
  • BackedEnum
  • Convertit un scalaire en une instance d'enum

BackedEnum::from

(PHP 8 >= 8.1.0)

BackedEnum::from — Convertit un scalaire en une instance d'enum

Description

public static BackedEnum::from(int|string $value): static

La méthode from() traduit une string ou un int en un cas Enum correspondant, s'il y en a un. S'il n'y a pas de cas correspondant défini, elle lancera une erreur ValueError.

Liste de paramètres

value

La valeur scalaire à faire correspondre à un cas d'énumération.

Valeurs de retour

Une instance de cas de cette énumération.

Exemples

Exemple #1 Utilisation de base

L'exemple suivant illustre la façon dont les cas d'énumération sont renvoyés.

<?php
enum Suit: string
{
case Hearts = 'H';
case Diamonds = 'D';
case Clubs = 'C';
case Spades = 'S';
}

$h = Suit::from('H');

var_dump($h);

$b = Suit::from('B');
?>

L'exemple ci-dessus va afficher :

enum(Suit::Hearts)

Fatal error: Uncaught ValueError: "B" is not a valid backing value for enum "Suit" in /file.php:15

Voir aussi

  • UnitEnum::cases() - Génère une liste de cas sur une énumération
  • BackedEnum::tryFrom() - Associe un scalaire à une instance d'enum ou à null


Associe un scalaire à une instance d'enum ou à null

  • « BackedEnum::from
  • SensitiveParameterValue »
  • PHP Manual
  • BackedEnum
  • Associe un scalaire à une instance d'enum ou à null

BackedEnum::tryFrom

(PHP 8 >= 8.1.0)

BackedEnum::tryFrom — Associe un scalaire à une instance d'enum ou à null

Description

public static BackedEnum::tryFrom(int|string $value): ?static

La méthode tryFrom() traduit une string ou un int en cas Enum correspondant, s'il y en a un. S'il n'y a pas de cas correspondant défini, elle retournera null.

Liste de paramètres

value

La valeur scalaire à faire correspondre à un cas d'énumération.

Valeurs de retour

Une instance de cas de cette énumération, ou null si elle n'a pas été trouvée.

Exemples

Exemple #1 Utilisation de base

L'exemple suivant illustre la façon dont les cas d'énumération sont renvoyés.

<?php
enum Suit: string
{
case Hearts = 'H';
case Diamonds = 'D';
case Clubs = 'C';
case Spades = 'S';
}

$h = Suit::tryFrom('H');

var_dump($h);

$b = Suit::tryFrom('B') ?? Suit::Spades;

var_dump($b);
?>

L'exemple ci-dessus va afficher :

enum(Suit::Hearts)
enum(Suit::Spades)

Voir aussi

  • UnitEnum::cases() - Génère une liste de cas sur une énumération
  • BackedEnum::from() - Convertit un scalaire en une instance d'enum


La classe SensitiveParameterValue

(PHP 8 >= 8.2.0)

Introduction

La classe SensitiveParameterValue permet d'envelopper des valeurs pour les protéger contre une exposition accidentelle.

Les valeurs des paramètres ayant l'attribut SensitiveParameter seront automatiquement enveloppées dans un objet SensitiveParameterValue dans les traces de pile.

Synopsis de la classe

final class SensitiveParameterValue {
/* Propriétés */
private readonly mixed $value;
/* Méthodes */
public __construct(mixed $value)
public __debugInfo(): array
public getValue(): mixed
}

Propriétés

value

Valeur sensible à protéger contre une exposition accidentelle.

Sommaire

  • SensitiveParameterValue::__construct — Construit un nouvel objet SensitiveParameterValue
  • SensitiveParameterValue::__debugInfo — Protège la valeur sensible contre une exposition accidentelle
  • SensitiveParameterValue::getValue — Retourne la valeur sensible


Construit un nouvel objet SensitiveParameterValue

  • « SensitiveParameterValue
  • SensitiveParameterValue::__debugInfo »
  • PHP Manual
  • SensitiveParameterValue
  • Construit un nouvel objet SensitiveParameterValue

SensitiveParameterValue::__construct

(PHP 8 >= 8.2.0)

SensitiveParameterValue::__construct — Construit un nouvel objet SensitiveParameterValue

Description

public SensitiveParameterValue::__construct(mixed $value)

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

value

Une valeur arbitraire qui doit être stockée dans l'objet SensitiveParameterValue.


Protège la valeur sensible contre une exposition accidentelle

  • « SensitiveParameterValue::__construct
  • SensitiveParameterValue::getValue »
  • PHP Manual
  • SensitiveParameterValue
  • Protège la valeur sensible contre une exposition accidentelle

SensitiveParameterValue::__debugInfo

(PHP 8 >= 8.2.0)

SensitiveParameterValue::__debugInfo — Protège la valeur sensible contre une exposition accidentelle

Description

public SensitiveParameterValue::__debugInfo(): array

Retourne un tableau vide pour protéger la valeur sensible contre une exposition accidentelle lors de l'utilisation de var_dump().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau vide.

Exemples

Exemple #1 Passer un objet SensitiveParameterValue à var_dump()

<?php
$s = new \SensitiveParameterValue('secret');

var_dump($s);
?>

L'exemple ci-dessus va afficher :

object(SensitiveParameterValue)#1 (0) {
}


Retourne la valeur sensible

  • « SensitiveParameterValue::__debugInfo
  • Attributs prédéfinis »
  • PHP Manual
  • SensitiveParameterValue
  • Retourne la valeur sensible

SensitiveParameterValue::getValue

(PHP 8 >= 8.2.0)

SensitiveParameterValue::getValue — Retourne la valeur sensible

Description

public SensitiveParameterValue::getValue(): mixed

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur sensible.

Exemples

Exemple #1 Exemple de SensitiveParameterValue::getValue()

<?php
$s = new \SensitiveParameterValue('secret');

echo "La valeur protégée est: ", $s->getValue(), "\n";
?>

L'exemple ci-dessus va afficher :

La valeur protégée est: secret


Attributs prédéfinis

Sommaire

  • Attribute
  • AllowDynamicProperties
  • Override
  • ReturnTypeWillChange
  • SensitiveParameter

PHP fournit des attributs prédéfinis qui peuvent être utilisés.


La classe Attribute

(PHP 8)

Introduction

Les attributs permettent d'ajouter des informations de métadonnées structurées et lisibles par la machine sur les déclarations dans le code: les classes, les méthodes, les fonctions, les paramètres, les propriétés et les constantes de classe peuvent être la cible d'un attribut. Les métadonnées définies par les attributs peuvent ensuite être inspectées au moment de l'exécution à l'aide de l'API de Réflexion. Les attributs peuvent donc être considérés comme un langage de configuration intégré directement dans le

Synopsis de la classe

final class Attribute {
/* Constantes */
const int TARGET_CLASS;
const int TARGET_FUNCTION;
const int TARGET_METHOD;
const int TARGET_PROPERTY;
const int TARGET_CLASS_CONSTANT;
const int TARGET_PARAMETER;
const int TARGET_ALL;
const int IS_REPEATABLE;
/* Propriétés */
public int $flags;
/* Méthodes */
public __construct(int $flags = Attribute::TARGET_ALL)
}

Constantes pré-définies

Attribute::TARGET_CLASS

Attribute::TARGET_FUNCTION

Attribute::TARGET_METHOD

Attribute::TARGET_PROPERTY

Attribute::TARGET_CLASS_CONSTANT

Attribute::TARGET_PARAMETER

Attribute::TARGET_ALL

Attribute::IS_REPEATABLE

Propriétés

flags

Voir aussi

Aperçu des attributs

Sommaire

  • Attribute::__construct — Construit une nouvelle instance de Attribute


Construit une nouvelle instance de Attribute

  • « Attribute
  • AllowDynamicProperties »
  • PHP Manual
  • Attribute
  • Construit une nouvelle instance de Attribute

Attribute::__construct

(PHP 8)

Attribute::__construct — Construit une nouvelle instance de Attribute

Description

public Attribute::__construct(int $flags = Attribute::TARGET_ALL)

Construit une nouvelle instance de Attribute.

Liste de paramètres

flags


La classe AllowDynamicProperties

(PHP 8 >= 8.2.0)

Introduction

Cet attribut est utilisé pour marquer les classes qui autorisent les propriétés dynamiques.

Synopsis de la classe

final class AllowDynamicProperties {
/* Méthodes */
public __construct()
}

Exemples

Les propriétés dynamiques sont obsolètes à partir de PHP 8.2.0, donc les utiliser sans marquer la classe avec cet attribut émettra un avis de d'obsolescence.

<?php
class DefaultBehaviour { }

#[\AllowDynamicProperties]
class ClassAllowsDynamicProperties { }

$o1 = new DefaultBehaviour();
$o2 = new ClassAllowsDynamicProperties();

$o1->nonExistingProp = true;
$o2->nonExistingProp = true;
?>

Résultat de l'exemple ci-dessus en PHP 8.2 :

Deprecated: Creation of dynamic property DefaultBehaviour::$nonExistingProp is deprecated in file on line 10

Voir aussi

Aperçu des attributs

Sommaire

  • AllowDynamicProperties::__construct — Construit une nouvelle instance d'attribut AllowDynamicProperties


Construit une nouvelle instance d'attribut AllowDynamicProperties

  • « AllowDynamicProperties
  • Override »
  • PHP Manual
  • AllowDynamicProperties
  • Construit une nouvelle instance d'attribut AllowDynamicProperties

AllowDynamicProperties::__construct

(PHP 8 >= 8.2.0)

AllowDynamicProperties::__construct — Construit une nouvelle instance d'attribut AllowDynamicProperties

Description

public AllowDynamicProperties::__construct()

Construit une nouvelle instance de AllowDynamicProperties.

Liste de paramètres

Cette fonction ne contient aucun paramètre.


La classe Override

(PHP 8 >= 8.3.0)

Introduction

Synopsis de la classe

final class Override {
/* Méthodes */
public __construct()
}

Exemples

<?php

class Base {
protected function foo(): void {}
}

final class Extended extends Base {
#[\Override]
protected function boo(): void {}
}

?>

Résultat de l'exemple ci-dessus en PHP 8.3 est similaire à :

Fatal error: Extended::boo() has #[\Override] attribute, but no matching parent method exists

Voir aussi

  • Aperçu des attributs

Sommaire

  • Override::__construct — Construit une nouvelle instance de l'attribut Override


Construit une nouvelle instance de l'attribut Override

  • « Override
  • ReturnTypeWillChange »
  • PHP Manual
  • Override
  • Construit une nouvelle instance de l'attribut Override

Override::__construct

(PHP 8 >= 8.3.0)

Override::__construct — Construit une nouvelle instance de l'attribut Override

Description

public Override::__construct()

Construit une nouvelle instance de Override.

Liste de paramètres

Cette fonction ne contient aucun paramètre.


La classe ReturnTypeWillChange

(PHP 8 >= 8.1.0)

Introduction

La plupart des méthodes internes non finales exigent désormais que les méthodes de surcharge déclarent un type de retour compatible, sinon un avis d'obsolescence est émis lors de la validation de l'héritage. Dans le cas où le type de retour ne peut pas être déclaré pour une méthode de surcharge en raison de problèmes de compatibilité entre les versions de PHP, un attribut #[\ReturnTypeWillChange] peut être ajouté pour taire l'avis de d'obsolescence.

Synopsis de la classe

final class ReturnTypeWillChange {
/* Méthodes */
public __construct()
}

Voir aussi

Aperçu des attributs

Sommaire

  • ReturnTypeWillChange::__construct — Construit une nouvelle instance de l'attribut ReturnTypeWillChange


Construit une nouvelle instance de l'attribut ReturnTypeWillChange

  • « ReturnTypeWillChange
  • SensitiveParameter »
  • PHP Manual
  • ReturnTypeWillChange
  • Construit une nouvelle instance de l'attribut ReturnTypeWillChange

ReturnTypeWillChange::__construct

(PHP 8 >= 8.1.0)

ReturnTypeWillChange::__construct — Construit une nouvelle instance de l'attribut ReturnTypeWillChange

Description

public ReturnTypeWillChange::__construct()

Construit une nouvelle instance de ReturnTypeWillChange.

Liste de paramètres

Cette fonction ne contient aucun paramètre.


La classe SensitiveParameter

(PHP 8 >= 8.2.0)

Introduction

Cet attribut est utilisé pour indiquer qu'un paramètre est sensible et que sa valeur doit être expurgée s'il est présent dans une trace de pile.

Synopsis de la classe

final class SensitiveParameter {
/* Méthodes */
public __construct()
}

Exemples

<?php

function defaultBehavior(
string $secret,
string $normal
) {
throw new Exception('Error!');
}

function sensitiveParametersWithAttribute(
#[\SensitiveParameter]
string $secret,
string $normal
) {
throw new Exception('Error!');
}

try {
defaultBehavior('password', 'normal');
} catch (Exception $e) {
echo $e, PHP_EOL, PHP_EOL;
}

try {
sensitiveParametersWithAttribute('password', 'normal');
} catch (Exception $e) {
echo $e, PHP_EOL, PHP_EOL;
}

?>

Résultat de l'exemple ci-dessus en PHP 8.2 est similaire à :

Exception: Error! in example.php:7
Stack trace:
#0 example.php(19): defaultBehavior('password', 'normal')
#1 {main}

Exception: Error! in example.php:15
Stack trace:
#0 example.php(25): sensitiveParametersWithAttribute(Object(SensitiveParameterValue), 'normal')
#1 {main}

Voir aussi

  • Aperçu des attributs
  • SensitiveParameterValue

Sommaire

  • SensitiveParameter::__construct — Construit une nouvelle instance d'attribut SensitiveParameter


Construit une nouvelle instance d'attribut SensitiveParameter

  • « SensitiveParameter
  • Options et paramètres de contexte »
  • PHP Manual
  • SensitiveParameter
  • Construit une nouvelle instance d'attribut SensitiveParameter

SensitiveParameter::__construct

(PHP 8 >= 8.2.0)

SensitiveParameter::__construct — Construit une nouvelle instance d'attribut SensitiveParameter

Description

public SensitiveParameter::__construct()

Construit une nouvelle instance de SensitiveParameter.

Liste de paramètres

Cette fonction ne contient aucun paramètre.


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
  • Les options du contexte Phar — Liste des options du contexte Phar
  • Paramètres de contexte — Liste des paramètres de contexte
  • Options de contexte Zip — Zip context option listing
  • Options de contexte Zlib — Liste des options de contexte Zlib


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().

ipv6_v6only

Substitue le système d'exploitation par défaut concernant le mappage d'IPv4 dans IPv6.

Note:

Ceci est important en particulier lorsque vous essayez d'écouter sur les adresses IPv4 séparément alors qu'il existe une liaison sur [::].

Ceci n'est applicable qu'à la fonction stream_socket_server().

so_reuseport

Permet plusieurs liaisons d'une même paire ip:port, même à partir de processus distinct.

Note:

Ceci n'est applicable qu'à la fonction stream_socket_server().

so_broadcast

Permet d'envoyer et de recevoir des données vers/à partir d'adresses de diffusion.

Note:

Ceci n'est applicable qu'à la fonction stream_socket_server().

tcp_nodelay

Mettre la valeur a true définira SOL_TCP,NO_DELAY=1 correctement, ce qui désactivera l'algorithme TCP Nagle.

Historique

Version | Description
7.1.0 | Ajout du paramètre tcp_nodelay.
7.0.1 | Ajout du paramètre ipv6_v6only.

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 array ou string

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:), même en suivant les redirections Location:. Ainsi il n'est pas recommandé de définir l'en-tête Host:, si follow_location est activé.

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. (e.g. 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 int

Suit les redirections Location. À définir à 0 pour désactiver.

Par défaut, vaut 1.

max_redirects int

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.1 à partir de PHP 8.0.0; antérieur à cette version la valeur par défaut était 1.0.

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.

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 Permanently',
    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.

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
  • Les options du contexte Phar »
  • 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 bool

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. La clé privée peut également être contenue dans un fichier distinct spécifié par local_pk.

local_pk string

Chemin d'accès au fichier de clé privée locale sur le système de fichiers dans le cas de fichiers distincts pour le certificat (local_cert) et la clé privée.

passphrase string

La phrase passe avec laquelle votre fichier local_cert a été encodé.

verify_depth int

É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 bool

Si définit à true, un option de contexte peer_certificate sera créée, contenant le certificat de l'émetteur.

capture_peer_cert_chain bool

Si définit à true, une option de contexte peer_certificate_chain sera créée, contenant la chaîne de certification.

SNI_enabled bool

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.

disable_compression bool

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 hachage utilisé, soit "md5" (32), soit "sha1" (40).

Lorsqu'un tableau est utilisé, la clé indique le nom de l'algorithme de hachage, et chaque valeur correspondante représente le digest attendu.

security_level int

Définie le niveau de sécurité. Si non spécifié le niveau de sécurité par défaut est utilisé. Les niveaux de sécurités sont décrit dans » SSL_CTX_get_security_level(3).

Disponible à partir de PHP 7.2.0 et OpenSSL 1.1.0.

Historique

Version | Description
7.2.0 | Ajout de security_level. Requit OpenSSL >= 1.1.0.

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 du contexte Phar

  • « Options de contexte SSL
  • Paramètres de contexte »
  • 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 paramètres de contexte

  • « Les options du contexte Phar
  • Options de contexte Zip »
  • 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.


Zip context option listing

  • « Paramètres de contexte
  • Options de contexte Zlib »
  • PHP Manual
  • Options et paramètres de contexte
  • Zip context option listing

Options de contexte Zip

Options de contexte Zip — Zip context option listing

Description

Les options de contexte Zip sont disponibles pour les enveloppes (wrapper) zip.

Options

password

Utilisé pour spécifier un mot de passe à utiliser pour les archives chiffrés.

Historique

Version | Description
PHP 7.2.0, PECL zip 1.14.0 | Ajout du paramètre password.

Exemples

Exemple #1 Exemple avec une utilisation simple du paramètre password

<?php
// Lire l'archive chiffré
$opts = array(
'zip' => array(
'password' => 'secret',
),
);
// créer le contexte...
$context = stream_context_create($opts);

// ...et l'utiliser pour récupérer les données
echo file_get_contents('zip://test.zip#test.txt', false, $context);

?>


Liste des options de contexte Zlib

  • « Options de contexte Zip
  • Liste des protocoles et des gestionnaires supportés »
  • PHP Manual
  • Options et paramètres de contexte
  • Liste des options de contexte Zlib

Options de contexte Zlib

Options de contexte Zlib — Liste des options de contexte Zlib

Description

Les options de contexte Zlib sont disponibles pour les wrappers zlib.

Options

level

Permet de spécifier le niveau de compression(0 - 9).

Historique

Version | Description
7.3.0 | level a été ajouté.


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 l'enveloppe 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é de l'enveloppe
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


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 seule, à des fichiers accessibles via HTTP. Par défaut, une requête HTTP 1.0 GET est utilisé. 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 incluse 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é de l'enveloppe
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

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é de l'enveloppe
Attribut | Supporté
Restreint par allow_url_fopen | Oui
Autorise la lecture | Oui
Autorise l'écriture | Oui (nouveaux fichiers/fichiers existants avec le paramètre overwrite)
Autorise l'ajout | Oui
Autorise la lecture et l'écriture simultanément | Non
Support de la fonction stat() | filesize(), filetype(), file_exists(), is_file(), is_dir(), et filemtime() uniquement.
Support de la fonction unlink() | Oui
Support de la fonction rename() | Oui
Support de la fonction mkdir() | Oui
Support de la fonction rmdir() | Oui

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
L'ajout d'informations à un fichiers est possible avec le gestionnaire d'URL ftp://.

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 d'entrée, de sortie et d'erreur standards, à 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é. Il est recommandé d'utiliser uniquement les constantes STDIN, STDOUT et STDERR au lieu d'ouvrir manuellement les flux en utilisant ces enveloppes.

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. php://input n'est pas disponible dans les requêtes POST avec enctype="multipart/form-data" si l'option enable_post_data_reading est activée.

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 une enveloppe de fichiers. Une 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.

Attention

Certaines extensions PHP peuvent require un flux IO standard, et peuvent tenter de convertir un flux donné à un flux IO standard. Cette conversion peut échouer pour les flux de mémoire, car la fonction C fopencookie() doit être disponible. Cette fonction C n'est pas disponible sur Windows.

php://filter

php://filter est une sorte d'enveloppe 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é de l'enveloppe (pour php://filter, reportez-vous au résumé de l'enveloppe à 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() | Non. Néanmoins php://memory et php://temp supportent fstat().
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.

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");
?>

Exemple #5 php://memory et php://temp ne sont pas réutilisables

php://memory et php://temp ne sont pas réutilisables, c.-à-d. après que les flux ont été fermés il n'y a aucun moyen de les référer à nouveau.

file_put_contents('php://memory', 'PHP');
echo file_get_contents('php://memory'); // affiche rien


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

compress.zlib:// et compress.bzip2://

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 à 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 l'enveloppe zip:. À partir de PHP 7.2.0 et libzip 1.2.0+, le support des mots de passe pour les archives chiffrées a été ajouté, permettant aux mots de passe d'être fournis par des contextes de flux. Les mots de passe peuvent être définis sur un flux à l'aide de l'option de contexte 'password'.

Utilisation

  • compress.zlib://file.gz
  • compress.bzip2://file.bz2
  • zip://archive.zip#dir/file.txt

Options

Résumé des enveloppes
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

Voir aussi

  • Options de contexte Zlib


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

L'enveloppe de flux data: (» RFC 2397).

Utilisation

  • data://text/plain;base64,

Options

Résumé de l'enveloppe
Attribut | Supporté
Restreint par allow_url_fopen | Oui
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

L'enveloppe de flux glob:.

Utilisation

  • glob://

Options

Résumé de l'enveloppe
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

L'enveloppe de flux phar://. Voyez enveloppe de flux Phar pour une description détaillée.

Utilisation

  • phar://

Options

Résumé de l'enveloppe
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:// (PECL)

Note: Cette enveloppe n'est pas activé par défaut
Pour utiliser l'enveloppe ssh2://, l'extension » SSH2 disponible sur » PECL doit être installée.

En plus d'accepter les identifications traditionnelles via l'URI, l'enveloppe 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é de l'enveloppe
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 l'enveloppe ssh2.*://$session, la variable de ressource $session doit être conservée. 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

Cette enveloppe 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.

Cette enveloppe 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 à l'enveloppe 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 cette enveloppe 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: Cette enveloppe n'est pas activé par défaut
Pour utiliser l'enveloppe rar://, l'extension » rar disponible sur » PECL doit être installée.

rar:// est disponible depuis PECL rar 3.0.0

Utilisation

  • rar://<url encoded archive name>[*][#[<url encoded entry name>]]

Options

Résumé de l'enveloppe
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 simultané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";
}
?>

Résultat de l'exemple ci-dessus est 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));
?>

Résultat de l'exemple ci-dessus est 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 l'enveloppe 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 l'enveloppe 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:// (PECL)

Note: Cette enveloppe n'est pas activé par défaut
Pour utiliser l'enveloppe ogg://, l'extension » OGG/Vorbis disponible sur » PECL doit être installée.

Utilisation

  • ogg://soundfile.ogg
  • ogg:///path/to/soundfile.ogg
  • ogg://http://www.example.com/path/to/soundstream.ogg

Options

Résumé de l'enveloppe
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


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 l'enveloppe expect:// permettent d'accéder à stdio, stdout, et stderr de processus, via PTY.

Note: Cette enveloppe n'est pas activé par défaut
Pour utiliser l'enveloppe expect://, l'extension » Expect disponible sur » PECL doit être installée.

expect:// (PECL)

Utilisation

  • expect://command

Options

Résumé de l'enveloppe
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


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
  • Sécurité des Sessions
  • 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
  • Données transmises par les internautes
  • 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 activer la directive INI cgi.force_redirect 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. À la place, PHP analysera le fichier uniquement s'il y a eu redirection.

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, la directive INI cgi.discard_path doit être activé.


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.


Sécurité des Sessions

Il est important d'avoir une utilisation sécurisée des sessions HTTP. La sécurité liée aux sessions est abordée dans le chapitre Sessions et sécurité de la référence Gestion des sessions.


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.


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 OpenSSL et Sodium, 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.

Hachage

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 hachage de cryptage.

Les fonctions password fournissent une bonne façon de hacher les données sensibles et fonctionnent avec ces haches.

La fonction password_hash() est utilisée pour hacher 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 Hacher 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) . '.';
}

?>


Injection SQL

L'injection SQL est une technique où un attaquant exploite les failles dans le code d'application responsable de la création de requêtes SQL dynamiques. L'attaquant peut accéder à des sections privilégiées de l'application, récupérer toutes les informations de la base de données, altérer des données existantes, voire exécuter des commandes dangereuses au niveau système sur l'hôte de la base de données. La vulnérabilité se produit lorsque les développeurs concatènent ou interpolent une entrée arbitraire dans leurs déclarations SQL.

Exemple #1 Séparation des résultats en pages, et créer des administrateurs (PostgreSQL et MySQL)

Dans l'exemple suivant, l'entrée de l'utilisateur est directement interpolée dans la requête SQL, permettant à l'attaquant d'obtenir un compte superutilisateur dans la base de données.

<?php
$offset = $_GET['offset']; // 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. 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 donnerait un accès super utilisateur à l'attaquant. 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 de stocker uniquement des hachages sécurisés des mots de passe au lieu des mots de passe eux-mêmes 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;
--
?>

Les instructions UPDATE et INSERT sont également susceptibles à de telles attaques

Exemple #5 Modifier un mot de passe ... et gain de droits!

<?php
$query= "UPDATE usertable SET pwd='$pwd' WHERE uid='$uid';";
?>
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
...;";

?>

Bien qu'il reste évident qu'un attaquant doit posséder au moins certaines connaissances sur l'architecture de la base de données pour mener une attaque réussie, obtenir ces informations est souvent très simple. Par exemple, le code peut faire partie d'un logiciel open-source et être disponible publiquement. Ces informations peuvent également être divulguées par un code source fermé - même s'il est codé, obscurci ou compilé - et même par votre propre code à travers l'affichage de messages d'erreur. D'autres méthodes comprennent l'utilisation de noms de table et de colonne typiques. Par exemple, un formulaire de connexion qui utilise une table 'users' avec des noms de colonnes 'id', 'username' et 'password'.

Exemple #7 Attaque d'un serveur de bases de données (MSSQL Server)

Un exemple effrayant de la manière dont des commandes de niveau systèmes d'exploitation peuvent être accessibles sur certains hôtes de base de données.

<?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 exemples ci-dessus sont spécifiques à certains serveurs de bases de données, mais 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 amusant concernant l'injection SQL

Image de » xkcd

Techniques de contournement

La méthode recommandée pour éviter les injections SQL est de lier toutes les données via des requêtes préparées. L'utilisation de requêtes paramétrées n'est pas suffisante pour éviter complètement les injections SQL, mais c'est le moyen le plus facile et le plus sûr de fournir une entrée aux instructions SQL. Toutes les littérales de données dynamiques dans les clauses WHERE, SET et VALUES doivent être remplacées par des espaces réservés. Les données réelles seront liées pendant l'exécution et envoyées séparément de la commande SQL.

La liaison de paramètres ne peut être utilisée que pour les données. Les autres parties dynamiques de la requête SQL doivent être filtrées contre une liste connue de valeurs autorisées.

Exemple #9 Éviter les injections SQL en utilisant des requêtes préparées PDO

<?php
// La partie SQL dynamique est validée par rapport aux valeurs attendues
$sortingOrder = $_GET['sortingOrder'] === 'DESC' ? 'DESC' : 'ASC';
$productId = $_GET['productId'];
// Le SQL est préparé avec un espace réservé
$stmt = $pdo->prepare("SELECT * FROM products WHERE id LIKE ? ORDER BY price {$sortingOrder}");
// La valeur est fournie avec des caractères génériques LIKE
$stmt->execute(["%{$productId}%"]);
?>

Les instructions préparées sont fournies par PDO, par MySQLi, et par d'autres bibliothèques de bases de données.

Les attaques par injection SQL sont principalement basées sur l'exploitation du code qui n'a pas été écrit en tenant compte de la sécurité. Ne faites jamais confiance à une entrée, en particulier côté client, même si elle provient d'une boîte de sélection, d'un champ de saisie masqué ou d'un cookie. Le premier exemple montre qu'une telle requête simple peut causer des désastres.

Une stratégie de défense en profondeur implique plusieurs bonnes pratiques de codage :

  • Ne vous connectez jamais à la base de données en tant que superutilisateur ou en tant que propriétaire de la base de données. Utilisez toujours des utilisateurs personnalisés avec des privilèges minimaux.
  • Vérifiez si l'entrée donnée a le type de données attendu. PHP a une large gamme de fonctions de validation d'entrée, des plus simples trouvées dans Fonctions de variables et dans Fonctions de type de caractères (par exemple is_numeric(), ctype_digit() respectivement) et jusqu'à la prise en charge des Expressions régulières compatibles avec Perl.
  • Si l'application s'attend à une entrée numérique, envisagez de vérifier les données avec ctype_digit(), de changer silencieusement son type en utilisant settype(), ou d'utiliser sa représentation numérique avec sprintf().
  • Si la couche de base de données ne prend pas en charge la liaison de variables, alors mettez chaque valeur fournie par l'utilisateur non numérique entre guillemets avec la fonction d'échappement de chaîne spécifique à la base de données (par exemple mysql_real_escape_string(), sqlite_escape_string(), etc.). Les fonctions génériques comme addslashes() ne sont utiles que dans un environnement très spécifique (par exemple MySQL dans un ensemble de caractères à octets uniques avec NO_BACKSLASH_ESCAPES désactivé), il est donc préférable de les éviter.
  • Il est particulièrement important de ne pas divulguer d'informations spécifiques à la base de données, en particulier sur le schéma, que ce soit de manière légale ou illégale. Consultez également Signalement d'erreurs et Fonctions de gestion et de journalisation des erreurs.

À 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");
}
?>


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).


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
    • Voir aussi
  • Utilisation des fichiers à distance
  • Gestion des connexions
  • Connexions persistantes aux bases de données
  • Utilisation des lignes de commande — Utiliser PHP en ligne de commande
    • 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 Traçage dynamique
    • Introduction à PHP et DTrace
    • Utiliser PHP et DTrace
    • Utiliser SystemTap avec les sondes statiques DTrace de PHP


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. Seulement les méthodes d'identification simple ("Basic") et de type "Digest" 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 double guillemets (pas des 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.

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).


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 envoyés au serveur par le 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.

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
  • Voir aussi


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 faites 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.

$_FILES['userfile']['full_path']

Le chemin entier tel que soumit par le navigateur. Cette valeur ne contient pas toujours une vraie hiérarchie de dossier, et il ne faut pas lui faire confiance. Disponible à partir de PHP 8.1.0.

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
$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];
// basename() peut empêcher les attaques "filesystem traversal";
// une autre validation/nettoyage du nom de fichier peux être appropriée
$name = basename($_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.

UPLOAD_ERR_CANT_WRITE

Valeur : 7. Échec de l'écriture du fichier sur le disque.

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.


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.

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 !

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.

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

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.

Exemple #2 Téléverser un dossier entier

Dans les champs de téléversement de fichier HTML, il est possible de téléverser un dossier entier avec l'attribut webkitdirectory. Cette fonctionnalité est supportée dans la plupart des navigateurs modernes.

Avec l'information full_path, il est possible de stocker les chemins relatifs ou reconstruire la même hiérarchie de dossier sur le dossier.

<form action="file-upload.php" method="post" enctype="multipart/form-data">
  Send this directory:<br />
  <input name="userfile[]" type="file" webkitdirectory multiple />
  <input type="submit" value="Send files" />
</form>
Avertissement

L'attribut webkitdirectory n'est pas standard et n'est pas actuellement en cours de standardisation. Ceci n'est pas à utiliser sur des sites de production tournés vers le Web : ça ne fonctionnera pas pour tous les utilisateurs. Il peut y avoir de grandes incompatibilités parmi les implémentations et le comportement peut changer dans le futur.

PHP analyse uniquement les informations des chemins relatifs soumit par le navigateur/user-agent et transmet les informations dans le tableau $_FILES. Il n'y a aucune garanties que les valeurs dans le tableau full_path contienne une vraie structure de dossier et l'application PHP ne doit pas faire confiance à cette information.


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);
?>


  • « Chargement par méthode PUT
  • Utilisation des fichiers à distance »
  • PHP Manual
  • Gestion des chargements de fichiers
  • Voir aussi

Voir aussi

  • Sécurité des fichiers


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 (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, l'état est NORMAL. Si le client distant se déconnecte, le statut devient ABORTED. Une déconnexion du client distant est généralement causé par les utilisateurs appuyant sur leurs bouton STOP. 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 multiprocessus, 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 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 multiprocessus 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
ibase_pconnect(),
ociplogon(),
pfsockopen(), et
pg_pconnect().


Utiliser PHP en ligne de commande

Sommaire

  • 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.

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'est pas possible 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]

Exemple #1 Example of using -d to set an INI setting

# 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.

-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 #2 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 #3 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 #4 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 à » https://github.com/php/php-src/issues. 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 antislashs 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 #5 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.
-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 #6 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èques 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.

Exemple #7 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).

Cette option n'est disponible que si PHP a été compilé avec le support Reflection.

Exemple #8 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).

Cette option n'est disponible que si PHP a été compilé avec le support Reflection.

Exemple #9 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).

Cette option n'est disponible que si PHP a été compilé avec le support Reflection.

Exemple #10 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()).

--ri --rextinfo

Affiche les informations de configuration pour l'extension donnée (les mêmes informations retournées par la fonction phpinfo()). Les informations de configurations internes sont disponibles en utilisant le nom d'extension "main" ou "core".

Exemple #11 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.

  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 termes 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 "Standard input code"; antérieur à PHP 7.2.0, c'était un tiret ("-") à la place. 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 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.

Note:

Sous Windows, il est recommandé d'exécuter PHP sous un compte utilisateur. Lorsque PHP est exécuté sous un service réseau, certaines opérations peuvent échouer, car "Aucun lien entre les noms de compte et les identifiants de sécurité n'est réalisé".


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

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. Depuis PHP 7.1.0 le shell intéractif est également disponible sur Windows, si l'extension readline est activée.

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 autocomplé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 seule 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.

Le CLI SAPI fournit 2 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 >.

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 multilignes. 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.

Interactive mode

Si l'extension readline n'est pas disponible, antérieur à PHP 8.1.0, invoquer le CLI SAPI avec l'option -a fournit le mode intéractif. Dans ce mode, un script PHP complet est supposé d'être donnée via STDIN, et après l'interruption avec CRTL+d (POSIX) ou CTRL+z suivi de ENTER (Windows), ce script sera évalué. Ceci est basiquement identique à invoquer le CLI SAPI sans l'option -a.

À partir de PHP 8.1.0, invoquer le CLI SAPI avec l'option -a échoue, si l'extension readline n'est pas disponible.


Serveur web interne

Avertissement

Ce serveur web est 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.

Le CLI SAPI fournit un serveur web interne.

Le serveur web s'exécute sur un seul processus single-threaded, les applications PHP seront retardés/suspendues si une requête 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, .png, .pps, .pptx, .qt, .svg, .swf, .tar, .text, .tif, .txt, .wav, .webm, .wmv, .xls, .xlsx, .xml, .xsl, .xsd, .zip .

À partir de PHP 7.4.0, le serveur web intégré peut être configuré pour bifurquer plusieurs travailleurs afin de tester du code nécessitant plusieurs requêtes concurrentes au serveur web intégré. Définissez la variable d'environnement PHP_CLI_SERVER_WORKERS sur le nombre de travailleurs souhaité avant de démarrer le serveur.

Note: Cette fonctionnalité n'est pas prise en charge sur Windows.

Avertissement

Cette fonctionnalité expérimentale n'est pas destinée à une utilisation en production. En général, le Serveur Web intégré n'est pas destiné à une utilisation en production.

Changelog
Version | Description
7.4.0 | Le serveur web intégré peut être configuré pour fork en de multiple workers pour tester du code qui nécéssite plusieurs requêtes concurrentes au serveur web intégré. Définir la variable d'environnement PHP_CLI_SERVER_WORKERS au nombre désiré de workers avant de démarrer le serveur. Ceci n'est pas supporté sous Windows. Avertissement Ce comportement expérimental n'est pas prévu pour un usage en production. Plus générallement, le serveur web intégré n'est pas prévu pour un usage en production.

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

Noter qu'avant PHP 7.4.0, les ressources statiques en lien symbolique ne sont pas accessibles sous Windows, tant que le script routeur ne le gère pas.

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
Avertissement

Le serveur web intégré ne doit pas être utilisé sur un réseau public.


Configurations INI

Options de configuration CLI SAPI
Nom | Défaut | Modifiable | Historique
cli_server.color | "0" | INI_ALL |

Voici un éclaircissement sur l'utilisation des directives de configuration.

cli_server.color bool

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. Il est à noter que les références (c.à.d. "is_ref" est true) avec "refcount" 1, sont traitées comme si elles n'étaient pas des références (c.à.d. comme si "is_ref" était false). Si vous avez installé » Xdebug, vous pouvez afficher cette information en appelant xdebug_debug_zval().

Exemple #2 Affichage des informations zval

<?php
$a = "new string";
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 (ex. : lorsque la fonction se termine) ou lorsqu'un symbole est déalloué (ex. : par l'appel de unset()). 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' );
$b = 42;
xdebug_debug_zval( 'a' );
unset( $c );
xdebug_debug_zval( 'a' );
?>

L'exemple ci-dessus va afficher :

a: (refcount=3, is_ref=0)='new string'
a: (refcount=2, 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' );
?>

Résultat de l'exemple ci-dessus est 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éjà existant au tableau

<?php
$a = array( 'meaning' => 'life', 'number' => 42 );
$a['life'] = $a['meaning'];
xdebug_debug_zval( 'a' );
?>

Résultat de l'exemple ci-dessus est 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' );
?>

Résultat de l'exemple ci-dessus est 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' );
?>

Résultat de l'exemple ci-dessus est 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 ; cependant 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 nœud, 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_THRESHOLD_DEFAULT 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 ne 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éjà 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';
public $self;
}

$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';
public $self;
}

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% approximativement. 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'exé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é-exé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.


DTrace Traçage dynamique

Sommaire

  • Introduction à PHP et DTrace
  • Utiliser PHP et DTrace
  • Utiliser SystemTap avec les sondes statiques DTrace de PHP


Introduction à PHP et DTrace

DTrace est un framework de traçage toujours disponible, à faible surcharge, disponible sur plusieurs plateformes, incluant Solaris, macOS, Oracle Linux et BSD. DTrace peut tracer le comportement du système d'exploitation et l'exécution des programmes utilisateurs. Il peut afficher les valeurs des arguments et être utilisé pour déduire des statistiques de performance. Les sondes sont contrôlées par des scripts créés par l'utilisateur et écrits dans le langage de script DTrace D. Cela permet une analyse efficace des points de données.

Les sondes PHP qui ne sont pas activement surveillées par le script DTrace D de l'utilisateur ne contiennent pas de code instrumenté, il n'y a donc pas de dégradation des performances lors de l'exécution normale de l'application. Les sondes qui sont surveillées ont un coût de fonctionnement assez faible pour généralement permettre la surveillance de DTrace sur les systèmes de production.

PHP incorpore des sondes de "Traçage Statique Défini par l'Utilisateur" (USDT) qui sont déclenchées au moment de l'exécution. Par exemple, lorsqu'un script D surveille la sonde function-entry de PHP, alors, chaque fois qu'une fonction du script PHP est appelée, cette sonde est déclenchée et le code d'action du script D associé est exécuté. Ce code d'action pourrait, par exemple, imprimer les arguments de la sonde tels que l'emplacement du fichier source de la fonction PHP. L'action peut également regrouper des données comme le nombre de fois où chaque fonction est appelée.

Seules les sondes PHP USDT sont décrites ici. Référez-vous à la documentation externe générale et spécifique au système d'exploitation pour voir comment DTrace peut être utilisé pour tracer des fonctions arbitraires, et comment il peut être utilisé pour tracer le comportement du système d'exploitation. Notez que toutes les fonctionnalités de DTrace ne sont pas disponibles dans toutes les implémentations de DTrace.

Les sondes DTrace statiques dans PHP peuvent alternativement être utilisées avec la fonction SystemTap sur certaines distributions Linux.


Utiliser PHP et DTrace

PHP peut être configuré avec les sondes statiques DTrace sur les plateformes qui supportent le traçage dynamique DTrace.

Configurer PHP pour les sondes statiques de DTrace

Référez-vous à la documentation spécifique de la plateforme externe pour activer le support de DTrace du système d'exploitation DTrace. Par exemple, sur Oracle Linux démarrez un noyau UEK3 et faites :

# modprobe fasttrap
# chmod 666 /dev/dtrace/helper

Au lieu d'utiliser chmod, vous pouvez utiliser une règle de paquetage ACL pour limiter l'accès au périphérique à un utilisateur spécifique.

Construire PHP avec le paramètre de configuration --enable-dtrace:

# ./configure --enable-dtrace ...
# make
# make install

Cela permet d'activer les sondes statiques dans le cœur de PHP. Toutes les extensions PHP qui fournissent leurs propres sondes doivent être construites séparément en tant qu'extensions partagées.

Sondes statiques DTrace dans le cœur de PHP

Les sondes statiques suivantes sont disponibles dans PHP
Nom de la sonde | Description de la sonde | Arguments de la sonde
request-startup | Se déclenche lorsqu'une requête démarre. | char *file, char *request_uri, char *request_method
request-shutdown | Se déclenche lorsqu'une requête s'arrête. | char *file, char *request_uri, char *request_method
compile-file-entry | Se déclenche lorsque la compilation d'un script commence. | char *compile_file, char *compile_file_translated
compile-file-return | Se déclenche lorsque la compilation d'un script se termine. | char *compile_file, char *compile_file_translated
execute-entry | Se déclenche lorsqu'un tableau d'opcodes doit être exécuté. Par exemple, il se déclenche lors d'appels de fonction, d'inclusions et de reprises de générateur. | char *request_file, int lineno
execute-return | Se déclenche après l'exécution d'un tableau d'opcodes. | char *request_file, int lineno
function-entry | Se déclenche lorsque le moteur de PHP entre dans une fonction PHP ou un appel de méthode. | char *function_name, char *request_file, int lineno, char *classname, char *scope
function-return | Se déclenche lorsque le moteur PHP revient d'une fonction PHP ou d'un appel de méthode. | char *function_name, char *request_file, int lineno, char *classname, char *scope
exception-thrown | Se déclenche lorsqu'une exception est émise. | char *classname
exception-caught | Se déclenche lorsqu'une exception est attrapée. | char *classname
error | Se déclenche lorsqu'une erreur survient, quel que soit le niveau de error_reporting. | char *errormsg, char *request_file, int lineno

Les extensions PHP peuvent également disposer de sondes statiques supplémentaires.

Liste des sondes statiques DTrace de PHP

Pour lister les sondes disponibles, démarrez un processus PHP puis exécutez :

# dtrace -l

Le résultat sera similaire à celui qui suit :

   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

Les valeurs de la colonne Provider sont php et l'identifiant du processus PHP en cours d'exécution.

Si le serveur web Apache est en cours d'exécution, le nom du module peut être, par exemple, libphp5.so, et il y aurait plusieurs blocs de listes, un par processus Apache en cours d'exécution.

La colonne Fonction fait référence à l'implémentation interne en C de PHP, où chaque fournisseur est situé.

Si un processus PHP n'est pas en cours d'exécution, aucune sonde PHP ne sera affichée.

DTrace avec un exemple PHP

Cet exemple montre les bases du langage de script DTrace D.

Exemple #1 all_probes.d pour tracer toutes les sondes statiques PHP avec 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));
}

Ce script utilise l'option -Z de dtrace, ce qui lui permet d'être exécuté lorsqu'il n'y aucun processus PHP en cours d'execution. Si cette option était omise, le script se terminerait immédiatement parce qu'il sait qu'aucune des sondes à surveiller n'existe.

Le script trace tous les points de sonde statiques de PHP pendant la durée d'un script PHP en cours d'exécution. Exécutez le script D :

# ./all_probes.d

Exécutez un script ou une application PHP. Le script D de surveillance affichera les arguments de chaque sonde au fur et à mesure qu'elle se déclenche.

Lorsque la surveillance est terminée, le script D peut être interrompu par une commande CTRL+C

Sur les machines multi-CPU, l'ordre des sondes peut ne pas être séquentiel. Cela dépend du CPU qui a traité les sondes, et de la façon dont les threads migrent d'un CPU à l'autre. L'affichage des horodatages des sondes permet de réduire la confusion, par exemple :

php*:::function-entry
{
      printf("%lld: PHP function-entry ", walltimestamp);
      [ . . .]
}

Voir aussi

  • OCI8 et le traçage dynamique DTrace


Utiliser SystemTap avec les sondes statiques DTrace de PHP

Sur certaines distributions Linux, l'utilitaire de traçage SystemTap peut être utilisé pour tracer les sondes statiques DTrace de PHP. Ceci est disponible avec PHP 5.4.20 et PHP 5.5.

Installer PHP avec SystemTap

Installez le paquet de développement SDT de SystemTap:

# yum install systemtap-sdt-devel

Installer PHP avec les sondes DTrace activées:

# ./configure --enable-dtrace ...
# make

Liste des sondes statiques avec SystemTap

Les sondes statiques dans PHP peuvent être listées en utilisant stap:

# stap -l 'process.provider("php").mark("*")' -c 'sapi/cli/php -i'

Cela produit:

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 avec un Exemple PHP

Exemple #1 all_probes.stp pour tracer toutes les sondes statiques PHP avec 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));
}

Le script ci-dessus va tracer tous les points de sonde statique de PHP pendant toute la durée de l'exécution d'un script PHP :

# 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
    • APCu — APC User Cache
    • Componere
    • Gestion des erreurs — Gestion des erreurs et des journaux
    • FFI — Interface de fonction étrangère (Foreign Function Interface)
    • OPcache
    • Contrôle de l'affichage — Bufferisation de sortie
    • Options PHP et informations PHP
    • phpdbg — Interactive PHP Debugger
    • runkit7
    • uopz — Opérations utilisateurs pour Zend
    • WinCache — Windows Cache pour PHP
    • Xhprof — Profilage hiérarchique
    • Yac
  • Manipulation audio
    • OpenAL — Gestion Audio OpenAL
  • Services d'identification
    • Radius
  • Extensions spécifiques à la ligne de commande
    • Readline — GNU Readline
  • Extensions sur l'archivage et la compression
    • Bzip2
    • LZF
    • Phar
    • Rar — Archives RAR
    • Zip
    • Zlib — Compression Zlib
  • Extensions sur la cryptographie
    • Hash — HASH
    • Mcrypt
    • Mhash
    • OpenSSL
    • Table de hachage de mot de passe
    • Rnp
    • Sodium
  • 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
    • xattr
    • xdiff
  • Support du langage humain et de l'encodage de caractères
    • Enchant — Bibliothèque d'orthographe Enchant
    • Gender — Détermine le sexe d'un prénom
    • Gettext
    • iconv
    • intl — Fonctions d'internationalisation
    • Chaînes de caractères multioctets
    • Pspell
    • Recode — GNU Recode
  • Génération et traitement des images
    • Exif — Informations Exif
    • GD — Traitement des images et GD
    • Gmagick
    • ImageMagick — Traitement des images (ImageMagick)
  • Extensions relatives aux emails
    • IMAP — IMAP, POP3 et NNTP
    • Mail
    • Mailparse
  • Extensions sur les mathématiques
    • BC Math — Fonctions BCMath
    • GMP — GNU Multiple Precision
    • Math — Fonctions mathématiques
    • Statistics
    • Trader — Analyse technique pour les marchands
  • Affichage des données non-textuelles
    • FDF — Format de formulaire
    • GnuPG — GNU PG
    • wkhtmltox
    • PS — Création de document PostScript
    • RpmInfo
    • XLSWriter
  • Extensions sur le contrôle des processus
    • Eio
    • Ev
    • Expect
    • PCNTL — Contrôle du processus
    • POSIX
    • Exécution de programme — Système d'exécution de programme
    • parallel
    • pthreads
    • Semaphore — Sémaphore
    • Mémoire partagée
    • Sync
  • Autres extensions basiques
    • GeoIP — Localisation géographique des IPs
    • FANN — FANN (Fast Artificial Neural Network)
    • Igbinary
    • JSON — Notation Objet JavaScript
    • Simdjson
    • Lua
    • LuaSandbox
    • Misc. — Fonctions diverses
    • Random — Générateurs de nombres aléatoires et fonctions liées à l'aléatoire.
    • Seaslog
    • SPL — Bibliothèque standard PHP (SPL)
    • Flux
    • Swoole
    • Tidy
    • Tokenizer
    • URLs
    • V8js — Intégration du moteur Javascript V8
    • Yaml — Sérialisation de données YAML
    • Yaf — Yaf (i.e. Yet Another Framework)
    • Yaconf
    • Taint
    • Data Structures
    • var_representation
  • Autres services
    • cURL — Bibliothèque d'URL client
    • Event
    • FTP
    • Gearman
    • LDAP — Lightweight Directory Access Protocol
    • Memcache
    • Memcached
    • mqseries
    • Réseau
    • RRD — RRDtool
    • ScoutAPM
    • SNMP
    • Sockets
    • SSH2 — Fonctions Shell2 sécurisé
    • Stomp — Client Stomp
    • SVM — Support Vector Machine
    • SVN — Subversion
    • TCP — TCP Wrappers
    • Varnish
    • YAZ
    • 0MQ messaging — ZMQ
    • ZooKeeper
  • Extensions spécifiques aux moteurs de recherche
    • Solr — Apache Solr
  • Extensions spécifiques aux serveurs
    • Apache
    • Gestionnaire de processus FastCGI
  • Extensions sur les Sessions
    • Sessions — Gestion des sessions
  • Traitement du texte
    • CommonMark
    • Parle — Parsing and lexing
    • PCRE — Expressions régulières (compatible Perl)
    • ssdeep — Hachages flous ssdeep
    • Chaîne de caractères
  • Extensions relatives aux variables et aux types
    • Les tableaux
    • Classes/Objets — Les Classes/Objets
    • ctype — Vérification des types de caractères
    • Filter — Filtrage des données
    • Gestion des fonctions
    • Quickhash
    • Réflexion
    • Gestion des variables
  • Services Web
    • OAuth
    • SOAP
    • Yar — Yet Another RPC Framework
    • XML-RPC
  • Extensions pour Windows uniquement
    • COM — COM et .Net (Windows)
    • win32service
  • Manipulation XML
    • DOM — Model Objet d'un document
    • libxml
    • SimpleXML
    • WDDX
    • XMLDiff — XML : Différence et fusion
    • Analyseur syntaxique XML
    • XMLReader
    • XMLWriter
    • XSL
  • Extensions GUI
    • UI


Affecte le comportement de PHP

  • APCu — APC User Cache
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions APCu
    • APCUIterator — The APCUIterator class
  • Componere
    • Introduction
    • Installation/Configuration
    • Componere\Abstract\Definition — The Componere\Abstract\Definition class
    • Componere\Definition — The Componere\Definition class
    • Componere\Patch — The Componere\Patch class
    • Componere\Method — The Componere\Method class
    • Componere\Value — The Componere\Value class
    • Componere Fonctions
  • Gestion des erreurs — Gestion des erreurs et des journaux
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions sur la gestion des erreurs
  • FFI — Interface de fonction étrangère (Foreign Function Interface)
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • FFI — Interface principale vers le code C et les données
    • FFI\CData — Gestionnaire de données C
    • FFI\CType — Gestionnaire de type C
    • Exceptions FFI
    • FFI\ParserException — Exceptions de l'analyseur syntaxique FFI
  • OPcache
    • Introduction
    • Installation/Configuration
    • Preloading
    • Fonctions OPcache
  • Contrôle de l'affichage — Bufferisation de sortie
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Output Buffering
    • Flushing System Buffers
    • User-Level Output Buffers
    • 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
  • phpdbg — Interactive PHP Debugger
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • phpdbg Fonctions
  • runkit7
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • runkit7 Fonctions
  • uopz — Opérations utilisateurs pour Zend
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Uopz
  • 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
  • Yac
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Yac — La classe Yac


APC User Cache

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions APCu
    • apcu_add — Met en cache une nouvelle variable dans le dépôt de données
    • apcu_cache_info — Récupère les informations mises en cache dans le dépôt de données d'APCu
    • apcu_cas — Remplace une ancienne valeur par une nouvelle
    • apcu_clear_cache — Efface le cache APCu
    • apcu_dec — Décrémente un nombre stocké
    • apcu_delete — Retire une variable stockée du cache
    • apcu_enabled — Vérifie si APCu est utilisable dans l'environnement courant
    • apcu_entry — Récupère atomiquement ou génère une entrée de cache
    • apcu_exists — Vérifie si une entrée existe
    • apcu_fetch — Récupère une variable stockée dans le cache
    • apcu_inc — Incrémente un nombre stocké
    • apcu_key_info — Retourne des informations détaillées sur la clé de cache
    • apcu_sma_info — Retourne des informations sur l'Allocation de Mémoire Partagée d'APCu
    • apcu_store — Met en cache une variable dans le dépôt de données
  • APCUIterator — The APCUIterator class
    • APCUIterator::__construct — Construit un objet itérateur de la classe APCUIterator
    • APCUIterator::current — Retourne l'élément courant
    • APCUIterator::getTotalCount — Retourne le compte total
    • APCUIterator::getTotalHits — Retourne le nombre total d'accès au cache
    • APCUIterator::getTotalSize — Retourne la taille totale du cache
    • APCUIterator::key — Retourne la clé de l'élément courant
    • APCUIterator::next — Déplace le pointeur sur l'élément suivant
    • APCUIterator::rewind — Replace l'itérateur sur le premier élément
    • APCUIterator::valid — Vérifie si la position courante est valide


Introduction

APCu est un tableau associatif stocké en mémoire pour PHP. Les clés sont de type chaîne de caractères et les valeurs sont des variables PHP de tout type. APCu ne gère que la mise en cache de variables de l'espace utilisateur.

Le cache APCu est par processus sous Windows, donc lors de l'utilisation d'un SAPI basée sur les processus (plutôt que sur les thread), il ne sera pas partagé entre différents processus.

APCu, c'est APC sans la mise en cache du code opération.

La première version est 4.0.0, ce fut un embranchement logiciel de la tête de la branche maître d'APC de l'époque. La prise en charge de PHP 7 est disponible à partir de APCu 5.0.0. La prise en charge de PHP 8 est disponible à partir de APCu 5.1.19.


Installation/Configuration

Sommaire

  • Pré-requis
  • Installation
  • Configuration à l'exécution
  • Types de ressources


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

Aucune bibliothèque externe n'est nécessaire pour compiler cette extension.


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 : » https://pecl.php.net/package/apcu.

Astuce

PHP 7 a un module séparé (» apcu-bc) pour des raisons de rétrocompatibilité avec APC.

En mode rétrocompatibilité, APCu enregistre les fonctions APC applicables avec des prototypes rétrocompatibles.

Lorsqu'une fonction APC accepte le paramètre cache_type, ce dernier est ignoré par la version rétrocompatible de la fonction et omis du prototype de la version APCu.

Avertissement

A partir de PHP 8.0.0, apcu-bc n'est plus accepté.

Note: Avec Windows, APCu a besoin d'un chemin temporaire dans lequel le serveur web est autorisé à écrire. Il vérifie successivement les variables d'environnement TMP, TEMP et USERPROFILE dans cet ordre et termine en essayant le répertoire WINDOWS si aucune de ces variables n'a été définie.

Note: Pour plus de détails techniques approfondis sur l'implémentation, confère le » fichier TECHNOTES fourni par les développeurs .

Les sources d'APCu sont disponibles » ici.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Bien que les réglages par défaut d'APCu fonctionnent correctement sur de nombreuses installations, il est utile de penser à ajuster ces paramètres de configuration.

Une question importante pour la configuration d'APCu est quelle est la taille adéquate qui doit être allouée dans la mémoire à APCu. La directive ini qui contrôle ce paramètre est apc.shm_size. Le paragraphe ci-dessous est important pour répondre à cette question.

Une fois le serveur lancé, le script apc.php, disponible avec l'extension, peut être copié dans le document root et exécuté par le navigateur. Ce script fournit une analyse détaillée du fonctionnement interne de APCu. Si la bibliothèque GD est activée dans PHP alors le script peut afficher des graphiques pertinents.

Si APCu fonctionne, le nombre de Cache full count (à gauche) affichera le nombre de fois où le cache a atteint sa capacité maximale et a dû évacuer des entrées pour libérer de la mémoire. Pendant l'évacuation, si apc.ttl a été spécifié, APCu essaiera d'abord de supprimer les entrées expirées, c'est-à-dire les entrées dont le TTL a expiré ou les entrées qui n'ont pas de TTL défini et qui n'ont pas été consultées au cours des dernières apc.ttl secondes. Si apc.ttl n'a pas été défini ou si la suppression des entrées expirées n'a pas libéré suffisamment d'espace, APCu effacera l'intégralité du cache.

Le nombre d'évictions devrait être minimal dans un cache bien configuré. Si le cache est constamment rempli et donc libéré de force, le brassage résultant aura des effets préjudiciables sur les performances du script. Le moyen le plus simple de réduire ce nombre est d'allouer plus de mémoire à APCu.

Lorsque APCu est compilé avec mmap (Memory Mapping), il n'utilisera qu'un seul segment de mémoire, contrairement au cas où APCu est construit avec SHM (SysV Shared Memory) qui utilise plusieurs segments de mémoire. MMAP n'a pas de limite maximale comme SHM dans /proc/sys/kernel/shmmax. En général, l'utilisation de MMAP est recommandée car il réclame la mémoire plus vite lorsque le serveur web est redémarré et réduit l'impact sur l'allocation de mémoire au démarrage.

Options de configuration d'APCu
Nom | Défaut | Modifiable | Historique
apc.enabled | "1" | INI_SYSTEM |
apc.shm_segments | "1" | INI_SYSTEM |
apc.shm_size | "32M" | INI_SYSTEM |
apc.entries_hint | "4096" | INI_SYSTEM |
apc.ttl | "0" | INI_SYSTEM |
apc.gc_ttl | "3600" | INI_SYSTEM |
apc.mmap_file_mask | NULL | INI_SYSTEM |
apc.slam_defense | "1" | INI_SYSTEM |
apc.enable_cli | "0" | INI_SYSTEM |
apc.use_request_time | "0" | INI_ALL | Antérieurement à APCu 5.1.19, la valeur par défaut était "1".
apc.serializer | "php" | INI_SYSTEM | Antérieurement à APCu 5.1.15, la valeur par défaut était "default".
apc.coredump_unmap | "0" | INI_SYSTEM |
apc.preload_path | NULL | INI_SYSTEM |
Pour plus de détails sur les modes 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

apc.enabled peut être mis à 0 pour désactiver APC. Cela peut s'avérer utile lorsqu'APC est compilé statiquement dans PHP puisqu'il n'y a pas d'autre moyen de le désactiver (lorsque APC est compilé en tant que DSO, la ligne extension dans le fichier php.ini peut simplement être mise en commentaire).

apc.shm_segments int

Le nombre de segments de mémoire partagée à allouer au cache de compilation Si APC manque de mémoire partagée mais que apc.shm_size est mis à la valeur maximale autorisée par le système, alors augmenter cette valeur peut empêcher APC d'épuiser sa mémoire.

apc.shm_size string

La taille de chaque segment de mémoire partagée donnée en notation abrégée comme indiquée dans cette FAQ. Par défaut, certains systèmes (dont la plus part des variants de BSD) ont une limite très basse pour la taille d'un segment de mémoire partagée.

apc.entries_hint int

Un "indice" sur le nombre de variables distinctes qui peuvent être stockées. Mettre à zéro ou dans le doute omettre.

apc.ttl int

Considérer que les entrées de cache sans TTL explicite sont expirées si elles n'ont pas été consultées depuis autant de secondes. En effet, cela permet à ces entrées d'être opportunément supprimées lors d'une insertion dans le cache, ou avant une suppression complète. Notez que parce que la suppression est opportuniste, les entrées peuvent toujours être lisibles même si si elles sont plus anciennes que apc.ttl secondes. Ce paramètre n'a aucun effet sur les entrées de cache pour lesquelles un un TTL explicite est spécifié.

apc.gc_ttl int

La durée en seconde qu'une entrée de cache peut rester dans la liste du ramasse-miettes. Cette valeur fournit une sûreté intégrée dans le cas où un processus s'arrête pendant qu'il exécute le code d'un fichier source mis en cache; si ce fichier est modifié, la mémoire allouée pour l'ancienne version ne sera pas réclamée tant que la durée de vie n'est pas atteinte. Mettre à zéro pour désactiver cette fonctionnalité.

apc.mmap_file_mask string

Si APCu a été compilé avec l'option MMAP en utilisant --enable-mmap, ce paramètre reçoit le masque de fichier de type mktemp-style à passer au module mmap pour déterminer si la région de la mémoire utilisant mmap sera sauvegardée par le biais d'un fichier ou par celui de la mémoire partagée. Dans le cas où la sauvegarde se fait par le biais d'un fichier, le masque sera de la forme /tmp/apc.XXXXXX (avec exactement 6 X). Pour utiliser shm_open/mmap de la norme POSIX, le masque doit contenir .shm, comme dans l'exemple suivant: /apc.shm.XXXXXX. Ce paramètre peut être défini par /dev/zero pour utiliser l'interface /dev/zero du noyau avec une mémoire utilisant mmap anonymement. Laisser ce paramètre indéfini forcera un mmap anonyme.

apc.slam_defense int

Au démarrage ou lors de la modification d'un fichier dans un serveur très occupé, plusieurs processus peuvent entrer en compétition pour mettre en cache un même fichier en même temps. Cette option permet de définir la proportion des processus qui ne tenteront pas de mettre en cache le même fichier au même instant, exprimée en pourcentage. Autrement dit, elle définit la probabilité qu'un seul processus n'essaie pas d'accéder au cache. Par exemple définir apc.slam_defense à 75 signifie qu'il y a 75% de chance pour qu'un processus ne mette pas en cache un fichier non présent dans le cache. Donc plus cette valeur est haute et plus la protection contre le cache slam est importante. Mettre cette valeur à 0 désactive cette option.

apc.enable_cli int

Principalement utilisé pour les tests et le débogage. Définir ce paramètre permet d'activer APC dans la version CLI de PHP. En temps normal, il n'est pas idéal de créer, alimenter et détruire le cache APC à chaque requête CLI. Cependant, dans de nombreux scénarios de test il est utile de pouvoir activer facilement APC dans la version CLI de PHP.

apc.serializer string

Ce paramètre permet à APC d'utiliser un sérialiseur tiers

apc.coredump_unmap bool

Active la gestion par APC de signaux, tels que SIGSEGV, qui provoquent l'écriture de fichiers core dump lorsqu'ils sont reçus. Quand ces signaux sont reçus, APC essaiera de désallouer le segment de mémoire partagée réservé à mmap dans le but de l'exclure du fichier core dump. Cette option peut améliorer la stabilité du système lorsque des signaux fatals sont reçus et qu'APC est configuré avec un long segment de mémoire partagée.

Avertissement

Cette option est potentiellement dangereuse. Désallouer un segment de mémoire partagée utilisé par mmap dans le gestionnaire de signaux fatals peut causer un comportement imprévisible si une erreur fatale survient.

Note:

Bien que certains noyaux peuvent fournir la possibilité d'ignorer de nombreux types de mémoire partagée lorsqu'ils génèrent un fichier core dump, ces implémentations peuvent aussi ignorer d'importants segments de mémoire partagée tels que le tableau de bord d'Apache.

apc.preload_path string

Optionnel, définit un chemin vers le répertoire où APC chargera les données du cache au démarrage.

apc.use_request_time bool

Utilise la requête start time de l'interface SAPI pour la durée de vie (TTL).


  • « 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_ITER_ALL (int)
APC_ITER_ATIME (int)
APC_ITER_CTIME (int)
APC_ITER_DEVICE (int)
APC_ITER_DTIME (int)
APC_ITER_FILENAME (int)
APC_ITER_INODE (int)
APC_ITER_KEY (int)
APC_ITER_MD5 (int)
APC_ITER_MEM_SIZE (int)
APC_ITER_MTIME (int)
APC_ITER_NONE (int)
APC_ITER_NUM_HITS (int)
APC_ITER_REFCOUNT (int)
APC_ITER_TTL (int)
APC_ITER_TYPE (int)
APC_ITER_VALUE (int)
APC_LIST_ACTIVE (int)
APC_LIST_DELETED (int)


Fonctions APCu

Sommaire

  • apcu_add — Met en cache une nouvelle variable dans le dépôt de données
  • apcu_cache_info — Récupère les informations mises en cache dans le dépôt de données d'APCu
  • apcu_cas — Remplace une ancienne valeur par une nouvelle
  • apcu_clear_cache — Efface le cache APCu
  • apcu_dec — Décrémente un nombre stocké
  • apcu_delete — Retire une variable stockée du cache
  • apcu_enabled — Vérifie si APCu est utilisable dans l'environnement courant
  • apcu_entry — Récupère atomiquement ou génère une entrée de cache
  • apcu_exists — Vérifie si une entrée existe
  • apcu_fetch — Récupère une variable stockée dans le cache
  • apcu_inc — Incrémente un nombre stocké
  • apcu_key_info — Retourne des informations détaillées sur la clé de cache
  • apcu_sma_info — Retourne des informations sur l'Allocation de Mémoire Partagée d'APCu
  • apcu_store — Met en cache une variable dans le dépôt de données


Met en cache une nouvelle variable dans le dépôt de données

  • « Fonctions APCu
  • apcu_cache_info »
  • PHP Manual
  • Fonctions APCu
  • Met en cache une nouvelle variable dans le dépôt de données

apcu_add

(PECL apcu >= 4.0.0)

apcu_add — Met en cache une nouvelle variable dans le dépôt de données

Description

apcu_add(string $key, mixed $var, int $ttl = 0): bool
apcu_add(array $values, mixed $unused = NULL, int $ttl = 0): array

Met en cache une variable dans le dépôt de données, seulement si elle n'a pas été déjà stockée.

Note: Contrairement à de nombreux autres mécanismes dans PHP, les variables stockées utilisant apcu_add() persisteront entre les requêtes (jusqu'à ce que leurs valeurs soient retirées du cache).

Liste de paramètres

key

Stocke la variable en utilisant ce nom de clé. Chaque clé est unique dans le cache, essayer d'utiliser apcu_add() pour stocker une donnée avec une valeur du paramètre key déjà existante ne va pas réécrire sur la donnée mais va retourner la valeur false. (C'est l'unique différence entre les fonctions apcu_add() et apcu_store().)

var

La variable à stocker.

ttl

Durée de vie; stocke la variable var dans le cache pour une durée de ttl secondes. Après l'expiration de ttl, la variable stockée sera retirée du cache (à la prochaine requête). Si aucune valeur n'est passée à ttl (ou si la valeur de ttl est 0), la variable persistera jusqu'à qu'elle soit retirée manuellement du cache, ou, sinon, elle échouera à sortir du cache (lors d'un effaçage, redémarrage, etc.).

values

Les noms sont fournis par les clés du tableau values, les variables par les valeurs.

Valeurs de retour

Retourne TRUE si une variable a effectivement été ajoutée au cache, FALSE sinon. La seconde syntaxe retourne un tableau avec les clés erronées.

Exemples

Exemple #1 Un exemple avec apcu_add()

<?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() - Met en cache une variable dans le dépôt de données
  • apcu_fetch() - Récupère une variable stockée dans le cache
  • apcu_delete() - Retire une variable stockée du cache


Récupère les informations mises en cache dans le dépôt de données d'APCu

  • « apcu_add
  • apcu_cas »
  • PHP Manual
  • Fonctions APCu
  • Récupère les informations mises en cache dans le dépôt de données d'APCu

apcu_cache_info

(PECL apcu >= 4.0.0)

apcu_cache_info — Récupère les informations mises en cache dans le dépôt de données d'APCu

Description

apcu_cache_info(bool $limited = false): array|false

Récupère les informations et les méta-données mises en cache dans le dépôt de données d'APCu.

Liste de paramètres

limited

Si la valeur de limited est true, la valeur retournée exclura la liste individuelle des entrées du cache. Cela est utile lorsqu'une optimisation des appels à des fins statistiques est tentée.

Valeurs de retour

Tableau des données (et méta-données) mises en cache ou false si une erreur survient

Note: apcu_cache_info() émettra un avertissement s'il est incapable de retrouver les données du cache APC. Cela se produit typiquement lorsqu'APC n'est pas activé.

Historique

Version | Description
PECL apcu 3.0.11 | Le paramètre limited est introduit.
PECL apcu 3.0.16 | L'option "filehits" pour le paramètre cache_type est introduit.

Exemples

Exemple #1 Un exemple avec apcu_cache_info()

<?php
print_r(apcu_cache_info());
?>

Résultat de l'exemple ci-dessus est 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 (...itère pour chaque fichier mis en cache)
)

Voir aussi

  • Directives de configuration d'APCu
  • APCUIterator::getTotalSize() - Retourne la taille totale du cache
  • APCUIterator::getTotalHits() - Retourne le nombre total d'accès au cache
  • APCUIterator::getTotalCount() - Retourne le compte total


Remplace une ancienne valeur par une nouvelle

  • « apcu_cache_info
  • apcu_clear_cache »
  • PHP Manual
  • Fonctions APCu
  • Remplace une ancienne valeur par une nouvelle

apcu_cas

(PECL apcu >= 4.0.0)

apcu_cas — Remplace une ancienne valeur par une nouvelle

Description

apcu_cas(string $key, int $old, int $new): bool

apcu_cas() remplace une valeur entière déjà existante, si la valeur du paramètre old correspond à celle actuellement stockée, par la valeur du paramètre new.

Liste de paramètres

key

La clé de la valeur à remplacer.

old

L'ancienne valeur (la valeur actuellement stockée).

new

La nouvelle valeur.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 Un exemple avec apcu_cas()

<?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;
?>

Résultat de l'exemple ci-dessus est 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() - Décrémente un nombre stocké
  • apcu_store() - Met en cache une variable dans le dépôt de données


Efface le cache APCu

  • « apcu_cas
  • apcu_dec »
  • PHP Manual
  • Fonctions APCu
  • Efface le cache APCu

apcu_clear_cache

(PECL apcu >= 4.0.0)

apcu_clear_cache — Efface le cache APCu

Description

apcu_clear_cache(): bool

Efface le cache.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne toujours la valeur true.

Voir aussi

  • apcu_cache_info() - Récupère les informations mises en cache dans le dépôt de données d'APCu


Décrémente un nombre stocké

  • « apcu_clear_cache
  • apcu_delete »
  • PHP Manual
  • Fonctions APCu
  • Décrémente un nombre stocké

apcu_dec

(PECL apcu >= 4.0.0)

apcu_dec — Décrémente un nombre stocké

Description

apcu_dec(
string $key,
int $step = 1,
bool &$success = ?,
int $ttl = 0
): int|false

Décrémente une valeur entière stockée.

Liste de paramètres

key

La clé de la valeur qui doit être décrémentée.

step

Le pas de décrémentation ou la valeur à soustraire.

success

Optionnel, passe la valeur booléenne succès ou échec à la variable référencée.

ttl

Durée de vie à utiliser si la fonction insère une nouvelle variable (au lieu de décrémenter une variable existante).

Valeurs de retour

Retourne la valeur courante associée à la clé key en cas de succès, ou false si une erreur survient

Exemples

Exemple #1 Un exemple avec apcu_dec()

<?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);
?>

Résultat de l'exemple ci-dessus est 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() - Incrémente un nombre stocké


Retire une variable stockée du cache

  • « apcu_dec
  • apcu_enabled »
  • PHP Manual
  • Fonctions APCu
  • Retire une variable stockée du cache

apcu_delete

(PECL apcu >= 4.0.0)

apcu_delete — Retire une variable stockée du cache

Description

apcu_delete(mixed $key): mixed

Retire une variable stockée du cache.

Liste de paramètres

key

Le paramètre key peut être soit une chaîne de caractères pour une seule clé, soit un tableau de chaîne de caractères pour plusieurs clés, soit un objet de la classe APCUIterator.

Valeurs de retour

Si le paramètre key est un tableau, alors la valeur retournée est le tableau indexé des clés. Sinon la valeur true est retournée en cas de succès, ou false en cas d'échec.

Exemples

Exemple #1 Un exemple avec apcu_delete()

<?php
$bar = 'BAR';
apcu_store('foo', $bar);
apcu_delete('foo');
// c'est clairement inutile sous cette forme

// Autrement efface plusieurs clés.
apcu_delete(['foo', 'bar', 'baz']);

// Ou utilise un Itérateur avec une expression régulière.
apcu_delete(new APCUIterator('#^myprefix_#'));
?>

Voir aussi

  • apcu_store() - Met en cache une variable dans le dépôt de données
  • apcu_fetch() - Récupère une variable stockée dans le cache
  • apcu_clear_cache() - Efface le cache APCu
  • APCUIterator


Vérifie si APCu est utilisable dans l'environnement courant

  • « apcu_delete
  • apcu_entry »
  • PHP Manual
  • Fonctions APCu
  • Vérifie si APCu est utilisable dans l'environnement courant

apcu_enabled

(PECL apcu >= 4.0.3)

apcu_enabled — Vérifie si APCu est utilisable dans l'environnement courant

Description

apcu_enabled(): bool

Vérifie si APCu est utilisable dans l'environnement courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la valeur true si APCu est utilisable dans l'environnement courant, ou false sinon.


Récupère atomiquement ou génère une entrée de cache

  • « apcu_enabled
  • apcu_exists »
  • PHP Manual
  • Fonctions APCu
  • Récupère atomiquement ou génère une entrée de cache

apcu_entry

(PECL apcu >= 5.1.0)

apcu_entry — Récupère atomiquement ou génère une entrée de cache

Description

apcu_entry(string $key, callable $generator, int $ttl = 0): mixed

Tente de récupérer atomiquement la valeur indexée par la clé key dans le cache. Si elle ne peut pas être récupérée, la fonction passée à generator est appelée, avec pour unique argument la valeur contenue dans key. La valeur de retour de l'appel est ensuite mise en cache avec le paramètre optionnel ttl, puis rend la main.

Note: Lorsque le contrôle entre dans apcu_entry() le verrou du cache est acquis de façon exclusive. Il est libéré lorsque le contrôle quitte apcu_entry(): Plus précisément, le corps de la fonction passée à generator devient une section critique, ce qui interdit à deux processus d'exécuter la même partie du code concurrentiellement. En outre, il interdit l'exécution concurrentielle de tout autre fonction APCu, puisqu'elle acquerra le même verrou.

Avertissement

La seule fonction qui peut être appelée en toute sécurité par generator est apcu_entry().

Liste de paramètres

key

Clé d'une entrée de cache.

generator

Un paramètre de type callable qui prend key pour unique argument et retourne la valeur à mettre en cache.

ttl

Durée de vie; stocke la variable var dans le cache pour une durée de ttl secondes. Après l'expiration de ttl, la variable stockée sera retirée du cache (à la prochaine requête). Si aucune valeur n'est passée au paramètre ttl (ou si la valeur de ttl est 0), la variable persistera jusqu'à qu'elle soit retirée manuellement du cache, ou, sinon, elle échouera à sortir du cache (lors d'un effaçage, redémarrage, etc.).

Valeurs de retour

Retourne la valeur mise en cache.

Exemples

Exemple #1 Un exemple avec apcu_entry()

<?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() - Met en cache une variable dans le dépôt de données
  • apcu_fetch() - Récupère une variable stockée dans le cache
  • apcu_delete() - Retire une variable stockée du cache


Vérifie si une entrée existe

  • « apcu_entry
  • apcu_fetch »
  • PHP Manual
  • Fonctions APCu
  • Vérifie si une entrée existe

apcu_exists

(PECL apcu >= 4.0.0)

apcu_exists — Vérifie si une entrée existe

Description

apcu_exists(mixed $keys): mixed

Vérifie si une ou plusieurs entrées APCu existent.

Liste de paramètres

keys

Une chaîne de caractères ou un tableau de chaînes de caractères qui contient les clés.

Valeurs de retour

Retourne la valeur true si la clé existe, ou false sinon. Ou bien, si un tableau a été passé à keys, alors la valeur retournée est un tableau contenant toutes les clés existantes, ou un tableau vide si aucune n'existe.

Exemples

Exemple #1 Un exemple avec apcu_exists()

<?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);

?>

Résultat de l'exemple ci-dessus est similaire à :

Foo exists: apple
Baz does not exist
array(2) {
  ["foo"]=>
  bool(true)
  ["bar"]=>
  bool(true)
}

Voir aussi

  • apcu_cache_info() - Récupère les informations mises en cache dans le dépôt de données d'APCu
  • apcu_fetch() - Récupère une variable stockée dans le cache


Récupère une variable stockée dans le cache

  • « apcu_exists
  • apcu_inc »
  • PHP Manual
  • Fonctions APCu
  • Récupère une variable stockée dans le cache

apcu_fetch

(PECL apcu >= 4.0.0)

apcu_fetch — Récupère une variable stockée dans le cache

Description

apcu_fetch(mixed $key, bool &$success = ?): mixed

Récupère une entrée du cache.

Liste de paramètres

key

La clé key utilisée pour stocker la valeur (avec apcu_store()). Si un tableau est passé alors chaque élément est récupéré et retourné.

success

Définie par la valeur true en cas de succès et false en cas d'échec.

Valeurs de retour

La variable ou le tableau de variables stocké en cas de succès; false en cas d'échec.

Historique

Version | Description
PECL apcu 3.0.17 | Le paramètre success a été ajouté.

Exemples

Exemple #1 Un exemple avec apcu_fetch()

<?php
$bar = 'BAR';
apcu_store('foo', $bar);
var_dump(apcu_fetch('foo'));
?>

L'exemple ci-dessus va afficher :

string(3) "BAR"

Voir aussi

  • apcu_store() - Met en cache une variable dans le dépôt de données
  • apcu_delete() - Retire une variable stockée du cache
  • APCUIterator


Incrémente un nombre stocké

  • « apcu_fetch
  • apcu_key_info »
  • PHP Manual
  • Fonctions APCu
  • Incrémente un nombre stocké

apcu_inc

(PECL apcu >= 4.0.0)

apcu_inc — Incrémente un nombre stocké

Description

apcu_inc(
string $key,
int $step = 1,
bool &$success = ?,
int $ttl = 0
): int|false

Incrémente un nombre stocké.

Liste de paramètres

key

La clé de la valeur qui doit être incrémentée.

step

Le pas d'incrémentation ou la valeur à ajouter.

success

Optionnel, passe la valeur booléenne succès ou échec à la variable référencée.

ttl

Durée de vie à utiliser si la fonction insère une nouvelle variable (au lieu d'incrémenter une variable existante).

Valeurs de retour

Retourne la valeur courante associée à la clé key en cas de succès, ou false si une erreur survient

Exemples

Exemple #1 Un exemple avec apcu_inc()

<?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);
?>

Résultat de l'exemple ci-dessus est similaire à :

Let's do something with success
42
43
53
63
bool(true)
Now, let's fail

bool(false)
bool(false)

Voir aussi

  • apcu_dec() - Décrémente un nombre stocké


Retourne des informations détaillées sur la clé de cache

  • « apcu_inc
  • apcu_sma_info »
  • PHP Manual
  • Fonctions APCu
  • Retourne des informations détaillées sur la clé de cache

apcu_key_info

(No version information available, might only be in Git)

apcu_key_info — Retourne des informations détaillées sur la clé de cache

Description

apcu_key_info(string $key): ?array

Retourne des informations détaillées sur la clé de cache.

Liste de paramètres

key

Nom de la clé.

Valeurs de retour

Un tableau contenant des informations détaillées sur la clé de cache, ou la valeur null si la clé n'existe pas.

Exemples

Exemple #1 Un exemple avec apcu_key_info()

<?php
apcu_add('a','b');
var_dump(apcu_key_info('a'));
?>

L'exemple ci-dessus va afficher :

array(7) {
  ["hits"]=>
  int(0)
  ["access_time"]=>
  int(1606701783)
  ["mtime"]=>
  int(1606701783)
  ["creation_time"]=>
  int(1606701783)
  ["deletion_time"]=>
  int(0)
  ["ttl"]=>
  int(0)
  ["refs"]=>
  int(0)
}

Voir aussi

  • apcu_store() - Met en cache une variable dans le dépôt de données
  • apcu_fetch() - Récupère une variable stockée dans le cache
  • apcu_delete() - Retire une variable stockée du cache


Retourne des informations sur l'Allocation de Mémoire Partagée d'APCu

  • « apcu_key_info
  • apcu_store »
  • PHP Manual
  • Fonctions APCu
  • Retourne des informations sur l'Allocation de Mémoire Partagée d'APCu

apcu_sma_info

(PECL apcu >= 4.0.0)

apcu_sma_info — Retourne des informations sur l'Allocation de Mémoire Partagée d'APCu

Description

apcu_sma_info(bool $limited = false): array|false

Retourne des informations sur l'Allocation de Mémoire Partagée d'APCu.

Liste de paramètres

limited

Lorsque la valeur false est passée (par défaut) à ce paramètre, la fonction apcu_sma_info() retourne des informations détaillées sur chaque segment.

Valeurs de retour

Un tableau de données sur l'Allocation de Mémoire Partagée; false en cas d'échec.

Exemples

Exemple #1 Un exemple avec apcu_sma_info()

<?php
print_r(apcu_sma_info());
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [num_seg] => 1
    [seg_size] => 31457280
    [avail_mem] => 31448408
    [block_lists] => Array
        (
            [0] => Array
                (
                    [0] => Array
                        (
                            [size] => 31448408
                            [offset] => 8864
                        )

                )

        )

)

Voir aussi

  • Directives de configuration d'APCu


Met en cache une variable dans le dépôt de données

  • « apcu_sma_info
  • APCUIterator »
  • PHP Manual
  • Fonctions APCu
  • Met en cache une variable dans le dépôt de données

apcu_store

(PECL apcu >= 4.0.0)

apcu_store — Met en cache une variable dans le dépôt de données

Description

apcu_store(string $key, mixed $var, int $ttl = 0): bool
apcu_store(array $values, mixed $unused = NULL, int $ttl = 0): array

Met en cache une variable dans le dépôt de données.

Note: Contrairement à de nombreux autres mécanismes dans PHP, les variables stockées utilisant apcu_store() persisteront entre les requêtes (jusqu'à ce que leurs valeurs soient retirées du cache).

Liste de paramètres

key

Stocke la variable en utilisant ce nom de clé. Chaque clé est unique dans le cache, stocker une seconde valeur avec le même paramètre key va réécrire sur la valeur originale.

var

La variable à stocker.

ttl

Durée de vie; stocke la variable var dans le cache pour une durée de ttl secondes. Après l'expiration de ttl, la variable stockée sera retirée du cache (à la prochaine requête). Si aucune valeur n'est passée au paramètre ttl (ou si la valeur de ttl est 0), la variable persistera jusqu'à qu'elle soit retirée manuellement du cache, ou, sinon, elle échouera à sortir du cache (lors d'un effaçage, redémarrage, etc.).

values

Les noms sont fournis par les clés du tableau values, les variables par les 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 erronées.

Exemples

Exemple #1 Un exemple avec apcu_store()

<?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() - Met en cache une nouvelle variable dans le dépôt de données
  • apcu_fetch() - Récupère une variable stockée dans le cache
  • apcu_delete() - Retire une variable stockée du cache


The APCUIterator class

(PECL apcu >= 5.0.0)

Introduction

La classe APCUIterator facilite le parcours des caches APCu de grandes tailles. Cela est utile car il permet de les parcourir par étapes, tout en récupérant un nombre défini d'entrées par instance de verrouillage. Ainsi cela libère les verrous de cache pour d'autres activités au lieu de bloquer tout le cache pour récupérer 100 entrées (par défaut). D'autre part, le filtrage par expressions régulières est plus efficace car leur manipulation a été déplacée au niveau du C.

Synopsis de la classe

class APCUIterator implements Iterator {
/* Méthodes */
public __construct(
array|string|null $search = null,
int $format = APC_ITER_ALL,
int $chunk_size = 100,
int $list = APC_LIST_ACTIVE
)
public current(): mixed
public getTotalCount(): int
public getTotalHits(): int
public getTotalSize(): int
public key(): string
public next(): bool
public rewind(): void
public valid(): bool
}

Sommaire

  • APCUIterator::__construct — Construit un objet itérateur de la classe APCUIterator
  • APCUIterator::current — Retourne l'élément courant
  • APCUIterator::getTotalCount — Retourne le compte total
  • APCUIterator::getTotalHits — Retourne le nombre total d'accès au cache
  • APCUIterator::getTotalSize — Retourne la taille totale du cache
  • APCUIterator::key — Retourne la clé de l'élément courant
  • APCUIterator::next — Déplace le pointeur sur l'élément suivant
  • APCUIterator::rewind — Replace l'itérateur sur le premier élément
  • APCUIterator::valid — Vérifie si la position courante est valide


Construit un objet itérateur de la classe APCUIterator

  • « APCUIterator
  • APCUIterator::current »
  • PHP Manual
  • APCUIterator
  • Construit un objet itérateur de la classe APCUIterator

APCUIterator::__construct

(PECL apcu >= 5.0.0)

APCUIterator::__construct — Construit un objet itérateur de la classe APCUIterator

Description

public APCUIterator::__construct(
array|string|null $search = null,
int $format = APC_ITER_ALL,
int $chunk_size = 100,
int $list = APC_LIST_ACTIVE
)

Construit un objet de la classe APCUIterator.

Liste de paramètres

search

Soit une expression régulière PCRE qui filtre le nom des clés APCu, donnée sous la forme d'une chaîne de caractères. Soit un tableau de chaîne de caractères contenant des noms de clés APCu. Ou, bien éventuellement, la valeur null, pour sauter l'étape de recherche.

format

Le format souhaité, configuré avec une ou plusieurs des constantes prédéfinies APC_ITER_*.

chunk_size

La taille d'un tronçon. La valeur de ce paramètre doit être plus grand que 0. La valeur par défaut est 100.

list

Le type de liste. Le paramètre peut prendre soit la valeur APC_LIST_ACTIVE ou bien la valeur APC_LIST_DELETED.

Exemples

Exemple #1 Un exemple avec APCUIterator::__construct()

<?php
foreach (new APCUIterator('/^counter\./') as $counter) {
echo "$counter[key]: $counter[value]\n";
apc_dec($counter['key'], $counter['value']);
}
?>

Voir aussi

  • apcu_exists() - Vérifie si une entrée existe
  • apcu_cache_info() - Récupère les informations mises en cache dans le dépôt de données d'APCu


Retourne l'élément courant

  • « APCUIterator::__construct
  • APCUIterator::getTotalCount »
  • PHP Manual
  • APCUIterator
  • Retourne l'élément courant

APCUIterator::current

(PECL apcu >= 5.0.0)

APCUIterator::current — Retourne l'élément courant

Description

public APCUIterator::current(): mixed

Retourne l'élément courant de la liste de APCUIterator.

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 bien la valeur false si l'un des trois cas suivants se produit: le pointeur a dépassé le dernier élément, il n'y a pas d'élément dans la liste ou la fonction a échouée.

Voir aussi

  • APCUIterator::next() - Déplace le pointeur sur l'élément suivant
  • Iterator::current() - Retourne l'élément courant


Retourne le compte total

  • « APCUIterator::current
  • APCUIterator::getTotalHits »
  • PHP Manual
  • APCUIterator
  • Retourne le compte total

APCUIterator::getTotalCount

(PECL apcu >= 5.0.0)

APCUIterator::getTotalCount — Retourne le compte total

Description

public APCUIterator::getTotalCount(): int

Retourne le compte total.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le compte total.

Voir aussi

  • APCUIterator::getTotalHits() - Retourne le nombre total d'accès au cache
  • APCUIterator::getTotalSize() - Retourne la taille totale du cache
  • apcu_cache_info() - Récupère les informations mises en cache dans le dépôt de données d'APCu


Retourne le nombre total d'accès au cache

  • « APCUIterator::getTotalCount
  • APCUIterator::getTotalSize »
  • PHP Manual
  • APCUIterator
  • Retourne le nombre total d'accès au cache

APCUIterator::getTotalHits

(PECL apcu >= 5.0.0)

APCUIterator::getTotalHits — Retourne le nombre total d'accès au cache

Description

public APCUIterator::getTotalHits(): int

Retourne le nombre total d'accès au cache.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre total d'accès au cache en cas de succès ou false en cas d'échec.

Voir aussi

  • APCUIterator::getTotalCount() - Retourne le compte total
  • APCUIterator::getTotalSize() - Retourne la taille totale du cache
  • apcu_cache_info() - Récupère les informations mises en cache dans le dépôt de données d'APCu


Retourne la taille totale du cache

  • « APCUIterator::getTotalHits
  • APCUIterator::key »
  • PHP Manual
  • APCUIterator
  • Retourne la taille totale du cache

APCUIterator::getTotalSize

(PECL apcu >= 5.0.0)

APCUIterator::getTotalSize — Retourne la taille totale du cache

Description

public APCUIterator::getTotalSize(): int

Retourne la taille totale du cache.

Avertissement

Cette fonction est actuellement non documentée ; 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

  • APCUIterator::getTotalCount() - Retourne le compte total
  • APCUIterator::getTotalHits() - Retourne le nombre total d'accès au cache
  • apc_cache_info()


Retourne la clé de l'élément courant

  • « APCUIterator::getTotalSize
  • APCUIterator::next »
  • PHP Manual
  • APCUIterator
  • Retourne la clé de l'élément courant

APCUIterator::key

(PECL apcu >= 5.0.0)

APCUIterator::key — Retourne la clé de l'élément courant

Description

public APCUIterator::key(): string

Retourne la clé de l'élément courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la clé en cas de succès ou false en cas d'échec.

Voir aussi

  • APCUIterator::current() - Retourne l'élément courant
  • Iterator::key() - Retourne la clé de l'élément courant


Déplace le pointeur sur l'élément suivant

  • « APCUIterator::key
  • APCUIterator::rewind »
  • PHP Manual
  • APCUIterator
  • Déplace le pointeur sur l'élément suivant

APCUIterator::next

(PECL apcu >= 5.0.0)

APCUIterator::next — Déplace le pointeur sur l'élément suivant

Description

public APCUIterator::next(): bool

Déplace le pointeur de l'itérateur sur 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

  • APCUIterator::current() - Retourne l'élément courant
  • APCUIterator::rewind() - Replace l'itérateur sur le premier élément
  • Iterator::next() - Se déplace sur l'élément suivant


Replace l'itérateur sur le premier élément

  • « APCUIterator::next
  • APCUIterator::valid »
  • PHP Manual
  • APCUIterator
  • Replace l'itérateur sur le premier élément

APCUIterator::rewind

(PECL apcu >= 5.0.0)

APCUIterator::rewind — Replace l'itérateur sur le premier élément

Description

public APCUIterator::rewind(): void

Replace 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

  • APCUIterator::next() - Déplace le pointeur sur l'élément suivant
  • Iterator::next() - Se déplace sur l'élément suivant


Vérifie si la position courante est valide

  • « APCUIterator::rewind
  • Componere »
  • PHP Manual
  • APCUIterator
  • Vérifie si la position courante est valide

APCUIterator::valid

(PECL apcu >= 5.0.0)

APCUIterator::valid — Vérifie si la position courante est valide

Description

public APCUIterator::valid(): bool

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 la valeur true si la position courante de l'itérateur est valide, sinon retourne false.

Voir aussi

  • APCUIterator::current() - Retourne l'élément courant
  • Iterator::valid() - Vérifie si la position courante est valide


Componere

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
  • Componere\Abstract\Definition — The Componere\Abstract\Definition class
    • Componere\Abstract\Definition::addInterface — Add Interface
    • Componere\Abstract\Definition::addMethod — Add Method
    • Componere\Abstract\Definition::addTrait — Add Trait
    • Componere\Abstract\Definition::getReflector — Reflection
  • Componere\Definition — The Componere\Definition class
    • Componere\Definition::__construct — Definition Construction
    • Componere\Definition::addConstant — Add Constant
    • Componere\Definition::addProperty — Add Property
    • Componere\Definition::register — Registration
    • Componere\Definition::isRegistered — State Detection
    • Componere\Definition::getClosure — Get Closure
    • Componere\Definition::getClosures — Get Closures
  • Componere\Patch — The Componere\Patch class
    • Componere\Patch::__construct — Patch Construction
    • Componere\Patch::apply — Application
    • Componere\Patch::revert — Reversal
    • Componere\Patch::isApplied — State Detection
    • Componere\Patch::derive — Patch Derivation
    • Componere\Patch::getClosure — Get Closure
    • Componere\Patch::getClosures — Get Closures
  • Componere\Method — The Componere\Method class
    • Componere\Method::__construct — Method Construction
    • Componere\Method::setPrivate — Accessibility Modification
    • Componere\Method::setProtected — Accessibility Modification
    • Componere\Method::setStatic — Accessibility Modification
    • Componere\Method::getReflector — Reflection
  • Componere\Value — The Componere\Value class
    • Componere\Value::__construct — Value Construction
    • Componere\Value::setPrivate — Accessibility Modification
    • Componere\Value::setProtected — Accessibility Modification
    • Componere\Value::setStatic — Accessibility Modification
    • Componere\Value::isPrivate — Accessibility Detection
    • Componere\Value::isProtected — Accessibility Detection
    • Componere\Value::isStatic — Accessibility Detection
    • Componere\Value::hasDefault — Value Interaction
  • Componere Fonctions
    • Componere\cast — Casting
    • Componere\cast_by_ref — Casting


Introduction

Componere (latin, English: compose) targets production environments and provides an API for composition of classes, monkey patching, and casting.

Composition:

Componere\Definition is used to define (or redefine) a class at runtime; The class can then be registered, and in the case of redefinition it replaces the original class for as long as the Componere\Definition exists.

public Componere\Definition::__construct(string $name)
public Componere\Definition::__construct(string $name, string $parent)
public Componere\Definition::__construct(string $name, array $interfaces)
public Componere\Definition::__construct(string $name, string $parent, array $interfaces)

Patching:

Componere\Patch is used to change the class of a specific instance of an object at runtime; Upon application the patch will remain applied for as long as the Componere\Patch exists, and can be reverted explicitly.

public Componere\Patch::__construct(object $instance)
public Componere\Patch::__construct(object $instance, array $interfaces)

Casting:

Componere\ casting functions can cast among user defined compatible types; Where compatible means Type is sub or super to the type of object.

Componere\cast(Type $type, $object): Type
Componere\cast_by_ref(Type $type, $object): Type


  • « Introduction
  • Pré-requis »
  • PHP Manual
  • Componere
  • Installation/Configuration

Installation/Configuration

Sommaire

  • Pré-requis
  • Installation


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

Reflection is required


  • « Pré-requis
  • Componere\Abstract\Definition »
  • PHP Manual
  • Installation/Configuration
  • Installation

Installation

Componere source and releases are available on » github


The Componere\Abstract\Definition class

(Componere 2 >= 2.1.0)

Introduction

This final abstract represents a class entry, and should not be used by the programmer.

Synopsis de la classe

final abstract class Componere\Abstract\Definition {
/* Méthodes */
public addInterface(string $interface): Definition
public addMethod(string $name, Componere\Method $method): Definition
public addTrait(string $trait): Definition
public getReflector(): ReflectionClass
}

Sommaire

  • Componere\Abstract\Definition::addInterface — Add Interface
  • Componere\Abstract\Definition::addMethod — Add Method
  • Componere\Abstract\Definition::addTrait — Add Trait
  • Componere\Abstract\Definition::getReflector — Reflection


Add Interface

  • « Componere\Abstract\Definition
  • Componere\Abstract\Definition::addMethod »
  • PHP Manual
  • Componere\Abstract\Definition
  • Add Interface

Componere\Abstract\Definition::addInterface

(Componere 2 >= 2.1.0)

Componere\Abstract\Definition::addInterface — Add Interface

Description

public Componere\Abstract\Definition::addInterface(string $interface): Definition

Shall implement the given interface on the current definition

Liste de paramètres

interface

The case insensitive name of an interface

Valeurs de retour

The current Definition

Exceptions

Avertissement

Shall throw RuntimeException if Definition was registered


Add Method

  • « Componere\Abstract\Definition::addInterface
  • Componere\Abstract\Definition::addTrait »
  • PHP Manual
  • Componere\Abstract\Definition
  • Add Method

Componere\Abstract\Definition::addMethod

(Componere 2 >= 2.1.0)

Componere\Abstract\Definition::addMethod — Add Method

Description

public Componere\Abstract\Definition::addMethod(string $name, Componere\Method $method): Definition

Shall create or override a method on the current definition.

Liste de paramètres

name

The case insensitive name for method

method

Componere\Method not previously added to another Definition

Valeurs de retour

The current Definition

Exceptions

Avertissement

Shall throw RuntimeException if Definition was registered

Avertissement

Shall throw RuntimeException if Method was added to another Definition


Add Trait

  • « Componere\Abstract\Definition::addMethod
  • Componere\Abstract\Definition::getReflector »
  • PHP Manual
  • Componere\Abstract\Definition
  • Add Trait

Componere\Abstract\Definition::addTrait

(Componere 2 >= 2.1.0)

Componere\Abstract\Definition::addTrait — Add Trait

Description

public Componere\Abstract\Definition::addTrait(string $trait): Definition

Shall use the given trait for the current definition

Liste de paramètres

trait

The case insensitive name of a trait

Valeurs de retour

The current Definition

Exceptions

Avertissement

Shall throw RuntimeException if Definition was registered


Reflection

  • « Componere\Abstract\Definition::addTrait
  • Componere\Definition »
  • PHP Manual
  • Componere\Abstract\Definition
  • Reflection

Componere\Abstract\Definition::getReflector

(Componere 2 >= 2.1.0)

Componere\Abstract\Definition::getReflector — Reflection

Description

public Componere\Abstract\Definition::getReflector(): ReflectionClass

Shall create or return a ReflectionClass

Valeurs de retour

A ReflectionClass for the current definition (cached)


The Componere\Definition class

(Componere 2 >= 2.1.0)

Introduction

The Definition class allows the programmer to build and register a type at runtime.

Should a Definition replace an existing class, the existing class will be restored when the Definition is destroyed.

Synopsis de la classe

final class Componere\Definition extends Componere\Abstract\Definition {
/* Constructors */
public __construct(string $name)
public __construct(string $name, string $parent)
public __construct(string $name, array $interfaces)
public __construct(string $name, string $parent, array $interfaces)
/* Méthodes */
public addConstant(string $name, Componere\Value $value): Definition
public addProperty(string $name, Componere\Value $value): Definition
public register(): void
public isRegistered(): bool
public getClosure(string $name): Closure
public getClosures(): array
/* Méthodes héritées */
public Componere\Abstract\Definition::addInterface(string $interface): Definition
public Componere\Abstract\Definition::addMethod(string $name, Componere\Method $method): Definition
public Componere\Abstract\Definition::addTrait(string $trait): Definition
public Componere\Abstract\Definition::getReflector(): ReflectionClass
}

Sommaire

  • Componere\Definition::__construct — Definition Construction
  • Componere\Definition::addConstant — Add Constant
  • Componere\Definition::addProperty — Add Property
  • Componere\Definition::register — Registration
  • Componere\Definition::isRegistered — State Detection
  • Componere\Definition::getClosure — Get Closure
  • Componere\Definition::getClosures — Get Closures


Definition Construction

  • « Componere\Definition
  • Componere\Definition::addConstant »
  • PHP Manual
  • Componere\Definition
  • Definition Construction

Componere\Definition::__construct

(Componere 2 >= 2.1.0)

Componere\Definition::__construct — Definition Construction

Description

public Componere\Definition::__construct(string $name)
public Componere\Definition::__construct(string $name, string $parent)
public Componere\Definition::__construct(string $name, array $interfaces)
public Componere\Definition::__construct(string $name, string $parent, array $interfaces)

Liste de paramètres

name

A case insensitive class name

parent

A case insensitive class name

interfaces

An array of case insensitive class names

Exceptions

Avertissement

Shall throw InvalidArgumentException if an attempt is made to replace an internal class

Avertissement

Shall throw InvalidArgumentException if an attempt is made to replace an interface

Avertissement

Shall throw InvalidArgumentException if an attempt is made to replace a trait

Avertissement

Shall throw RuntimeException if a class in interfaces cannot be found

Avertissement

Shall throw RuntimeException if an class in interfaces is not an interface


Add Constant

  • « Componere\Definition::__construct
  • Componere\Definition::addProperty »
  • PHP Manual
  • Componere\Definition
  • Add Constant

Componere\Definition::addConstant

(Componere 2 >= 2.1.0)

Componere\Definition::addConstant — Add Constant

Description

public Componere\Definition::addConstant(string $name, Componere\Value $value): Definition

Shall declare a class constant on the current Definition

Liste de paramètres

name

The case sensitive name for the constant

value

The Value for the constant, must not be undefined or static

Valeurs de retour

The current Definition

Exceptions

Avertissement

Shall throw RuntimeException if Definition was registered

Avertissement

Shall throw RuntimeException if name is already declared as a constant

Avertissement

Shall throw RuntimeException if value is static

Avertissement

Shall throw RuntimeException if value is undefined


Add Property

  • « Componere\Definition::addConstant
  • Componere\Definition::register »
  • PHP Manual
  • Componere\Definition
  • Add Property

Componere\Definition::addProperty

(Componere 2 >= 2.1.0)

Componere\Definition::addProperty — Add Property

Description

public Componere\Definition::addProperty(string $name, Componere\Value $value): Definition

Shall declare a class property on the current Definition

Liste de paramètres

name

The case sensitive name for the property

value

The default Value for the property

Valeurs de retour

The current Definition

Exceptions

Avertissement

Shall throw RuntimeException if Definition was registered

Avertissement

Shall throw RuntimeException if name is already declared as a property


Registration

  • « Componere\Definition::addProperty
  • Componere\Definition::isRegistered »
  • PHP Manual
  • Componere\Definition
  • Registration

Componere\Definition::register

(Componere 2 >= 2.1.0)

Componere\Definition::register — Registration

Description

public Componere\Definition::register(): void

Shall register the current Definition

Exceptions

Avertissement

Shall throw RuntimeException if Definition was registered


State Detection

  • « Componere\Definition::register
  • Componere\Definition::getClosure »
  • PHP Manual
  • Componere\Definition
  • State Detection

Componere\Definition::isRegistered

(Componere 2 >= 2.1.0)

Componere\Definition::isRegistered — State Detection

Description

public Componere\Definition::isRegistered(): bool

Shall detect the registration state of this Definition

Valeurs de retour

Shall return true if this Definition is registered


Get Closure

  • « Componere\Definition::isRegistered
  • Componere\Definition::getClosures »
  • PHP Manual
  • Componere\Definition
  • Get Closure

Componere\Definition::getClosure

(Componere 2 >= 2.1.0)

Componere\Definition::getClosure — Get Closure

Description

public Componere\Definition::getClosure(string $name): Closure

Shall return a Closure for the method specified by name

Liste de paramètres

name

The case insensitive name of the method

Valeurs de retour

A Closure bound to the correct scope

Exceptions

Avertissement

Shall throw RuntimeException if Definition was registered

Avertissement

Shall throw RuntimeException if name could not be found


Get Closures

  • « Componere\Definition::getClosure
  • Componere\Patch »
  • PHP Manual
  • Componere\Definition
  • Get Closures

Componere\Definition::getClosures

(Componere 2 >= 2.1.0)

Componere\Definition::getClosures — Get Closures

Description

public Componere\Definition::getClosures(): array

Shall return an array of Closures

Valeurs de retour

Shall return all methods as an array of Closure objects bound to the correct scope

Exceptions

Avertissement

Shall throw RuntimeException if Definition was registered


The Componere\Patch class

(Componere 2 >= 2.1.0)

Introduction

The Patch class allows the programmer to change the type of an instance at runtime without registering a new Definition

When a Patch is destroyed it is reverted, so that instances that were patched during the lifetime of the Patch are restored to their formal type.

Synopsis de la classe

final class Componere\Patch extends Componere\Abstract\Definition {
/* Constructors */
public __construct(object $instance)
public __construct(object $instance, array $interfaces)
/* Méthodes */
public apply(): void
public revert(): void
public isApplied(): bool
public derive(object $instance): Patch
public getClosure(string $name): Closure
public getClosures(): array
/* Méthodes héritées */
public Componere\Abstract\Definition::addInterface(string $interface): Definition
public Componere\Abstract\Definition::addMethod(string $name, Componere\Method $method): Definition
public Componere\Abstract\Definition::addTrait(string $trait): Definition
public Componere\Abstract\Definition::getReflector(): ReflectionClass
}

Sommaire

  • Componere\Patch::__construct — Patch Construction
  • Componere\Patch::apply — Application
  • Componere\Patch::revert — Reversal
  • Componere\Patch::isApplied — State Detection
  • Componere\Patch::derive — Patch Derivation
  • Componere\Patch::getClosure — Get Closure
  • Componere\Patch::getClosures — Get Closures


Patch Construction

  • « Componere\Patch
  • Componere\Patch::apply »
  • PHP Manual
  • Componere\Patch
  • Patch Construction

Componere\Patch::__construct

(Componere 2 >= 2.1.0)

Componere\Patch::__construct — Patch Construction

Description

public Componere\Patch::__construct(object $instance)
public Componere\Patch::__construct(object $instance, array $interfaces)

Liste de paramètres

instance

The target for this Patch

interfaces

A case insensitive array of class names

Exceptions

Avertissement

Shall throw RuntimeException if a class in interfaces cannot be found

Avertissement

Shall throw RuntimeException if an class in interfaces is not an interface


Application

  • « Componere\Patch::__construct
  • Componere\Patch::revert »
  • PHP Manual
  • Componere\Patch
  • Application

Componere\Patch::apply

(Componere 2 >= 2.1.0)

Componere\Patch::apply — Application

Description

public Componere\Patch::apply(): void

Shall apply the current patch


Reversal

  • « Componere\Patch::apply
  • Componere\Patch::isApplied »
  • PHP Manual
  • Componere\Patch
  • Reversal

Componere\Patch::revert

(Componere 2 >= 2.1.0)

Componere\Patch::revert — Reversal

Description

public Componere\Patch::revert(): void

Shall revert the current patch


State Detection

  • « Componere\Patch::revert
  • Componere\Patch::derive »
  • PHP Manual
  • Componere\Patch
  • State Detection

Componere\Patch::isApplied

(Componere 2 >= 2.1.0)

Componere\Patch::isApplied — State Detection

Description

public Componere\Patch::isApplied(): bool


Patch Derivation

  • « Componere\Patch::isApplied
  • Componere\Patch::getClosure »
  • PHP Manual
  • Componere\Patch
  • Patch Derivation

Componere\Patch::derive

(Componere 2 >= 2.1.1)

Componere\Patch::derive — Patch Derivation

Description

public Componere\Patch::derive(object $instance): Patch

Shall derive a Patch for the given instance

Liste de paramètres

instance

The target for the derived Patch

Valeurs de retour

Patch for instance derived from the current Patch

Exceptions

Avertissement

Shall throw InvalidArgumentException if instance is not compatible


Get Closure

  • « Componere\Patch::derive
  • Componere\Patch::getClosures »
  • PHP Manual
  • Componere\Patch
  • Get Closure

Componere\Patch::getClosure

(Componere 2 >= 2.1.0)

Componere\Patch::getClosure — Get Closure

Description

public Componere\Patch::getClosure(string $name): Closure

Shall return a Closure for the method specified by name

Liste de paramètres

name

The case insensitive name of the method

Valeurs de retour

A Closure bound to the correct scope and object

Exceptions

Avertissement

Shall throw RuntimeException if name could not be found


Get Closures

  • « Componere\Patch::getClosure
  • Componere\Method »
  • PHP Manual
  • Componere\Patch
  • Get Closures

Componere\Patch::getClosures

(Componere 2 >= 2.1.0)

Componere\Patch::getClosures — Get Closures

Description

public Componere\Patch::getClosures(): array

Shall return an array of Closures

Valeurs de retour

Shall return all methods as an array of Closure objects bound to the correct scope and object


The Componere\Method class

(Componere 2 >= 2.1.0)

Introduction

A Method represents a function with modifiable accessibility flags

Synopsis de la classe

final class Componere\Method {
/* Constructor */
public __construct(Closure $closure)
/* Méthodes */
public setPrivate(): Method
public setProtected(): Method
public setStatic(): Method
public getReflector(): ReflectionMethod
}

Sommaire

  • Componere\Method::__construct — Method Construction
  • Componere\Method::setPrivate — Accessibility Modification
  • Componere\Method::setProtected — Accessibility Modification
  • Componere\Method::setStatic — Accessibility Modification
  • Componere\Method::getReflector — Reflection


Method Construction

  • « Componere\Method
  • Componere\Method::setPrivate »
  • PHP Manual
  • Componere\Method
  • Method Construction

Componere\Method::__construct

(Componere 2 >= 2.1.0)

Componere\Method::__construct — Method Construction

Description

public Componere\Method::__construct(Closure $closure)

Liste de paramètres

closure


Accessibility Modification

  • « Componere\Method::__construct
  • Componere\Method::setProtected »
  • PHP Manual
  • Componere\Method
  • Accessibility Modification

Componere\Method::setPrivate

(Componere 2 >= 2.1.0)

Componere\Method::setPrivate — Accessibility Modification

Description

public Componere\Method::setPrivate(): Method

Valeurs de retour

The current Method

Exceptions

Avertissement

Shall throw RuntimeException if access level was previously set


Accessibility Modification

  • « Componere\Method::setPrivate
  • Componere\Method::setStatic »
  • PHP Manual
  • Componere\Method
  • Accessibility Modification

Componere\Method::setProtected

(Componere 2 >= 2.1.0)

Componere\Method::setProtected — Accessibility Modification

Description

public Componere\Method::setProtected(): Method

Valeurs de retour

The current Method

Exceptions

Avertissement

Shall throw RuntimeException if access level was previously set


Accessibility Modification

  • « Componere\Method::setProtected
  • Componere\Method::getReflector »
  • PHP Manual
  • Componere\Method
  • Accessibility Modification

Componere\Method::setStatic

(Componere 2 >= 2.1.0)

Componere\Method::setStatic — Accessibility Modification

Description

public Componere\Method::setStatic(): Method

Valeurs de retour

The current Method


Reflection

  • « Componere\Method::setStatic
  • Componere\Value »
  • PHP Manual
  • Componere\Method
  • Reflection

Componere\Method::getReflector

(Componere 2 >= 2.1.0)

Componere\Method::getReflector — Reflection

Description

public Componere\Method::getReflector(): ReflectionMethod

Shall create or return a ReflectionMethod

Valeurs de retour

A ReflectionMethod for the current method (cached)


The Componere\Value class

(Componere 2 >= 2.1.0)

Introduction

A Value represents a PHP variable of all types, including undefined

Synopsis de la classe

final class Componere\Value {
/* Constructor */
public __construct( $default = ?)
/* Méthodes */
public setPrivate(): Value
public setProtected(): Value
public setStatic(): Value
public isPrivate(): bool
public isProtected(): bool
public isStatic(): bool
public hasDefault(): bool
}

Sommaire

  • Componere\Value::__construct — Value Construction
  • Componere\Value::setPrivate — Accessibility Modification
  • Componere\Value::setProtected — Accessibility Modification
  • Componere\Value::setStatic — Accessibility Modification
  • Componere\Value::isPrivate — Accessibility Detection
  • Componere\Value::isProtected — Accessibility Detection
  • Componere\Value::isStatic — Accessibility Detection
  • Componere\Value::hasDefault — Value Interaction


Value Construction

  • « Componere\Value
  • Componere\Value::setPrivate »
  • PHP Manual
  • Componere\Value
  • Value Construction

Componere\Value::__construct

(Componere 2 >= 2.1.0)

Componere\Value::__construct — Value Construction

Description

public Componere\Value::__construct( $default = ?)

Liste de paramètres

default

Exceptions

Avertissement

Shall throw InvalidArgumentException if default does not have a suitable value


Accessibility Modification

  • « Componere\Value::__construct
  • Componere\Value::setProtected »
  • PHP Manual
  • Componere\Value
  • Accessibility Modification

Componere\Value::setPrivate

(Componere 2 >= 2.1.0)

Componere\Value::setPrivate — Accessibility Modification

Description

public Componere\Value::setPrivate(): Value

Valeurs de retour

The current Value

Exceptions

Avertissement

Shall throw RuntimeException if access level was previously set


Accessibility Modification

  • « Componere\Value::setPrivate
  • Componere\Value::setStatic »
  • PHP Manual
  • Componere\Value
  • Accessibility Modification

Componere\Value::setProtected

(Componere 2 >= 2.1.0)

Componere\Value::setProtected — Accessibility Modification

Description

public Componere\Value::setProtected(): Value

Valeurs de retour

The current Value

Exceptions

Avertissement

Shall throw RuntimeException if access level was previously set


Accessibility Modification

  • « Componere\Value::setProtected
  • Componere\Value::isPrivate »
  • PHP Manual
  • Componere\Value
  • Accessibility Modification

Componere\Value::setStatic

(Componere 2 >= 2.1.0)

Componere\Value::setStatic — Accessibility Modification

Description

public Componere\Value::setStatic(): Value

Valeurs de retour

The current Value


Accessibility Detection

  • « Componere\Value::setStatic
  • Componere\Value::isProtected »
  • PHP Manual
  • Componere\Value
  • Accessibility Detection

Componere\Value::isPrivate

(Componere 2 >= 2.1.0)

Componere\Value::isPrivate — Accessibility Detection

Description

public Componere\Value::isPrivate(): bool


Accessibility Detection

  • « Componere\Value::isPrivate
  • Componere\Value::isStatic »
  • PHP Manual
  • Componere\Value
  • Accessibility Detection

Componere\Value::isProtected

(Componere 2 >= 2.1.0)

Componere\Value::isProtected — Accessibility Detection

Description

public Componere\Value::isProtected(): bool


Accessibility Detection

  • « Componere\Value::isProtected
  • Componere\Value::hasDefault »
  • PHP Manual
  • Componere\Value
  • Accessibility Detection

Componere\Value::isStatic

(Componere 2 >= 2.1.0)

Componere\Value::isStatic — Accessibility Detection

Description

public Componere\Value::isStatic(): bool


Value Interaction

  • « Componere\Value::isStatic
  • Componere Fonctions »
  • PHP Manual
  • Componere\Value
  • Value Interaction

Componere\Value::hasDefault

(Componere 2 >= 2.1.0)

Componere\Value::hasDefault — Value Interaction

Description

public Componere\Value::hasDefault(): bool


  • « Componere\Value::hasDefault
  • Componere\cast »
  • PHP Manual
  • Componere
  • Componere Fonctions

Componere Fonctions

Sommaire

  • Componere\cast — Casting
  • Componere\cast_by_ref — Casting


Casting

  • « Componere Fonctions
  • Componere\cast_by_ref »
  • PHP Manual
  • Componere Fonctions
  • Casting

Componere\cast

(Componere 2 >= 2.1.2)

Componere\cast — Casting

Description

Componere\cast(Type $type, $object): Type

Liste de paramètres

type

A user defined type

object

An object with a user defined type compatible with Type

Valeurs de retour

An object of type Type, cast from object

Erreurs / Exceptions

Avertissement

Shall throw InvalidArgumentException if the type of object is or is derived from an internal class

Avertissement

Shall throw InvalidArgumentException if Type is an interface

Avertissement

Shall throw InvalidArgumentException if Type is a trait

Avertissement

Shall throw InvalidArgumentException if Type is an abstract

Avertissement

Shall throw InvalidArgumentException if Type is not compatible with the type of object

Voir aussi

  • Componere\cast_by_ref


Casting

  • « Componere\cast
  • Gestion des erreurs »
  • PHP Manual
  • Componere Fonctions
  • Casting

Componere\cast_by_ref

(Componere 2 >= 2.1.2)

Componere\cast_by_ref — Casting

Description

Componere\cast_by_ref(Type $type, $object): Type

Liste de paramètres

type

A user defined type

object

An object with a user defined type compatible with Type

Valeurs de retour

An object of type Type, cast from object, where members are references to object members

Erreurs / Exceptions

Avertissement

Shall throw InvalidArgumentException if the type of object is or is derived from an internal class

Avertissement

Shall throw InvalidArgumentException if Type is an interface

Avertissement

Shall throw InvalidArgumentException if Type is a trait

Avertissement

Shall throw InvalidArgumentException if Type is an abstract

Avertissement

Shall throw InvalidArgumentException if Type is not compatible with the type of object

Voir aussi

  • Componere\cast


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ébogage
    • debug_print_backtrace — Affiche la pile d'exécution PHP
    • error_clear_last — Enlève l'erreur la plus récente
    • 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 cœur 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 | INI_ALL |
display_errors | "1" | INI_ALL |
display_startup_errors | "1" | INI_ALL | Antérieur à PHP 8.0.0, la valeur par défaut était "0".
log_errors | "0" | INI_ALL |
log_errors_max_len | "1024" | INI_ALL | Sans effet à partir de PHP 8.0.0, supprimé à partir de PHP 8.1.0.
ignore_repeated_errors | "0" | INI_ALL |
ignore_repeated_source | "0" | INI_ALL |
report_memleaks | "1" | INI_ALL |
track_errors | "0" | INI_ALL | Obsolète à partir de PHP 7.2.0, supprimée à partir de PHP 8.0.0.
html_errors | "1" | INI_ALL |
xmlrpc_errors | "0" | INI_SYSTEM |
xmlrpc_error_number | "0" | INI_ALL |
docref_root | "" | INI_ALL |
docref_ext | "" | INI_ALL |
error_prepend_string | NULL | INI_ALL |
error_append_string | NULL | INI_ALL |
error_log | NULL | INI_ALL |
error_log_mode | 0o644 | INI_ALL | Disponible à partir de PHP 8.2.0.
syslog.facility | "LOG_USER" | INI_SYSTEM | Disponible à partir de PHP 7.3.0.
syslog.filter | "no-ctrl" | INI_ALL | Disponible à partir de PHP 7.3.0.
syslog.ident | "php" | INI_SYSTEM | Disponible à partir de PHP 7.3.0.
Pour plus de détails sur les modes INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

error_reporting int

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.

La valeur par défaut est E_ALL.

Antérieur à PHP 8.0.0, la valeur par défaut était : E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED. Ceci signifie que les diagnostics de niveau E_NOTICE, E_STRICT et E_DEPRECATED n'était pas affichés.

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 mis à 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.

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 bool

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ébogage. En dehors de ce cas, il est fortement recommandé de laisser display_startup_errors à off.

log_errors bool

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 int

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 bool

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 bool

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 bool

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 plateformes 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 bool

Si cette option est activée, le dernier message d'erreur sera placé dans la variable $php_errormsg.

html_errors bool

Si activé, les messages d'erreur incluront les balises HTML. Le format des erreurs HTML produira des messages clickable 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 bool

Si activé, désactive le rapport normal d'erreur et formate les erreurs comme des messages d'erreur XML-RPC.

xmlrpc_error_number int

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. Seulement utilisé quand le message d'erreur est affiché à l'écran. L'usage principal est de pouvoir ajouter du balisage HTML additionnel avant le message d'erreur.

error_append_string string

La chaîne à placer après les messages d'erreur. Seulement utilisé quand le message d'erreur est affiché à l'écran. L'usage principal est de pouvoir ajouter du balisage HTML additionnel après le message 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 à l'historique d'événement. 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().

error_log_mode int

Mode de fichier pour le fichier définit pour error_log.

syslog.facility string

Spécifie le type de programme qui consigne le message. Uniquement efficace si error_log est défini sur "syslog".

syslog.filter string

Spécifie le type de filtre pour filtrer les messages consignés. Les caractères autorisés sont passés non modifiés?; tous les autres sont écrits dans leur représentation hexadécimale préfixée avec \x.

  • all – la chaîne consignée sera séparée lors des caractères de retour à la ligne, et tous les caractères sont transmit sans altérations
  • ascii – la chaîne consignée sera séparée lors des caractères de retour à la ligne, et tout caractère 7-bit ASCII non imprimable sera échappé
  • no-ctrl – la chaîne consignée sera séparée lors des caractères de retour à la ligne, et les caractères non imprimables seront échappés
  • raw – tous les caractères sont passés au système de consignation sans altérations, sans séparations aux retours à la ligne (identique à PHP antérieur à 7.3)
Ce paramètre affectera le consignation via error_log définit à "syslog" et les appels à syslog().

Note:

Le type de filtre raw est disponible à partir de PHP 7.3.8 et PHP 7.4.0.

Cette directive n'est pas supportée sur Windows.
syslog.ident string

Spécifie la chaîne d'identité qui est ajoutée à chaque message. Uniquement efficace si error_log est défini sur "syslog".


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 | Constantes | Description | Note
1 | E_ERROR (int) | 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 (int) | 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 (int) | 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 (int) | 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 (int) | 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 (int) | 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 (int) | 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 (int) | 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 (int) | 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 (int) | 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 (int) | 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 (int) | Permet d'obtenir des suggestions de PHP pour modifier votre code, assurant ainsi une meilleure interopérabilité et compatibilité de celui-ci. |
4096 | E_RECOVERABLE_ERROR (int) | 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. |
8192 | E_DEPRECATED (int) | 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. |
16384 | E_USER_DEPRECATED (int) | Message d'alerte généré par l'utilisateur. Fonctionne de la même façon que E_DEPRECATED, mis à part que le message est généré par votre code PHP en utilisant la fonction trigger_error(). |
32767 | E_ALL (int) | Toutes les erreurs, alertes et notices. |

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ébogage
  • debug_print_backtrace — Affiche la pile d'exécution PHP
  • error_clear_last — Enlève l'erreur la plus récente
  • 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ébogage

  • « Fonctions sur la gestion des erreurs
  • debug_print_backtrace »
  • PHP Manual
  • Fonctions sur la gestion des erreurs
  • Génère le contexte de débogage

debug_backtrace

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

debug_backtrace — Génère le contexte de débogage

Description

debug_backtrace(int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT, int $limit = 0): array

debug_backtrace() génère un contexte de débogage PHP.

Liste de paramètres

options

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.

Note:

Il existe quatre combinaisons possibles :

Options de debug_backtrace()
debug_backtrace() | Alimente les deux index
debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT)
debug_backtrace(1)
debug_backtrace(0) | Omet l'index "object" et remplit l'index "args".
debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS) | Omet l'index "object" et l'index "args".
debug_backtrace(2)
debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT|DEBUG_BACKTRACE_IGNORE_ARGS) | Remplit l'index "object" et omet l'index "args".
debug_backtrace(3)

limit

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.

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, PHP 8)

debug_print_backtrace — Affiche la pile d'exécution PHP

Description

debug_print_backtrace(int $options = 0, int $limit = 0): void

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

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

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.

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';
?>

Résultat de l'exemple ci-dessus est 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ébogage


Enlève l'erreur la plus récente

  • « debug_print_backtrace
  • error_get_last »
  • PHP Manual
  • Fonctions sur la gestion des erreurs
  • Enlève l'erreur la plus récente

error_clear_last

(PHP 7, PHP 8)

error_clear_last — Enlève l'erreur la plus récente

Description

error_clear_last(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Enlève l'erreur la plus récente, le rendant irrécupérable avec error_get_last().

Exemples

Exemple #1 Un exemple de error_clear_last()

<?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());
?>

Résultat de l'exemple ci-dessus est similaire à :

NULL
NULL
array(4) {
  ["type"]=>
  int(8)
  ["message"]=>
  string(21) "Undefined variable: b"
  ["file"]=>
  string(9) "%s"
  ["line"]=>
  int(6)
}
NULL

Voir aussi

  • Constantes d'erreurs


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, PHP 8)

error_get_last — Récupère la dernière erreur survenue

Description

error_get_last(): ?array

Récupère la dernière erreur survenue.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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());
?>

Résultat de l'exemple ci-dessus est 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() - Enlève l'erreur la plus récente
  • 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, PHP 8)

error_log — Envoi un message d'erreur vers le gestionnaire d'erreurs défini

Description

error_log(
string $message,
int $message_type = 0,
?string $destination = null,
?string $additional_headers = null
): bool

Envoie 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 additional_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.

additional_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. Si message_type est zéro, alors cette fonction retourne toujours true, peu importe si l'erreur à pu être enregistrée dans le journal d'événements.

Historique

Version | Description
8.0.0 | destination et additional_headers sont désormais nullables.

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");
?>

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().


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, PHP 8)

error_reporting — Fixe le niveau de rapport d'erreurs PHP

Description

error_reporting(?int $error_level = null): int

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 error_level n'est pas défini, error_reporting() retournera uniquement le niveau de rapport d'erreurs courant.

Liste de paramètres

error_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 le niveau d'error_reporting, before qu'il ne soit changé en error_level

Note: L'opérateur de contrôle d'erreur @ modifie le error_level pendant la gestion des erreurs.

Historique

Version | Description
8.0.0 | error_level est désormais nullable.

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);

// Rapporte toutes les erreurs PHP
error_reporting(E_ALL);

// Rapporte toutes les erreurs PHP
error_reporting(-1);

// Même chose que error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);

?>

Notes

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. Ce comportement est équivalent à fournir la constante E_ALL.

Voir aussi

  • La directive display_errors
  • La directive html_errors
  • La directive xmlrpc_errors
  • L'opérateur de contrôle d'erreur
  • 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, PHP 8)

restore_error_handler — Réactive l'ancienne fonction de gestion des erreurs

Description

restore_error_handler(): true

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).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

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 sérialisée.\n";
}

$serialized = 'foo';
set_error_handler('unserialize_handler');
$original = unserialize($serialized);
restore_error_handler();
?>

L'exemple ci-dessus va afficher :

Valeur incorrectement sérialisé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, PHP 8)

restore_exception_handler — Réactive l'ancienne fonction de gestion d'exceptions

Description

restore_exception_handler(): true

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).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

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, PHP 8)

set_error_handler — Spécifie une fonction utilisateur comme gestionnaire d'erreurs

Description

set_error_handler(?callable $callback, int $error_levels = E_ALL): ?callable

set_error_handler() choisit la fonction utilisateur callback pour gérer les erreurs dans un script.

Cette fonction peut être utilisée pour définir des gestionnaires d'erreurs personnalisés pendant l'exécution, par exemple dans des applications qui ont besoin de nettoyer des fichiers/données lorsqu'une erreur critique se produit ou lorsqu'une erreur est déclenchée en réponse à certaines conditions (à l'aide de la fonction 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_levels à moins que la fonction de rappel retourne false. Les paramètres de la fonction error_reporting() n'auront aucun effet et le gestionnaire d'erreurs sera appelé quoi qu'il arrive. Cependant, il est toujours possible de lire la valeur actuelle de la configuration de. error_reporting et faire réagir la fonction de gestion des erreurs en fonction.

Notez aussi que c'est la responsabilité du gestionnaire d'erreurs d'arrêter l'exécution du script si nécessaire en appelant la fonction exit(). Si la fonction du gestionnaire d'erreurs retourne, l'exécution du script se poursuivra avec l'instruction suivante après celle qui a causé l'erreur.

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 indépendamment d'où elles sont levées, 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

callback

Si null est fournie le gestionnaire est réinitialisé à son statut par défaut. Sinon, le gestionnaire est une fonction de rappel avec la signature suivante :

handler(
int $errno,
string $errstr,
string $errfile = ?,
int $errline = ?,
array $errcontext = ?
): bool
errno
Le premier paramètre errno, sera passé le niveau d'erreur, sous la forme d'un entier.
errstr
Le second paramètre errstr, sera passé le message d'erreur, sous forme de chaîne.
errfile
Si la fermeture accepte un troisième paramètre, errfile, il sera passé le nom du fichier dans lequel l'erreur a été identifiée, sous forme de chaîne.
errline
Si la fermeture accepte un quatrième paramètre, errline, il sera passé le numéro de ligne à laquelle l'erreur a été identifiée, sous la forme d'un entier.
errcontext
Si la fermeture accepte un cinquième paramètre, errcontext, il sera passé comme un tableau qui pointe sur la table des symboles actifs à l'instant où l'erreur est survenue. En d'autres termes, errcontext contient un tableau avec toutes les variables qui existaient lorsque l'erreur a été déclenchée. Les gestionnaires d'erreurs utilisateur ne doit pas modifier le contexte d'erreur.
Avertissement

Ce paramètre est OBSOLÈTE à partir de PHP 7.2.0, et SUPPRIMÉ à partir de PHP 8.0.0. Si la fonction définie ce paramètre sans valeur par défaut, une erreur de "too few arguments" sera levée lors de son appel.

Si la fonction retourne false, alors le gestionnaire d'erreurs normal continue.

error_levels

Sert de masque pour appeler la fonction callback de la même façon que l'option de configuration error_reporting contrôle les erreurs qui sont affichées. Sans le masque, callback sera appelé pour toutes les erreurs, quelle que soit la valeur de error_reporting.

Valeurs de retour

Retourne le dernier gestionnaire d'erreurs (s'il existe). Si le gestionnaire d'erreurs natif est utilisé, null est retourné. 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
8.0.0 | errcontext a été supprimé, et ne sera plus passé aux fermetures utilisateur.
7.2.0 | errcontext est devenu obsolète. L'usage de ce paramètre émet une notice E_DEPRECATED.

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(), donc il continue
// jusqu'au gestionaire d'erreur standard de PHP
return false;
}

// $errstr doit peut être être échappé :
$errstr = htmlspecialchars($errstr);

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);

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
?>

Résultat de l'exemple ci-dessus est 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


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, PHP 8)

set_exception_handler — Définit une fonction utilisateur de gestion d'exceptions

Description

set_exception_handler(?callable $callback): ?callable

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 callback.

Liste de paramètres

callback

La fonction à appeler quand une exception non attrapée se produit. Cette fonction de gestion doit accepter un paramètre, qui sera l'objet Throwable qui a été lancé. Les classes Error et Exception implémentent l'interface Throwable. Ceci est la signature du gestionnaire :

handler(Throwable $ex): void

null peut être passé à la place, pour ré-initialiser ce gestionnaire en son statut initial.

Valeurs de retour

Retourne le 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é.

Exemples

Exemple #1 Exemple avec set_exception_handler()

<?php
function exception_handler(Throwable $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
  • Les exceptions


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, PHP 8)

trigger_error — Déclenche une erreur utilisateur

Description

trigger_error(string $message, int $error_level = E_USER_NOTICE): true

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

message

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_level

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

Retourne toujours true.

Erreurs / Exceptions

Cette fonction lance une ValueError si le error_level n'est pas l'un des E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE, E_USER_DEPRECATED.

Historique

Version | Description
8.0.0 | La fonction lance désormais une ValueError si un error_level invalide est spécifié. Auparavant, elle retournait false.

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 message 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
  • FFI »
  • PHP Manual
  • Fonctions sur la gestion des erreurs
  • Alias de trigger_error

user_error

(PHP 4, PHP 5, PHP 7, PHP 8)

user_error — Alias de trigger_error()

Description

Cette fonction est un alias de : trigger_error().


Interface de fonction étrangère (Foreign Function Interface)

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Utilisation basique de FFI
    • Fonctions de rappels
    • Un exemple complet de PHP/FFI/preloading
  • FFI — Interface principale vers le code C et les données
    • FFI::addr — Crée un pointeur non géré vers des données C
    • FFI::alignof — Récupère l'alignement
    • FFI::arrayType — Construit dynamiquement un nouveau type de tableau C
    • FFI::cast — Effectue une conversion de type C
    • FFI::cdef — Crée un nouvel objet FFI
    • FFI::free — Libère une structure de données non gérée
    • FFI::isNull — Vérifie si un objet FFI\CData est un pointeur null
    • FFI::load — Charge les déclarations C à partir d'un fichier d'en-tête C
    • FFI::memcmp — Comparaison des zones de mémoire
    • FFI::memcpy — Copie d'une zone de mémoire dans une autre
    • FFI::memset — Remplit une zone de mémoire
    • FFI::new — Crée une structure de données C
    • FFI::scope — Instancie un objet FFI avec les déclarations C analysées lors du préchargement
    • FFI::sizeof — Récupère la taille des données ou des types C
    • FFI::string — Crée une chaîne PHP à partir d'une zone de mémoire
    • FFI::type — Crée un objet FFI\CType à partir d'une déclaration C
    • FFI::typeof — Récupère le FFI\CType de FFI\CData
  • FFI\CData — Gestionnaire de données C
  • FFI\CType — Gestionnaire de type C
    • FFI\CType::getAlignment — Description
    • FFI\CType::getArrayElementType — Description
    • FFI\CType::getArrayLength — Description
    • FFI\CType::getAttributes — Description
    • FFI\CType::getEnumKind — Description
    • FFI\CType::getFuncABI — Description
    • FFI\CType::getFuncParameterCount — Description
    • FFI\CType::getFuncParameterType — Description
    • FFI\CType::getFuncReturnType — Description
    • FFI\CType::getKind — Description
    • FFI\CType::getName — Description
    • FFI\CType::getPointerType — Description
    • FFI\CType::getSize — Description
    • FFI\CType::getStructFieldNames — Description
    • FFI\CType::getStructFieldOffset — Description
    • FFI\CType::getStructFieldType — Description
  • Exceptions FFI
  • FFI\ParserException — Exceptions de l'analyseur syntaxique FFI


Introduction

Cette extension permet de charger des bibliothèques partagées (.DLL ou .so), l'appel à des fonctions C et l'accès à des structures de données C à partir de PHP, sans avoir à connaître l'API d'extension Zend, et sans avoir à apprendre un troisième langage "intermédiaire". L'API publique est implémentée sous la forme d'une classe unique FFI avec plusieurs méthodes statiques (certaines d'entre elles peuvent être appelées dynamiquement), et des méthodes d'objet surchargées, qui effectuent l'interaction réelle avec les données C.

Attention

L'extension FFI est dangereuse, car elle permet de s'interfacer avec le système à un niveau très bas. Elle ne doit être utilisée que par des développeurs ayant une connaissance pratique du langage C et des API C utilisées. Pour minimiser les risques, l'utilisation de l'API FFI peut être restreinte avec la directive php.ini ffi.enable.

Note:

L'extension FFI ne rend pas obsolète l'API d'extension classique de PHP; elle est simplement fournie pour l'interfaçage ad-hoc avec des fonctions et des structures de données C.

Astuce

Actuellement, l'accès aux structures de données FFI est significativement (environ 2 fois) plus lent que l'accès aux tableaux et objets natifs de PHP. Par conséquent, il n'est pas utile d'utiliser l'extension FFI pour la vitesse; cependant, il peut être judicieux de l'utiliser pour réduire la mémoire.


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

Cette extension nécessite que la » bibliothèque libffi soit installée.


Installation

Pour activer l'extension FFI, PHP doit être configuré avec --with-ffi.

Les utilisateurs de Windows doivent inclure php_ffi.dll dans php.ini pour activer l'extension FFI.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

FFI Options de configuration
Nom | Défaut | Modifiable | Historique
ffi.enable | "preload" | INI_SYSTEM |
ffi.preload | "" | INI_SYSTEM |
Pour plus de détails sur les modes INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

ffi.enable string

Permet d'activer ("true") ou de désactiver ("false") l'utilisation de l'API FFI, ou de la restreindre uniquement à l'interface CLI SAPI et aux fichiers préchargés ("preload").

Les restrictions de l'API FFI n'affectent que la classe FFI, mais pas les fonctions surchargées des objets FFI\CData. Cela signifie qu'il est possible de créer certains objets FFI\CData dans des fichiers préchargés, puis de les utiliser directement dans des scripts PHP.

ffi.preload string

Permet le préchargement des liaisons FFI au démarrage, ce qui n'est pas possible avec FFI::load() si opcache.preload_user est défini. Cette directive accepte une liste de noms de fichiers délimitée par DIRECTORY_SEPARATOR. Les liaisons préchargées sont accessibles en appelant FFI::scope().


  • « Types de ressources
  • Exemples »
  • PHP Manual
  • FFI
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Exemples

Sommaire

  • Utilisation basique de FFI
  • Fonctions de rappels
  • Un exemple complet de PHP/FFI/preloading


Utilisation basique de FFI

Avant de plonger dans les détails de l'API FFI, jetons un coup d'œil à quelques exemples démontrant la simplicité d'utilisation de l'API FFI pour les tâches courantes.

Note:

Certains de ces exemples requièrent libc.so.6 et ne fonctionneront donc pas sur les systèmes où cette bibliothèque n'est pas disponible.

Exemple #1 Appel d'une fonction à partir d'une bibliothèque partagée

<?php
// crée un objet FFI, en chargeant la libc et en exportant la fonction printf()
$ffi = FFI::cdef(
"int printf(const char *format, ...);", // Declaration C régulière
"libc.so.6");
// appele la fonction printf() de C
$ffi->printf("Hello %s!\n", "world");
?>

L'exemple ci-dessus va afficher :

Hello world!

Note:

Notez que certaines fonctions C nécessitent des conventions d'appel spécifiques, par exemple __fastcall, __stdcall ou ,__vectorcall.

Exemple #2 Appel d'une fonction, retournant une structure par l'intermédiaire d'un argument

<?php
// crée la liaison gettimeofday()
$ffi = FFI::cdef("
typedef unsigned int time_t;
typedef unsigned int suseconds_t;

struct timeval {
time_t tv_sec;
suseconds_t tv_usec;
};

struct timezone {
int tz_minuteswest;
int tz_dsttime;
};

int gettimeofday(struct timeval *tv, struct timezone *tz);
", "libc.so.6");
// crée les structures de données C
$tv = $ffi->new("struct timeval");
$tz = $ffi->new("struct timezone");
// appelle la fonction gettimeofday() de C
var_dump($ffi->gettimeofday(FFI::addr($tv), FFI::addr($tz)));
// accède au champs de la structure de données C
var_dump($tv->tv_sec);
// imprime toute la structure de données C
var_dump($tz);
?>

Résultat de l'exemple ci-dessus est similaire à :

int(0)
int(1555946835)
object(FFI\CData:struct timezone)#3 (2) {
  ["tz_minuteswest"]=>
  int(0)
  ["tz_dsttime"]=>
  int(0)
}

Exemple #3 Accès aux variables C existantes

<?php
// crée un objet FFI, en chargeant la libc et en exportant la variable errno
$ffi = FFI::cdef(
"int errno;", // Declaration C régulière
"libc.so.6");
// imprime la valeur errno de C
var_dump($ffi->errno);
?>

L'exemple ci-dessus va afficher :

int(0)

Exemple #4 Création et modification de variables C

<?php
// crée une nouvelle variable C de type int
$x = FFI::new("int");
var_dump($x->cdata);

// affectation simple
$x->cdata = 5;
var_dump($x->cdata);

// affectation composée
$x->cdata += 2;
var_dump($x->cdata);
?>

L'exemple ci-dessus va afficher :

int(0)
int(5)
int(7)

Exemple #5 Travailler avec des tableaux C

<?php
// crée une structure de données en C
$a = FFI::new("long[1024]");
// modification de la structure comme avec un tableau PHP normal
for ($i = 0; $i < count($a); $i++) {
$a[$i] = $i;
}
var_dump($a[25]);
$sum = 0;
foreach ($a as $n) {
$sum += $n;
}
var_dump($sum);
var_dump(count($a));
var_dump(FFI::sizeof($a));
?>

L'exemple ci-dessus va afficher :

int(25)
int(523776)
int(1024)
int(8192)

Exemple #6 Travailler avec des enums en C

<?php
$a = FFI::cdef('typedef enum _zend_ffi_symbol_kind {
ZEND_FFI_SYM_TYPE,
ZEND_FFI_SYM_CONST = 2,
ZEND_FFI_SYM_VAR,
ZEND_FFI_SYM_FUNC
} zend_ffi_symbol_kind;
');
var_dump($a->ZEND_FFI_SYM_TYPE);
var_dump($a->ZEND_FFI_SYM_CONST);
var_dump($a->ZEND_FFI_SYM_VAR);
?>

L'exemple ci-dessus va afficher :

int(0)
int(2)
int(3)


Fonctions de rappels

Il est possible d'assigner une fermeture PHP à une variable native de type pointeur de fonction ou de la passer comme argument de fonction :

Exemple #1 Assignation d'une Closure PHP à un pointeur de fonction C

<?php
$zend = FFI::cdef("
typedef int (*zend_write_func_t)(const char *str, size_t str_length);
extern zend_write_func_t zend_write;
");

echo "Hello World 1!\n";

$orig_zend_write = clone $zend->zend_write;
$zend->zend_write = function($str, $len) {
global $orig_zend_write;
$orig_zend_write("{\n\t", 3);
$ret = $orig_zend_write($str, $len);
$orig_zend_write("}\n", 2);
return $ret;
};
echo "Hello World 2!\n";
$zend->zend_write = $orig_zend_write;
echo "Hello World 3!\n";
?>

L'exemple ci-dessus va afficher :

Hello World 1!
{
        Hello World 2!
}
Hello World 3!
Bien que cela fonctionne, cette fonctionnalité n'est pas supportée par toutes les plateformes libffi, n'est pas efficace et entraîne des fuites de ressources à la fin de la requête.
Astuce

Il est donc recommandé de minimiser l'utilisation des fonctions de rappels PHP.


Un exemple complet de PHP/FFI/preloading

php.ini

ffi.enable=preload
opcache.preload=preload.php

preload.php

<?php
FFI::load(__DIR__ . "/dummy.h");
opcache_compile_file(__DIR__ . "/dummy.php");
?>

dummy.h

#define FFI_SCOPE "DUMMY"
#define FFI_LIB "libc.so.6"

int printf(const char *format, ...);

dummy.php

<?php
final class Dummy {
private static $ffi = null;
function __construct() {
if (is_null(self::$ffi)) {
self::$ffi = FFI::scope("DUMMY");
}
}
function printf($format, ...$args) {
return (int)self::$ffi->printf($format, ...$args);
}
}
?>

test.php

<?php
$d = new Dummy();
$d->printf("Hello %s!\n", "world");
?>


Interface principale vers le code C et les données

(PHP 7 >= 7.4.0, PHP 8)

Introduction

Les objets de cette classe sont créés par les méthodes de fabrique FFI::cdef(), FFI::load() ou FFI::scope(). Les variables C définies sont disponibles en tant que propriétés de l'instance FFI, et les fonctions C définies sont disponibles comme méthodes de l'instance FFI. Les types C déclarés peuvent être utilisés pour créer de nouvelles structures de données C en utilisant FFI::new() et FFI::type().

L'analyse des définitions FFI et le chargement des bibliothèques partagées peuvent prendre beaucoup de temps. Il n'est pas utile de le faire à chaque requête HTTP dans un environnement Web. Cependant, il est possible de précharger les définitions FFI et les bibliothèques au démarrage de PHP, et d'instancier les objets FFI lorsque c'est nécessaire. Les fichiers d'en-tête peuvent être étendus avec des définitions FFI_SCOPE spéciales (par exemple #define FFI_SCOPE "foo"; la portée par défaut est "C") et ensuite chargés par FFI::load() pendant le préchargement. Cela conduit à la création d'une liaison persistante, qui sera disponible pour toutes les requêtes suivantes par l'intermédiaire de FFI::scope(). Reportez-vous à l'exemple complet PHP/FFI/preloading pour plus de détails.

Il est possible de précharger plus d'un fichier d'en-tête C dans la même portée.

Synopsis de la classe

final class FFI {
/* Constantes */
public const int __BIGGEST_ALIGNMENT__;
/* Méthodes */
public static addr(FFI\CData &$ptr): FFI\CData
public static alignof(FFI\CData|FFI\CType &$ptr): int
public static arrayType(FFI\CType $type, array $dimensions): FFI\CType
public cast(FFI\CType|string $type, FFI\CData|int|float|bool|null &$ptr): ?FFI\CData
public static cdef(string $code = "", ?string $lib = null): FFI
public static free(FFI\CData &$ptr): void
public static isNull(FFI\CData &$ptr): bool
public static load(string $filename): ?FFI
public static memcmp(string|FFI\CData &$ptr1, string|FFI\CData &$ptr2, int $size): int
public static memcpy(FFI\CData &$to, FFI\CData|string &$from, int $size): void
public static memset(FFI\CData &$ptr, int $value, int $size): void
public new(FFI\CType|string $type, bool $owned = true, bool $persistent = false): ?FFI\CData
public static scope(string $name): FFI
public static sizeof(FFI\CData|FFI\CType &$ptr): int
public static string(FFI\CData &$ptr, ?int $size = null): string
public type(string $type): ?FFI\CType
public static typeof(FFI\CData &$ptr): FFI\CType
}

Constantes pré-définies

FFI::__BIGGEST_ALIGNMENT__

Sommaire

  • FFI::addr — Crée un pointeur non géré vers des données C
  • FFI::alignof — Récupère l'alignement
  • FFI::arrayType — Construit dynamiquement un nouveau type de tableau C
  • FFI::cast — Effectue une conversion de type C
  • FFI::cdef — Crée un nouvel objet FFI
  • FFI::free — Libère une structure de données non gérée
  • FFI::isNull — Vérifie si un objet FFI\CData est un pointeur null
  • FFI::load — Charge les déclarations C à partir d'un fichier d'en-tête C
  • FFI::memcmp — Comparaison des zones de mémoire
  • FFI::memcpy — Copie d'une zone de mémoire dans une autre
  • FFI::memset — Remplit une zone de mémoire
  • FFI::new — Crée une structure de données C
  • FFI::scope — Instancie un objet FFI avec les déclarations C analysées lors du préchargement
  • FFI::sizeof — Récupère la taille des données ou des types C
  • FFI::string — Crée une chaîne PHP à partir d'une zone de mémoire
  • FFI::type — Crée un objet FFI\CType à partir d'une déclaration C
  • FFI::typeof — Récupère le FFI\CType de FFI\CData


Crée un pointeur non géré vers des données C

  • « FFI
  • FFI::alignof »
  • PHP Manual
  • FFI
  • Crée un pointeur non géré vers des données C

FFI::addr

(PHP 7 >= 7.4.0, PHP 8)

FFI::addr — Crée un pointeur non géré vers des données C

Description

public static FFI::addr(FFI\CData &$ptr): FFI\CData

Crée un pointeur non géré vers les données C représentées par l'élément FFI\CData. La source ptr doit survivre au pointeur résultant. Cette fonction est principalement utile pour transmettre des arguments à des fonctions C par le biais d'un pointeur.

Liste de paramètres

ptr

Le gestionnaire du pointeur vers une structure de données C.

Valeurs de retour

Retourne l'objet FFI\CData fraîchement créé.


Récupère l'alignement

  • « FFI::addr
  • FFI::arrayType »
  • PHP Manual
  • FFI
  • Récupère l'alignement

FFI::alignof

(PHP 7 >= 7.4.0, PHP 8)

FFI::alignof — Récupère l'alignement

Description

public static FFI::alignof(FFI\CData|FFI\CType &$ptr): int

Récupère l'alignement de l'objet FFI\CData ou FFI\CType donné.

Liste de paramètres

ptr

L'identifiant de la donnée ou du type C.

Valeurs de retour

Retourne l'alignement de l'objet FFI\CData ou FFI\CType donné.


Construit dynamiquement un nouveau type de tableau C

  • « FFI::alignof
  • FFI::cast »
  • PHP Manual
  • FFI
  • Construit dynamiquement un nouveau type de tableau C

FFI::arrayType

(PHP 7 >= 7.4.0, PHP 8)

FFI::arrayType — Construit dynamiquement un nouveau type de tableau C

Description

public static FFI::arrayType(FFI\CType $type, array $dimensions): FFI\CType

Construit dynamiquement un nouveau type de tableau C avec des éléments de type défini par type, et des dimensions spécifiées par dimensions. Dans l'exemple suivant $t1 et $t2 sont des types de tableaux équivalents :

<?php
$t1 = FFI::type("int[2][3]");
$t2 = FFI::arrayType(FFI::type("int"), [2, 3]);
?>

Liste de paramètres

type

Une déclaration C valide comme string, ou une instance de FFI\CType qui a déjà été créée.

dimensions

Les dimensions du type comme array.

Valeurs de retour

Retourne l'objet FFI\CType fraîchement créé.


Effectue une conversion de type C

  • « FFI::arrayType
  • FFI::cdef »
  • PHP Manual
  • FFI
  • Effectue une conversion de type C

FFI::cast

(PHP 7 >= 7.4.0, PHP 8)

FFI::cast — Effectue une conversion de type C

Description

public FFI::cast(FFI\CType|string $type, FFI\CData|int|float|bool|null &$ptr): ?FFI\CData

FFI::cast() crée un nouvel objet FFI\CData qui fait référence à la même structure de données C, mais qui est associée à un type différent. L'objet résultant ne possède pas les données C et la source ptr doit survivre au résultat. Le type C peut être spécifié en tant que string avec n'importe quelle déclaration de type C valide ou en tant qu'objet FFI\CType, créé auparavant. N'importe quel type déclaré pour l'instance est autorisé.

Liste de paramètres

type

Une déclaration C valide comme string, ou une instance de FFI\CType qui a déjà été créée.

ptr

Le gestionnaire du pointeur d'une structure de données C.

Valeurs de retour

Retourne l'objet FFI\CData fraîchement créé.

Historique

Version | Description
8.3.0 | L'appel statique de FFI::cast() est désormais obsolète.


Crée un nouvel objet FFI

  • « FFI::cast
  • FFI::free »
  • PHP Manual
  • FFI
  • Crée un nouvel objet FFI

FFI::cdef

(PHP 7 >= 7.4.0, PHP 8)

FFI::cdef — Crée un nouvel objet FFI

Description

public static FFI::cdef(string $code = "", ?string $lib = null): FFI

Crée un nouvel objet FFI.

Liste de paramètres

code

Une chaîne de caractères contenant une séquence de déclarations en langage C ordinaire (types, structures, fonctions, variables, etc). En fait, cette chaîne peut être copiée-collée à partir de fichiers d'en-tête C.

Note:

Les directives du préprocesseur C ne sont pas prises en charge, c'est-à-dire #include, #define et les macros CPP ne fonctionnent pas.

lib

Le nom d'un fichier de bibliothèque partagée, à charger et à lier avec les définitions.

Note:

Si lib est omis ou null, les plates-formes supportant RTLD_DEFAULT tentent de rechercher les symboles déclarés dans code dans la portée globale. Les autres systèmes ne parviendront pas à résoudre ces symboles.

Valeurs de retour

Retourne l'objet FFI fraîchement créé.

Historique

Version | Description
8.0.0 | lib est désormais nullable.


Libère une structure de données non gérée

  • « FFI::cdef
  • FFI::isNull »
  • PHP Manual
  • FFI
  • Libère une structure de données non gérée

FFI::free

(PHP 7 >= 7.4.0, PHP 8)

FFI::free — Libère une structure de données non gérée

Description

public static FFI::free(FFI\CData &$ptr): void

Libère manuellement une structure de données non gérée créée précédemment.

Liste de paramètres

ptr

Le gestionnaire du pointeur non géré d'une structure de données C.

Valeurs de retour

Aucune valeur n'est retournée.


Vérifie si un objet FFI\CData est un pointeur null

  • « FFI::free
  • FFI::load »
  • PHP Manual
  • FFI
  • Vérifie si un objet FFI\CData est un pointeur null

FFI::isNull

(PHP 7 >= 7.4.0, PHP 8)

FFI::isNull — Vérifie si un objet FFI\CData est un pointeur null

Description

public static FFI::isNull(FFI\CData &$ptr): bool

Vérifie si un objet FFI\CData est un pointeur null.

Liste de paramètres

ptr

Le gestionnaire du pointeur vers une structure de données C.

Valeurs de retour

Retourne si un objet FFI\CData est un pointeur null.


Charge les déclarations C à partir d'un fichier d'en-tête C

  • « FFI::isNull
  • FFI::memcmp »
  • PHP Manual
  • FFI
  • Charge les déclarations C à partir d'un fichier d'en-tête C

FFI::load

(PHP 7 >= 7.4.0, PHP 8)

FFI::load — Charge les déclarations C à partir d'un fichier d'en-tête C

Description

public static FFI::load(string $filename): ?FFI

Charge les déclarations C à partir d'un fichier d'en-tête C. Il est possible de spécifier les bibliothèques partagées qui doivent être chargées, en utilisant des définitions spéciales FFI_LIB dans le fichier d'en-tête C chargé.

Liste de paramètres

filename

Le nom d'un fichier d'en-tête C.

Les directives du préprocesseur C ne sont pas supportées, c'est-à-dire #include, #define et les macros CPP ne fonctionnent pas, sauf dans les cas particuliers énumérés ci-dessous.

Le fichier d'en-tête devrait contenir une déclaration #define pour la variable FFI_SCOPE, par exemple : #define FFI_SCOPE "MYLIB". Reportez-vous à l'introduction de la classe pour plus de détails.

Le fichier d'en-tête peut contenir une déclaration #define pour la variable FFI_LIB pour spécifier la bibliothèque qu'elle expose. S'il s'agit d'une bibliothèque système, seul le nom du fichier est requis, par exemple : #define FFI_LIB "libc.so.6". S'il s'agit d'une bibliothèque personnalisée, un chemin relatif est requis, par exemple : #define FFI_LIB "./mylib.so".

Valeurs de retour

Retourne l'objet FFI fraîchement créé, ou null en cas d'échec.

Voir aussi

  • FFI::scope() - Instancie un objet FFI avec les déclarations C analysées lors du préchargement


Comparaison des zones de mémoire

  • « FFI::load
  • FFI::memcpy »
  • PHP Manual
  • FFI
  • Comparaison des zones de mémoire

FFI::memcmp

(PHP 7 >= 7.4.0, PHP 8)

FFI::memcmp — Comparaison des zones de mémoire

Description

public static FFI::memcmp(string|FFI\CData &$ptr1, string|FFI\CData &$ptr2, int $size): int

Compare les size octets provenant des zones de mémoire ptr1 et ptr2. ptr1 et ptr2 peuvent être des structures de données natives (FFI\CData) ou strings PHP.

Liste de paramètres

ptr1

Début d'une zone de mémoire.

ptr2

Le début d'une autre zone de mémoire.

size

Le nombre d'octets à comparer.

Valeurs de retour

Retourne une valeur inférieure à 0 si le contenu de la zone de mémoire commençant à ptr1 est considéré comme inférieur au contenu de la zone de mémoire commençant à ptr2, une valeur supérieure à 0 si le contenu de la première zone de mémoire est considéré comme supérieur à celui de la seconde, et 0 s'ils sont égaux.


Copie d'une zone de mémoire dans une autre

  • « FFI::memcmp
  • FFI::memset »
  • PHP Manual
  • FFI
  • Copie d'une zone de mémoire dans une autre

FFI::memcpy

(PHP 7 >= 7.4.0, PHP 8)

FFI::memcpy — Copie d'une zone de mémoire dans une autre

Description

public static FFI::memcpy(FFI\CData &$to, FFI\CData|string &$from, int $size): void

Copie size octets de la zone de mémoire from vers la zone de mémoire to.

Liste de paramètres

to

Début de la zone de mémoire à copier.

from

Le début de la zone de mémoire où la copie doit être effectuée.

size

Le nombre d'octets à copier.

Valeurs de retour

Aucune valeur n'est retournée.


Remplit une zone de mémoire

  • « FFI::memcpy
  • FFI::new »
  • PHP Manual
  • FFI
  • Remplit une zone de mémoire

FFI::memset

(PHP 7 >= 7.4.0, PHP 8)

FFI::memset — Remplit une zone de mémoire

Description

public static FFI::memset(FFI\CData &$ptr, int $value, int $size): void

Remplit size octets de la zone de mémoire pointée par ptr avec l'octet donné value.

Liste de paramètres

ptr

Début de la zone de mémoire à remplir.

value

L'octet à remplir.

size

Le nombre d'octets à remplir.

Valeurs de retour

Aucune valeur n'est retournée.


Crée une structure de données C

  • « FFI::memset
  • FFI::scope »
  • PHP Manual
  • FFI
  • Crée une structure de données C

FFI::new

(PHP 7 >= 7.4.0, PHP 8)

FFI::new — Crée une structure de données C

Description

public FFI::new(FFI\CType|string $type, bool $owned = true, bool $persistent = false): ?FFI\CData

Crée une structure de données native du type C donné. N'importe quel type déclaré pour l'instance est autorisé.

Liste de paramètres

type

type est une déclaration C valide comme string, ou une instance de FFI\CType qui a déjà été créée.

owned

Création de données gérées ou non gérées. Les données gérées vivent avec l'objet FFI\CData retourné, et sont libérées lorsque la dernière référence à cet objet est libérée par le comptage de références ordinaire de PHP ou le ramasse-miette. Les données non gérées doivent être libérées en appelant FFI::free(), lorsqu'elles ne sont plus nécessaires.

persistent

Allouer la structure de données C de manière permanente sur le tas du système (en utilisant malloc()), ou sur le tas des requêtes PHP (en utilisant emalloc()).

Valeurs de retour

Retourne l'objet FFI\CData fraîchement créé, ou null en cas d'échec.

Historique

Version | Description
8.3.0 | L'appel statique de FFI::new() est désormais obsolète.


Instancie un objet FFI avec les déclarations C analysées lors du préchargement

  • « FFI::new
  • FFI::sizeof »
  • PHP Manual
  • FFI
  • Instancie un objet FFI avec les déclarations C analysées lors du préchargement

FFI::scope

(PHP 7 >= 7.4.0, PHP 8)

FFI::scope — Instancie un objet FFI avec les déclarations C analysées lors du préchargement

Description

public static FFI::scope(string $name): FFI

Instancie un objet FFI avec les déclarations C analysées lors du préchargement.

La méthode FFI::scope() peut être appelée plusieurs fois pour la même portée. Plusieurs références à la même portée peuvent être chargées en même temps.

Liste de paramètres

name

Le nom de la portée défini par une définition FFI_SCOPE spéciale.

Valeurs de retour

Retourne l'objet FFI fraîchement créé.

Voir aussi

  • FFI::load() - Charge les déclarations C à partir d'un fichier d'en-tête C


Récupère la taille des données ou des types C

  • « FFI::scope
  • FFI::string »
  • PHP Manual
  • FFI
  • Récupère la taille des données ou des types C

FFI::sizeof

(PHP 7 >= 7.4.0, PHP 8)

FFI::sizeof — Récupère la taille des données ou des types C

Description

public static FFI::sizeof(FFI\CData|FFI\CType &$ptr): int

Retourne la taille de l'objet FFI\CData ou FFI\CType objet.

Liste de paramètres

ptr

Le gestionnaire de la donnée ou du type C.

Valeurs de retour

Taille de la zone de mémoire pointée par ptr.


Crée une chaîne PHP à partir d'une zone de mémoire

  • « FFI::sizeof
  • FFI::type »
  • PHP Manual
  • FFI
  • Crée une chaîne PHP à partir d'une zone de mémoire

FFI::string

(PHP 7 >= 7.4.0, PHP 8)

FFI::string — Crée une chaîne PHP à partir d'une zone de mémoire

Description

public static FFI::string(FFI\CData &$ptr, ?int $size = null): string

Crée une string PHP à partir de size octets de la zone mémoire pointée par ptr.

Liste de paramètres

ptr

Le début de la zone de mémoire à partir de laquelle créer une string.

size

Le nombre d'octets à copier dans string. Si size est omis ou null, ptr doit être un tableau de caractères C de char C à terminaison nulle.

Valeurs de retour

La string PHP fraîchement créé.

Historique

Version | Description
8.0.0 | size est désormais nullable ; auparavant, sa valeur par défaut était 0.


Crée un objet FFI\CType à partir d'une déclaration C

  • « FFI::string
  • FFI::typeof »
  • PHP Manual
  • FFI
  • Crée un objet FFI\CType à partir d'une déclaration C

FFI::type

(PHP 7 >= 7.4.0, PHP 8)

FFI::type — Crée un objet FFI\CType à partir d'une déclaration C

Description

public FFI::type(string $type): ?FFI\CType

Cette fonction crée et retourne un objet FFI\CType pour la string donnée contenant une déclaration de type C. N'importe quel type déclaré pour l'instance est autorisé.

Liste de paramètres

type

Une déclaration C valide comme string.

Valeurs de retour

Retourne l'objet FFI\CType fraîchement créé, ou null en cas d'échec.

Historique

Version | Description
8.3.0 | L'appel statique de FFI::type() est désormais obsolète.


Récupère le FFI\CType de FFI\CData

  • « FFI::type
  • FFI\CData »
  • PHP Manual
  • FFI
  • Récupère le FFI\CType de FFI\CData

FFI::typeof

(PHP 7 >= 7.4.0, PHP 8)

FFI::typeof — Récupère le FFI\CType de FFI\CData

Description

public static FFI::typeof(FFI\CData &$ptr): FFI\CType

Récupère l'objet FFI\CType représentant le type de l'objet FFI\CData donné.

Liste de paramètres

ptr

Le gestionnaire du pointeur vers une structure de données C.

Valeurs de retour

Retourne l'objet FFI\CType représentant le type de l'objet FFI\CData donné.


Gestionnaire de données C

(PHP 7 >= 7.4.0, PHP 8)

Introduction

Les objets FFI\CData peuvent être utilisés de différentes manières, comme des données PHP normale :

  • Les données C de type scalaire peuvent être lues et assignées via la propriété $cdata, par exemple. $x = FFI::new('int'); $x->cdata = 42;
  • Les champs de type struct et union peuvent être accédés comme des propriétés d'objets PHP ordinaires, par exemple $cdata->field
  • Les éléments d'un tableau C sont accessibles comme les éléments d'un tableau PHP, par exemple. $cdata[$offset]
  • Les tableaux C peuvent être itérés en utilisant des instructions foreach.
  • Les tableaux C peuvent être utilisés comme arguments de count().
  • Les pointeurs C peuvent être déréférencés comme des tableaux, par exemple $cdata[0]
  • Les pointeurs C peuvent être comparés à l'aide d'opérateurs de comparaison ordinaires (<, <=, ==, !=, >=, >).
  • Les pointeurs C peuvent être incrémentés et décrémentés à l'aide des opérations ordinaires ( +/-/ / ). ++/–-, par exemple $cdata += 5
  • Les pointeurs C peuvent être soustraits d'un autre à l'aide d'opérations ordinaires -.
  • Les pointeurs C vers des fonctions peuvent être appelés comme une fermeture PHP classique, par exemple $cdata()
  • Toute donnée C peut être dupliquée en utilisant l'opérateur clone, par exemple $cdata2 = clone $cdata;
  • Toutes les données C peuvent être visualisées à l'aide de var_dump(), print_r(), etc.
  • FFI\CData peut maintenant être attribué à des structures et des champs à partir de PHP 8.3.0.

Note: Les limitations notables sont que les instances de FFI\CData ne supportent pas les fonctions isset(), empty() et unset(), et que les structs et unions C enveloppés n'implémentent pas Traversable.

Synopsis de la classe

final class FFI\CData {
}

Historique

Version | Description
8.3.0 | FFI\CData peut maintenant être attribué à des structures et des champs.


Gestionnaire de type C

(PHP 7 >= 7.4.0, PHP 8)

Introduction

Synopsis de la classe

final class FFI\CType {
/* Constantes */
public const int TYPE_VOID;
public const int TYPE_FLOAT;
public const int TYPE_DOUBLE;
public const int TYPE_LONGDOUBLE;
public const int TYPE_UINT8;
public const int TYPE_SINT8;
public const int TYPE_UINT16;
public const int TYPE_SINT16;
public const int TYPE_UINT32;
public const int TYPE_SINT32;
public const int TYPE_UINT64;
public const int TYPE_SINT64;
public const int TYPE_ENUM;
public const int TYPE_BOOL;
public const int TYPE_CHAR;
public const int TYPE_POINTER;
public const int TYPE_FUNC;
public const int TYPE_ARRAY;
public const int TYPE_STRUCT;
public const int ATTR_CONST;
public const int ATTR_INCOMPLETE_TAG;
public const int ATTR_VARIADIC;
public const int ATTR_INCOMPLETE_ARRAY;
public const int ATTR_VLA;
public const int ATTR_UNION;
public const int ATTR_PACKED;
public const int ATTR_MS_STRUCT;
public const int ATTR_GCC_STRUCT;
public const int ABI_DEFAULT;
public const int ABI_CDECL;
public const int ABI_FASTCALL;
public const int ABI_THISCALL;
public const int ABI_STDCALL;
public const int ABI_PASCAL;
public const int ABI_REGISTER;
public const int ABI_MS;
public const int ABI_SYSV;
public const int ABI_VECTORCALL;
/* Méthodes */
public getAlignment(): int
public getArrayElementType(): FFI\CType
public getArrayLength(): int
public getAttributes(): int
public getEnumKind(): int
public getFuncABI(): int
public getFuncParameterCount(): int
public getFuncParameterType(int $index): FFI\CType
public getFuncReturnType(): FFI\CType
public getKind(): int
public getName(): string
public getPointerType(): FFI\CType
public getSize(): int
public getStructFieldNames(): array
public getStructFieldOffset(string $name): int
public getStructFieldType(string $name): FFI\CType
}

Constantes pré-définies

FFI\CType::TYPE_VOID

FFI\CType::TYPE_FLOAT

FFI\CType::TYPE_DOUBLE

FFI\CType::TYPE_LONGDOUBLE

FFI\CType::TYPE_UINT8

FFI\CType::TYPE_SINT8

FFI\CType::TYPE_UINT16

FFI\CType::TYPE_SINT16

FFI\CType::TYPE_UINT32

FFI\CType::TYPE_SINT32

FFI\CType::TYPE_UINT64

FFI\CType::TYPE_SINT64

FFI\CType::TYPE_ENUM

FFI\CType::TYPE_BOOL

FFI\CType::TYPE_CHAR

FFI\CType::TYPE_POINTER

FFI\CType::TYPE_FUNC

FFI\CType::TYPE_ARRAY

FFI\CType::TYPE_STRUCT

FFI\CType::ATTR_CONST

FFI\CType::ATTR_INCOMPLETE_TAG

FFI\CType::ATTR_VARIADIC

FFI\CType::ATTR_INCOMPLETE_ARRAY

FFI\CType::ATTR_VLA

FFI\CType::ATTR_UNION

FFI\CType::ATTR_PACKED

FFI\CType::ATTR_MS_STRUCT

FFI\CType::ATTR_GCC_STRUCT

FFI\CType::ABI_DEFAULT

FFI\CType::ABI_CDECL

FFI\CType::ABI_FASTCALL

FFI\CType::ABI_THISCALL

FFI\CType::ABI_STDCALL

FFI\CType::ABI_PASCAL

FFI\CType::ABI_REGISTER

FFI\CType::ABI_MS

FFI\CType::ABI_SYSV

FFI\CType::ABI_VECTORCALL

Sommaire

  • FFI\CType::getAlignment — Description
  • FFI\CType::getArrayElementType — Description
  • FFI\CType::getArrayLength — Description
  • FFI\CType::getAttributes — Description
  • FFI\CType::getEnumKind — Description
  • FFI\CType::getFuncABI — Description
  • FFI\CType::getFuncParameterCount — Description
  • FFI\CType::getFuncParameterType — Description
  • FFI\CType::getFuncReturnType — Description
  • FFI\CType::getKind — Description
  • FFI\CType::getName — Description
  • FFI\CType::getPointerType — Description
  • FFI\CType::getSize — Description
  • FFI\CType::getStructFieldNames — Description
  • FFI\CType::getStructFieldOffset — Description
  • FFI\CType::getStructFieldType — Description


Description

  • « FFI\CType
  • FFI\CType::getArrayElementType »
  • PHP Manual
  • FFI\CType
  • Description

FFI\CType::getAlignment

(PHP 8 >= 8.1.0)

FFI\CType::getAlignment — Description

Description

public FFI\CType::getAlignment(): int

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « FFI\CType::getAlignment
  • FFI\CType::getArrayLength »
  • PHP Manual
  • FFI\CType
  • Description

FFI\CType::getArrayElementType

(PHP 8 >= 8.1.0)

FFI\CType::getArrayElementType — Description

Description

public FFI\CType::getArrayElementType(): FFI\CType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « FFI\CType::getArrayElementType
  • FFI\CType::getAttributes »
  • PHP Manual
  • FFI\CType
  • Description

FFI\CType::getArrayLength

(PHP 8 >= 8.1.0)

FFI\CType::getArrayLength — Description

Description

public FFI\CType::getArrayLength(): int

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « FFI\CType::getArrayLength
  • FFI\CType::getEnumKind »
  • PHP Manual
  • FFI\CType
  • Description

FFI\CType::getAttributes

(PHP 8 >= 8.1.0)

FFI\CType::getAttributes — Description

Description

public FFI\CType::getAttributes(): int

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « FFI\CType::getAttributes
  • FFI\CType::getFuncABI »
  • PHP Manual
  • FFI\CType
  • Description

FFI\CType::getEnumKind

(PHP 8 >= 8.1.0)

FFI\CType::getEnumKind — Description

Description

public FFI\CType::getEnumKind(): int

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « FFI\CType::getEnumKind
  • FFI\CType::getFuncParameterCount »
  • PHP Manual
  • FFI\CType
  • Description

FFI\CType::getFuncABI

(PHP 8 >= 8.1.0)

FFI\CType::getFuncABI — Description

Description

public FFI\CType::getFuncABI(): int

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « FFI\CType::getFuncABI
  • FFI\CType::getFuncParameterType »
  • PHP Manual
  • FFI\CType
  • Description

FFI\CType::getFuncParameterCount

(PHP 8 >= 8.1.0)

FFI\CType::getFuncParameterCount — Description

Description

public FFI\CType::getFuncParameterCount(): int

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « FFI\CType::getFuncParameterCount
  • FFI\CType::getFuncReturnType »
  • PHP Manual
  • FFI\CType
  • Description

FFI\CType::getFuncParameterType

(PHP 8 >= 8.1.0)

FFI\CType::getFuncParameterType — Description

Description

public FFI\CType::getFuncParameterType(int $index): FFI\CType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

index

Valeurs de retour


Description

  • « FFI\CType::getFuncParameterType
  • FFI\CType::getKind »
  • PHP Manual
  • FFI\CType
  • Description

FFI\CType::getFuncReturnType

(PHP 8 >= 8.1.0)

FFI\CType::getFuncReturnType — Description

Description

public FFI\CType::getFuncReturnType(): FFI\CType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « FFI\CType::getFuncReturnType
  • FFI\CType::getName »
  • PHP Manual
  • FFI\CType
  • Description

FFI\CType::getKind

(PHP 8 >= 8.1.0)

FFI\CType::getKind — Description

Description

public FFI\CType::getKind(): int

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « FFI\CType::getKind
  • FFI\CType::getPointerType »
  • PHP Manual
  • FFI\CType
  • Description

FFI\CType::getName

(PHP 7 >= 7.4.0, PHP 8)

FFI\CType::getName — Description

Description

public FFI\CType::getName(): string

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « FFI\CType::getName
  • FFI\CType::getSize »
  • PHP Manual
  • FFI\CType
  • Description

FFI\CType::getPointerType

(PHP 8 >= 8.1.0)

FFI\CType::getPointerType — Description

Description

public FFI\CType::getPointerType(): FFI\CType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « FFI\CType::getPointerType
  • FFI\CType::getStructFieldNames »
  • PHP Manual
  • FFI\CType
  • Description

FFI\CType::getSize

(PHP 8 >= 8.1.0)

FFI\CType::getSize — Description

Description

public FFI\CType::getSize(): int

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « FFI\CType::getSize
  • FFI\CType::getStructFieldOffset »
  • PHP Manual
  • FFI\CType
  • Description

FFI\CType::getStructFieldNames

(PHP 8 >= 8.1.0)

FFI\CType::getStructFieldNames — Description

Description

public FFI\CType::getStructFieldNames(): array

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « FFI\CType::getStructFieldNames
  • FFI\CType::getStructFieldType »
  • PHP Manual
  • FFI\CType
  • Description

FFI\CType::getStructFieldOffset

(PHP 8 >= 8.1.0)

FFI\CType::getStructFieldOffset — Description

Description

public FFI\CType::getStructFieldOffset(string $name): int

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

name

Valeurs de retour


Description

  • « FFI\CType::getStructFieldOffset
  • Exceptions FFI »
  • PHP Manual
  • FFI\CType
  • Description

FFI\CType::getStructFieldType

(PHP 8 >= 8.1.0)

FFI\CType::getStructFieldType — Description

Description

public FFI\CType::getStructFieldType(string $name): FFI\CType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

name

Valeurs de retour


Exceptions FFI

(No version information available, might only be in Git)

Introduction

Synopsis de la classe

class FFI\Exception extends Error {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


Exceptions de l'analyseur syntaxique FFI

(PHP 7 >= 7.4.0, PHP 8)

Introduction

Synopsis de la classe

final class FFI\ParserException extends FFI\Exception {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


OPcache

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Preloading
  • Fonctions OPcache
    • opcache_compile_file — Compile 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

OPcache peut seulement être compilé comme une extension partagée. Si vous avez désactivé la compilation des extensions par défaut avec --disable-all, vous devez compiler PHP avec l'option --enable-opcache pour que OPcache soit disponible.

Une fois compilé, vous pouvez utiliser la directive de configuration zend_extension pour charger l'extension OPcache dans PHP. Ceci peut être réalisé avec zend_extension=/full/path/to/opcache.so sur les plateformes non-Windows, etzend_extension=C:\path\to\php_opcache.dll sur Windows.

Note:

Si vous voulez utiliser OPcache avec » Xdebug, vous devez charger OPcache avant Xdebug.

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 ; antérieur à PHP 7.2.0
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.

Sur Windows, opcache.file_cache_fallback devrait être activé, et opcache.file_cache devrait être définie à un dossier écrivable déjà existant.

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" | INI_ALL |
opcache.enable_cli | "0" | INI_SYSTEM | Entre PHP 7.1.2 et 7.1.6 inclusivement, la valeur par défaut était de "1"
opcache.memory_consumption | "128" | INI_SYSTEM |
opcache.interned_strings_buffer | "8" | INI_SYSTEM |
opcache.max_accelerated_files | "10000" | INI_SYSTEM |
opcache.max_wasted_percentage | "5" | INI_SYSTEM |
opcache.use_cwd | "1" | INI_SYSTEM |
opcache.validate_timestamps | "1" | INI_ALL |
opcache.revalidate_freq | "2" | INI_ALL |
opcache.revalidate_path | "0" | INI_ALL |
opcache.save_comments | "1" | INI_SYSTEM |
opcache.fast_shutdown | "0" | INI_SYSTEM | Supprimé en PHP 7.2.0.
opcache.enable_file_override | "0" | INI_SYSTEM |
opcache.optimization_level | "0x7FFEBFFF" | INI_SYSTEM | Modifié depuis 0x7FFFBFFF en PHP 7.3.0
opcache.inherited_hack | "1" | INI_SYSTEM | Supprimé en PHP 7.3.0
opcache.dups_fix | "0" | INI_ALL |
opcache.blacklist_filename | "" | INI_SYSTEM |
opcache.max_file_size | "0" | INI_SYSTEM |
opcache.consistency_checks | "0" | INI_ALL | >Désactivé à partir de PHP 8.1.18 et 8.2.5. Supprimé à partir de PHP 8.3.0.
opcache.force_restart_timeout | "180" | INI_SYSTEM |
opcache.error_log | "" | INI_SYSTEM |
opcache.log_verbosity_level | "1" | INI_SYSTEM |
opcache.record_warnings | "0" | INI_SYSTEM | Disponible à partir de PHP 8.0.0.
opcache.preferred_memory_model | "" | INI_SYSTEM |
opcache.protect_memory | "0" | INI_SYSTEM |
opcache.mmap_base | null | INI_SYSTEM |
opcache.restrict_api | "" | INI_SYSTEM |
opcache.file_update_protection | "2" | INI_ALL |
opcache.huge_code_pages | "0" | INI_SYSTEM |
opcache.lockfile_path | "/tmp" | INI_SYSTEM |
opcache.opt_debug_level | "0" | INI_SYSTEM | Disponible à partir de PHP 7.1.0
opcache.file_cache | NULL | INI_SYSTEM |
opcache.file_cache_only | "0" | INI_SYSTEM |
opcache.file_cache_consistency_checks | "1" | INI_SYSTEM |
opcache.file_cache_fallback | "1" | INI_SYSTEM | Windows uniquement.
opcache.validate_permission | "0" | INI_SYSTEM | Disponible à partir de PHP 7.0.14
opcache.validate_root | "0" | INI_SYSTEM | Disponible à partir de PHP 7.0.14
opcache.preload | "" | INI_SYSTEM | Disponible à partir de PHP 7.4.0
opcache.preload_user | "" | INI_SYSTEM | Disponible à partir de PHP 7.4.0
opcache.cache_id | "" | INI_SYSTEM | Windows uniquement. Disponible à partir de PHP 7.4.0
opcache.jit | "tracing" | INI_ALL | Disponible à partir de PHP 8.0.0
opcache.jit_buffer_size | "0" | INI_SYSTEM | Disponible à partir de PHP 8.0.0
opcache.jit_debug | "0" | INI_ALL | Disponible à partir de PHP 8.0.0
opcache.jit_bisect_limit | "0" | INI_ALL | Disponible à partir de PHP 8.0.0
opcache.jit_prof_threshold | "0.005" | INI_ALL | Disponible à partir de PHP 8.0.0
opcache.jit_max_root_traces | "1024" | INI_SYSTEM | Disponible à partir de PHP 8.0.0
opcache.jit_max_side_traces | "128" | INI_SYSTEM | Disponible à partir de PHP 8.0.0
opcache.jit_max_exit_counters | "8192" | INI_SYSTEM | Disponible à partir de PHP 8.0.0
opcache.jit_hot_loop | "64" | INI_SYSTEM | Disponible à partir de PHP 8.0.0
opcache.jit_hot_func | "127" | INI_SYSTEM | Disponible à partir de PHP 8.0.0
opcache.jit_hot_return | "8" | INI_SYSTEM | Disponible à partir de PHP 8.0.0
opcache.jit_hot_side_exit | "8" | INI_SYSTEM | Disponible à partir de PHP 8.0.0
opcache.jit_blacklist_root_trace | "16" | INI_ALL | Disponible à partir de PHP 8.0.0
opcache.jit_blacklist_side_trace | "8" | INI_ALL | Disponible à partir de PHP 8.0.0
opcache.jit_max_loop_unrolls | "8" | INI_ALL | Disponible à partir de PHP 8.0.0
opcache.jit_max_recursive_calls | "2" | INI_ALL | Disponible à partir de PHP 8.0.0
opcache.jit_max_recursive_returns | "2" | INI_ALL | Disponible à partir de PHP 8.0.0
opcache.jit_max_polymorphic_calls | "2" | INI_ALL | Disponible à partir de PHP 8.0.0
Pour plus de détails sur les modes INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

opcache.enable bool

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 bool

Active le cache d'opcode pour la version CLI de PHP.

opcache.memory_consumption int

La taille de la mémoire partagée utilisée par OPcache, en megabytes. La valeur minimale permissible est "8", qui est forcé si une valeur plus petite est définie.

opcache.interned_strings_buffer int

La quantité de mémoire utilisée pour stocker des chaînes internes, en megabytes. Cette directive de configuration est ignorée dans PHP < 5.3.0.

opcache.max_accelerated_files int

Le nombre maximal de clés (et donc, de scripts) dans la table de hachage 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, 262237, 524521, 1048793 } qui est plus grand ou égal que la valeur configurée. La valeur minimale est 200. La valeur maximale est 100000 dans PHP < 5.5.6, et 1000000 dans les versions ultérieur. Les valeurs hors de cette intervalle sont fixées à l'intervalle autorisé.

opcache.max_wasted_percentage int

Le pourcentage maximum de mémoire gaspillée autorisée avant qu'un redémarrage ne soit programmé, s'il n'y a pas assez de mémoire disponible. La valeur maximale permissible est "50", qui est forcé si une valeur plus large est définie.

opcache.use_cwd bool

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 fonctionnalité améliore les performances, mais peut casser les applications existantes.

opcache.validate_timestamps bool

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.

Note: OPcache peut toujours valider l'horodatage d'un fichier lors de la compilation si les options opcache.file_update_protection ou opcache.max_file_size sont définies sur des valeurs non nulles.

opcache.revalidate_freq int

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érifiera les mises à jour à chaque requête.

Cette directive de configuration est ignorée si opcache.validate_timestamps est désactivé.

opcache.revalidate_path bool

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 bool

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.fast_shutdown bool

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.

Cette directive a été supprimé dans PHP 7.2.0. Une variante de la séquence d'arrêt rapide a été intégré dans PHP et sera automatiquement utilisé si possible.

opcache.enable_file_override bool

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 int

La valeur par défaut consiste à appliquer toutes les optimisations sûres. Changer la valeur par défaut est surtout utile pour déboguer/développer l'optimiseur (voir aussi opcache.opt_debug_level).

opcache.inherited_hack bool

Cette directive de configuration est ignorée.

opcache.dups_fix bool

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 int

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 int

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.

Note:

Désactivé à partir de PHP 8.1.18 et 8.2.5. Supprimé à partir de PHP 8.3.0.

opcache.force_restart_timeout int

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élai 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 2 ou plus, un avertissement sera enregistrée dans le journal d'événements des erreurs lorsque ce comportement survient.

Cette directive n'est pas supporté sur Windows.

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 standard (qui sera le log des erreurs du serveur Web dans la plupart des cas).

opcache.log_verbosity_level int

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.record_warnings bool

Si cette option est activée, OPcache enregistrera les avertissements de compilation et les rejouera lors du prochain include, même s'il est servi depuis le cache.

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 bool

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".

opcache.file_update_protection string

Empêche la mise en cache des fichiers datant moins que ce nombre de secondes. Ceci protège de la mise en cache des fichiers incomplètement mis à jour. Si toutes les mises à jour de fichiers sont atomiques, les performances peuvent être augmenter en le définissant à 0. Cela permettra de mettre en cache les fichiers immédiatement.

opcache.huge_code_pages bool

Active ou désactive la copie de code PHP (segment de texte) dans des HUGE PAGES. Ceci devrait améliorer les performances, mais nécessite une configuration approprié du système d'exploitation. Disponible sur Linux à partir de PHP 7.0.0, et sur FreeBSD à partir de PHP 7.4.0.

opcache.lockfile_path string

Chemin absolue utilisé pour enregistrer les lockfiles partagés (pour *nix uniquement)

opcache.opt_debug_level string

Produit un vidage opcode pour déboguer les différents étapes d'optimisation. 0x10000 affichera les opcodes tel que le compilateur les produit avant qu'aucune optimisation se produisent alors que 0x20000 affichera les codes optimisés.

opcache.file_cache string

Active et définie le répertoire de cache de second niveau. Ceci devrait améliorer les performances quand la mémoire SHM est pleine, au redémarrage du serveur ou réinitialisation de SMH. La valeur par défaut "" désactive la mise en cache basée sur les fichiers.

opcache.file_cache_only bool

Active ou désactive la mise en cache de l'opcode dans la mémoire partagée.

Note:

Antérieur à PHP 8.1.0, désactiver cette directive avec un fichier de cache déjà remplis nécessite le vidage manuel du cache.

opcache.file_cache_consistency_checks bool

Active ou désactive la validation de la somme de contrôle lorsque le script est chargé à partir du cache de fichiers.

opcache.file_cache_fallback bool

Insinue opcache.file_cache_only=1 pour un certain processus qui a échoué de se rattacher à la mémoire partagée (pour Windows uniquement). Le cache de fichiers activé explicitement est requis.

Attention

Désactiver cette option de configuration peut empêcher les processus de démarrer, Disabling this configuration option may prevent processes to start, et est donc découragé.

opcache.validate_permission bool

Valide les permissions des fichiers mises en cache par rapport à l'utilisateur actuel.

opcache.validate_root bool

Empêche la collision de noms dans les environnements `chroot`ées. Ceci devrait être activé dans tous les environnements `chroot`ées pour empêcher l'accès aux fichiers en-dehors du chroot.

opcache.preload string

Spécifie un script PHP qui sera compilé et exécuté lors du démarrage du serveur, et qui peut précharger d'autres fichiers, soit grâce à include ou en utilisant la fonction opcache_compile_file(). Toutes les entités (par exemple fonctions et classes) définies dans ces fichiers seront disponibles aux requêtes prêt à l'emploi, jusqu'à ce que le serveur soit éteint.

Note:

Le préchargement n'est pas supporté sur Windows.

opcache.preload_user string

Permet au préchargement d'être exécuté en tant qu'utilisateur système spécifié. Ceci est utile pour les serveurs qui démarrent en tant que root avant de passer à un utilisateur système non privilégié. Le préchargement en tant que root n'est pas autorisé par défaut pour des raisons de sécurité, sauf si cette directive est explicitement définie sur root.

opcache.cache_id string

Sur Windows, tous les processus exécutant le même PHP SAPI sous le même compte utilisateur ayant le même ID de cache partage une instance unique de OPcache. La valeur de l'ID de cache peut être choisi librement.

Astuce

Pour IIS, des pools d'applications différentes peuvent avoir leur propre instance OPcache en utilisant la variable d'environnement APP_POOL_ID comme opcache.cache_id. For IIS, different application pools can have their own OPcache instance by using the environment variable APP_POOL_ID as opcache.cache_id.

opcache.jit string|int

Pour un usage typique, cette option accepte une des quatre valeur string suivante :

  • disable: Désactivé complètement, ne peut pas être activé lors du runtime.
  • off: Désactivé, mais peut être activé lors du runtime.
  • tracing/on: Utilise le tracing JIT. Activé par défaut et recommandé pour la plupart des utilisateurs.
  • function: Utilise le function JIT.

Pour un usage avancé, cette option accepte un entier à 4 chiffre CRTO, où les chiffres signifient :

C (Drapeaux d'optimisation spécifique au CPU)
  • 0: Désactive les optimisations spécifique de CPU.
  • 1: Active l'usage d'AVX, si le CPU le supporte.
R (allocation de registre)
  • 0: N'accomplie aucune allocation de registre
  • 1: Accomplie des allocations de registre au niveau d'un block.
  • 2: Accomplie des allocations de registre globale.
T (trigger/déclencheur)
  • 0: Compile toutes les fonctions lors du chargement du script.
  • 1: Compile les fonctions lors de leur première exécution.
  • 2: Profile les fonctions lors de la première requête et compile les fonctions les plus chaudes juste après.
  • 3: Profile à la volée et compile les fonctions chaudes.
  • 4: Actuellement inutilisé.
  • 5: Utilise le tracing JIT. Profile à la volée et compile les traces pour les segments de code chaud.
O (niveau d'optimisation)
  • 0: Pas de JIT.
  • 1: JIT minimal (appelle les handlers standard de la VM).
  • 2: Inline les handlers de la VM.
  • 3: Utilise l'inférence de type.
  • 4: Utilise un graphe d'appel.
  • 5: Optimise le script entier.
Le mode "tracing" corresponds à CRTO = 1254, le mode "function" corresponds à CRTO = 1205.

opcache.jit_buffer_size int

La quantité de mémoire partagé réservé pour du code compilé JIT. Une valeur de zéro désactive le JIT.

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..
opcache.jit_debug int

Un masque de bit spécifiant quelle sortie de débug de JIT à activer Pour les valeurs possibles, consultez » zend_jit.h (voir les définitions de macro commençant par ZEND_JIT_DEBUG).

opcache.jit_bisect_limit int

Option de débogage qui désactive la compilation JIT après la compilation d'un certain nombre de fonctions. Ceci peut être utile pour bisect la source d'une mauvaise compilation JIT. Remarque : cette option ne fonctionne que lorsque le déclencheur JIT est défini à 0 (compilation au chargement du script) ou 1 (compilation à la première exécution), par exemple, opcache.jit=1215. Voir plus dans l'option opcache.jit.

opcache.jit_prof_threshold float

Lors de l'utilisation du mode de déclencheur "profile les fonctions lors de la première requête", cette limite détermine si une fonction est considéré chaude. Le nombre d'appels à la fonction divisé par le nombre d'appel à toutes les fonctions doit être supérieur à cette limite. Par exemple, un limite de 0.005 signifie qu'une fonction qui correspond à plus de 0.5% de tout les appels sera compilé JIT.

opcache.jit_max_root_traces int

Nombre maximal de traces racines (root traces). La trace racine est un flux d'exécution prenant d'abord un chemin à travers le code, qui est une unité de la compilation JIT. JIT ne compilera pas de nouveau code s'il atteint cette limite.

opcache.jit_max_side_traces int

Nombre maximal de traces adjacentes (side trace) une trace racine peut avoir. La trace adjacente est un autre flux d'exécution qui ne suit pas suit pas le chemin de la trace racine compilée. Les traces adjacentes appartenant à la même trace racine ne seront pas compilées si elle atteint cette limite.

opcache.jit_max_exit_counters int

Nombre maximal de compteur de sortie de trace adjacente. Ceci limite le nombre total de traces adjacentes qu'il peut y avoir, à travers toutes les traces racines.

opcache.jit_hot_loop int

Après combien d'itération une boucle est considéré chaude. L'intervalle de valeurs valides est [0,255] ; pour tout paramètre hors de cette plage, par exemple -1 ou 256, la valeur par défaut sera utilisée à la place. Spécialement, une valeur nulle désactivera le JIT pour tracer et compiler toutes les boucles.

opcache.jit_hot_func int

Après combien d'appel une fonction est considéré chaude. La plage de valeurs valides est [0,255] ; pour tout paramètre hors de cette plage, par exemple -1 ou 256, la valeur par défaut sera utilisée à la place. Spécialement, une valeur nulle désactivera le JIT pour tracer et compiler toutes les fonctions.

opcache.jit_hot_return int

Après combien de retours un retour est considéré chaud. La plage de valeurs valides est [0,255] ; pour tout paramètre hors de cette plage, par exemple -1 ou 256, la valeur par défaut sera utilisée à la place. Spécialement, une valeur nulle désactivera le JIT pour tracer et compiler toutes retournes.

opcache.jit_hot_side_exit int

Après combien de sortie, une sortie adjacente est considéré chaude. La plage de valeurs valides est [0,255] ; pour tout paramètre hors de cette plage, par exemple -1 ou 256, la valeur par défaut sera utilisée à la place. Spécialement, une valeur nulle désactivera le JIT pour tracer et compiler toutes les sorties latérales.

opcache.jit_blacklist_root_trace int

Nombre maximal de tentatives de compilation d'une trace racine avant que celle-ci ne soit exclue.

opcache.jit_blacklist_side_trace int

Nombre maximal de tentatives de compilation d'une trace adjacente avant que celle-ci ne soit exclue.

opcache.jit_max_loop_unrolls int

Nombre maximal de tentative à dérouler une boucle dans une trace adjacente, tentant d'atteindre la trace racine et de fermer la boucle extérieur.

opcache.jit_max_recursive_calls int

Nombre maximal d'appel récursif déroulé dans une boucle.

opcache.jit_max_recursive_returns int

Nombre maximal de retour récursif déroulé dans une boucle.

opcache.jit_max_polymorphic_calls int

Nombre maximal de tentative à inline un appel polymorphic (dynamique ou méthode). Appels au-dessus de cette limité sont traité comme megamorphic et ne sont pas inlined.


  • « Configuration à l'exécution
  • Preloading »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

Cette extension ne définit aucune ressource.


Preloading

As of PHP 7.4.0, PHP can be configured to preload scripts into the opcache when the engine starts. Any functions, classes, interfaces, or traits (but not constants) in those files will then become globally available for all requests without needing to be explicitly included. That trades convenience and performance (because the code is always available) for baseline memory usage. It also requires restarting the PHP process to clear pre-loaded scripts, meaning this feature is only practical to use in production, not in a development environment.

Note that the optimal tradeoff between performance and memory may vary with the application. "Preload everything" may be the easiest strategy, but not necessarily the best strategy. Additionally, preloading is only useful when there is a persistent process from one request to another. That means while it can work in a CLI script if the opcache is enabled, it's generally pointless. The exception is when using preloading on FFI libraries.

Note:

Preloading is not supported on Windows.

Configuring preloading involves two steps, and requires that the opcache be enabled. First, set the opcache.preload value in php.ini:

opcache.preload=preload.php

preload.php is an arbitrary file that will run once at server startup (PHP-FPM, mod_php, etc.) and load code into persistent memory. In servers that startup as root before switching to an unprivileged system user, or if PHP will be run as root (not recommended), the opcache.preload_user value can specify the system user to run the preloading. Running preloading as root is not allowed by default. Set opcache.preload_user=root to explicitly allow it.

In the preload.php script, any file referenced by include, include_once, require, require_once, or opcache_compile_file() will be parsed into persistent memory. In the following example, all .php files in the src directory will be preloaded, unless they are a Test file.

<?php
$directory = new RecursiveDirectoryIterator(__DIR__ . '/src');
$fullTree = new RecursiveIteratorIterator($directory);
$phpFiles = new RegexIterator($fullTree, '/.+((?<!Test)+\.php$)/i', RecursiveRegexIterator::GET_MATCH);

foreach ($phpFiles as $key => $file) {
require_once $file[0];
}
?>

Both include and opcache_compile_file() will work, but have different implications for how code gets handled.

  • include will execute code in the file, while opcache_compile_file() will not. That means only the former supports conditional declaration (functions declared inside an if-block).
  • Because include will execute code, nested included files will also be parsed and their declarations preloaded.
  • opcache_compile_file() can load files in any order. That is, if a.php defines class A and b.php defines class B that extends A, then opcache_compile_file() can load those two files in any order. When using include, however, a.php must be included first.
  • In either case, if a later script includes a file that has already been preloaded then its contents will still execute, but any symbols it defines will not be re-defined. Using include_once will not prevent the file from being included a second time. It may be necessary to load a file again in order to include global constants defined in it, as those are not handled by preloading.
Which approach is better therefore depends on the desired behavior. With code that would otherwise use an autoloader, opcache_compile_file() allows for greater flexibility. With code that would otherwise be loaded manually, include will be more robust.


Fonctions OPcache

Sommaire

  • opcache_compile_file — Compile 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


Compile et met en cache un script PHP sans l'exécuter

  • « Fonctions OPcache
  • opcache_get_configuration »
  • PHP Manual
  • Fonctions OPcache
  • Compile et met en cache un script PHP sans l'exécuter

opcache_compile_file

(PHP 5 >= 5.5.5, PHP 7, PHP 8, PECL ZendOpcache > 7.0.2)

opcache_compile_file — Compile et met en cache un script PHP sans l'exécuter

Description

opcache_compile_file(string $filename): bool

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

filename

Le chemin vers le fichier PHP à compiler et mettre en cache.

Valeurs de retour

Retourne true si filename a été compilé avec succès ou false si une erreur survient.

Erreurs / Exceptions

Si filename 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.0, PHP 7, PHP 8, PECL ZendOpcache > 7.0.2)

opcache_get_configuration — Récupère les informations de configuration du cache

Description

opcache_get_configuration(): array|false

Cette fonction retourne les informations de configuration de l'instance de cache.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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.0, PHP 7, PHP 8, PECL ZendOpcache > 7.0.2)

opcache_get_status — Récupère les informations de statut du cache

Description

opcache_get_status(bool $include_scripts = true): array|false

Cette fonction retourne les informations de statut de l'instance du cache en mémoire. Elle ne renvoie pas d'informations sur le cache de fichiers.

Liste de paramètres

include_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, ou false si une erreur survient.

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, PHP 8, PECL ZendOpcache >= 7.0.0)

opcache_invalidate — Invalide un script mis en cache

Description

opcache_invalidate(string $filename, bool $force = false): bool

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. Cette fonction n'invalide que le cache en mémoire et non le cache fichier.

Liste de paramètres

filename

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 filename 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() - Compile 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.5.11, PHP 7, PHP 8, PECL ZendOpcache >= 7.0.4)

opcache_is_script_cached — Indique si un script est dans le cache d'OPCache

Description

opcache_is_script_cached(string $filename): bool

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. Cette fonction ne vérifie que le cache en mémoire, pas le cache des fichiers.

Liste de paramètres

filename

Le chemin vers le script PHP à vérifier.

Valeurs de retour

Retourne true si le script filename est présent dans le cache d'OPCache, false sinon.

Voir aussi

  • opcache_compile_file() - Compile 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, PHP 8, PECL ZendOpcache >= 7.0.0)

opcache_reset — Ré-initialise le contenu du cache opcode

Description

opcache_reset(): bool

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. Cette fonction ne réinitialise que le cache en mémoire, pas le cache des fichiers.

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é ou si la redémarrage est en attente ou en cours (voir opcache_get_status()).

Voir aussi

  • opcache_get_status() - Récupère les informations de statut du cache


Bufferisation de sortie

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Output Buffering
  • Flushing System Buffers
  • User-Level Output Buffers
    • What Output Is Buffered?
    • Nesting Output Buffers
    • Buffer Size
    • Operations Allowed On Buffers
    • Output Handlers
    • Working With Output Handlers
    • Flags Passed To Output Handlers
    • Output Handler Return Values
  • Exemples
    • Utilisation simple
    • Utilisation de la réécriture de sortie
  • Fonctions de bufferisation de sortie
    • flush — Vide les tampons de sortie du système
    • ob_clean — Nettoyer (effacer) le contenu du tampon de sortie actif.
    • ob_end_clean — Effacez (nettoyez) le contenu du tampon de sortie actif et désactivez-le.
    • ob_end_flush — Vide (envoie) la valeur de retour du gestionnaire de sortie actif et désactive le tampon de sortie actif
    • ob_flush — Vide (envoie) la valeur de retour du gestionnaire de sortie actif.
    • ob_get_clean — Obtiens le contenu du tampon de sortie actif et désactive-le
    • ob_get_contents — Retourne le contenu du tampon de sortie
    • ob_get_flush — Vide (envoie) la valeur de retour du gestionnaire de sortie actif, renvoie le contenu du tampon de sortie actif et le désactive.
    • 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_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.


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" | INI_PERDIR |
output_handler | null | INI_PERDIR |
implicit_flush | "0" | INI_ALL |
url_rewriter.tags | "form=" | INI_ALL | À partir de PHP 7.1.0, ce paramètre INI n'a d'effet que sur output_add_rewrite_var(). Antérieur à PHP 7.1.0, ce paramètre INI activait la prise en charge transparente de l'ID de session (voir session.trans_sid_tags).
url_rewriter.hosts | $_SERVER['HTTP_HOST'] est utilisé par défaut. | INI_ALL | Disponible à partir de PHP 7.1.0
Pour plus de détails sur les modes 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/int

La mise en mémoire tampon de la sortie pour tous les fichiers peut être activée en définissant cette directive sur "On". Pour limiter la taille du tampon, un nombre/quantité correspondant au nombre maximal d'octets autorisés peut être utilisé à la place de "On" pour la valeur de cette directive. Par exemple, output_buffering=4096.

output_handler string

La sortie des scripts peut être redirigée vers une fonction. Par exemple, en définissant output_handler sur mb_output_handler(), le codage des caractères sera converti de manière transparente vers le codage spécifié. La configuration de n'importe quel gestionnaire de sortie active automatiquement la mise en mémoire tampon de la sortie.

Note:

mb_output_handler() et ob_iconv_handler() ne peuvent pas être utilisés ensemble, et ob_gzhandler() et zlib.output_compression ne peuvent pas être utilisés avec l'un des éléments suivants : mb_output_handler(), ob_gzhandler(), zlib.output_compression, le gestionnaire 'URL-Rewriter' (voir session.use_trans_sid et output_add_rewrite_var()).

Note:

Seules les fonctions internes peuvent être utilisées avec cette directive. Pour les fonctions utilisateurs, utilisez ob_start().

implicit_flush bool

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 à toute fonction produisant une sortie (comme print ou echo) et chaque bloc 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().

url_rewriter.tags string
url_rewriter.tags spécifie les balises HTML et les attributs dans lesquels les URLs sont réécrites par les valeurs de output_add_rewrite_var(). Par défaut, c'est "form=". Ajouter "form=" ou n'importe quel attribut form ajoutera un élément input caché dans le form avec un attribut de nom et de valeur pour chaque paire nom-valeur transmise à output_add_rewrite_var().
Attention

Ajouter la même balise plus d'une fois à url_rewriter.tags utilisera uniquement la première occurrence pendant le processus de réécriture d'URL.

Note: Antérieur à PHP 7.1.0, url_rewriter.tags était utilisé pour spécifier session.trans_sid_tags.

url_rewriter.hosts string
url_rewriter.hosts spécifie les hôtes qui sont réécrits pour includes les valeurs de la fonction output_add_rewrite_var(). Par défaut $_SERVER['HTTP_HOST']. Plusieurs hôtes peuvent être spécifiés séparé par une virgule, aucun espace n'est autorisé entre les hôtes. Par exemple : php.net,wiki.php.net,bugs.php.net


Constantes pré-définies

Les constantes listées ici sont toujours disponibles dans PHP.

Indicateurs d'état transmis au gestionnaire de sortie

Les indicateurs suivants sont transmis au deuxième paramètre (phase) du gestionnaire de sortie défini par ob_start() sous forme de masque de bits :

PHP_OUTPUT_HANDLER_START (int)

Indique que l'affichage de la mémoire tampon a commencé.

PHP_OUTPUT_HANDLER_WRITE (int)

Indique que la mémoire tampon de sortie a commencé à être affichée, et qu'elle contient des données.

PHP_OUTPUT_HANDLER_FLUSH (int)

Indique que la mémoire tampon a été affichée.

PHP_OUTPUT_HANDLER_CLEAN (int)

Indique que la mémoire tampon de sortie a été nettoyée.

PHP_OUTPUT_HANDLER_FINAL (int)

Indique que c'est l'opération finale d'affichage de la mémoire tampon.

PHP_OUTPUT_HANDLER_CONT (int)

Indique que la mémoire tampon a été affichée, mais que la mise en mémoire tampon de la sortie continue.

C'est un alias de la constante PHP_OUTPUT_HANDLER_WRITE.

PHP_OUTPUT_HANDLER_END (int)

Indique que la mise en mémoire tampon de la sortie est terminée.

C'est un alias de la constante PHP_OUTPUT_HANDLER_FINAL.

Indicateurs de contrôle du tampon de sortie

Les indicateurs suivants peuvent être transmis au troisième paramètre (flags) du gestionnaire de sortie défini par ob_start() sous forme de masque de bits :

PHP_OUTPUT_HANDLER_CLEANABLE (int)

Contrôle si un tampon de sortie créé par la fonction ob_start() peut être supprimée par ob_clean(). Cet indicateur ne contrôle pas le comportement de ob_end_clean() ou ob_get_clean().

PHP_OUTPUT_HANDLER_FLUSHABLE (int)

Contrôle si un tampon de sortie créé par la fonction ob_start() peut être envoyée à la sortie standard par ob_flush(). Cet indicateur ne contrôle pas le comportement de ob_end_flush() ou ob_get_flush().

PHP_OUTPUT_HANDLER_REMOVABLE (int)

Contrôle si un tampon de sortie créé par la fonction ob_start() peut être supprimée avant la fin du script ou lors de l'appel de ob_end_clean(), ob_end_flush(), ob_get_clean() ou ob_get_flush().

PHP_OUTPUT_HANDLER_STDFLAGS (int)

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.

Indicateurs d'état du gestionnaire de sortie

Les indicateurs suivants font partie du masque de bits flags retourné par ob_get_status() :

PHP_OUTPUT_HANDLER_STARTED (int)

Indique que le gestionnaire de sortie a été appelé.

PHP_OUTPUT_HANDLER_DISABLED (int)

Indique que le gestionnaire de sortie est désactivé. Cet indicateur est défini lorsque le gestionnaire de sortie retourne false ou échoue lors du traitement du tampon, ou s'il a été défini avant d'appeler le gestionnaire de sortie.

PHP_OUTPUT_HANDLER_PROCESSED (int)

Indique que le gestionnaire de sortie a traité avec succès le tampon.


Output Buffering

Output buffering is the buffering (temporary storage) of output before it is flushed (sent and discarded) to the browser (in a web context) or to the shell (on the command line). While output buffering is active no output is sent from the script, instead the output is stored in an internal buffer.

Buffering Affecting PHP

PHP relies on the underlying software/hardware infrastructure when flushing output. Buffering implemented by consoles on the command line (e.g. line buffered) or web servers and browser in a web context (e.g. fully buffered) do affect when output is displayed to the end-user. Some of these effects can be eliminated by fine-tuning server settings and/or aligning buffer sizes of the various layers.

Output Buffering Control In PHP

PHP provides a fully buffered user-level output buffer with functions to start, manipulate and turn off the buffer (most ob_* functions), and two functions to flush the underlying system buffers (flush() and ob_implicit_flush()). Some of this functionality can be set and/or configured using the appropriate php.ini settings as well.

Use Cases

Output buffering is generally useful in situations when the buffered output is modified or inspected, or it is used more than once in a request; or when the controlled flushing of output is desired. Specific use cases include:

  • caching the result of compute/time intensive scripts for example by generating static HTML pages
  • re-using the generated output by displaying it, saving it to a file and/or sending it by email
  • flushing the head of an HTML page separate from the body allows browsers to load external resources while the script executes potentially more time consuming processes (e.g. database/file access, external network connection). This is only useful if the HTTP status code cannot change after the headers are sent
  • extracting information from functions that would otherwise produce output (e.g. phpinfo())
  • controlling the output of third-party code by modifying/using parts (e.g. extracting data, replacing words/phrases, adding missing HTML tags), or discarding it entirely under certain conditions (e.g. errors)
  • polyfilling certain unavailable web server functionality (e.g. compressing or encoding output)


Flushing System Buffers

PHP provides two related ways to flush (send and discard the contents of) system buffers: through calling flush() and through enabling implicit flushing with ob_implicit_flush() or the implicit_flush php.ini setting.

Output Flushing Behaviour

With implicit flushing disabled, PHP will flush output only when flush() is called or when the script ends.

With implicit flushing enabled, PHP will attempt to flush after every block of code resulting in output. Output in this context is non-zero length data that is:

  • outside of the <?php ?> tags
  • printed by language constructs and functions whose explicit purpose is to output user provided variables or strings such as echo, print, printf(), var_dump(), var_export(), vprintf()
  • printed by functions whose purpose is to collect and output
data/information on the running script or PHP such as
debug_print_backtrace(), phpcredits(),
phpinfo(),
ReflectionExtension::info()
  • printed by PHP on an uncaught exception or an unhandled error (subject to the settings of display_errors and error_reporting)
  • anything written to php://output

Note: Printing empty strings or sending headers is not considered output and will not result in a flush operation.

Avertissement

If implicit flushing is enabled, control characters (e.g. "\n", "\r", "\0") will trigger flushing as well.

Limitations

This functionality cannot flush user-level output buffers. To use these together, user-level output buffers must be flushed before flushing system buffers in order for PHP to produce any output.

Avertissement

Calling flush() or implicit flushing being enabled can interfere with output handlers of user-level output buffers that set and send headers in a web context (e.g. ob_gzhandler()) by sending headers before these handlers can do so.

Buffering implemented by the underlying software/hardware cannot be overridden by PHP and should be taken into account when working with PHP's buffer control functions. Checking the web servers/browsers/consoles buffering settings and working with these can alleviate possible issues. Working in a web context, either the web server's buffering settings or the script's buffering could be adjusted to work in tandem whereas working around the buffering strategies of various browsers can be achieved by adjusting buffering in the PHP script. On consoles that implement line buffering, newline characters could be inserted in the appropriate places before flushing output.

SAPI Differences In Flushing

Although flushing is implemented by each SAPI in a slightly different way, these implementations fall in one of two categories:

  • SAPIs used in a web context will flush headers first followed by the output. Apache2Handler, CGI, FastCGI and FPM are such SAPIs
  • other SAPIs such as CLI and embed will flush output only


User-Level Output Buffers

Sommaire

  • What Output Is Buffered?
  • Nesting Output Buffers
  • Buffer Size
  • Operations Allowed On Buffers
  • Output Handlers
  • Working With Output Handlers
  • Flags Passed To Output Handlers
  • Output Handler Return Values

User-level output buffers can be started, manipulated and terminated from PHP code. Each of these buffers includes an output buffer and an associated output handler function.

Turning Output Buffering On

Output buffering can be turned on by using the ob_start() function or by setting the output_buffering and output_handler php.ini settings. While both can create output buffers, ob_start() is more flexible as it accepts user-defined functions as output handlers and the operations allowed on the buffer (flush, clean, remove) can be set as well. Buffers started with ob_start() will be active from the line the function was called, while those started with output_buffering will be buffering output from the first line of the script.

PHP is also shipped with a built-in "URL-Rewriter" output handler which starts its own output buffer and only allows up to two instances of it running at any time (one for user-level URL-rewriting and one for transparent session id support). These buffers can be started by calling the output_add_rewrite_var() function and/or by enabling the session.use_trans_sid php.ini setting.

The bundled zlib extension has its own output buffer which can be enabled by using the zlib.output_compression php.ini setting.

Note: While "URL-Rewriter" is special in that it only allows up to two instances of it running at any one time, all user-level output buffers use the same underlying buffers used by ob_start() with their functionality implemented by a custom output handler function. As such, all of their functionality can be emulated by userland code.

Flushing, Accessing And Cleaning Buffer Contents

Flushing sends and discards the contents of the active buffer. Output buffers get flushed when the size of the output exceeds the size of the buffer; the script ends or ob_flush(), ob_end_flush() or ob_get_flush() is called.

Attention

Calling ob_end_flush() or ob_get_flush() will turn off the active buffer.

Attention

Flushing buffers will flush the return value of the output handler which can differ from the contents of the buffer. For example, using ob_gzhandler() will compress the output and flush the compressed output.

The contents of the active buffer can be retrieved by calling ob_get_contents(), ob_get_clean() or ob_get_flush().

If only the length of the buffer's contents are needed, ob_get_length() or ob_get_status() will return the length of the contents in bytes.

Attention

Calling ob_get_clean() or ob_get_flush() will turn off the active buffer after returning the its contents.

The contents of the active buffer can be cleaned by calling ob_clean(), ob_end_clean() or ob_get_clean().

Attention

Calling ob_end_clean() or ob_get_clean() will turn off the active buffer.

Turning Buffers Off

Output buffers can be turned off by calling ob_end_clean(), ob_end_flush(), ob_get_flush() or ob_get_clean().

Avertissement

Output buffers started without the PHP_OUTPUT_HANDLER_REMOVABLE flag cannot be turned off and may generate an E_NOTICE.

Every output buffer that has not been closed by the end of the script or when exit() is called will be flushed and turned off by PHP's shutdown process. The buffers will be flushed and turned off in reverse order of their starting up. The last buffered started will be first, the first buffer started will be last to be flushed and turned off.

Attention

If flushing of the buffer's contents is not desired, a custom output handler should be used to prevent flushing during shutdown.

Exceptions Thrown In Output Handlers

If an uncaught exception is thrown in an output handler the program terminates and the handler is invoked by the shutdown process after which the "Uncaught Exception" error message is flushed.

If the uncaught exception is thrown in a handler invoked by ob_flush(), ob_end_flush() or ob_get_flush(), the contents of the buffer are flushed before the error message.

If an uncaught exception is thrown in an output handler during shutdown, the handler is terminated and neither the contents of the buffer nor the error message is flushed.

Note: If a handler throws an exception its PHP_OUTPUT_HANDLER_DISABLED status flag is set.

Errors Raised In Output Handlers

If a non-fatal error is raised in an output handler the program continues execution.

If the non-fatal error is raised in a handler invoked by ob_flush(), ob_end_flush() or ob_get_flush(), the buffer flushes certain data depending on the return value of the handler. If the handler returns false the buffer and the error message are flushed. If the returns anything else the handler return value is flushed but not the error message.

Note: If a handler returns false its PHP_OUTPUT_HANDLER_DISABLED status flag is set.

If a fatal error is raised in an output handler the program terminates and the handler is invoked by the shutdown process after which the error message is flushed.

If the fatal error is raised in a handler invoked by ob_flush(), ob_end_flush() or ob_get_flush(), the contents of the buffers are flushed before the error message.

If a fatal error is raised in an output handler during shutdown the program terminates without flushing the buffer or the error message.

Output In Output Handlers

In specific circumstances, output produced in the handler is flushed along with the contents of the buffer. This output is not appended to the buffer and is not part of the string returned by ob_get_flush().

During flush operations (calling ob_flush(), ob_end_flush(), ob_get_flush() and during shutdown) if the return value of a handler is false the contents of the buffer are flushed followed by the output. If the handler is not invoked during shutdown the handler throwing an exception or exit() being called results in the same behavior.

Note: If a handler returns false its PHP_OUTPUT_HANDLER_DISABLED status flag is set.

Output Handler Status Flags

The handler status flags of the buffer's flags bitmask are set every time to the output handler is invoked and are part of the flags returned by ob_get_status(). If the handler successfully executes and does not return false, PHP_OUTPUT_HANDLER_STARTED and PHP_OUTPUT_HANDLER_PROCESSED is set. If the handler returns false or throws an exception while executing, PHP_OUTPUT_HANDLER_STARTED and PHP_OUTPUT_HANDLER_DISABLED is set.

Note: If the PHP_OUTPUT_HANDLER_DISABLED of a handler is set, the handler will not be invoked by calling ob_end_clean(), ob_end_flush(), ob_get_clean(), ob_get_flush() or during PHP's shutdown process. This flag has no effect on when calling ob_clean() or ob_flush().


What Output Is Buffered?

PHP's user-level output buffers buffer all output after they are started until they are turned off or the script ends. Output in the context of PHP's user-level output buffer is everything that PHP would display or send back to the browser. In practical terms, output is non-zero length data that is:

  • outside of the <?php ?> tags
  • printed by language constructs and functions whose explicit purpose is to output user provided variables or strings such as echo, print, printf(), var_dump(), var_export(), vprintf()
  • printed by functions whose purpose is to collect and output
data/information on the running script or PHP such as
debug_print_backtrace(), phpcredits(),
phpinfo(),
ReflectionExtension::info()
  • printed by PHP on an uncaught exception or an unhandled error (subject to the settings of display_errors and error_reporting)
  • anything written to php://output

Note: Data that is written directly to stdout or passed to an SAPI function with a similar functionality will not be captured by user-level output buffers. This includes writing data to stdout with fwrite() or sending headers using header() or setcookie().


Nesting Output Buffers

If there is an output buffer active when a new buffer is started, the new buffer will be nested inside the previously active buffer. The inner buffer will behave the same way regardless whether it is nested but output buffered by it will not be buffered by the outer buffer. Only output flushed by the inner buffer will be buffered by the outer buffer.

Most ob_* functions only work with the active output buffer (the last one started) therefore only the active buffer can be flushed, cleaned and turned off. The functions that work with other buffers are ob_list_handlers() which returns the list of all output handlers in use and ob_get_status() which can return information on the active buffer only or on all buffers in use.

Calling ob_get_level() or ob_get_status() will return the nesting level of the active output buffer.

Attention

The value for identical levels between ob_get_level() and ob_get_status() is off by one. For ob_get_level() the first level is 1, whereas for ob_get_status() the first level is 0.


Buffer Size

Buffer sizes are expressed by integers and represent the number of bytes the buffer can store without flushing. When the size of output in the buffer exceeds the size of the buffer, the contents of the buffer are sent to the output handler, its return value is flushed and the buffer is cleared.

With the exception of "URL-Rewriter", the size of output buffers can be set when the buffer is started. If set to 0, the output buffer is only limited by the memory available to PHP. If set to 1, the buffer is flushed after every block of code producing any non-zero length output.

The size of output buffers can be retrieved by calling ob_get_status().

Output buffers started with ob_start() will have their buffer sizes set to the integer value passed to the function's second chunk_size parameter. If omitted, it is set to 0.

The output buffer started with output_buffering set to "On" will have its buffer size set to 0. If set to an integer than buffer size will correspond to that number.

"URL-Rewriter"'s buffer size is set to 0, therefore it is only limited by the memory available to PHP.

The size of zlib's output buffer is controlled by the zlib.output_compression php.ini setting. If set to "On" the buffer size will be "16K"/16384. If set to an integer then buffer size will correspond to that number in bytes.


Operations Allowed On Buffers

The operations allowed on buffers can be controlled by passing one of the buffer control flags to ob_start()'s third flags parameter. If omitted, all operations are allowed by default. If 0 is used instead, the buffer cannot be flushed, cleaned or removed but it's contents can still be retrieved.

PHP_OUTPUT_HANDLER_CLEANABLE allows ob_clean() to clean the contents of the buffer.

Avertissement

The absence of the PHP_OUTPUT_HANDLER_CLEANABLE flag will not prevent ob_end_clean() or ob_get_clean() from clearing the contents of the buffer.

PHP_OUTPUT_HANDLER_FLUSHABLE allows ob_flush() to flush the contents of the buffer.

Avertissement

The absence of the PHP_OUTPUT_HANDLER_FLUSHABLE flag will not prevent ob_end_flush() or ob_get_flush() from flushing the contents of the buffer.

PHP_OUTPUT_HANDLER_REMOVABLE allows ob_end_clean(), ob_end_flush(), ob_get_clean() or ob_get_flush() to turn off the buffer.

PHP_OUTPUT_HANDLER_STDFLAGS, the combination of the three flags will allow each of the three operations to be performed on the buffer.


Output Handlers

Output handlers are callables associated with output buffers
that are invoked by calling ob_clean(),
ob_flush(), ob_end_flush(),
ob_get_flush(), ob_end_clean(),
ob_get_clean() or during PHP's shutdown process.

Note: The shutdown process will flush the return value of the handler.

If omitted or null when starting the output buffer the internal "default output handler" will be used which returns the unmodified contents of the buffer when invoked. Output handlers can be used to return a modified version of the buffer's contents and/or have side-effects (e.g. send headers).

PHP comes with two internal output handlers: "default output handler" and "URL-Rewriter" (which is integrated into its own output buffer and only up to two instances of it can be started).

The bundled extensions include four additional output handlers: mb_output_handler(), ob_gzhandler(), ob_iconv_handler(), ob_tidyhandler().


Working With Output Handlers

When invoked, output handlers are passed the contents of the buffer and a bitmask indicating the status of output buffering.

handler ( string $buffer , int $phase = ?): string
buffer
Contents of the output buffer.
phase
Bitmask of PHP_OUTPUT_HANDLER_* constants .

Avertissement

Calling any of the following functions from within an output handler
will result in a fatal error:
ob_clean(), ob_end_clean(),
ob_end_flush(), ob_flush(),
ob_get_clean(), ob_get_flush(),
ob_start().

Note: If the PHP_OUTPUT_HANDLER_DISABLED of a handler is set, the handler will not be invoked by calling ob_end_clean(), ob_end_flush(), ob_get_clean(), ob_get_flush() or during PHP's shutdown process. This flag has no effect on when calling ob_clean() or ob_flush().

Note: The working directory of the script can change inside the shutdown function under some web servers, e.g. Apache or the built-in web server.


Flags Passed To Output Handlers

The bitmask passed to the second phase parameter of the output handler provides information on the invocation of the handler.

Note: The bitmask can include more than one flag and the bitwise & operator should be used to check whether a flag is set.

Avertissement

The value of PHP_OUTPUT_HANDLER_WRITE and its alias PHP_OUTPUT_HANDLER_CONT is 0 therefore whether it is set can only be determined by using an equality operator (== or ===).

The following flags are set in a specific phase of the handler's lifecycle: PHP_OUTPUT_HANDLER_START is set when a handler is invoked for the first time. PHP_OUTPUT_HANDLER_FINAL or its alias PHP_OUTPUT_HANDLER_END is set when a handler is invoked for the last time, i.e. it is being turned off. This flag is also set when buffers are being turned off by PHP's shutdown process.

The following flags are set by a specific invocation of the handler: PHP_OUTPUT_HANDLER_FLUSH is set when the handler is invoked by calling ob_flush(). PHP_OUTPUT_HANDLER_WRITE or its alias PHP_OUTPUT_HANDLER_CONT is set when the size of its contents equals or exceeds the size of the buffer and the handler is invoked while the buffer is being automatically flushed. PHP_OUTPUT_HANDLER_FLUSH is set when the handler is invoked by calling ob_clean(), ob_end_clean() or ob_get_clean(). When ob_end_clean() or ob_get_clean() is called, PHP_OUTPUT_HANDLER_FINAL is set as well.

Note: When ob_end_flush() or ob_get_flush() is called, PHP_OUTPUT_HANDLER_FINAL is set but PHP_OUTPUT_HANDLER_FLUSH is not.


Output Handler Return Values

The return value of the output handler is internally coerced into a string following standard PHP type semantics, with two exceptions: arrays and booleans.

Arrays are converted into the string "Array" but the Array to string conversion warning is not triggered.

If the handler returns false the contents of the buffer are returned. If the handler returns true an empty string is returned.

Note: If a handler returns false or throws an exception its PHP_OUTPUT_HANDLER_DISABLED status flag is set.


  • « Output Handler Return Values
  • Utilisation simple »
  • PHP Manual
  • Contrôle de l'affichage
  • Exemples

Exemples

Sommaire

  • Utilisation simple
  • Utilisation de la réécriture de sortie


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).


Utilisation de la réécriture de sortie

Depuis PHP 7.1.0, output_add_rewrite_var(), output_reset_rewrite_vars() utilise un tampon de sortie dédié. c'est-à-dire qu'il n'utilise pas de tampon de sortie trans sid.

Exemple #1 Exemple de réécriture de la sortie

<?php
// Ce code fonctionne avec PHP 7.1.0, 7.0.10, 5.6.25 et suppérieur.

// HTTP_HOST est l'hôte cible par défaut. Définir manuellement pour que l'exemple de code fonctionne.
$_SERVER['HTTP_HOST'] = 'php.net';

// La réécriture de la sortie ne peut réécrire que les form. Ajouter a=href.
// LEs balises peuvent être spécifiées tag_name=url_attr, e.g. img=src,iframe=src
// Aucun espace autorisé entres les paramètres.
// La balise form est une balise spéciale qui ajoute un champ cachée.
ini_set('url_rewriter.tags','a=href,form=');
var_dump(ini_get('url_rewriter.tags'));

// This is added to URL and form
output_add_rewrite_var('test', 'value');
?>
<a href="//php.net/index.php?bug=1234">bug1234</a>
<form action="https://php.net/?bug=1234&edit=1" method="post">
<input type="text" name="title" />
</form>

L'exemple ci-dessus va afficher :

<a href="//php.net/?bug=1234&test=value">bug1234</a>
<form action="https://php.net/?bug=1234&edit=1" method="post"><input type="hidden" name="test" value="value" />
 <input type="text" name="title" />
</form>

Depuis PHP 7.1.0, les fonctions de réécriture de sortie ont leurs propres paramètres INI, url_rewriter.tags et url_rewriter.hosts.


Fonctions de bufferisation de sortie

Voir aussi

Voir aussi header() et setcookie().

Sommaire

  • flush — Vide les tampons de sortie du système
  • ob_clean — Nettoyer (effacer) le contenu du tampon de sortie actif.
  • ob_end_clean — Effacez (nettoyez) le contenu du tampon de sortie actif et désactivez-le.
  • ob_end_flush — Vide (envoie) la valeur de retour du gestionnaire de sortie actif et désactive le tampon de sortie actif
  • ob_flush — Vide (envoie) la valeur de retour du gestionnaire de sortie actif.
  • ob_get_clean — Obtiens le contenu du tampon de sortie actif et désactive-le
  • ob_get_contents — Retourne le contenu du tampon de sortie
  • ob_get_flush — Vide (envoie) la valeur de retour du gestionnaire de sortie actif, renvoie le contenu du tampon de sortie actif et le désactive.
  • 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_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, PHP 8)

flush — Vide les tampons de sortie du système

Description

flush(): void

Vide les tampons d'écriture système de PHP et du backend utilisé par PHP (par exemple : CGI, un serveur web). Dans un environnement en ligne de commande, flush() tentera de vider uniquement le contenu des tampons, tandis que dans un contexte web, les en-têtes et le contenu des tampons sont vidés.

Note: flush() peut ne pas pouvoir contourner le schéma de mise en mémoire tampon du serveur web et n'a aucun effet sur une mise en mémoire tampon côté client dans le navigateur.

Note: Cette fonction n'a aucun effet sur les gestionnaires de sortie de niveau utilisateur tels que ceux démarrés par ob_start() ou output_add_rewrite_var().

Avertissement

flush() peut interférer avec les gestionnaires de sortie qui définissent et envoient des en-têtes dans un contexte web (par exemple, ob_gzhandler()) en envoyant des en-têtes avant que ces gestionnaires ne puissent le faire.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • ob_flush() - Vide (envoie) la valeur de retour du gestionnaire de sortie actif.
  • ob_clean() - Nettoyer (effacer) le contenu du tampon de sortie actif.
  • ob_end_flush() - Vide (envoie) la valeur de retour du gestionnaire de sortie actif et désactive le tampon de sortie actif
  • ob_end_clean() - Effacez (nettoyez) le contenu du tampon de sortie actif et désactivez-le.


Nettoyer (effacer) le contenu du tampon de sortie actif.

  • « flush
  • ob_end_clean »
  • PHP Manual
  • Fonctions de bufferisation de sortie
  • Nettoyer (effacer) le contenu du tampon de sortie actif.

ob_clean

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

ob_clean — Nettoyer (effacer) le contenu du tampon de sortie actif.

Description

ob_clean(): bool

Cette fonction appelle le gestionnaire de sortie (avec le drapeau PHP_OUTPUT_HANDLER_CLEAN), ignore sa valeur de retour et nettoie (efface) le contenu du tampon de sortie actif.

Cette fonction ne désactive pas le tampon de sortie actif comme le font ob_end_clean() ou ob_get_clean().

ob_clean() échouera sans un tampon de sortie actif démarré avec le drapeau PHP_OUTPUT_HANDLER_CLEANABLE.

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.

Erreurs / Exceptions

Si la fonction échoue, elle génère une E_NOTICE.

Voir aussi

  • ob_flush() - Vide (envoie) la valeur de retour du gestionnaire de sortie actif.
  • ob_end_flush() - Vide (envoie) la valeur de retour du gestionnaire de sortie actif et désactive le tampon de sortie actif
  • ob_end_clean() - Effacez (nettoyez) le contenu du tampon de sortie actif et désactivez-le.


Effacez (nettoyez) le contenu du tampon de sortie actif et désactivez-le.

  • « ob_clean
  • ob_end_flush »
  • PHP Manual
  • Fonctions de bufferisation de sortie
  • Effacez (nettoyez) le contenu du tampon de sortie actif et désactivez-le.

ob_end_clean

(PHP 4, PHP 5, PHP 7, PHP 8)

ob_end_clean — Effacez (nettoyez) le contenu du tampon de sortie actif et désactivez-le.

Description

ob_end_clean(): bool

Cette fonction appelle le gestionnaire de sortie (avec les drapeaux PHP_OUTPUT_HANDLER_CLEAN et PHP_OUTPUT_HANDLER_FINAL), ignore sa valeur de retour, ignore le contenu du tampon de sortie actif et désactive ce dernier.

ob_end_clean() échouera sans un tampon de sortie actif démarré avec le drapeau PHP_OUTPUT_HANDLER_REMOVABLE.

ob_end_clean() supprimera le contenu du tampon de sortie actif même s'il a été démarré sans le drapeau PHP_OUTPUT_HANDLER_CLEANABLE.

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.

Erreurs / Exceptions

Si la fonction échoue, elle génère une E_NOTICE.

Exemples

L'exemple suivant montre une manière simple de se débarrasser du contenu du tampon de sortie actif :

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_clean() - Nettoyer (effacer) le contenu du tampon de sortie actif.
  • ob_get_clean() - Obtiens le contenu du tampon de sortie actif et désactive-le
  • ob_end_flush() - Vide (envoie) la valeur de retour du gestionnaire de sortie actif et désactive le tampon de sortie actif


Vide (envoie) la valeur de retour du gestionnaire de sortie actif et désactive le tampon de sortie actif

  • « ob_end_clean
  • ob_flush »
  • PHP Manual
  • Fonctions de bufferisation de sortie
  • Vide (envoie) la valeur de retour du gestionnaire de sortie actif et désactive le tampon de sortie actif

ob_end_flush

(PHP 4, PHP 5, PHP 7, PHP 8)

ob_end_flush — Vide (envoie) la valeur de retour du gestionnaire de sortie actif et désactive le tampon de sortie actif

Description

ob_end_flush(): bool

Cette fonction appelle le gestionnaire de sortie (avec le drapeau PHP_OUTPUT_HANDLER_FINAL), vide (envoie) sa valeur de retour, ignore le contenu du tampon de sortie actif et désactive ce dernier.

ob_end_flush() échouera sans un tampon de sortie actif démarré avec le drapeau PHP_OUTPUT_HANDLER_REMOVABLE.

ob_end_flush() videra (enverra) la valeur de retour du gestionnaire de sortie même si le tampon de sortie actif a été démarré sans le drapeau PHP_OUTPUT_HANDLER_FLUSHABLE.

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.

Erreurs / Exceptions

Si la fonction échoue, elle génère une 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_flush() - Vide (envoie) la valeur de retour du gestionnaire de sortie actif.
  • ob_get_flush() - Vide (envoie) la valeur de retour du gestionnaire de sortie actif, renvoie le contenu du tampon de sortie actif et le désactive.
  • ob_end_clean() - Effacez (nettoyez) le contenu du tampon de sortie actif et désactivez-le.


Vide (envoie) la valeur de retour du gestionnaire de sortie actif.

  • « ob_end_flush
  • ob_get_clean »
  • PHP Manual
  • Fonctions de bufferisation de sortie
  • Vide (envoie) la valeur de retour du gestionnaire de sortie actif.

ob_flush

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

ob_flush — Vide (envoie) la valeur de retour du gestionnaire de sortie actif.

Description

ob_flush(): bool

Cette fonction appelle le gestionnaire de sortie (avec le drapeau PHP_OUTPUT_HANDLER_FLUSH), vide (envoie) sa valeur de retour et ignore le contenu du tampon de sortie actif.

Cette fonction ne désactive pas le tampon de sortie actif comme le font ob_end_flush() ou ob_get_flush().

ob_flush() échouera sans un tampon de sortie actif démarré avec le drapeau PHP_OUTPUT_HANDLER_FLUSHABLE.

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.

Erreurs / Exceptions

Si la fonction échoue, elle génère une E_NOTICE.

Voir aussi

  • ob_start() - Enclenche la temporisation de sortie
  • ob_get_contents() - Retourne le contenu du tampon de sortie
  • ob_end_flush() - Vide (envoie) la valeur de retour du gestionnaire de sortie actif et désactive le tampon de sortie actif
  • ob_get_flush() - Vide (envoie) la valeur de retour du gestionnaire de sortie actif, renvoie le contenu du tampon de sortie actif et le désactive.
  • ob_clean() - Nettoyer (effacer) le contenu du tampon de sortie actif.


Obtiens le contenu du tampon de sortie actif et désactive-le

  • « ob_flush
  • ob_get_contents »
  • PHP Manual
  • Fonctions de bufferisation de sortie
  • Obtiens le contenu du tampon de sortie actif et désactive-le

ob_get_clean

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

ob_get_clean — Obtiens le contenu du tampon de sortie actif et désactive-le

Description

ob_get_clean(): string|false

Cette fonction appelle le gestionnaire de sortie (avec les drapeaux PHP_OUTPUT_HANDLER_CLEAN et PHP_OUTPUT_HANDLER_FINAL), ignore sa valeur de retour, retourne le contenu du tampon de sortie actif et désactive ce dernier.

ob_get_clean() échouera sans un tampon de sortie actif démarré avec le drapeau PHP_OUTPUT_HANDLER_REMOVABLE.

ob_get_clean() supprimera le contenu du tampon de sortie actif même s'il a été démarré sans le drapeau PHP_OUTPUT_HANDLER_CLEANABLE.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Renvoie le contenu du tampon de sortie actif en cas de succès ou false en cas d'échec.

Attention

ob_get_clean() renverra false mais ne générera pas de E_NOTICE s'il n'y a pas de tampon de sortie actif.

Erreurs / Exceptions

Si la fonction échoue, elle génère une E_NOTICE.

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_start() - Enclenche la temporisation de sortie
  • ob_get_contents() - Retourne le contenu du tampon de sortie
  • ob_clean() - Nettoyer (effacer) le contenu du tampon de sortie actif.
  • ob_end_clean() - Effacez (nettoyez) le contenu du tampon de sortie actif et désactivez-le.
  • ob_get_flush() - Vide (envoie) la valeur de retour du gestionnaire de sortie actif, renvoie le contenu du tampon de sortie actif et le désactive.


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, PHP 8)

ob_get_contents — Retourne le contenu du tampon de sortie

Description

ob_get_contents(): string|false

Retourne le contenu du tampon de sortie sans l'effacer.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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 (envoie) la valeur de retour du gestionnaire de sortie actif, renvoie le contenu du tampon de sortie actif et le désactive.

  • « ob_get_contents
  • ob_get_length »
  • PHP Manual
  • Fonctions de bufferisation de sortie
  • Vide (envoie) la valeur de retour du gestionnaire de sortie actif, renvoie le contenu du tampon de sortie actif et le désactive.

ob_get_flush

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

ob_get_flush — Vide (envoie) la valeur de retour du gestionnaire de sortie actif, renvoie le contenu du tampon de sortie actif et le désactive.

Description

ob_get_flush(): string|false

Cette fonction appelle le gestionnaire de sortie (avec le drapeau PHP_OUTPUT_HANDLER_FINAL), envoie (vide) sa valeur de retour, renvoie le contenu du tampon de sortie actif et désactive le tampon de sortie actif.

ob_get_flush() échouera sans un tampon de sortie actif démarré avec le drapeau PHP_OUTPUT_HANDLER_REMOVABLE.

ob_get_flush() videra (enverra) la valeur de retour du gestionnaire de sortie même si le tampon de sortie actif a été démarré sans le drapeau PHP_OUTPUT_HANDLER_FLUSHABLE.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Renvoie le contenu du tampon de sortie actif en cas de succès ou false en cas d'échec.

Erreurs / Exceptions

En cas d'échec de la fonction, elle génère une E_NOTICE.

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_start() - Enclenche la temporisation de sortie
  • ob_get_contents() - Retourne le contenu du tampon de sortie
  • ob_flush() - Vide (envoie) la valeur de retour du gestionnaire de sortie actif.
  • ob_end_flush() - Vide (envoie) la valeur de retour du gestionnaire de sortie actif et désactive le tampon de sortie actif
  • ob_get_clean() - Obtiens le contenu du tampon de sortie actif et désactive-le


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, PHP 8)

ob_get_length — Retourne la longueur du contenu du tampon de sortie

Description

ob_get_length(): int|false

Retourne la longueur du contenu du tampon de sortie, en octets.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

ob_get_level — Retourne le nombre de niveaux d'imbrications du système de temporisation de sortie

Description

ob_get_level(): int

Retourne le nombre de niveaux d'imbrications du système de temporisation de sortie.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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.

Attention

La valeur pour les niveaux identiques entre ob_get_level() et ob_get_status() diffère de un. Pour ob_get_level(), le premier niveau est 1. Tandis que pour ob_get_status(), le premier niveau est 0.

Voir aussi

  • ob_start() - Enclenche la temporisation de sortie
  • ob_get_status() - Lit le statut du tampon de sortie
  • ob_get_contents() - Retourne le contenu du tampon de sortie


Lit le statut du tampon de sortie

  • « ob_get_level
  • ob_implicit_flush »
  • 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, PHP 8)

ob_get_status — Lit le statut du tampon de sortie

Description

ob_get_status(bool $full_status = false): array

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 le paramètre full_status est omis ou égal à false, un simple tableau contenant des informations sur l'état du niveau de sortie actif est retourné.

Si le paramètre full_status est égal à true, un tableau avec un élément pour chaque niveau de tampon de sortie actif est retourné. Le niveau de sortie est utilisé comme clé du tableau de niveau supérieur et chaque élément du tableau est lui-même un autre tableau contenant des informations sur un niveau de sortie actif.

Un tableau vide est retourné si la mise en mémoire tampon de sortie n'est pas activée.

Éléments retourné par la fonction ob_get_status()
Clé | Valeur
name | Nom du gestionnaire de sortie actif (voir les valeurs de retour de ob_list_handlers() pour plus de détails)
type | 0 (gestionnaire interne) ou 1 (gestionnaire fourni par l'utilisateur)
flags | Masque de bits des indicateurs définis par la fonction ob_start(), le type de gestionnaire de sortie (voir ci-dessus) et l'état du processus de mise en mémoire tampon ( PHP_OUTPUT_HANDLER_* constantes). Si le gestionnaire a traité avec succès le tampon et n'a pas retourné false, PHP_OUTPUT_HANDLER_STARTED et PHP_OUTPUT_HANDLER_PROCESSED seront définis. Si le gestionnaire a échoué lors du traitement du tampon ou a retourné false, PHP_OUTPUT_HANDLER_STARTED et PHP_OUTPUT_HANDLER_DISABLED seront définis.
level | Niveau d'imbrication de la sortie (à partir de zéro). Notez que la valeur retournée pour le même niveau par la fonction ob_get_level() est décalée d'un. Le premier niveau est 0 pour ob_get_status(), et 1 pour ob_get_level().
chunk_size | Taille du fragment en octets. Défini par la fonction ob_start() ou output_buffering s'il est activé et sa valeur est définie sur un entier positif
buffer_size | Taille du tampon de sortie en octets
buffer_used | Taille des données dans le tampon de sortie en octets (la même que la valeur de retour entière de ob_get_length())

Exemples

Exemple #1 Tableau retourné lorsque le paramètre full_status est égal à true

Array
(
    [type] => 0
    [flags] => 112
    [level] => 2
    [chunk_size] => 0
    [buffer_size] => 16384
    [buffer_used] => 1024
)

Exemple #2 Tableau retourné lorsque le paramètre full_status est égal à true

Array
(
    [0] => Array
        (
            [name] => default output handler
            [type] => 0
            [flags] => 112
            [level] => 1
            [chunk_size] => 0
            [buffer_size] => 16384
            [buffer_used] => 2048
        )

    [1] => Array
        (
            [name] => URL-Rewriter
            [type] => 0
            [flags] => 112
            [level] => 2
            [chunk_size] => 0
            [buffer_size] => 16384
            [buffer_used] => 1024
        )

)

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
  • ob_get_length() - Retourne la longueur du contenu du tampon de sortie
  • ob_start() - Enclenche la temporisation de sortie


Active/désactive l'envoi implicite

  • « ob_get_status
  • 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, PHP 8)

ob_implicit_flush — Active/désactive l'envoi implicite

Description

ob_implicit_flush(bool $enable = true): void

ob_implicit_flush() active/désactive l'envoi implicite. La mise en mémoire tampon implicite entraînera une opération de vidage après chaque bloc de code produisant une sortie, de sorte que des appels explicites à flush() ne seront plus nécessaires.

Note: Afficher des chaînes vides ou envoyer des en-têtes n'est pas considéré comme une sortie et ne déclenchera pas d'opération de vidage.

Note: Cette fonction n'a aucun effet sur les gestionnaires de sortie de niveau utilisateur, tels que ceux démarrés par ob_start() ou output_add_rewrite_var().

Liste de paramètres

enable

true pour activer, false sinon.

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version | Description
8.0.0 | enable attend une valeur bool désormais ; auparavant, un int était attendu.

Voir aussi

  • flush() - Vide les tampons de sortie du système
  • ob_start() - Enclenche la temporisation de sortie
  • ob_end_flush() - Vide (envoie) la valeur de retour du gestionnaire de sortie actif et désactive le tampon de sortie actif


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, PHP 8)

ob_list_handlers — Liste les gestionnaires d'affichage utilisés

Description

ob_list_handlers(): array

Liste les gestionnaires d'affichage utilisés.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau avec le gestionnaire d'affichage en cours d'utilisation (s'il existe).

Si output_buffering est activé et qu'aucun output_handler n'est défini, ou si aucune fonction de rappel ou null n'a été passé à ob_start(), "default output handler" est renvoyé. Activer output_buffering et définir un output_handler équivaut à passer une fonction interne (intégrée) à ob_start().

Si un callable a été passé à ob_start(), le nom complètement qualifié du callable est renvoyé. Si le callable est un objet implémentant __invoke(), le nom complètement qualifié de la méthode __invoke() de l'objet est renvoyé. Si le callable est une Closure, "Closure::__invoke" est renvoyé.

Exemples

Exemple #1 Exemple avec ob_list_handlers()

<?php
// utilisation output_buffering=On, sans output_handler défini
var_dump(ob_list_handlers());
ob_end_flush();

// aucun rappel ou null
ob_start();
var_dump(ob_list_handlers());

// Fonction anonyme
ob_start(function($string) { return $string; });
var_dump(ob_list_handlers());
ob_end_flush();

// fonction fléchée
ob_start(fn($string) => $string);
var_dump(ob_list_handlers());
ob_end_flush();

// callable de première classe
$firstClassCallable = userDefinedFunction(...);

ob_start([$firstClassCallable, '__invoke']);
var_dump(ob_list_handlers());
ob_end_flush();

// fonction interne (intégrée)
ob_start('print_r');
var_dump(ob_list_handlers());
ob_end_flush();

// fonction définie par l'utilisateur
function userDefinedFunction($string, $flags) { return $string; };

ob_start('userDefinedFunction');
var_dump(ob_list_handlers());
ob_end_flush();

class MyClass {
public static function staticHandle($string) {
return $string;
}

public static function handle($string) {
return $string;
}

public function __invoke($string) {
return $string;
}
}

// classe et méthode statique
ob_start(['MyClass','staticHandle']);
var_dump(ob_list_handlers());
ob_end_flush();

// objet et méthode non statique
ob_start([new MyClass,'handle']);
var_dump(ob_list_handlers());
ob_end_flush();

// objet invoquable
ob_start(new MyClass);
var_dump(ob_list_handlers());
ob_end_flush();
?>

L'exemple ci-dessus va afficher :

array(1) {
  [0]=>
  string(22) "default output handler"
}
array(1) {
  [0]=>
  string(22) "default output handler"
}
array(1) {
  [0]=>
  string(7) "print_r"
}
array(1) {
  [0]=>
  string(19) "userDefinedFunction"
}
array(1) {
  [0]=>
  string(17) "Closure::__invoke"
}
array(1) {
  [0]=>
  string(17) "Closure::__invoke"
}
array(1) {
  [0]=>
  string(17) "Closure::__invoke"
}
array(1) {
  [0]=>
  string(21) "MyClass::staticHandle"
}
array(1) {
  [0]=>
  string(15) "MyClass::handle"
}
array(1) {
  [0]=>
  string(17) "MyClass::__invoke"
}

Voir aussi

  • ob_end_clean() - Effacez (nettoyez) le contenu du tampon de sortie actif et désactivez-le.
  • ob_end_flush() - Vide (envoie) la valeur de retour du gestionnaire de sortie actif et désactive le tampon de sortie actif
  • ob_get_flush() - Vide (envoie) la valeur de retour du gestionnaire de sortie actif, renvoie le contenu du tampon de sortie actif et le désactive.
  • 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, PHP 8)

ob_start — Enclenche la temporisation de sortie

Description

ob_start(?callable $callback = null, int $chunk_size = 0, int $flags = PHP_OUTPUT_HANDLER_STDFLAGS): bool

Cette fonction active la mise en mémoire tampon de la sortie. Lorsque la mise en mémoire tampon est active, aucune sortie n'est envoyée depuis le script ; au lieu de cela, la sortie est stockée dans une mémoire tampon interne. Consultez What Output Is Buffered? pour savoir exactement quelles sorties sont concernées.

Les tampons de sortie sont empilables, c'est-à-dire ob_start() peut être appelée pendant qu'un autre tampon est actif. Si plusieurs tampons de sortie sont actifs, la sortie est filtrée séquentiellement à travers chacun d'eux dans l'ordre d'emboîtement. Consultez Nesting Output Buffers pour plus de détails.

Consultez User-Level Output Buffers pour une description détaillée des tampons de sortie.

Liste de paramètres

callback

Un callback callable optionnel peut être spécifié. Il peut également être contourné en passant null.

callback est invoqué lorsque le tampon de sortie est vidé (envoyé), nettoyé, ou lorsque le tampon de sortie est vidé à la fin du script.

La signature du callback est la suivante :

handler(string $buffer, int $phase = ?): string
buffer
Contenu du buffer de sortie.
phase
Masque de bits des constantes PHP_OUTPUT_HANDLER_* . Consultez Flags Passed To Output Handlers pour plus de détails.

Si callback renvoie false, le contenu du tampon est renvoyé. Consultez Output Handler Return Values pour plus de détails.

Avertissement

Appeler l'une des fonctions suivantes à partir d'un gestionnaire de sortie
entraînera une erreur fatale :
ob_clean(), ob_end_clean(),
ob_end_flush(), ob_flush(),
ob_get_clean(), ob_get_flush(),
ob_start().

Consultez Output Handlers et Working With Output Handlers pour plus de détails sur les callbacks (gestionnaires de sortie).

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 signifie que toute la sortie est mise en mémoire tampon jusqu'à ce que la mémoire tampon soit désactivée. Consultez Buffer Size pour plus de détails.

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 indicateurs de contrôle de la mémoire tampon . Consultez Operations Allowed On Buffers pour plus de détails.

Chaque drapeau contrôle l'accès à un jeu de fonctions, tel décrit ci-dessous :

Constante | Fonctions
PHP_OUTPUT_HANDLER_CLEANABLE ob_clean(),
PHP_OUTPUT_HANDLER_FLUSHABLE ob_end_flush(),
PHP_OUTPUT_HANDLER_REMOVABLE | ob_end_clean(), ob_end_flush() et ob_get_clean(). ob_get_flush().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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-effaçable

<?php

ob_start(null, 0, PHP_OUTPUT_HANDLER_STDFLAGS ^ PHP_OUTPUT_HANDLER_REMOVABLE);

?>

Voir aussi

  • ob_get_contents() - Retourne le contenu du tampon de sortie
  • ob_end_clean() - Effacez (nettoyez) le contenu du tampon de sortie actif et désactivez-le.
  • ob_end_flush() - Vide (envoie) la valeur de retour du gestionnaire de sortie actif et désactive le tampon de sortie actif
  • 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, PHP 8)

output_add_rewrite_var — Ajoute une règle de réécriture d'URL

Description

output_add_rewrite_var(string $name, string $value): bool

Cette fonction démarre le gestionnaire de tampon de sortie 'URL-Rewriter' s'il n'est pas actif, stocke les paramètres name et value, et lorsque le tampon est vidé, réécrit les URLs et les formulaires en fonction des paramètres ini applicables. Les appels ultérieurs à cette fonction stockeront toutes les paires nom/valeur supplémentaires jusqu'à ce que le gestionnaire soit désactivé.

Lorsque le tampon de sortie est vidé (en appelant ob_flush(), ob_end_flush(), ob_get_flush() ou à la fin du script), le gestionnaire 'URL-Rewriter' ajoute les paires nom/valeur en tant que paramètres de requête aux URLs dans les attributs des balises HTML et ajoute des champs cachés aux formulaires en fonction des valeurs des directives de configuration url_rewriter.tags et url_rewriter.hosts.

Chaque paire nom/valeur ajoutée au gestionnaire 'URL-Rewriter' est ajoutée aux URLs et/ou formulaires même si cela résulte en des paramètres de requête d'URL dupliqués ou des éléments avec les mêmes attributs de nom.

Note: Une fois que le gestionnaire 'URL-Rewriter' a été désactivé, il ne peut pas être redémarré.

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.

Historique

Version | Description
7.1.0 | À partir de PHP 7.1.0, un tampon de sortie dédié est utilisé, url_rewriter.tags est utilisé uniquement pour les fonctions de sortie et url_rewriter.hosts est disponible. Antérieur à PHP 7.1.0, les variables de réécriture définies par output_add_rewrite_var() partageaient un tampon de sortie avec la prise en charge transparente de l'ID de session (voir session.trans_sid_tags).

Exemples

Exemple #1 Exemple avec output_add_rewrite_var()

<?php
ini_set('url_rewriter.tags', 'a=href,form=');

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() - Vide (envoie) la valeur de retour du gestionnaire de sortie actif.
  • ob_list_handlers() - Liste les gestionnaires d'affichage utilisés
  • url_rewriter.tags
  • url_rewriter.hosts


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, PHP 8)

output_reset_rewrite_vars — Annule la réécriture d'URL

Description

output_reset_rewrite_vars(): bool

Cette fonction supprime toutes les variables de réécriture précédemment définies par la fonction output_add_rewrite_var().

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.

Historique

Version | Description
7.1.0 | Avant php 7.1.0, les variables de réécriture définis par output_add_rewrite_var() utilisaient la même mémoire tampon de sortie du module de session trans sid. Depuis PHP 7.1.0, la mémoire tampon de sortie dédiée est utilisée et output_reset_rewrite_vars() supprime uniquement les vars de réécriture définis par output_add_rewrite_var().

Exemples

Exemple #1 Exemple avec output_reset_rewrite_vars()

<?php
ini_set('url_rewriter.tags', 'a=href');

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?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() - Vide (envoie) la valeur de retour du gestionnaire de sortie actif.
  • ob_list_handlers() - Liste les gestionnaires d'affichage utilisés
  • url_rewriter.tags
  • url_rewriter.hosts
  • session.trans_sid_tags
  • session.trans_sid_hosts


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 — Définit/récupère différentes options d'assertions
    • assert — Vérifie une assertion
    • 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 — Récupère de la mémoire utilisé par le gestionaire de mémoire de Zend Engine
    • gc_status — Récupère les informations à propos du ramasse-miettes
    • 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 — Retourne les ressources active
    • getenv — Retourne la valeur d'une seule ou toutes les variables 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_parse_quantity — Get interpreted size from ini shorthand syntax
    • ini_restore — Restaure la valeur de l'option de configuration
    • ini_set — Modifie la valeur d'une option de configuration
    • 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
    • memory_reset_peak_usage — Reset the peak memory usage
    • 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_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_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_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" | INI_ALL | Obsolète à partir de PHP 8.3.0
assert.bail | "0" | INI_ALL | Obsolète à partir de PHP 8.3.0
assert.warning | "1" | INI_ALL | Obsolète à partir de PHP 8.3.0
assert.callback | NULL | INI_ALL | Obsolète à partir de PHP 8.3.0
assert.quiet_eval | "0" | INI_ALL | Supprimé à partir de PHP 8.0.0
assert.exception | "1" | INI_ALL | Antérieur à PHP 8.0.0, la valeur par défaut est "0" Obsolète à partir de PHP 8.3.0
enable_dl | "1" | INI_SYSTEM | Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
max_execution_time | "30" | INI_ALL |
max_input_time | "-1" | INI_PERDIR |
max_input_nesting_level | "64" | INI_PERDIR |
max_input_vars | 1000 | INI_PERDIR |
zend.enable_gc | "1" | INI_ALL |
Pour plus de détails sur les modes INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

assert.active bool

Active les évaluations de type assert(). zend.assertions devrait être utilisé à la place pour contrôler le comportement de assert().

Avertissement

Cette fonctionnalité est OBSOLÈTE à partir de PHP 8.3.0. Dépendre de cette fonctionnalité est fortement déconseillé.

assert.bail bool

Termine le script si une assertion échoue.

Avertissement

Cette fonctionnalité est OBSOLÈTE à partir de PHP 8.3.0. Dépendre de cette fonctionnalité est fortement déconseillé.

assert.warning bool

Émet une alerte PHP pour chaque assertion qui échoue.

Avertissement

Cette fonctionnalité est OBSOLÈTE à partir de PHP 8.3.0. Dépendre de cette fonctionnalité est fortement déconseillé.

assert.callback string

Fonction définie par le programmeur, à appeler pour chaque assertion échouée.

Avertissement

Cette fonctionnalité est OBSOLÈTE à partir de PHP 8.3.0. Dépendre de cette fonctionnalité est fortement déconseillé.

assert.quiet_eval bool
Avertissement

Cette fonctionnalité a été SUPPRIMÉE à partir de PHP 8.0.0.

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 bool

Lève une exception AssertionError lors d'une assertion échouée.

enable_dl bool

Cette directive permet d'activer ou de désactiver le chargement dynamique d'extension PHP avec la fonction PHP dl().

La raison principale pour désactiver ce système est la sécurité. Avec le chargement dynamique, il est possible de passer outre les restrictions imposées par open_basedir.

max_execution_time int

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.

Sur les systèmes non-Windows, 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.

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 int

Cette option spécifie la durée maximale pour analyser les données d'entrée, comme 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. La valeur par défaut est -1, ce qui veut dire que max_execution_time est utilisé à la place. Régler la valeur à 0 pour permettre une exécution illimité.

max_input_nesting_level int

Définit la profondeur maximale des variables d'entrées (i.e. $_GET, $_POST..)

max_input_vars int

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 hachages. 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.

zend.enable_gc bool

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()
Constantes | 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()
Constantes | 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 mode INI
Constantes | Description
INI_USER (int) | Cette entrée peut être définie dans les scripts utilisateur (comme avec ini_set()) ou dans le registre Windows. L'entrée peut être définie dans le fichier .user.ini.
INI_PERDIR (int) | Cette entrée peut être définie dans le fichier php.ini, .htaccess, httpd.conf ou .user.ini.
INI_SYSTEM (int) | Cette entrée peut être définie dans le fichier php.ini ou httpd.conf.
INI_ALL (int) | Cette entrée peut être définie n'importe où.

Les constantes d'assertions servent avec la fonction assert_options().

Constantes d'assert()
Constantes | Directive de configuration | Description
ASSERT_ACTIVE | assert.active | Active l'évaluation assert(). Avertissement Cette fonctionnalité est OBSOLÈTE à partir de PHP 8.3.0. Dépendre de cette fonctionnalité est fortement déconseillé.
ASSERT_CALLBACK | assert.callback | Fonction de rappel des assertions échouées. Avertissement Cette fonctionnalité est OBSOLÈTE à partir de PHP 8.3.0. Dépendre de cette fonctionnalité est fortement déconseillé.
ASSERT_BAIL | assert.bail | Termine l'exécution des assertions échouées. Avertissement Cette fonctionnalité est OBSOLÈTE à partir de PHP 8.3.0. Dépendre de cette fonctionnalité est fortement déconseillé.
ASSERT_EXCEPTION | assert.exception | Émet une exception PHP pour chaque assertion échouée. Avertissement Cette fonctionnalité est OBSOLÈTE à partir de PHP 8.3.0. Dépendre de cette fonctionnalité est fortement déconseillé.
ASSERT_WARNING | assert.warning | Émet une alerte PHP pour chaque assertion échouée. Avertissement Cette fonctionnalité est OBSOLÈTE à partir de PHP 8.3.0. Dépendre de cette fonctionnalité est fortement déconseillé.
ASSERT_QUIET_EVAL | assert.quiet_eval | Désactive le error_reporting durant l'évaluation des expressions d'assertion. Avertissement Cette fonctionnalité a été SUPPRIMÉE à partir de PHP 8.0.0.

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 — Définit/récupère différentes options d'assertions
  • assert — Vérifie une assertion
  • 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 — Récupère de la mémoire utilisé par le gestionaire de mémoire de Zend Engine
  • gc_status — Récupère les informations à propos du ramasse-miettes
  • 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 — Retourne les ressources active
  • getenv — Retourne la valeur d'une seule ou toutes les variables 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_parse_quantity — Get interpreted size from ini shorthand syntax
  • ini_restore — Restaure la valeur de l'option de configuration
  • ini_set — Modifie la valeur d'une option de configuration
  • 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
  • memory_reset_peak_usage — Reset the peak memory usage
  • 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_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_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_thread_id — Retourne un identifiant unique du thread courant
  • zend_version — Lit la version courante du moteur Zend


Définit/récupère 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
  • Définit/récupère différentes options d'assertions

assert_options

(PHP 4, PHP 5, PHP 7, PHP 8)

assert_options — Définit/récupère différentes options d'assertions

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 8.3.0. Dépendre de cette fonction est fortement déconseillé.

Description

assert_options(int $option, mixed $value = ?): mixed

assert_options() permet de modifier les diverses options de la fonction assert(), ou simplement connaître la configuration actuelle.

Note: L'utilisation de assert_options() est déconseillée en faveur de définir et récupérer les directives php.ini zend.assertions et assert.exception avec ini_set() et ini_get(), respectivement.

Liste de paramètres

option

Options d'assertions
Option | Directive | Valeur par défaut | Description
ASSERT_ACTIVE | assert.active | 1 | Active l'évaluation de la fonction assert()
ASSERT_EXCEPTION | assert.exception | 1 | Lance une AssertionError pour chaque assertion échouée
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. Supprimée à partir de PHP 8.0.0
ASSERT_CALLBACK | assert.callback | (null) | Fonction de rappel utilisateur, pour le traitement des assertions fausses

value

Une nouvelle valeur, optionnelle, pour l'option.

La fonction de rappel définie via ASSERT_CALLBACK ou assert.callback devrait avoir la signature suivante :

assert_callback(
string $file,
int $line,
?string $assertion,
string $description = ?
): void
file
Le fichier assert() a été appellé.
line
La ligne où assert() a été appellé.
assertion
Antérieur à PHP 8.0.0, le premier paramètre de la fonction assert() était l'assertion passée, mais seulement lorsque l'assertion était fournie sous forme de chaîne de caractères. (Si l'assertion était une condition booléenne, ce paramètre était une chaîne vide.) À partir de PHP 8.0.0, ce paramètre est toujours null.
description
La description qui a été fournie à assert().

Valeurs de retour

Retourne la valeur originale de l'option.

Erreurs / Exceptions

Si option n'est pas une option valide, une ValueError est lancée.

Historique

Version | Description
8.3.0 | assert_option() est désormais obsolète.
8.0.0 | Si option n'est pas une option valide, une ValueError est désormais lancée. Auparavant, false était retourné.

Exemples

Exemple #1 Exemple avec assert_options()

<?php
// Ceci est notre fonction pour gérer les
// erreurs d'assertion
function assert_failure($file, $line, $assertion, $message)
{
echo "L'assertion $assertion dans $file à la ligne $line a échoué : $message";
}

// 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 une assertion


Vérifie une assertion

  • « assert_options
  • cli_get_process_title »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Vérifie une assertion

assert

(PHP 4, PHP 5, PHP 7, PHP 8)

assert — Vérifie une assertion

Description

assert(mixed $assertion, Throwable|string|null $description = null): bool

assert() permets de définir des attentes : des assertions qui prennent effet dans les environnements de développement et de test, mais qui sont optimisées pour ne pas avoir de coût en production.

Les assertions doivent être utilisées uniquement comme fonctionnalité de débogage. Un cas d'utilisation pour les assertions est de servir de vérifications de cohérence pour des préconditions qui devraient toujours être true, et si elles ne sont pas respectées, cela indique des erreurs de programmation. Un autre cas d'utilisation est de garantir la présence de certaines fonctionnalités telles que des fonctions d'extension ou certaines limites et fonctionnalités du système.

Comme les assertions peuvent être configurées pour être éliminées, elles ne doivent pas être utilisées pour des opérations normales en cours d'exécution, telles que des vérifications des paramètres d'entrée. En règle générale, le code doit se comporter comme prévu même si la vérification des assertions est désactivée.

assert() vérifiera que l'attente donnée dans assertion est satisfaite. Si ce n'est pas le cas et donc que le résultat est false, elle prendra l'action appropriée en fonction de la configuration de assert().

Le comportement de assert() est dicté par les paramètres INI suivants :

Assert Options de configuration
Nom | Défaut | Description | Historique
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.active | true | Si false, assert() ne vérifie pas l'attente et retourne toujours true, sans condition. | Obsolète à partir de PHP 8.3.0.
assert.callback null

Une fonction définie par l'utilisateur à appeler lorsqu'une assertion échoue. Sa signature devrait être :

assert_callback(
string $file,
int $line,
null $assertion,
string $description = ?
): void

Antérieur à PHP 8.0.0, la signature de la fonction de rappel devrait être :

assert_callback(
string $file,
int $line,
string $assertion,
string $description = ?
): void

Obsolète à partir de PHP 8.3.0.
assert.exception | true | Si true, lancera une AssertionError si l'attente n'est pas respectée. | Obsolète à partir de PHP 8.3.0.
assert.bail | false | Si true, interrompra l'exécution du script PHP si l'attente n'est pas respectée. | Obsolète à partir de PHP 8.3.0.
assert.warning | true | Si true, émettra un E_WARNING si l'attente n'est pas respectée. Ce paramètre INI est inefficace si assert.exception est activé. | Obsolète à partir de PHP 8.3.0.

Liste de paramètres

assertion

Ceci est une expression quelconque qui retourne une valeur, qui sera exécutée et dont le résultat sera utilisé pour indiquer si l'assertion a réussi ou échoué.

Avertissement

Antérieur à PHP 8.0.0, si assertion était une string, elle était interprétée comme du code PHP et exécutée via eval(). Cette chaîne était transmise à la fonction de rappel en tant que troisième argument. Ce comportement était OBSOLÈTE dans PHP 7.2.0, et est SUPPRIMÉ à partir de PHP 8.0.0

description

Si description est une instance de Throwable, elle sera lancée uniquement si assertion est exécutée et échoue.

Note:

À partir de PHP 8.0.0, cela est fait avant d'appeler la fonction de rappel d'assertion éventuellement défini

Note:

À partir de PHP 8.0.0, l'objet objet sera lancé indépendamment de la configuration de assert.exception.

Note:

À partir de PHP 8.0.0, le paramètre assert.bail n'a aucun effet dans ce cas.

Si description est une chaîne de caractères, ce message sera utilisé si une exception ou un avertissement est émis. Une description optionnelle, qui sera incluse dans le message d'échec si l'assertion échoue.

Si description est omis. Une description par défaut équivalente au code source de l'appel de assert() est créée au moment de la compilation.

Valeurs de retour

assert() renverra toujours true si au moins l'une des conditions suivantes est vraie :

  • zend.assertions=0
  • zend.assertions=-1
  • assert.exception=1
  • assert.bail=1
  • Un objet d'exception personnalisé est passé à description.

Si aucune des conditions n'est vraie, assert() renverra true si assertion est vrai, et false sinon.

Historique

Version | Description
8.3.0 | Toutes les configurations INI assert. ont été dépréciées.
8.0.0 | La fonction assert() n'évaluera plus les arguments de type string, au lieu de cela, ils seront traités comme tout autre argument. assert($a == $b) devrait être utilisé à la place du assert('$a == $b'). La directive assert.quiet_eval php.ini et la constante ASSERT_QUIET_EVAL ont également été supprimées, car elles n'auraient plus aucun effet.
8.0.0 | Si description est une instance de Throwable, l'objet est lancé si l'assertion échoue, indépendamment de la valeur de assert.exception.
8.0.0 | Si description est une instance de Throwable, aucune fonction de rappel utilisateur n'est appelée même si elle est définie.
8.0.0 | Déclarer une fonction qui s'appelle assert() à l'intérieur d'un espace de nom n'est plus autorisé, et génère une E_COMPILE_ERROR.
7.3.0 | Déclarer une fonction qui s'appelle assert() à l'intérieur d'un espace de nom est devenue obsolète. De telles déclarations génèrent désormais une E_DEPRECATED.
7.2.0 | L'utilisation d'une chaîne de caractères en tant qu'assertion est est devenue obsolète. Ceci émet désormais une notice E_DEPRECATED quand assert.active et zend.assertions sont tous les deux définit à 1.

Exemples

Exemple #1 Exemple d'assert()

<?php
assert(1 > 2);
echo 'Hi!';
?>

Si les assertions sont activées (zend.assertions=1) l'exemple ci-dessus afficherait :

Fatal error: Uncaught AssertionError: assert(1 > 2) in example.php:2
Stack trace:
#0 example.php(2): assert(false, 'assert(1 > 2)')
#1 {main}
  thrown in example.php on line 2

Si les assertions sont désactivées (zend.assertions=0 ou zend.assertions=-1) l'exemple ci-dessus afficherait :

Hi!

Exemple #2 Utilisation d'un message personnalisé

<?php
assert(1 > 2, "Expected one to be greater than two");
echo 'Hi!';
?>

Si les assertions sont activées, l'exemple ci-dessus affichera : l'exemple ci-dessus afficherait :

Fatal error: Uncaught AssertionError: Expected one to be greater than two in example.php:2
Stack trace:
#0 example.php(2): assert(false, 'Expected one to...')
#1 {main}
  thrown in example.php on line 2

Si les assertions sont désactivées, l'exemple ci-dessus affichera : l'exemple ci-dessus afficherait :

Hi!

Exemple #3 Utilisation d'une classe d'exception personnalisée

<?php
class ArithmeticAssertionError extends AssertionError {}

assert(1 > 2, new ArithmeticAssertionError("Expected one to be greater than two"));
echo 'Hi!';

Si les assertions sont activées, l'exemple ci-dessus affichera : l'exemple ci-dessus afficherait :

Fatal error: Uncaught ArithmeticAssertionError: Expected one to be greater than two in example.php:4
Stack trace:
#0 {main}
  thrown in example.php on line 4

Si les assertions sont désactivées, l'exemple ci-dessus affichera :

Hi!

Voir aussi

  • assert_options() - Définit/récupère 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, PHP 8)

cli_get_process_title — Retourne le titre du processus courant

Description

cli_get_process_title(): ?string

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, PHP 8)

cli_set_process_title — Définit le titre du processus

Description

cli_set_process_title(string $title): bool

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 utiliser 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


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, PHP 8)

dl — Charge une extension PHP à la volée

Description

dl(string $extension_filename): bool

Charge l'extension PHP extension_filename à 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 n'est disponible que pour les SAPI CLI et intégrés, et le SAPI CGI lorsqu'il est exécuté à partir de la ligne de commande.

Liste de paramètres

extension_filename

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, l'extension est chargée depuis C:\php5\ 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 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 (en désactivant la directive enable_dl 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');
}
}

// Ou utiliser la constante PHP_SHLIB_SUFFIX
if (!extension_loaded('sqlite')) {
$prefix = (PHP_SHLIB_SUFFIX === 'dll') ? 'php_' : '';
dl($prefix . 'sqlite.' . PHP_SHLIB_SUFFIX);
}
?>

Notes

Note:

dl() est sensible à la casse sur les plates-formes Unix.

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, PHP 8)

extension_loaded — Détermine si une extension est chargée ou non

Description

extension_loaded(string $extension): bool

Détermine si une extension est chargée ou non.

Liste de paramètres

extension

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 extension 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, PHP 8)

gc_collect_cycles — Force le passage du collecteur de mémoire

Description

gc_collect_cycles(): int
Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

gc_disable — Désactive le collecteur de références circulaires

Description

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, PHP 8)

gc_enable — Active le collecteur de références circulaires

Description

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, PHP 8)

gc_enabled — Retourne le statut du collecteur de références circulaires

Description

gc_enabled(): bool

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


Récupère de la mémoire utilisé par le gestionaire de mémoire de Zend Engine

  • « gc_enabled
  • gc_status »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Récupère de la mémoire utilisé par le gestionaire de mémoire de Zend Engine

gc_mem_caches

(PHP 7, PHP 8)

gc_mem_caches — Récupère de la mémoire utilisé par le gestionaire de mémoire de Zend Engine

Description

gc_mem_caches(): int

Récupère de la mémoire utilisé par le gestionaire de mémoire de Zend Engine.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre d'octets libérés.

Voir aussi

  • Ramasse-miettes (Garbage Collection)


Récupère les informations à propos du ramasse-miettes

  • « gc_mem_caches
  • get_cfg_var »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Récupère les informations à propos du ramasse-miettes

gc_status

(PHP 7 >= 7.3.0, PHP 8)

gc_status — Récupère les informations à propos du ramasse-miettes

Description

gc_status(): array

Récupère les informations à propos de l'état actuel du ramasse-miettes.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau associatif avec les éléments suivants :

  • "runs"
  • "collected"
  • "threshold"
  • "roots"
  • "running"
  • "protected"
  • "full"
  • "buffer_size"
  • "application_time"
  • "collector_time"
  • "destructor_time"
  • "free_time"

Historique

Version | Description
8.3.0 | gc_status() retourne désormais les champs additionnels suivants : "running", "protected", "full", "buffer_size", "application_time", "collector_time", "destructor_time", et "free_time".

Exemples

Exemple #1 Utilisation de gc_status()

<?php

// créer l'arbre d'objets qui nécessite la collection du ramasse-miettes
$a = new stdClass();
$a->b = [];
for ($i = 0; $i < 100000; $i++) {
$b = new stdClass();
$b->a = $a;
$a->b[] = $b;
}
unset($a);
unset($b);
gc_collect_cycles();

var_dump(gc_status());

Résultat de l'exemple ci-dessus est similaire à :

array(4) {
  ["runs"]=>
  int(5)
  ["collected"]=>
  int(100002)
  ["threshold"]=>
  int(50001)
  ["roots"]=>
  int(0)
}

Résultat de l'exemple ci-dessus en PHP 8.3 est similaire à :

array(12) {
  ["running"]=>
  bool(false)
  ["protected"]=>
  bool(false)
  ["full"]=>
  bool(false)
  ["runs"]=>
  int(5)
  ["collected"]=>
  int(100002)
  ["threshold"]=>
  int(50001)
  ["buffer_size"]=>
  int(131072)
  ["roots"]=>
  int(0)
  ["application_time"]=>
  float(0.031182458)
  ["collector_time"]=>
  float(0.020106291)
  ["destructor_time"]=>
  float(0)
  ["free_time"]=>
  float(0.003707167)
}

Voir aussi

  • Ramasse-miettes (Garbage Collection)


Retourne la valeur d'une option de PHP

  • « gc_status
  • 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, PHP 8)

get_cfg_var — Retourne la valeur d'une option de PHP

Description

get_cfg_var(string $option): string|array|false

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.

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, PHP 8)

get_current_user — Retourne le nom du possesseur du script courant

Description

get_current_user(): string

Retourne le nom du possesseur du script courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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();
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

get_defined_constants — Retourne la liste des constantes et leurs valeurs

Description

get_defined_constants(bool $categorize = false): array

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));
?>

Résultat de l'exemple ci-dessus est 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.

Exemples

Exemple #1 Exemple avec get_defined_constants()

<?php
print_r(get_defined_constants());
?>

Résultat de l'exemple ci-dessus est 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 si une constante avec le nom donné existe
  • constant() - Retourne la valeur 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, PHP 8)

get_extension_funcs — Liste les fonctions d'une extension

Description

get_extension_funcs(string $extension): array|false

Retourne le nom des fonctions définies dans le module extension.

Liste de paramètres

extension

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 extension n'est pas une extension valide.

Exemples

Exemple #1 Affiche toutes les fonctions XML

<?php
print_r(get_extension_funcs("xml"));
?>

Résultat de l'exemple ci-dessus est 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
)

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, PHP 8)

get_include_path — Lit la valeur de la directive de configuration include_path

Description

get_include_path(): string|false

Lit la valeur de la directive de configuration include_path.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le chemin, sous la forme d'une chaîne de caractères, ou false si une erreur survient.

Exemples

Exemple #1 Exemple avec get_include_path()

<?php
echo get_include_path();

// Ou utiliser ini_get()
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, PHP 8)

get_included_files — Retourne un tableau avec les noms des fichiers qui sont inclus dans un script

Description

get_included_files(): array

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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

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, PHP 8)

get_loaded_extensions — Retourne la liste de tous les modules compilés et chargés

Description

get_loaded_extensions(bool $zend_extensions = false): array

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.

Exemples

Exemple #1 Exemple avec get_loaded_extensions()

<?php
print_r(get_loaded_extensions());
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => Core
    [1] => date
    [2] => libxml
    [3] => pcre
    [4] => sqlite3
    [5] => zlib
    [6] => ctype
    [7] => dom
    [8] => fileinfo
    [9] => filter
    [10] => hash
    [11] => json
    [12] => mbstring
    [13] => SPL
    [14] => PDO
    [15] => session
    [16] => posix
    [17] => Reflection
    [18] => standard
    [19] => SimpleXML
    [20] => pdo_sqlite
    [21] => Phar
    [22] => tokenizer
    [23] => xml
    [24] => xmlreader
    [25] => xmlwriter
    [26] => gmp
    [27] => iconv
    [28] => intl
    [29] => bcmath
    [30] => sodium
    [31] => Zend OPcache
)

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

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.4.0, et a été SUPPRIMÉE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

get_magic_quotes_gpc(): false

Retourne toujours false.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne toujours false.

Historique

Version | Description
7.4.0 | Cette fonction a été rendue obsolète.

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

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.4.0, et a été SUPPRIMÉE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

get_magic_quotes_runtime(): false

Retourne toujours false.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne toujours false.

Historique

Version | Description
7.4.0 | Cette fonction a été rendue obsolète.

Voir aussi

  • get_magic_quotes_gpc() - Retourne la configuration actuelle de l'option magic_quotes_gpc


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, PHP 8)

get_required_files — Alias de get_included_files()

Description

Cette fonction est un alias de : get_included_files().


Retourne les ressources active

  • « get_required_files
  • getenv »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Retourne les ressources active

get_resources

(PHP 7, PHP 8)

get_resources — Retourne les ressources active

Description

get_resources(?string $type = null): array

Retourne un tableau de toutes les ressources resource actuellement actives, optionellement filtré par le type de ressource.

Note: Cette fonction est destinée à des fins de débogage et de test. Elle n'est pas censée être utilisée dans des environnements de production, et surtout pas pour accéder ou même manipuler des ressources qui ne sont normalement pas accessibles (par exemple, la ressource de flux sous-jacente des instances de SplFileObject).

Liste de paramètres

type

Si définis, ceci provoquera get_resources() de ne retourner seulement les ressources du type donnée. A list of resource types is available.

Si chaîne de caractères Unknown est fournis pour le type, dans ce cas là seulement les ressources dont le type est inconnue seront retournées.

Si omis, toutes les ressources seront retournées.

Valeurs de retour

Retourne un tableau des ressources actuellement actives, indexé par le numéro de la ressource.

Historique

Version | Description
8.0.0 | type est désormais nullable.

Exemples

Exemple #1 get_resources() non-filtré

<?php
$fp = tmpfile();
var_dump(get_resources());
?>

Résultat de l'exemple ci-dessus est similaire à :

array(1) {
  [1]=>
  resource(1) of type (stream)
}

Exemple #2 get_resources() filtré

<?php
$fp = tmpfile();
var_dump(get_resources('stream'));
var_dump(get_resources('curl'));
?>

Résultat de l'exemple ci-dessus est 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 seule ou toutes les variables d'environnement

  • « get_resources
  • getlastmod »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Retourne la valeur d'une seule ou toutes les variables d'environnement

getenv

(PHP 4, PHP 5, PHP 7, PHP 8)

getenv — Retourne la valeur d'une seule ou toutes les variables d'environnement

Description

getenv(?string $name = null, bool $local_only = false): string|array|false

Retourne la valeur d'une seule ou toutes les variables 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

name

Le nom de la variable en tant que chaîne de caractères ou null.

local_only

Lorsqu'il est défini sur true, seules les variables d'environnement locales sont renvoyées, définies par le système d'exploitation ou putenv. Cela n'a d'effet que lorsque name est une chaîne de caractères.

Valeurs de retour

Retourne la valeur de la variable d'environnement name, ou false si la variable d'environnement name n'existe pas. Si name est omit, toutes les variables d'environnement sont retournée en tant qu'un tableau associatif.

Historique

Version | Description
8.0.0 | Le name est désormais nullable.
7.1.0 | name peut désormais être omit pour récupérer un tableau associatif de toutes les variables d'environnement.
7.0.9 | Le paramètre local_only a été ajouté.

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'];

// Obtenir en toute sécurité la valeur d'une variable d'environnement,
// ignorant si elle a été définie par un SAPI ou a été modifiée avec putenv
$ip = getenv('REMOTE_ADDR', true) ?: getenv('REMOTE_ADDR')
?>

Notes

Avertissement

Si PHP est exécuté dans un SAPI tel que Fast CGI, cette fonction retournera toujours la valeur d'une variable d'environnement définit par le SAPI, même si putenv() a été utilisé pour définir une variable d'environnement locale avec le même nom. Le paramètre local_only doit être utilisé pour retourner les valeurs de variables d'environnements définit localement.

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, PHP 8)

getlastmod — Retourne la date de dernière modification de la page

Description

getlastmod(): int|false

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().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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 un horodatage Unix
  • 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, PHP 8)

getmygid — Retourne le GID du propriétaire du script

Description

getmygid(): int|false

Retourne le GID du propriétaire du script.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

getmyinode — Retourne l'inode du script

Description

getmyinode(): int|false

Retourne l'inode du script courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

getmypid — Retourne le numéro de processus courant de PHP

Description

getmypid(): int|false

Retourne le numéro de processus courant de PHP.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

getmyuid — Retourne l'UID du propriétaire du script actuel

Description

getmyuid(): int|false

Retourne l'UID du propriétaire du script actuel.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

getopt — Lit des options passées dans la ligne de commande

Description

getopt(string $short_options, array $long_options = [], int &$rest_index = null): array|false

getopt() lit les options passées dans la ligne de commande.

Liste de paramètres

short_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.
long_options
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.
rest_index
Si le paramètre rest_index est présent, alors l'index où l'analyse des arguments s'est arrêtée sera écrit dans cette variable.

Le paramètre short_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.

Le tableau de valeurs long_options peut contenir :

  • String (paramètre n'accepte aucune valeur)
  • String suivit d'un deux-point (paramètre nécessite une valeur)
  • String suivit de deux deux-points (valeur optionnel)

Note:

Le format des paramètres short_options et long_options est identique ; la seule différence est que long_options prend un tableau en option (où chaque élément est une option) alors que short_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
7.1.0 | Ajout du paramètre rest_index.

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)
}

Exemple #4 Exemple de getopt() : Utilisant rest_index

<?php
// Script example.php
$rest_index = null;
$opts = getopt('a:b:', [], $rest_index);
$pos_args = array_slice($argv, $rest_index);
var_dump($pos_args);
shell> php example.php -a 1 -b 2 -- test

L'exemple ci-dessus va afficher :

array(1) {
  [0]=>
  string(4) "test"
}

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, PHP 8)

getrusage — Retourne le niveau d'utilisation des ressources

Description

getrusage(int $mode = 0): array|false

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

mode

Si mode 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. Retourne false en cas d'échec.

Historique

Version | Description
7.0.0 | Cette fonction est maintenant supportée sous Windows.

Exemples

Exemple #1 Exemple avec getrusage()

<?php
$dat = getrusage();
echo $dat["ru_oublock"]; // nombre d'opération de block de sortie
echo $dat["ru_inblock"]; // nombre d'opération de block d'entrée
echo $dat["ru_msgsnd"]; // nombre de messages IPC envoyé
echo $dat["ru_msgrcv"]; // nombre de messages IPC reçu
echo $dat["ru_maxrss"]; // taille maximale du groupe de résidents
echo $dat["ru_ixrss"]; // taille de la mémoire partagée intégrale
echo $dat["ru_idrss"]; // taille intégrale des données non partagées
echo $dat["ru_minflt"]; // nombre de page récupéré (faute de page mineure)
echo $dat["ru_majflt"]; // nombre de défauts de page (faute de page majeure)
echo $dat["ru_nsignals"]; // nombre de signaux reçu
echo $dat["ru_nvcsw"]; // nombre de changement de contexte volontaire
echo $dat["ru_nivcsw"]; // nombre de changement de contexte involontaire
echo $dat["ru_nswap"]; // taille de la mémoire swap
echo $dat["ru_utime.tv_usec"]; // temps utilisateur utilisé (en microsecondes)
echo $dat["ru_utime.tv_sec"]; // temps utilisateur utilisé (en secondes)
echo $dat["ru_stime.tv_usec"]; // temps système utilisé (en microsecondes)
echo $dat["ru_stime.tv_sec"]; // temps système utilisé (en secondes)
?>

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 mode vaut RUSAGE_SELF)
  • "ru_maxrss" (seulement si mode vaut RUSAGE_SELF)

Si getrusage() est appelé avec le paramètre mode 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, PHP 8)

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, PHP 8)

ini_get_all — Lit toutes les valeurs de configuration

Description

ini_get_all(?string $extension = null, bool $details = true): array|false

Retourne toutes les valeurs de configuration.

Liste de paramètres

extension

Un nom d'extension, optionnel. Si non-null ou différent de la chaîne de caractères core, cette 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. Retourne false et lève une erreur de niveau E_WARNING si l'extension n'existe pas.

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.

Exemples

Exemple #1 Exemple avec ini_get_all()

<?php
print_r(ini_get_all("pcre"));
print_r(ini_get_all());
?>

Résultat de l'exemple ci-dessus est 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
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [pcre.backtrack_limit] => 100000
    [pcre.recursion_limit] => 100000
)
Array
(
    [allow_call_time_pass_reference] => 0
    [allow_url_fopen] => 1
    ...
)

Notes

Note:

ini_get_all() ignore les options ini "array" telles que pdo.dsn.*.

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_parse_quantity »
  • 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, PHP 8)

ini_get — Lit la valeur d'une option de configuration

Description

ini_get(string $option): string|false

Retourne la valeur de l'option de configuration varname en cas de succès.

Liste de paramètres

option

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
case 'g':
$val *= 1024;
case 'm':
$val *= 1024;
case 'k':
$val *= 1024;
}

return $val;
}

?>

Résultat de l'exemple ci-dessus est 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.

Note:

ini_get() ne peut pas lire les options ini de type "array" tel que pdo.dsn.*, et retourne false 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


Get interpreted size from ini shorthand syntax

  • « ini_get
  • ini_restore »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Get interpreted size from ini shorthand syntax

ini_parse_quantity

(PHP 8 >= 8.2.0)

ini_parse_quantity — Get interpreted size from ini shorthand syntax

Description

ini_parse_quantity(string $shorthand): int

Returns the interpreted size in bytes on success from an ini shorthand.

Liste de paramètres

shorthand

Ini shorthand to parse, must be a number followed by an optional multiplier. The following multipliers are supported: k/K (1024), m/M (1048576), g/G (1073741824). The number can be a decimal, hex (prefixed with 0x or 0X), octal (prefixed with 0o, 0O or 0) or binary (prefixed with 0b or 0B)

Valeurs de retour

Returns the interpreted size in bytes as an entier.

Erreurs / Exceptions

If the value cannot be parsed, or an invalid multiplier is used, an E_WARNING is raised.

Exemples

Exemple #1 A few ini_parse_quantity() examples

<?php

var_dump(ini_parse_quantity('1024'));
var_dump(ini_parse_quantity('1024M'));
var_dump(ini_parse_quantity('512K'));
var_dump(ini_parse_quantity('0xFFk'));
var_dump(ini_parse_quantity('0b1010k'));
var_dump(ini_parse_quantity('0o1024'));
var_dump(ini_parse_quantity('01024'));
var_dump(ini_parse_quantity('Foobar'));
var_dump(ini_parse_quantity('10F'));

?>

Résultat de l'exemple ci-dessus est similaire à :

int(1024)
int(1073741824)
int(524288)
int(261120)
int(10240)
int(532)
int(532)

Warning: Invalid quantity "Foobar": no valid leading digits, interpreting as "0" for backwards compatibility
int(0)

Warning: Invalid quantity "10F": unknown multiplier "F", interpreting as "10" for backwards compatibility
int(10)

Voir aussi

  • ini_get() - Lit la valeur d'une option de configuration


Restaure la valeur de l'option de configuration

  • « ini_parse_quantity
  • 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, PHP 8)

ini_restore — Restaure la valeur de l'option de configuration

Description

ini_restore(string $option): void

Restaure la valeur originale de l'option de configuration varname.

Liste de paramètres

option

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 = 'html_errors';

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 'html_errors': 1
Nouvelle valeur de 'html_errors': 0
Valeur originale de 'html_errors': 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
  • memory_get_peak_usage »
  • 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, PHP 8)

ini_set — Modifie la valeur d'une option de configuration

Description

ini_set(string $option, string|int|float|bool|null $value): string|false

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

option

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.

value

La nouvelle valeur pour l'option.

Valeurs de retour

Retourne l'ancienne valeur en cas de succès, false si une erreur survient.

Historique

Version | Description
8.1.0 | value accepte désormais tout type de scalaire (y compris null). Auparavant, seules les valeurs de type chaîne de caractères étaient acceptées.

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


Retourne la quantité de mémoire maximale allouée par PHP

  • « ini_set
  • 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, PHP 8)

memory_get_peak_usage — Retourne la quantité de mémoire maximale allouée par PHP

Description

memory_get_peak_usage(bool $real_usage = false): int

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.

Voir aussi

  • memory_get_usage() - Indique la quantité de mémoire utilisée par PHP
  • memory_reset_peak_usage() - Reset the peak memory usage
  • memory_limit


Indique la quantité de mémoire utilisée par PHP

  • « memory_get_peak_usage
  • memory_reset_peak_usage »
  • 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, PHP 8)

memory_get_usage — Indique la quantité de mémoire utilisée par PHP

Description

memory_get_usage(bool $real_usage = false): int

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 totale 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 sera retournée.

Note:

PHP ne peut suivre que la mémoire allouée par emalloc()

Valeurs de retour

Retourne la quantité de mémoire, en octets.

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


Reset the peak memory usage

  • « memory_get_usage
  • php_ini_loaded_file »
  • PHP Manual
  • Fonctions sur les options et les informations de PHP
  • Reset the peak memory usage

memory_reset_peak_usage

(PHP 8 >= 8.2.0)

memory_reset_peak_usage — Reset the peak memory usage

Description

memory_reset_peak_usage(): void

Resets the peak memory usage returned by the memory_get_peak_usage() function.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 memory_reset_peak_usage() example

<?php

var_dump(memory_get_peak_usage());

$a = str_repeat("Hello", 424242);
var_dump(memory_get_peak_usage());

unset($a);
memory_reset_peak_usage();

$a = str_repeat("Hello", 2424);
var_dump(memory_get_peak_usage());

?>

Résultat de l'exemple ci-dessus est similaire à :

int(422440)
int(2508672)
int(399208)

Voir aussi

  • memory_get_peak_usage() - Retourne la quantité de mémoire maximale allouée par PHP


Récupère le chemin d'un fichier php.ini chargé

  • « memory_reset_peak_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 8)

php_ini_loaded_file — Récupère le chemin d'un fichier php.ini chargé

Description

php_ini_loaded_file(): string|false

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é';
}
?>

Résultat de l'exemple ci-dessus est 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_sapi_name »
  • 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 8)

php_ini_scanned_files — Retourne la liste des fichiers .ini analysés dans les dossiers de configuration supplémentaires

Description

php_ini_scanned_files(): string|false

php_ini_scanned_files() retourne une liste de noms de fichiers de configuration analysés après php.ini. Cette liste est au format CSV. Les dossiers examinés sont définis par une option de configuration lors de la compilation, et optionnellement par une variable d'environnement lors de l'exécution : plus d'information sont disponible dans le guide d'installation.

Les fichiers de configuration retournés incluent le chemin entier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères où les fichiers .ini sont séparés par des virgules en cas de succès. Chaque virgule est suivie d'un retour à la ligne. Si la directive de configuration --with-config-file-scan-dir n'a pas était définit et que la variable d'environnement PHP_INI_SCAN_DIR n'est pas définit, false est retourné. Si c'était définit et que le dossier était vide, une chaîne vide est retournée. Si un fichier est méconnaissable, le fichier sera quand même inclus dans la chaîne de caractères retourné mais entraînera également une erreur PHP. Cette erreur PHP sera visible à la fois au moment de la compilation et lors de l'utilisation de 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 le type d'interface utilisée entre le serveur web et PHP

  • « php_ini_scanned_files
  • 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 8)

php_sapi_name — Retourne le type d'interface utilisée entre le serveur web et PHP

Description

php_sapi_name(): string|false

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le type de l'interface, sous la forme d'une chaîne de caractères en minuscule, ou false si une erreur survient.

Voici une liste non exhaustive des valeurs possibles : apache, apache2handler, cgi (jusqu'en PHP 5.3), cgi-fcgi, cli, cli-server, embed, fpm-fcgi, litespeed, phpdbg.

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.

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 8)

php_uname — Retourne les informations sur le système d'exploitation

Description

php_uname(string $mode = "a"): string

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, PHP 8)

phpcredits — Affiche les crédits de PHP

Description

phpcredits(int $flags = CREDITS_ALL): true

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

flags

Pour générer une page personnalisée sur les crédits, il faut utiliser le paramètre flags.

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

Retourne toujours true.

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
  • 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, PHP 8)

phpinfo — Affiche de nombreuses informations sur la configuration de PHP

Description

phpinfo(int $flags = INFO_ALL): true

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

flags

L'affichage peut être personnalisé en utilisant une ou plusieurs des constantes suivantes. Elles sont combinables avec l' opérateur sur les bits ou , et doivent être passées dans le paramètre flags. 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.

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
  • 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, PHP 8)

phpversion — Retourne le numéro de la version courante de PHP

Description

phpversion(?string $extension = null): string|false

Retourne le numéro de la version courante de PHP.

Liste de paramètres

extension

Un nom d'extension, optionnel.

Valeurs de retour

Retourne la version actuelle de PHP en tant que string. Si un argument string est fournit au paramètre extension, phpversion() retourne la version de cette extension, ou false s'il n'y a pas d'information de version associé ou cette extension n'est pas activé.

Historique

Version | Description
8.0.0 | extension est désormais nullable.

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_*.

Note:

Certaines extensions peuvent définir leur propre numéro de version. Cependant, la plupart des extensions incluses utiliseront la version de PHP comme numéro de 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
  • 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, PHP 8)

putenv — Fixe la valeur d'une variable d'environnement

Description

putenv(string $assignment): bool

Ajoute assignment à l'environnement serveur. Cette valeur n'existera que durant la vie de la requête courante, et l'environnement initial sera restauré lorsque le script sera terminé.

Liste de paramètres

assignment

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");
?>

Voir aussi

  • getenv() - Retourne la valeur d'une seule ou toutes les variables 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

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.4.0, et a été SUPPRIMÉE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

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.

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 restore_include_path()

<?php

echo get_include_path(); // .:/usr/local/lib/php

set_include_path('/inc');

echo get_include_path(); // /inc

restore_include_path();

// Ou utiliser ini_restore()
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_time_limit »
  • 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, PHP 8)

set_include_path — Modifie la valeur de la directive de configuration include_path

Description

set_include_path(string $include_path): string|false

Modifie la valeur de la directive de configuration include_path, pour la durée du script en cours.

Liste de paramètres

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
set_include_path('/usr/lib/pear');

// Ou utiliser ini_set()
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


Fixe le temps maximum d'exécution d'un script

  • « set_include_path
  • 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, PHP 8)

set_time_limit — Fixe le temps maximum d'exécution d'un script

Description

set_time_limit(int $seconds): bool

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

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, PHP 8)

sys_get_temp_dir — Retourne le chemin du répertoire utilisé pour les fichiers temporaires

Description

sys_get_temp_dir(): string

Retourne le chemin du répertoire PHP où sont enregistrés les fichiers temporaires par défaut.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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;
?>

Résultat de l'exemple ci-dessus est 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_thread_id »
  • 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, PHP 8)

version_compare — Compare deux chaînes de version au format des versions PHP

Description

version_compare(string $version1, string $version2, ?string $operator = null): int|bool

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 de PHP, à n'importe quel stade.

Liste de paramètres

version1

Premier numéro de version.

version2

Second numéro de version.

operator

Un opérateur optionnel. 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 de 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\'ai au moins la version 5.0.0 de PHP ; ma version : ' . PHP_VERSION . "\n";
}

if (version_compare(PHP_VERSION, '5.0.0', '<')) {
echo 'J\'utilise encore 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 un identifiant unique du thread courant

  • « version_compare
  • 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, PHP 8)

zend_thread_id — Retourne un identifiant unique du thread courant

Description

zend_thread_id(): int

Cette fonction retourne un identifiant unique pour le thread courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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;
?>

Résultat de l'exemple ci-dessus est 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
  • phpdbg »
  • 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, PHP 8)

zend_version — Lit la version courante du moteur Zend

Description

zend_version(): string

Retourne une chaîne contenant le numéro de version du moteur d'analyse Zend actuellement en cours d'utilisation.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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();
?>

Résultat de l'exemple ci-dessus est 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
  • phpversion() - Retourne le numéro de la version courante de PHP


Interactive PHP Debugger

  • Introduction
  • Installation/Configuration
    • Configuration à l'exécution
  • Constantes pré-définies
  • phpdbg Fonctions
    • phpdbg_break_file — Insère un point d'arrêt dans une ligne d'un fichier
    • phpdbg_break_function — Insère un point d'arrêt à l'entrée d'une fonction
    • phpdbg_break_method — Insère un point d'arrêt à l'entrée d'une méthode
    • phpdbg_break_next — Insère un point d'arrêt au prochain opcode
    • phpdbg_clear — Supprime tous les points d'arrêt
    • phpdbg_color — Définie la couleur de certaines éléments
    • phpdbg_end_oplog — Description
    • phpdbg_exec — Tente de définir le contexte d'exécution
    • phpdbg_get_executable — Description
    • phpdbg_prompt — Définie l'invite de commande
    • phpdbg_start_oplog — Description


Introduction

Implemented as a SAPI module, phpdbg can exert complete control over the environment without impacting the functionality or performance of your code.

phpdbg aims to be a lightweight, powerful, easy to use debugging platform for PHP. It offers the following features:

  • Step-Through Debugging
  • Flexible Breakpoints (Class Method, Function, File:Line, Address, Opcode)
  • Easy Access to PHP with built-in eval()
  • Userland API
  • SAPI Agnostic - Easily Integrated
  • PHP Configuration File Support
  • JIT Super Globals - Set Your Own !!
  • Optional readline Support - Comfortable Terminal Operation
  • Easy Operation - See Help :)

Command line options
Option | Example Argument | Description
-c | -c/my/php.ini | Set php.ini file to load
-d | -dmemory_limit=4G | Set a php.ini directive
-n |  | Disable default php.ini
-q |  | Suppress welcome banner
-v |  | Enable oplog output
-b |  | Disable color
-i | -imy.init | Set .phpdbginit file
-I |  | Ignore default .phpdbginit
-O | -Omy.oplog | Set oplog output file
-r |  | Run execution context
-rr |  | Run execution context and quit after execution (not respecting breakpoints)
-e |  | Generate extended information for debugger/profiler
-E |  | Enable step through eval, careful!
-s | -s=, -s=foo | Read code to execute from stdin with an optional delimiter
-S | -Scli | Override SAPI name, careful!
-l | -l4000 | Setup remote console ports
-a | -a192.168.0.3 | Setup remote console bind address
-x |  | Enable xml output (instead of normal text output)
-p | -p, -p=func, -p* | Output opcodes and quit
-h |  | Print the help overview
-V |  | Print version number
-- | -- arg1 arg2 | Use to delimit phpdbg arguments and php $argv; append any $argv argument after it


  • « Introduction
  • Configuration à l'exécution »
  • PHP Manual
  • phpdbg
  • Installation/Configuration

Installation/Configuration

Sommaire

  • Configuration à l'exécution


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

phpdbg Options de configuration
Nom | Défaut | Modifiable | Historique
phpdbg.eol | 2 | INI_ALL | Removed as of PHP 8.1.0
phpdbg.path |  | 6 | Removed as of PHP 8.1.0

Voici un éclaircissement sur l'utilisation des directives de configuration.

phpdbg.eol mixed

The kind of line ending to use for output. For setting the value, one of the string aliases must be used.

int Value | string Alias
0 | CRLF, crlf, DOS, dos
1 | LF, lf, UNIX, unix
2 | CR, cr, MAC, mac

phpdbg.path 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.

PHPDBG_VERSION (string)
PHPDBG_FILE (int)
Supprimé depuis PHP 7.3.0.
PHPDBG_METHOD (int)
Supprimé depuis PHP 7.3.0.
PHPDBG_LINENO (int)
Supprimé depuis PHP 7.3.0.
PHPDBG_FUNC (int)
Supprimé depuis PHP 7.3.0.


phpdbg Fonctions

Sommaire

  • phpdbg_break_file — Insère un point d'arrêt dans une ligne d'un fichier
  • phpdbg_break_function — Insère un point d'arrêt à l'entrée d'une fonction
  • phpdbg_break_method — Insère un point d'arrêt à l'entrée d'une méthode
  • phpdbg_break_next — Insère un point d'arrêt au prochain opcode
  • phpdbg_clear — Supprime tous les points d'arrêt
  • phpdbg_color — Définie la couleur de certaines éléments
  • phpdbg_end_oplog — Description
  • phpdbg_exec — Tente de définir le contexte d'exécution
  • phpdbg_get_executable — Description
  • phpdbg_prompt — Définie l'invite de commande
  • phpdbg_start_oplog — Description


Insère un point d'arrêt dans une ligne d'un fichier

  • « phpdbg Fonctions
  • phpdbg_break_function »
  • PHP Manual
  • phpdbg Fonctions
  • Insère un point d'arrêt dans une ligne d'un fichier

phpdbg_break_file

(PHP 5 >= 5.6.3, PHP 7, PHP 8)

phpdbg_break_file — Insère un point d'arrêt dans une ligne d'un fichier

Description

phpdbg_break_file(string $file, int $line): void

Insère un point d'arrêt à la ligne line dans le fichier file.

Liste de paramètres

file

Le nom du fichier.

line

Le numéro de la ligne.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • phpdbg_break_function() - Insère un point d'arrêt à l'entrée d'une fonction
  • phpdbg_break_method() - Insère un point d'arrêt à l'entrée d'une méthode
  • phpdbg_break_next() - Insère un point d'arrêt au prochain opcode
  • phpdbg_clear() - Supprime tous les points d'arrêt


Insère un point d'arrêt à l'entrée d'une fonction

  • « phpdbg_break_file
  • phpdbg_break_method »
  • PHP Manual
  • phpdbg Fonctions
  • Insère un point d'arrêt à l'entrée d'une fonction

phpdbg_break_function

(PHP 5 >= 5.6.3, PHP 7, PHP 8)

phpdbg_break_function — Insère un point d'arrêt à l'entrée d'une fonction

Description

phpdbg_break_function(string $function): void

Insère un point d'arrêt à l'entrée de la fonction function.

Liste de paramètres

function

Le nom de la fonction.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • phpdbg_break_file() - Insère un point d'arrêt dans une ligne d'un fichier
  • phpdbg_break_method() - Insère un point d'arrêt à l'entrée d'une méthode
  • phpdbg_break_next() - Insère un point d'arrêt au prochain opcode
  • phpdbg_clear() - Supprime tous les points d'arrêt


Insère un point d'arrêt à l'entrée d'une méthode

  • « phpdbg_break_function
  • phpdbg_break_next »
  • PHP Manual
  • phpdbg Fonctions
  • Insère un point d'arrêt à l'entrée d'une méthode

phpdbg_break_method

(PHP 5 >= 5.6.3, PHP 7, PHP 8)

phpdbg_break_method — Insère un point d'arrêt à l'entrée d'une méthode

Description

phpdbg_break_method(string $class, string $method): void

Insère un point d'arrêt à l'entrée de la méthode method de la classe class.

Liste de paramètres

class

Le nom de la classe.

method

Le nom de la méthode.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • phpdbg_break_file() - Insère un point d'arrêt dans une ligne d'un fichier
  • phpdbg_break_function() - Insère un point d'arrêt à l'entrée d'une fonction
  • phpdbg_break_next() - Insère un point d'arrêt au prochain opcode
  • phpdbg_clear() - Supprime tous les points d'arrêt


Insère un point d'arrêt au prochain opcode

  • « phpdbg_break_method
  • phpdbg_clear »
  • PHP Manual
  • phpdbg Fonctions
  • Insère un point d'arrêt au prochain opcode

phpdbg_break_next

(PHP 5 >= 5.6.3, PHP 7, PHP 8)

phpdbg_break_next — Insère un point d'arrêt au prochain opcode

Description

phpdbg_break_next(): void

Insère un point d'arrêt au prochain opcode.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • phpdbg_break_file() - Insère un point d'arrêt dans une ligne d'un fichier
  • phpdbg_break_function() - Insère un point d'arrêt à l'entrée d'une fonction
  • phpdbg_break_method() - Insère un point d'arrêt à l'entrée d'une méthode
  • phpdbg_clear() - Supprime tous les points d'arrêt


Supprime tous les points d'arrêt

  • « phpdbg_break_next
  • phpdbg_color »
  • PHP Manual
  • phpdbg Fonctions
  • Supprime tous les points d'arrêt

phpdbg_clear

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

phpdbg_clear — Supprime tous les points d'arrêt

Description

phpdbg_clear(): void

Supprime tous les points d'arrêt qui ont été définis, soit via une des fonctions phpdbg_break_*(), ou interactivement via la console.

Avertissement

Cette fonction est actuellement non documentée ; 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

  • phpdbg_break_file() - Insère un point d'arrêt dans une ligne d'un fichier
  • phpdbg_break_function() - Insère un point d'arrêt à l'entrée d'une fonction
  • phpdbg_break_method() - Insère un point d'arrêt à l'entrée d'une méthode
  • phpdbg_break_next() - Insère un point d'arrêt au prochain opcode


Définie la couleur de certaines éléments

  • « phpdbg_clear
  • phpdbg_end_oplog »
  • PHP Manual
  • phpdbg Fonctions
  • Définie la couleur de certaines éléments

phpdbg_color

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

phpdbg_color — Définie la couleur de certaines éléments

Description

phpdbg_color(int $element, string $color): void

Définie la couleur color pour l'élément element.

Liste de paramètres

element

Une des constantes PHPDBG_COLOR_*.

color

Le nom de la couleur. Peut être white, red, green, yellow, blue, purple, cyan ou black, et, optionnellement, avec les compléments -bold ou -underline ; par exemple white-bold ou green-underline.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • phpdbg_prompt() - Définie l'invite de commande


Description

  • « phpdbg_color
  • phpdbg_exec »
  • PHP Manual
  • phpdbg Fonctions
  • Description

phpdbg_end_oplog

(PHP 7, PHP 8)

phpdbg_end_oplog —

Description

phpdbg_end_oplog(array $options = []): ?array

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

options

Valeurs de retour


Tente de définir le contexte d'exécution

  • « phpdbg_end_oplog
  • phpdbg_get_executable »
  • PHP Manual
  • phpdbg Fonctions
  • Tente de définir le contexte d'exécution

phpdbg_exec

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

phpdbg_exec — Tente de définir le contexte d'exécution

Description

phpdbg_exec(string $context): string|bool

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Si le contexte d'exécution a été défini avec succès, ce contexte sera retourné. Si le contexte d'exécution n'a pas été défini, true sera retourné. Si une erreur est survenue pendant la définition du contexte, false sera retourné et un erreur de niveau E_WARNING sera émise.


Description

  • « phpdbg_exec
  • phpdbg_prompt »
  • PHP Manual
  • phpdbg Fonctions
  • Description

phpdbg_get_executable

(PHP 7, PHP 8)

phpdbg_get_executable —

Description

phpdbg_get_executable(array $options = []): array

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

options

Valeurs de retour


Définie l'invite de commande

  • « phpdbg_get_executable
  • phpdbg_start_oplog »
  • PHP Manual
  • phpdbg Fonctions
  • Définie l'invite de commande

phpdbg_prompt

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

phpdbg_prompt — Définie l'invite de commande

Description

phpdbg_prompt(string $string): void

Définie l'invite de commande pour la chaîne string.

Liste de paramètres

string

La chaîne à utiliser comme invite de commande.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • phpdbg_color() - Définie la couleur de certaines éléments


Description

  • « phpdbg_prompt
  • runkit7 »
  • PHP Manual
  • phpdbg Fonctions
  • Description

phpdbg_start_oplog

(PHP 7, PHP 8)

phpdbg_start_oplog —

Description

phpdbg_start_oplog(): void

Avertissement

Cette fonction est actuellement non documentée ; 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.


runkit7

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • runkit7 Fonctions
    • runkit7_constant_add — Similar to define(), but allows defining in class definitions as well
    • runkit7_constant_redefine — Redefine an already defined constant
    • runkit7_constant_remove — Remove/Delete an already defined constant
    • runkit7_function_add — Add a new function, similar to create_function
    • runkit7_function_copy — Copy a function to a new function name
    • runkit7_function_redefine — Replace a function definition with a new implementation
    • runkit7_function_remove — Remove a function definition
    • runkit7_function_rename — Change a function's name
    • runkit7_import — Process a PHP file importing function and class definitions, overwriting where appropriate
    • runkit7_method_add — Dynamically adds a new method to a given class
    • runkit7_method_copy — Copies a method from class to another
    • runkit7_method_redefine — Dynamically changes the code of the given method
    • runkit7_method_remove — Dynamically removes the given method
    • runkit7_method_rename — Dynamically changes the name of the given method
    • runkit7_object_id — Return the integer object handle for given object
    • runkit7_superglobals — Return numerically indexed array of registered superglobals
    • runkit7_zval_inspect — Returns information about the passed in value with data types, reference counts, etc


Introduction

The runkit7 extension provides means to modify constants, user-defined functions, and user-defined classes. It also provides for custom superglobal variables.

This package is a fork of the » runkit package providing PHP 7 support.


Pré-requis

Modifying Constants, Functions, Classes, and Methods as well as Custom Superglobals works with all releases of PHP 7. No special requirements are necessary.


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 : » https://pecl.php.net/package/runkit7.

Les binaires Windows (les fichiers DLL) pour cette extension PECL sont disponibles sur le site web PECL.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Runkit Configuration Options
Nom | Défaut | Modifiable | Historique
runkit.superglobal | "" | INI_PERDIR |
runkit.internal_override | "0" | INI_SYSTEM |
Pour plus de détails sur les modes 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
Comma-separated list of variable names to be treated as superglobals. This value should be set in the systemwide php.ini file, but may work in perdir configuration contexts depending on your SAPI.

Exemple #1 Custom Superglobals with runkit.superglobal=_FOO,_BAR in php.ini

<?php
function show_values() {
echo "Foo is $_FOO\n";
echo "Bar is $_BAR\n";
echo "Baz is $_BAZ\n";
}

$_FOO = 'foo';
$_BAR = 'bar';
$_BAZ = 'baz';

/* Displays foo and bar, but not baz */
show_values();
?>
runkit.internal_override bool
Enables ability to modify/rename/remove internal functions.


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.

RUNKIT7_IMPORT_FUNCTIONS (int)
runkit7_import() flag indicating that normal functions should be imported from the specified file.
RUNKIT7_IMPORT_CLASS_METHODS (int)
runkit7_import() flag indicating that class methods should be imported from the specified file.
RUNKIT7_IMPORT_CLASS_CONSTS (int)
runkit7_import() flag indicating that class constants should be imported from the specified file.
RUNKIT7_IMPORT_CLASS_PROPS (int)
runkit7_import() flag indicating that class standard properties should be imported from the specified file.
RUNKIT7_IMPORT_CLASS_STATIC_PROPS (int)
runkit7_import() flag indicating that class static properties should be imported from the specified file. Available since Runkit 1.0.1.
RUNKIT7_IMPORT_CLASSES (int)
runkit7_import() flag representing a bitwise OR of the RUNKIT7_IMPORT_CLASS_* constants.
RUNKIT7_IMPORT_OVERRIDE (int)
runkit7_import() flag indicating that if any of the imported functions, methods, constants, or properties already exist, they should be replaced with the new definitions. If this flag is not set, then any imported definitions which already exist will be discarded.
RUNKIT7_ACC_RETURN_REFERENCE (int)
Include this flag to make the function or method being created or redeclared return a reference.
RUNKIT7_ACC_PUBLIC (int)
Flag for runkit7_method_add() and runkit7_method_redefine() to make the method public.
RUNKIT7_ACC_PROTECTED (int)
Flag for runkit7_method_add() and runkit7_method_redefine() to make the method protected.
RUNKIT7_ACC_PRIVATE (int)
Flag for runkit7_method_add() and runkit7_method_redefine() to make the method private.
RUNKIT7_ACC_STATIC (int)
Flag for runkit7_method_add() and runkit7_method_redefine() to make the method static.
RUNKIT7_FEATURE_MANIPULATION (int)
Equal to 1 if runtime manipulation is enabled, and 0 otherwise.
RUNKIT7_FEATURE_SUPERGLOBALS (int)
Equal to 1 if custom superglobals are enabled, and 0 otherwise.
RUNKIT7_FEATURE_SANDBOX (int)
Always 0, it's impractical to implement the sandbox feature in php 7.


runkit7 Fonctions

Sommaire

  • runkit7_constant_add — Similar to define(), but allows defining in class definitions as well
  • runkit7_constant_redefine — Redefine an already defined constant
  • runkit7_constant_remove — Remove/Delete an already defined constant
  • runkit7_function_add — Add a new function, similar to create_function
  • runkit7_function_copy — Copy a function to a new function name
  • runkit7_function_redefine — Replace a function definition with a new implementation
  • runkit7_function_remove — Remove a function definition
  • runkit7_function_rename — Change a function's name
  • runkit7_import — Process a PHP file importing function and class definitions, overwriting where appropriate
  • runkit7_method_add — Dynamically adds a new method to a given class
  • runkit7_method_copy — Copies a method from class to another
  • runkit7_method_redefine — Dynamically changes the code of the given method
  • runkit7_method_remove — Dynamically removes the given method
  • runkit7_method_rename — Dynamically changes the name of the given method
  • runkit7_object_id — Return the integer object handle for given object
  • runkit7_superglobals — Return numerically indexed array of registered superglobals
  • runkit7_zval_inspect — Returns information about the passed in value with data types, reference counts, etc


Similar to define(), but allows defining in class definitions as well

  • « runkit7 Fonctions
  • runkit7_constant_redefine »
  • PHP Manual
  • runkit7 Fonctions
  • Similar to define(), but allows defining in class definitions as well

runkit7_constant_add

(PECL runkit7 >= Unknown)

runkit7_constant_add — Similar to define(), but allows defining in class definitions as well

Description

runkit7_constant_add(string $constant_name, mixed $value, int $newVisibility = ?): bool

Liste de paramètres

constant_name

Name of constant to declare. Either a string to indicate a global constant, or classname::constname to indicate a class constant.

value

NULL, Bool, Long, Double, String, Array, or Resource value to store in the new constant.

newVisibility

Visibility of the constant, for class constants. Public by default. One of the RUNKIT7_ACC_* constants.

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
  • runkit7_constant_redefine() - Redefine an already defined constant
  • runkit7_constant_remove() - Remove/Delete an already defined constant


Redefine an already defined constant

  • « runkit7_constant_add
  • runkit7_constant_remove »
  • PHP Manual
  • runkit7 Fonctions
  • Redefine an already defined constant

runkit7_constant_redefine

(PECL runkit7 >= Unknown)

runkit7_constant_redefine — Redefine an already defined constant

Description

runkit7_constant_redefine(string $constant_name, mixed $value, int $new_visibility = ?): bool

Liste de paramètres

constant_name

Constant to redefine. Either the name of a global constant, or classname::constname indicating class constant.

value

Value to assign to the constant.

new_visibility

The new visibility of the constant, for class constants. Unchanged by default. One of the RUNKIT7_ACC_* constants.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Voir aussi

  • runkit7_constant_add() - Similar to define(), but allows defining in class definitions as well
  • runkit7_constant_remove() - Remove/Delete an already defined constant


Remove/Delete an already defined constant

  • « runkit7_constant_redefine
  • runkit7_function_add »
  • PHP Manual
  • runkit7 Fonctions
  • Remove/Delete an already defined constant

runkit7_constant_remove

(PECL runkit7 >= Unknown)

runkit7_constant_remove — Remove/Delete an already defined constant

Description

runkit7_constant_remove(string $constant_name): bool

Liste de paramètres

constant_name

Name of the constant to remove. Either the name of a global constant, or classname::constname indicating a class constant.

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
  • runkit7_constant_add() - Similar to define(), but allows defining in class definitions as well
  • runkit7_constant_redefine() - Redefine an already defined constant


Add a new function, similar to create_function

  • « runkit7_constant_remove
  • runkit7_function_copy »
  • PHP Manual
  • runkit7 Fonctions
  • Add a new function, similar to create_function

runkit7_function_add

(PECL runkit7 >= Unknown)

runkit7_function_add — Add a new function, similar to create_function()

Description

runkit7_function_add(
string $function_name,
string $argument_list,
string $code,
bool $return_by_reference = null,
string $doc_comment = null,
string $return_type = ?,
bool $is_strict = ?
): bool
runkit7_function_add(
string $function_name,
Closure $closure,
string $doc_comment = null,
string $return_type = ?,
bool $is_strict = ?
): bool

Liste de paramètres

function_name

Name of the function to be created

argument_list

Comma separated argument list

code

Code making up the function

closure

A closure that defines the function.

return_by_reference

Whether the function should return by reference.

doc_comment

The doc comment of the function.

return_type

The return type of the function.

is_strict

Whether the function should behave as if it were declared in a file with strict_types=1

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 A runkit7_function_add() example

<?php
runkit7_function_add('testme','$a,$b','echo "The value of a is $a\n"; echo "The value of b is $b\n";');
testme(1,2);
?>

L'exemple ci-dessus va afficher :

The value of a is 1
The value of b is 2

Voir aussi

  • create_function() - Crée une fonction anonyme
  • runkit7_function_redefine() - Replace a function definition with a new implementation
  • runkit7_function_copy() - Copy a function to a new function name
  • runkit7_function_rename() - Change a function's name
  • runkit7_function_remove() - Remove a function definition
  • runkit7_method_add() - Dynamically adds a new method to a given class


Copy a function to a new function name

  • « runkit7_function_add
  • runkit7_function_redefine »
  • PHP Manual
  • runkit7 Fonctions
  • Copy a function to a new function name

runkit7_function_copy

(PECL runkit7 >= Unknown)

runkit7_function_copy — Copy a function to a new function name

Description

runkit7_function_copy(string $source_name, string $target_name): bool

Liste de paramètres

source_name

Name of the existing function

target_name

Name of the new function to copy the definition to

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 A runkit7_function_copy() example

<?php
function original() {
echo "In a function\n";
}
runkit7_function_copy('original','duplicate');
original();
duplicate();
?>

L'exemple ci-dessus va afficher :

In a function
In a function

Voir aussi

  • runkit7_function_add() - Add a new function, similar to create_function
  • runkit7_function_redefine() - Replace a function definition with a new implementation
  • runkit7_function_rename() - Change a function's name
  • runkit7_function_remove() - Remove a function definition


Replace a function definition with a new implementation

  • « runkit7_function_copy
  • runkit7_function_remove »
  • PHP Manual
  • runkit7 Fonctions
  • Replace a function definition with a new implementation

runkit7_function_redefine

(PECL runkit7 >= Unknown)

runkit7_function_redefine — Replace a function definition with a new implementation

Description

runkit7_function_redefine(
string $function_name,
string $argument_list,
string $code,
bool $return_by_reference = null,
string $doc_comment = null,
string $return_type = ?,
bool $is_strict = ?
): bool
runkit7_function_redefine(
string $function_name,
Closure $closure,
string $doc_comment = null,
string $return_type = ?,
bool $is_strict = ?
): bool

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

function_name

Name of function to redefine

argument_list

New list of arguments to be accepted by function

code

New code implementation

closure

A closure that defines the function.

return_by_reference

Whether the function should return by reference.

doc_comment

The doc comment of the function.

return_type

The return type of the function.

is_strict

Whether the function behaves as if it was declared in a file with strict_types=1

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 A runkit7_function_redefine() example

<?php
function testme() {
echo "Original Testme Implementation\n";
}
testme();
runkit7_function_redefine('testme','','echo "New Testme Implementation\n";');
testme();
?>

L'exemple ci-dessus va afficher :

Original Testme Implementation
New Testme Implementation

Voir aussi

  • runkit7_function_add() - Add a new function, similar to create_function
  • runkit7_function_copy() - Copy a function to a new function name
  • runkit7_function_rename() - Change a function's name
  • runkit7_function_remove() - Remove a function definition
  • runkit7_method_redefine() - Dynamically changes the code of the given method


Remove a function definition

  • « runkit7_function_redefine
  • runkit7_function_rename »
  • PHP Manual
  • runkit7 Fonctions
  • Remove a function definition

runkit7_function_remove

(PECL runkit7 >= Unknown)

runkit7_function_remove — Remove a function definition

Description

runkit7_function_remove(string $function_name): bool

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

function_name

Name of the function to be deleted

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Voir aussi

  • runkit7_function_add() - Add a new function, similar to create_function
  • runkit7_function_copy() - Copy a function to a new function name
  • runkit7_function_redefine() - Replace a function definition with a new implementation
  • runkit7_function_rename() - Change a function's name


Change a function's name

  • « runkit7_function_remove
  • runkit7_import »
  • PHP Manual
  • runkit7 Fonctions
  • Change a function's name

runkit7_function_rename

(PECL runkit7 >= Unknown)

runkit7_function_rename — Change a function's name

Description

runkit7_function_rename(string $source_name, string $target_name): bool

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

source_name

Current function name

target_name

New function name

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Voir aussi

  • runkit7_function_add() - Add a new function, similar to create_function
  • runkit7_function_copy() - Copy a function to a new function name
  • runkit7_function_redefine() - Replace a function definition with a new implementation
  • runkit7_function_remove() - Remove a function definition


Process a PHP file importing function and class definitions, overwriting where appropriate

  • « runkit7_function_rename
  • runkit7_method_add »
  • PHP Manual
  • runkit7 Fonctions
  • Process a PHP file importing function and class definitions, overwriting where appropriate

runkit7_import

(PECL runkit7 >= Unknown)

runkit7_import — Process a PHP file importing function and class definitions, overwriting where appropriate

Avertissement

This feature has been removed in PECL runkit7 4.0.0.

Description

runkit7_import(string $filename, int $flags = ?): bool

Similar to include. However, any code residing outside of a function or class is simply ignored. Additionally, depending on the value of flags, any functions or classes which already exist in the currently running environment may be automatically overwritten by their new definitions.

Liste de paramètres

filename

Filename to import function and class definitions from

flags

Bitwise OR of the RUNKIT7_IMPORT_* family of constants.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.


Dynamically adds a new method to a given class

  • « runkit7_import
  • runkit7_method_copy »
  • PHP Manual
  • runkit7 Fonctions
  • Dynamically adds a new method to a given class

runkit7_method_add

(PECL runkit7 >= Unknown)

runkit7_method_add — Dynamically adds a new method to a given class

Description

runkit7_method_add(
string $class_name,
string $method_name,
string $argument_list,
string $code,
int $flags = RUNKIT7_ACC_PUBLIC,
string $doc_comment = null,
string $return_type = ?,
bool $is_strict = ?
): bool
runkit7_method_add(
string $class_name,
string $method_name,
Closure $closure,
int $flags = RUNKIT7_ACC_PUBLIC,
string $doc_comment = null,
string $return_type = ?,
bool $is_strict = ?
): bool

Liste de paramètres

class_name

The class to which this method will be added

method_name

The name of the method to add

argument_list

Comma-delimited list of arguments for the newly-created method

code

The code to be evaluated when method_name is called

closure

A closure that defines the method.

flags

The type of method to create, can be RUNKIT7_ACC_PUBLIC, RUNKIT7_ACC_PROTECTED or RUNKIT7_ACC_PRIVATE optionally combined via bitwise OR with RUNKIT7_ACC_STATIC

doc_comment

The doc comment of the method.

return_type

The return type of the method.

is_strict

Whether the method behaves as if it were declared in a file with strict_types=1

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 runkit7_method_add() example

<?php
class Example {
function foo() {
echo "foo!\n";
}
}

// create an Example object
$e = new Example();

// Add a new public method
runkit7_method_add(
'Example',
'add',
'$num1, $num2',
'return $num1 + $num2;',
RUNKIT7_ACC_PUBLIC
);

// add 12 + 4
echo $e->add(12, 4);
?>

L'exemple ci-dessus va afficher :

16

Voir aussi

  • runkit7_method_copy() - Copies a method from class to another
  • runkit7_method_redefine() - Dynamically changes the code of the given method
  • runkit7_method_remove() - Dynamically removes the given method
  • runkit7_method_rename() - Dynamically changes the name of the given method
  • runkit7_function_add() - Add a new function, similar to create_function


Copies a method from class to another

  • « runkit7_method_add
  • runkit7_method_redefine »
  • PHP Manual
  • runkit7 Fonctions
  • Copies a method from class to another

runkit7_method_copy

(PECL runkit7 >= Unknown)

runkit7_method_copy — Copies a method from class to another

Description

runkit7_method_copy(
string $destination_class,
string $destination_method_name,
string $source_class,
string $source_method_name = ?
): bool

Liste de paramètres

destination_class

Destination class for copied method

destination_method_name

Destination method name

source_class

Source class of the method to copy

source_method_name

Name of the method to copy from the source class. If this parameter is omitted, the value of destination_method_name is assumed.

Valeurs de retour

Exemples

Exemple #1 runkit7_method_copy() example

<?php
class Foo {
function example() {
return "foo!\n";
}
}

class Bar {
// initially, no methods
}

// copy the example() method from the Foo class to the Bar class, as baz()
runkit7_method_copy('Bar', 'baz', 'Foo', 'example');

// output copied function
echo Bar::baz();
?>

L'exemple ci-dessus va afficher :

foo!

Voir aussi

  • runkit7_method_add() - Dynamically adds a new method to a given class
  • runkit7_method_redefine() - Dynamically changes the code of the given method
  • runkit7_method_remove() - Dynamically removes the given method
  • runkit7_method_rename() - Dynamically changes the name of the given method
  • runkit7_function_copy() - Copy a function to a new function name


Dynamically changes the code of the given method

  • « runkit7_method_copy
  • runkit7_method_remove »
  • PHP Manual
  • runkit7 Fonctions
  • Dynamically changes the code of the given method

runkit7_method_redefine

(PECL runkit7 >= Unknown)

runkit7_method_redefine — Dynamically changes the code of the given method

Description

runkit7_method_redefine(
string $class_name,
string $method_name,
string $argument_list,
string $code,
int $flags = RUNKIT7_ACC_PUBLIC,
string $doc_comment = null,
string $return_type = ?,
bool $is_strict = ?
): bool
runkit7_method_redefine(
string $class_name,
string $method_name,
Closure $closure,
int $flags = RUNKIT7_ACC_PUBLIC,
string $doc_comment = null,
string $return_type = ?,
bool $is_strict = ?
): bool

Liste de paramètres

class_name

The class in which to redefine the method

method_name

The name of the method to redefine

argument_list

Comma-delimited list of arguments for the redefined method

code

The new code to be evaluated when method_name is called

closure

A closure that defines the method.

flags

The redefined method can be RUNKIT7_ACC_PUBLIC, RUNKIT7_ACC_PROTECTED or RUNKIT7_ACC_PRIVATE optionally combined via bitwise OR with RUNKIT7_ACC_STATIC

doc_comment

The doc comment of the method.

return_type

The return type of the method.

is_strict

Whether the method behaves as if it was declared in a file with strict_types=1.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 runkit7_method_redefine() example

<?php
class Example {
function foo() {
return "foo!\n";
}
}

// create an Example object
$e = new Example();

// output Example::foo() (before redefine)
echo "Before: " . $e->foo();

// Redefine the 'foo' method
runkit7_method_redefine(
'Example',
'foo',
'',
'return "bar!\n";',
RUNKIT7_ACC_PUBLIC
);

// output Example::foo() (after redefine)
echo "After: " . $e->foo();
?>

L'exemple ci-dessus va afficher :

Before: foo!
After: bar!

Voir aussi

  • runkit7_method_add() - Dynamically adds a new method to a given class
  • runkit7_method_copy() - Copies a method from class to another
  • runkit7_method_remove() - Dynamically removes the given method
  • runkit7_method_rename() - Dynamically changes the name of the given method
  • runkit7_function_redefine() - Replace a function definition with a new implementation


Dynamically removes the given method

  • « runkit7_method_redefine
  • runkit7_method_rename »
  • PHP Manual
  • runkit7 Fonctions
  • Dynamically removes the given method

runkit7_method_remove

(PECL runkit7 >= Unknown)

runkit7_method_remove — Dynamically removes the given method

Description

runkit7_method_remove(string $class_name, string $method_name): bool

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

class_name

The class in which to remove the method

method_name

The name of the method to remove

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 runkit7_method_remove() example

<?php
class Example {
function foo() {
return "foo!\n";
}

function bar() {
return "bar!\n";
}
}

// Remove the 'foo' method
runkit7_method_remove(
'Example',
'foo'
);

echo implode(' ', get_class_methods('Example'));

?>

L'exemple ci-dessus va afficher :

bar

Voir aussi

  • runkit7_method_add() - Dynamically adds a new method to a given class
  • runkit7_method_copy() - Copies a method from class to another
  • runkit7_method_redefine() - Dynamically changes the code of the given method
  • runkit7_method_rename() - Dynamically changes the name of the given method
  • runkit7_function_remove() - Remove a function definition


Dynamically changes the name of the given method

  • « runkit7_method_remove
  • runkit7_object_id »
  • PHP Manual
  • runkit7 Fonctions
  • Dynamically changes the name of the given method

runkit7_method_rename

(PECL runkit7 >= Unknown)

runkit7_method_rename — Dynamically changes the name of the given method

Description

runkit7_method_rename(string $class_name, string $source_method_name, string $target_method_name): bool

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

class_name

The class in which to rename the method

source_method_name

The name of the method to rename

target_method_name

The new name to give to the renamed method

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 runkit7_method_rename() example

<?php
class Example {
function foo() {
return "foo!\n";
}
}

// Rename the 'foo' method to 'bar'
runkit7_method_rename(
'Example',
'foo',
'bar'
);

// output renamed function
echo (new Example)->bar();
?>

L'exemple ci-dessus va afficher :

foo!

Voir aussi

  • runkit7_method_add() - Dynamically adds a new method to a given class
  • runkit7_method_copy() - Copies a method from class to another
  • runkit7_method_redefine() - Dynamically changes the code of the given method
  • runkit7_method_remove() - Dynamically removes the given method
  • runkit7_function_rename() - Change a function's name


Return the integer object handle for given object

  • « runkit7_method_rename
  • runkit7_superglobals »
  • PHP Manual
  • runkit7 Fonctions
  • Return the integer object handle for given object

runkit7_object_id

(PECL runkit7 >= Unknown)

runkit7_object_id — Return the integer object handle for given object

Description

runkit7_object_id(object $obj): int

This function is equivalent to spl_object_id().

This function returns a unique identifier for the object. The object id is unique for the lifetime of the object. Once the object is destroyed, its id may be reused for other objects. This behavior is similar to spl_object_hash().

Liste de paramètres

obj

Any object.

Valeurs de retour

An integer identifier that is unique for each currently existing object and is always the same for each object.

Notes

Note:

When an object is destroyed, its id may be reused for other objects.

Voir aussi

  • spl_object_id() - Retourne le gestionnaire d'objet entier pour un objet donné


Return numerically indexed array of registered superglobals

  • « runkit7_object_id
  • runkit7_zval_inspect »
  • PHP Manual
  • runkit7 Fonctions
  • Return numerically indexed array of registered superglobals

runkit7_superglobals

(PECL runkit7 >= Unknown)

runkit7_superglobals — Return numerically indexed array of registered superglobals

Description

runkit7_superglobals(): array

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a numerically indexed array of the currently registered superglobals. i.e. _GET, _POST, _REQUEST, _COOKIE, _SESSION, _SERVER, _ENV, _FILES

Voir aussi

  • Variable Scope


Returns information about the passed in value with data types, reference counts, etc

  • « runkit7_superglobals
  • uopz »
  • PHP Manual
  • runkit7 Fonctions
  • Returns information about the passed in value with data types, reference counts, etc

runkit7_zval_inspect

(PECL runkit7 >= Unknown)

runkit7_zval_inspect — Returns information about the passed in value with data types, reference counts, etc

Description

runkit7_zval_inspect(string $value): array

Liste de paramètres

value

The value to return the representation of

Valeurs de retour

The array returned by this function contains the following elements:

  • address
  • refcount (optional)
  • is_ref (optional)
  • type

Exemples

Exemple #1 runkit7_zval_inspect() example

<?php

$var = new DateTime();
var_dump(runkit7_zval_inspect($var));

$var = 1;
var_dump(runkit7_zval_inspect($var));
?>

L'exemple ci-dessus va afficher :

array(4) {
  ["address"]=>
  string(14) "0x7f45ab21b1e0"
  ["refcount"]=>
  int(2)
  ["is_ref"]=>
  bool(false)
  ["type"]=>
  int(8)
}

array(2) {
  ["address"]=>
  string(14) "0x7f45ab21b1e0"
  ["type"]=>
  int(4)
}

Voir aussi

  • References Explained
  • » References Explained (by Derick Rethans)


Opérations utilisateurs pour Zend

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions Uopz
    • uopz_add_function — Adds non-existent function or method
    • uopz_allow_exit — Allows control over disabled exit opcode
    • uopz_backup — Sauvegarde une fonction
    • uopz_compose — Compose une classe
    • uopz_copy — Copie une fonction
    • uopz_del_function — Deletes previously added function or method
    • 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_get_exit_status — Retrieve the last set exit status
    • uopz_get_hook — Gets previously set hook on function or method
    • uopz_get_mock — Get the current mock for a class
    • uopz_get_property — Gets value of class or instance property
    • uopz_get_return — Gets a previous set return value for a function
    • uopz_get_static — Gets the static variables from function or method scope
    • 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_set_hook — Sets hook to execute when entering a function or method
    • uopz_set_mock — Use mock instead of class for new objects
    • uopz_set_property — Sets value of existing class or instance property
    • uopz_set_return — Provide a return value for an existing function
    • uopz_set_static — Sets the static variables in function or method scope
    • uopz_undefine — Supprime une constante
    • uopz_unset_hook — Removes previously set hook on function or method
    • uopz_unset_mock — Unset previously set mock
    • uopz_unset_return — Unsets a previously set return value for a function


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.

Attention

PECL uopz 6.1.1 n'est pas compatible avec Xdebug >= 2.9.4. Les versions ultérieurs de uopz ne sont pas compatible avec Xdebug < 2.9.4.


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

À partir de uopz 5.0 PHP 7.0 est nécessaire. À partir de uopz 5.1, PHP 7.1+ est nécessaire.


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 : » https://pecl.php.net/package/uopz.

Les utilisateurs de Windows peuvent télécharger les binaires depuis le site web de » PECL.

À partir de uopz 5.0.0, l'extention doit être chargée en tant qu' extension. Antérieur à cette version, elle doit être chargée comme une zend_extension.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

uopz Options de configuration
Nom | Défaut | Modifiable | Historique
uopz.disable | "0" | INI_SYSTEM | Disponible à partir de uopz 5.0.2
uopz.exit | "0" | INI_SYSTEM | Disponible à partir de uopz 6.0.1
uopz.overloads | "1" | INI_SYSTEM | Disponible à partir de uopz 2.0.2. Supprimé à partir de uopz 5.0.0.
Pour plus de détails sur les modes INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

uopz.disable bool

Si activé, uopz devrait ne plus avoir d'effet sur le moteur.

uopz.exit bool

Autoriser ou non l'exécution des codes d'opération (opcodes) de sortie. Ce paramètre peut être dérogé lors de l'exécution en appellant uopz_allow_exit().

uopz.overloads bool

Active la possibilité d'utiliser uopz_overload().

Note: Lors de l'exécution avec OPcache d'activé, il est peut être nécéssaire de désactiver toutes les optimisations OPcache (opcache.optimization_level=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.

Les opcodes suivants sont définis comme des constantes par uopz avant 5.0.0 :

ZEND_EXIT (int)
Invoque exit() et die() ; réceptionne aucun argument. Retourne true pour sortir, false pour continuer
ZEND_NEW (int)
Invoqué par la construction d'un objet, reçoit l'objet de la classe créée comme seul argument
ZEND_THROW (int)
Invoqué par la structure throw, reçoit l'exception de la classe émise comme seul argument
ZEND_FETCH_CLASS (int)
Invoqué lors d'une composition, recoit la classe, le nom de la classe récupérée comme seul argument
ZEND_ADD_TRAIT (int)
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 (int)
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 (int)
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 ! Ces constantes sont supprimées à partir de uopz 5.0.0.

ZEND_USER_OPCODE_CONTINUE (int)
Avance d'un opcode, et continue
ZEND_USER_OPCODE_ENTER (int)
Entre dans un nouvel op_array sans récursion
ZEND_USER_OPCODE_LEAVE (int)
Retourne l'op_array appelé dans le même exécuteur
ZEND_USER_OPCODE_DISPATCH (int)
Dispatche le gestionnaire opcode original
ZEND_USER_OPCODE_DISPATCH_TO (int)
Dispoatche à un gestionnaire spécifique
ZEND_USER_OPCODE_RETURN (int)
Sort de l'exécuteur (retourne à la fonction)

Les modificateurs suivants sont enregistrés comme constantes par uopz

ZEND_ACC_PUBLIC (int)
Marque une fonction comme publique, le comportement par défaut
ZEND_ACC_PROTECTED (int)
Marque une fonction comme protégée
ZEND_ACC_PRIVATE (int)
Marque une fonction comme privée
ZEND_ACC_STATIC (int)
Marque une fonction comme statique
ZEND_ACC_FINAL (int)
Marque une fonction comme finale
ZEND_ACC_ABSTRACT (int)
Marque une fonction comme abstraite
ZEND_ACC_CLASS (int)
Enregistrement pour la consistence, l'entrée par défaut d'une classe. Supprimée à partir de uopz 5.0.0.
ZEND_ACC_INTERFACE (int)
Marque la classe comme étant une interface. Supprimée à partir de uopz 5.0.0.
ZEND_ACC_TRAIT (int)
Marque la classe comme étant trait. Supprimée à partir de uopz 5.0.0.
ZEND_ACC_FETCH (int)
Utilisé pour récupérer seulement les drapeaux. Supprimée à partir de uopz 5.0.0.


Fonctions Uopz

Sommaire

  • uopz_add_function — Adds non-existent function or method
  • uopz_allow_exit — Allows control over disabled exit opcode
  • uopz_backup — Sauvegarde une fonction
  • uopz_compose — Compose une classe
  • uopz_copy — Copie une fonction
  • uopz_del_function — Deletes previously added function or method
  • 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_get_exit_status — Retrieve the last set exit status
  • uopz_get_hook — Gets previously set hook on function or method
  • uopz_get_mock — Get the current mock for a class
  • uopz_get_property — Gets value of class or instance property
  • uopz_get_return — Gets a previous set return value for a function
  • uopz_get_static — Gets the static variables from function or method scope
  • 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_set_hook — Sets hook to execute when entering a function or method
  • uopz_set_mock — Use mock instead of class for new objects
  • uopz_set_property — Sets value of existing class or instance property
  • uopz_set_return — Provide a return value for an existing function
  • uopz_set_static — Sets the static variables in function or method scope
  • uopz_undefine — Supprime une constante
  • uopz_unset_hook — Removes previously set hook on function or method
  • uopz_unset_mock — Unset previously set mock
  • uopz_unset_return — Unsets a previously set return value for a function


Adds non-existent function or method

  • « Fonctions Uopz
  • uopz_allow_exit »
  • PHP Manual
  • Fonctions Uopz
  • Adds non-existent function or method

uopz_add_function

(PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_add_function — Adds non-existent function or method

Description

uopz_add_function(string $function, Closure $handler, int &$flags = ZEND_ACC_PUBLIC): bool
uopz_add_function(
string $class,
string $function,
Closure $handler,
int &$flags = ZEND_ACC_PUBLIC,
int &$all = true
): bool

Adds a non-existent function or method.

Liste de paramètres

class

The name of the class.

function

The name of the function or method.

handler

The Closure that defines the new function or method.

flags

Flags to set for the new function or method.

all

Whether all classes that descend from class will also be affected.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Erreurs / Exceptions

uopz_add_function() throws a RuntimeException if the function or method to add already exists.

Exemples

Exemple #1 Basic uopz_add_function() Usage

<?php
uopz_add_function('foo', function () {echo 'bar';});
foo();
?>

L'exemple ci-dessus va afficher :

bar

Voir aussi

  • uopz_del_function() - Deletes previously added function or method
  • uopz_set_return() - Provide a return value for an existing function


Allows control over disabled exit opcode

  • « uopz_add_function
  • uopz_backup »
  • PHP Manual
  • Fonctions Uopz
  • Allows control over disabled exit opcode

uopz_allow_exit

(PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_allow_exit — Allows control over disabled exit opcode

Description

uopz_allow_exit(bool $allow): void

By default uopz disables the exit opcode, so exit() calls are practically ignored. uopz_allow_exit() allows to control this behavior.

Liste de paramètres

allow

Whether to allow the execution of exit opcodes or not.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 uopz_allow_exit() example

<?php
exit(1);
echo 1;
uopz_allow_exit(true);
exit(2);
echo 2;
?>

L'exemple ci-dessus va afficher :

1

Notes

Attention

OPcache optimizes away dead code after unconditional exit.

Voir aussi

  • uopz_get_exit_status() - Retrieve the last set exit status


Sauvegarde une fonction

  • « uopz_allow_exit
  • uopz_compose »
  • PHP Manual
  • Fonctions Uopz
  • Sauvegarde une fonction

uopz_backup

(PECL uopz 1 >= 1.0.3, PECL uopz 2)

uopz_backup — Sauvegarde une fonction

Avertissement

Cette fonction a été SUPPRIMEE dand PECL uopz 5.0.0.

Description

uopz_backup(string $function): void
uopz_backup(string $class, string $function): void

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 :

bool(true)


Compose une classe

  • « uopz_backup
  • uopz_copy »
  • PHP Manual
  • Fonctions Uopz
  • Compose une classe

uopz_compose

(PECL uopz 1, PECL uopz 2)

uopz_compose — Compose une classe

Avertissement

Cette fonction a été SUPPRIMEE dand PECL uopz 5.0.0.

Description

uopz_compose(
string $name,
array $classes,
array $methods = ?,
array $properties = ?,
int $flags = ?
): void

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 :

array(1) {
  ["myTrait"]=>
  string(7) "myTrait"
}
array(1) {
  ["myClass"]=>
  string(7) "myClass"
}
array(1) {
  ["myInterface"]=>
  string(11) "myInterface"
}


Copie une fonction

  • « uopz_compose
  • uopz_del_function »
  • PHP Manual
  • Fonctions Uopz
  • Copie une fonction

uopz_copy

(PECL uopz 1 >= 1.0.4, PECL uopz 2)

uopz_copy — Copie une fonction

Avertissement

Cette fonction a été SUPPRIMEE dand PECL uopz 5.0.0.

Description

uopz_copy(string $function): Closure
uopz_copy(string $class, string $function): Closure

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 :

string(5) "dummy"


Deletes previously added function or method

  • « uopz_copy
  • uopz_delete »
  • PHP Manual
  • Fonctions Uopz
  • Deletes previously added function or method

uopz_del_function

(PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_del_function — Deletes previously added function or method

Description

uopz_del_function(string $function): bool
uopz_del_function(string $class, string $function, int &$all = true): bool

Deletes a previously added function or method.

Liste de paramètres

class

The name of the class.

function

The name of the function or method.

all

Whether all classes that descend from class will also be affected.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Erreurs / Exceptions

uopz_del_function() throws a RuntimeException if the function or method to delete has not been added by uopz_add_function().

Exemples

Exemple #1 Basic uopz_del_function() Usage

<?php
uopz_add_function('foo', function () {echo 'bar';});
var_dump(function_exists('foo'));
uopz_del_function('foo');
var_dump(function_exists('foo'));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)

Voir aussi

  • uopz_add_function() - Adds non-existent function or method
  • uopz_unset_return() - Unsets a previously set return value for a function


Supprime une fonction

  • « uopz_del_function
  • uopz_extend »
  • PHP Manual
  • Fonctions Uopz
  • Supprime une fonction

uopz_delete

(PECL uopz 1, PECL uopz 2)

uopz_delete — Supprime une fonction

Avertissement

Cette fonction a été SUPPRIMEE dand PECL uopz 5.0.0.

Description

uopz_delete(string $function): void
uopz_delete(string $class, string $function): void

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");
?>

Résultat de l'exemple ci-dessus est 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");
?>

Résultat de l'exemple ci-dessus est 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, PECL uopz 2, PECL uopz 5, PECL uopz 6, PECL uopz 7 < 7.1.0)

uopz_extend — Etend une classe à l'exécution

Description

uopz_extend(string $class, string $parent): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Erreurs / Exceptions

À partir de PHP 7.4.0, uopz_extends() émet une RuntimeException, si OPcache est activé, et l'entrée de classe de class ou parent (si dans un trait) est immutable.

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 :

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 >= 2.0.2, PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_flags — Récupère ou défini les drapeaux d'une fonction ou d'une classe

Description

uopz_flags(string $function, int $flags = PHP_INT_MAX): int
uopz_flags(string $class, string $function, int $flags = PHP_INT_MAX): int

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. Si class est fournie et que une chaîne de caractères vide est passé comme function, uopz_flags() récupère ou définie les drapeaux de l'entrée de classe.

flags

Un jeu valide de drapeaux ZEND_ACC_ flags. Si omit, uopz_flags() agit commt un récupérateur.

Valeurs de retour

Si des drapeaux ont été définis, retourne les anciens drapeaux, sinon, retourne les drapeaux courants

Erreurs / Exceptions

À partir de PHP 7.4.0, si le paramètre flags est fournie uopz_flags() émet une RuntimeException, si OPcache est activé, et l'entrée de classe de class ou l'entrée de fonction function est immutable.

Historique

Version | Description
PECL uopz 5.0.0 | Le paramètre flags est désormait optionnel. Auparavant, ZEND_ACC_FETCH devait être passé pour utiliser uopz_flags() en tant que récupérateur.

Exemples

Exemple #1 Exemple avec uopz_flags()

<?php
class Test {
public function method() {
return __CLASS__;
}
}

$flags = uopz_flags("Test", "method");

var_dump((bool) (uopz_flags("Test", "method") & ZEND_ACC_PRIVATE));
var_dump((bool) (uopz_flags("Test", "method") & 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_PRIVATE));
var_dump((bool) (uopz_flags("Test", "method") & ZEND_ACC_STATIC));
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(false)
int(1234567890)
bool(true)
bool(true)

Exemple #2 Transformer une Classe finale en non-finale

<?php
final class MyClass
{
}

$flags = uopz_flags(MyClass::class, '');
uopz_flags(MyClass::class, '', $flags & ~ZEND_ACC_FINAL);
var_dump((new ReflectionClass(MyClass::class))->isFinal());
?>

L'exemple ci-dessus va afficher :

bool(false)


Crée une fonction à l'exécution

  • « uopz_flags
  • uopz_get_exit_status »
  • PHP Manual
  • Fonctions Uopz
  • Crée une fonction à l'exécution

uopz_function

(PECL uopz 1, PECL uopz 2)

uopz_function — Crée une fonction à l'exécution

Avertissement

Cette fonction a été SUPPRIMEE dand PECL uopz 5.0.0.

Description

uopz_function(string $function, Closure $handler, int $modifiers = ?): void
uopz_function(
string $class,
string $function,
Closure $handler,
int $modifiers = ?
): void

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");
?>

Résultat de l'exemple ci-dessus est 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 :

11


Retrieve the last set exit status

  • « uopz_function
  • uopz_get_hook »
  • PHP Manual
  • Fonctions Uopz
  • Retrieve the last set exit status

uopz_get_exit_status

(PECL uopz 5, PECL uopz , PECL uopz 7)

uopz_get_exit_status — Retrieve the last set exit status

Description

uopz_get_exit_status(): mixed

Retrieves the last set exit status, i.e. the value passed to exit().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

This function returns the last exit status, or null if exit() has not been called.

Exemples

Exemple #1 uopz_get_exit_status() example

<?php
exit(123);
echo uopz_get_exit_status();?>

L'exemple ci-dessus va afficher :

123

Notes

Attention

OPcache optimizes away dead code after unconditional exit.

Voir aussi

  • uopz_allow_exit() - Allows control over disabled exit opcode


Gets previously set hook on function or method

  • « uopz_get_exit_status
  • uopz_get_mock »
  • PHP Manual
  • Fonctions Uopz
  • Gets previously set hook on function or method

uopz_get_hook

(PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_get_hook — Gets previously set hook on function or method

Description

uopz_get_hook(string $function): Closure
uopz_get_hook(string $class, string $function): Closure

Gets the previously set hook on a function or method.

Liste de paramètres

class

The name of the class.

function

The name of the function or method.

Valeurs de retour

Returns the previously set hook on a function or method, or null if no hook has been set.

Exemples

Exemple #1 Basic uopz_get_hook() Usage

<?php
function foo() {
echo 'foo';
}
uopz_set_hook('foo', function () {echo 'bar';});
var_dump(uopz_get_hook('foo'));
?>

Résultat de l'exemple ci-dessus est similaire à :

object(Closure)#2 (0) {
}

Voir aussi

  • uopz_set_hook() - Sets hook to execute when entering a function or method
  • uopz_unset_hook() - Removes previously set hook on function or method


Get the current mock for a class

  • « uopz_get_hook
  • uopz_get_property »
  • PHP Manual
  • Fonctions Uopz
  • Get the current mock for a class

uopz_get_mock

(PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_get_mock — Get the current mock for a class

Description

uopz_get_mock(string $class): mixed

Returns the current mock for class.

Liste de paramètres

class

The name of the mocked class.

Valeurs de retour

Either a string containing the name of the mock, or an object, or null if no mock has been set.

Exemples

Exemple #1 uopz_get_mock() example

<?php
class A {
public static function who() {
echo "A";
}
}

class mockA {
public static function who() {
echo "mockA";
}
}

uopz_set_mock(A::class, mockA::class);
echo uopz_get_mock(A::class);
?>

L'exemple ci-dessus va afficher :

mockA

Voir aussi

  • uopz_set_mock() - Use mock instead of class for new objects
  • uopz_unset_mock() - Unset previously set mock


Gets value of class or instance property

  • « uopz_get_mock
  • uopz_get_return »
  • PHP Manual
  • Fonctions Uopz
  • Gets value of class or instance property

uopz_get_property

(PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_get_property — Gets value of class or instance property

Description

uopz_get_property(string $class, string $property): mixed
uopz_get_property(object $instance, string $property): mixed

Gets the value of a static class property, if class is given, or the value of an instance property, if instance is given.

Liste de paramètres

class

The name of the class.

instance

The object instance.

property

The name of the property.

Valeurs de retour

Returns the value of the class or instance property, or null if the property is not defined.

Exemples

Exemple #1 Basic uopz_get_property() Usage

<?php
class Foo {
private static $staticBar = 10;
private $bar = 100;
}
$foo = new Foo;
var_dump(uopz_get_property('Foo', 'staticBar'));
var_dump(uopz_get_property($foo, 'bar'));
?>

Résultat de l'exemple ci-dessus est similaire à :

int(10)
int(100)

Voir aussi

  • uopz_set_property() - Sets value of existing class or instance property


Gets a previous set return value for a function

  • « uopz_get_property
  • uopz_get_static »
  • PHP Manual
  • Fonctions Uopz
  • Gets a previous set return value for a function

uopz_get_return

(PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_get_return — Gets a previous set return value for a function

Description

uopz_get_return(string $function): mixed
uopz_get_return(string $class, string $function): mixed

Gets the return value of the function previously set by uopz_set_return().

Liste de paramètres

class

The name of the class containing the function

function

The name of the function

Valeurs de retour

The return value or Closure previously set.

Exemples

Exemple #1 uopz_get_return() example

<?php
uopz_set_return("strlen", 42);
echo uopz_get_return("strlen");
?>

L'exemple ci-dessus va afficher :

42


Gets the static variables from function or method scope

  • « uopz_get_return
  • uopz_implement »
  • PHP Manual
  • Fonctions Uopz
  • Gets the static variables from function or method scope

uopz_get_static

(PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_get_static — Gets the static variables from function or method scope

Description

uopz_get_static(string $class, string $function): array
uopz_get_static(string $function): array

Gets the static variables from function or method scope.

Liste de paramètres

class

The name of the class.

function

The name of the function or method.

Valeurs de retour

Returns an associative array of variable names mapped to their current values on success, or null if the function or method does not exist.

Exemples

Exemple #1 Basic uopz_get_static() Usage

<?php
function foo() {
static $bar = 'baz';
}
var_dump(uopz_get_static('foo'));
?>

L'exemple ci-dessus va afficher :

array(1) {
  ["bar"]=>
  string(3) "baz"
}

Voir aussi

  • uopz_set_static() - Sets the static variables in function or method scope


Implémente une interface à l'exécution

  • « uopz_get_static
  • uopz_overload »
  • PHP Manual
  • Fonctions Uopz
  • Implémente une interface à l'exécution

uopz_implement

(PECL uopz 1, PECL uopz 2, PECL uopz 5, PECL uopz 6, PECL uopz 7 < 7.1.0)

uopz_implement — Implémente une interface à l'exécution

Description

uopz_implement(string $class, string $interface): bool

Implémente l'interface interface dans la classe class.

Liste de paramètres

class

interface

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Erreurs / Exceptions

À partir de PHP 7.4.0, uopz_implements() émet une RuntimeException, si OPcache est activé, et l'entrée de classe de class est immutable.

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 :

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, PECL uopz 2)

uopz_overload — Surcharge un opcode VM

Avertissement

Cette fonction a été SUPPRIMEE dand PECL uopz 5.0.0.

Description

uopz_overload(int $opcode, Callable $callable): void

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 :

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, PECL uopz 2, PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_redefine — Re-défini une constante

Description

uopz_redefine(string $constant, mixed $value): bool
uopz_redefine(string $class, string $constant, mixed $value): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 Exemple avec uopz_redefine()

<?php
define("MY", 100);

uopz_redefine("MY", 1000);

echo MY;
?>

L'exemple ci-dessus va afficher :

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, PECL uopz 2)

uopz_rename — Renomme une fonction à l'exécution

Avertissement

Cette fonction a été SUPPRIMEE dand PECL uopz 5.0.0.

Description

uopz_rename(string $function, string $rename): void
uopz_rename(string $class, string $function, string $rename): void

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 :

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 :

11


Restaure une fonction sauvegardée

  • « uopz_rename
  • uopz_set_hook »
  • PHP Manual
  • Fonctions Uopz
  • Restaure une fonction sauvegardée

uopz_restore

(PECL uopz 1 >= 1.0.3, PECL uopz 2)

uopz_restore — Restaure une fonction sauvegardée

Avertissement

Cette fonction a été SUPPRIMEE dand PECL uopz 5.0.0.

Description

uopz_restore(string $function): void
uopz_restore(string $class, string $function): void

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();
?>

Résultat de l'exemple ci-dessus est similaire à :

Warning: fgets() expects at least 1 parameter, 0 given in /path/to/script.php on line 8


Sets hook to execute when entering a function or method

  • « uopz_restore
  • uopz_set_mock »
  • PHP Manual
  • Fonctions Uopz
  • Sets hook to execute when entering a function or method

uopz_set_hook

(PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_set_hook — Sets hook to execute when entering a function or method

Description

uopz_set_hook(string $function, Closure $hook): bool
uopz_set_hook(string $class, string $function, Closure $hook): bool

Sets a hook to execute when entering a function or method.

Liste de paramètres

class

The name of the class.

function

The name of the function or method.

hook

A closure to execute when entering the function or method.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 Basic uopz_set_hook() Usage

<?php
function foo() {
echo 'foo';
}
uopz_set_hook('foo', function () {echo 'bar';});
foo();
?>

L'exemple ci-dessus va afficher :

barfoo

Voir aussi

  • uopz_get_hook() - Gets previously set hook on function or method
  • uopz_unset_hook() - Removes previously set hook on function or method


Use mock instead of class for new objects

  • « uopz_set_hook
  • uopz_set_property »
  • PHP Manual
  • Fonctions Uopz
  • Use mock instead of class for new objects

uopz_set_mock

(PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_set_mock — Use mock instead of class for new objects

Description

uopz_set_mock(string $class, mixed $mock): void

If mock is a string containing the name of a class then it will be instantiated instead of class. mock can also be an object.

Note:

Only dynamic access to properties and methods will use the mock object. Static access still uses the original class. See example below.

Liste de paramètres

class

The name of the class to be mocked.

mock

The mock to use in the form of a string containing the name of the class to use or an object. If a string is passed, it has to be the fully qualified class name. It is recommended to use the ::class magic constant in this case.

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version | Description
uopz 6.0.0 | Mocking static members is no longer supported by this function. uopz_redefine() and uopz_set_return(), or Componere can be used instead.

Exemples

Exemple #1 uopz_set_mock() example

<?php
class A {
public function who() {
echo "A";
}
}

class mockA {
public function who() {
echo "mockA";
}
}

uopz_set_mock(A::class, mockA::class);
(new A)->who();
?>

L'exemple ci-dessus va afficher :

mockA

Exemple #2 uopz_set_mock() example

<?php
class A {
public function who() {
echo "A";
}
}

uopz_set_mock(A::class, new class {
public function who() {
echo "mockA";
}
});
(new A)->who();
?>

L'exemple ci-dessus va afficher :

mockA

Exemple #3 uopz_set_mock() and static members

As of uopz 6.0.0 mocking static members is no longer supported.

<?php
class A {
const CON = 'A';
public static function who() {
echo "A";
}
}

uopz_set_mock(A::class, new class {
const CON = 'mockA';
public static function who() {
echo "mockA";
}
});
echo A::CON, PHP_EOL;
A::who();
?>

L'exemple ci-dessus va afficher :

A
A

Output of the above example in uopz 5:

mockA
mockA

Voir aussi

  • uopz_get_mock() - Get the current mock for a class
  • uopz_unset_mock() - Unset previously set mock


Sets value of existing class or instance property

  • « uopz_set_mock
  • uopz_set_return »
  • PHP Manual
  • Fonctions Uopz
  • Sets value of existing class or instance property

uopz_set_property

(PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_set_property — Sets value of existing class or instance property

Description

uopz_set_property(string $class, string $property, mixed $value): void
uopz_set_property(object $instance, string $property, mixed $value): void

Sets the value of an existing static class property, if class is given, or the value of an instance property (regardless whether the instance property already exists), if instance is given.

Liste de paramètres

class

The name of the class.

instance

The object instance.

property

The name of the property.

value

The value to assign to the property.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Basic uopz_set_property() Usage

<?php
class Foo {
private static $staticBar;
private $bar;
public static function testStaticBar() {
return self::$staticBar;
}
public function testBar() {
return $this->bar;
}
}
$foo = new Foo;
uopz_set_property('Foo', 'staticBar', 10);
uopz_set_property($foo, 'bar', 100);
var_dump(Foo::testStaticBar());
var_dump($foo->testBar());
?>

L'exemple ci-dessus va afficher :

int(10)

Voir aussi

  • uopz_get_property() - Gets value of class or instance property


Provide a return value for an existing function

  • « uopz_set_property
  • uopz_set_static »
  • PHP Manual
  • Fonctions Uopz
  • Provide a return value for an existing function

uopz_set_return

(PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_set_return — Provide a return value for an existing function

Description

uopz_set_return(string $function, mixed $value, bool $execute = false): bool
uopz_set_return(
string $class,
string $function,
mixed $value,
bool $execute = false
): bool

Sets the return value of the function to value. If value is a Closure and execute is set, the Closure will be executed in place of the original function. It is possible to call the original function from the Closure.

Note:

This function replaces uopz_rename().

Liste de paramètres

class

The name of the class containing the function

function

The name of an existing function

value

The value the function should return. If a Closure is provided and the execute flag is set, the Closure will be executed in place of the original function.

execute

If true, and a Closure was provided as the value, the Closure will be executed in place of the original function.

Valeurs de retour

True if succeeded, false otherwise.

Exemples

Exemple #1 uopz_set_return() example

<?php
uopz_set_return("strlen", 42);
echo strlen("Banana");
?>

L'exemple ci-dessus va afficher :

42

Exemple #2 uopz_set_return() example

<?php
uopz_set_return("strlen", function($str) { return strlen($str) * 2; }, true );
echo strlen("Banana");
?>

L'exemple ci-dessus va afficher :

12

Exemple #3 uopz_set_return() class example

<?php
class My {
public static function strlen($arg) {
return strlen($arg);
}
}
uopz_set_return(My::class, "strlen", function($str) { return strlen($str) * 2; }, true );
echo My::strlen("Banana");
?>

L'exemple ci-dessus va afficher :

12


Sets the static variables in function or method scope

  • « uopz_set_return
  • uopz_undefine »
  • PHP Manual
  • Fonctions Uopz
  • Sets the static variables in function or method scope

uopz_set_static

(PECL uopz 5, PECL uopz , PECL uopz 7)

uopz_set_static — Sets the static variables in function or method scope

Description

uopz_set_static(string $function, array $static): void
uopz_set_static(string $class, string $function, array $static): void

Sets the static variables in function or method scope.

Liste de paramètres

class

The name of the class.

function

The name of the function or method.

static

The associative array of variable names mapped to their values.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Basic uopz_set_static() Usage

<?php
function foo() {
static $bar = 'baz';
var_dump($bar);
}
uopz_set_static('foo', ['bar' => 'qux']);
foo();
?>

L'exemple ci-dessus va afficher :

string(3) "qux"

Voir aussi

  • uopz_get_static() - Gets the static variables from function or method scope


Supprime une constante

  • « uopz_set_static
  • uopz_unset_hook »
  • PHP Manual
  • Fonctions Uopz
  • Supprime une constante

uopz_undefine

(PECL uopz 1, PECL uopz 2, PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_undefine — Supprime une constante

Description

uopz_undefine(string $constant): bool
uopz_undefine(string $class, string $constant): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 Exemple avec uopz_undefine()

<?php
define("MY", true);

uopz_undefine("MY");

var_dump(defined("MY"));
?>

L'exemple ci-dessus va afficher :

bool(false)


Removes previously set hook on function or method

  • « uopz_undefine
  • uopz_unset_mock »
  • PHP Manual
  • Fonctions Uopz
  • Removes previously set hook on function or method

uopz_unset_hook

(PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_unset_hook — Removes previously set hook on function or method

Description

uopz_unset_hook(string $function): bool
uopz_unset_hook(string $class, string $function): bool

Removes the previously set hook on a function or method.

Liste de paramètres

class

The name of the class.

function

The name of the function or method.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 Basic uopz_unset_hook() Usage

<?php
function foo() {
echo 'foo';
}
uopz_set_hook('foo', function () {echo 'bar';});
foo();
echo PHP_EOL;
uopz_unset_hook('foo');
foo();
?>

L'exemple ci-dessus va afficher :

barfoo
foo

Voir aussi

  • uopz_set_hook() - Sets hook to execute when entering a function or method
  • uopz_get_hook() - Gets previously set hook on function or method


Unset previously set mock

  • « uopz_unset_hook
  • uopz_unset_return »
  • PHP Manual
  • Fonctions Uopz
  • Unset previously set mock

uopz_unset_mock

(PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_unset_mock — Unset previously set mock

Description

uopz_unset_mock(string $class): void

Unsets the previously set mock for class.

Liste de paramètres

class

The name of the mocked class.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

A RuntimeException is thrown, if no mock was previously set for class.

Exemples

Exemple #1 uopz_unset_mock() example

<?php
class A {
public static function who() {
echo "A";
}
}

class mockA {
public static function who() {
echo "mockA";
}
}

uopz_set_mock(A::class, mockA::class);
uopz_unset_mock(A::class);
A::who();
?>

L'exemple ci-dessus va afficher :

A

Voir aussi

  • uopz_set_mock() - Use mock instead of class for new objects
  • uopz_get_mock() - Get the current mock for a class


Unsets a previously set return value for a function

  • « uopz_unset_mock
  • WinCache »
  • PHP Manual
  • Fonctions Uopz
  • Unsets a previously set return value for a function

uopz_unset_return

(PECL uopz 5, PECL uopz 6, PECL uopz 7)

uopz_unset_return — Unsets a previously set return value for a function

Description

uopz_unset_return(string $function): bool
uopz_unset_return(string $class, string $function): bool

Unsets the return value of the function previously set by uopz_set_return().

Liste de paramètres

class

The name of the class containing the function

function

The name of the function

Valeurs de retour

True on success

Exemples

Exemple #1 uopz_unset_return() example

<?php
uopz_set_return("strlen", 42);
$len = strlen("Banana");
uopz_unset_return("strlen");
echo $len + strlen("Banana");
?>

L'exemple ci-dessus va afficher :

48


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.

    Support pour le cache d'Opcode a été retiré dans Wincache 2.0.0, tout les utilisateurs qui souhaitent avoir un opcache devraient utiliser l'extension OPcache qui est inclus avec PHP.

  • 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 : » https://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" | INI_ALL | Disponible depuis WinCache 1.0.0
wincache.fcenabledfilter | "NULL" | "NULL" | "NULL" | INI_SYSTEM | Disponible depuis WinCache 1.0.0
wincache.fcachesize | "24" | "5" | "255" | INI_SYSTEM | Disponible depuis WinCache 1.0.0
wincache.fcndetect | "1" | "0" | "1" | INI_SYSTEM | Disponible depuis WinCache 1.1.0
wincache.maxfilesize | "256" | "10" | "2048" | INI_SYSTEM | Disponible depuis WinCache 1.0.0
wincache.ocenabled | "1" | "0" | "1" | INI_ALL | Disponible depuis WinCache 1.0.0. Supprimé depuis 2.0.0.0
wincache.ocenabledfilter | "NULL" | "NULL" | "NULL" | INI_SYSTEM | Disponible depuis WinCache 1.0.0. Supprimé depuis 2.0.0.0
wincache.ocachesize | "96" | "15" | "255" | INI_SYSTEM | Disponible depuis WinCache 1.0.0. Supprimé depuis 2.0.0.0
wincache.filecount | "4096" | "1024" | "16384" | INI_SYSTEM | Disponible depuis WinCache 1.0.0
wincache.chkinterval | "30" | "0" | "300" | INI_SYSTEM | Disponible depuis WinCache 1.0.0
wincache.ttlmax | "1200" | "0" | "7200" | INI_SYSTEM | Disponible depuis WinCache 1.0.0
wincache.enablecli | 0 | 0 | 1 | INI_SYSTEM | Disponible depuis WinCache 1.0.0
wincache.ignorelist | NULL | NULL | NULL | INI_ALL | Disponible depuis WinCache 1.0.0
wincache.namesalt | NULL | NULL | NULL | INI_SYSTEM | Disponible depuis WinCache 1.0.0
wincache.ucenabled | 1 | 0 | 1 | INI_SYSTEM | Disponible depuis WinCache 1.1.0
wincache.ucachesize | 8 | 5 | 85 | INI_SYSTEM | Disponible depuis WinCache 1.1.0
wincache.scachesize | 8 | 5 | 85 | INI_SYSTEM | Disponible depuis WinCache 1.1.0
wincache.rerouteini | NULL | NULL | NULL | INI_SYSTEM | Disponible depuis WinCache 1.2.0. Retiré dans la version 1.3.7
wincache.reroute_enabled | 1 | 0 | 1 | INI_SYSTEM|INI_PERDIR | Disponible depuis WinCache 1.3.7
wincache.srwlocks | 1 | 0 | 1 | INI_SYSTEM | Disponible depuis WinCache 1.3.6.3. Supprimé depuis la version 2.0.0.0
wincache.filemapdir | NULL | NULL | NULL | INI_SYSTEM | Disponible depuis WinCache 1.3.7.4
Pour plus de détails sur les modes INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

wincache.fcenabled bool
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 int
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 bool
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 int
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 bool
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 int
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 int
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 int
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 int
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 bool
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 bool
Active ou désactive la fonctionnalité de cache utilisateur.
wincache.ucachesize int
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 int
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 bool
Active ou désactive le reroutage de certaines fonctions d'entrées sorties sur des fichiers au travers du cache fichier
wincache.srwlocks bool
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

wincache_fcache_fileinfo(bool $summaryonly = false): array|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

wincache_fcache_meminfo(): array|false

Extrait des informations sur l'utilisation de la mémoire du cache de fichiers.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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

wincache_lock(string $key, bool $isglobal = false): bool

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 multiprocessus, 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

wincache_ocache_fileinfo(bool $summaryonly = false): array|false

Extrait des informations sur le contenu du cache opcode et son utilisation.

Avertissement

Cette fonction a été SUPPRIMÉE à partir de 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

wincache_ocache_meminfo(): array|false

Extrait des informations sur l'utilisation de la mémoire par le cache opcode.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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 à partir de 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

wincache_refresh_if_changed(array $files = NULL): bool

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

wincache_rplist_fileinfo(bool $summaryonly = false): array|false

Récupère des informations sur une cartographie en cache entre des chemins relatifs de fichiers et leurs correspondances en chemins absolus.

Liste de paramètres

summaryonly

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

wincache_rplist_meminfo(): array|false

Récupère des informations sur l'utilisation de la mémoire par le cache de chemin de fichier résolu.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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

wincache_scache_info(bool $summaryonly = false): array|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

wincache_scache_meminfo(): array|false

Récupère des informations sur l'utilisation mémoire du cache.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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

wincache_ucache_add(string $key, mixed $value, int $ttl = 0): bool
wincache_ucache_add(array $values, mixed $unused = NULL, int $ttl = 0): bool

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 sérialisés. Reportez-vous à la fonction __sleep() pour plus de détails sur la sérialisation 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

wincache_ucache_cas(string $key, int $old_value, int $new_value): bool

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

wincache_ucache_clear(): bool

Supprime toutes les valeurs stockées dans le cache 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 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

wincache_ucache_dec(string $key, int $dec_by = 1, bool &$success = ?): mixed

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

wincache_ucache_delete(mixed $key): bool

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

wincache_ucache_exists(string $key): bool

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

wincache_ucache_get(mixed $key, bool &$success = ?): mixed

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ésérialisés. Reportez-vous à la fonction __wakeup() pour plus de détails sur les désérialisation 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

wincache_ucache_inc(string $key, int $inc_by = 1, bool &$success = ?): mixed

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

wincache_ucache_info(bool $summaryonly = false, string $key = NULL): array|false

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

wincache_ucache_meminfo(): array|false

Récupère des informations sur l'utilisation mémoire du cache utilisateur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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

wincache_ucache_set(mixed $key, mixed $value, int $ttl = 0): bool
wincache_ucache_set(array $values, mixed $unused = NULL, int $ttl = 0): bool

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 sérialisés. Reportez-vous à la fonction __sleep() pour plus de détails sur la sérialisation 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

wincache_unlock(string $key): bool

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 multiprocessus 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 : » https://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 | "" | 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 (int)
Utilisée pour ne pas tenir compte de toutes les fonctions internes.
XHPROF_FLAGS_CPU (int)
Utilisée pour ajouter les informations de profilage CPU dans la sortie.
XHPROF_FLAGS_MEMORY (int)
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";

?>

Résultat de l'exemple ci-dessus est 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

xhprof_disable(): array

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);
?>

Résultat de l'exemple ci-dessus est 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

xhprof_enable(int $flags = 0, array $options = ?): void

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
PECL xhprof 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

xhprof_sample_disable(): array

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);
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [1272935300.800000] => main()
    [1272935300.900000] => main()
)


Démarre le profilage en mode échantillonnage

  • « xhprof_sample_disable
  • Yac »
  • 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

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


Yac

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Yac — La classe Yac
    • Yac::add — Stock un élément dans le cache
    • Yac::__construct — Constructeur
    • Yac::delete — Supprime un ou plusieurs éléments du cache
    • Yac::dump — Extraie les valeurs du cache
    • Yac::flush — Supprime toutes les valeurs mises en cache
    • Yac::get — Récupère un élément du cache
    • Yac::__get — Récupère un élément du cache
    • Yac::info — Statut du cache
    • Yac::set — Stock une valeur dans le cache
    • Yac::__set — Stock un élément dans le cache


Introduction

Yac (Yet Another cache), est un verrou libre, un cache de données utilisateur en mémoire partagée, pouvant être utilisé pour remplacer APC.


  • « 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 : » https://pecl.php.net/package/yac.

Les binaires Windows (les fichiers DLL) pour cette extension PECL sont disponibles sur le site web PECL.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Yac
Nom | Défaut | Modifiable | Historique
yac.compress_threshold | -1 | INI_SYSTEM |
yac.debug | 0 | INI_ALL |
yac.enable | 1 | INI_SYSTEM |
yac.enable_cli | 0 | INI_SYSTEM |
yac.keys_memory_size | 4M | INI_SYSTEM |
yac.serializer | php | INI_SYSTEM |
yac.values_memory_size | 64M | INI_SYSTEM |

Voici un éclaircissement sur l'utilisation des directives de configuration.

yac.compress_threshold int

yac.debug int

yac.enable int

yac.enable_cli int

yac.keys_memory_size string

yac.serializer string

yac.values_memory_size string


  • « 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.

YAC_VERSION (string)
YAC_MAX_KEY_LEN (int)
Longueur maximale que la clé peut faire ; 48 octets.
YAC_MAX_VALUE_RAW_LEN (int)
YAC_MAX_RAW_COMPRESSED_LEN (int)
YAC_SERIALIZER_PHP (int)
Utilise le sérialisateur de PHP comme sérialisateur
YAC_SERIALIZER_JSON (int)
Utilise Json comme sérialisateur (nécessite l'option --enable-json)
YAC_SERIALIZER_IGBINARY (int)
Utilise igbinary comme sérialisateur (nécessite l'option --enable-igbinary)
YAC_SERIALIZER_MSGPACK (int)
Utilise msgpack comme sérialisateur (nécessite l'option --enable-msgpack)
YAC_SERIALIZER (string)
Le sérialisateur que YAC doit utiliser


La classe Yac

(PECL yac >= 1.0.0)

Introduction

Synopsis de la classe

class Yac {
/* Propriétés */
protected $_prefix;
/* Méthodes */
public __construct(string $prefix = "")
public add(string $keys, mixed $value, int $ttl = 0): bool
public add(array $key_vals): bool
public delete(string|array $keys, int $ttl = ?): bool
public dump(int $$num): mixed
public flush(): bool
public get(string|array $key, int &$cas = null): mixed
public __get(string $key): mixed
public info(): array
public set(string $keys, mixed $value, int $ttl = 0): bool
public add(array $key_vals): bool
public __set(string $keys, mixed $value): mixed
}

Propriétés

_prefix

Sommaire

  • Yac::add — Stock un élément dans le cache
  • Yac::__construct — Constructeur
  • Yac::delete — Supprime un ou plusieurs éléments du cache
  • Yac::dump — Extraie les valeurs du cache
  • Yac::flush — Supprime toutes les valeurs mises en cache
  • Yac::get — Récupère un élément du cache
  • Yac::__get — Récupère un élément du cache
  • Yac::info — Statut du cache
  • Yac::set — Stock une valeur dans le cache
  • Yac::__set — Stock un élément dans le cache


Stock un élément dans le cache

  • « Yac
  • Yac::__construct »
  • PHP Manual
  • Yac
  • Stock un élément dans le cache

Yac::add

(PECL yac >= 1.0.0)

Yac::add — Stock un élément dans le cache

Description

public Yac::add(string $keys, mixed $value, int $ttl = 0): bool
public Yac::add(array $key_vals): bool

Ajoute un élément dans le cache.

Liste de paramètres

keys

chaîne de caractères ; la clé

value

Tout type de valeur PHP peut être stocké, à l'exception d'une ressource.

ttl

Délai d'expiration.

Valeurs de retour

booléen, true en cas de succès, false si une erreur survient.

Note:

La méthode Yac::add() peut échouer si le verrou ne peut être obtenu, aussi, si vous voulez que l'élément soit stocké proprement, vous devriez écrire le code comme ceci :

Exemple #1 Permet de s'assurer que l'élément est stocké

while(!$yac->set("key", "vale));


Constructeur

  • « Yac::add
  • Yac::delete »
  • PHP Manual
  • Yac
  • Constructeur

Yac::__construct

(PECL yac >= 1.0.0)

Yac::__construct — Constructeur

Description

public Yac::__construct(string $prefix = "")

Le préfixe est utilisé pour préfixer les clés ; cela permet d'éviter les conflits entre plusieurs applications.

Liste de paramètres

prefix

chaîne de caractères ; le préfixe

Erreurs / Exceptions

Lance une Exception si Yac n'est pas activé. Throws Exception si prefix excède la longueur maximale de clé de 48 (YAC_MAX_KEY_LEN) octets.


Supprime un ou plusieurs éléments du cache

  • « Yac::__construct
  • Yac::dump »
  • PHP Manual
  • Yac
  • Supprime un ou plusieurs éléments du cache

Yac::delete

(PECL yac >= 1.0.0)

Yac::delete — Supprime un ou plusieurs éléments du cache

Description

public Yac::delete(string|array $keys, int $ttl = ?): bool

Supprime un ou plusieurs éléments du cache.

Liste de paramètres

keys

La clé ou un tableau de plusieurs clés à supprimer

ttl

Si le délai est défini, l'opération de suppression va marquer les éléments pour qu'ils soient invalides au bout de ttl secondes.

Valeurs de retour


Extraie les valeurs du cache

  • « Yac::delete
  • Yac::flush »
  • PHP Manual
  • Yac
  • Extraie les valeurs du cache

Yac::dump

(PECL yac >= 1.0.0)

Yac::dump — Extraie les valeurs du cache

Description

public Yac::dump(int $$num): mixed

Extraie les valeurs stockées dans le cache

Liste de paramètres

num

Nombre maximal d'éléments à retourner

Valeurs de retour

Les éléments extrais.


Supprime toutes les valeurs mises en cache

  • « Yac::dump
  • Yac::get »
  • PHP Manual
  • Yac
  • Supprime toutes les valeurs mises en cache

Yac::flush

(PECL yac >= 1.0.0)

Yac::flush — Supprime toutes les valeurs mises en cache

Description

public Yac::flush(): bool

Supprime toutes les valeurs mises en cache.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une valeur booléen, toujours true.


Récupère un élément du cache

  • « Yac::flush
  • Yac::__get »
  • PHP Manual
  • Yac
  • Récupère un élément du cache

Yac::get

(PECL yac >= 1.0.0)

Yac::get — Récupère un élément du cache

Description

public Yac::get(string|array $key, int &$cas = null): mixed

Récupère un élément du cache.

Liste de paramètres

key

chaîne de caractères ; la clé, ou un tableau de plusieurs clés.

cas

Si différent de null, ce devra être le cas de l'élément récupéré.

Valeurs de retour

Le ou les éléments, false si une erreur survient.


Récupère un élément du cache

  • « Yac::get
  • Yac::info »
  • PHP Manual
  • Yac
  • Récupère un élément du cache

Yac::__get

(PECL yac >= 1.0.0)

Yac::__get — Récupère un élément du cache

Description

public Yac::__get(string $key): mixed

Récupère un élément du cache.

Liste de paramètres

key

chaîne de caractères ; la clé

Valeurs de retour

L'élément en cas de succès, null si une erreur survient.


Statut du cache

  • « Yac::__get
  • Yac::set »
  • PHP Manual
  • Yac
  • Statut du cache

Yac::info

(PECL yac >= 1.0.0)

Yac::info — Statut du cache

Description

public Yac::info(): array

Récupère le statut du cache système.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant les éléments suivants : "memory_size", "slots_memory_size", "values_memory_size", "segment_size", "segment_num", "miss", "hits", "fails", "kicks", "recycles", "slots_size", "slots_used"


Stock une valeur dans le cache

  • « Yac::info
  • Yac::__set »
  • PHP Manual
  • Yac
  • Stock une valeur dans le cache

Yac::set

(PECL yac >= 1.0.0)

Yac::set — Stock une valeur dans le cache

Description

public Yac::set(string $keys, mixed $value, int $ttl = 0): bool
public Yac::add(array $key_vals): bool

Ajoute un élément dans le cache ; si la clé existe déjà, elle sera écrasée.

Liste de paramètres

keys

chaîne de caractères ; la clé

value

Tout type de valeur que PHP peut stocker, à l'exception d'une ressource.

ttl

Durée d'expiration

Valeurs de retour

La valeur stockée


Stock un élément dans le cache

  • « Yac::set
  • Manipulation audio »
  • PHP Manual
  • Yac
  • Stock un élément dans le cache

Yac::__set

(PECL yac >= 1.0.0)

Yac::__set — Stock un élément dans le cache

Description

public Yac::__set(string $keys, mixed $value): mixed

Stock un élément dans le cache

Liste de paramètres

keys

chaîne de caractères ; la clé

value

Tout type de valeur PHP peut être stockée, à l'exception d'une ressource

Valeurs de retour

La valeur stockée


Manipulation audio

  • OpenAL — Gestion Audio OpenAL
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions OpenAL


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 : » https://pecl.php.net/package/openal.

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

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 (int)
Attribut de contexte
ALC_REFRESH (int)
Attribut de contexte
ALC_SYNC (int)
Attribut de contexte
AL_FREQUENCY (int)
Configuration du buffer
AL_BITS (int)
Configuration du buffer
AL_CHANNELS (int)
Configuration du buffer
AL_SIZE (int)
Configuration du buffer
AL_BUFFER (int)
Configuration de la source/de l'écoute (Entier)
AL_SOURCE_RELATIVE (int)
Configuration de la source/de l'écoute (Entier)
AL_SOURCE_STATE (int)
Configuration de la source/de l'écoute (Entier)
AL_PITCH (int)
Configuration de la source/de l'écoute (Nombre à virgule flottante)
AL_GAIN (int)
Configuration de la source/de l'écoute (Nombre à virgule flottante)
AL_MIN_GAIN (int)
Configuration de la source/de l'écoute (Nombre à virgule flottante)
AL_MAX_GAIN (int)
Configuration de la source/de l'écoute (Nombre à virgule flottante)
AL_MAX_DISTANCE (int)
Configuration de la source/de l'écoute (Nombre à virgule flottante)
AL_ROLLOFF_FACTOR (int)
Configuration de la source/de l'écoute (Nombre à virgule flottante)
AL_CONE_OUTER_GAIN (int)
Configuration de la source/de l'écoute (Nombre à virgule flottante)
AL_CONE_INNER_ANGLE (int)
Configuration de la source/de l'écoute (Nombre à virgule flottante)
AL_CONE_OUTER_ANGLE (int)
Configuration de la source/de l'écoute (Nombre à virgule flottante)
AL_REFERENCE_DISTANCE (int)
Configuration de la source/de l'écoute (Nombre à virgule flottante)
AL_POSITION (int)
Configuration de la source/de l'écoute (Nombre vectoriel à virgule flottante)
AL_VELOCITY (int)
Configuration de la source/de l'écoute (Nombre vectoriel à virgule flottante)
AL_DIRECTION (int)
Configuration de la source/de l'écoute (Nombre vectoriel à virgule flottante)
AL_ORIENTATION (int)
Configuration de la source/de l'écoute (Nombre vectoriel à virgule flottante)
AL_FORMAT_MONO8 (int)
Format PCM
AL_FORMAT_MONO16 (int)
Format PCM
AL_FORMAT_STEREO8 (int)
Format PCM
AL_FORMAT_STEREO16 (int)
Format PCM
AL_INITIAL (int)
État de la Source
AL_PLAYING (int)
État de la Source
AL_PAUSED (int)
État de la Source
AL_STOPPED (int)
État de la Source
AL_LOOPING (int)
État de la Source
AL_TRUE (int)
Valeur booléen reconnue par OpenAL
AL_FALSE (int)
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

openal_buffer_create(): resource

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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

openal_buffer_data(
resource $buffer,
int $format,
string $data,
int $freq
): bool

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

openal_buffer_destroy(resource $buffer): bool

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

openal_buffer_get(resource $buffer, int $property): int|false

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

openal_buffer_loadwav(resource $buffer, string $wavfile): bool

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

openal_context_create(resource $device): resource

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

openal_context_current(resource $context): bool

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

openal_context_destroy(resource $context): bool

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

openal_context_process(resource $context): bool

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

openal_context_suspend(resource $context): bool

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

openal_device_close(resource $device): bool

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

openal_device_open(string $device_desc = ?): resource

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

openal_listener_get(int $property): mixed

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

openal_listener_set(int $property, mixed $setting): bool

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

openal_source_create(): resource

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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

openal_source_destroy(resource $source): bool

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

openal_source_get(resource $source, int $property): mixed

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

openal_source_pause(resource $source): bool

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

openal_source_play(resource $source): bool

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

openal_source_rewind(resource $source): bool

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

openal_source_set(resource $source, int $property, mixed $setting): bool

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

openal_source_stop(resource $source): bool

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

openal_stream(resource $source, int $format, int $rate): resource|false

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

  • Radius
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions Radius


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 — Chiffre une valeur en utilisant un Salt
    • radius_send_request — Envoie une requête et attend 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 : » https://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 (int)
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 (int)

Lorsque définie, cette option fera que la valeur de l'attribut sera chiffré salt.

RADIUS_OPTION_TAGGED (int)

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 (int)

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 (int)

Une réponse Access-Accept à un paquet Access-Request indique que le serveur RADIUS a authentifié l'utilisateur avec succès.

RADIUS_ACCESS_REJECT (int)

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 (int)

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 (int)

Une paquet Accounting-Request, utilisé pour transmettre des informations de comptabilité pour un service du serveur RADIUS.

RADIUS_ACCOUNTING_RESPONSE (int)

Une réponse Accounting-Response à un paquet Accounting-Request.

RADIUS_COA_REQUEST (int)

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 (int)

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 (int)

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 (int)

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 (int)

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 (int)

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 (int)

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 (int)

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 (int)

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 (int)

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 (int)

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 (int)

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 (int)

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 (int)

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 (int)

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 (int)

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 (int)

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 (int)

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 (int)

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 (int)

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 (int)

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 (int)

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 (int)

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 (int)

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 (int)

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 (int)

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 (int)

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 (int)

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 (int)

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 (int)

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 (int)

Timeout de la session

RADIUS_IDLE_TIMEOUT (int)

Durée d'expiration

RADIUS_TERMINATION_ACTION (int)

Action de termination

RADIUS_CALLED_STATION_ID (int)

Identifiant de la station appelée

RADIUS_CALLING_STATION_ID (int)

Identifiant de la station appelant

RADIUS_NAS_IDENTIFIER (int)

Identifiant NAS

RADIUS_PROXY_STATE (int)

Statut du Proxy

RADIUS_LOGIN_LAT_SERVICE (int)

Service d'identification LAT

RADIUS_LOGIN_LAT_NODE (int)

Noeud d'identification LAT

RADIUS_LOGIN_LAT_GROUP (int)

Groupe d'identification LAT

RADIUS_FRAMED_APPLETALK_LINK (int)

Lien framé Appletalk

RADIUS_FRAMED_APPLETALK_NETWORK (int)

Réseau framé Appletalk

RADIUS_FRAMED_APPLETALK_ZONE (int)

Zone framé Appletalk

RADIUS_CHAP_CHALLENGE (int)

Challenge

RADIUS_NAS_PORT_TYPE (int)

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 (int)

Limite du port

RADIUS_LOGIN_LAT_PORT (int)

Port d'identification LAT

RADIUS_CONNECT_INFO (int)

Information de connexion

RADIUS_ACCT_STATUS_TYPE (int)

Type de statut du compte :

  • RADIUS_START
  • RADIUS_STOP
  • RADIUS_ACCOUNTING_ON
  • RADIUS_ACCOUNTING_OFF

RADIUS_ACCT_DELAY_TIME (int)

Délai maximal d'identification

RADIUS_ACCT_INPUT_OCTETS (int)

Octets d'entrée d'identification

RADIUS_ACCT_OUTPUT_OCTETS (int)

Octets de sortie d'identification

RADIUS_ACCT_SESSION_ID (int)

Identifiant de session d'identification

RADIUS_ACCT_AUTHENTIC (int)

Identification authentique, un parmi :

  • RADIUS_AUTH_RADIUS
  • RADIUS_AUTH_LOCAL
  • RADIUS_AUTH_REMOTE

RADIUS_ACCT_SESSION_TIME (int)

Durée de la session d'identification

RADIUS_ACCT_INPUT_PACKETS (int)

Paquets d'entrée d'identification

RADIUS_ACCT_OUTPUT_PACKETS (int)

Paquets de sortie d'identification

RADIUS_ACCT_TERMINATE_CAUSE (int)

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 (int)

Identifiant d'une session multiple d'identification

RADIUS_ACCT_LINK_COUNT (int)

Nombre de liens d'identification

Constantes de type de service
RADIUS_LOGIN
RADIUS_FRAMED
RADIUS_CALLBACK_LOGIN
RADIUS_CALLBACK_FRAMED
RADIUS_OUTBOUND
RADIUS_ADMINISTRATIVE
RADIUS_NAS_PROMPT
RADIUS_AUTHENTICATE_ONLY
RADIUS_CALLBACK_NAS_PROMPT
Framed-Protocol Constants
RADIUS_PPP
RADIUS_SLIP
RADIUS_ARAP
RADIUS_GANDALF
RADIUS_XYLOGICS
Framed-Compression Constants
RADIUS_COMP_NONE
RADIUS_COMP_VJ
RADIUS_COMP_IPXHDR
RADIUS_COMP_STAC_LZS
NAS Port Type Constants
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
Accounting Status Type Constants
RADIUS_START
RADIUS_STOP
RADIUS_ACCOUNTING_ON
RADIUS_ACCOUNTING_OFF
Accounting Authentic Constants
RADIUS_AUTH_RADIUS
RADIUS_AUTH_LOCAL
RADIUS_AUTH_REMOTE
Accounting Terminate Cause Constants
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_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


Types d'attribut RADIUS spécifique au vendeur

RADIUS_VENDOR_MICROSOFT (int)

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 — Chiffre une valeur en utilisant un Salt
  • radius_send_request — Envoie une requête et attend 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

radius_acct_open(): resource

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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

radius_add_server(
resource $radius_handle,
string $hostname,
int $port,
string $secret,
int $timeout,
int $max_tries
): bool

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

radius_auth_open(): resource

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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

radius_close(resource $radius_handle): bool

Il n'est pas nécessaire d'appeler cette fonction car PHP libère toutes les ressources à la fin de chaque demande.

Liste de paramètres

radius_handle

La ressource RADIUS.

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

radius_config(resource $radius_handle, string $file): bool

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

radius_create_request(resource $radius_handle, int $type): bool

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 une requête et attend 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

radius_cvt_addr(string $data): string

Convertie des données brutes en adresse IP

Liste de paramètres

data

Données d'entrée

Valeurs de retour

Retourne l'adresse IP.

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

radius_cvt_int(string $data): int

Convertie des données brutes en entier

Liste de paramètres

data

Données d'entrée.

Valeurs de retour

Retourne l'entier, récupéré depuis les données.

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

radius_cvt_string(string $data): string

Convertit des données brutes en chaîne de caractères

Liste de paramètres

data

Données d'entrée

Valeurs de retour

Retourne la chaîne, récupéré depuis les données.

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

radius_demangle_mppe_key(resource $radius_handle, string $mangled): string

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.

Liste de paramètres

radius_handle

La ressource RADIUS.

mangled

Les données déformés à déchiffrer

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

radius_demangle(resource $radius_handle, string $mangled): string

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.

Liste de paramètres

radius_handle

La ressource RADIUS.

mangled

Les données déformés à déchiffrer

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

radius_get_attr(resource $radius_handle): mixed

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.

Liste de paramètres

radius_handle

La ressource RADIUS.

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 une requête et attend 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

radius_get_tagged_attr_data(string $data): string|false

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

radius_get_tagged_attr_tag(string $data): int|false

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

radius_get_vendor_attr(string $data): array

Si radius_get_attr() retourne RADIUS_VENDOR_SPECIFIC, radius_get_vendor_attr() peut être appelé pour déterminer le vendeur.

Liste de paramètres

data

Données d'entrée.

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

radius_put_addr(
resource $radius_handle,
int $type,
string $addr,
int $options = 0,
int $tag = ?
): bool

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

radius_put_attr(
resource $radius_handle,
int $type,
string $value,
int $options = 0,
int $tag = ?
): bool

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.

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_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 'RadiusError:' . radius_strerror($res). "\n<br />";
exit;
}
?>

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

radius_put_int(
resource $radius_handle,
int $type,
int $value,
int $options = 0,
int $tag = ?
): bool

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

radius_put_string(
resource $radius_handle,
int $type,
string $value,
int $options = 0,
int $tag = ?
): bool

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

radius_put_vendor_addr(
resource $radius_handle,
int $vendor,
int $type,
string $addr
): bool

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

radius_put_vendor_attr(
resource $radius_handle,
int $vendor,
int $type,
string $value,
int $options = 0,
int $tag = ?
): bool

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

radius_put_vendor_int(
resource $radius_handle,
int $vendor,
int $type,
int $value,
int $options = 0,
int $tag = ?
): bool

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

radius_put_vendor_string(
resource $radius_handle,
int $vendor,
int $type,
string $value,
int $options = 0,
int $tag = ?
): bool

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

radius_request_authenticator(resource $radius_handle): string

L'identifiant demandé est nécessaire pour le rétablissement des données comme les mots de passe et les clés de chiffrement.

Liste de paramètres

radius_handle

La ressource RADIUS.

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


Chiffre une valeur en utilisant un Salt

  • « radius_request_authenticator
  • radius_send_request »
  • PHP Manual
  • Fonctions Radius
  • Chiffre une valeur en utilisant un Salt

radius_salt_encrypt_attr

(PECL radius >= 1.3.0)

radius_salt_encrypt_attr — Chiffre une valeur en utilisant un Salt

Description

radius_salt_encrypt_attr(resource $radius_handle, string $data): string|false

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 à chiffrer avec un salt.

Valeurs de retour

Retourne les données chiffré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 une requête et attend une réponse

  • « radius_salt_encrypt_attr
  • radius_server_secret »
  • PHP Manual
  • Fonctions Radius
  • Envoie une requête et attend une réponse

radius_send_request

(PECL radius >= 1.1.0)

radius_send_request — Envoie une requête et attend une réponse

Description

radius_send_request(resource $radius_handle): int

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.

Liste de paramètres

radius_handle

La ressource RADIUS.

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

radius_server_secret(resource $radius_handle): string

Le secret partagé est nécessaire pour le rétablissement des données comme les mots de passe et les clés de chiffrement.

Liste de paramètres

radius_handle

La ressource RADIUS.

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

radius_strerror(resource $radius_handle): string

Si une fonction Radius échoue, alors, elle enregistre un message d'erreur. Ce message d'erreur peut être récupéré avec cette fonction.

Liste de paramètres

radius_handle

La ressource RADIUS.

Valeurs de retour

Retourne un message d'erreur en tant que chaîne de caractères.


Extensions spécifiques à la ligne de commande

  • Readline — GNU Readline
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Readline


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émentent 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 par 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.

À partir de PHP 7.1.0 cette extension est supportée sur Windows.

Attention

L'extension readline n'est pas thread-safe ! Par conséquent l'usage de celle-ci avec n'importe quel SAPI qui est véritablement thread-safe (comme Apache mod_winnt) est fortement déconseillé.


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].

Sur Windows cette extension est disponible par défaut à partir de PHP 7.1.0.


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 | "" | INI_ALL |
cli.prompt | "\\b \\> " | INI_ALL |

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.


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.

READLINE_LIB (string)
La bibliothèque qui est utilisé pour le support readline ; actuellement soit readline soit libedit.


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, PHP 8)

readline_add_history — Ajoute une ligne à l'historique

Description

readline_add_history(string $prompt): bool

Ajoute une ligne à l'historique.

Liste de paramètres

prompt

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, PHP 8)

readline_callback_handler_install — Initialise l'interface et le terminal de rappel de readline, affiche le prompt et retourne immédiatement

Description

readline_callback_handler_install(string $prompt, callable $callback): bool

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 rappel de 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, appellera 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, PHP 8)

readline_callback_handler_remove — Efface un gestionnaire de rappel readline

Description

readline_callback_handler_remove(): bool

Efface un gestionnaire de rappel installé précédemment et restaure les paramètres du terminal.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

readline_callback_read_char — Lit un caractère et informe l'interface de rappel readline

Description

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

readline_clear_history — Efface l'historique

Description

readline_clear_history(): bool

Efface l'historique.

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.


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, PHP 8)

readline_completion_function — Enregistre une fonction de complétion

Description

readline_completion_function(callable $callback): bool

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

callback

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, PHP 8)

readline_info — Lit ou modifie diverses variables internes de readline

Description

readline_info(?string $var_name = null, int|string|bool|null $value = null): mixed

Lit/modifie diverses variables internes.

Liste de paramètres

var_name

Un nom de variable.

value

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". Le tableau ne contiendra que les éléments qui sont pris en charge par la bibliothèque utilisée pour construire l'extension readline.

Si appelée avec un ou deux paramètres, l'ancienne valeur est retournée.

Historique

Version | Description
8.0.0 | var_name et value sont désormais nullable.


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, PHP 8)

readline_list_history — Liste l'historique

Description

readline_list_history(): array

Liste l'historique.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

readline_on_new_line — Informe readline que le curseur est passé à une nouvelle ligne

Description

readline_on_new_line(): void

Informe readline que le curseur est passé à une nouvelle ligne.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Note:

Cette fonction n'est disponible unique si elle est supporté par la bibliothèque readline sous-jacente. Elle n'est pas supporté sur Windows.


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, PHP 8)

readline_read_history — Lit l'historique

Description

readline_read_history(?string $filename = null): bool

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.

Historique

Version | Description
8.0.0 | filename est désormais nullable.


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, PHP 8)

readline_redisplay — Demande à readline de refaire l'affichage

Description

readline_redisplay(): void

Demande à readline de refaire l'affichage.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

readline_write_history — Écrit dans l'historique

Description

readline_write_history(?string $filename = null): bool

É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.

Historique

Version | Description
8.0.0 | filename est désormais nullable.


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, PHP 8)

readline — Lit une ligne

Description

readline(?string $prompt = null): string|false

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. S'il n'y a plus de données à lire, alors false est retourné.

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
    • DeflateContext — The DeflateContext class
    • InflateContext — The InflateContext class


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 — Ne fait rien
    • 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 — Ne fait rien
  • 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, PHP 8)

bzclose — Ferme un fichier bzip2

Description

bzclose(resource $bz): bool

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, PHP 8)

bzcompress — Compresse une chaîne avec bzip2

Description

bzcompress(string $data, int $block_size = 4, int $work_factor = 0): string|int

bzcompress() compresse la chaîne source et retourne les données ainsi encodées.

Liste de paramètres

data

La chaîne à compresser.

block_size

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.

work_factor

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 work_factor, 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, PHP 8)

bzdecompress — Décompresse une chaîne bzip2

Description

bzdecompress(string $data, bool $use_less_memory = false): string|int|false

bzdecompress() décompresse la chaîne source, contenant des données compressées bzip2.

Liste de paramètres

data

La chaîne à décompresser.

use_less_memory

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 false, ou un numéro d'erreur si une erreur survient.

Historique

Version | Description
8.0.0 | Le type de use_less_memory a été modifié de int à bool. Auparavant, la valeur par défaut était 0.

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, PHP 8)

bzerrno — Retourne le code d'erreur bzip2

Description

bzerrno(resource $bz): int

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, PHP 8)

bzerror — Retourne le numéro et le message d'erreur bzip2 dans un tableau

Description

bzerror(resource $bz): array

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, PHP 8)

bzerrstr — Retourne le message d'erreur bzip2

Description

bzerrstr(resource $bz): string

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


Ne fait rien

  • « bzerrstr
  • bzopen »
  • PHP Manual
  • Fonctions Bzip2
  • Ne fait rien

bzflush

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

bzflush — Ne fait rien

Description

bzflush(resource $bz): bool

Cette fonction est supposé de forcer l'écriture de toutes les données bzip2 mises en tampon pour le pointeur de fichier représenté par bz, mais est implémenté comme une fonction null dans libbz2, et donc ne fait rien.

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, PHP 8)

bzopen — Ouvre un fichier compressé avec bzip2

Description

bzopen(string|resource $file, string $mode): resource|false

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

Les modes 'r' (pour lecture), et 'w' (pour écriture) sont supportées. Toute autre option fera que la fonction bzopen() 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, PHP 8)

bzread — Lecture binaire d'un fichier bzip2

Description

bzread(resource $bz, int $length = 1024): string|false

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, PHP 8)

bzwrite — Écriture binaire dans un fichier bzip2

Description

bzwrite(resource $bz, string $data, ?int $length = null): int|false

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.

Historique

Version | Description
8.0.0 | length est désormais nullable.

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 : » https://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

lzf_compress(string $data): string

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

lzf_decompress(string $data): string

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

lzf_optimized_for(): int

Détermine le mode d'optimisation de l'extension LZF.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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::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::__destruct — Destructs a Phar archive object
    • Phar::extractTo — Extrait le contenu d'une archive phar vers un répertoire
    • Phar::getAlias — Récupère l'alias pour Phar
    • Phar::getMetadata — Retourne les méta-données de l'archive phar
    • Phar::getModified — Indique si le fichier phar a été modifié
    • Phar::getPath — Récupère le chemin absolu de l'archive Phar sur le disque
    • 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 d'é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::unlinkArchive — Efface complètement une archive phar du disque et de la mémoire
    • Phar::webPhar — Redirige une requête depuis un navigateur web à un fichier interne dans l'archive phar
  • 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 — Ajoutez un fichier à partir d'une chaîne de caractères à 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 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::__destruct — Destructs a non-executable tar or zip archive object
    • 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::setMetadata — Fixe les méta-données de l'archive
    • PharData::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::__destruct — Destructs a Phar entry object
    • 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::getContent — Récupère le contenu entier du fichier de l'entrée
    • 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::setMetadata — Fixe les métadonnées spécifiques à un fichier
  • PharException — La classe PharException


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 bases 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 modifications pour fonctionner.


Pré-requis

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.

Si zend.multibyte est activé, zend.detect_unicode doit aussi être activé.


Installation

L'extension Phar est intégrée dans PHP, et activé par défaut. Pour désactiver le support de de Phar, utilisé l'option de configuration --disable-phar.

Phar peut aussi être installé depuis l'extension PECL pour les versions précédentes de PHP, 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" | INI_ALL |
phar.require_hash | "1" | INI_ALL |
phar.cache_list | "" | INI_SYSTEM |

Voici un éclaircissement sur l'utilisation des directives de configuration.

phar.readonly bool

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

Cette option forcera toutes les archives Phar ouvertes à contenir un type de signature (à ce jour MD5, SHA1, SHA256, SHA512 et OpenSSL 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. 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.

Attention

phar.require_hash ne fournis pas de sécurité en soi, c'est uniquement une mesure contre exécuter accidentellement des archives Phar corrompu, car n'importe qui peut trafiquer avec le Phar peut facilement corriger la signature après.

phar.cache_list string

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 #1 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 (int) | 0x00000000 | aucune compression
Phar::COMPRESSED (int) | 0x0000F000 | masque de bits pouvant être utilisé avec les drapeaux de fichier pour déterminer si une compression est utilisée
Phar::GZ (int) | 0x00001000 | compression zlib (gzip)
Phar::BZ2 (int) | 0x00002000 | compression bzip2
Les constantes de format de fichier Phar
Constante | Valeur | Description
Phar::PHAR (int) | 1 | format de fichier phar
Phar::TAR (int) | 2 | format de fichier tar
Phar::ZIP (int) | 3 | format de fichier zip
Les constantes de signature Phar
Constante | Valeur | Description
Phar::MD5 (int) | 0x0001 | signature avec l'algorithme md5
Phar::SHA1 (int) | 0x0002 | signature avec l'algorithme sha1
Phar::SHA256 (int) | 0x0003 | signature avec l'algorithme sha256 (requiert l'extension hash)
Phar::SHA512 (int) | 0x0004 | signature avec l'algorithme sha512 (requiert l'extension hash)
Phar::OPENSSL (int) | 0x0010 | signature avec une paire de clé privée/publique OpenSSL. C'est une véritable signature à clé asymétrique/
Phar::OPENSSL_SHA256 (int) |  |
Phar::OPENSSL_SHA512 (int) |  |
Les constantes d'écrasement de mime Phar webPhar
Constante | Valeur | Description
Phar::PHP (int) | 0 | 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 (int) | 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 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 cœur 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 RecursiveDirectoryIterator('/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. 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.

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 les opérations de flux sur les répertoires opendir(), et 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
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.

Il y a un support limité pour lire les tarballs dans le format pax interchange, mais tout les en-têtes pax reconnues (actuellement, typeflag x et g) sont silencieusement ignorés. Il y a aussi un support limité pour les GNU Tar Archives; actuellement, les en-têtes ././@LongLink sont résolus.

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 DEFLATE, 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, A 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 DEFLATE
0x00002000 | Si présent, le Phar contient au moins 1 fichier qui est compressé grâce à bzip2


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 DEFLATE
0x00002000 | Si présent, le fichier est compressé grâce à bzip2


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 types de signature supportés à ce jour sont MD5, SHA1, SHA256, SHA512, et OPENSSL.

Format de signature
Longueur en octets | Description
variant | La signature actuelle, 20 octets pour une SHA1, 16 octets pour une MD5, 32 octets pour une SHA256, et 64 octets pour une SHA512. La longueur d'une signature OPENSSL dépend de la taille de la clé privée.
4 octets | Les drapeaux de signature. 0x0001 est utilisé pour définir une signature MD5, 0x0002 pour une SHA1, 0x0003 pour une SHA256 et 0x0004 pour une SHA512. Le support des signatures SHA256 et SHA512 est disponible à partir de la version 1.1.0 de l'API. 0x0010 est utilisé pour définir une signature OPENSSL, qui est disponible à partir de la version 1.1.1 de l'API, si OpenSSL est disponible.
4 octets | GBMB magique utilisé pour définir la présence d'une signature.


La classe Phar

(PHP 5 >= 5.3.0, PHP 7, PHP 8, 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

class Phar extends RecursiveDirectoryIterator implements Countable, ArrayAccess {
/* Constants héritées */
public const int FilesystemIterator::CURRENT_MODE_MASK;
public const int FilesystemIterator::CURRENT_AS_PATHNAME;
public const int FilesystemIterator::CURRENT_AS_FILEINFO;
public const int FilesystemIterator::CURRENT_AS_SELF;
public const int FilesystemIterator::KEY_MODE_MASK;
public const int FilesystemIterator::KEY_AS_PATHNAME;
public const int FilesystemIterator::FOLLOW_SYMLINKS;
public const int FilesystemIterator::KEY_AS_FILENAME;
public const int FilesystemIterator::NEW_CURRENT_AND_KEY;
public const int FilesystemIterator::OTHER_MODE_MASK;
public const int FilesystemIterator::SKIP_DOTS;
public const int FilesystemIterator::UNIX_PATHS;
/* Constantes */
const int BZ2;
const int GZ;
const int NONE;
const int PHAR;
const int TAR;
const int ZIP;
const int COMPRESSED;
const int PHP;
const int PHPS;
const int MD5;
const int OPENSSL;
const int OPENSSL_SHA256;
const int OPENSSL_SHA512;
const int SHA1;
const int SHA256;
const int SHA512;
/* Méthodes */
public __construct(string $filename, int $flags = FilesystemIterator::SKIP_DOTS | FilesystemIterator::UNIX_PATHS, ?string $alias = null)
public addEmptyDir(string $directory): void
public addFile(string $filename, ?string $localName = null): void
public addFromString(string $localName, string $contents): void
final public static apiVersion(): string
public buildFromDirectory(string $directory, string $pattern = ""): array
public buildFromIterator(Traversable $iterator, ?string $baseDirectory = null): array
final public static canCompress(int $compression = 0): bool
final public static canWrite(): bool
public compress(int $compression, ?string $extension = null): ?Phar
public compressFiles(int $compression): void
public convertToData(?int $format = null, ?int $compression = null, ?string $extension = null): ?PharData
public convertToExecutable(?int $format = null, ?int $compression = null, ?string $extension = null): ?Phar
public copy(string $from, string $to): bool
public count(int $mode = COUNT_NORMAL): int
final public static createDefaultStub(?string $index = null, ?string $webIndex = null): string
public decompress(?string $extension = null): ?Phar
public decompressFiles(): bool
public delMetadata(): bool
public delete(string $localName): bool
public extractTo(string $directory, array|string|null $files = null, bool $overwrite = false): bool
public getAlias(): ?string
public getMetadata(array $unserializeOptions = []): mixed
public getModified(): bool
public getPath(): string
public getSignature(): array|false
public getStub(): string
final public static getSupportedCompression(): array
final public static getSupportedSignatures(): array
public getVersion(): string
public hasMetadata(): bool
final public static interceptFileFuncs(): void
public isBuffering(): bool
public isCompressed(): int|false
public isFileFormat(int $format): bool
final public static isValidPharFilename(string $filename, bool $executable = true): bool
public isWritable(): bool
final public static loadPhar(string $filename, ?string $alias = null): bool
final public static mapPhar(?string $alias = null, int $offset = 0): bool
final public static mount(string $pharPath, string $externalPath): void
final public static mungServer(array $variables): void
public offsetExists(string $localName): bool
public offsetGet(string $localName): SplFileInfo
public offsetSet(string $localName, resource|string $value): void
public offsetUnset(string $localName): void
final public static running(bool $returnPhar = true): string
public setAlias(string $alias): bool
public setDefaultStub(?string $index = null, ?string $webIndex = null): bool
public setMetadata(mixed $metadata): void
public setSignatureAlgorithm(int $algo, ?string $privateKey = null): void
public setStub(resource|string $stub, int $length = -1): bool
public startBuffering(): void
public stopBuffering(): void
final public static unlinkArchive(string $filename): bool
final public static webPhar(
?string $alias = null,
?string $index = null,
?string $fileNotFoundScript = null,
array $mimeTypes = [],
?callable $rewrite = null
): void
public __destruct()
/* Méthodes héritées */
public RecursiveDirectoryIterator::getChildren(): RecursiveDirectoryIterator
public RecursiveDirectoryIterator::getSubPath(): string
public RecursiveDirectoryIterator::getSubPathname(): string
public RecursiveDirectoryIterator::hasChildren(bool $allowLinks = false): bool
public RecursiveDirectoryIterator::key(): string
public RecursiveDirectoryIterator::next(): void
public RecursiveDirectoryIterator::rewind(): void
public FilesystemIterator::current(): string|SplFileInfo|FilesystemIterator
public FilesystemIterator::getFlags(): int
public FilesystemIterator::key(): string
public FilesystemIterator::next(): void
public FilesystemIterator::rewind(): void
public FilesystemIterator::setFlags(int $flags): void
public DirectoryIterator::current(): mixed
public DirectoryIterator::getBasename(string $suffix = ""): string
public DirectoryIterator::getExtension(): string
public DirectoryIterator::getFilename(): string
public DirectoryIterator::isDot(): bool
public DirectoryIterator::key(): mixed
public DirectoryIterator::next(): void
public DirectoryIterator::rewind(): void
public DirectoryIterator::seek(int $offset): void
public DirectoryIterator::__toString(): string
public DirectoryIterator::valid(): bool
public SplFileInfo::getATime(): int|false
public SplFileInfo::getBasename(string $suffix = ""): string
public SplFileInfo::getCTime(): int|false
public SplFileInfo::getExtension(): string
public SplFileInfo::getFileInfo(?string $class = null): SplFileInfo
public SplFileInfo::getFilename(): string
public SplFileInfo::getGroup(): int|false
public SplFileInfo::getInode(): int|false
public SplFileInfo::getLinkTarget(): string|false
public SplFileInfo::getMTime(): int|false
public SplFileInfo::getOwner(): int|false
public SplFileInfo::getPath(): string
public SplFileInfo::getPathInfo(?string $class = null): ?SplFileInfo
public SplFileInfo::getPathname(): string
public SplFileInfo::getPerms(): int|false
public SplFileInfo::getRealPath(): string|false
public SplFileInfo::getSize(): int|false
public SplFileInfo::getType(): string|false
public SplFileInfo::isDir(): bool
public SplFileInfo::isExecutable(): bool
public SplFileInfo::isFile(): bool
public SplFileInfo::isLink(): bool
public SplFileInfo::isReadable(): bool
public SplFileInfo::isWritable(): bool
public SplFileInfo::openFile(string $mode = "r", bool $useIncludePath = false, ?resource $context = null): SplFileObject
public SplFileInfo::setFileClass(string $class = SplFileObject::class): void
public SplFileInfo::setInfoClass(string $class = SplFileInfo::class): void
public SplFileInfo::__toString(): string
}

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::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::__destruct — Destructs a Phar archive object
  • Phar::extractTo — Extrait le contenu d'une archive phar vers un répertoire
  • Phar::getAlias — Récupère l'alias pour Phar
  • Phar::getMetadata — Retourne les méta-données de l'archive phar
  • Phar::getModified — Indique si le fichier phar a été modifié
  • Phar::getPath — Récupère le chemin absolu de l'archive Phar sur le disque
  • 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 d'é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::unlinkArchive — Efface complètement une archive phar du disque et de la mémoire
  • Phar::webPhar — Redirige une requête depuis un navigateur web à un fichier interne dans l'archive phar


Ajoute un répertoire vide à l'archive phar

  • « Phar
  • Phar::addFile »
  • PHP Manual
  • Phar
  • Ajoute un répertoire vide à l'archive phar

Phar::addEmptyDir

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::addEmptyDir — Ajoute un répertoire vide à l'archive phar

Description

public Phar::addEmptyDir(string $directory): 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.

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

directory

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

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::addFile — Ajoute un fichier du système de fichiers à l'archive phar

Description

public Phar::addFile(string $filename, ?string $localName = null): 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.

Grâce à cette méthode, tout fichier ou URL peut être ajouté à l'archive phar. Si le second paramètre optionnel localName est une chaîne de caractères, le fichier sera stocké dans l'archive de ce nom, sinon le paramètre filename 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

filename

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.

Historique

Version | Description
8.0.0 | localName est désormais nullable.

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
}
?>

Notes

Note: Phar::addFile(), Phar::addFromString() et Phar::offsetSet() enregistre une nouvelle archive phar à chaque fois qu'elles sont appelées. Si les performances sont une préoccupation, Phar::buildFromDirectory() ou Phar::buildFromIterator() devraient être utilisé à la place.

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

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::addFromString — Ajoute un fichier depuis une chaîne de caractère à l'archive phar

Description

public Phar::addFromString(string $localName, string $contents): 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.

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
}
?>

Notes

Note: Phar::addFile(), Phar::addFromString() et Phar::offsetSet() enregistre une nouvelle archive phar à chaque fois qu'elles sont appelées. Si les performances sont une préoccupation, Phar::buildFromDirectory() ou Phar::buildFromIterator() devraient être utilisé à la place.

Voir aussi

  • Phar::offsetSet() - Met le contenu d'un fichier interne à l'archive à l'identique du contenu d'un fichier externe
  • PharData::addFromString() - Ajoutez un fichier à partir d'une chaîne de caractères à 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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::apiVersion — Retourne la version de l'API

Description

final public static Phar::apiVersion(): string

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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::buildFromDirectory — Construit une archive phar à partir des fichiers d'un répertoire

Description

public Phar::buildFromDirectory(string $directory, string $pattern = ""): array

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

directory

Le chemin absolu ou relatif vers le répertoire contenant tous les fichiers à ajouter à l'archive.

pattern

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.

Historique

Version | Description
8.1.0 | Phar::buildFromDirectory() ne retourne plus false.

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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::buildFromIterator — Construit une archive phar à partir d'un itérateur

Description

public Phar::buildFromIterator(Traversable $iterator, ?string $baseDirectory = null): array

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

iterator

Un itérateur qui associe un fichier avec une position, ou bien retourne des objets SplFileInfo.

baseDirectory

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.

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 baseDirectory, ou une exception PharException s'il y a eu des erreurs lors de la sauvegarde de l'archive phar.

Historique

Version | Description
8.1.0 | Phar::buildFromIterator() ne retourne plus false désormais.
8.0.0 | baseDirectory est désormais nullable.

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'));
?>

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 >= 5.3.0, PHP 7, PHP 8, 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 Phar::canCompress(int $compression = 0): bool

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

compression

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 >= 5.3.0, PHP 7, PHP 8, 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 Phar::canWrite(): bool

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::compressFiles »
  • PHP Manual
  • Phar
  • Compresse l'archive Phar complète en utilisant la compression Gzip ou Bzip2

Phar::compress

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::compress — Compresse l'archive Phar complète en utilisant la compression Gzip ou Bzip2

Description

public Phar::compress(int $compression, ?string $extension = null): ?Phar

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, ou null en cas d'échec.

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.

Historique

Version | Description
8.0.0 | extension est désormais nullable.

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'

  • « Phar::compress
  • Phar::__construct »
  • PHP Manual
  • Phar
  • Compresse tous les fichiers de l'archive Phar courante'

Phar::compressFiles

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::compressFiles — Compresse tous les fichiers de l'archive Phar courante'

Description

public Phar::compressFiles(int $compression): 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 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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::__construct — Construit un objet d'archive Phar

Description

public Phar::__construct(string $filename, int $flags = FilesystemIterator::SKIP_DOTS | FilesystemIterator::UNIX_PATHS, ?string $alias = null)

Liste de paramètres

filename

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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::convertToData — Convertit une archive phar en un fichier non-exécutable

Description

public Phar::convertToData(?int $format = null, ?int $compression = null, ?string $extension = null): ?PharData

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, ou null 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.

Historique

Version | Description
8.0.0 | format, compression, et extension sont désormais nullable.

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 >= 5.3.0, PHP 7, PHP 8, 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::convertToExecutable(?int $format = null, ?int $compression = null, ?string $extension = null): ?Phar

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, ou null 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.

Historique

Version | Description
8.0.0 | format, compression, et extension sont désormais nullable.

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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::copy — Copie un fichier appartenant à une archive vers un autre fichier de la même archive

Description

public Phar::copy(string $from, string $to): bool

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

from

to

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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::count — Retourne le nombre d'entrées (fichiers) dans l'archive Phar

Description

public Phar::count(int $mode = COUNT_NORMAL): int

Liste de paramètres

mode

mode est une valeur entière spécifiant le mode de comptage à utiliser. Par défaut, il est défini à COUNT_NORMAL, qui ne compte que le nombre d'éléments dans l'archive qui n'ont pas été supprimés ou cachés. Lorsqu'il est défini à COUNT_RECURSIVE, il compte tous les éléments de l'archive, y compris ceux qui ont été supprimés ou cachés.

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

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::createDefaultStub — Crée un conteneur de chargement d'une archive Phar

Description

final public static Phar::createDefaultStub(?string $index = null, ?string $webIndex = null): string

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.

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

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.

Historique

Version | Description
8.0.0 | index et webIndex sont désormais nullable.

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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::decompress — Décompresse l'archive tar complète

Description

public Phar::decompress(?string $extension = null): ?Phar

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é en cas de succès, ou null en cas d'échec.

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.

Historique

Version | Description
8.0.0 | extension est désormais nullable.

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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::decompressFiles — Décompresse tous les fichiers de l'archive Phar courante

Description

public Phar::decompressFiles(): bool

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.

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.

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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.2.0)

Phar::delMetadata — Efface les méta-données globales du phar

Description

public Phar::delMetadata(): bool

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étadonnées de l'archive phar
  • 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::__destruct »
  • PHP Manual
  • Phar
  • Efface un fichier au sein d'une archive phar

Phar::delete

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::delete — Efface un fichier au sein d'une archive phar

Description

public Phar::delete(string $localName): bool

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

localName

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


Destructs a Phar archive object

  • « Phar::delete
  • Phar::extractTo »
  • PHP Manual
  • Phar
  • Destructs a Phar archive object

Phar::__destruct

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::__destruct — Destructs a Phar archive object

Description

public Phar::__destruct()

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Extrait le contenu d'une archive phar vers un répertoire

  • « Phar::__destruct
  • Phar::getAlias »
  • PHP Manual
  • Phar
  • Extrait le contenu d'une archive phar vers un répertoire

Phar::extractTo

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::extractTo — Extrait le contenu d'une archive phar vers un répertoire

Description

public Phar::extractTo(string $directory, array|string|null $files = null, bool $overwrite = false): bool

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

directory

Chemin d'accès vers lequel extraire les fichiers files

files

Le nom d'un fichier ou d'un répertoire ou un tableau de fichiers/répertoires à extraire, null pour ignorer ce paramètre

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 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
}
?>

Notes

Note:

Les systèmes de fichiers NTFS Windows ne supportent pas certain caractères dans le noms de fichier, à savoir <|>*?":. Les noms de fichiers avec un point trainant ne sont également pas supporté. Contrairement à certains outils d'extraction, cette méthode ne remplace pas ces caractères avec un tiret bas, mais échoue à extraire de tel fichiers.

Voir aussi

  • PharData::extractTo() - Extrait le contenu d'une archive tar/zip vers un répertoire


Récupère l'alias pour Phar

  • « Phar::extractTo
  • Phar::getMetadata »
  • PHP Manual
  • Phar
  • Récupère l'alias pour Phar

Phar::getAlias

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.2.1)

Phar::getAlias — Récupère l'alias pour Phar

Description

public Phar::getAlias(): ?string

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'alias ou null s'il n'y a pas d'alias.


Retourne les méta-données de l'archive phar

  • « Phar::getAlias
  • Phar::getModified »
  • PHP Manual
  • Phar
  • Retourne les méta-données de l'archive phar

Phar::getMetadata

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::getMetadata — Retourne les méta-données de l'archive phar

Description

public Phar::getMetadata(array $unserializeOptions = []): mixed

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.

Historique

Version | Description
8.0.0 | Le paramètre unserializeOptions a été ajouté.

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étadonné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


Indique si le fichier phar a été modifié

  • « Phar::getMetadata
  • Phar::getPath »
  • PHP Manual
  • Phar
  • Indique si le fichier phar a été modifié

Phar::getModified

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::getModified — Indique si le fichier phar a été modifié

Description

public Phar::getModified(): bool

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.


Récupère le chemin absolu de l'archive Phar sur le disque

  • « Phar::getModified
  • Phar::getSignature »
  • PHP Manual
  • Phar
  • Récupère le chemin absolu de l'archive Phar sur le disque

Phar::getPath

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Phar::getPath — Récupère le chemin absolu de l'archive Phar sur le disque

Description

public Phar::getPath(): string

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Retourne la signature MD5/SHA1/SHA256/SHA512 d'une archive Phar

  • « Phar::getPath
  • Phar::getStub »
  • PHP Manual
  • Phar
  • Retourne la signature MD5/SHA1/SHA256/SHA512 d'une archive Phar

Phar::getSignature

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::getSignature — Retourne la signature MD5/SHA1/SHA256/SHA512 d'une archive Phar

Description

public Phar::getSignature(): array|false

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. S'il n'y a pas de signature, la fonction retourne false


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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::getStub — Retourne le chargeur PHP ou le conteneur de chargement d'une archive Phar

Description

public Phar::getStub(): string

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

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.2.0)

Phar::getSupportedCompression — Retourne un tableau des algorithmes de compression supportés

Description

final public static Phar::getSupportedCompression(): array

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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.1.0)

Phar::getSupportedSignatures — Retourne un tableau des types de signature supportés

Description

final public static Phar::getSupportedSignatures(): array

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() - Fixe et applique l'algorithme de signature d'un phar


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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::getVersion — Retourne les informations de version de l'archive Phar

Description

public Phar::getVersion(): string

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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.2.0)

Phar::hasMetadata — Détermine si le phar a ou non des méta-données

Description

public Phar::hasMetadata(): bool

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étadonnées de l'archive phar
  • 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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::interceptFileFuncs — Informe phar qu'il doit intercepter les fonctions de fichiers

Description

final public static 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 >= 5.3.0, PHP 7, PHP 8, 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 Phar::isBuffering(): bool

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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 d'é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 >= 5.3.0, PHP 7, PHP 8, 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 Phar::isCompressed(): int|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.

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 >= 5.3.0, PHP 7, PHP 8, 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 Phar::isFileFormat(int $format): bool

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 >= 5.3.0, PHP 7, PHP 8, 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 Phar::isValidPharFilename(string $filename, bool $executable = true): bool

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

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::isWritable — Retourne true si l'archive phar peut être modifiée

Description

public Phar::isWritable(): bool

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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::loadPhar — Charge n'importe quelle archive phar avec un alias

Description

final public static Phar::loadPhar(string $filename, ?string $alias = null): bool

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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::mapPhar — Lit le phar exécuté et charge son manifeste

Description

final public static Phar::mapPhar(?string $alias = null, int $offset = 0): bool

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.

offset

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 >= 5.3.0, PHP 7, PHP 8, 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 Phar::mount(string $pharPath, string $externalPath): void

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

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

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 Phar::mungServer(array $variables): void

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 doivent ê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

variables

un tableau contenant n'importe laquelle de ces chaînes de caractères. 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() - Redirige une requête depuis un navigateur web à un fichier interne dans l'archive phar
  • 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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::offsetExists — Détermine si un fichier existe dans le phar

Description

public Phar::offsetExists(string $localName): bool

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

localName

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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::offsetGet — Obtient un objet PharFileInfo à partir d'un fichier

Description

public Phar::offsetGet(string $localName): SplFileInfo

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

localName

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 >= 5.3.0, PHP 7, PHP 8, 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 Phar::offsetSet(string $localName, resource|string $value): 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.

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

localName

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;
}
?>

Notes

Note: Phar::addFile(), Phar::addFromString() et Phar::offsetSet() enregistre une nouvelle archive phar à chaque fois qu'elles sont appelées. Si les performances sont une préoccupation, Phar::buildFromDirectory() ou Phar::buildFromIterator() devraient être utilisé à la place.

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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::offsetUnset — Efface un fichier d'un phar

Description

public Phar::offsetUnset(string $localName): 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.

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

localName

Le nom de fichier (en chemin relatif) à chercher dans le Phar.

Valeurs de retour

Aucune valeur n'est retournée.

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 >= 5.3.0, PHP 7, PHP 8, 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 Phar::running(bool $returnPhar = true): string

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

returnPhar

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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.2.1)

Phar::setAlias — Fixe l'alias de l'archive Phar

Description

public Phar::setAlias(string $alias): bool

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

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

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 Phar::setDefaultStub(?string $index = null, ?string $webIndex = null): bool

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.

Historique

Version | Description
8.0.0 | webIndex est désormais nullable.

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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::setMetadata — Fixe les métadonnées de l'archive phar

Description

public Phar::setMetadata(mixed $metadata): 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.

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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.1.0)

Phar::setSignatureAlgorithm — Fixe et applique l'algorithme de signature d'un phar

Description

public Phar::setSignatureAlgorithm(int $algo, ?string $privateKey = null): 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.

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

algo

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.

Historique

Version | Description
8.0.0 | privateKey est désormais nullable.

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 >= 5.3.0, PHP 7, PHP 8, 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 Phar::setStub(resource|string $stub, int $length = -1): bool

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.

length

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 changements sur le disque.

Historique

Version | Description
8.3.0 | Appeler Phar::setStub() avec une resource et une length est désormais obsolète. De tels appels devraient être remplacés par : $phar->setStub(stream_get_contents($resource));

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(); ?>"

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 d'écritures Phar, ne modifie pas l'objet Phar sur le disque

  • « Phar::setStub
  • Phar::stopBuffering »
  • PHP Manual
  • Phar
  • Démarre la mise en tampon d'écritures Phar, ne modifie pas l'objet Phar sur le disque

Phar::startBuffering

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Phar::startBuffering — Démarre la mise en tampon d'écritures Phar, ne modifie pas l'objet Phar sur le disque

Description

public 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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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::unlinkArchive »
  • PHP Manual
  • Phar
  • Arrête la mise en tampon des écritures Phar et provoque l'écriture que le disque

Phar::stopBuffering

(PHP 5 >= 5.3.0, PHP 7, PHP 8, 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 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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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 d'é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


Efface complètement une archive phar du disque et de la mémoire

  • « Phar::stopBuffering
  • Phar::webPhar »
  • PHP Manual
  • Phar
  • Efface complètement une archive phar du disque et de la mémoire

Phar::unlinkArchive

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::unlinkArchive — Efface complètement une archive phar du disque et de la mémoire

Description

final public static Phar::unlinkArchive(string $filename): bool

Efface complètement une archive phar du disque et de la mémoire

Liste de paramètres

filename

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


Redirige une requête depuis un navigateur web à un fichier interne dans l'archive phar

  • « Phar::unlinkArchive
  • PharData »
  • PHP Manual
  • Phar
  • Redirige une requête depuis un navigateur web à un fichier interne dans l'archive phar

Phar::webPhar

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::webPhar — Redirige une requête depuis un navigateur web à un fichier interne dans l'archive phar

Description

final public static Phar::webPhar(
?string $alias = null,
?string $index = null,
?string $fileNotFoundScript = null,
array $mimeTypes = [],
?callable $rewrite = null
): void

Phar::webPhar() sert comme 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. 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. 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.

fileNotFoundScript

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',
);
?>

rewrite

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 rewrite, alors une exception UnexpectedValueException est levée.

Historique

Version | Description
8.0.0 | fileNotFoundScript et rewrite sont désormais nullable.

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 >= 5.3.0, PHP 7, PHP 8, 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

class PharData extends RecursiveDirectoryIterator implements Countable, ArrayAccess {
/* Constants héritées */
public const int FilesystemIterator::CURRENT_MODE_MASK;
public const int FilesystemIterator::CURRENT_AS_PATHNAME;
public const int FilesystemIterator::CURRENT_AS_FILEINFO;
public const int FilesystemIterator::CURRENT_AS_SELF;
public const int FilesystemIterator::KEY_MODE_MASK;
public const int FilesystemIterator::KEY_AS_PATHNAME;
public const int FilesystemIterator::FOLLOW_SYMLINKS;
public const int FilesystemIterator::KEY_AS_FILENAME;
public const int FilesystemIterator::NEW_CURRENT_AND_KEY;
public const int FilesystemIterator::OTHER_MODE_MASK;
public const int FilesystemIterator::SKIP_DOTS;
public const int FilesystemIterator::UNIX_PATHS;
/* Méthodes */
public __construct(
string $filename,
int $flags = FilesystemIterator::SKIP_DOTS | FilesystemIterator::UNIX_PATHS,
?string $alias = null,
int $format = 0
)
public addEmptyDir(string $directory): void
public addFile(string $filename, ?string $localName = null): void
public addFromString(string $localName, string $contents): void
public buildFromDirectory(string $directory, string $pattern = ""): array
public buildFromIterator(Traversable $iterator, ?string $baseDirectory = null): array
public compress(int $compression, ?string $extension = null): ?PharData
public compressFiles(int $compression): void
public convertToData(?int $format = null, ?int $compression = null, ?string $extension = null): ?PharData
public convertToExecutable(?int $format = null, ?int $compression = null, ?string $extension = null): ?Phar
public copy(string $from, string $to): bool
public decompress(?string $extension = null): ?PharData
public decompressFiles(): bool
public delMetadata(): bool
public delete(string $localName): bool
public extractTo(string $directory, array|string|null $files = null, bool $overwrite = false): bool
public isWritable(): bool
public offsetSet(string $localName, resource|string $value): void
public offsetUnset(string $localName): void
public setAlias(string $alias): bool
public setDefaultStub(?string $index = null, ?string $webIndex = null): bool
public setMetadata(mixed $metadata): void
public setSignatureAlgorithm(int $algo, ?string $privateKey = null): void
public setStub(string $stub, int $len = -1): bool
public __destruct()
/* Méthodes héritées */
public RecursiveDirectoryIterator::getChildren(): RecursiveDirectoryIterator
public RecursiveDirectoryIterator::getSubPath(): string
public RecursiveDirectoryIterator::getSubPathname(): string
public RecursiveDirectoryIterator::hasChildren(bool $allowLinks = false): bool
public RecursiveDirectoryIterator::key(): string
public RecursiveDirectoryIterator::next(): void
public RecursiveDirectoryIterator::rewind(): void
public FilesystemIterator::current(): string|SplFileInfo|FilesystemIterator
public FilesystemIterator::getFlags(): int
public FilesystemIterator::key(): string
public FilesystemIterator::next(): void
public FilesystemIterator::rewind(): void
public FilesystemIterator::setFlags(int $flags): void
public DirectoryIterator::current(): mixed
public DirectoryIterator::getBasename(string $suffix = ""): string
public DirectoryIterator::getExtension(): string
public DirectoryIterator::getFilename(): string
public DirectoryIterator::isDot(): bool
public DirectoryIterator::key(): mixed
public DirectoryIterator::next(): void
public DirectoryIterator::rewind(): void
public DirectoryIterator::seek(int $offset): void
public DirectoryIterator::__toString(): string
public DirectoryIterator::valid(): bool
public SplFileInfo::getATime(): int|false
public SplFileInfo::getBasename(string $suffix = ""): string
public SplFileInfo::getCTime(): int|false
public SplFileInfo::getExtension(): string
public SplFileInfo::getFileInfo(?string $class = null): SplFileInfo
public SplFileInfo::getFilename(): string
public SplFileInfo::getGroup(): int|false
public SplFileInfo::getInode(): int|false
public SplFileInfo::getLinkTarget(): string|false
public SplFileInfo::getMTime(): int|false
public SplFileInfo::getOwner(): int|false
public SplFileInfo::getPath(): string
public SplFileInfo::getPathInfo(?string $class = null): ?SplFileInfo
public SplFileInfo::getPathname(): string
public SplFileInfo::getPerms(): int|false
public SplFileInfo::getRealPath(): string|false
public SplFileInfo::getSize(): int|false
public SplFileInfo::getType(): string|false
public SplFileInfo::isDir(): bool
public SplFileInfo::isExecutable(): bool
public SplFileInfo::isFile(): bool
public SplFileInfo::isLink(): bool
public SplFileInfo::isReadable(): bool
public SplFileInfo::isWritable(): bool
public SplFileInfo::openFile(string $mode = "r", bool $useIncludePath = false, ?resource $context = null): SplFileObject
public SplFileInfo::setFileClass(string $class = SplFileObject::class): void
public SplFileInfo::setInfoClass(string $class = SplFileInfo::class): void
public SplFileInfo::__toString(): string
}

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 — Ajoutez un fichier à partir d'une chaîne de caractères à 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 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::__destruct — Destructs a non-executable tar or zip archive object
  • 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::setMetadata — Fixe les méta-données de l'archive
  • PharData::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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::addEmptyDir — Ajoute un répertoire vide à l'archive tar/zip

Description

public PharData::addEmptyDir(string $directory): void

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

directory

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() - Ajoutez un fichier à partir d'une chaîne de caractères à 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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::addFile — Ajoute un fichier du système de fichiers à l'archive tar/zip

Description

public PharData::addFile(string $filename, ?string $localName = null): void

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

filename

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.

Historique

Version | Description
8.0.0 | localName est désormais nullable.

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
}
?>

Notes

Note: PharData::addFile(), PharData::addFromString() et PharData::offsetSet() enregistre une nouvelle archive phar à chaque fois qu'elles sont appelées. Si les performances sont une préoccupation, PharData::buildFromDirectory() ou PharData::buildFromIterator() devraient être utilisé à la place.

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() - Ajoutez un fichier à partir d'une chaîne de caractères à l'archive tar/zip
  • PharData::addEmptyDir() - Ajoute un répertoire vide à l'archive tar/zip


Ajoutez un fichier à partir d'une chaîne de caractères à l'archive tar/zip

  • « PharData::addFile
  • PharData::buildFromDirectory »
  • PHP Manual
  • PharData
  • Ajoutez un fichier à partir d'une chaîne de caractères à l'archive tar/zip

PharData::addFromString

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::addFromString — Ajoutez un fichier à partir d'une chaîne de caractères à l'archive tar/zip

Description

public PharData::addFromString(string $localName, string $contents): void

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
}
?>

Notes

Note: Phar::addFile(), Phar::addFromString() et Phar::offsetSet() enregistre une nouvelle archive phar à chaque fois qu'elles sont appelées. Si les performances sont une préoccupation, Phar::buildFromDirectory() ou Phar::buildFromIterator() devraient être utilisé à la place.

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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::buildFromDirectory — Construit une archive tar/zip à partir des fichiers d'un répertoire

Description

public PharData::buildFromDirectory(string $directory, string $pattern = ""): array

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

directory

Le chemin relatif ou absolu vers le répertoire contenant tous les fichiers à ajouter à l'archive.

pattern

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, ou false si une erreur survient.

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.

Historique

Version | Description
8.1.0 | PharData::buildFromDirectory() ne retourne plus false.

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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::buildFromIterator — Construit une archive tar ou zip à partir d'un itérateur

Description

public PharData::buildFromIterator(Traversable $iterator, ?string $baseDirectory = null): array

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.

Liste de paramètres

iterator

N'importe quel itérateur qui fait correspondre de façon associative un fichier tar/zip ou qui retourne des objets SplFileInfo

baseDirectory

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 baseDirectory, ou une exception PharException si des erreurs ont été rencontrées lors de la sauvegarde de l'archive phar.

Historique

Version | Description
8.1.0 | PharData::buildFromIterator() ne retourne plus false désormais.
8.0.0 | baseDirectory est désormais nullable.

Exemples

Exemple #1 Exemple avec PharData::buildFromIterator() et SplFileInfo

Pour la plupart de l'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'),
)));
?>

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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::compress — Compresse l'archive tar/zip complète en utilisant la compression Gzip ou Bzip2

Description

public PharData::compress(int $compression, ?string $extension = null): ?PharData

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é en cas de succès, null en cas d'échec.

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.

Historique

Version | Description
8.0.0 | extension est désormais nullable.

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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::compressFiles — Compresse tous les fichiers de l'archive tar/zip courante

Description

public PharData::compressFiles(int $compression): void

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

Aucune valeur n'est retournée.

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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::__construct — Construit un objet d'archive tar ou zip non-exécutable

Description

public PharData::__construct(
string $filename,
int $flags = FilesystemIterator::SKIP_DOTS | FilesystemIterator::UNIX_PATHS,
?string $alias = null,
int $format = 0
)

Liste de paramètres

filename

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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::convertToData — Convertit une archive phar en une archive tar ou zip non-exécutable

Description

public PharData::convertToData(?int $format = null, ?int $compression = null, ?string $extension = null): ?PharData

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, ou null 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.

Historique

Version | Description
8.0.0 | format, compression, et extension sont désormais nullable.

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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::convertToExecutable — Convertit une archive tar/zip non-exécutable en une archive phar exécutable

Description

public PharData::convertToExecutable(?int $format = null, ?int $compression = null, ?string $extension = null): ?Phar

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, ou null 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.

Historique

Version | Description
8.0.0 | format, compression, et localName sont désormais nullable.

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 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 interne à l'archive phar vers un autre fichier au sein de la même archive

PharData::copy

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::copy — Copie un fichier interne à l'archive phar vers un autre fichier au sein de la même archive

Description

public PharData::copy(string $from, string $to): bool

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

from

to

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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::decompress — Décompresse l'archive Phar entière

Description

public PharData::decompress(?string $extension = null): ?PharData

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 paramètre extension.

Liste de paramètres

extension

Pour décompresser, l'extension par défaut est .tar. Utilisez ce paramètre pour spécifier une autre extension de fichier. Gardez à l'esprit que seul les archives exécutables peuvent contenir .phar dans leur nom de fichier.

Valeurs de retour

Un objet PharData est retourné en cas de succès, ou null en cas d'échec.

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.

Historique

Version | Description
8.0.0 | extension est désormais nullable.

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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::decompressFiles — Décompresse tous les fichiers de l'archive zip courante

Description

public PharData::decompressFiles(): bool

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.

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.

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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::delMetadata — Efface les méta-données globales d'une archive zip

Description

public PharData::delMetadata(): bool

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::__destruct »
  • PHP Manual
  • PharData
  • Efface un fichier au sein de l'archive tar/zip

PharData::delete

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::delete — Efface un fichier au sein de l'archive tar/zip

Description

public PharData::delete(string $localName): bool

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

localName

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


Destructs a non-executable tar or zip archive object

  • « PharData::delete
  • PharData::extractTo »
  • PHP Manual
  • PharData
  • Destructs a non-executable tar or zip archive object

PharData::__destruct

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::__destruct — Destructs a non-executable tar or zip archive object

Description

public PharData::__destruct()

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Extrait le contenu d'une archive tar/zip vers un répertoire

  • « PharData::__destruct
  • PharData::isWritable »
  • PHP Manual
  • PharData
  • Extrait le contenu d'une archive tar/zip vers un répertoire

PharData::extractTo

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::extractTo — Extrait le contenu d'une archive tar/zip vers un répertoire

Description

public PharData::extractTo(string $directory, array|string|null $files = null, bool $overwrite = false): bool

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

directory

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 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
}
?>

Notes

Note:

Les systèmes de fichiers NTFS Windows ne supportent pas certain caractères dans le noms de fichier, à savoir <|>*?":. Les noms de fichiers avec un point trainant ne sont également pas supporté. Contrairement à certains outils d'extraction, cette méthode ne remplace pas ces caractères avec un tiret bas, mais échoue à extraire de tel fichiers.

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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::isWritable — Vérifie si l'archive tar/zip peut être modifiée

Description

public PharData::isWritable(): bool

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 >= 5.3.0, PHP 7, PHP 8, 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

public PharData::offsetSet(string $localName, resource|string $value): void

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

localName

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;
}
?>

Notes

Note: Phar::addFile(), Phar::addFromString() et Phar::offsetSet() enregistre une nouvelle archive phar à chaque fois qu'elles sont appelées. Si les performances sont une préoccupation, Phar::buildFromDirectory() ou Phar::buildFromIterator() devraient être utilisé à la place.

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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::offsetUnset — Efface un fichier d'une archive tar/zip

Description

public PharData::offsetUnset(string $localName): void

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

localName

Le chemin (relatif) du fichier à modifier au sein de l'archive tar ou zip.

Valeurs de retour

Aucune valeur n'est retournée.

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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::setAlias — Fonction inutile (Phar::setAlias n'est pas valide pour PharData)

Description

public PharData::setAlias(string $alias): bool

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
  • PharData::setMetadata »
  • PHP Manual
  • PharData
  • Fonction inutile (Phar::setDefaultStub n'est pas valide pour PharData)

PharData::setDefaultStub

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::setDefaultStub — Fonction inutile (Phar::setDefaultStub n'est pas valide pour PharData)

Description

public PharData::setDefaultStub(?string $index = null, ?string $webIndex = null): bool

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

Historique

Version | Description
8.0.0 | webIndex est désormais nullable.

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
  • PharData::setSignatureAlgorithm »
  • PHP Manual
  • PharData
  • Fixe les méta-données de l'archive

PharData::setMetadata

(No version information available, might only be in Git)

PharData::setMetadata — Fixe les méta-données de l'archive

Description

public PharData::setMetadata(mixed $metadata): 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.

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

  • « PharData::setMetadata
  • PharData::setStub »
  • PHP Manual
  • PharData
  • Assigne l'algorithme de signature d'un phar et l'applique

PharData::setSignatureAlgorithm

(No version information available, might only be in Git)

PharData::setSignatureAlgorithm — Assigne l'algorithme de signature d'un phar et l'applique

Description

public PharData::setSignatureAlgorithm(int $algo, ?string $privateKey = null): 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.

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::OPENSSL.

Liste de paramètres

algo

Un algorithme parmi Phar::MD5,
Phar::SHA1, Phar::SHA256,
Phar::SHA512, ou Phar::OPENSSL.

privateKey

Le contenue d'une clé privée OpenSSL, comme extraite depuis un certificat ou 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);
?>
Voir l'introduction Phar pour des consignes de nommage et de placement de fichier de clé publique.

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.

Historique

Version | Description
8.0.0 | privateKey est désormais nullable.

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)

  • « PharData::setSignatureAlgorithm
  • PharFileInfo »
  • PHP Manual
  • PharData
  • Fonction inutile (Phar::setStub n'est pas valide pour PharData)

PharData::setStub

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharData::setStub — Fonction inutile (Phar::setStub n'est pas valide pour PharData)

Description

public PharData::setStub(string $stub, int $len = -1): bool

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

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 >= 5.3.0, PHP 7, PHP 8, 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

class PharFileInfo extends SplFileInfo {
/* Méthodes */
public __construct(string $filename)
public chmod(int $perms): void
public compress(int $compression): bool
public decompress(): bool
public delMetadata(): bool
public getCRC32(): int
public getCompressedSize(): int
public getContent(): string
public getMetadata(array $unserializeOptions = []): mixed
public getPharFlags(): int
public hasMetadata(): bool
public isCRCChecked(): bool
public isCompressed(?int $compression = null): bool
public setMetadata(mixed $metadata): void
public __destruct()
/* Méthodes héritées */
public SplFileInfo::getATime(): int|false
public SplFileInfo::getBasename(string $suffix = ""): string
public SplFileInfo::getCTime(): int|false
public SplFileInfo::getExtension(): string
public SplFileInfo::getFileInfo(?string $class = null): SplFileInfo
public SplFileInfo::getFilename(): string
public SplFileInfo::getGroup(): int|false
public SplFileInfo::getInode(): int|false
public SplFileInfo::getLinkTarget(): string|false
public SplFileInfo::getMTime(): int|false
public SplFileInfo::getOwner(): int|false
public SplFileInfo::getPath(): string
public SplFileInfo::getPathInfo(?string $class = null): ?SplFileInfo
public SplFileInfo::getPathname(): string
public SplFileInfo::getPerms(): int|false
public SplFileInfo::getRealPath(): string|false
public SplFileInfo::getSize(): int|false
public SplFileInfo::getType(): string|false
public SplFileInfo::isDir(): bool
public SplFileInfo::isExecutable(): bool
public SplFileInfo::isFile(): bool
public SplFileInfo::isLink(): bool
public SplFileInfo::isReadable(): bool
public SplFileInfo::isWritable(): bool
public SplFileInfo::openFile(string $mode = "r", bool $useIncludePath = false, ?resource $context = null): SplFileObject
public SplFileInfo::setFileClass(string $class = SplFileObject::class): void
public SplFileInfo::setInfoClass(string $class = SplFileInfo::class): void
public SplFileInfo::__toString(): string
}

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::__destruct — Destructs a Phar entry object
  • 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::getContent — Récupère le contenu entier du fichier de l'entrée
  • 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::setMetadata — Fixe les métadonnées spécifiques à un fichier


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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

PharFileInfo::chmod — Fixe les bits de permission spécifiques aux fichiers

Description

public PharFileInfo::chmod(int $perms): void

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

perms

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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharFileInfo::compress — Compresse l'entrée Phar courante avec une des compressions zlib ou bzip2

Description

public PharFileInfo::compress(int $compression): bool

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.

Liste de paramètres

compression

La compression doit être Phar::GZ ou Phar::BZ2.

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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

PharFileInfo::__construct — Construit un objet d'entrée Phar

Description

public PharFileInfo::__construct(string $filename)

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

filename

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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

PharFileInfo::decompress — Décompresse l'entrée Phar courante au sein du phar

Description

public PharFileInfo::decompress(): bool

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.

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.

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::__destruct »
  • PHP Manual
  • PharFileInfo
  • Efface les métadonnées de l'entrée

PharFileInfo::delMetadata

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.2.0)

PharFileInfo::delMetadata — Efface les métadonnées de l'entrée

Description

public PharFileInfo::delMetadata(): bool

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étadonnées de l'archive phar
  • 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


Destructs a Phar entry object

  • « PharFileInfo::delMetadata
  • PharFileInfo::getCRC32 »
  • PHP Manual
  • PharFileInfo
  • Destructs a Phar entry object

PharFileInfo::__destruct

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

PharFileInfo::__destruct — Destructs a Phar entry object

Description

public PharFileInfo::__destruct()

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Retourne le code CRC32 ou soulève une exception si le CRC n'a pas été vérifié

  • « PharFileInfo::__destruct
  • 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 >= 5.3.0, PHP 7, PHP 8, 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 PharFileInfo::getCRC32(): int

Retourne la somme de contrôle crc32() du fichier au sein de l'archive Phar.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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::getContent »
  • PHP Manual
  • PharFileInfo
  • Retourne la taille actuelle (avec compression) du fichier au sein de l'archive Phar

PharFileInfo::getCompressedSize

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

PharFileInfo::getCompressedSize — Retourne la taille actuelle (avec compression) du fichier au sein de l'archive Phar

Description

public PharFileInfo::getCompressedSize(): int

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()

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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'


Récupère le contenu entier du fichier de l'entrée

  • « PharFileInfo::getCompressedSize
  • PharFileInfo::getMetadata »
  • PHP Manual
  • PharFileInfo
  • Récupère le contenu entier du fichier de l'entrée

PharFileInfo::getContent

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

PharFileInfo::getContent — Récupère le contenu entier du fichier de l'entrée

Description

public PharFileInfo::getContent(): string

Cette fonction se comporte comme file_get_contents() mais pour Phar.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le contenu du fichier.


Retourne les méta-données spécifiques attachées à un fichier

  • « PharFileInfo::getContent
  • PharFileInfo::getPharFlags »
  • PHP Manual
  • PharFileInfo
  • Retourne les méta-données spécifiques attachées à un fichier

PharFileInfo::getMetadata

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

PharFileInfo::getMetadata — Retourne les méta-données spécifiques attachées à un fichier

Description

public PharFileInfo::getMetadata(array $unserializeOptions = []): mixed

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.

Historique

Version | Description
8.0.0 | Le paramètre unserializeOptions a été ajouté.

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étadonnées de l'archive phar
  • 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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

PharFileInfo::getPharFlags — Retourne les drapeaux du fichier Phar

Description

public PharFileInfo::getPharFlags(): int

Cette méthode retourne les drapeaux fixés dans le manifeste pour un Phar. Elle retournera toujours 0 dans son implémentation actuelle.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.2.0)

PharFileInfo::hasMetadata — Retourne les méta-données de l'entrée

Description

public PharFileInfo::hasMetadata(): bool

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étadonnées de l'archive phar
  • 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 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

PharFileInfo::isCRCChecked — Détermine si le fichier a un CRC vérifié

Description

public PharFileInfo::isCRCChecked(): bool

Cette méthode détermine si un fichier au sein d'une archive Phar a un CRC vérifié.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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::setMetadata »
  • PHP Manual
  • PharFileInfo
  • Retourne si l'entrée est compressée

PharFileInfo::isCompressed

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

PharFileInfo::isCompressed — Retourne si l'entrée est compressée

Description

public PharFileInfo::isCompressed(?int $compression = null): bool

Cette méthode détermine si un fichier au sein d'une archive Phar est compressé avec une des compressions Gzip ou Bzip2.

Liste de paramètres

compression

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.

Historique

Version | Description
8.0.0 | compression est désormais nullable.

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'


Fixe les métadonnées spécifiques à un fichier

  • « PharFileInfo::isCompressed
  • PharException »
  • PHP Manual
  • PharFileInfo
  • Fixe les métadonnées spécifiques à un fichier

PharFileInfo::setMetadata

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

PharFileInfo::setMetadata — Fixe les métadonnées spécifiques à un fichier

Description

public PharFileInfo::setMetadata(mixed $metadata): void

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étadonnées de l'archive phar
  • 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


La classe PharException

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 1.0.0)

Introduction

La classe PharException fournit une classe d'exception spécifique à phar pour les blocs try/catch.

Synopsis de la classe

class PharException extends Exception {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


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 » https://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 (int)
Utilisez la constante RarEntry::HOST_MSDOS à la place.
RAR_HOST_OS2 (int)
Utilisez la constante RarEntry::HOST_OS2 à la place.
RAR_HOST_WIN32 (int)
Utilisez la constante RarEntry::HOST_WIN32 à la place.
RAR_HOST_UNIX (int)
Utilisez la constante RarEntry::HOST_UNIX à la place.
RAR_HOST_BEOS (int)
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

rar_wrapper_cache_stats(): string

Avertissement

Cette fonction est actuellement non documentée ; 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 class RarArchive implements Traversable {
/* Méthodes */
public close(): bool
public getComment(): string
public getEntries(): array|false
public getEntry(string $entryname): RarEntry|false
public isBroken(): bool
public isSolid(): bool
public static open(string $filename, string $password = NULL, callable $volume_callback = NULL): RarArchive|false
public setAllowBroken(bool $allow_broken): bool
public __toString(): string
}

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 RarArchive::close(): bool

Style procédural :

rar_close(RarArchive $rarfile): bool

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
PECL rar 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";
?>

Résultat de l'exemple ci-dessus est 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 RarArchive::getComment(): string

Style procédural :

rar_comment_get(RarArchive $rarfile): string

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();
?>

Résultat de l'exemple ci-dessus est 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 RarArchive::getEntries(): array|false

Style procédural :

rar_list(RarArchive $rarfile): array|false

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 index 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
PECL rar 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();
?>

Résultat de l'exemple ci-dessus est 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 RarArchive::getEntry(string $entryname): RarEntry|false

Style procédural :

rar_entry_get(RarArchive $rarfile, string $entryname): RarEntry|false

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();
?>

Résultat de l'exemple ci-dessus est 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 RarArchive::isBroken(): bool

Style procédural :

rar_broken_is(RarArchive $rarfile): bool

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());
?>

Résultat de l'exemple ci-dessus est 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 RarArchive::isSolid(): bool

Style procédural :

rar_solid_is(RarArchive $rarfile): bool

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";
?>

Résultat de l'exemple ci-dessus est 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::open(string $filename, string $password = NULL, callable $volume_callback = NULL): RarArchive|false

Style procédural :

rar_open(string $filename, string $password = NULL, callable $volume_callback = NULL): RarArchive|false

Ouvre une archive RAR et retourne une instance RarArchive la représentant.

Note:

Si on tente d'ouvrir une archive multivolume, 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
PECL rar 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);
?>

Résultat de l'exemple ci-dessus est 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 RarArchive::setAllowBroken(bool $allow_broken): bool

Style procédural :

rar_allow_broken_set(RarArchive $rarfile, bool $allow_broken): bool

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));
?>

Résultat de l'exemple ci-dessus est 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 RarArchive::__toString(): string

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";
?>

Résultat de l'exemple ci-dessus est 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 class RarEntry {
/* Constantes */
const int HOST_MSDOS = 0;
const int HOST_OS2 = 1;
const int HOST_WIN32 = 2;
const int HOST_UNIX = 3;
const int HOST_MACOS = 4;
const int HOST_BEOS = 5;
const int ATTRIBUTE_WIN_READONLY = 1;
const int ATTRIBUTE_WIN_HIDDEN = 2;
const int ATTRIBUTE_WIN_SYSTEM = 4;
const int ATTRIBUTE_WIN_DIRECTORY = 16;
const int ATTRIBUTE_WIN_ARCHIVE = 32;
const int ATTRIBUTE_WIN_DEVICE = 64;
const int ATTRIBUTE_WIN_NORMAL = 128;
const int ATTRIBUTE_WIN_TEMPORARY = 256;
const int ATTRIBUTE_WIN_SPARSE_FILE = 512;
const int ATTRIBUTE_WIN_REPARSE_POINT = 1024;
const int ATTRIBUTE_WIN_COMPRESSED = 2048;
const int ATTRIBUTE_WIN_OFFLINE = 4096;
const int ATTRIBUTE_WIN_NOT_CONTENT_INDEXED = 8192;
const int ATTRIBUTE_WIN_ENCRYPTED = 16384;
const int ATTRIBUTE_WIN_VIRTUAL = 65536;
const int ATTRIBUTE_UNIX_WORLD_EXECUTE = 1;
const int ATTRIBUTE_UNIX_WORLD_WRITE = 2;
const int ATTRIBUTE_UNIX_WORLD_READ = 4;
const int ATTRIBUTE_UNIX_GROUP_EXECUTE = 8;
const int ATTRIBUTE_UNIX_GROUP_WRITE = 16;
const int ATTRIBUTE_UNIX_GROUP_READ = 32;
const int ATTRIBUTE_UNIX_OWNER_EXECUTE = 64;
const int ATTRIBUTE_UNIX_OWNER_WRITE = 128;
const int ATTRIBUTE_UNIX_OWNER_READ = 256;
const int ATTRIBUTE_UNIX_STICKY = 512;
const int ATTRIBUTE_UNIX_SETGID = 1024;
const int ATTRIBUTE_UNIX_SETUID = 2048;
const int ATTRIBUTE_UNIX_FINAL_QUARTET = 61440;
const int ATTRIBUTE_UNIX_FIFO = 4096;
const int ATTRIBUTE_UNIX_CHAR_DEV = 8192;
const int ATTRIBUTE_UNIX_DIRECTORY = 16384;
const int ATTRIBUTE_UNIX_BLOCK_DEV = 24576;
const int ATTRIBUTE_UNIX_REGULAR_FILE = 32768;
const int ATTRIBUTE_UNIX_SYM_LINK = 40960;
const int ATTRIBUTE_UNIX_SOCKET = 49152;
/* Méthodes */
public extract(
string $dir,
string $filepath = "",
string $password = NULL,
bool $extended_data = false
): bool
public getAttr(): int
public getCrc(): string
public getFileTime(): string
public getHostOs(): int
public getMethod(): int
public getName(): string
public getPackedSize(): int
public getStream(string $password = ?): resource|false
public getUnpackedSize(): int
public getVersion(): int
public isDirectory(): bool
public isEncrypted(): bool
public __toString(): string
}

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 RarEntry::extract(
string $dir,
string $filepath = "",
string $password = NULL,
bool $extended_data = false
): bool

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
PECL rar 3.0.0 | Le paramètre extended_data a été ajouté.
PECL rar 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 RarEntry::getAttr(): int

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 RarEntry::getCrc(): string

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
PECL rar 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 RarEntry::getFileTime(): string

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 RarEntry::getHostOs(): int

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 RarEntry::getMethod(): int

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 RarEntry::getName(): string

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
PECL rar 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 RarEntry::getPackedSize(): int

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
PECL rar 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 RarEntry::getStream(string $password = ?): resource|false

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
PECL rar 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 RarEntry::getUnpackedSize(): int

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
PECL rar 2.0.0 | Cette méthode retourne désormais 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 RarEntry::getVersion(): int

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 RarEntry::isDirectory(): bool

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 RarEntry::isEncrypted(): bool

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 RarEntry::__toString(): string

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 class RarException extends Exception {
/* Méthodes */
public static isUsingExceptions(): bool
public static setUsingExceptions(bool $using_exceptions): void
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private 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 RarException::isUsingExceptions(): bool

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());
?>

Résultat de l'exemple ci-dessus est 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 RarException::setUsingExceptions(bool $using_exceptions): void

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).

Valeurs de retour

Aucune valeur n'est retournée.

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
?>

Résultat de l'exemple ci-dessus est 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::clearError — Efface le message d'erreur, les messages système et/ou zip
    • ZipArchive::close — Ferme l'archive active
    • ZipArchive::count — Compte le nombre de fichiers dans l'archive
    • 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::getArchiveFlag — Retourne la valeur d'un drapeau global de l'archive
    • 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 externes d'une entrée définie par son index
    • ZipArchive::getExternalAttributesName — Récupère les attributs externes 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::getStreamIndex — Récupère un gestionnaire de fichier pour l'entrée définie par son index (lecture seule)
    • ZipArchive::getStreamName — Récupère un gestionnaire de fichier pour l'entrée définie par son nom (lecture seule))
    • ZipArchive::isCompressionMethodSupported — Vérifie si une méthode de compression est supportée par libzip
    • ZipArchive::isEncryptionMethodSupported — Vérifie si une méthode de chiffrement est supportée par libzip
    • ZipArchive::locateName — Retourne l'index d'une entrée de l'archive
    • ZipArchive::open — Ouvre une archive ZIP
    • ZipArchive::registerCancelCallback — Enregistre une fonction de appel permettant d'annuler pendant la clôture d'une archive
    • ZipArchive::registerProgressCallback — Enregistre une fonction de rappel pour permettre des mises à jour pendant la fermeture de l'archive
    • ZipArchive::renameIndex — Renomme une entrée définie par son index
    • ZipArchive::renameName — Renomme une entrée définie par son nom
    • ZipArchive::replaceFile — Remplace un fichier d'une archive ZIP
    • ZipArchive::setArchiveComment — Définit le commentaire d'une archive ZIP
    • ZipArchive::setArchiveFlag — Définit un drapeau global 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 — Définit la méthode de compression d'une entrée définit par son index
    • ZipArchive::setCompressionName — Définit la méthode de compression d'une entrée définit par son nom
    • ZipArchive::setEncryptionIndex — Définit la méthode de chiffrement d'une entrée définit par son index
    • ZipArchive::setEncryptionName — Définit la méthode de chiffrement d'une entrée définit par son nom
    • ZipArchive::setExternalAttributesIndex — Définit les attributs externes d'une entrée définie par son index
    • ZipArchive::setExternalAttributesName — Définit les attributs externes d'une entrée définie par son nom
    • ZipArchive::setMtimeIndex — Définit la date de modification d'une entrée
    • ZipArchive::setMtimeName — Définit le date de modification d'une entée par son nom
    • ZipArchive::setPassword — Définit 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.


Pré-requis

Cette extension requière » libzip. Version 1.1.2 était fournie avec PHP jusqu'à la version 7.3.

La version minimale supporté est 0.11, mais ultérieur est vivement recommandé.

  • Version 1.2 requis pour le support du chiffrement, voir ZipArchive::setEncryptionIndex()
  • Version 1.3 requis pour le support de l'avancement, voir ZipArchive::registerProgressCallback()
  • Version 1.6 requis pour le support d'annulation, voir ZipArchive::registerCancelCallback()


Installation

Systèmes Linux

À partir de PHP 7.4.0, afin d'utiliser ces fonctions, vous devez compiler PHP avec le support zip en utilisant l'option de configuration --with-zip. Auparavant, le support zip devait être activé en utilisant l'option de configuration --enable-zip. À partir de PHP 7.4.0, la libzip empaqueté a été supprimée.

À partir de PHP 7.3.0, compiler contre la libzip empaqueté est déconseillé, mais toujours possible en ajoutant --without-libzip à la configuration.

L'option de configuration --with-libzip=DIR a été ajoutée pour utiliser une installation système de libzip. La version 0.11 de libzip est nécessaire, avec la version 0.11.2 ou supérieure recommandée.

Windows

À partir de PHP 8.2.0, le DLL php_zip.dll doit être actif dans php.ini. Auparavant, cette extension était fournie par défaut

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 : » https://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 existe différents types de constantes, dont les principaux sont les suivants : Les drapeaux globaux (préfixés par AFL_), les options (préfixées par FL_), les erreurs (préfixées par ER_) ou les modes (sans préfixe).

Modes d'ouverture de l'archive
ZipArchive::CREATE (int)
Crée l'archive si elle n'existe pas.
ZipArchive::OVERWRITE (int)
Si l'archivage existe, ignorer son contenu actuel. En d'autres termes, gérer de la même manière qu'une archive vide.
ZipArchive::EXCL (int)
Erreur si l'archive existe déjà.
ZipArchive::RDONLY (int)
Ouvre l'archive en mode lecture seule. Disponible à partir de PHP 7.4.3 et PECL zip 1.17.1, respectivement, si compilé contre libzip = 1.0.0.
ZipArchive::CHECKCONS (int)
Effectue des analyses supplémentaires de cohérence et émet une erreur si elles échouent.
Les drapeaux globaux d'archivage
ZipArchive::AFL_RDONLY (int)
L'archive est en lecture seule, elle ne peut pas être effacée. Disponible à partir de PHP 8.3.0 et PECL zip 1.22.0, respectivement, si construit avec libzip = 1.10.0.
ZipArchive::AFL_IS_TORRENTZIP (int)
L'archive actuelle est torrentzippée. Disponible à partir de PHP 8.3.0 et PECL zip 1.22.0, respectivement, si construit avec libzip = 1.10.0.
ZipArchive::AFL_WANT_TORRENTZIP (int)
Écriture d'une archive au format torrentzip. Disponible à partir de PHP 8.3.0 et PECL zip 1.22.0, respectivement, si construit avec libzip = 1.10.0.
ZipArchive::AFL_CREATE_OR_KEEP_FILE_FOR_EMPTY_ARCHIVE (int)
Ne supprime pas le fichier si l'archive est vide. Disponible à partir de PHP 8.3.0 et PECL zip 1.22.0, respectivement, si construit avec libzip = 1.10.0.
Les options d'archivage
ZipArchive::FL_NOCASE (int)
Ignore la casse sur le nom.
ZipArchive::FL_NODIR (int)
Ignore le composant dossier.
ZipArchive::FL_COMPRESSED (int)
Lit les données compressées.
ZipArchive::FL_UNCHANGED (int)
Utilise les données originales, en ignorant les modifications.
ZipArchive::FL_RECOMPRESS (int)
Force la recompression des données. Disponible à partir de PHP 8.0.0 et PECL zip 1.18.0. Obsolète à partir de PHP 8.3.0 et PECL zip 1.22.1, sera supprimé dans une version future de libzip.
ZipArchive::FL_ENCRYPTED (int)
Lit les données chiffrées (implique FL_COMPRESSED). Disponible à partir de PHP 8.0.0 et PECL zip 1.18.0.
ZipArchive::FL_OVERWRITE (int)
Si un fichier avec ce nom existe, le réécrire (remplacer). Disponible à partir de PHP 8.0.0 et PECL zip 1.18.0.
ZipArchive::FL_LOCAL (int)
Dans l'en-tête local. Disponible à partir de PHP 8.0.0 et PECL zip 1.18.0.
ZipArchive::FL_CENTRAL (int)
Dans le dossier central. Disponible à partir de PHP 8.0.0 et PECL zip 1.18.0.
ZipArchive::FL_ENC_GUESS (int)
Devine l'encodage de la chaîne (par défaut). Disponible à partir de PHP 7.0.8.
ZipArchive::FL_ENC_RAW (int)
Récupère la chaîne non modifiée. Disponible à partir de PHP 7.0.8.
ZipArchive::FL_ENC_STRICT (int)
Suit les spécifications strictement. Disponible à partir de PHP 7.0.8.
ZipArchive::FL_ENC_UTF_8 (int)
La chaîne est encodée UTF-8. Disponible à partir de PHP 7.0.8.
ZipArchive::FL_ENC_CP437 (int)
La chaîne est encodée CP437. Disponible à partir de PHP 7.0.8.
ZipArchive::FL_OPEN_FILE_NOW (int)
Ouvrir le fichier lorsqu'il est ajouté au lieu d'attendre que l'archive soit fermée. Attention à la consommation des descripteurs de fichiers. Disponible à partir de PHP 8.3.0 et PECL zip 1.22.1.
Modes de compression
ZipArchive::CM_DEFAULT (int)
Meilleur compression ou stockage.
ZipArchive::CM_STORE (int)
Stocké (non-compressé).
ZipArchive::CM_SHRINK (int)
Retrait.
ZipArchive::CM_REDUCE_1 (int)
Réduit de facteur 1.
ZipArchive::CM_REDUCE_2 (int)
Réduit de facteur 2.
ZipArchive::CM_REDUCE_3 (int)
Réduit de facteur 3.
ZipArchive::CM_REDUCE_4 (int)
Réduit de facteur 4.
ZipArchive::CM_IMPLODE (int)
Réunit.
ZipArchive::CM_DEFLATE (int)
Compression.
ZipArchive::CM_DEFLATE64 (int)
Compression 64.
ZipArchive::CM_PKWARE_IMPLODE (int)
Réunit PKWARE.
ZipArchive::CM_BZIP2 (int)
Algorithme BZIP2.
ZipArchive::CM_LZMA (int)
LZMA algorithm
ZipArchive::CM_LZMA2 (int)
Algorithme LZMA2. Disponible à partir de PHP 7.4.3 et PECL zip 1.16.0, respectivement, si compilé avec la bibliothèque libzip = 1.6.0.
ZipArchive::CM_ZSTD (int)
Algorithme Zstandard. Disponible à partir de PHP 8.0.0 et PECL zip 1.19.1, respectivement, si compilé avec la bibliothèque libzip = 1.8.0.
ZipArchive::CM_XZ (int)
Algorithme XZ. Disponible à partir de PHP 7.4.3 et PECL zip 1.16.1, respectivement, si compilé avec la bibliothèque libzip = 1.6.0.
ZipArchive::CM_TERSE (int)
ZipArchive::CM_LZ77 (int)
ZipArchive::CM_WAVPACK (int)
ZipArchive::CM_PPMD (int)
Archiver les erreurs
ZipArchive::ER_OK (int)
Aucune erreur.
ZipArchive::ER_MULTIDISK (int)
Archives ZIP multidisques non supportées.
ZipArchive::ER_RENAME (int)
Échec du changement de nom du fichier temporaire.
ZipArchive::ER_CLOSE (int)
Échec de la fermeture de l'archive ZIP.
ZipArchive::ER_SEEK (int)
Erreur de pointeur.
ZipArchive::ER_READ (int)
Erreur de lecture.
ZipArchive::ER_WRITE (int)
Erreur d'écriture.
ZipArchive::ER_CRC (int)
Erreur CRC.
ZipArchive::ER_ZIPCLOSED (int)
Archive ZIP fermée.
ZipArchive::ER_NOENT (int)
Le fichier n'existe pas.
ZipArchive::ER_EXISTS (int)
Le fichier existe déjà.
ZipArchive::ER_OPEN (int)
Impossible d'ouvrir le fichier.
ZipArchive::ER_TMPOPEN (int)
Échec lors de la création du fichier temporaire.
ZipArchive::ER_ZLIB (int)
Erreur Zlib.
ZipArchive::ER_MEMORY (int)
Échec d'allocation mémoire.
ZipArchive::ER_CHANGED (int)
L'entrée a été modifiée.
ZipArchive::ER_COMPNOTSUPP (int)
Méthode de compression non supportée.
ZipArchive::ER_EOF (int)
EOF prématuré.
ZipArchive::ER_INVAL (int)
Argument invalide.
ZipArchive::ER_NOZIP (int)
Ce n'est pas une archive ZIP.
ZipArchive::ER_INTERNAL (int)
erreur interne
ZipArchive::ER_INCONS (int)
Archive ZIP incohérente.
ZipArchive::ER_REMOVE (int)
Impossible d'effacer le fichier.
ZipArchive::ER_DELETED (int)
L'entrée a été supprimée.
ZipArchive::ER_ENCRNOTSUPP (int)
Méthode de chiffrement non supporté. Disponible à partir de PHP 7.4.3 et PECL zip 1.16.1, respectivement.
ZipArchive::ER_RDONLY (int)
Opération non supporté. Disponible à partir de PHP 7.4.3 et PECL zip 1.16.1, respectivement.
ZipArchive::ER_NOPASSWD (int)
Aucun mot de passe fourni. Disponible à partir de PHP 7.4.3 et PECL zip 1.16.1, respectivement.
ZipArchive::ER_WRONGPASSWD (int)
Mauvais mot de passe fourni. Disponible à partir de PHP 7.4.3 et PECL zip 1.16.1, respectivement.
ZipArchive::ER_OPNOTSUPP (int)
Archive en lecture seule. Disponible à partir de PHP 7.4.3 et PECL zip 1.16.1, respectivement si compilé avec la bibliothèque libzip = 1.0.0.
ZipArchive::ER_INUSE (int)
La ressource est toujours en cours d'utilisation. Disponible à partir de PHP 7.4.3 et PECL zip 1.16.1, respectivement si compilé avec la bibliothèque libzip = 1.0.0.
ZipArchive::ER_TELL (int)
Erreur dite. Disponible à partir de PHP 7.4.3 et PECL zip 1.16.1, respectivement si compilé avec la bibliothèque libzip = 1.0.0.
ZipArchive::ER_COMPRESSED_DATA (int)
Données compressées invalides. Disponible à partir de PHP 7.4.3 et PECL zip 1.16.1, respectivement si compilé avec la bibliothèque libzip = 1.6.0.
ZipArchive::ER_CANCELLED (int)
Annulation de l'opération. Disponible à partir de PHP 7.4.3 et PECL zip 1.16.1, respectivement si compilé avec la bibliothèque libzip = 1.6.0.
ZipArchive::ER_DATA_LENGTH (int)
Longueur inattendue des données. Disponible à partir de PHP 8.3.0 et PECL zip 1.22.0, respectivement, si construit avec libzip = 1.10.0.
ZipArchive::ER_NOT_ALLOWED (int)
Non autorisé dans torrentzip. Disponible à partir de PHP 8.3.0 et PECL zip 1.22.0, respectivement, si construit avec libzip = 1.10.0.
Modes de chiffrement
ZipArchive::EM_NONE (int)
Aucun chiffrement. Disponible à partir de PHP 7.2.0 et PECL zip 1.14.0, respectivement.
ZipArchive::EM_TRAD_PKWARE (int)
Chiffrement PKWARE traditionel. Disponible à partir de PHP 8.0.0 et PECL zip 1.19.0, respectivement.
ZipArchive::EM_AES_128 (int)
Chiffrement AES 128. Disponible à partir de PHP 7.2.0 et PECL zip 1.14.0, respectivement, si compilé contre libzip = 1.2.0.
ZipArchive::EM_AES_192 (int)
Chiffrement AES 192. Disponible à partir de PHP 7.2.0 et PECL zip 1.14.0, respectivement, si compilé contre libzip = 1.2.0.
ZipArchive::EM_AES_256 (int)
Chiffrement AES 256. Disponible à partir de PHP 7.2.0 et PECL zip 1.14.0, respectivement, si compilé contre libzip = 1.2.0.
ZipArchive::EM_UNKNOWN (int)
Algorithme de chiffrement inconnue. Disponible à partir de PHP 8.0.0 et PECL zip 1.19.0, respectivement.
Constantes de paramètres de longueur
ZipArchive::LENGTH_TO_END (int)
Utilise la taille du fichier, si le fichier augmente, les données additionnelles sont ignorées ; si le fichier diminue, une erreur est générée (ZipArchive::ER_DATA_LENGTH). Disponible à partir de PHP 8.3.0 et PECL zip 1.22.2.
ZipArchive::LENGTH_UNCHECKED (int)
Utilise toutes les données disponibles. Disponible à partir de PHP 8.3.0 et PECL zip 1.22.2, si compilé avec libzip = 1.10.1.
Autres constantes
ZipArchive::LIBZIP_VERSION (string)
Version de la bibliothèque Zip. Disponible à partir de PHP 7.4.3 et PECL zip 1.16.0.
Système d'exploitation, constantes pour les attributs étendus
ZipArchive::OPSYS_DOS (int)
ZipArchive::OPSYS_AMIGA (int)
ZipArchive::OPSYS_OPENVMS (int)
ZipArchive::OPSYS_UNIX (int)
ZipArchive::OPSYS_VM_CMS (int)
ZipArchive::OPSYS_ATARI_ST (int)
ZipArchive::OPSYS_OS_2 (int)
ZipArchive::OPSYS_MACINTOSH (int)
ZipArchive::OPSYS_Z_SYSTEM (int)
ZipArchive::OPSYS_CPM (int)
ZipArchive::OPSYS_WINDOWS_NTFS (int)
ZipArchive::OPSYS_MVS (int)
ZipArchive::OPSYS_VSE (int)
ZipArchive::OPSYS_ACORN_RISC (int)
ZipArchive::OPSYS_VFAT (int)
ZipArchive::OPSYS_ALTERNATE_MVS (int)
ZipArchive::OPSYS_BEOS (int)
ZipArchive::OPSYS_TANDEM (int)
ZipArchive::OPSYS_OS_400 (int)
ZipArchive::OPSYS_OS_X (int)
ZipArchive::OPSYS_DEFAULT (int)
À partir de 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, PHP 8, PECL zip >= 1.1.0)

Introduction

Un fichier d'archive, compressé avec Zip.

Synopsis de la classe

class ZipArchive implements Countable {
/* Constantes */
public const int CREATE;
public const int EXCL;
public const int CHECKCONS;
public const int OVERWRITE;
public const int RDONLY;
public const int FL_NOCASE;
public const int FL_NODIR;
public const int FL_COMPRESSED;
public const int FL_UNCHANGED;
public const int FL_RECOMPRESS;
public const int FL_ENCRYPTED;
public const int FL_OVERWRITE;
public const int FL_LOCAL;
public const int FL_CENTRAL;
public const int FL_ENC_GUESS;
public const int FL_ENC_RAW;
public const int FL_ENC_STRICT;
public const int FL_ENC_UTF_8;
public const int FL_ENC_CP437;
public const int FL_OPEN_FILE_NOW;
public const int CM_DEFAULT;
public const int CM_STORE;
public const int CM_SHRINK;
public const int CM_REDUCE_1;
public const int CM_REDUCE_2;
public const int CM_REDUCE_3;
public const int CM_REDUCE_4;
public const int CM_IMPLODE;
public const int CM_DEFLATE;
public const int CM_DEFLATE64;
public const int CM_PKWARE_IMPLODE;
public const int CM_BZIP2;
public const int CM_LZMA;
public const int CM_LZMA2;
public const int CM_ZSTD;
public const int CM_XZ;
public const int CM_TERSE;
public const int CM_LZ77;
public const int CM_WAVPACK;
public const int CM_PPMD;
public const int ER_OK;
public const int ER_MULTIDISK;
public const int ER_RENAME;
public const int ER_CLOSE;
public const int ER_SEEK;
public const int ER_READ;
public const int ER_WRITE;
public const int ER_CRC;
public const int ER_ZIPCLOSED;
public const int ER_NOENT;
public const int ER_EXISTS;
public const int ER_OPEN;
public const int ER_TMPOPEN;
public const int ER_ZLIB;
public const int ER_MEMORY;
public const int ER_CHANGED;
public const int ER_COMPNOTSUPP;
public const int ER_EOF;
public const int ER_INVAL;
public const int ER_NOZIP;
public const int ER_INTERNAL;
public const int ER_INCONS;
public const int ER_REMOVE;
public const int ER_DELETED;
public const int ER_ENCRNOTSUPP;
public const int ER_RDONLY;
public const int ER_NOPASSWD;
public const int ER_WRONGPASSWD;
public const int ER_OPNOTSUPP;
public const int ER_INUSE;
public const int ER_TELL;
public const int ER_COMPRESSED_DATA;
public const int ER_CANCELLED;
public const int ER_DATA_LENGTH;
public const int ER_NOT_ALLOWED;
public const int AFL_RDONLY;
public const int AFL_IS_TORRENTZIP;
public const int AFL_WANT_TORRENTZIP;
public const int AFL_CREATE_OR_KEEP_FILE_FOR_EMPTY_ARCHIVE;
public const int OPSYS_DOS;
public const int OPSYS_AMIGA;
public const int OPSYS_OPENVMS;
public const int OPSYS_UNIX;
public const int OPSYS_VM_CMS;
public const int OPSYS_ATARI_ST;
public const int OPSYS_OS_2;
public const int OPSYS_MACINTOSH;
public const int OPSYS_Z_SYSTEM;
public const int OPSYS_CPM;
public const int OPSYS_WINDOWS_NTFS;
public const int OPSYS_MVS;
public const int OPSYS_VSE;
public const int OPSYS_ACORN_RISC;
public const int OPSYS_VFAT;
public const int OPSYS_ALTERNATE_MVS;
public const int OPSYS_BEOS;
public const int OPSYS_TANDEM;
public const int OPSYS_OS_400;
public const int OPSYS_OS_X;
public const int OPSYS_DEFAULT;
public const int EM_NONE;
public const int EM_TRAD_PKWARE;
public const int EM_AES_128;
public const int EM_AES_192;
public const int EM_AES_256;
public const int EM_UNKNOWN;
public const string LIBZIP_VERSION;
public const int LENGTH_TO_END;
public const int LENGTH_UNCHECKED;
/* Propriétés */
public readonly int $lastId;
public readonly int $status;
public readonly int $statusSys;
public readonly int $numFiles;
public readonly string $filename;
public readonly string $comment;
/* Méthodes */
public addEmptyDir(string $dirname, int $flags = 0): bool
public addFile(
string $filepath,
string $entryname = "",
int $start = 0,
int $length = ZipArchive::LENGTH_TO_END,
int $flags = ZipArchive::FL_OVERWRITE
): bool
public addFromString(string $name, string $content, int $flags = ZipArchive::FL_OVERWRITE): bool
public addGlob(string $pattern, int $flags = 0, array $options = []): array|false
public addPattern(string $pattern, string $path = ".", array $options = []): array|false
public clearError(): void
public close(): bool
public count(): int
public deleteIndex(int $index): bool
public deleteName(string $name): bool
public extractTo(string $pathto, array|string|null $files = null): bool
public getArchiveComment(int $flags = 0): string|false
public getArchiveFlag(int $flag, int $flags = 0): int
public getCommentIndex(int $index, int $flags = 0): string|false
public getCommentName(string $name, int $flags = 0): string|false
public getExternalAttributesIndex(
int $index,
int &$opsys,
int &$attr,
int $flags = ?
): bool
public getExternalAttributesName(
string $name,
int &$opsys,
int &$attr,
int $flags = 0
): bool
public getFromIndex(int $index, int $len = 0, int $flags = 0): string|false
public getFromName(string $name, int $len = 0, int $flags = 0): string|false
public getNameIndex(int $index, int $flags = 0): string|false
public getStatusString(): string
public getStream(string $name): resource|false
public getStreamIndex(int $index, int $flags = 0): resource|false
public getStreamName(string $name, int $flags = 0): resource|false
public static isCompressionMethodSupported(int $method, bool $enc = true): bool
public static isEncryptionMethodSupported(int $method, bool $enc = true): bool
public locateName(string $name, int $flags = 0): int|false
public open(string $filename, int $flags = 0): bool|int
public registerCancelCallback(callable $callback): bool
public registerProgressCallback(float $rate, callable $callback): bool
public renameIndex(int $index, string $new_name): bool
public renameName(string $name, string $new_name): bool
public replaceFile(
string $filepath,
int $index,
int $start = 0,
int $length = ZipArchive::LENGTH_TO_END,
int $flags = 0
): bool
public setArchiveComment(string $comment): bool
public setArchiveFlag(int $flag, int $value): bool
public setCommentIndex(int $index, string $comment): bool
public setCommentName(string $name, string $comment): bool
public setCompressionIndex(int $index, int $method, int $compflags = 0): bool
public setCompressionName(string $name, int $method, int $compflags = 0): bool
public setEncryptionIndex(int $index, int $method, ?string $password = null): bool
public setEncryptionName(string $name, int $method, ?string $password = null): bool
public setExternalAttributesIndex(
int $index,
int $opsys,
int $attr,
int $flags = 0
): bool
public setExternalAttributesName(
string $name,
int $opsys,
int $attr,
int $flags = 0
): bool
public setMtimeIndex(int $index, int $timestamp, int $flags = 0): bool
public setMtimeName(string $name, int $timestamp, int $flags = 0): bool
public setPassword(string $password): bool
public statIndex(int $index, int $flags = 0): array|false
public statName(string $name, int $flags = 0): array|false
public unchangeAll(): bool
public unchangeArchive(): bool
public unchangeIndex(int $index): bool
public unchangeName(string $name): bool
}

Propriétés

lastId

Valeur de l'index de la dernière entrée (fichier ou dossier) Disponible à partir de PHP 8.0.0 et PECL zip 1.18.0.

status

Le statut de l'archive Zip. Disponible pour les archives fermées, à partir de PHP 8.0.0 et PECL zip 1.18.0.

statusSys

Le statut système de l'archive Zip. Disponible pour les archives fermées, à partir de PHP 8.0.0 et PECL zip 1.18.0.

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::clearError — Efface le message d'erreur, les messages système et/ou zip
  • ZipArchive::close — Ferme l'archive active
  • ZipArchive::count — Compte le nombre de fichiers dans l'archive
  • 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::getArchiveFlag — Retourne la valeur d'un drapeau global de l'archive
  • 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 externes d'une entrée définie par son index
  • ZipArchive::getExternalAttributesName — Récupère les attributs externes 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::getStreamIndex — Récupère un gestionnaire de fichier pour l'entrée définie par son index (lecture seule)
  • ZipArchive::getStreamName — Récupère un gestionnaire de fichier pour l'entrée définie par son nom (lecture seule))
  • ZipArchive::isCompressionMethodSupported — Vérifie si une méthode de compression est supportée par libzip
  • ZipArchive::isEncryptionMethodSupported — Vérifie si une méthode de chiffrement est supportée par libzip
  • ZipArchive::locateName — Retourne l'index d'une entrée de l'archive
  • ZipArchive::open — Ouvre une archive ZIP
  • ZipArchive::registerCancelCallback — Enregistre une fonction de appel permettant d'annuler pendant la clôture d'une archive
  • ZipArchive::registerProgressCallback — Enregistre une fonction de rappel pour permettre des mises à jour pendant la fermeture de l'archive
  • ZipArchive::renameIndex — Renomme une entrée définie par son index
  • ZipArchive::renameName — Renomme une entrée définie par son nom
  • ZipArchive::replaceFile — Remplace un fichier d'une archive ZIP
  • ZipArchive::setArchiveComment — Définit le commentaire d'une archive ZIP
  • ZipArchive::setArchiveFlag — Définit un drapeau global 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 — Définit la méthode de compression d'une entrée définit par son index
  • ZipArchive::setCompressionName — Définit la méthode de compression d'une entrée définit par son nom
  • ZipArchive::setEncryptionIndex — Définit la méthode de chiffrement d'une entrée définit par son index
  • ZipArchive::setEncryptionName — Définit la méthode de chiffrement d'une entrée définit par son nom
  • ZipArchive::setExternalAttributesIndex — Définit les attributs externes d'une entrée définie par son index
  • ZipArchive::setExternalAttributesName — Définit les attributs externes d'une entrée définie par son nom
  • ZipArchive::setMtimeIndex — Définit la date de modification d'une entrée
  • ZipArchive::setMtimeName — Définit le date de modification d'une entée par son nom
  • ZipArchive::setPassword — Définit 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, PHP 8, PECL zip >= 1.8.0)

ZipArchive::addEmptyDir — Ajoute un nouveau dossier à une archive Zip

Description

public ZipArchive::addEmptyDir(string $dirname, int $flags = 0): bool

Ajoute un dossier vide dans l'archive Zip.

Liste de paramètres

dirname

Le dossier à ajouter.

flags

Masque de bit consistant de ZipArchive::FL_ENC_GUESS, ZipArchive::FL_ENC_UTF_8, ZipArchive::FL_ENC_CP437. Le comportement de ces constantes est décrites sur la page des constantes ZIP.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 / 1.18.0 | flags a été ajouté.

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, PHP 8, PECL zip >= 1.1.0)

ZipArchive::addFile — Ajoute un fichier à l'archive ZIP depuis le chemin fourni

Description

public ZipArchive::addFile(
string $filepath,
string $entryname = "",
int $start = 0,
int $length = ZipArchive::LENGTH_TO_END,
int $flags = ZipArchive::FL_OVERWRITE
): bool

Ajoute un fichier à une archive ZIP depuis le chemin fourni.

Note: Pour une portabilité maximale, il est recommandé de toujours utiliser des barres obliques (/) comme séparateur de dossier dans les noms de fichiers zip.

Liste de paramètres

filepath

Le chemin vers le fichier à ajouter

entryname

Si fourni, ce sera le nom local dans l'archive ZIP qui écrasera le contenu du paramètre filepath.

start

Pour copie partielle, position de départ.

length

Pour copie partielle, longeur à copier, Si ZipArchive::LENGTH_TO_END (0) est spécifié, la taille du fichier est utilisée. Si ZipArchive::LENGTH_UNCHECKED est spécifié, la totalité du fichier est utilisée (à partir de start).

flags

Masque de bit consistant de
ZipArchive::FL_OVERWRITE,
ZipArchive::FL_ENC_GUESS,
ZipArchive::FL_ENC_UTF_8,
ZipArchive::FL_ENC_CP437,
ZipArchive::FL_OPEN_FILE_NOW.
Le comportement de ces constantes est décrites sur la page des
constantes ZIP.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 / 1.18.0 | flags a été ajouté.
8.3.0 / 1.22.1 | ZipArchive::FL_OPEN_FILE_NOW a été ajouté.
8.3.0 / 1.22.2 | ZipArchive::LENGTH_TO_END et ZipArchive::LENGTH_UNCHECKED ont été ajoutés.

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é.

Voir aussi

  • ZipArchive::replaceFile() - Remplace un fichier d'une archive ZIP


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, PHP 8, PECL zip >= 1.1.0)

ZipArchive::addFromString — Ajoute un fichier à une archive ZIP en utilisant son contenu

Description

public ZipArchive::addFromString(string $name, string $content, int $flags = ZipArchive::FL_OVERWRITE): bool

Ajoute un fichier à une archive ZIP en utilisant son contenu.

Note: Pour une portabilité maximale, il est recommandé de toujours utiliser des barres obliques (/) comme séparateur de dossier dans les noms de fichiers zip.

Liste de paramètres

name

Le nom de l'entrée à créer

content

Le contenu à utiliser pour créer l'entrée. Ceci est utilisé dans un mode binaire sécurisé.

flags

Masque de bit consistant de ZipArchive::FL_OVERWRITE, ZipArchive::FL_ENC_GUESS, ZipArchive::FL_ENC_UTF_8, ZipArchive::FL_ENC_CP437. Le comportement de ces constantes est décrites sur la page des constantes ZIP.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 / 1.18.0 | flags a été ajouté.

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, PHP 8, PECL zip >= 1.9.0)

ZipArchive::addGlob — Ajoute des fichiers d'un dossier en utilisant un masque glob

Description

public ZipArchive::addGlob(string $pattern, int $flags = 0, array $options = []): array|false

Ajoute des fichiers d'un dossier qui correspondent à un masque glob pattern.

Note: Pour une portabilité maximale, il est recommandé de toujours utiliser des barres obliques (/) comme séparateur de dossier dans les noms de fichiers zip.

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 traduction 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.

  • "flags"

    Masque de bit consistant de
ZipArchive::FL_OVERWRITE,
ZipArchive::FL_ENC_GUESS,
ZipArchive::FL_ENC_UTF_8,
ZipArchive::FL_ENC_CP437,
ZipArchive::FL_OPEN_FILE_NOW.
Le comportement de ces constantes est décrites sur la page des
constantes ZIP.

  • "comp_method"

    Méthode de compression, l'une des constantes ZipArchive::CM_*, voir la pages des constantes ZIP.

  • "comp_flags"

    Niveau de compression.

  • "enc_method"

    Méthode de chiffrement, l'une des constantes ZipArchive::EM_*, voir la pages des constantes ZIP.

  • "enc_password"

    Mot de passe utilisé pour le chiffrement.

Valeurs de retour

Un tableau des fichiers ajoutée en cas de succès ou false si une erreur survient

Historique

Version | Description
8.0.0 / 1.18.0 | flags a été ajouté.
8.0.0 / 1.18.1 | "comp_method", "comp_flags", "enc_method" et "enc_password" dans options ont été ajouté.
8.3.0 / 1.22.1 | ZipArchive::FL_OPEN_FILE_NOW a été ajouté.

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::CREATE | ZipArchive::OVERWRITE);
if ($ret !== TRUE) {
printf("A échoué avec le code d'erreur %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::clearError »
  • 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, PHP 8, PECL zip >= 1.9.0)

ZipArchive::addPattern — Ajoute des fichiers d'un dossier en utilisant une expression régulière PCRE

Description

public ZipArchive::addPattern(string $pattern, string $path = ".", array $options = []): array|false

Ajoute des fichiers depuis un dossier qui correspondent à l'expression régulière pattern. L'opération n'est pas récursive. L'expression régulière sera uniquement exécutée sur le nom des fichiers.

Liste de paramètres

pattern

Une expression régulière PCRE.

path

Le dossier à analyser. Par défaut, le dossier courant.

options

Un tableau associatif d'options acceptés par la méthode ZipArchive::addGlob().

Valeurs de retour

Un tableau des fichiers ajoutée 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::CREATE | ZipArchive::OVERWRITE);
if ($ret !== TRUE) {
printf("A échoué avec le code d'erreur %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


Efface le message d'erreur, les messages système et/ou zip

  • « ZipArchive::addPattern
  • ZipArchive::close »
  • PHP Manual
  • ZipArchive
  • Efface le message d'erreur, les messages système et/ou zip

ZipArchive::clearError

(PHP 8 >= 8.2.0, PECL zip >= 1.20.0)

ZipArchive::clearError — Efface le message d'erreur, les messages système et/ou zip

Description

public ZipArchive::clearError(): void

Efface le message d'erreur, les messages système et/ou zip.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • ZipArchive::getStatusString() - Retourne le message du statut de l'erreur, du système ou de zip


Ferme l'archive active

  • « ZipArchive::clearError
  • ZipArchive::count »
  • PHP Manual
  • ZipArchive
  • Ferme l'archive active

ZipArchive::close

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::close — Ferme l'archive active

Description

public ZipArchive::close(): bool

Ferme une archive ouverte ou nouvellement créée et sauvegarde les modifications. Cette méthode est appelée automatiquement à la fin du script.

Si l'archive ne contient aucun fichier, elle est complétement supprimée par défaut (pas d'enregistrement d'une archive vide) en fonction de la valeur de la constante ZipArchive::AFL_CREATE_OR_KEEP_FILE_FOR_EMPTY_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.

Voir aussi

  • ZipArchive::setArchiveFlag() - Définit un drapeau global d'une archive ZIP


Compte le nombre de fichiers dans l'archive

  • « ZipArchive::close
  • ZipArchive::deleteIndex »
  • PHP Manual
  • ZipArchive
  • Compte le nombre de fichiers dans l'archive

ZipArchive::count

(PHP 7 >= 7.2.0, PHP 8, PECL zip >= 1.15.0)

ZipArchive::count — Compte le nombre de fichiers dans l'archive

Description

public ZipArchive::count(): int

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre de fichiers dans l'archive.


Efface une entrée de l'archive en utilisant son index

  • « ZipArchive::count
  • 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, PHP 8, PECL zip >= 1.5.0)

ZipArchive::deleteIndex — Efface une entrée de l'archive en utilisant son index

Description

public ZipArchive::deleteIndex(int $index): bool

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, PHP 8, PECL zip >= 1.5.0)

ZipArchive::deleteName — Efface une entrée dans l'archive en utilisant son nom

Description

public ZipArchive::deleteName(string $name): bool

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, PHP 8, PECL zip >= 1.1.0)

ZipArchive::extractTo — Extrait le contenu de l'archive

Description

public ZipArchive::extractTo(string $pathto, array|string|null $files = null): bool

Extrait l'archive complète ou les fichiers fournis vers un chemin spécifié.

Avertissement

Les permissions par défaut pour les fichiers et dossiers extraits donnent le plus large accès possible. Ceci peut être restraint en définissant le umask courant, qui peut être changé en utilisant umask().

Pour des raisons de sécurité, les permissions d'origine ne sont pas restaurées. Pour un exemple de comment les restaurer, consultez l'échantillon de code sur la page d'exemple de la méthode ZipArchive::getExternalAttributesIndex().

Liste de paramètres

pathto

Endroit où l'on doit extraire les fichiers

files

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';
}
?>

Notes

Note:

Les systèmes de fichiers NTFS Windows ne supportent pas certain caractères dans le noms de fichier, à savoir <|>*?":. Les noms de fichiers avec un point trainant ne sont également pas supporté. Contrairement à certains outils d'extraction, cette méthode ne remplace pas ces caractères avec un tiret bas, mais échoue à extraire de tel fichiers.


Retourne le commentaire de l'archive ZIP

  • « ZipArchive::extractTo
  • ZipArchive::getArchiveFlag »
  • PHP Manual
  • ZipArchive
  • Retourne le commentaire de l'archive ZIP

ZipArchive::getArchiveComment

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::getArchiveComment — Retourne le commentaire de l'archive ZIP

Description

public ZipArchive::getArchiveComment(int $flags = 0): string|false

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 la valeur d'un drapeau global de l'archive

  • « ZipArchive::getArchiveComment
  • ZipArchive::getCommentIndex »
  • PHP Manual
  • ZipArchive
  • Retourne la valeur d'un drapeau global de l'archive

ZipArchive::getArchiveFlag

(PHP >= 8.3.0, PECL zip >= 1.22.0)

ZipArchive::getArchiveFlag — Retourne la valeur d'un drapeau global de l'archive

Description

public ZipArchive::getArchiveFlag(int $flag, int $flags = 0): int

Retourne la valeur d'un drapeau global de l'archive.

Liste de paramètres

flag

Le drapeau global à récupérer, parmi les constantes AFL_*:

  • ZipArchive::AFL_RDONLY

  • ZipArchive::AFL_IS_TORRENTZIP

  • ZipArchive::AFL_WANT_TORRENTZIP

  • ZipArchive::AFL_CREATE_OR_KEEP_FILE_FOR_EMPTY_ARCHIVE

flags

Si flags est défini comme ZipArchive::FL_UNCHANGED, le drapeau original est inchangé et retourné.

Valeurs de retour

Retourne 1 si le drapeau est défini pour l'archive, 0 si non, et -1 si une erreur s'est produite.

Exemples

Exemple #1 Teste si l'archive est au format torrentzip

<?php

$zip = new ZipArchive;
$res = $zip->open('test.zip');

if ($res === TRUE) {
var_dump($zip->getArchiveFlag(ZipArchive::AFL_IS_TORRENTZIP));
} else {
echo 'Failed, code: ' . $res;
}
?>

Voir aussi

  • ZipArchive::setArchiveFlag() - Définit un drapeau global d'une archive ZIP


Retourne le commentaire d'une entrée

  • « ZipArchive::getArchiveFlag
  • ZipArchive::getCommentName »
  • PHP Manual
  • ZipArchive
  • Retourne le commentaire d'une entrée

ZipArchive::getCommentIndex

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.4.0)

ZipArchive::getCommentIndex — Retourne le commentaire d'une entrée

Description

public ZipArchive::getCommentIndex(int $index, int $flags = 0): string|false

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, PHP 8, PECL zip >= 1.4.0)

ZipArchive::getCommentName — Retourne le commentaire d'une entrée en utilisant le nom de l'entrée

Description

public ZipArchive::getCommentName(string $name, int $flags = 0): string|false

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 externes d'une entrée définie par son index

  • « ZipArchive::getCommentName
  • ZipArchive::getExternalAttributesName »
  • PHP Manual
  • ZipArchive
  • Récupère les attributs externes d'une entrée définie par son index

ZipArchive::getExternalAttributesIndex

(PHP 5 >= 5.6.0, PHP 7, PHP 8, PECL zip >= 1.12.4)

ZipArchive::getExternalAttributesIndex — Récupère les attributs externes d'une entrée définie par son index

Description

public ZipArchive::getExternalAttributesIndex(
int $index,
int &$opsys,
int &$attr,
int $flags = ?
): bool

Récupére les attributs externes 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 externes, la valeur dépend du système d'exploitation.

flags

Si ce drapeau est positionné à ZipArchive::FL_UNCHANGED, les attributs originaux inchangé 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 définit les droits Unix à partir des attributs externes.

Exemple #1 Extrait toutes les entrées avec 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 externes d'une entrée définie par son nom

  • « ZipArchive::getExternalAttributesIndex
  • ZipArchive::getFromIndex »
  • PHP Manual
  • ZipArchive
  • Récupère les attributs externes d'une entrée définie par son nom

ZipArchive::getExternalAttributesName

(PHP 5 >= 5.6.0, PHP 7, PHP 8, PECL zip >= 1.12.4)

ZipArchive::getExternalAttributesName — Récupère les attributs externes d'une entrée définie par son nom

Description

public ZipArchive::getExternalAttributesName(
string $name,
int &$opsys,
int &$attr,
int $flags = 0
): bool

Récupère les attributs externes 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 externes, la valeur dépend du système d'exploitation.

flags

Si ce drapeau est positionné à ZipArchive::FL_UNCHANGED, les attributs originaux inchangé 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

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::getFromIndex — Retourne le contenu d'une entrée en utilisant son index

Description

public ZipArchive::getFromIndex(int $index, int $len = 0, int $flags = 0): string|false

Retourne le contenu d'une entrée en utilisant son index.

Liste de paramètres

index

Index de l'entrée

len

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, PHP 8, PECL zip >= 1.1.0)

ZipArchive::getFromName — Retourne le contenu de l'entrée en utilisant son nom

Description

public ZipArchive::getFromName(string $name, int $len = 0, int $flags = 0): string|false

Retourne le contenu de l'entrée en utilisant son nom.

Liste de paramètres

name

Nom de l'entrée

len

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, PHP 8, PECL zip >= 1.5.0)

ZipArchive::getNameIndex — Retourne le nom d'une entrée en utilisant son index

Description

public ZipArchive::getNameIndex(int $index, int $flags = 0): string|false

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, PHP 8)

ZipArchive::getStatusString — Retourne le message du statut de l'erreur, du système ou de zip

Description

public ZipArchive::getStatusString(): string

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.

Historique

Version | Description
8.0.0 / 1.18.0 | Cette méthode ne retourne plus false en cas d'échec.
8.0.0 / 1.18.0 | Cette méthode peut être appelé sur une archive fermée.


Récupère un gestionnaire de fichier pour l'entrée définie par son nom (lecture seule)

  • « ZipArchive::getStatusString
  • ZipArchive::getStreamIndex »
  • 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, PHP 8, 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

public ZipArchive::getStream(string $name): resource|false

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');
?>

Voir aussi

  • ZipArchive::getStreamIndex() - Récupère un gestionnaire de fichier pour l'entrée définie par son index (lecture seule)
  • ZipArchive::getStreamName() - Récupère un gestionnaire de fichier pour l'entrée définie par son nom (lecture seule))
  • Flux de compression


Récupère un gestionnaire de fichier pour l'entrée définie par son index (lecture seule)

  • « ZipArchive::getStream
  • ZipArchive::getStreamName »
  • PHP Manual
  • ZipArchive
  • Récupère un gestionnaire de fichier pour l'entrée définie par son index (lecture seule)

ZipArchive::getStreamIndex

(PHP 8 >= 8.2.0, PECL zip >= 1.20.0)

ZipArchive::getStreamIndex — Récupère un gestionnaire de fichier pour l'entrée définie par son index (lecture seule)

Description

public ZipArchive::getStreamIndex(int $index, int $flags = 0): resource|false

Récupère un gestionnaire de fichier pour l'entrée définie par son index. Actuellement, cette fonction ne supporte que les opérations de lecture.

Liste de paramètres

index

L'index de l'entrée à utiliser.

flags

Si flags est défini sur ZipArchive::FL_UNCHANGED, le flux original est renvoyé.

Valeurs de retour

Retourne un pointeur de fichier (ressource) en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 Obtenir le contenu de l'entrée avec fread() et le stocker

<?php
$contents = '';
$z = new ZipArchive();
if ($z->open('test.zip')) {
$fp = $z->getStreamIndex(1, ZipArchive::FL_UNCHANGED);
if(!$fp) die($z->getStatusString());

echo stream_get_contents($fp);

fclose($fp);
}
?>

Voir aussi

  • ZipArchive::getStreamName() - Récupère un gestionnaire de fichier pour l'entrée définie par son nom (lecture seule))


Récupère un gestionnaire de fichier pour l'entrée définie par son nom (lecture seule))

  • « ZipArchive::getStreamIndex
  • ZipArchive::isCompressionMethodSupported »
  • PHP Manual
  • ZipArchive
  • Récupère un gestionnaire de fichier pour l'entrée définie par son nom (lecture seule))

ZipArchive::getStreamName

(PHP 8 >= 8.2.0, PECL zip >= 1.20.0)

ZipArchive::getStreamName — Récupère un gestionnaire de fichier pour l'entrée définie par son nom (lecture seule))

Description

public ZipArchive::getStreamName(string $name, int $flags = 0): resource|false

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.

flags

Si flags est défini sur ZipArchive::FL_UNCHANGED, le flux original est renvoyé.

Valeurs de retour

Retourne un pointeur de fichier (ressource) en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 Obtenir le contenu de l'entrée avec fread() et le stocker

<?php
$contents = '';
$z = new ZipArchive();
if ($z->open('test.zip')) {
$fp = $z->getStreamName('test', ZipArchive::FL_UNCHANGED);
if(!$fp) die($z->getStatusString());

echo stream_get_contents($fp);

fclose($fp);
}
?>

Voir aussi

  • ZipArchive::getStreamIndex() - Récupère un gestionnaire de fichier pour l'entrée définie par son index (lecture seule)


Vérifie si une méthode de compression est supportée par libzip

  • « ZipArchive::getStreamName
  • ZipArchive::isEncryptionMethodSupported »
  • PHP Manual
  • ZipArchive
  • Vérifie si une méthode de compression est supportée par libzip

ZipArchive::isCompressionMethodSupported

(PHP >= 8.0.0, PECL zip >= 1.19.0)

ZipArchive::isCompressionMethodSupported — Vérifie si une méthode de compression est supportée par libzip

Description

public static ZipArchive::isCompressionMethodSupported(int $method, bool $enc = true): bool

Vérifie si une méthode de compression est supportée par libzip.

Liste de paramètres

method

La méthode de compression, une des constantes ZipArchive::CM_*.

enc

Si true, vérifie la compression, sinon, vérifie la décompression.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Notes

Note:

Cette fonction est uniquement disponible si la compilation a été réalisée avec = 1.7.0.

Voir aussi

  • ZipArchive::setCompressionIndex() - Définit la méthode de compression d'une entrée définit par son index
  • ZipArchive::setCompressionName() - Définit la méthode de compression d'une entrée définit par son nom


Vérifie si une méthode de chiffrement est supportée par libzip

  • « ZipArchive::isCompressionMethodSupported
  • ZipArchive::locateName »
  • PHP Manual
  • ZipArchive
  • Vérifie si une méthode de chiffrement est supportée par libzip

ZipArchive::isEncryptionMethodSupported

(PHP >= 8.0.0, PECL zip >= 1.19.0)

ZipArchive::isEncryptionMethodSupported — Vérifie si une méthode de chiffrement est supportée par libzip

Description

public static ZipArchive::isEncryptionMethodSupported(int $method, bool $enc = true): bool

Vérifie si une méthode de chiffrement est supportée par libzip.

Liste de paramètres

method

La méthode de chiffrement, une des constantes ZipArchive::EM_*.

enc

Si true, vérifie le chiffrement, sinon, vérifie le déchiffrement.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Notes

Note:

Cette fonction est uniquement disponible si l'extension a été compilée avec libzip = 1.7.0.

Voir aussi

  • ZipArchive::setEncryptionIndex() - Définit la méthode de chiffrement d'une entrée définit par son index
  • ZipArchive::setEncryptionName() - Définit la méthode de chiffrement d'une entrée définit par son nom


Retourne l'index d'une entrée de l'archive

  • « ZipArchive::isEncryptionMethodSupported
  • ZipArchive::open »
  • PHP Manual
  • ZipArchive
  • Retourne l'index d'une entrée de l'archive

ZipArchive::locateName

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.5.0)

ZipArchive::locateName — Retourne l'index d'une entrée de l'archive

Description

public ZipArchive::locateName(string $name, int $flags = 0): int|false

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 "failed to write zip\n";
}
$zip->close();

if ($zip->open($file) !== TRUE) {
exit('failed');
}

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::registerCancelCallback »
  • PHP Manual
  • ZipArchive
  • Ouvre une archive ZIP

ZipArchive::open

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::open — Ouvre une archive ZIP

Description

public ZipArchive::open(string $filename, int $flags = 0): bool|int

Ouvre une archive nouvelle ou pré-existente ZIP pour lecture, écriture et modification.

À partir de libzip 1.6.0, un fichier vide n'est plus une archive valide.

Liste de paramètres

filename

Le nom du fichier ZIP à ouvrir.

flags

Le mode à utiliser pour ouvrir l'archive.

  • ZipArchive::OVERWRITE

  • ZipArchive::CREATE

  • ZipArchive::RDONLY

  • ZipArchive::EXCL

  • ZipArchive::CHECKCONS

Valeurs de retour

Retourne true en cas de succès ou un des code d'erreur suivant :

ZipArchive::ER_EXISTS
Le fichier existe déjà.
ZipArchive::ER_INCONS
L'archive ZIP est inconsistante.
ZipArchive::ER_INVAL
Argument invalide.
ZipArchive::ER_MEMORY
Échec de malloc.
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';
}
?>

Exemple #3 Créer une archive temporaire

<?php
$name = tempnam(sys_get_temp_dir(), "FOO");
$zip = new ZipArchive;
$res = $zip->open($name, ZipArchive::OVERWRITE); /* truncate as empty file is not valid */
if ($res === TRUE) {
$zip->addFile('data.txt', 'entryname.txt');
$zip->close();
echo 'ok';
} else {
echo 'failed';
}
?>


Enregistre une fonction de appel permettant d'annuler pendant la clôture d'une archive

  • « ZipArchive::open
  • ZipArchive::registerProgressCallback »
  • PHP Manual
  • ZipArchive
  • Enregistre une fonction de appel permettant d'annuler pendant la clôture d'une archive

ZipArchive::registerCancelCallback

(PHP >= 8.0.0, PECL zip >= 1.17.0)

ZipArchive::registerCancelCallback — Enregistre une fonction de appel permettant d'annuler pendant la clôture d'une archive

Description

public ZipArchive::registerCancelCallback(callable $callback): bool

Enregistre une fonction de rappel callback permettant l'annulation pendant la clôture d'une archive.

Liste de paramètres

callback

Si la fonction retourne 0, l'opération continue, sinon, elle sera annulée.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Cet exemple crée un fichier ZIP php.zip et annule l'opération sous certaines conditions.

Exemple #1 Archivage d'un fichier

<?php
$zip = new ZipArchive();
if ($zip->open('php.zip', ZipArchive::CREATE | ZipArchive::OVERWRITE)) {
$zip->addFile(PHP_BINARY, 'php');
$zip->registerCancelCallback(function () {
return ($someruncondition ? -1 : 0);
});
$zip->close();
}

Notes

Note:

Cette fonction est uniquement disponible si l'extension a été compilée avec libzip = 1.6.0.

Voir aussi

  • ZipArchive::registerProgressCallback() - Enregistre une fonction de rappel pour permettre des mises à jour pendant la fermeture de l'archive


Enregistre une fonction de rappel pour permettre des mises à jour pendant la fermeture de l'archive

  • « ZipArchive::registerCancelCallback
  • ZipArchive::renameIndex »
  • PHP Manual
  • ZipArchive
  • Enregistre une fonction de rappel pour permettre des mises à jour pendant la fermeture de l'archive

ZipArchive::registerProgressCallback

(PHP >= 8.0.0, PECL zip >= 1.17.0)

ZipArchive::registerProgressCallback — Enregistre une fonction de rappel pour permettre des mises à jour pendant la fermeture de l'archive

Description

public ZipArchive::registerProgressCallback(float $rate, callable $callback): bool

Enregistre une fonction de rappel callback pour permettre des mises à jour pendant la fermeture de l'archive.

Liste de paramètres

rate

Modification entre chaque appel de la fonction de rappel (de 0.0 à 1.0).

callback

Cette fonction va recevoir le statut state courant sous la forme d'un float (de 0.0 à 1.0).

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Cet exemple crée un fichier archive ZIP php.zip et affiche la progression.

Exemple #1 Archive un fichier

$zip = new ZipArchive();
if ($zip->open('php.zip', ZipArchive::CREATE | ZipArchive::OVERWRITE)) {
$zip->addFile(PHP_BINARY, 'php');
$zip->registerProgressCallback(0.05, function ($r) {
printf("%d%%\n", $r * 100);
});
$zip->close();
}

Notes

Note:

Cette fonction n'est disponible que si compilé avec libzip = 1.3.0.

Voir aussi

  • ZipArchive::registerCancelCallback() - Enregistre une fonction de appel permettant d'annuler pendant la clôture d'une archive


Renomme une entrée définie par son index

  • « ZipArchive::registerProgressCallback
  • ZipArchive::renameName »
  • PHP Manual
  • ZipArchive
  • Renomme une entrée définie par son index

ZipArchive::renameIndex

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.5.0)

ZipArchive::renameIndex — Renomme une entrée définie par son index

Description

public ZipArchive::renameIndex(int $index, string $new_name): bool

Renomme une entrée définie par son index.

Liste de paramètres

index

Index de l'entrée à renommer

new_name

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::replaceFile »
  • PHP Manual
  • ZipArchive
  • Renomme une entrée définie par son nom

ZipArchive::renameName

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.5.0)

ZipArchive::renameName — Renomme une entrée définie par son nom

Description

public ZipArchive::renameName(string $name, string $new_name): bool

Renomme une entrée définie par son nom.

Liste de paramètres

name

Nom de l'entrée à renommer

new_name

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;
}
?>


Remplace un fichier d'une archive ZIP

  • « ZipArchive::renameName
  • ZipArchive::setArchiveComment »
  • PHP Manual
  • ZipArchive
  • Remplace un fichier d'une archive ZIP

ZipArchive::replaceFile

(PHP >= 8.0.0, PECL zip >= 1.18.0)

ZipArchive::replaceFile — Remplace un fichier d'une archive ZIP

Description

public ZipArchive::replaceFile(
string $filepath,
int $index,
int $start = 0,
int $length = ZipArchive::LENGTH_TO_END,
int $flags = 0
): bool

Remplace un fichier d'une archive ZIP avec un fichier donné.

Note: Pour une portabilité maximale, il est recommandé de toujours utiliser des barres obliques (/) comme séparateur de dossier dans les noms de fichiers zip.

Liste de paramètres

filepath

Le chemin vers le fichier à ajouter.

index

L'index du fichier à remplacer ; son nom restera inchangé.

start

Pour une copie partielle, la position de départ.

length

Pour copie partielle, longeur à copier, Si ZipArchive::LENGTH_TO_END (0) est spécifié, la taille du fichier est utilisée. Si ZipArchive::LENGTH_UNCHECKED est spécifié, la totalité du fichier est utilisée (à partir de start).

flags

Un masque composé d'une des constantes suivantes : ZipArchive::FL_ENC_GUESS, ZipArchive::FL_ENC_UTF_8, ZipArchive::FL_ENC_CP437, ZipArchive::FL_OPEN_FILE_NOW. Le comportement de ces constantes est décrit sur la page des constantes ZIP.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.3.0 / 1.22.1 | ZipArchive::FL_OPEN_FILE_NOW a été ajouté.
8.3.0 / 1.22.2 | ZipArchive::LENGTH_TO_END et ZipArchive::LENGTH_UNCHECKED ont été ajoutés.

Exemples

Cet exemple ouvre un fichier archive ZIP test.zip et remplace l'index 1 par /path/to/index.txt.

Exemple #1 Ouvre et remplace

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
$zip->replaceFile('/path/to/index.txt', 1);
$zip->close();
echo 'ok';
} else {
echo 'échec';
}
?>

Voir aussi

  • ZipArchive::addFile() - Ajoute un fichier à l'archive ZIP depuis le chemin fourni


Définit le commentaire d'une archive ZIP

  • « ZipArchive::replaceFile
  • ZipArchive::setArchiveFlag »
  • PHP Manual
  • ZipArchive
  • Définit le commentaire d'une archive ZIP

ZipArchive::setArchiveComment

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.4.0)

ZipArchive::setArchiveComment — Définit le commentaire d'une archive ZIP

Description

public ZipArchive::setArchiveComment(string $comment): bool

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 un drapeau global d'une archive ZIP

  • « ZipArchive::setArchiveComment
  • ZipArchive::setCommentIndex »
  • PHP Manual
  • ZipArchive
  • Définit un drapeau global d'une archive ZIP

ZipArchive::setArchiveFlag

(PHP >= 8.3.0, PECL zip >= 1.22.0)

ZipArchive::setArchiveFlag — Définit un drapeau global d'une archive ZIP

Description

public ZipArchive::setArchiveFlag(int $flag, int $value): bool

Définit un drapeau global d'une archive ZIP.

Liste de paramètres

flag

Le drapeau global à changer, parmi les constantes AFL_*.

  • ZipArchive::AFL_WANT_TORRENTZIP

  • ZipArchive::AFL_CREATE_OR_KEEP_FILE_FOR_EMPTY_ARCHIVE

value

La nouvelle valeur du drapeau.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 Créer une archive torrentzip

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
$zip->setArchiveFlag(ZipArchive::AFL_WANT_TORRENTZIP, 1);
$zip->addFromString('test.txt', 'file content goes here');
$zip->close();
echo 'ok';
} else {
echo 'failed';
}
?>

Voir aussi

  • ZipArchive::getArchiveFlag() - Retourne la valeur d'un drapeau global de l'archive


Définit le commentaire d'une entrée définie par son index

  • « ZipArchive::setArchiveFlag
  • 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, PHP 8, PECL zip >= 1.4.0)

ZipArchive::setCommentIndex — Définit le commentaire d'une entrée définie par son index

Description

public ZipArchive::setCommentIndex(int $index, string $comment): bool

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, PHP 8, PECL zip >= 1.4.0)

ZipArchive::setCommentName — Définit le commentaire d'une entrée spécifiée par son nom

Description

public ZipArchive::setCommentName(string $name, string $comment): bool

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';
}
?>


Définit la méthode de compression d'une entrée définit par son index

  • « ZipArchive::setCommentName
  • ZipArchive::setCompressionName »
  • PHP Manual
  • ZipArchive
  • Définit la méthode de compression d'une entrée définit par son index

ZipArchive::setCompressionIndex

(PHP 7, PHP 8, PECL zip >= 1.13.0)

ZipArchive::setCompressionIndex — Définit la méthode de compression d'une entrée définit par son index

Description

public ZipArchive::setCompressionIndex(int $index, int $method, int $compflags = 0): bool

Définit la méthode de compression d'une entrée définit par son index.

Liste de paramètres

index

Index de l'entrée.

method

La méthode de compression, une des constantes ZipArchive::CM_*.

compflags

Niveau de compression.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 Ajoute des fichiers avec différentes méthodes de compression dans une 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 'échoué';
}
?>


Définit la méthode de compression d'une entrée définit par son nom

  • « ZipArchive::setCompressionIndex
  • ZipArchive::setEncryptionIndex »
  • PHP Manual
  • ZipArchive
  • Définit la méthode de compression d'une entrée définit par son nom

ZipArchive::setCompressionName

(PHP 7, PHP 8, PECL zip >= 1.13.0)

ZipArchive::setCompressionName — Définit la méthode de compression d'une entrée définit par son nom

Description

public ZipArchive::setCompressionName(string $name, int $method, int $compflags = 0): bool

Définit la méthode de compression d'une entrée définit par son nom.

Liste de paramètres

name

Nom de l'entrée.

method

La méthode de compression, une des constantes ZipArchive::CM_*.

compflags

Niveau de compression.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 Ajoute des fichiers avec différentes méthodes de compression dans une 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 'échoué';
}
?>

Exemple #2 Ajoute un fichier et définir la méthode de compression

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
$zip->addFile('foo.jpg', 'bar.jpg');
$zip->setCompressionName('bar.jpg', ZipArchive::CM_XZ);
$zip->close();
echo 'ok';
} else {
echo 'failed';
}
?>


Définit la méthode de chiffrement d'une entrée définit par son index

  • « ZipArchive::setCompressionName
  • ZipArchive::setEncryptionName »
  • PHP Manual
  • ZipArchive
  • Définit la méthode de chiffrement d'une entrée définit par son index

ZipArchive::setEncryptionIndex

(PHP >= 7.2.0, PHP 8, PECL zip >= 1.14.0)

ZipArchive::setEncryptionIndex — Définit la méthode de chiffrement d'une entrée définit par son index

Description

public ZipArchive::setEncryptionIndex(int $index, int $method, ?string $password = null): bool

Définit la méthode de chiffrement d'une entrée définit par son index.

Liste de paramètres

index

Index de l'entrée.

method

La méthode de chiffrement définit par l'une des constantes ZipArchive::EM_.

password

Mot de passe optionnel, valeur par défaut utilisé si absent.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | password est désormais nullable.

Notes

Note:

Cette fonction est seulement disponible quand compilé contre libzip = 1.2.0.

Voir aussi

  • ZipArchive::setPassword() - Définit le mot de passe de l'archive active
  • ZipArchive::setEncryptionName() - Définit la méthode de chiffrement d'une entrée définit par son nom


Définit la méthode de chiffrement d'une entrée définit par son nom

  • « ZipArchive::setEncryptionIndex
  • ZipArchive::setExternalAttributesIndex »
  • PHP Manual
  • ZipArchive
  • Définit la méthode de chiffrement d'une entrée définit par son nom

ZipArchive::setEncryptionName

(PHP >= 7.2.0, PHP 8, PECL zip >= 1.14.0)

ZipArchive::setEncryptionName — Définit la méthode de chiffrement d'une entrée définit par son nom

Description

public ZipArchive::setEncryptionName(string $name, int $method, ?string $password = null): bool

Définit la méthode de chiffrement d'une entrée définit par son nom.

Liste de paramètres

name

Nom de l'entrée.

method

La méthode de chiffrement définit par l'une des constantes ZipArchive::EM_.

password

Mot de passe optionnel, valeur par défaut utilisé si absent.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | password est désormais nullable.

Exemples

Cet exemple crée un fichier d'archive ZIP test.zip et ajoute le fichier test.txt chiffré grâce à la méthode AES 256.

Exemple #1 Archiver et chiffrer un fichier

<?php
$zip = new ZipArchive();
if ($zip->open('test.zip', ZipArchive::CREATE) === TRUE) {
$zip->setPassword('secret');
$zip->addFile('text.txt');
$zip->setEncryptionName('text.txt', ZipArchive::EM_AES_256);
$zip->close();
echo "Ok\n";
} else {
echo "KO\n";
}
?>

Notes

Note:

Cette fonction est seulement disponible quand compilé contre libzip = 1.2.0.

Voir aussi

  • ZipArchive::setPassword() - Définit le mot de passe de l'archive active
  • ZipArchive::setEncryptionIndex() - Définit la méthode de chiffrement d'une entrée définit par son index


Définit les attributs externes d'une entrée définie par son index

  • « ZipArchive::setEncryptionName
  • ZipArchive::setExternalAttributesName »
  • PHP Manual
  • ZipArchive
  • Définit les attributs externes d'une entrée définie par son index

ZipArchive::setExternalAttributesIndex

(PHP 5 >= 5.6.0, PHP 7, PHP 8, PECL zip >= 1.12.4)

ZipArchive::setExternalAttributesIndex — Définit les attributs externes d'une entrée définie par son index

Description

public ZipArchive::setExternalAttributesIndex(
int $index,
int $opsys,
int $attr,
int $flags = 0
): bool

Définit les attributs externes 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 externes, la valeur dépend du système d'exploitation.

flags

Drapeaux optionnels. Actuellement inutilisé.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.


Définit les attributs externes d'une entrée définie par son nom

  • « ZipArchive::setExternalAttributesIndex
  • ZipArchive::setMtimeIndex »
  • PHP Manual
  • ZipArchive
  • Définit les attributs externes d'une entrée définie par son nom

ZipArchive::setExternalAttributesName

(PHP 5 >= 5.6.0, PHP 7, PHP 8, PECL zip >= 1.12.4)

ZipArchive::setExternalAttributesName — Définit les attributs externes d'une entrée définie par son nom

Description

public ZipArchive::setExternalAttributesName(
string $name,
int $opsys,
int $attr,
int $flags = 0
): bool

Définit les attributs externes 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 externes, la valeur dépend du système d'exploitation.

flags

Drapeaux optionnels. Actuellement inutilisé.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Cet exemple crée une archive ZIP test.zip et ajoute le fichier test.txt ainsi que ses permissions Unix dans les attributs externes.

Exemple #1 Archiver 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éfinit la date de modification d'une entrée

  • « ZipArchive::setExternalAttributesName
  • ZipArchive::setMtimeName »
  • PHP Manual
  • ZipArchive
  • Définit la date de modification d'une entrée

ZipArchive::setMtimeIndex

(PHP >= 8.0.0, PECL zip >= 1.16.0)

ZipArchive::setMtimeIndex — Définit la date de modification d'une entrée

Description

public ZipArchive::setMtimeIndex(int $index, int $timestamp, int $flags = 0): bool

Définit la date de modification d'une entrée définie par son index.

Liste de paramètres

index

Index de l'entrée.

timestamp

La date de modification (unix timestamp) du fichier.

flags

Drapeaux optionnels, non utilisés quant à présent.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Cet exemple crée un fichier archive ZIP test.zip et ajoute le fichier test.txt avec les modifications quant à la date de modification.

Exemple #1 Archive un fichier

<?php
$zip = new ZipArchive();
if ($zip->open('test.zip', ZipArchive::CREATE) === TRUE) {
$zip->addFile('text.txt');
$zip->setMtimeIndex(0, mktime(0,0,0,12,25,2019));
$zip->close();
echo "Ok\n";
} else {
echo "KO\n";
}
?>

Notes

Note:

Cette fonction n'est disponible que si l'extension a été compilée avec libzip = 1.0.0.

Voir aussi

  • ZipArchive::setMtimeName() - Définit le date de modification d'une entée par son nom


Définit le date de modification d'une entée par son nom

  • « ZipArchive::setMtimeIndex
  • ZipArchive::setPassword »
  • PHP Manual
  • ZipArchive
  • Définit le date de modification d'une entée par son nom

ZipArchive::setMtimeName

(PHP >= 8.0.0, PECL zip >= 1.16.0)

ZipArchive::setMtimeName — Définit le date de modification d'une entée par son nom

Description

public ZipArchive::setMtimeName(string $name, int $timestamp, int $flags = 0): bool

Définit le date de modification d'une entée par son nom.

Liste de paramètres

name

Nom de l'entrée.

timestamp

La date de modification (unix timestamp) du fichier.

flags

Drapeaux optionnels, non utilisés quant à présent.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Cet exemple crée un fichier archive ZIP test.zip et ajoute le fichier test.txt avec les modifications faites sur la date de modification.

Exemple #1 Archive un fichier

<?php
$zip = new ZipArchive();
if ($zip->open('test.zip', ZipArchive::CREATE) === TRUE) {
$zip->addFile('text.txt');
$zip->setMtimeName('text.txt', mktime(0,0,0,12,25,2019));
$zip->close();
echo "Ok\n";
} else {
echo "KO\n";
}
?>

Notes

Note:

Cette fonction n'est disponible que si l'extension a été compilée avec libzip = 1.0.0.

Voir aussi

  • ZipArchive::setMtimeIndex() - Définit la date de modification d'une entrée


Définit le mot de passe de l'archive active

  • « ZipArchive::setMtimeName
  • ZipArchive::statIndex »
  • PHP Manual
  • ZipArchive
  • Définit le mot de passe de l'archive active

ZipArchive::setPassword

(PHP 5 >= 5.6.0, PHP 7, PHP 8, PECL zip >= 1.12.4)

ZipArchive::setPassword — Définit le mot de passe de l'archive active

Description

public ZipArchive::setPassword(string $password): bool

Définit 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:

À partir de PHP 7.2.0 et libzip 1.2.0, le mot de passe est utilisé pour décompresser l'archive, et est également le mot de passe par défaut pour ZipArchive::setEncryptionName() et ZipArchive::setEncryptionIndex(). Précedemment, cette fonction ne définissait que le mot de passe à utiliser pour décompresser l'archive ; elle ne permettait pas de transformer une ZipArchive non protégée par mot de passe en une ZipArchive protégée par un mot de passe.

Voir aussi

  • ZipArchive::setEncryptionIndex() - Définit la méthode de chiffrement d'une entrée définit par son index
  • ZipArchive::setEncryptionName() - Définit la méthode de chiffrement d'une entrée définit par son nom


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, PHP 8, PECL zip >= 1.1.0)

ZipArchive::statIndex — Récupère les détails d'une entrée définie par son index

Description

public ZipArchive::statIndex(int $index, int $flags = 0): array|false

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;
}
?>

Résultat de l'exemple ci-dessus est 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, PHP 8, PECL zip >= 1.5.0)

ZipArchive::statName — Récupère les détails de l'entrée définie par son nom

Description

public ZipArchive::statName(string $name, int $flags = 0): array|false

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;
}
?>

Résultat de l'exemple ci-dessus est 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, PHP 8, PECL zip >= 1.1.0)

ZipArchive::unchangeAll — Annule toutes les modifications faites sur l'archive

Description

public ZipArchive::unchangeAll(): bool

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, PHP 8, PECL zip >= 1.1.0)

ZipArchive::unchangeArchive — Annule toutes les modifications globales faites sur l'archive

public ZipArchive::unchangeArchive(): bool

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, PHP 8, PECL zip >= 1.1.0)

ZipArchive::unchangeIndex — Annule toutes les modifications faites sur une entrée, définie par nom index

Description

public ZipArchive::unchangeIndex(int $index): bool

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, PHP 8, PECL zip >= 1.5.0)

ZipArchive::unchangeName — Annule toutes les modifications faites sur une entrée, définie par son nom

Description

public ZipArchive::unchangeName(string $name): bool

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

Avertissement

L'API procédurale est obsolète à partir de PHP 8.0.0. ZipArchive devrait être utilisé à la place.

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, PHP 8, PECL zip >= 1.0.0)

zip_close — Ferme une archive Zip

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

zip_close(resource $zip): void

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.

Historique

Version | Description
8.0.0 | Cette fonction est obsolète en faveur de l'API orientée objet, voir ZipArchive::close().

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, PHP 8, PECL zip >= 1.0.0)

zip_entry_close — Ferme un dossier d'archive

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

zip_entry_close(resource $zip_entry): bool

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.

Historique

Version | Description
8.0.0 | Cette fonction est obsolète en faveur de l'API orientée objet.

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, PHP 8, PECL zip >= 1.0.0)

zip_entry_compressedsize — Lit la taille compressée d'un dossier d'archives

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

zip_entry_compressedsize(resource $zip_entry): int|false

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, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | Cette fonction est obsolète en faveur de l'API orientée objet, voir ZipArchive::statIndex().

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, PHP 8, PECL zip >= 1.0.0)

zip_entry_compressionmethod — Lit la méthode de compression utilisée sur un dossier d'archives

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

zip_entry_compressionmethod(resource $zip_entry): string|false

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, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | Cette fonction est obsolète en faveur de l'API orientée objet, voir ZipArchive::statIndex().

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, PHP 8, PECL zip >= 1.0.0)

zip_entry_filesize — Lit la taille décompressée d'un dossier d'archives

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

zip_entry_filesize(resource $zip_entry): int|false

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, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | Cette fonction est obsolète en faveur de l'API orientée objet, voir ZipArchive::statIndex().

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, PHP 8, PECL zip >= 1.0.0)

zip_entry_name — Lit le nom d'un dossier d'archives

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

zip_entry_name(resource $zip_entry): string|false

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, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | Cette fonction est obsolète en faveur de l'API orientée objet, voir ZipArchive::statIndex().

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, PHP 8, PECL zip >= 1.0.0)

zip_entry_open — Ouvre un dossier d'archives en lecture

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

zip_entry_open(resource $zip_dp, resource $zip_entry, string $mode = "rb"): bool

zip_entry_open() ouvre un dossier dans un fichier ZIP pour lecture.

Liste de paramètres

zip_dp

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.

Historique

Version | Description
8.0.0 | Cette fonction est obsolète en faveur de l'API orientée objet.

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, PHP 8, PECL zip >= 1.0.0)

zip_entry_read — Lit le contenu d'un fichier dans un dossier

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

zip_entry_read(resource $zip_entry, int $len = 1024): string|false

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().

len

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.

Historique

Version | Description
8.0.0 | Cette fonction est obsolète en faveur de l'API orientée objet, voir ZipArchive::getFromIndex().

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, PHP 8, PECL zip >= 1.0.0)

zip_open — Ouvre une archive ZIP

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

zip_open(string $filename): resource|int|false

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 soit false, soit le numéro de l'erreur si le paramètre filename n'existe pas ou dans le cas d'une autre erreur.

Historique

Version | Description
8.0.0 | Cette fonction est obsolète en faveur de l'API orientée objet, voir ZipArchive::open().

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, PHP 8, PECL zip >= 1.0.0)

zip_read — Lit la prochaine entrée dans une archive ZIP

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

zip_read(resource $zip): resource|false

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.

Historique

Version | Description
8.0.0 | Cette fonction est obsolète en faveur de l'API orientée objet, voir ZipArchive::statIndex().

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_get_read_len — Get number of bytes read so far
    • inflate_get_status — Get decompression status
    • inflate_init — Initialize an incremental inflate context
    • ob_gzhandler — Fonction de rappel pour la compression automatique des tampons
    • 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
  • DeflateContext — The DeflateContext class
  • InflateContext — The InflateContext class


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:

PHP inclut un gestionnaire de format pour les fichiers .gz. Plus d'informations sont disponibles dans 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.2.0.4. 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.


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" | INI_ALL |
zlib.output_compression_level | "-1" | INI_ALL |
zlib.output_handler | "" | INI_ALL |
Pour plus de détails sur les modes 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/int

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 int

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 string

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.


Types de ressources

Cette extension définit une ressource de fichier, retournée par la fonction gzopen(). Antérieur à PHP 8.0.0, les ressources zlib.deflate et zlib.inflate étaient aussi définies


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 (int)
FORCE_DEFLATE (int)
ZLIB_ENCODING_RAW (int)
Algorithme DEFLATE tel que décrite dans la RFC 1951.
ZLIB_ENCODING_DEFLATE (int)
Algorithme de compression ZLIB tel que décrit dans la RFC 1950.
ZLIB_ENCODING_GZIP (int)
Algorithme GZIP tel que décrit par la RFC 1952.
ZLIB_FILTERED (int)
ZLIB_HUFFMAN_ONLY (int)
ZLIB_FIXED (int)
ZLIB_RLE (int)
ZLIB_DEFAULT_STRATEGY (int)
ZLIB_BLOCK (int)
ZLIB_NO_FLUSH (int)
ZLIB_PARTIAL_FLUSH (int)
ZLIB_SYNC_FLUSH (int)
ZLIB_FULL_FLUSH (int)
ZLIB_FINISH (int)


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

<?php
// 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_get_read_len — Get number of bytes read so far
  • inflate_get_status — Get decompression status
  • inflate_init — Initialize an incremental inflate context
  • ob_gzhandler — Fonction de rappel pour la compression automatique des tampons
  • 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, PHP 8)

deflate_add — Incrementally deflate data

Description

deflate_add(DeflateContext $context, string $data, int $flush_mode = ZLIB_SYNC_FLUSH): string|false

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.

Historique

Version | Description
8.0.0 | context expects a DeflateContext instance now; previously, a resource was expected.

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, PHP 8)

deflate_init — Initialize an incremental deflate context

Description

deflate_init(int $encoding, array $options = []): DeflateContext|false

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. zlib changes a window size of 8 to 9, and as of zlib 1.2.8 fails with a warning, if a window size of 8 is requested for ZLIB_ENCODING_RAW or ZLIB_ENCODING_GZIP.

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.

Historique

Version | Description
8.0.0 | On success, this function returns a DeflateContext instance now; previously, a resource was returned.

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, PHP 8)

gzclose — Ferme un pointeur sur un fichier gz ouvert

Description

gzclose(resource $stream): bool

gzclose() referme le fichier compressé zp.

Liste de paramètres

stream

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, PHP 8)

gzcompress — Compresse une chaîne

Description

gzcompress(string $data, int $level = -1, int $encoding = ZLIB_ENCODING_DEFLATE): string|false

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;
?>

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, PHP 8)

gzdecode — Décode une chaîne de caractères compressée gzip

Description

gzdecode(string $data, int $max_length = 0): string|false

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().

max_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.

Erreurs / Exceptions

En cas d'échec, une erreur de niveau E_WARNING est émise.

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, PHP 8)

gzdeflate — Compresse une chaîne

Description

gzdeflate(string $data, int $level = -1, int $encoding = ZLIB_ENCODING_RAW): string|false

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;
?>

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, PHP 8)

gzencode — Crée une chaîne compressée gzip

Description

gzencode(string $data, int $level = -1, int $encoding = ZLIB_ENCODING_GZIP): string|false

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

Le mode d'encodage. Peut être FORCE_GZIP (par défaut) ou FORCE_DEFLATE.

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.

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 = file_get_contents("bigfile.txt");
$gzdata = gzencode($data, 9);
file_put_contents("bigfile.txt.gz", $gzdata);
?>

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, PHP 8)

gzeof — Indique si la fin d'un fichier (EOF) compressé est atteinte

Description

gzeof(resource $stream): bool

Indique si la fin d'un fichier compressé est atteinte, c'est à dire si le pointeur est à la position EOF.

Liste de paramètres

stream

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, PHP 8)

gzfile — Lit la totalité d'un fichier compressé

Description

gzfile(string $filename, int $use_include_path = 0): array|false

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 toujours attachées, ou false si une erreur survient.

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, PHP 8)

gzgetc — Lit un caractère dans un fichier compressé

Description

gzgetc(resource $stream): string|false

gzgetc() retourne une chaîne contenant un seul caractère (décompressé) lu depuis le pointeur de fichier gz.

Liste de paramètres

stream

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, PHP 8)

gzgets — Lit une ligne dans un fichier compressé

Description

gzgets(resource $stream, ?int $length = null): string|false

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

stream

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.

Historique

Version | Description
8.0.0 | length est désormais nullable ; auparavant, la valeur par défaut était 1024.

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

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.3.0, et a été SUPPRIMÉE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

gzgetss(resource $zp, int $length, string $allowable_tags = ?): string

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, PHP 8)

gzinflate — Décompresse une chaîne

Description

gzinflate(string $data, int $max_length = 0): string|false

gzinflate() décompresse une chaîne.

Liste de paramètres

data

Les données compressées avec la fonction gzdeflate().

max_length

La longueur maximale de données décodé.

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, sauf si max_length est 0, plus grande que la taille de max_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, PHP 8)

gzopen — Ouvre un fichier compressé avec gzip

Description

gzopen(string $filename, string $mode, int $use_include_path = 0): resource|false

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, PHP 8)

gzpassthru — Affiche toutes les données qui restent dans un pointeur gz

Description

gzpassthru(resource $stream): int

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

stream

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é.

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, PHP 8)

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, PHP 8)

gzread — Lecture de fichier compressé binaire

Description

gzread(resource $stream, int $length): string|false

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

stream

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, ou false si une erreur survient.

Historique

Version | Description
7.4.0 | Cette fonction retourne désormais false en cas d'échec; auparavant 0 était retourné.

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, PHP 8)

gzrewind — Replace le pointeur au début du fichier

Description

gzrewind(resource $stream): bool

gzrewind() replace le pointeur de position du fichier zp au début de celui-ci.

Liste de paramètres

stream

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, PHP 8)

gzseek — Déplace le pointeur de lecture

Description

gzseek(resource $stream, int $offset, int $whence = SEEK_SET): int

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

stream

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, PHP 8)

gztell — Lit la position courante du pointeur de lecture

Description

gztell(resource $stream): int|false

gztell() retourne la position du pointeur de lecture dans le fichier zp.

Liste de paramètres

stream

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, PHP 8)

gzuncompress — Décompresse une chaîne compressée

Description

gzuncompress(string $data, int $max_length = 0): string|false

gzuncompress() décompresse une chaîne compressée.

Liste de paramètres

data

Les données compressées par gzcompress().

max_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 max_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, PHP 8)

gzwrite — Écrit dans un fichier compressé gzip

Description

gzwrite(resource $stream, string $data, ?int $length = null): int|false

gzwrite() écrit le contenu de la chaîne data dans le fichier compressé zp.

Liste de paramètres

stream

Le pointeur de fichier. Il doit être valide et doit pointer vers un fichier ouvert avec succès grâce à la fonction gzopen().

data

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 data est atteinte ; celui qui survient le premier.

Valeurs de retour

Retourne le nombre d'octets (décompressés) écrits dans le flux gz donné, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | length est désormais nullable; auparavant la valeur par défaut était 0.
7.4.0 | Cette fonction retourne désormais false en cas d'échec; auparavant 0 était retourné.

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_get_read_len »
  • PHP Manual
  • Fonctions Zlib
  • Incrementally inflate encoded data

inflate_add

(PHP 7, PHP 8)

inflate_add — Incrementally inflate encoded data

Description

inflate_add(InflateContext $context, string $data, int $flush_mode = ZLIB_SYNC_FLUSH): string|false

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().

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.

Historique

Version | Description
8.0.0 | context expects an InflateContext instance now; previously, a resource was expected.

Voir aussi

  • inflate_init() - Initialize an incremental inflate context


Get number of bytes read so far

  • « inflate_add
  • inflate_get_status »
  • PHP Manual
  • Fonctions Zlib
  • Get number of bytes read so far

inflate_get_read_len

(PHP 7 >= 7.2.0, PHP 8)

inflate_get_read_len — Get number of bytes read so far

Description

inflate_get_read_len(InflateContext $context): int

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

context

Valeurs de retour

Returns number of bytes read so far ou false si une erreur survient.

Historique

Version | Description
8.0.0 | context expects an InflateContext instance now; previously, a resource was expected.


Get decompression status

  • « inflate_get_read_len
  • inflate_init »
  • PHP Manual
  • Fonctions Zlib
  • Get decompression status

inflate_get_status

(PHP 7 >= 7.2.0, PHP 8)

inflate_get_status — Get decompression status

Description

inflate_get_status(InflateContext $context): int

Usually returns either ZLIB_OK or ZLIB_STREAM_END.

Liste de paramètres

context

Valeurs de retour

Returns decompression status.

Historique

Version | Description
8.0.0 | context expects an InflateContext instance now; previously, a resource was expected.


Initialize an incremental inflate context

  • « inflate_get_status
  • ob_gzhandler »
  • PHP Manual
  • Fonctions Zlib
  • Initialize an incremental inflate context

inflate_init

(PHP 7, PHP 8)

inflate_init — Initialize an incremental inflate context

Description

inflate_init(int $encoding, array $options = []): InflateContext|false

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.

Historique

Version | Description
8.0.0 | On success, this function returns an InflateContext instance now; previously, a resource was returned.

Notes

Attention

Unlike gzinflate(), incremental inflate contexts do not constrain the length of the decoded data, so provide no automatic protection against Zip bombs.

Voir aussi

  • inflate_add() - Incrementally inflate encoded data
  • deflate_init() - Initialize an incremental deflate context


Fonction de rappel pour la compression automatique des tampons

  • « inflate_init
  • readgzfile »
  • PHP Manual
  • Fonctions Zlib
  • Fonction de rappel pour la compression automatique des tampons

ob_gzhandler

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ob_gzhandler — Fonction de rappel pour la compression automatique des tampons

Description

ob_gzhandler(string $data, int $flags): string|false

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

data

flags

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() - Vide (envoie) la valeur de retour du gestionnaire de sortie actif et désactive le tampon de sortie actif


Lit tout le fichier compressé

  • « ob_gzhandler
  • zlib_decode »
  • PHP Manual
  • Fonctions Zlib
  • Lit tout le fichier compressé

readgzfile

(PHP 4, PHP 5, PHP 7, PHP 8)

readgzfile — Lit tout le fichier compressé

Description

readgzfile(string $filename, int $use_include_path = 0): int|false

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 en cas de succès, ou false si une erreur survient

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

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, PHP 8)

zlib_decode — Décompresse des données encodées raw/gzip/zlib

Description

zlib_decode(string $data, int $max_length = 0): string|false

Décompresse des données encodées raw/gzip/zlib.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

data

max_length

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, PHP 8)

zlib_encode — Compresse des données avec l'encodage spécifié

Description

zlib_encode(string $data, int $encoding, int $level = -1): string|false

Compresse des données avec l'encodage spécifié.

Avertissement

Cette fonction est actuellement non documentée ; 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
  • DeflateContext »
  • 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, PHP 8)

zlib_get_coding_type — Retourne la méthode de compression utilisée avec Gzip

Description

zlib_get_coding_type(): string|false

zlib_get_coding_type() retourne la méthode de compression utilisée avec Gzip.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Les valeurs possibles de retour sont gzip, deflate ou false.

Voir aussi

  • La directive zlib.output_compression directive


The DeflateContext class

(PHP 8)

Introduction

A fully opaque class which replaces zlib.deflate resources as of PHP 8.0.0.

Synopsis de la classe

final class DeflateContext {
}


The InflateContext class

(PHP 8)

Introduction

A fully opaque class which replaces zlib.inflate resources as of PHP 8.0.0.

Synopsis de la classe

final class InflateContext {
}


Extensions sur la cryptographie

  • Hash — HASH
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • HashContext — La classe HashContext
    • Fonctions Hash
  • Mcrypt
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Modes de chiffrement Mcrypt
    • 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
    • OpenSSLCertificate — The OpenSSLCertificate class
    • OpenSSLCertificateSigningRequest — The OpenSSLCertificateSigningRequest class
    • OpenSSLAsymmetricKey — The OpenSSLAsymmetricKey class
  • Table de hachage de mot de passe
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions de hachage de mot de passe
  • Rnp
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Rnp Fonctions
    • RnpFFI — The RnpFFI class
  • Sodium
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Sodium Fonctions
    • SodiumException — La classe SodiumException


HASH

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • HashContext — La classe HashContext
    • HashContext::__construct — Constructeur privé pour interdire l'instanciation directe
    • HashContext::__serialize — Sérialise l'objet HashContext
    • HashContext::__unserialize — Désérialise le paramètre data en un objet HashContext
  • Fonctions Hash
    • hash_algos — Retourne une liste des algorithmes de hachage enregistrés
    • hash_copy — Copie un contexte de hachage
    • 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_hkdf — Génère une dérivation de clé HKDF depuis une clé fournie
    • hash_hmac_algos — Return a list of registered hashing algorithms suitable for hash_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_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 cœur de PHP.


Installation

À partir de PHP 5.1.2, l'extension Hash est livrée et compilée dans PHP par défaut.

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.

À partir de PHP 7.4.0, l'extension Hash est une extension du cœur de PHP, donc elle est toujours activée.


  • « 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 (int)
Drapeau optionnel pour hash_init(). Indique que l'algorithme de clé HMAC doit être appliqué au contexte courant de hachage.


La classe HashContext

(PHP 7 >= 7.2.0, PHP 8)

Introduction

Synopsis de la classe

final class HashContext {
/* Méthodes */
private __construct()
public __serialize(): array
public __unserialize(array $data): void
}

Sommaire

  • HashContext::__construct — Constructeur privé pour interdire l'instanciation directe
  • HashContext::__serialize — Sérialise l'objet HashContext
  • HashContext::__unserialize — Désérialise le paramètre data en un objet HashContext


Constructeur privé pour interdire l'instanciation directe

  • « HashContext
  • HashContext::__serialize »
  • PHP Manual
  • HashContext
  • Constructeur privé pour interdire l'instanciation directe

HashContext::__construct

(PHP 7 >= 7.2.0, PHP 8)

HashContext::__construct — Constructeur privé pour interdire l'instanciation directe

Description

private HashContext::__construct()

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Sérialise l'objet HashContext

  • « HashContext::__construct
  • HashContext::__unserialize »
  • PHP Manual
  • HashContext
  • Sérialise l'objet HashContext

HashContext::__serialize

(PHP 8)

HashContext::__serialize — Sérialise l'objet HashContext

Description

public HashContext::__serialize(): array

Avertissement

Cette fonction est actuellement non documentée ; 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ésérialise le paramètre data en un objet HashContext

  • « HashContext::__serialize
  • Fonctions Hash »
  • PHP Manual
  • HashContext
  • Désérialise le paramètre data en un objet HashContext

HashContext::__unserialize

(PHP 8)

HashContext::__unserialize — Désérialise le paramètre data en un objet HashContext

Description

public HashContext::__unserialize(array $data): void

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

data

La valeur en cours de désérialisation.

Valeurs de retour

Aucune valeur n'est retournée.


Fonctions Hash

Sommaire

  • hash_algos — Retourne une liste des algorithmes de hachage enregistrés
  • hash_copy — Copie un contexte de hachage
  • 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_hkdf — Génère une dérivation de clé HKDF depuis une clé fournie
  • hash_hmac_algos — Return a list of registered hashing algorithms suitable for hash_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_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, PHP 8, PECL hash >= 1.1)

hash_algos — Retourne une liste des algorithmes de hachage enregistrés

Description

hash_algos(): array

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau indexé numériquement contenant la liste des algorithmes de hachage disponible.

Historique

Version | Description
8.1.0 | Support pour MurmurHash3 et xxHash a été ajouté.
7.4.0 | Support pour crc32c a été ajouté.
7.1.0 | Support pour sha512/224, sha512/256, sha3-224, sha3-256, sha3-384 et sha3-512 ont été ajouté.

Exemples

Exemple #1 Exemple avec hash_algos()

À partir de PHP 8.1.0, hash_algos() retournera la liste d'algorithmes suivante :

<?php
print_r(hash_algos());
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => md2
    [1] => md4
    [2] => md5
    [3] => sha1
    [4] => sha224
    [5] => sha256
    [6] => sha384
    [7] => sha512/224
    [8] => sha512/256
    [9] => sha512
    [10] => sha3-224
    [11] => sha3-256
    [12] => sha3-384
    [13] => sha3-512
    [14] => ripemd128
    [15] => ripemd160
    [16] => ripemd256
    [17] => ripemd320
    [18] => whirlpool
    [19] => tiger128,3
    [20] => tiger160,3
    [21] => tiger192,3
    [22] => tiger128,4
    [23] => tiger160,4
    [24] => tiger192,4
    [25] => snefru
    [26] => snefru256
    [27] => gost
    [28] => gost-crypto
    [29] => adler32
    [30] => crc32
    [31] => crc32b
    [32] => crc32c
    [33] => fnv132
    [34] => fnv1a32
    [35] => fnv164
    [36] => fnv1a64
    [37] => joaat
    [38] => murmur3a
    [39] => murmur3c
    [40] => murmur3f
    [41] => xxh32
    [42] => xxh64
    [43] => xxh3
    [44] => xxh128
    [45] => haval128,3
    [46] => haval160,3
    [47] => haval192,3
    [48] => haval224,3
    [49] => haval256,3
    [50] => haval128,4
    [51] => haval160,4
    [52] => haval192,4
    [53] => haval224,4
    [54] => haval256,4
    [55] => haval128,5
    [56] => haval160,5
    [57] => haval192,5
    [58] => haval224,5
    [59] => haval256,5
)

Voir aussi

  • hash_hmac_algos() - Return a list of registered hashing algorithms suitable for hash_hmac


Copie un contexte de hachage

  • « hash_algos
  • hash_equals »
  • PHP Manual
  • Fonctions Hash
  • Copie un contexte de hachage

hash_copy

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

hash_copy — Copie un contexte de hachage

Description

hash_copy(HashContext $context): HashContext

Liste de paramètres

context

Contexte de hachage, retourné par la fonction hash_init().

Valeurs de retour

Retourne une copie du contexte de hachage Hashing Context.

Historique

Version | Description
7.2.0 | Accepte et retourne une classe HashContext au lieu d'une ressource.

Exemples

Exemple #1 Exemple avec hash_copy()

<?php
$context = hash_init("sha256");
hash_update($context, "The quick brown fox ");

/* copie le contexte afin de pouvoir continuer à l'utiliser */
$copy_context = hash_copy($context);

echo hash_final($context), "\n";

hash_update($copy_context, "jumped over the lazy dog.");
echo hash_final($copy_context), "\n";
?>

L'exemple ci-dessus va afficher :

b29d66e56ed90cce9b0165c43fedec612b60a071974d8be4513e18580d55b5bd
68b1282b91de2c054c36629cb8dd447f12f096d3e3c587978dc2248444633483


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, PHP 8)

hash_equals — Comparaison de chaînes résistante aux attaques temporelles

Description

hash_equals(string $known_string, string $user_string): bool

Vérifie si deux chaînes de caractères sont égales sans divulguer d'informations sur le contenu de known_string via le temps d'exécution.

Cette fonction peut être utilisée pour atténuer les attaques temporelles. L'exécution d'une comparaison régulière avec === prendra plus ou moins de temps selon que les deux valeurs sont différentes ou non et selon la position à laquelle la première différence peut être trouvée, laissant ainsi filtrer des informations sur le contenu de la known_string secrète.

Attention

Il est important de passer la chaîne fournie par l'utilisateur en tant que second paramètre plutôt qu'en premier.

Liste de paramètres

known_string

La chaîne de caractères connu qui doit être gardé secrete.

user_string

La chaîne fournie par l'utilisateur à comparer contre.

Valeurs de retour

Retourne true si les deux chaînes sont égales, false sinon.

Exemples

Exemple #1 Exemple dehash_equals() example

<?php
$secretKey = '8uRhAeH89naXfFXKGOEj';

// Value and signature are provided by the user, e.g. within the URL
// and retrieved using $_GET.
$value = 'username=rasmuslerdorf';
$signature = '8c35009d3b50caf7f5d2c1e031842e6b7823a1bb781d33c5237cd27b57b5f327';

if (hash_equals(hash_hmac('sha256', $value, $secretKey), $signature)) {
echo "The value is correctly signed.", PHP_EOL;
} else {
echo "The value was tampered with.", PHP_EOL;
}
?>

L'exemple ci-dessus va afficher :

The value is correctly signed.

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.

Voir aussi

  • hash_hmac() - Génère une valeur de clé de hachage en utilisant la méthode HMAC


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, PHP 8, PECL hash >= 1.1)

hash_file — Génère une valeur de hachage en utilisant le contenu d'un fichier donné

Description

hash_file(
string $algo,
string $filename,
bool $binary = false,
array $options = []
): string|false

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 disponibles voir hash_algos().

filename

URL indiquant l'emplacement du fichier qui sera haché?; Supporte les enveloppes fopen().

binary

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.

options

Un tableau d'options pour les algorithmes dives de hachage. Actuellement, seul le paramètre "seed" est supporté pour les variantes MurmurHash.

Valeurs de retour

Retourne une chaîne de caractères contenant l'empreinte numérique calculée en chiffre hexadécimal minuscule à moins que binary soit fixé à true. Dans ce cas, la représentation brute binaire de l'empreinte numérique est retournée.

Historique

Version | Description
8.1.0 | Le paramètre options a été ajouté.

Exemples

Exemple #1 Exemple avec hash_file()

<?php
/* Crée un fichier pour calculer son empreinte numérique */
file_put_contents('example.txt', 'The quick brown fox jumped over the lazy dog.');

echo hash_file('sha256', 'example.txt');
?>

L'exemple ci-dessus va afficher :

68b1282b91de2c054c36629cb8dd447f12f096d3e3c587978dc2248444633483

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_hkdf »
  • 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, PHP 8, PECL hash >= 1.1)

hash_final — Finalise un hachage incrémental et retourne le résultat de l'empreinte numérique

Description

hash_final(HashContext $context, bool $binary = false): string

Liste de paramètres

context

Contexte de hachage retourné par hash_init().

binary

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 binary soit fixé à true. Dans ce cas, la représentation brute binaire de l'empreinte numérique est retournée.

Historique

Version | Description
7.2.0 | Accepte une HashContext au lieu d'une ressource.

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 dérivation de clé HKDF depuis une clé fournie

  • « hash_final
  • hash_hmac_algos »
  • PHP Manual
  • Fonctions Hash
  • Génère une dérivation de clé HKDF depuis une clé fournie

hash_hkdf

(PHP 7 >= 7.1.2, PHP 8)

hash_hkdf — Génère une dérivation de clé HKDF depuis une clé fournie

Description

hash_hkdf(
string $algo,
string $key,
int $length = 0,
string $info = "",
string $salt = ""
): string

Liste de paramètres

algo

Nom de l'algorithme de hachage sélectioné (par exemple : "sha256", "sha512", "haval160,4", etc...) Voir hash_algos() pour une liste d'algorithmes supportés.

Note:

Les fonctions de hachages qui ne sont pas cryptographiques sont interdites.

key

Données (Input keying material) en binaire qui serviront au clavetage. Ne peut pas être vide.

length

Longueur désirée des données de sortie en octets. Ne peut être plus grand que 255 fois la taille de la fonction de hachage.

Si length vaut 0, la longueur des données de sortie sera par défaut la taille de la fonction de hachage choisie.

info

Information sous forme de chaîne de caractères spécifique à l'Application/contexte.

salt

Sel à utiliser lors de la dérivation.

Bien qu'optionel, ajouté un sel aléatoire augmente de façon significative la robustesse de HKDF.

Valeurs de retour

Retourne un chaîne de caractères contenant une représentation binaire brute de la clé dérivée (aussi connue sous le nom de output keying material - OKM).

Erreurs / Exceptions

Lève une exception ValueError si key est vide, algo est inconnue/pas cryptographique, length est moins que 0 ou trop grand (plus grand que 255 fois la taille de la fonction de hachage).

Historique

Version | Description
8.0.0 | Lève une exception ValueError en cas d'erreur dorénavant. Précédemment, false était retournée et un message E_WARNING était émis.

Exemples

Exemple #1 Exemple avec hash_hkdf()

<?php
// Génère une clé aléatoire, et un sel pour la renforcer lors de la dérivation.
$inputKey = random_bytes(32);
$salt = random_bytes(16);

// Dérive une paire de clés séparées, utilisant les mêmes données créées juste avant.
$encryptionKey = hash_hkdf('sha256', $inputKey, 32, 'aes-256-encryption', $salt);
$authenticationKey = hash_hkdf('sha256', $inputKey, 32, 'sha-256-authentication', $salt);

var_dump($encryptionKey !== $authenticationKey); // bool(true)
?>

L'exemple ci-dessus produit une paire de clés séparées, qui convient à la création d'une construction chiffrer-puis-HMAC (encrypt-then-HMAC), en utilisant AES-256 et SHA-256 pour le chiffrement et l'authentification respectivement.

Voir aussi

  • hash_pbkdf2() - Génère une clé PBKDF2 dérivée du mot de passe fourni
  • » RFC 5869
  • » userland implementation


Return a list of registered hashing algorithms suitable for hash_hmac

  • « hash_hkdf
  • hash_hmac_file »
  • PHP Manual
  • Fonctions Hash
  • Return a list of registered hashing algorithms suitable for hash_hmac

hash_hmac_algos

(PHP 7 >= 7.2.0, PHP 8)

hash_hmac_algos — Return a list of registered hashing algorithms suitable for hash_hmac

Description

hash_hmac_algos(): array

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau indexé numériquement contenant la liste de tout les algorithmes de hachage disponible qui sont adaptés pour hash_hmac().

Exemples

Exemple #1 Exemple avec hash_hmac_algos()

<?php
print_r(hash_hmac_algos());

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => md2
    [1] => md4
    [2] => md5
    [3] => sha1
    [4] => sha224
    [5] => sha256
    [6] => sha384
    [7] => sha512/224
    [8] => sha512/256
    [9] => sha512
    [10] => sha3-224
    [11] => sha3-256
    [12] => sha3-384
    [13] => sha3-512
    [14] => ripemd128
    [15] => ripemd160
    [16] => ripemd256
    [17] => ripemd320
    [18] => whirlpool
    [19] => tiger128,3
    [20] => tiger160,3
    [21] => tiger192,3
    [22] => tiger128,4
    [23] => tiger160,4
    [24] => tiger192,4
    [25] => snefru
    [26] => snefru256
    [27] => gost
    [28] => gost-crypto
    [29] => haval128,3
    [30] => haval160,3
    [31] => haval192,3
    [32] => haval224,3
    [33] => haval256,3
    [34] => haval128,4
    [35] => haval160,4
    [36] => haval192,4
    [37] => haval224,4
    [38] => haval256,4
    [39] => haval128,5
    [40] => haval160,5
    [41] => haval192,5
    [42] => haval224,5
    [43] => haval256,5
)

Notes

Note:

Avant PHP 7.2.0 la seule façon pour récupérer une liste des algorithmes disponible était d'appeler hash_algos() qui retournait aussi des algorithmes qui ne sont pas adaptés pour hash_hmac().

Voir aussi

  • hash_hmac() - Génère une valeur de clé de hachage en utilisant la méthode HMAC
  • hash_algos() - Retourne une liste des algorithmes de hachage enregistrés


Génère une valeur de clé de hachage en utilisant la méthode HMAC et le contenu d'un fichier donné

  • « hash_hmac_algos
  • 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, PHP 8, 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

hash_hmac_file(
string $algo,
string $filename,
string $key,
bool $binary = false
): string|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_hmac_algos() pour connaitre la liste des algorithmes disponible.

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.

binary

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 binary soit fixé à true. Dans ce cas, la représentation brute binaire de l'empreinte numérique est retournée. Retourne false si le fichier filename ne peut pas être lu.

Erreurs / Exceptions

Lève une exception ValueError si le paramètre algo est inconnu ou n'est pas une fonction de hachage cryptographique.

Historique

Version | Description
7.2.0 | L'utilisation de fonctions de hachage non cryptographiques (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) a été désactivée.
8.0.0 | Lève une exception ValueError dorénavant si le paramètre algo est inconnu ou n'est pas une fonction de hachage cryptographique; précédemment, false était retourné à la place.

Exemples

Exemple #1 Exemple avec hash_hmac_file()

<?php
/* Crée un fichier pour calculer son empreinte numérique */
file_put_contents('example.txt', 'The quick brown fox jumped over the lazy dog.');

echo hash_hmac_file('sha256', 'example.txt', 'secret');
?>

L'exemple ci-dessus va afficher :

9c5c42422b03f0ee32949920649445e417b2c634050833c5165704b825c2a53b

Voir aussi

  • hash_hmac_algos() - Return a list of registered hashing algorithms suitable for hash_hmac
  • 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, PHP 8, PECL hash >= 1.1)

hash_hmac — Génère une valeur de clé de hachage en utilisant la méthode HMAC

Description

hash_hmac(
string $algo,
string $data,
string $key,
bool $binary = false
): string

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_hmac_algos() pour une liste des algorithmes disponible.

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.

binary

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 binary soit fixé à true. Dans ce cas, la représentation brute binaire de l'empreinte numérique est retournée.

Erreurs / Exceptions

Lève une exception ValueError si le paramètre algo est inconnu ou n'est pas une fonction de hachage cryptographique.

Historique

Version | Description
8.0.0 | hash_hmac() lance désormais une exception ValueError si l'algo est inconnu ou n'est pas une fonction de hachage cryptographique?; auparavant, false était retourné à la place.
7.2.0 | L'utilisation de fonctions de hachage non cryptographiques (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) a été désactivée.

Exemples

Exemple #1 Exemple avec hash_hmac()

<?php
echo hash_hmac('sha256', 'The quick brown fox jumped over the lazy dog.', 'secret');
?>

L'exemple ci-dessus va afficher :

9c5c42422b03f0ee32949920649445e417b2c634050833c5165704b825c2a53b

Voir aussi

  • hash() - Génère une valeur de hachage (empreinte numérique)
  • hash_hmac_algos() - Return a list of registered hashing algorithms suitable for hash_hmac
  • 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é
  • hash_equals() - Comparaison de chaînes résistante aux attaques temporelles


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, PHP 8, PECL hash >= 1.1)

hash_init — Initialise un contexte de hachage incrémental

Description

hash_init(
string $algo,
int $flags = 0,
string $key = "",
array $options = []
): HashContext

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().

flags

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 flags, une clé secrète partagée qui sera utilisée avec la méthode de hachage HMAC doit être fournie dans ce paramètre.

options

Un tableau d'options pour les algorithmes dives de hachage. Actuellement, seul le paramètre "seed" est supporté pour les variantes MurmurHash.

Valeurs de retour

Retourne le contexte de hachage HashContext pour utilisation avec hash_update(), hash_update_stream(), hash_update_file() et hash_final().

Erreurs / Exceptions

Lève une exception ValueError si le paramètre algo est inconnu ou n'est pas une fonction de hachage cryptographique, ou si le paramètre key est vide.

Historique

Version | Description
8.1.0 | Le paramètre options a été ajouté.
7.2.0 | L'usage de fonction de hachage non-cryptographique (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) avec HASH_HMAC a été désactivé.
7.2.0 | Retourne une HashContext au lieu d'une ressource. | 8.0.0 | Lève une exception ValueError dorénavant si le paramètre algo est inconnu ou n'est pas une fonction de hachage cryptographique, ou si le paramètre key est vide. Précédemment, false était retourné et un message E_WARNING était emis.

Exemples

Exemple #1 Exemple de hachage incrémental

<?php
$hash = hash('sha256', 'The quick brown fox jumped over the lazy dog.');

$ctx = hash_init('sha256');
hash_update($ctx, 'The quick brown fox ');
hash_update($ctx, 'jumped over the lazy dog.');
$incremental_hash = hash_final($ctx);

echo $incremental_hash, PHP_EOL;
var_dump($hash === $incremental_hash);
?>

L'exemple ci-dessus va afficher :

68b1282b91de2c054c36629cb8dd447f12f096d3e3c587978dc2248444633483
bool(true)

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, PHP 8)

hash_pbkdf2 — Génère une clé PBKDF2 dérivée du mot de passe fourni

Description

hash_pbkdf2(
string $algo,
string $password,
string $salt,
int $iterations,
int $length = 0,
bool $binary = false
): string

Liste de paramètres

algo

Nom de l'algorithme de hachage 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 binary vaut true, ce paramètre correspondra à la longueur, en octets, de la clé dérivée ; si le paramètre binary 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.

binary

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 binary ne soit positionné à true auquel cas, la représentation binaire brute de la clé dérivée sera retournée.

Erreurs / Exceptions

Une exception ValueError 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).

Historique

Version | Description
7.2.0 | L'utilisation de fonctions de hachage non cryptographiques (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) a été désactivée.
8.0.0 | Lève une exception ValueError dorénavant en cas d'erreur. Précédemment, false était retourne et un message E_WARNING était émis.

Exemples

Exemple #1 Exemple avec hash_pbkdf2()

<?php
$password = "password";
$iterations = 600000;

// Génère un sel cryptographiquement sécurise aléatoire en utilisant la fonction random_bytes(),
$salt = random_bytes(16);

$hash = hash_pbkdf2("sha256", $password, $salt, $iterations, 20);
var_dump($hash);

// Pour du binaire brute, $length doit être divisé par deux pour des résultats équivalent
$hash = hash_pbkdf2("sha256", $password, $salt, $iterations, 10, true);
var_dump(bin2hex($hash));
?>

Résultat de l'exemple ci-dessus est similaire à :

string(20) "120fb6cffcf8b32c43e7"
string(20) "120fb6cffcf8b32c43e7"

Notes

Attention

La méthode PBKDF2 peut être utilisée pour hacher 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

  • password_hash() - Crée une clé de hachage pour un mot de passe
  • hash_hkdf() - Génère une dérivation de clé HKDF depuis une clé fournie
  • sodium_crypto_pwhash() - Derive a key from a password, using Argon2


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, PHP 8, PECL hash >= 1.1)

hash_update_file — Ajoute des données dans un contexte de hachage actif provenant d'un fichier

Description

hash_update_file(HashContext $context, string $filename, ?resource $stream_context = null): bool

Liste de paramètres

context

Contexte de hachage retourné par hash_init().

filename

URL indiquant l'emplacement du fichier qui sera haché; Supporte les enveloppes fopen().

stream_context

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.

Historique

Version | Description
8.0.0 | stream_context est désormais nullable.
7.2.0 | Accepte une HashContext au lieu d'une ressource.

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, PHP 8, PECL hash >= 1.1)

hash_update_stream — Ajoute des données dans un contexte de hachage actif d'un flux ouvert

Description

hash_update_stream(HashContext $context, resource $stream, int $length = -1): int

Liste de paramètres

context

Contexte de hachage retourné par hash_init().

stream

Identifiant de fichier ouvert comme retourné par n'importe quelle fonction de création de flux.

length

Taille maximale de caractères à copier de stream dans le contexte de hachage.

Valeurs de retour

Nombre actuel d'octets ajoutés au contexte de hachage de stream.

Historique

Version | Description
7.2.0 | Accepte une HashContext au lieu d'une ressource.

Exemples

Exemple #1 Exemple avec hash_update_stream()

<?php
$fp = tmpfile();
fwrite($fp, 'jumped over the lazy dog.');
rewind($fp);

$ctx = hash_init('sha256');
hash_update($ctx, 'The quick brown fox ');
hash_update_stream($ctx, $fp);
echo hash_final($ctx);
?>

L'exemple ci-dessus va afficher :

68b1282b91de2c054c36629cb8dd447f12f096d3e3c587978dc2248444633483

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, PHP 8, PECL hash >= 1.1)

hash_update — Ajoute des données dans le contexte de hachage actif

Description

hash_update(HashContext $context, string $data): bool

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.

Historique

Version | Description
7.2.0 | Accepte une HashContext au lieu d'une ressource.

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, PHP 8, PECL hash >= 1.1)

hash — Génère une valeur de hachage (empreinte numérique)

Description

hash(
string $algo,
string $data,
bool $binary = false,
array $options = []
): string

Liste de paramètres

algo

Nom de l'algorithme de hachage sélectionné (c'est-à-dire "md5", "sha256", "haval160,4", etc.). Pour une lise des algorithmes disponible voir hash_algos().

data

Message à hacher.

binary

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.

options

Un tableau d'options pour les algorithmes dives de hachage. Actuellement, seul le paramètre "seed" est supporté pour les variantes MurmurHash.

Valeurs de retour

Retourne une chaîne de caractères contenant l'empreinte numérique calculée en chiffre hexadécimal minuscule à moins que binary soit fixé à true. Dans ce cas, la représentation brute binaire de l'empreinte numérique est retournée.

Historique

Version | Description
8.1.0 | Le paramètre options a été ajouté.
8.0.0 | hash() lance désormais une exception ValueError si l'algo est inconnu?; auparavant, false était retourné à la place.

Exemples

Exemple #1 Exemple avec hash()

<?php
echo hash('sha256', 'The quick brown fox jumped over the lazy dog.');
?>

L'exemple ci-dessus va afficher :

68b1282b91de2c054c36629cb8dd447f12f096d3e3c587978dc2248444633483

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
  • Fonctions Mcrypt
    • 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_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_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
    • mdecrypt_generic — Déchiffre les données


Introduction

Avertissement

Cette fonctionnalité est OBSOLÈTE à partir de PHP 7.1.0 et a été SUPPRIMÉE à partir de PHP 7.2.0.

Les alternatives à cette fonctionnalité incluent :

  • Sodium (disponible à partir de PHP 7.2.0)
  • OpenSSL

Note:

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 7.2.0.

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.

La version 2.5.6 ou suivant de la bibliothèque libmcrypt est requise.

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

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 7.2.0

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 : » https://pecl.php.net/package/mcrypt.


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 | INI_ALL |
mcrypt.modes_dir | null | INI_ALL |
Pour plus de détails sur les modes 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 lié contre libmcrypt-2.4.x ou ultérieur, les fonctions peuvent aussi opérer en mode nOFB et en mode STREAM. Ci-dessous ce trouve une liste avec tous les modes de chiffrements supporté avec les constantes qui sont définit pour le mode de chiffrement. Pour une référence plus complète et des discussion voir Applied Cryptography by Schneier (ISBN 0-471-11709-9).

  • MCRYPT_MODE_ECB (electronic codebook) est un mode de chiffrement par bloc qui est généralement innaproprié à la plupart des utilisations. L'utilisation de ce mode est déconseillé.
  • MCRYPT_MODE_CBC (cipher block chaining) est un mode de chiffrement par bloc qui est considérablement plus sécurisé que me mode ECB.
  • MCRYPT_MODE_CFB (cipher feedback, in 8-bit mode) est un mode de chiffrement par flot. Il est conseillé d'utiliser le mode NCFB plutôt que le mode CFB.
  • MCRYPT_MODE_OFB (output feedback, in 8bit) est un mode de chiffrement par flot comparable à CFB, mais peut être utilisé dans des applications où la propagation d'erreur ne peut être tolérée. Il est conseillé d'utiliser le mode NOFB plutôt que le mode OFB.
  • MCRYPT_MODE_NOFB (output feedback, in n-bit mode) est comparable au mode OFB, mais opère sur la taille de bloc complète de l'algorithme.
  • MCRYPT_MODE_STREAM est un mode supplémentaire, pour inclure des algorithme de flot tels que "WAKE" ou "RC4".

Mcrypt supporte d'autres mode d'opération pour lesquelles il n'y a pas de constantes prédéfinies. Ils peuvent être utilisé en passant une chaîne de caractères à la place des constantes manquantes.

  • "ctr" (counter mode) est un mode de chiffrement par flot.
  • "ncfb" (cipher feedback, in n-bit mode) est comparable au mode CFB, mais opère sur la taille de bloc complète de l'algorithme.

Voici quelques autres modes et méthodes de compression :

MCRYPT_ENCRYPT (int)
MCRYPT_DECRYPT (int)
MCRYPT_DEV_RANDOM (int)
MCRYPT_DEV_URANDOM (int)
MCRYPT_RAND (int)


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).


Fonctions Mcrypt

Sommaire

  • 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_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_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
  • mdecrypt_generic — Déchiffre les données


Crée un vecteur d'initialisation (IV) à partir d'une source aléatoire

  • « Fonctions Mcrypt
  • 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 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_create_iv — Crée un vecteur d'initialisation (IV) à partir d'une source aléatoire

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.1.0 et a été SUPPRIMÉE à partir de PHP 7.2.0.

Les alternatives à cette fonction incluent :

  • random_bytes()

Description

mcrypt_create_iv(int $size, int $source = MCRYPT_DEV_URANDOM): string

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.

Note: Notez que la constante MCRYPT_DEV_RANDOM peut se bloquer en attendant que d'autre anthropie ne soit disponible.

Valeurs de retour

Retourne le vecteur d'initialisation, ou bien false en cas d'erreur.

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)
  • random_bytes() - Récupère des octets aléatoires cryptographiquement sécurisés


Déchiffre un texte avec les paramètres donnés

  • « mcrypt_create_iv
  • mcrypt_enc_get_algorithms_name »
  • 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 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_decrypt — Déchiffre un texte avec les paramètres donnés

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.1.0 et a été SUPPRIMÉE à partir de PHP 7.2.0. Dépendre de cette fonction est fortement déconseillé.

Description

mcrypt_decrypt(
string $cipher,
string $key,
string $data,
string $mode,
string $iv = ?
): string|false

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.

Voir aussi

  • mcrypt_encrypt() - Chiffre un texte


Retourne le nom de l'algorithme de chiffrement

  • « mcrypt_decrypt
  • 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 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_get_algorithms_name — Retourne le nom de l'algorithme de chiffrement

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.1.0 et a été SUPPRIMÉE à partir de PHP 7.2.0. Dépendre de cette fonction est fortement déconseillé.

Description

mcrypt_enc_get_algorithms_name(resource $td): string

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 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_get_block_size — Retourne la taille du bloc d'un algorithme

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.1.0 et a été SUPPRIMÉE à partir de PHP 7.2.0. Dépendre de cette fonction est fortement déconseillé.

Description

mcrypt_enc_get_block_size(resource $td): int

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 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_get_iv_size — Retourne la taille du VI d'un algorithme

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.1.0 et a été SUPPRIMÉE à partir de PHP 7.2.0. Dépendre de cette fonction est fortement déconseillé.

Description

mcrypt_enc_get_iv_size(resource $td): int

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 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_get_key_size — Retourne la taille maximale de la clé pour un mode

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.1.0 et a été SUPPRIMÉE à partir de PHP 7.2.0. Dépendre de cette fonction est fortement déconseillé.

Description

mcrypt_enc_get_key_size(resource $td): int

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 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_get_modes_name — Retourne le nom du mode

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.1.0 et a été SUPPRIMÉE à partir de PHP 7.2.0. Dépendre de cette fonction est fortement déconseillé.

Description

mcrypt_enc_get_modes_name(resource $td): string

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 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_get_supported_key_sizes — Retourne un tableau contenant les tailles de clés acceptées par un algorithme

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.1.0 et a été SUPPRIMÉE à partir de PHP 7.2.0. Dépendre de cette fonction est fortement déconseillé.

Description

mcrypt_enc_get_supported_key_sizes(resource $td): array

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 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_is_block_algorithm_mode — Teste le chiffrement par blocs d'un mode

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.1.0 et a été SUPPRIMÉE à partir de PHP 7.2.0. Dépendre de cette fonction est fortement déconseillé.

Description

mcrypt_enc_is_block_algorithm_mode(resource $td): bool

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 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_is_block_algorithm — Teste le chiffrement par blocs d'un algorithme

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.1.0 et a été SUPPRIMÉE à partir de PHP 7.2.0. Dépendre de cette fonction est fortement déconseillé.

Description

mcrypt_enc_is_block_algorithm(resource $td): bool

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 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_is_block_mode — Teste si le mode retourne les données par blocs

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.1.0 et a été SUPPRIMÉE à partir de PHP 7.2.0. Dépendre de cette fonction est fortement déconseillé.

Description

mcrypt_enc_is_block_mode(resource $td): bool

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 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_enc_self_test — Teste un module ouvert

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.1.0 et a été SUPPRIMÉE à partir de PHP 7.2.0. Dépendre de cette fonction est fortement déconseillé.

Description

mcrypt_enc_self_test(resource $td): int

Effectue un test du module ouvert et désigné par td.

Liste de paramètres

td

La ressource de chiffrement.

Valeurs de retour

Retourne 0 en cas de succès ou un entier négatif en cas d'échec.


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 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_encrypt — Chiffre un texte

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.1.0 et a été SUPPRIMÉE à partir de PHP 7.2.0. Dépendre de cette fonction est fortement déconseillé.

Description

mcrypt_encrypt(
string $cipher,
string $key,
string $data,
string $mode,
string $iv = ?
): string|false

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.

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_init »
  • PHP Manual
  • Fonctions Mcrypt
  • Prépare le module pour le déchargement

mcrypt_generic_deinit

(PHP 4 >= 4.0.7, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_generic_deinit — Prépare le module pour le déchargement

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.1.0 et a été SUPPRIMÉE à partir de PHP 7.2.0. Dépendre de cette fonction est fortement déconseillé.

Description

mcrypt_generic_deinit(resource $td): bool

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


Initialise tous les buffers nécessaires

  • « mcrypt_generic_deinit
  • mcrypt_generic »
  • PHP Manual
  • Fonctions Mcrypt
  • Initialise tous les buffers nécessaires

mcrypt_generic_init

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_generic_init — Initialise tous les buffers nécessaires

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.1.0 et a été SUPPRIMÉE à partir de PHP 7.2.0. Dépendre de cette fonction est fortement déconseillé.

Description

mcrypt_generic_init(resource $td, string $key, string $iv): int

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 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_generic — Chiffre les données

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.1.0 et a été SUPPRIMÉE à partir de PHP 7.2.0. Dépendre de cette fonction est fortement déconseillé.

Description

mcrypt_generic(resource $td, string $data): string

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 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_get_block_size — Retourne la taille de blocs d'un chiffrement

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.1.0 et a été SUPPRIMÉE à partir de PHP 7.2.0. Dépendre de cette fonction est fortement déconseillé.

Description

mcrypt_get_block_size(int $cipher): int|false
mcrypt_get_block_size(string $cipher, string $mode): int|false

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 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_get_cipher_name — Lit le nom du chiffrement utilisé

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.1.0 et a été SUPPRIMÉE à partir de PHP 7.2.0. Dépendre de cette fonction est fortement déconseillé.

Description

mcrypt_get_cipher_name(int $cipher): string
mcrypt_get_cipher_name(string $cipher): string

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 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_get_iv_size — Retourne la taille du VI utilisé par un couple chiffrement/mode

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.1.0 et a été SUPPRIMÉE à partir de PHP 7.2.0. Dépendre de cette fonction est fortement déconseillé.

Description

mcrypt_get_iv_size(string $cipher, string $mode): int

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 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_get_key_size — Retourne la taille de la clé de chiffrement

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.1.0 et a été SUPPRIMÉE à partir de PHP 7.2.0. Dépendre de cette fonction est fortement déconseillé.

Description

mcrypt_get_key_size(int $cipher): int|false
mcrypt_get_key_size(string $cipher, string $mode): int|false

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 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_list_algorithms — Liste tous les algorithmes de chiffrement supportés

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.1.0 et a été SUPPRIMÉE à partir de PHP 7.2.0. Dépendre de cette fonction est fortement déconseillé.

Description

mcrypt_list_algorithms(string $lib_dir = ini_get("mcrypt.algorithms_dir")): array

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();
print_r($algorithms);
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => cast-128
    [1] => gost
    [2] => rijndael-128
    [3] => twofish
    [4] => arcfour
    [5] => cast-256
    [6] => loki97
    [7] => rijndael-192
    [8] => saferplus
    [9] => wake
    [10] => blowfish-compat
    [11] => des
    [12] => rijndael-256
    [13] => serpent
    [14] => xtea
    [15] => blowfish
    [16] => enigma
    [17] => rc2
    [18] => tripledes
)


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 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_list_modes — Liste tous les modes de chiffrement supportés

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.1.0 et a été SUPPRIMÉE à partir de PHP 7.2.0. Dépendre de cette fonction est fortement déconseillé.

Description

mcrypt_list_modes(string $lib_dir = ini_get("mcrypt.modes_dir")): array

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 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_close — Décharge le module de chiffrement

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.1.0 et a été SUPPRIMÉE à partir de PHP 7.2.0. Dépendre de cette fonction est fortement déconseillé.

Description

mcrypt_module_close(resource $td): bool

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 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_get_algo_block_size — Retourne la taille de blocs d'un algorithme

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.1.0 et a été SUPPRIMÉE à partir de PHP 7.2.0. Dépendre de cette fonction est fortement déconseillé.

Description

mcrypt_module_get_algo_block_size(string $algorithm, string $lib_dir = ?): int

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 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_get_algo_key_size — Retourne la taille maximale de clé

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.1.0 et a été SUPPRIMÉE à partir de PHP 7.2.0. Dépendre de cette fonction est fortement déconseillé.

Description

mcrypt_module_get_algo_key_size(string $algorithm, string $lib_dir = ?): int

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 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_get_supported_key_sizes — Retourne un tableau contenant les tailles de clés supportées par l'algorithme ouvert

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.1.0 et a été SUPPRIMÉE à partir de PHP 7.2.0. Dépendre de cette fonction est fortement déconseillé.

Description

mcrypt_module_get_supported_key_sizes(string $algorithm, string $lib_dir = ?): array

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 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_is_block_algorithm_mode — Indique si un mode fonctionne par blocs

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.1.0 et a été SUPPRIMÉE à partir de PHP 7.2.0. Dépendre de cette fonction est fortement déconseillé.

Description

mcrypt_module_is_block_algorithm_mode(string $mode, string $lib_dir = ?): bool

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 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_is_block_algorithm — Indique si un algorithme fonctionne par blocs

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.1.0 et a été SUPPRIMÉE à partir de PHP 7.2.0. Dépendre de cette fonction est fortement déconseillé.

Description

mcrypt_module_is_block_algorithm(string $algorithm, string $lib_dir = ?): bool

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 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_is_block_mode — Indique si un mode travaille par blocs

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.1.0 et a été SUPPRIMÉE à partir de PHP 7.2.0. Dépendre de cette fonction est fortement déconseillé.

Description

mcrypt_module_is_block_mode(string $mode, string $lib_dir = ?): bool

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 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_open — Ouvre le module de l'algorithme et du mode à utiliser

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.1.0 et a été SUPPRIMÉE à partir de PHP 7.2.0. Dépendre de cette fonction est fortement déconseillé.

Description

mcrypt_module_open(
string $algorithm,
string $algorithm_directory,
string $mode,
string $mode_directory
): resource

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
  • mdecrypt_generic »
  • PHP Manual
  • Fonctions Mcrypt
  • Teste un mode

mcrypt_module_self_test

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_module_self_test — Teste un mode

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.1.0 et a été SUPPRIMÉE à partir de PHP 7.2.0. Dépendre de cette fonction est fortement déconseillé.

Description

mcrypt_module_self_test(string $algorithm, string $lib_dir = ?): bool

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)


Déchiffre les données

  • « mcrypt_module_self_test
  • Mhash »
  • PHP Manual
  • Fonctions Mcrypt
  • Déchiffre les données

mdecrypt_generic

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mdecrypt_generic — Déchiffre les données

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.1.0 et a été SUPPRIMÉE à partir de PHP 7.2.0. Dépendre de cette fonction est fortement déconseillé.

Description

mdecrypt_generic(resource $td, string $data): string

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.

Valeurs de retour

Retourne la chaîne déchiffré.

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.

Note:

À partir de PHP 7.0.0 l'extension Mhash a été completement intégré dans l'extension Hash. Par conséquent il n'est plus possible de détecter le support de Mhash grâce à extension_loaded() ; utilisez function_exists() à la place. De plus, Mhash n'est plus signalé par get_loaded_extensions() et les fonctionnalités liées.


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, PHP 8)

mhash_count — Récupère l'identifiant maximal de hash

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 8.1.0. Dépendre de cette fonction est fortement déconseillé.

Description

mhash_count(): int

Récupère l'identifiant maximal de hash.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'identifiant de hash maximal. Les hashs sont numérotés de 0 jusqu'à cet identifiant.

Historique

Version | Description
8.1.0 | Cette fonction a été rendue obsolète. Utiliser les fonctions hash_*() à la place.

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, PHP 8)

mhash_get_block_size — Retourne la taille de bloc du hash

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 8.1.0. Dépendre de cette fonction est fortement déconseillé.

Description

mhash_get_block_size(int $algo): int|false

Retourne la taille de bloc de l'algo spécifié.

Liste de paramètres

algo

L'identifiant du hash. Une des constantes MHASH_hashname.

Valeurs de retour

Retourne la taille, en octets, ou false si l'algo n'existe pas.

Historique

Version | Description
8.1.0 | Cette fonction a été rendue obsolète. Utiliser les fonctions hash_*() à la place.

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, PHP 8)

mhash_get_hash_name — Retourne le nom du hash

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 8.1.0. Dépendre de cette fonction est fortement déconseillé.

Description

mhash_get_hash_name(int $algo): string|false

Retourne le nom de l'algo spécifié.

Liste de paramètres

algo

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.

Historique

Version | Description
8.1.0 | Cette fonction a été rendue obsolète. Utiliser les fonctions hash_*() à la place.

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, PHP 8)

mhash_keygen_s2k — Génère une clé

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 8.1.0. Dépendre de cette fonction est fortement déconseillé.

Description

mhash_keygen_s2k(
int $algo,
string $password,
string $salt,
int $length
): string|false

Génère une clé suivant l'algo 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

algo

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.

length

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.

Historique

Version | Description
8.1.0 | Cette fonction a été rendue obsolète. Utiliser les fonctions hash_*() à la place.


Calcule un hash

  • « mhash_keygen_s2k
  • OpenSSL »
  • PHP Manual
  • Fonctions Mhash
  • Calcule un hash

mhash

(PHP 4, PHP 5, PHP 7, PHP 8)

mhash — Calcule un hash

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 8.1.0. Dépendre de cette fonction est fortement déconseillé.

Description

mhash(int $algo, string $data, ?string $key = null): string|false

mhash() applique la fonction de hash algo aux données data.

Liste de paramètres

algo

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.

Historique

Version | Description
8.1.0 | Cette fonction a été rendue obsolète. Utiliser les fonctions hash_*() à la place.
8.0.0 | key est désormais nullable.


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
    • Drapeaux/Constantes CMS
    • Algorithme de signature
    • Chiffrements
    • Constantes de version
    • Constantes d'identification du nom de serveur
    • Autres constantes
  • Paramètres clés/certificats
  • Vérification de certificats
  • Fonctions OpenSSL
    • openssl_cipher_iv_length — Récupère la longueur cipher iv
    • openssl_cipher_key_length — Gets the cipher key length
    • openssl_cms_decrypt — Decrypt a CMS message
    • openssl_cms_encrypt — Encrypt a CMS message
    • openssl_cms_read — Export the CMS file to an array of PEM certificates
    • openssl_cms_sign — Sign a file
    • openssl_cms_verify — Verify a CMS signature
    • 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 CSR
    • openssl_csr_get_subject — Retourne le sujet d'une CSR
    • 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échiffrer les données
    • openssl_dh_compute_key — Calcule un secret partagé pour une valeur publique de la clé DH publique distante et la clé DH locale
    • openssl_digest — Calcule un digest
    • openssl_encrypt — Chiffre 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 de chiffrements disponibles
    • openssl_get_curve_names — Récupère la liste des noms de courbes disponibles pour ECC
    • 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
    • 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_read — Exporte le fichier PKCS7 vers un tableau de certificats PEM
    • openssl_pkcs7_sign — Signe un message S/MIME
    • openssl_pkcs7_verify — Vérifie la signature d'un message S/MIME
    • openssl_pkey_derive — Computes shared secret for public value of remote and local DH or ECDH key
    • 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 les détails de la 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 un objet
    • openssl_x509_verify — Vérifie la signature digitale d'un certificat x509 par rapport à une clé publique
  • OpenSSLCertificate — The OpenSSLCertificate class
  • OpenSSLCertificateSigningRequest — The OpenSSLCertificateSigningRequest class
  • OpenSSLAsymmetricKey — The OpenSSLAsymmetricKey class


Introduction

Cette extension lie des fonctions de la librairie » OpenSSL pour le chiffrement et déchiffremment symétrique et asymétrique, PBKDF2, PKCS7, PKCS12, X509 et autre opération cryptographique. De plus elle fournit une implémentation de flux TLS.

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 la librairie » OpenSSL. PHP 7.0 nécessite OpenSSL >= 0.9.8, < 1.2. PHP 7.1-8.0 nécessitent OpenSSL >= 1.0.1, < 3.0. PHP >= 8.1 nécessite OpenSSL >= 1.2, < 4.0.

Avertissement

Vous êtes vivement encouragé à utiliser la version maintenue 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.

L'option de configuration --with-system-ciphers est disponible qui fait que PHP utilise la liste de chiffrement système au lieu des valeurs par défaut codé en dur.

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 F.A.Q 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, ou, à partir de OpenSSL 1.1, libcrypto-*.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. Un fichier de configuration de base est inclus dans les distributions de PHP pour win32 dans le dossier extras/ssl.

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:\Program Files\Common Files\SSL\openssl.cnf (x64) or C:\Program Files (x86)\Common Files\SSL\openssl.cnf (x86), ou, avant PHP 7.4.0, c:\usr\local\ssl\openssl.cnf.

Dans votre installation, vous devrez décider si vous allez installer le fichier de configuration dans le chemin par défaut 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 options des fonctions qui requièrent un fichier de configuration.

Attention

Veiller à ce que les utilisateurs non privilégiés ne soient pas autorisés à modifier openssl.cnf.

Historique

Version | Description
7.4.0 | Le chemin de configuration par défaut d'OpenSSL a été modifié de C:\usr\local\ssl à C:\Program Files\Common Files\SSL et C:\Program Files (x86)\Common Files\SSL, respectivement.


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 | Historique
openssl.cafile | "" | INI_PERDIR |
openssl.capath | "" | INI_PERDIR |
Pour plus de détails sur les modes 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

Emplacement du fichier Certificate Authority sur le système de fichier local qui devrait être utilisé avec l'option de contexte verify_peer pour authentifier l'identité du pair distant.

openssl.capath string

Si cafile n'est pas spécifié ou si le certificat n'y est pas trouvé, le dossier pointé par capath est fouillé pour un certificat convenable. capath doit être un répertoire de certificat correctement haché.

Voir aussi les options du contexte de flux SSL.


Types de ressources

Antérieur à PHP 8.0.0, il y avait 3 types de ressources définie dans le module OpenSSL :

  • OpenSSL key
  • OpenSSL X.509
  • OpenSSL X.509 CSR


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
  • Drapeaux/Constantes CMS
  • Algorithme de signature
  • Chiffrements
  • Constantes de version
  • Constantes d'identification du nom de serveur
  • Autres constantes

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 (int)
X509_PURPOSE_SSL_SERVER (int)
X509_PURPOSE_NS_SSL_SERVER (int)
X509_PURPOSE_SMIME_SIGN (int)
X509_PURPOSE_SMIME_ENCRYPT (int)
X509_PURPOSE_CRL_SIGN (int)
X509_PURPOSE_ANY (int)


Options de remplissage (Padding) pour le cryptage asymétrique

OPENSSL_PKCS1_PADDING (int)
OPENSSL_SSLV23_PADDING (int)
OPENSSL_NO_PADDING (int)
OPENSSL_PKCS1_OAEP_PADDING (int)


Types de clés

OPENSSL_KEYTYPE_RSA (int)
OPENSSL_KEYTYPE_DSA (int)
OPENSSL_KEYTYPE_DH (int)
OPENSSL_KEYTYPE_EC (int)
Cette constante n'est disponible que lorsque PHP est compilé avec OpenSSL 0.9.8+.


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 (int) | 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 (int) | 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 (int) | 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 untrusted_certificates_filename 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 (int) | Ne vérifie pas les certificats des signataires d'un message signé.
PKCS7_NOCHAIN (int) | 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 (int) | 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 untrusted_certificates_filename, avec la fonction openssl_pkcs7_verify()).
PKCS7_NOATTR (int) | 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 (int) | 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 (int) | Ne vérifie pas les signatures d'un message
PKCS7_NOOLDMIMETYPE (int) | Disponible à partir de PHP 8.3.0. Définit l'en-tête HTTP Content-Type sur application/pkcs7-mime au lieu de application/x-pkcs7-mime pour chiffrer un message.


Drapeaux/Constantes CMS

Les fonctions CMS utilise des drapeaux qui sont spécifiés utilisant un masque de bit qui inclus une ou plusieurs des valeurs suivantes :

CMS CONSTANTS
Constantes | Description
OPENSSL_CMS_TEXT (int) | Ajoute l'en-tête content type text/plain au message chiffré/signé. Lors du déchiffrement/vérification, ces en-têtes sont enlevés de la sortie, si le message déchiffré ou vérifié n'est pas du type MIME text/plain alors une erreur surviendra.
OPENSSL_CMS_BINARY (int) | Normalement le message d'entrée est converti en sa forme "canonique" qui en réalité utilise CR et LF comme fin de ligne: tel que requis par la spécification CMS. Quand cette option est présente, aucune translation n'est effectué. Ceci est utile lors de la gestion de données binaire qui peuvent ne pas être en format CMS.
OPENSSL_CMS_NOINTERN (int) | Lors de la vérification d'un message, les certificats (le cas échéant) inclus dans le message sont normalement recherchés pour le certificat de signature. Avec cette option, seuls les certificats spécifiés dans le paramètre untrusted_certificates_filename de openssl_cms_verify() sont utilisés. Les certificats fournis peuvent cependant toujours être utilisés comme des autorités de certification non fiables.
OPENSSL_CMS_NOVERIFY (int) | Ne vérifie pas le certificat du signataire d'un message signé.
OPENSSL_CMS_NOCERTS (int) | Lors de la signature d'un message le certificat du signataire est normalement inclus, avec cette option il est exclus. Ceci réduira la taille du message signé mais le vérificateur doit avoir une copie du certificat du signataire disponible localement (passé en utilisant untrusted_certificates_filename de openssl_cms_verify() par exemple).
OPENSSL_CMS_NOATTR (int) | Normalement quand un message est signé, un jeu d'attributs sont inclus qui inclus l'heure de signature et les algorithmes symétriques supportés. Avec cette options ils ne sont pas inclus.
OPENSSL_CMS_DETACHED (int) | Lors de la signature d'un message, la signature cleartext est utilisé avec le MIME type "multipart/signed". Ceci est le comportement par défaut, si vous ne spécifiez aucun flags à openssl_cms_sign(). Si vous désactivez cette option, le message sera signé en utilisant une signature opaque, qui est plus résistante à la translation par les relais mail mais ne peut pas être lu par les agents mail qui ne supportent pas S/MIME.
OPENSSL_CMS_NOSIGS (int) | Ne tente pas de vérifier les signatures d'un message
OPENSSL_CMS_OLDMIMETYPE (int) | Disponible à partir de PHP 8.3.0. Définit l'en-tête HTTP Content-Type sur application/x-pkcs7-mime au lieu de application/pkcs7-mime pour chiffrer un message.


Algorithme de signature

OPENSSL_ALGO_DSS1 (int)
OPENSSL_ALGO_SHA1 (int)
Utilisé comme algorithme par défaut pour les fonctions openssl_sign() et openssl_verify().
OPENSSL_ALGO_SHA224 (int)
OPENSSL_ALGO_SHA256 (int)
OPENSSL_ALGO_SHA384 (int)
OPENSSL_ALGO_SHA512 (int)
OPENSSL_ALGO_RMD160 (int)
OPENSSL_ALGO_MD5 (int)
OPENSSL_ALGO_MD4 (int)
OPENSSL_ALGO_MD2 (int)
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+.


Chiffrements

OPENSSL_CIPHER_RC2_40 (int)
OPENSSL_CIPHER_RC2_128 (int)
OPENSSL_CIPHER_RC2_64 (int)
OPENSSL_CIPHER_DES (int)
OPENSSL_CIPHER_3DES (int)
OPENSSL_CIPHER_AES_128_CBC (int)
OPENSSL_CIPHER_AES_192_CBC (int)
OPENSSL_CIPHER_AES_256_CBC (int)


  • « Chiffrements
  • Constantes d'identification du nom de serveur »
  • PHP Manual
  • Constantes pré-définies
  • Constantes de version

Constantes de version

OPENSSL_VERSION_TEXT (string)
OPENSSL_VERSION_NUMBER (int)


Constantes d'identification du nom de serveur

OPENSSL_TLSEXT_SERVER_NAME (int)
Si le support SNI est disponible ou non.

Note:

Cette constante n'est disponible que lorsque PHP est compilé avec OpenSSL 0.9.8j ou ultérieur


Autres constantes

OPENSSL_RAW_DATA (int)
Si OPENSSL_RAW_DATA est définie dans openssl_encrypt() ou openssl_decrypt(), les données retournées sont retournées tel quel. Quand ceci n'est pas spécifié, les données retournées à l'appeleur sont encodées en Base64.
OPENSSL_ZERO_PADDING (int)
Par défaut, les opérations de cryptage sont complétées en utilisant des blocs standards et la complétion est vérifiée et supprimée lors du décryptage. Si la constante OPENSSL_ZERO_PADDING est définie dans le paramètre options de la fonction openssl_encrypt() ou openssl_decrypt() alors aucune complétion ne sera réalisée, la quantité totale de données cryptées devra alors être un multiple de la taille du bloc ou bien une erreur surviendra.
OPENSSL_ENCODING_SMIME (int)
Indique que l'encodage est S/MIME.
OPENSSL_ENCODING_DER (int)
Indique que l'encodage est DER (Distinguished Encoding Rules).
OPENSSL_ENCODING_PEM (int)
Indique que l'encodage est PEM (Privacy-Enhanced Mail).


Paramètres clés/certificats

Un bon nombre de fonctions OpenSSL exigent une clé ou un certificat comme paramètres. Les méthodes suivantes peuvent être utilisé pour les récupérer:

  • Certificats

    1. Une instance de OpenSSLCertificate (ou antérieur à PHP 8.0.0, une ressource de type OpenSSL 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, peut commencer par -----BEGIN CERTIFICATE-----.

  • Demandes de signature de certificat (Certificate Signing Requests abrévié CSRs)

    1. Une instance de OpenSSLCertificateSigningRequest (ou antérieur à PHP 8.0.0, une ressource de type OpenSSL X.509 CSR) retournée par openssl_csr_new()
    2. Une chaîne de caractères ayant le format file://path/to/csr.pem ; le fichier nommé doit contenir un CSR encodé au format PEM.
    3. Une chaîne de caractères contenant le contenu d'un CSR, encodé au format PEM, peut commencer par -----BEGIN CERTIFICATE REQUEST-----.

  • Clés publiques/privées

    1. Une instance de OpenSSLAsymmetricKey (ou antérieur à PHP 8.0.0, une ressource de type OpenSSL key) retournée par openssl_csr_new()
    2. Pour les clés publiques uniquement : une instance de OpenSSLCertificate (ou antérieur à PHP 8.0.0, une ressource de type OpenSSL 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 de caractères contenant le contenu d'un certificat/clé, encodé au format PEM, peut commencer par -----BEGIN PUBLIC KEY-----.
    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 ca_info 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_cipher_key_length — Gets the cipher key length
  • openssl_cms_decrypt — Decrypt a CMS message
  • openssl_cms_encrypt — Encrypt a CMS message
  • openssl_cms_read — Export the CMS file to an array of PEM certificates
  • openssl_cms_sign — Sign a file
  • openssl_cms_verify — Verify a CMS signature
  • 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 CSR
  • openssl_csr_get_subject — Retourne le sujet d'une CSR
  • 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échiffrer les données
  • openssl_dh_compute_key — Calcule un secret partagé pour une valeur publique de la clé DH publique distante et la clé DH locale
  • openssl_digest — Calcule un digest
  • openssl_encrypt — Chiffre 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 de chiffrements disponibles
  • openssl_get_curve_names — Récupère la liste des noms de courbes disponibles pour ECC
  • 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
  • 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_read — Exporte le fichier PKCS7 vers un tableau de certificats PEM
  • openssl_pkcs7_sign — Signe un message S/MIME
  • openssl_pkcs7_verify — Vérifie la signature d'un message S/MIME
  • openssl_pkey_derive — Computes shared secret for public value of remote and local DH or ECDH key
  • 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 les détails de la 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 un objet
  • openssl_x509_verify — Vérifie la signature digitale d'un certificat x509 par rapport à une clé publique


Récupère la longueur cipher iv

  • « Fonctions OpenSSL
  • openssl_cipher_key_length »
  • PHP Manual
  • Fonctions OpenSSL
  • Récupère la longueur cipher iv

openssl_cipher_iv_length

(PHP 5 >= 5.3.3, PHP 7, PHP 8)

openssl_cipher_iv_length — Récupère la longueur cipher iv

Description

openssl_cipher_iv_length(string $cipher_algo): int|false

Récupère la longueur cipher du vecteur d'initialisation.

Liste de paramètres

cipher_algo

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

Émet 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;
?>

Résultat de l'exemple ci-dessus est similaire à :

16


Gets the cipher key length

  • « openssl_cipher_iv_length
  • openssl_cms_decrypt »
  • PHP Manual
  • Fonctions OpenSSL
  • Gets the cipher key length

openssl_cipher_key_length

(PHP 8 >= 8.2.0)

openssl_cipher_key_length — Gets the cipher key length

Description

openssl_cipher_key_length(string $cipher_algo): int|false

Gets the cipher key length.

Liste de paramètres

cipher_algo

The cipher method, see openssl_get_cipher_methods() for a list of potential values.

Valeurs de retour

Returns the cipher length on success, ou false si une erreur survient.

Erreurs / Exceptions

Emits an E_WARNING level error when the cipher algorithm is unknown.

Exemples

Exemple #1 openssl_cipher_key_length() example

<?php
$method = 'AES-128-CBC';

var_dump(openssl_cipher_key_length($method));
?>

Résultat de l'exemple ci-dessus est similaire à :

int(16)


Decrypt a CMS message

  • « openssl_cipher_key_length
  • openssl_cms_encrypt »
  • PHP Manual
  • Fonctions OpenSSL
  • Decrypt a CMS message

openssl_cms_decrypt

(PHP 8)

openssl_cms_decrypt — Decrypt a CMS message

Description

openssl_cms_decrypt(
string $input_filename,
string $output_filename,
OpenSSLCertificate|string $certificate,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string|null $private_key = null,
int $encoding = OPENSSL_ENCODING_SMIME
): bool

Decrypts a CMS message.

Liste de paramètres

input_filename

The name of a file containing encrypted content.

output_filename

The name of the file to deposit the decrypted content.

certificate

The name of the file containing a certificate of the recipient.

private_key

The name of the file containing a PKCS#8 key.

encoding

The encoding of the input file. One of OPENSSL_ENCODING_SMIME, OPENSSL_ENCODING_DER or OPENSSL_ENCODING_PEM.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.


Encrypt a CMS message

  • « openssl_cms_decrypt
  • openssl_cms_read »
  • PHP Manual
  • Fonctions OpenSSL
  • Encrypt a CMS message

openssl_cms_encrypt

(PHP 8)

openssl_cms_encrypt — Encrypt a CMS message

Description

openssl_cms_encrypt(
string $input_filename,
string $output_filename,
OpenSSLCertificate|array|string $certificate,
?array $headers,
int $flags = 0,
int $encoding = OPENSSL_ENCODING_SMIME,
int $cipher_algo = OPENSSL_CIPHER_AES_128_CBC
): bool

This function encrypts content to one or more recipients, based on the certificates that are passed to it.

Liste de paramètres

input_filename

The file to be encrypted.

output_filename

The output file.

certificate

Recipients to encrypt to.

headers

Headers to include when S/MIME is used.

flags

Flags to be passed to CMS_sign.

encoding

An encoding to output. One of OPENSSL_ENCODING_SMIME, OPENSSL_ENCODING_DER or OPENSSL_ENCODING_PEM.

cipher_algo

A cypher to use.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | The default cipher algorithm (cipher_algo) is now AES-128-CBC (OPENSSL_CIPHER_AES_128_CBC). Previously, PKCS7/CMS was used (OPENSSL_CIPHER_RC2_40).


Export the CMS file to an array of PEM certificates

  • « openssl_cms_encrypt
  • openssl_cms_sign »
  • PHP Manual
  • Fonctions OpenSSL
  • Export the CMS file to an array of PEM certificates

openssl_cms_read

(PHP 8)

openssl_cms_read — Export the CMS file to an array of PEM certificates

Description

openssl_cms_read(string $input_filename, array &$certificates): bool

Performs the exact analog to openssl_pkcs7_read().

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

input_filename

certificates

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.


Sign a file

  • « openssl_cms_read
  • openssl_cms_verify »
  • PHP Manual
  • Fonctions OpenSSL
  • Sign a file

openssl_cms_sign

(PHP 8)

openssl_cms_sign — Sign a file

Description

openssl_cms_sign(
string $input_filename,
string $output_filename,
OpenSSLCertificate|string $certificate,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key,
?array $headers,
int $flags = 0,
int $encoding = OPENSSL_ENCODING_SMIME,
?string $untrusted_certificates_filename = null
): bool

This function signs a file with an X.509 certificate and key.

Liste de paramètres

input_filename

The name of the file to be signed.

output_filename

The name of the file to deposit the results.

certificate

The signing certificate. See Key/Certificate parameters for a list of valid values.

private_key

The key associated with certificate. See Key/Certificate parameters for a list of valid values.

headers

An array of headers to be included in S/MIME output.

flags

Flags to be passed to cms_sign().

encoding

The encoding of the output file. One of OPENSSL_ENCODING_SMIME, OPENSSL_ENCODING_DER or OPENSSL_ENCODING_PEM.

untrusted_certificates_filename

Intermediate certificates to be included in the signature.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 openssl_cms_sign() example

<?php

openssl_cms_sign('input.txt', 'output.txt', 'file://cert.pem', 'file://privkey.pem', null, OPENSSL_CMS_BINARY, OPENSSL_ENCODING_DER, 'chain.pem');
?>


Verify a CMS signature

  • « openssl_cms_sign
  • openssl_csr_export_to_file »
  • PHP Manual
  • Fonctions OpenSSL
  • Verify a CMS signature

openssl_cms_verify

(PHP 8)

openssl_cms_verify — Verify a CMS signature

Description

openssl_cms_verify(
string $input_filename,
int $flags = 0,
?string $certificates = null,
array $ca_info = [],
?string $untrusted_certificates_filename = null,
?string $content = null,
?string $pk7 = null,
?string $sigfile = null,
int $encoding = OPENSSL_ENCODING_SMIME
): bool

This function verifies a CMS signature, either attached or detached, with the specified encoding.

Liste de paramètres

input_filename

The input file.

flags

Flags to pass to cms_verify().

certificates

A file with the signer certificate and optionally intermediate certificates.

ca_info

An array containing self-signed certificate authority certificates.

untrusted_certificates_filename

A file containing additional intermediate certificates.

content

A file pointing to the content when signatures are detached.

pk7

sigfile

A file to save the signature to.

encoding

The encoding of the input file. One of OPENSSL_ENCODING_SMIME, OPENSSL_ENCODING_DER or OPENSSL_ENCODING_PEM.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.


Exporte une CSR vers un fichier

  • « openssl_cms_verify
  • 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, PHP 8)

openssl_csr_export_to_file — Exporte une CSR vers un fichier

Description

openssl_csr_export_to_file(OpenSSLCertificateSigningRequest|string $csr, string $output_filename, bool $no_text = true): bool

openssl_csr_export_to_file() prend la CSR représentée par le paramètre csr et la sauve au format PEM dans le fichier nommé output_filename.

Liste de paramètres

csr

Voir les paramètres CSR pour obtenir une liste des valeurs valides.

output_filename

Chemin vers le fichier de sortie.

no_text

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.

Historique

Version | Description
8.0.0 | csr accepte désormais une instance de OpenSSLCertificateSigningRequest ; auparavant, une ressource de type OpenSSL X.509 CSR était acceptée.

Exemples

Exemple #1 openssl_csr_export_to_file() example

<?php
$subject = array(
"commonName" => "example.com",
);
$private_key = openssl_pkey_new(array(
"private_key_bits" => 2048,
"private_key_type" => OPENSSL_KEYTYPE_RSA,
));
$csr = openssl_csr_new($subject, $private_key, array('digest_alg' => 'sha384') );
openssl_pkey_export_to_file($private_key, 'example-priv.key');
// En même temps que le sujet, la CSR contient la clé publique correspondant à la clé privée
openssl_csr_export_to_file($csr, 'example-csr.pem');
?>

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, PHP 8)

openssl_csr_export — Exporte un CSR vers un fichier ou une variable

Description

openssl_csr_export(OpenSSLCertificateSigningRequest|string $csr, string &$output, bool $no_text = true): bool

openssl_csr_export() prend la demande de signature de certificat représentée par CSR et la stocke au format PEM dans output, qui est passé par référence.

Liste de paramètres

csr

Voir les paramètres CSR pour obtenir une liste des valeurs valides.

output

en cas de succès, cette chaîne contiendra le CSR encodé en PEM

no_text

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.

Historique

Version | Description
8.0.0 | csr accepte désormais une instance de OpenSSLCertificateSigningRequest ; auparavant, une ressource de type OpenSSL X.509 CSR était accepté.

Exemples

Exemple #1 openssl_csr_export() example

<?php
$subject = array(
"commonName" => "example.com",
);
$private_key = openssl_pkey_new(array(
"private_key_bits" => 2048,
"private_key_type" => OPENSSL_KEYTYPE_RSA,
));
$configargs = array(
'digest_alg' => 'sha256WithRSAEncryption'
);
$csr = openssl_csr_new($subject, $private_key, $configargs);
openssl_csr_export($csr, $csr_string);
echo $csr_string;
?>

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 CSR

  • « openssl_csr_export
  • openssl_csr_get_subject »
  • PHP Manual
  • Fonctions OpenSSL
  • Retourne la clé publique d'un CSR

openssl_csr_get_public_key

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

openssl_csr_get_public_key — Retourne la clé publique d'un CSR

Description

openssl_csr_get_public_key(OpenSSLCertificateSigningRequest|string $csr, bool $short_names = true): OpenSSLAsymmetricKey|false

openssl_csr_get_public_key() extrait la clé publique de la csr et la prépare pour une utilisation par d'autres fonctions.

Liste de paramètres

csr

Voir les paramètres CSR pour obtenir une liste des valeurs valides.

short_names
Avertissement

Ce paramètre est ignoré

Valeurs de retour

Retourne une OpenSSLAsymmetricKey en cas de succès, ou false en cas d'erreur.

Historique

Version | Description
8.0.0 | En cas de succès, cette fonction retourne désormais une instance de OpenSSLAsymmetricKey ; auparavant une ressource de type OpenSSL key était retournée.
8.0.0 | csr accepte désormais une instance de OpenSSLCertificateSigningRequest ; auparavant, une ressource de type OpenSSL X.509 CSR était acceptée.

Exemples

Exemple #1 openssl_csr_get_public_key() example

<?php
$subject = array(
"commonName" => "example.com",
);
$private_key = openssl_pkey_new(array(
"private_key_bits" => 2048,
"private_key_type" => OPENSSL_KEYTYPE_RSA,
));
$csr = openssl_csr_new($subject, $private_key, array('digest_alg' => 'sha256') );
$public_key = openssl_csr_get_public_key($csr);
$info = openssl_pkey_get_details($public_key);
echo $info['key'];
?>

Voir aussi

  • openssl_csr_get_subject() - Retourne le sujet d'une CSR
  • openssl_csr_new() - Génère une CSR
  • openssl_pkey_get_details() - Retourne un tableau contenant les détails de la clé
  • 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


Retourne le sujet d'une CSR

  • « openssl_csr_get_public_key
  • openssl_csr_new »
  • PHP Manual
  • Fonctions OpenSSL
  • Retourne le sujet d'une CSR

openssl_csr_get_subject

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

openssl_csr_get_subject — Retourne le sujet d'une CSR

Description

openssl_csr_get_subject(OpenSSLCertificateSigningRequest|string $csr, bool $short_names = true): array|false

openssl_csr_get_subject() retournes les informations sur le nom distinctif du sujet codées dans le csr, y compris les champs commonName (CN), organizationName (O), countryName (C) etc.

Liste de paramètres

csr

Voir les paramètres CSR pour obtenir une liste des valeurs valides.

short_names

shortnames contrôle comment les données sont indexés dans le tableau - si shortnames est true (par défaut) alors les champs seront indexés avec la forme courte du nom, sinon le nom complet sera utilisé - par exemple : CN est le nom court de commonName.

Valeurs de retour

Retourne un tableau associatif avec les description des sujets, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | csr accepte désormais une instance de OpenSSLCertificateSigningRequest ; auparavant, une ressource de type OpenSSL X.509 CSR était accepté.

Exemples

Exemple #1 Exemple avec openssl_csr_get_subject()

<?php
$subject = array(
"countryName" => "CA",
"stateOrProvinceName" => "Alberta",
"localityName" => "Calgary",
"organizationName" => "XYZ Widgets Inc",
"organizationalUnitName" => "PHP Documentation Team",
"commonName" => "Wez Furlong",
"emailAddress" => "wez@example.com",
);
$private_key = openssl_pkey_new(array(
"private_key_bits" => 2048,
"private_key_type" => OPENSSL_KEYTYPE_RSA,
));
$configargs = array(
'digest_alg' => 'sha512WithRSAEncryption'
);
$csr = openssl_csr_new($subject, $privkey, $configargs);
print_r(openssl_csr_get_subject($csr));
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [C] => CA
    [ST] => Alberta
    [L] => Calgary
    [O] => XYZ Widgets Inc
    [OU] => PHP Documentation Team
    [CN] => Wez Furlong
    [emailAddress] => wez@example.com
)

Voir aussi

  • openssl_csr_new() - Génère une CSR
  • openssl_csr_get_public_key() - Retourne la clé publique d'un CSR
  • openssl_x509_parse() - Analyse un certificat X509


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, PHP 8)

openssl_csr_new — Génère une CSR

Description

openssl_csr_new(
array $distinguished_names,
OpenSSLAsymmetricKey &$private_key,
?array $options = null,
?array $extra_attributes = null
): OpenSSLCertificateSigningRequest|false

openssl_csr_new() génère une nouvelle CSR, requête de signature de certificat), basée sur les informations apportés par distinguished_names.

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

distinguished_names

Le nom distingué ou champs de sujets qui doit être utilisé dans le certificat.

private_key

private_key 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.

options

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 options. 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 options, elles se comportent comme leurs équivalents dans openssl.conf, selon la liste suivante.

Écrasement de configuration
options | type | Équivalent de openssl.conf | description
digest_alg | string | default_md | Méthode de digeste ou signature de hachage, généralement un de openssl_get_md_methods()
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 | int | default_bits | Spécifie la longueur en bits de la clé privée
private_key_type | int | none | Spécifie le type de clé privée à créer. Cela peut être l'un de OPENSSL_KEYTYPE_DSA, OPENSSL_KEYTYPE_DH, OPENSSL_KEYTYPE_RSA ou OPENSSL_KEYTYPE_EC. La valeur par défaut est OPENSSL_KEYTYPE_RSA.
encrypt_key | bool | encrypt_key | La clé (avec mot de passe) exportée doit-elle être chiffrée?
encrypt_key_cipher | int | none | Une des constantes cipher.
curve_name | string | none | Un de openssl_get_curve_names().
config | string | N/A | Chemin vers votre fichier openssl.conf alternatif.

extra_attributes

extra_attributes est utilisé pour spécifier des options de configuration supplémentaires pour la CSR. Les deux paramètres distinguished_names et extra_attributes 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 ou false si une erreur survient.

Historique

Version | Description
8.0.0 | csr accepte désormais une instance de OpenSSLCertificateSigningRequest ; auparavant, une ressource de type OpenSSL X.509 CSR était acceptée.
8.0.0 | En cas de succès, cette fonction retourne désormais une instance de OpenSSLAsymmetricKey ; auparavant une ressource de type OpenSSL key était retournée.
7.1.0 | options supporte désormais curve_name.

Exemples

Exemple #1 Création d'un certificat autosigné

<?php
// pour les certificats SSL serveur, le commonName est le nom de domaine à sécuriser
// pour les certificats e-mail S/MIME le commonName est le propriétaire de l'adresse e-mail
// les champs d'emplacement et d'identification font référence au propriétaire du domaine ou à l'objet de l'e-mail à sécuriser
$dn = array(
"countryName" => "GB",
"stateOrProvinceName" => "Somerset",
"localityName" => "Glastonbury",
"organizationName" => "The Brain Room Limited",
"organizationalUnitName" => "PHP Documentation Team",
"commonName" => "Wez Furlong",
"emailAddress" => "wez@example.com"
);

// Génère une nouvelle paire de clés privée (et publique)
$privkey = openssl_pkey_new(array(
"private_key_bits" => 2048,
"private_key_type" => OPENSSL_KEYTYPE_RSA,
));

// Génère une requête de signature de certificat
$csr = openssl_csr_new($dn, $privkey, array('digest_alg' => 'sha256'));

// Génère un certificat autosigné, valide pour 365 jours
$x509 = openssl_csr_sign($csr, null, $privkey, $days=365, array('digest_alg' => 'sha256'));

// Conservez votre clé privée, CSR et certificat autosigné pour une utilisation ultérieur
openssl_csr_export($csr, $csrout) and var_dump($csrout);
openssl_x509_export($x509, $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";
}
?>

Exemple #2 Créer un certficat ECC autosigné (à partir de PHP 7.1.0)

<?php
$subject = array(
"commonName" => "docs.php.net",
);

// Génère une nouvelle paire de clés privée (et publique)
$private_key = openssl_pkey_new(array(
"private_key_type" => OPENSSL_KEYTYPE_EC,
"curve_name" => 'prime256v1',
));

// Génère une requête de signature de certificat
$csr = openssl_csr_new($subject, $private_key, array('digest_alg' => 'sha384'));

// Génère un certificat EC autosigné
$x509 = openssl_csr_sign($csr, null, $private_key, $days=365, array('digest_alg' => 'sha384'));
openssl_x509_export_to_file($x509, 'ecc-cert.pem');
openssl_pkey_export_to_file($private_key, 'ecc-private.key');
?>

Voir aussi

  • openssl_csr_sign() - Signe un CSR avec un autre certificat (ou lui-même) et génère un certificat


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, PHP 8)

openssl_csr_sign — Signe un CSR avec un autre certificat (ou lui-même) et génère un certificat

Description

openssl_csr_sign(
OpenSSLCertificateSigningRequest|string $csr,
OpenSSLCertificate|string|null $ca_certificate,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key,
int $days,
?array $options = null,
int $serial = 0
): OpenSSLCertificate|false

openssl_csr_sign() génère un certificat x509 depuis le 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 ceci peut aussi être le chemin vers une CSR encodée au format PEM si spécifiée avec file://path/to/csr ou une chaîne exportée générée par openssl_csr_export().

ca_certificate

Le certificat généré sera signé par le certificat ca_certificate. Si ca_certificate vaut null, le certificat généré sera autosigné.

private_key

private_key est la clé privée qui correspond au certificat ca_certificate.

days

days spécifie la durée pour laquelle le certificat est valide, en nombre de jours.

options

Vous pouvez affiner la signature CSR avec options. Voir la fonction openssl_csr_new() pour plus d'informations sur options.

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 une OpenSSLCertificate en cas de succès, false sinon.

Historique

Version | Description
8.0.0 | En cas de succès, cette fonction retourne désormais une instance de OpenSSLCertificate ; auparavant une ressource de type OpenSSL X.509 était retournée.
8.0.0 | csr accepte désormais une instance de OpenSSLCertificateSigningRequest ; auparavant, une ressource de type OpenSSL X.509 CSR était acceptée.
8.0.0 | ca_certificate accepte désormais une instance de OpenSSLCertificate ; auparavant, une ressource de type OpenSSL X.509 était acceptée.
8.0.0 | ca_certificate accepte désormais une instance de OpenSSLAsymmetricKey ou OpenSSLCertificate ; auparavant, une ressource de type OpenSSL key ou OpenSSL X.509 était acceptée.

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, array('digest_alg'=>'sha256') );

// 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échiffrer les données

  • « openssl_csr_sign
  • openssl_dh_compute_key »
  • PHP Manual
  • Fonctions OpenSSL
  • Déchiffrer les données

openssl_decrypt

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

openssl_decrypt — Déchiffrer les données

Description

openssl_decrypt(
string $data,
string $cipher_algo,
string $passphrase,
int $options = 0,
string $iv = "",
?string $tag = null,
string $aad = ""
): string|false

Prend une chaine brute ou base64 encodée et la déchiffre en utilisant la méthode et la clé passées.

Liste de paramètres

data

Le message chiffré à déchiffrer.

cipher_algo

L'algorithme de chiffrement. Pour la liste des algorithmes de chiffrement disponible, utiliser openssl_get_cipher_methods().

passphrase

La clé.

options

Le paramètre options peut prendre comme valeur OPENSSL_RAW_DATA ou OPENSSL_ZERO_PADDING.

iv

Un vecteur d'initialisation non-nul.

tag

La balise d'authentification en mode de chiffrement AEAD. Si elle est incorrecte, l'authentification échoue et la fonction retourne false.

Attention

La longueur de tag n'est pas vérifié par la fonction. C'est la responsabilité de l'appeleur de s'assurer que la longueur du tag correspond à la longueur du tag reçu quand openssl_encrypt() a été appelée. Sinon, le déchiffrement peut réussir si le début du tag donné correspond au début du vrai tag.

aad

Données supplémentaires authentifiées.

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 cipher_algo.

Émets une erreur de niveau E_WARNING si une valeur vide est passée comme paramètre iv.

Historique

Version | Description
8.1.0 | tag est désormais nullable.
7.1.0 | Les paramètres tag et aad ont été ajoutée.

Voir aussi

  • openssl_encrypt() - Chiffre les données


Calcule un secret partagé pour une valeur publique de la clé DH publique distante et la clé DH locale

  • « openssl_decrypt
  • openssl_digest »
  • PHP Manual
  • Fonctions OpenSSL
  • Calcule un secret partagé pour une valeur publique de la clé DH publique distante et la clé DH locale

openssl_dh_compute_key

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

openssl_dh_compute_key — Calcule un secret partagé pour une valeur publique de la clé DH publique distante et la clé DH locale

Description

openssl_dh_compute_key(string $public_key, OpenSSLAsymmetricKey $private_key): string|false

Le secret partagé retourné par openssl_dh_compute_key() est souvent utilisé comme une clé de chiffrement pour communiquer secrètement avec une partie distante. Ceci est connue sous l'échange de clé Diffie-Hellman.

Note: ECDH n'est supporté qu'à partir de PHP 8.1.0 et OpenSSL 3.0.0.

Liste de paramètres

public_key

Clé DH publique de la partie distante.

private_key

Une clé DH privée locale, correspondant à la clé publique à partager avec la partie distante.

Valeurs de retour

Retourne le secret partagé en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | private_key accepte désormais une instance de OpenSSLAsymmetricKey ; auparavant, une ressource de type OpenSSL key était acceptée.

Exemples

Exemple #1 Calcule un secret partagé

Tout d'abord générez localement une paire de clés DH publique / privée et demandez à la partie distante de faire de même. Nous devons utiliser l'utilitaire de ligne de commande openssl

# générer une paire de clé privée/publique
openssl dhparam -out dhparam.pem 2048
openssl genpkey -paramfile dhparam.pem -out privatekey.pem

# extraire uniquement la clé publique
openssl pkey -in privatekey.pem -pubout -out publickey.pem

Maintenant, envoyez votre clé publique à la partie distante. Utilisez la commande openssl pkey pour afficher la clé publique qui vous sera envoyé par la partie distante.

openssl pkey -pubin -in remotepublickey.pem -text -noout

Résultat de l'exemple ci-dessus est similaire à :

PKCS#3 DH Public-Key: (2048 bit)
    public-key:
        67:e5:e5:fa:e0:7b:0f:96:2c:dc:96:44:5f:50:02:
        9e:8d:c2:6c:04:68:b0:d1:1d:75:66:fc:63:f5:e3:
        42:30:b8:96:c1:45:cc:08:60:b4:21:3b:dd:ee:66:
        88:db:77:d9:1e:11:89:d4:5c:f2:7a:f2:f1:fe:1c:
        77:9d:6f:13:b8:b2:56:00:ef:cb:3b:60:79:74:02:
        98:f5:f9:8e:3e:b5:62:08:de:ca:8c:c3:40:4a:80:
        79:d5:43:06:17:a8:19:56:af:cc:95:5e:e2:32:2d:
        d2:14:7b:76:5a:9a:f1:3c:76:76:35:cc:7b:c1:a5:
        f4:39:e5:b6:ca:71:3f:7c:3f:97:e5:ab:86:c1:cd:
        0e:e6:ee:04:c9:e6:2d:80:7e:59:c0:49:eb:b6:64:
        4f:a8:f9:bb:a3:87:b3:3d:76:01:9e:2b:16:94:a4:
        37:30:fb:35:e2:63:be:23:90:b9:ef:3f:46:46:04:
        94:8f:60:79:7a:51:55:d6:1a:1d:f5:d9:7f:4a:3e:
        aa:ac:b0:d0:82:cc:c2:e0:94:e0:54:c1:17:83:0b:
        74:08:4d:5a:79:ae:ff:7f:1c:04:ab:23:39:4a:ae:
        87:83:55:43:ab:7a:7c:04:9d:20:80:bb:af:5f:16:
        a3:e3:20:b9:21:47:8c:f8:7f:a8:60:80:9e:61:77:
        36
 [...abbreviated...]

Utiliser cette clé publique en tant que paramètre pour openssl_dh_compute_key() fin de calculer le secret partagé.

<?php
$remote_public_key = '67e5e5fae07b0f962cdc96445f50029e8dc26c0468b0d11d7566fc63f5e34230b896c145cc0860b4213bddee6688db77d91e1189d45cf27af2f1fe1c779d6f13b8b25600efcb3b6079740298f5f98e3eb56208deca8cc3404a8079d5430617a81956afcc955ee2322dd2147b765a9af13c767635cc7bc1a5f439e5b6ca713f7c3f97e5ab86c1cd0ee6ee04c9e62d807e59c049ebb6644fa8f9bba387b33d76019e2b1694a43730fb35e263be2390b9ef3f464604948f60797a5155d61a1df5d97f4a3eaaacb0d082ccc2e094e054c117830b74084d5a79aeff7f1c04ab23394aae87835543ab7a7c049d2080bbaf5f16a3e320b921478cf87fa860809e617736';

$local_priv_key = openssl_pkey_get_private('file://privatekey.pem');

$shared_secret = openssl_dh_compute_key(hex2bin($remote_public_key), $local_priv_key);
echo bin2hex($shared_secret)."\n";
?>

Exemple #2 Générer une paire de clé DH publique/privée en PHP

Tout d'abord, générer le nombre premier DH

openssl dhparam -out dhparam.pem 2048
openssl dh -in dhparam.pem -noout  -text

Résultat de l'exemple ci-dessus est similaire à :

PKCS#3 DH Parameters: (2048 bit)
        prime:
            00:a3:25:1e:73:3f:44:b9:2b:ee:f4:9d:9f:37:6a:
            4b:fd:1d:bd:f4:af:da:c8:10:77:59:41:c6:5f:73:
            d2:88:29:39:cd:1c:5f:c3:9f:0f:22:d2:9c:20:c1:
            e4:c0:18:03:b8:b6:d8:da:ad:3b:39:a6:da:8e:fe:
            12:30:e9:03:5d:22:ba:ef:18:d2:7b:69:f9:5b:cb:
            78:c6:0c:8c:6b:f2:49:92:c2:49:e0:45:77:72:b3:
            55:36:30:f2:40:17:89:18:50:03:fa:2d:54:7a:7f:
            34:4c:73:32:b6:88:14:51:14:be:80:57:95:e6:a3:
            f6:51:ff:17:47:4f:15:d6:0e:6c:47:53:72:2c:2a:
            4c:21:cb:7d:f3:49:97:c9:47:5e:40:33:7b:99:52:
            7e:7a:f3:52:27:80:de:1b:26:6b:40:bb:14:11:0b:
            fb:e6:d8:2f:cf:a0:06:2f:96:b9:1c:0b:b4:cb:d3:
            a6:62:9c:48:67:f6:81:f2:c6:ff:45:03:0a:9d:67:
            9d:ce:27:d9:6b:48:5d:ca:fb:c2:5d:84:9b:8b:cb:
            40:c7:a4:0c:8a:6e:f4:ab:ba:b6:10:c3:b8:25:4d:
            cf:60:96:f4:db:e8:00:1c:58:47:7a:fb:51:86:d1:
            22:d7:4e:94:31:7a:d5:da:3d:53:de:da:bb:64:8d:
            62:6b
        generator: 2 (0x2)

Le nombre premier et les valeurs du générateurs sont passées en tant que p et q dans openssl_pkey_new()

<?php
$configargs = array();
$configargs['p'] = hex2bin('00a3251e733f44b92beef49d9f376a4bfd1dbdf4afdac810775941c65f73d2882939cd1c5fc39f0f22d29c20c1e4c01803b8b6d8daad3b39a6da8efe1230e9035d22baef18d27b69f95bcb78c60c8c6bf24992c249e0457772b3553630f2401789185003fa2d547a7f344c7332b688145114be805795e6a3f651ff17474f15d60e6c4753722c2a4c21cb7df34997c9475e40337b99527e7af3522780de1b266b40bb14110bfbe6d82fcfa0062f96b91c0bb4cbd3a6629c4867f681f2c6ff45030a9d679dce27d96b485dcafbc25d849b8bcb40c7a40c8a6ef4abbab610c3b8254dcf6096f4dbe8001c58477afb5186d122d74e94317ad5da3d53dedabb648d626b');
$configargs['g'] = hex2bin('02');
$private_key = openssl_pkey_new(array('dh' => $configargs));
openssl_pkey_export_to_file($private_key,'privatekey.pem',$passphrase='y0urp@s5phr@se');

$details = openssl_pkey_get_details($private_key);
$local_pub_key = $details['dh']['pub_key'];
echo bin2hex($local_pub_key)."\n";
// vous pouvez envoyer votre clé publique à la partie distante

$details = openssl_pkey_get_details(openssl_pkey_get_public("file://remotepublickey.pem"));
$remote_public_key = $details['dh']['pub_key'];
$shared_secret = openssl_dh_compute_key($remote_public_key, $private_key);
echo bin2hex($shared_secret)."\n";
?>

Voir aussi

  • openssl_pkey_new() - Génère une nouvelle clé privée
  • openssl_pkey_get_details() - Retourne un tableau contenant les détails de la 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


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, PHP 8)

openssl_digest — Calcule un digest

Description

openssl_digest(string $data, string $digest_algo, bool $binary = false): string|false

Calcule une hash digest pour les données d'entrée en utilisant la méthode fournie. Retourne une chaine brute ou hexadécimale.

Liste de paramètres

data

Les données.

digest_algo

La méthode digest à utiliser par exemple "SHA256", voir openssl_get_md_methods() pour obtenir la liste des méthodes de digest disponibles.

binary

Passez à true et une donnée brute sera retournée, sinon la valeur retournée sera hexadé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 digest_algo.

Voir aussi

  • openssl_get_md_methods() - Récupère la liste des méthodes digest disponibles


Chiffre les données

  • « openssl_digest
  • openssl_error_string »
  • PHP Manual
  • Fonctions OpenSSL
  • Chiffre les données

openssl_encrypt

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

openssl_encrypt — Chiffre les données

Description

openssl_encrypt(
string $data,
string $cipher_algo,
string $passphrase,
int $options = 0,
string $iv = "",
string &$tag = null,
string $aad = "",
int $tag_length = 16
): string|false

Chiffre les données passées avec la méthode et la clé précisées. Retourne une chaîne de caractères brute ou encodé en base64.

Liste de paramètres

data

Les données du message en texte brut à chiffrer.

cipher_algo

La méthode de cipher. Pour une liste des méthodes de cipher disponible, utiliser openssl_get_cipher_methods().

passphrase

La passphrase. Si la passphrase est plus courte qu'attendu, elle est silencieusement capitonné avec des caractères NUL; si la passphrase est plus longue qu'attendu, elle est silencieusement tronqué.

options

options est une disjonction au niveau des bits des drapeaux OPENSSL_RAW_DATA et OPENSSL_ZERO_PADDING.

iv

Un vecteur d'initialisation non-nul.

tag

Le tag d'authentification passé par référence lors de l'utilisation du mode cipher AEAD (GCM ou CCM).

aad

Données supplémentaires authentifiées.

tag_length

La longueur du tag d'authentification. Sa valeur peut être entre 4 et 16 pour le mode GCM.

Valeurs de retour

Retourne la chaine chiffré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 cipher_algo.

Émet une erreur de niveau E_WARNING si une valeur vide est passé comme paramètre iv.

Historique

Version | Description
7.1.0 | Les paramètres tag, aad et tag_length ont été ajoutés.

Exemples

Exemple #1 Exemple de chiffrement authentifié AES en mode GCM pour PHP 7.1+

<?php
//$key devrait être généré précédemment d'une manière cryptographique, tel que openssl_random_pseudo_bytes
$plaintext = "message to be encrypted";
$cipher = "aes-128-gcm";
if (in_array($cipher, openssl_get_cipher_methods()))
{
$ivlen = openssl_cipher_iv_length($cipher);
$iv = openssl_random_pseudo_bytes($ivlen);
$ciphertext = openssl_encrypt($plaintext, $cipher, $key, $options=0, $iv, $tag);
//store $cipher, $iv, and $tag for decryption later
$original_plaintext = openssl_decrypt($ciphertext, $cipher, $key, $options=0, $iv, $tag);
echo $original_plaintext."\n";
}
?>

Exemple #2 Exemple de chiffrement authentifié AES en mode GCM antérieur à PHP 7.1

<?php
//$key devrait être généré précédemment d'une manière cryptographique, tel que openssl_random_pseudo_bytes
$plaintext = "message to be encrypted";
$ivlen = openssl_cipher_iv_length($cipher="AES-128-CBC");
$iv = openssl_random_pseudo_bytes($ivlen);
$ciphertext_raw = openssl_encrypt($plaintext, $cipher, $key, $options=OPENSSL_RAW_DATA, $iv);
$hmac = hash_hmac('sha256', $ciphertext_raw, $key, $as_binary=true);
$ciphertext = base64_encode( $iv.$hmac.$ciphertext_raw );

// déchiffrer plus tard ...
$c = base64_decode($ciphertext);
$ivlen = openssl_cipher_iv_length($cipher="AES-128-CBC");
$iv = substr($c, 0, $ivlen);
$hmac = substr($c, $ivlen, $sha2len=32);
$ciphertext_raw = substr($c, $ivlen+$sha2len);
$original_plaintext = openssl_decrypt($ciphertext_raw, $cipher, $key, $options=OPENSSL_RAW_DATA, $iv);
$calcmac = hash_hmac('sha256', $ciphertext_raw, $key, $as_binary=true);
if (hash_equals($hmac, $calcmac))// timing attack safe comparison
{
echo $original_plaintext."\n";
}
?>

Voir aussi

  • openssl_decrypt() - Déchiffrer 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, PHP 8)

openssl_error_string — Retourne le message d'erreur OpenSSL

Description

openssl_error_string(): string|false

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

openssl_free_key — Libère les ressources

Description

openssl_free_key(OpenSSLAsymmetricKey $key): void

openssl_free_key() libère les clés associées à key de la mémoire.

Liste de paramètres

key

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version | Description
8.0.0 | Cette fonction est désormais obsolète car elle n'a plus d'effet.
8.0.0 | key accepte désormais une instance de OpenSSLAsymmetricKey ; auparavant, une ressource de type OpenSSL key était accepté.


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, PHP 8)

openssl_get_cert_locations — Récupère les chemins vers les certificats disponibles

Description

openssl_get_cert_locations(): array

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 de chiffrements disponibles

  • « openssl_get_cert_locations
  • openssl_get_curve_names »
  • PHP Manual
  • Fonctions OpenSSL
  • Récupère la liste des méthodes de chiffrements disponibles

openssl_get_cipher_methods

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

openssl_get_cipher_methods — Récupère la liste des méthodes de chiffrements disponibles

Description

openssl_get_cipher_methods(bool $aliases = false): array

Récupère la liste des méthodes de chiffrements disponibles.

Liste de paramètres

aliases

Passez true si vous voulez que les alias des méthodes chiffrements soient inclus dans le tableau retourné.

Valeurs de retour

Un array des méthodes de chiffrements disponibles. Il est à noter que antérieur à OpenSSL 1.1.1, les méthodes de chiffrements étaient retournées en majuscule et en minuscule ; à partir de OpenSSL 1.1.1 seul la variante en minuscule est retourné.

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);

//ECB mode should be avoided
$ciphers = array_filter( $ciphers, function($n) { return stripos($n,"ecb")===FALSE; } );

//At least as early as Aug 2016, Openssl declared the following weak: RC2, RC4, DES, 3DES, MD5 based
$ciphers = array_filter( $ciphers, function($c) { return stripos($c,"des")===FALSE; } );
$ciphers = array_filter( $ciphers, function($c) { return stripos($c,"rc2")===FALSE; } );
$ciphers = array_filter( $ciphers, function($c) { return stripos($c,"rc4")===FALSE; } );
$ciphers = array_filter( $ciphers, function($c) { return stripos($c,"md5")===FALSE; } );
$cipher_aliases = array_filter($cipher_aliases,function($c) { return stripos($c,"des")===FALSE; } );
$cipher_aliases = array_filter($cipher_aliases,function($c) { return stripos($c,"rc2")===FALSE; } );

print_r($ciphers);
print_r($cipher_aliases);
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => aes-128-cbc
    [1] => aes-128-cbc-hmac-sha1
    [2] => aes-128-cbc-hmac-sha256
    [3] => aes-128-ccm
    [4] => aes-128-cfb
    [5] => aes-128-cfb1
    [6] => aes-128-cfb8
    [7] => aes-128-ctr
    [9] => aes-128-gcm
    [10] => aes-128-ocb
    [11] => aes-128-ofb
    [12] => aes-128-xts
    [13] => aes-192-cbc
    [14] => aes-192-ccm
    [15] => aes-192-cfb
    [16] => aes-192-cfb1
    [17] => aes-192-cfb8
    [18] => aes-192-ctr
    [20] => aes-192-gcm
    [21] => aes-192-ocb
    [22] => aes-192-ofb
    [23] => aes-256-cbc
    [24] => aes-256-cbc-hmac-sha1
    [25] => aes-256-cbc-hmac-sha256
    [26] => aes-256-ccm
    [27] => aes-256-cfb
    [28] => aes-256-cfb1
    [29] => aes-256-cfb8
    [30] => aes-256-ctr
    [32] => aes-256-gcm
    [33] => aes-256-ocb
    [34] => aes-256-ofb
    [35] => aes-256-xts
    [36] => aria-128-cbc
    [37] => aria-128-ccm
    [38] => aria-128-cfb
    [39] => aria-128-cfb1
    [40] => aria-128-cfb8
    [41] => aria-128-ctr
    [43] => aria-128-gcm
    [44] => aria-128-ofb
    [45] => aria-192-cbc
    [46] => aria-192-ccm
    [47] => aria-192-cfb
    [48] => aria-192-cfb1
    [49] => aria-192-cfb8
    [50] => aria-192-ctr
    [52] => aria-192-gcm
    [53] => aria-192-ofb
    [54] => aria-256-cbc
    [55] => aria-256-ccm
    [56] => aria-256-cfb
    [57] => aria-256-cfb1
    [58] => aria-256-cfb8
    [59] => aria-256-ctr
    [61] => aria-256-gcm
    [62] => aria-256-ofb
    [63] => bf-cbc
    [64] => bf-cfb
    [66] => bf-ofb
    [67] => camellia-128-cbc
    [68] => camellia-128-cfb
    [69] => camellia-128-cfb1
    [70] => camellia-128-cfb8
    [71] => camellia-128-ctr
    [73] => camellia-128-ofb
    [74] => camellia-192-cbc
    [75] => camellia-192-cfb
    [76] => camellia-192-cfb1
    [77] => camellia-192-cfb8
    [78] => camellia-192-ctr
    [80] => camellia-192-ofb
    [81] => camellia-256-cbc
    [82] => camellia-256-cfb
    [83] => camellia-256-cfb1
    [84] => camellia-256-cfb8
    [85] => camellia-256-ctr
    [87] => camellia-256-ofb
    [88] => cast5-cbc
    [89] => cast5-cfb
    [91] => cast5-ofb
    [92] => chacha20
    [93] => chacha20-poly1305
    [111] => id-aes128-CCM
    [112] => id-aes128-GCM
    [113] => id-aes128-wrap
    [114] => id-aes128-wrap-pad
    [115] => id-aes192-CCM
    [116] => id-aes192-GCM
    [117] => id-aes192-wrap
    [118] => id-aes192-wrap-pad
    [119] => id-aes256-CCM
    [120] => id-aes256-GCM
    [121] => id-aes256-wrap
    [122] => id-aes256-wrap-pad
    [124] => idea-cbc
    [125] => idea-cfb
    [127] => idea-ofb
    [137] => seed-cbc
    [138] => seed-cfb
    [140] => seed-ofb
    [141] => sm4-cbc
    [142] => sm4-cfb
    [143] => sm4-ctr
    [145] => sm4-ofb
)
Array
(
    [36] => aes128
    [37] => aes128-wrap
    [38] => aes192
    [39] => aes192-wrap
    [40] => aes256
    [41] => aes256-wrap
    [69] => aria128
    [70] => aria192
    [71] => aria256
    [72] => bf
    [77] => blowfish
    [99] => camellia128
    [100] => camellia192
    [101] => camellia256
    [102] => cast
    [103] => cast-cbc
    [146] => idea
    [164] => seed
    [169] => sm4
)

Voir aussi

  • openssl_get_md_methods() - Récupère la liste des méthodes digest disponibles


Récupère la liste des noms de courbes disponibles pour ECC

  • « openssl_get_cipher_methods
  • openssl_get_md_methods »
  • PHP Manual
  • Fonctions OpenSSL
  • Récupère la liste des noms de courbes disponibles pour ECC

openssl_get_curve_names

(PHP 7 >= 7.1.0, PHP 8)

openssl_get_curve_names — Récupère la liste des noms de courbes disponibles pour ECC

Description

openssl_get_curve_names(): array|false

Récupère la liste des noms de courbes disponibles à utilisation dans la cryptographie à courbe elliptique (ECC) pour les opérations clé publique / privée. Les deux courbes les plus largement standardisées / supportées sont prime256v1 (NIST P-256) et secp384r1 (NIST P-384).

Équivalences approximatives des taille de clés de AES, RSA, DSA et ECC
Taille de clé symétriques AES (Bits) | Taille de clé RSA et DSA (Bits) | Taille de clé ECC (Bits)
80 | 1024 | 160
112 | 2048 | 224
128 | 3072 | 256
192 | 7680 | 384
256 | 15360 | 512
» NIST recommande d'utiliser des courbes ECC qui ont au moins 256 bits.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau des noms de courbes disponibles, ou false si une erreur survient.

Exemples

Exemple #1 Exemple avec openssl_get_curve_names()

<?php
$curve_names = openssl_get_curve_names();
print_r($curve_names);
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => secp112r1
    [1] => secp112r2
    [2] => secp128r1
    [3] => secp128r2
    [4] => secp160k1
    [5] => secp160r1
    [6] => secp160r2
    [7] => secp192k1
    [8] => secp224k1
    [9] => secp224r1
    [10] => secp256k1
    [11] => secp384r1
    [12] => secp521r1
    [13] => prime192v1
    [14] => prime192v2
    [15] => prime192v3
    [16] => prime239v1
    [17] => prime239v2
    [18] => prime239v3
    [19] => prime256v1
    [20] => sect113r1
    [21] => sect113r2
    [22] => sect131r1
    [23] => sect131r2
    [24] => sect163k1
    [25] => sect163r1
    [26] => sect163r2
    [27] => sect193r1
    [28] => sect193r2
    [29] => sect233k1
    [30] => sect233r1
    [31] => sect239k1
    [32] => sect283k1
    [33] => sect283r1
    [34] => sect409k1
    [35] => sect409r1
    [36] => sect571k1
    [37] => sect571r1
    [38] => c2pnb163v1
    [39] => c2pnb163v2
    [40] => c2pnb163v3
    [41] => c2pnb176v1
    [42] => c2tnb191v1
    [43] => c2tnb191v2
    [44] => c2tnb191v3
    [45] => c2pnb208w1
    [46] => c2tnb239v1
    [47] => c2tnb239v2
    [48] => c2tnb239v3
    [49] => c2pnb272w1
    [50] => c2pnb304w1
    [51] => c2tnb359v1
    [52] => c2pnb368w1
    [53] => c2tnb431r1
    [54] => wap-wsg-idm-ecid-wtls1
    [55] => wap-wsg-idm-ecid-wtls3
    [56] => wap-wsg-idm-ecid-wtls4
    [57] => wap-wsg-idm-ecid-wtls5
    [58] => wap-wsg-idm-ecid-wtls6
    [59] => wap-wsg-idm-ecid-wtls7
    [60] => wap-wsg-idm-ecid-wtls8
    [61] => wap-wsg-idm-ecid-wtls9
    [62] => wap-wsg-idm-ecid-wtls10
    [63] => wap-wsg-idm-ecid-wtls11
    [64] => wap-wsg-idm-ecid-wtls12
    [65] => Oakley-EC2N-3
    [66] => Oakley-EC2N-4
    [67] => brainpoolP160r1
    [68] => brainpoolP160t1
    [69] => brainpoolP192r1
    [70] => brainpoolP192t1
    [71] => brainpoolP224r1
    [72] => brainpoolP224t1
    [73] => brainpoolP256r1
    [74] => brainpoolP256t1
    [75] => brainpoolP320r1
    [76] => brainpoolP320t1
    [77] => brainpoolP384r1
    [78] => brainpoolP384t1
    [79] => brainpoolP512r1
    [80] => brainpoolP512t1
)


Récupère la liste des méthodes digest disponibles

  • « openssl_get_curve_names
  • 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, PHP 8)

openssl_get_md_methods — Récupère la liste des méthodes digest disponibles

Description

openssl_get_md_methods(bool $aliases = false): array

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);

?>

Résultat de l'exemple ci-dessus est 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 de chiffrements 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, PHP 8)

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, PHP 8)

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, PHP 8)

openssl_open — Ouvre des données scellées

Description

openssl_open(
string $data,
string &$output,
string $encrypted_key,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key,
string $cipher_algo,
?string $iv = null
): bool

openssl_open() ouvre (déchiffre) les données data en utilisant la clé privée private_key et la clé d'enveloppe encrypted_key et remplit output 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

data

output

Si l'appel a réussi, les données ouvertes sont retournées dans ce paramètre.

encrypted_key

private_key

cipher_algo

La méthode de chiffrement.

Attention

La valeur par défaut ('RC4') est considéré non-sécurisé. Il est vivement recommandé de spécifier explicitement une méthode de chiffrement sûr.

iv

Vecteur d'initialisation.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | private_key accepte désormais une instance de OpenSSLAsymmetricKey ou OpenSSLCertificate ; auparavant, une ressource de type OpenSSL key ou OpenSSL X.509 CSR était acceptée.
8.0.0 | cipher_algo n'est désormais plus un paramètre optionnel.

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

  • « openssl_open
  • openssl_pkcs12_export_to_file »
  • PHP Manual
  • Fonctions OpenSSL
  • Génère une chaîne PKCS5 v2 PBKDF2

openssl_pbkdf2

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

openssl_pbkdf2 — Génère une chaîne PKCS5 v2 PBKDF2

Description

openssl_pbkdf2(
string $password,
string $salt,
int $key_length,
int $iterations,
string $digest_algo = "sha1"
): string|false

openssl_pbkdf2() calcule PBKDF2 (Password-Based Key Derivation Function 2), une fonction de dérivation de clé définit dans PKCS5 v2.

Liste de paramètres

password

Mot de passe depuis lequel la clé dérivé est générée.

salt

PBKDF2 recommande un sel cryptographique d'au moins 64 bits (8 octets).

key_length

Longueur désirée de la clé de sortie.

iterations

Le nombre d'itérations désiré. » NIST recommande au moins 10 000.

digest_algo

Algorithme de hachage ou de digest optionnel à partir de openssl_get_md_methods(). Par défaut SHA-1.

Valeurs de retour

Retourne une chaîne binaire brute ou false si une erreur survient.

Exemples

Exemple #1 Exemple avec openssl_pbkdf2()

<?php
$password = 'password';
$salt = openssl_random_pseudo_bytes(16);
$keyLength = 20;
$iterations = 600000;
$generated_key = openssl_pbkdf2($password, $salt, $keyLength, $iterations, 'sha256');
echo bin2hex($generated_key)."\n";
echo base64_encode($generated_key)."\n";
?>

Voir aussi

  • hash_pbkdf2() - Génère une clé PBKDF2 dérivée du mot de passe fourni
  • openssl_get_md_methods() - Récupère la liste des méthodes digest disponibles


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, PHP 8)

openssl_pkcs12_export_to_file — Exporte un certificat compatible PKCS#12

Description

openssl_pkcs12_export_to_file(
OpenSSLCertificate|string $certificate,
string $output_filename,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key,
string $passphrase,
array $options = []
): bool

openssl_pkcs12_export_to_file() stocke un certificat certificate dans un fichier nommé output_filename dans un format de fichier PKCS#12.

Liste de paramètres

x509

Voir les paramètres clés/Certificats pour une liste de valeurs valides.

output_filename

Chemin vers le fichier de sortie.

private_key

Clé privée du fichier PKCS#12. Voir paramètres Clé/Certificat pour une liste de valeur valide.

passphrase

Mot de passe de chiffrement pour déverrouiller le fichier PKCS#12.

options

Tableau optionnel, les autres clés seront ignorées.

Key | Description
"extracerts" | tableau de certificats supplémentaire ou un certificat unique à inclure dans le fichier PKCS#12.
"friendly_name" | chaîne de caractères à utiliser pour le certificat et la clé fournit

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | certificate accepte désormais une instance de OpenSSLCertificate ; auparavant, une ressource de type OpenSSL X.509 CSR était acceptée.
8.0.0 | private_key accepte désormais une instance de OpenSSLAsymmetricKey ou OpenSSLCertificate ; auparavant, une ressource de type OpenSSL key ou OpenSSL X.509 était acceptée.


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, PHP 8)

openssl_pkcs12_export — Exporte un certificat compatible PKCS#12 dans une variable

Description

openssl_pkcs12_export(
OpenSSLCertificate|string $certificate,
string &$output,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key,
string $passphrase,
array $options = []
): bool

openssl_pkcs12_export() stocke un certificat certificate dans une chaîne nommée output dans un format PKCS#12.

Liste de paramètres

x509

Voir les paramètres clés/Certificats pour une liste de valeurs valides.

output

En cas de succès, cette variable contiendra le PKCS#12.

private_key

Clé privée du fichier PKCS#12. Consultez Public/Private Key Parameters pour obtenir la liste des valeurs valides.

passphrase

Mot de passe de chiffrement pour déverrouiller le fichier PKCS#12.

options

Tableau optionnel, les autres clés seront ignorées.

Clé | Description
"extracerts" | Tableau de certificats supplémentaires ou d'un certificat unique à inclure dans le fichier PKCS#12.
"friendly_name" | chaîne à utiliser pour le certificat et la clé fournis

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | certificate accepte désormais une instance de OpenSSLCertificate ; auparavant, une ressource de type OpenSSL X.509 CSR était acceptée.
8.0.0 | private_key accepte désormais une instance de OpenSSLAsymmetricKey ou OpenSSLCertificate ; auparavant, une ressource de type OpenSSL key ou OpenSSL X.509 était acceptée.


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, PHP 8)

openssl_pkcs12_read — Lit un certificat PKCS#12 dans un tableau

Description

openssl_pkcs12_read(string $pkcs12, array &$certificates, string $passphrase): bool

openssl_pkcs12_read() lit le certificat PKCS#12 fourni par le paramètre pkcs12 dans un tableau nommé certificates.

Liste de paramètres

pkcs12

Le contenu du magasin de certificats, pas son nom de fichier.

certificates

En cas de succès, ce tableau contiendra les données du certificat.

passphrase

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.

Exemples

Exemple #1 openssl_pkcs12_read() example

<?php
if (!$cert_store = file_get_contents("/certs/file.p12")) {
echo "Error: Unable to read the cert file\n";
exit;
}

if (openssl_pkcs12_read($cert_store, $cert_info, "my_secret_pass")) {
echo "Certificate Information\n";
print_r($cert_info);
} else {
echo "Error: Unable to read the cert store.\n";
exit;
}
?>


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, PHP 8)

openssl_pkcs7_decrypt — Déchiffre un message S/MIME

Description

openssl_pkcs7_decrypt(
string $input_filename,
string $output_filename,
OpenSSLCertificate|string $certificate,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string|null $private_key = null
): bool

Déchiffre le message S/MIME contenu dans le fichier input_filename, en utilisant le certificat et la clé privée associé par certificate et private_key.

Liste de paramètres

input_filename

output_filename

Le message déchiffré est écrit dans le fichier spécifié par ce paramètre.

certificate

private_key

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | private_key accepte désormais une instance de OpenSSLAsymmetricKey ou OpenSSLCertificate ; auparavant, une ressource de type OpenSSL key ou OpenSSL X.509 CSR était acceptée.

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_read »
  • PHP Manual
  • Fonctions OpenSSL
  • Chiffre un message S/MIME

openssl_pkcs7_encrypt

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_pkcs7_encrypt — Chiffre un message S/MIME

Description

openssl_pkcs7_encrypt(
string $input_filename,
string $output_filename,
OpenSSLCertificate|array|string $certificate,
?array $headers,
int $flags = 0,
int $cipher_algo = OPENSSL_CIPHER_AES_128_CBC
): bool

openssl_pkcs7_encrypt() prend le contenu du fichier input_filename et le chiffre en utilisant un chiffrement RC2 à 40-bit, de manière que le message ne puisse être lu que par le possesseur de certificate.

Liste de paramètres

input_filename

output_filename

certificate

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).

cipher_algo

Une des constantes cipher.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | L'algorithme de chiffrement par défaut (cipher_algo) est désormais AES-128-CBC (OPENSSL_CIPHER_AES_128_CBC). Auparavant, PKCS7/CMS était utilisé (OPENSSL_CIPHER_RC2_40).
8.0.0 | certificate accepte désormais une instance de OpenSSLCertificate ; auparavant, une ressource de type OpenSSL X.509 CSR était acceptée.

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");
}
?>


Exporte le fichier PKCS7 vers un tableau de certificats PEM

  • « openssl_pkcs7_encrypt
  • openssl_pkcs7_sign »
  • PHP Manual
  • Fonctions OpenSSL
  • Exporte le fichier PKCS7 vers un tableau de certificats PEM

openssl_pkcs7_read

(PHP 7 >= 7.2.0, PHP 8)

openssl_pkcs7_read — Exporte le fichier PKCS7 vers un tableau de certificats PEM

Description

openssl_pkcs7_read(string $data, array &$certificates): bool

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

data

La chaîne de donnée qui doit être analysé (au format p7b).

certificates

Un tableau de certificats PEM depuis les données d'entrées p7b.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 Récupérer un tableau PEM depuis un fichier P7B

<?php

$file = 'certs.p7b';

$f = file_get_contents($file);
$p7 = array();
$r = openssl_pkcs7_read($f, $p7);

if ($r === false) {
printf("ERROR: %s is not a proper p7b file".PHP_EOL, $file);
for($e = openssl_error_string(), $i = 0; $e; $e = openssl_error_string(), $i++)
printf("SSL l%d: %s".PHP_EOL, $i, $e);
exit(1);
}

print_r($p7);
?>

Voir aussi

  • openssl_csr_sign() - Signe un CSR avec un autre certificat (ou lui-même) et génère un certificat


Signe un message S/MIME

  • « openssl_pkcs7_read
  • openssl_pkcs7_verify »
  • PHP Manual
  • Fonctions OpenSSL
  • Signe un message S/MIME

openssl_pkcs7_sign

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_pkcs7_sign — Signe un message S/MIME

Description

openssl_pkcs7_sign(
string $input_filename,
string $output_filename,
OpenSSLCertificate|string $certificate,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key,
?array $headers,
int $flags = PKCS7_DETACHED,
?string $untrusted_certificates_filename = null
): bool

openssl_pkcs7_sign() prend le contenu du fichier input_filename et le signe en utilisant le certificat et la clé privée contenus dans les arguments certificate et private_key.

Liste de paramètres

input_filename

Le fichier d'entrée que vous avez l'intention de signer numériquement.

output_filename

Le fichier où la signature numérique sera écrite.

certificate

Le certificat X.509 utilisé pour signer numériquement input_filename. Voir paramètres Clé/Certificat pour une liste de valeur valide.

private_key

private_key est la clé privée correspondant à certificate. Voir paramètres Clé Publique/Privée pour une liste de valeur valide.

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 peut être utilisé pour modifier la sortie. Voir les constantes PKCS7.

untrusted_certificates_filename

untrusted_certificates_filename 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.

Historique

Version | Description
8.0.0 | certificate accepte désormais une instance de OpenSSLCertificate ; auparavant, une ressource de type OpenSSL X.509 CSR était acceptée.
8.0.0 | private_key accepte désormais une instance de OpenSSLAsymmetricKey ou OpenSSLCertificate ; auparavant, une ressource de type OpenSSL key ou OpenSSL X.509 était acceptée.

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

Vous êtes autorisé à dépenser 10 000€ en note de frais.

Le PDG
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", "file://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_derive »
  • 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, PHP 8)

openssl_pkcs7_verify — Vérifie la signature d'un message S/MIME

Description

openssl_pkcs7_verify(
string $input_filename,
int $flags,
?string $signers_certificates_filename = null,
array $ca_info = [],
?string $untrusted_certificates_filename = null,
?string $content = null,
?string $output_filename = null
): bool|int

openssl_pkcs7_verify() lit le message S/MIME contenu dans le fichier filename et examine la signature digitale.

Liste de paramètres

input_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.

signers_certificates_filename

Si le paramètre signers_certificates_filename est spécifié, il doit être une chaîne contenant le nom d'un fichier qui contient le certificat du signataire, au format PEM.

ca_info

Si le paramètre ca_info 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.

untrusted_certificates_filename

Si le paramètre untrusted_certificates_filename 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.

output_filename

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
8.0.0 | signers_certificates_filename, untrusted_certificates_filename, content et output_filename sont désormais nullable.
7.2.0 | Le paramètre output_filename a été ajouté.

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 input_filename.


Computes shared secret for public value of remote and local DH or ECDH key

  • « openssl_pkcs7_verify
  • openssl_pkey_export_to_file »
  • PHP Manual
  • Fonctions OpenSSL
  • Computes shared secret for public value of remote and local DH or ECDH key

openssl_pkey_derive

(PHP 7 >= 7.3.0, PHP 8)

openssl_pkey_derive — Computes shared secret for public value of remote and local DH or ECDH key

Description

openssl_pkey_derive(OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key, OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key, int $key_length = 0): string|false

openssl_pkey_derive() takes a set of a public_key and private_key and derives a shared secret, for either DH or EC keys.

Liste de paramètres

public_key

public_key is the public key for the derivation. See Public/Private Key parameters for a list of valid values.

private_key

private_key is the private key for the derivation. See Public/Private Key parameters for a list of valid values.

key_length

If not zero, will set the desired length of the derived secret.

Valeurs de retour

The derived secret on success ou false si une erreur survient.

Exemples

Exemple #1 openssl_pkey_derive() example

<?php
// Load in private key
$priv = openssl_pkey_get_private("-----BEGIN PRIVATE KEY-----
MIICJgIBADCCARcGCSqGSIb3DQEDATCCAQgCggEBAJLxRCaZ933uW+AXmabHFDDy
upojBIRlbmQLJZfigDaSA1f9YOTsIv+WwVFTX/J1mtCyx9uBcz0Nt2kmVwxWuc2f
VtCEMPsmLsVXX7xRUFLpyX1Y1IYGBVXQOoOvLWYQjpZgnx47Pkh1Ok1+smffztfC
0DCNt4KorWrbsPcmqBejXHN79KvWFjZmXOksRiNu/Bn76RiqvofC4z8Ri3kHXQG2
197JGZzzFXHadGC3xbkg8UxsNbYhVMKbm0iANfafUH7/hoS9UjAVQYtvwe7YNiW/
HnyfVCrKwcc7sadd8Iphh+3lf5P1AhaQEAMytanrzq9RDXKBxuvpSJifRYasZYsC
AQIEggEEAoIBAGwAYC2E81Y1U2Aox0U7u1+vBcbht/OO87tutMvc4NTLf6NLPHsW
cPqBixs+3rSn4fADzAIvdLBmogjtiIZoB6qyHrllF/2xwTVGEeYaZIupQH3bMK2b
6eUvnpuu4Ytksiz6VpXBBRMrIsj3frM+zUtnq8vKUr+TbjV2qyKR8l3eNDwzqz30
dlbKh9kIhZafclHfRVfyp+fVSKPfgrRAcLUgAbsVjOjPeJ90xQ4DTMZ6vjiv6tHM
hkSjJIcGhRtSBzVF/cT38GyCeTmiIA/dRz2d70lWrqDQCdp9ArijgnpjNKAAulSY
CirnMsGZTDGmLOHg4xOZ5FEAzZI2sFNLlcw=
-----END PRIVATE KEY-----
");

// Load in public key
$pub = openssl_pkey_get_public("-----BEGIN PUBLIC KEY-----
MIICJDCCARcGCSqGSIb3DQEDATCCAQgCggEBAJLxRCaZ933uW+AXmabHFDDyupoj
BIRlbmQLJZfigDaSA1f9YOTsIv+WwVFTX/J1mtCyx9uBcz0Nt2kmVwxWuc2fVtCE
MPsmLsVXX7xRUFLpyX1Y1IYGBVXQOoOvLWYQjpZgnx47Pkh1Ok1+smffztfC0DCN
t4KorWrbsPcmqBejXHN79KvWFjZmXOksRiNu/Bn76RiqvofC4z8Ri3kHXQG2197J
GZzzFXHadGC3xbkg8UxsNbYhVMKbm0iANfafUH7/hoS9UjAVQYtvwe7YNiW/Hnyf
VCrKwcc7sadd8Iphh+3lf5P1AhaQEAMytanrzq9RDXKBxuvpSJifRYasZYsCAQID
ggEFAAKCAQAiCSBpxvGgsTorxAWtcAlSmzAJnJxFgSPef0g7OjhESytnc8G2QYmx
ovMt5KVergcitztWh08hZQUdAYm4rI+zMlAFDdN8LWwBT/mGKSzRkWeprd8E7mvy
ucqC1YXCMqmIwPySvLQUB/Dl8kgau7BLAnIJm8VP+MVrn8g9gghD0qRCgPgtEaDV
vocfgnOU43rhKnIgO0cHOKtw2qybSFB8QuZrYugq4j8Bwkrzh6rdMMeyMl/ej5Aj
c0wamOzuBDtXt0T9+Fx3khHaowjCc7xJZRgZCxg43SbqMWJ9lUg94I7+LTX61Gyv
dtlkbGbtoDOnxeNnN93gwQZngGYZYciu
-----END PUBLIC KEY-----
");

// Outputs the hex version of the derived key
echo bin2hex(openssl_pkey_derive($pub,$priv));


Sauve une clé au format ASCII dans un fichier

  • « openssl_pkey_derive
  • 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, PHP 8)

openssl_pkey_export_to_file — Sauve une clé au format ASCII dans un fichier

Description

openssl_pkey_export_to_file(
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $key,
string $output_filename,
?string $passphrase = null,
?array $options = null
): bool

openssl_pkey_export_to_file() sauve la clé au format ASCII (PEM) key dans le fichier output_filename.

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

output_filename

Chemin du fichier de sortie.

passphrase

La clé peut éventuellement être protégée par un mot de passe.

options

options 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 options.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | key accepte désormais une instance de OpenSSLAsymmetricKey ou OpenSSLCertificate ; auparavant, une ressource de type OpenSSL key ou OpenSSL X.509 était acceptée.


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, PHP 8)

openssl_pkey_export — Stocke une représentation exportable de la clé dans une chaîne de caractères

Description

openssl_pkey_export(
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $key,
string &$output,
?string $passphrase = null,
?array $options = null
): bool

openssl_pkey_export() exporte la clé key sous forme de chaîne au format PEM, et la stocke dans la variable output (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

output

passphrase

La clé est éventuellement protégée par le mot de passe passphrase.

options

options 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 options.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | key accepte désormais une instance de OpenSSLAsymmetricKey ou OpenSSLCertificate ; auparavant, une ressource de type OpenSSL key ou OpenSSL X.509 était acceptée.


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, PHP 8)

openssl_pkey_free — Libère une clé privée

Description

openssl_pkey_free(OpenSSLAsymmetricKey $key): void

Note:

Cette fonction n'a aucun effet. Antérieur à PHP 8.0.0, cette fonction était utilisé pour fermer une ressource.

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.

Historique

Version | Description
8.0.0 | Cette fonction est désormais obsolète car elle n'a plus d'effet.
8.0.0 | key accepte désormais une instance de OpenSSLAsymmetricKey ; auparavant, une ressource de type OpenSSL key était accepté.


Retourne un tableau contenant les détails de la clé

  • « openssl_pkey_free
  • openssl_pkey_get_private »
  • PHP Manual
  • Fonctions OpenSSL
  • Retourne un tableau contenant les détails de la clé

openssl_pkey_get_details

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

openssl_pkey_get_details — Retourne un tableau contenant les détails de la clé

Description

openssl_pkey_get_details(OpenSSLAsymmetricKey $key): array|false

Cette fonction retourne les détails de la clé (bits, key, type).

Liste de paramètres

key

Ressource contenant la clé.

Valeurs de retour

Retourne un tableau avec les détails de la clé en cas de succès, ou false en cas d'échec. Le tableau retourné contient les index bits (nombre de bits), key (représentation sous forme de chaîne de caractères de la clé publique) et type (type de clé qui est l'un de 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" | modulo
    "e" | exposant publique
    "d" | exposant privé
    "p" | nombre premier 1
    "q" | nombre premier 2
    "dmp1" | exponent1, d mod (p-1)
    "dmq1" | exponent2, d mod (q-1)
    "iqmp" | coefficient, (inverse de q) mod p
  • OPENSSL_KEYTYPE_DSA, une clé de tableau additionnelle appelée "dsa", contenant la donnée de clé est retournée
    Key | Description
    "p" | nombre premier (public)
    "q" | 160-bit nombre sous-prime, q | p-1 (publique
    "g" | générateur du sous-groupe (publique)
    "priv_key" | clé privé x
    "pub_key" | clé publique y = g^x
  • OPENSSL_KEYTYPE_DH, une clé de tableau additionnelle appelée "dh", contenant la donnée de clé est retournée.
    Key | Description
    "p" | nombre premier (partagé)
    "g" | générateur de Z_p (partagé)
    "priv_key" | valeur privée DH x
    "pub_key" | valeur publique DH g^x
  • OPENSSL_KEYTYPE_EC, une clé de tableau additionnelle nommé "ec", contenant les données de la clé est retourné.
    Key | Description
    "curve_name" | nom de la courbe, voir openssl_get_curve_names()
    "curve_oid" | Identifiant Objet ASN1 (OID) pour la courbe EC.
    "x" | coordonnée x (publique)
    "y" | coordonnée y (publique)
    "d" | clé privée

Historique

Version | Description
8.0.0 | key accepte désormais une instance de OpenSSLAsymmetricKey ; auparavant, une ressource de type OpenSSL key était accepté.


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, PHP 8)

openssl_pkey_get_private — Lit une clé privée

Description

openssl_pkey_get_private(OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key, ?string $passphrase = null): OpenSSLAsymmetricKey|false

openssl_pkey_get_private() analyse la clé private_key et la prépare pour être utilisée par d'autres fonctions.

Liste de paramètres

private_key

private_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 instance de OpenSSLAsymmetricKey cas de succès, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | En cas de succès, cette fonction retourne désormais une instance de OpenSSLAsymmetricKey ; auparavant, une ressource de type OpenSSL key était retourné.
8.0.0 | private_key accepte désormais une instance de OpenSSLAsymmetricKey ou OpenSSLCertificate ; auparavant, une ressource de type OpenSSL key ou OpenSSL X.509 était acceptée.
8.0.0 | passphrase est désormais nullable.


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, PHP 8)

openssl_pkey_get_public — Extrait une clé publique d'un certificat, et la prépare

Description

openssl_pkey_get_public(OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key): OpenSSLAsymmetricKey|false

openssl_pkey_get_public() extrait la clé publique du certificat public_key et la prépare pour être utilisée par les autres fonctions.

Liste de paramètres

public_key

public_key peut avoir l'une des valeurs suivantes :

  1. Une instance de OpenSSLAsymmetricKey.
  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 instance de OpenSSLAsymmetricKey en cas de succès, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | En cas de succès, cette fonction retourne désormais une instance de OpenSSLAsymmetricKey ; auparavant, une ressource de type OpenSSL key était retournée.
8.0.0 | public_key accepte désormais une instance de OpenSSLAsymmetricKey ou OpenSSLCertificate ; auparavant, une ressource de type OpenSSL key ou OpenSSL X.509 était acceptée.


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, PHP 8)

openssl_pkey_new — Génère une nouvelle clé privée

Description

openssl_pkey_new(?array $options = null): OpenSSLAsymmetricKey|false

openssl_pkey_new() génère une nouvelle clé privée. Comment obtenir le composant publique de la clé est démontré dans un exemple ci-dessous.

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

options

Vous pouvez calibrer la génération de la clé (comme le nombre de bits) en utilisant le paramètre options. Voir la fonction openssl_csr_new() pour plus de détails sur options.

Valeurs de retour

Retourne une instance de OpenSSLAsymmetricKey en cas de succès, false en cas d'erreur.

Historique

Version | Description
8.0.0 | En cas de succès, cette fonction retourne désormais une instance de OpenSSLAsymmetricKey ; auparavant, une ressource de type OpenSSL key était retournée.
7.1.0 | L'option curve_name a été ajouté pour permettre la création de clés EC.

Exemples

Exemple #1 Obtain the public key from a private key

<?php
$private_key = openssl_pkey_new();
$public_key_pem = openssl_pkey_get_details($private_key)['key'];
echo $public_key_pem;
$public_key = openssl_pkey_get_public($public_key_pem);
var_dump($public_key);
?>

Résultat de l'exemple ci-dessus est similaire à :

-----BEGIN PUBLIC KEY-----
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArZFsmN2P6rx1Xt7YV95o
gcdlal0k3ryiIhFNzjwtRNNTXfEfBr6lUuaIJYQ8/XqEBX0hpcfuuF6tTRlonA3t
WLME0QFD93YVsAaXcy76YqjjqcRRodIBphAbYyyMI/lXkQAdn7kbAmr7neSOsMYJ
El9Wo4Hl4oG6e52ZnYHyqW9dxh4hX93eupR2TmcCdVf+r9xoHewP0KJYSHt7vDUX
AQlWYcQiWHIadFsmL0orr6mutlXFReoHbesgKY9/3YLOu0JfxflSjIZ2JeL1NTl1
MsmODsUwgAUrwnWKKx+eQUP5g3GnSB3dPkRh9zRVRiLNWbCugyjrf3e6DgQWrW7j
pwIDAQAB
-----END PUBLIC KEY-----
resource(5) of type (OpenSSL key)


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, PHP 8)

openssl_private_decrypt — Déchiffre des données avec une clé privée

Description

openssl_private_decrypt(
string $data,
string &$decrypted_data,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key,
int $padding = OPENSSL_PKCS1_PADDING
): bool

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_data.

Vous pouvez utiliser cette fonction, par exemple pour déchiffrer des données qui ne sont censées être disponibles que pour vous.

Liste de paramètres

data

decrypted_data

private_key

private_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.

Historique

Version | Description
8.0.0 | private_key accepte désormais une instance de OpenSSLAsymmetricKey ou OpenSSLCertificate ; auparavant, une ressource de type OpenSSL key ou OpenSSL X.509 était acceptée.

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, PHP 8)

openssl_private_encrypt — Chiffre des données avec une clé privée

Description

openssl_private_encrypt(
string $data,
string &$encrypted_data,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key,
int $padding = OPENSSL_PKCS1_PADDING
): bool

openssl_private_encrypt() chiffre les données data avec la clé privée private_key et stocke le résultat dans encrypted_data. 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

encrypted_data

private_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.

Historique

Version | Description
8.0.0 | private_key accepte désormais une instance de OpenSSLAsymmetricKey ou OpenSSLCertificate ; auparavant, une ressource de type OpenSSL key ou OpenSSL X.509 était acceptée.

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, PHP 8)

openssl_public_decrypt — Déchiffre des données avec une clé publique

Description

openssl_public_decrypt(
string $data,
string &$decrypted_data,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key,
int $padding = OPENSSL_PKCS1_PADDING
): bool

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_data.

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_data

public_key

public_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.

Historique

Version | Description
8.0.0 | public_key accepte désormais une instance de OpenSSLAsymmetricKey ou OpenSSLCertificate ; auparavant, une ressource de type OpenSSL key ou OpenSSL X.509 était acceptée.

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, PHP 8)

openssl_public_encrypt — Chiffre des données avec une clé publique

Description

openssl_public_encrypt(
string $data,
string &$encrypted_data,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key,
int $padding = OPENSSL_PKCS1_PADDING
): bool

openssl_public_encrypt() chiffre les données data avec la clé publique public_key et stocke le résultat dans encrypted_data. 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

encrypted_data

Contiendra le résultat du chiffrage.

public_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.

Historique

Version | Description
8.0.0 | public_key accepte désormais une instance de OpenSSLAsymmetricKey ou OpenSSLCertificate ; auparavant, une ressource de type OpenSSL key ou OpenSSL X.509 était acceptée.

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, PHP 8)

openssl_random_pseudo_bytes — Génère une chaine pseudo-aléatoire d'octets

Description

openssl_random_pseudo_bytes(int $length, bool &$strong_result = null): string

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 strong_result.

Liste de paramètres

length

La taille désirée pour la chaine d'octets. Doit être un nombre entier positif inférieur ou égal à 2147483647. PHP va tenter de transtyper ce paramètre en un entier non nul pour l'utiliser.

strong_result

Si fourni, détermine si l'algorithme 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.

Erreurs / Exceptions

openssl_random_pseudo_bytes() lance une Exception en cas d'échec.

Historique

Version | Description
8.0.0 | strong_result est désormais nullable.
7.4.0 | La fonction ne retourne plus false en cas d'échec, mais lance une Exception à la place.

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;
}
?>

Résultat de l'exemple ci-dessus est similaire à :

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() - Récupère des octets aléatoires cryptographiquement sécurisés
  • bin2hex() - Convertit des données binaires en représentation hexadécimale
  • crypt() - Hachage à sens unique (indéchiffrable)
  • random_int() - Récupère un entier sélectionné de manière uniforme et cryptographiquement sécurisée


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, PHP 8)

openssl_seal — Scelle des données

Description

openssl_seal(
string $data,
string &$sealed_data,
array &$encrypted_keys,
array $public_key,
string $cipher_algo,
string &$iv = null
): int|false

openssl_seal() scelle (chiffre) les données data en utilisant la cipher_algo fournit avec une clé secrète générée aléatoirement. La clé est chiffrée avec chaque clé publique associée à public_key et chaque clé ainsi chiffrée est retournée dans encrypted_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

Les données à sceller

sealed_data

Les données scellées.

encrypted_keys

Tableau des clés chiffrées.

public_key

Tableau d'instances OpenSSLAsymmetricKey contenant les clés publiques.

cipher_algo

La méthode de chiffrement.

Attention

La valeur par défaut ('RC4') est considéré non-sécurisé. Il est vivement recommandé de spécifier explicitement une méthode de chiffrement sûr.

iv

Le vecteur d'initialisation.

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 encrypted_keys.

Historique

Version | Description
8.0.0 | public_key accepte désormais un tableau d'instance de OpenSSLAsymmetricKey ; auparavant, un tableau de ressources de type OpenSSL key était acceptée.
8.0.0 | cipher_algo n'est désormais plus un paramètre optionnel.
8.0.0 | iv est désormais nullable.

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, PHP 8)

openssl_sign — Signe les données

Description

openssl_sign(
string $data,
string &$signature,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key,
string|int $algorithm = OPENSSL_ALGO_SHA1
): bool

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 private_key. 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.

private_key

OpenSSLAsymmetricKey - une clé, retournée par la fonction openssl_get_privatekey()

string - une clé au format PEM.

algorithm

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.

Historique

Version | Description
8.0.0 | private_key accepte désormais une instance de OpenSSLAsymmetricKey ou OpenSSLCertificate ; auparavant, une ressource de type OpenSSL key ou OpenSSL X.509 était acceptée.

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, PHP 8)

openssl_spki_export_challenge — Exporte le challenge associé avec la clé publique signée

Description

openssl_spki_export_challenge(string $spki): string|false

Exporte le challenge associé avec la clé publique signée.

Liste de paramètres

spki

Une clé publique signée valide

Valeurs de retour

Retourne le challenge associé sous la forme d'une chaîne de caractères ou false en cas d'échec.

Erreurs / Exceptions

Émets une alerte de niveau E_WARNING si un argument invalide est passé via le paramètre spki.

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_get_md_methods() - Récupère la liste des méthodes digest disponibles
  • 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, PHP 8)

openssl_spki_export — Exporte un PEM valide formaté comme une clé publique signée

Description

openssl_spki_export(string $spki): string|false

Exporte un PEM valide formaté comme une clé publique signée.

Liste de paramètres

spki

Une clé publique signée valide

Valeurs de retour

Retourne le PEM associé formaté en clé publique, ou false si une erreur survient.

Erreurs / Exceptions

Émets une alerte de niveau E_WARNING si un argument non valide est passé via le paramètre spki.

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_get_md_methods() - Récupère la liste des méthodes digest disponibles
  • 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, PHP 8)

openssl_spki_new — Génère une clé publique signée et effectue un challenge

Description

openssl_spki_new(OpenSSLAsymmetricKey $private_key, string $challenge, int $digest_algo = OPENSSL_ALGO_MD5): string|false

Génère une clé publique signée en utilisant un algorithme de hachage spécifié.

Liste de paramètres

private_key

private_key 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

digest_algo

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 false en cas d'échec.

Erreurs / Exceptions

Émets une alerte de niveau E_WARNING si un algorithme avec une signature non connue est passée via le paramètre digest_algo.

Historique

Version | Description
8.0.0 | private_key accepte désormais une instance de OpenSSLAsymmetricKey ; auparavant, une ressource de type OpenSSL key était acceptée.

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";
}
?>

Résultat de l'exemple ci-dessus est 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_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_spki_export() - Exporte un PEM valide formaté comme une clé publique signée
  • openssl_get_md_methods() - Récupère la liste des méthodes digest disponibles
  • 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, PHP 8)

openssl_spki_verify — Vérifie une clé publique signée, et effectue un challenge

Description

openssl_spki_verify(string $spki): bool

Vérifie une clé publique signée, et effectue un challenge.

Liste de paramètres

spki

Une clé publique signée valide

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Erreurs / Exceptions

Émets 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_get_md_methods() - Récupère la liste des méthodes digest disponibles
  • 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, PHP 8)

openssl_verify — Vérifie une signature

Description

openssl_verify(
string $data,
string $signature,
OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key,
string|int $algorithm = OPENSSL_ALGO_SHA1
): int|false

openssl_verify() vérifie que la signature signature est correcte pour les données data, et avec la clé publique public_key. 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 brute binaire, générée par la fonction openssl_sign() ou signification similaire

public_key

OpenSSLAsymmetricKey - une clé, retourné par la fonction openssl_get_publickey()

string - une clé au format PEM, par exemple : -----BEGIN PUBLIC KEY----- MIIBCgK....

algorithm

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 ou false si une erreur survient.

Historique

Version | Description
8.0.0 | public_key accepte désormais une instance de OpenSSLAsymmetricKey ou OpenSSLCertificate ; auparavant, une ressource de type OpenSSL key ou OpenSSL X.509 était acceptée.

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, "sha256WithRSAEncryption");

//Vérifie la signature
$ok = openssl_verify($data, $signature, $public_key_res, OPENSSL_ALGO_SHA256);
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, PHP 8)

openssl_x509_check_private_key — Vérifie si une clé privée correspond à un certificat

Description

openssl_x509_check_private_key(OpenSSLCertificate|string $certificate, OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key): bool

Vérifie si le paramètre private_key fourni est la clé privée qui correspond à certificate.

Avertissement

Cette fonction ne vérifie pas si KEY est effectivement une clé privée ou pas. Elle compare simplement le matériel publique (par exemple exponent et modulo d'une clé RSA) et/ou les paramètres de clé (par exemple les paramètres EC d'une clé EC) d'une paire de clé.

Ceci signifie, par exemple, qu'une clé publique pourrait être fournit pour private_key et la fonction peut retourner true.

Liste de paramètres

certificate

Le certificat.

private_key

La clé privée.

Valeurs de retour

Retourne true si private_key est la clé privée qui correspond à certificate, ou false sinon.

Historique

Version | Description
8.0.0 | certificate accepte désormais une instance de OpenSSLCertificate ; auparavant, une ressource de type OpenSSL X.509 était acceptée.
8.0.0 | private_key accepte désormais une instance de OpenSSLAsymmetricKey ou OpenSSLCertificate ; auparavant, une ressource de type OpenSSL key ou OpenSSL X.509 était acceptée.


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, PHP 8)

openssl_x509_checkpurpose — Vérifie l'usage d'un certificat

Description

openssl_x509_checkpurpose(
OpenSSLCertificate|string $certificate,
int $purpose,
array $ca_info = [],
?string $untrusted_certificates_file = null
): bool|int

openssl_x509_checkpurpose() examine le certificat spécifié par certificate, pour voir s'il peut être utilisé pour une opération particulière purpose.

Liste de paramètres

certificate

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.

ca_info

ca_info doit être un tableau de dossiers/fichiers de CA de confiance comme décrit dans la Vérification des certificats.

untrusted_certificates_file

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.

Historique

Version | Description
8.0.0 | certificate accepte désormais une instance de OpenSSLCertificate ; auparavant, une ressource de type OpenSSL X.509 était acceptée.
8.0.0 | untrusted_certificates_file est désormais nullable.


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, PHP 8)

openssl_x509_export_to_file — Exporte un certificat vers un fichier

Description

openssl_x509_export_to_file(OpenSSLCertificate|string $certificate, string $output_filename, bool $no_text = true): bool

openssl_x509_export_to_file() stocke un certificat certificate dans le fichier output_filename au format PEM.

Liste de paramètres

x509

Voir les paramètres clés/Certificats pour une liste de valeurs valides.

output_filename

Chemin du fichier de sortie.

no_text

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.

Historique

Version | Description
8.0.0 | certificate accepte désormais une instance de OpenSSLCertificate ; auparavant, une ressource de type OpenSSL X.509 était acceptée.


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, PHP 8)

openssl_x509_export — Exporte un certificat vers une chaîne de caractères

Description

openssl_x509_export(OpenSSLCertificate|string $certificate, string &$output, bool $no_text = true): bool

openssl_x509_export() stocke un certificat certificate dans le fichier output au format PEM.

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.

no_text

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.

Historique

Version | Description
8.0.0 | certificate accepte désormais une instance de OpenSSLCertificate ; auparavant, une ressource de type OpenSSL X.509 était acceptée.


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 >= 5.6.0, PHP 7, PHP 8)

openssl_x509_fingerprint — Calcule l'empreinte, ou le digest d'un certificat X.509 donné

Description

openssl_x509_fingerprint(OpenSSLCertificate|string $certificate, string $digest_algo = "sha1", bool $binary = false): string|false

La fonction openssl_x509_fingerprint() retourne le digest d'un certificat certificate 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.

digest_algo

La méthode de digest ou l'algorithme de hachage à utiliser, par exemple "sha256", l'un de openssl_get_md_methods().

binary

Lorsque définit à true, affiche les données brutes binaires. false affiche en hexits minuscules.

Valeurs de retour

Retourne une chaîne de caractères contenant l'empreinte calculé du certificat sous la forme d'hexits minuscule sauf si binary est définit à true dans ce cas la représentation brute binaire du message digest est retournée.

Retourne false en cas d'échec.

Historique

Version | Description
8.0.0 | certificate accepte désormais une instance de OpenSSLCertificate ; auparavant, une ressource de type OpenSSL X.509 était acceptée.


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, PHP 8)

openssl_x509_free — Libère les ressources prises par un certificat

Description

openssl_x509_free(OpenSSLCertificate $certificate): void

Note:

Cette fonction n'a aucun effet. Antérieur à PHP 8.0.0, cette fonction était utilisé pour fermer une ressource.

openssl_x509_free() libère les ressources mémoire prises par le certificat certificate.

Liste de paramètres

certificate

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version | Description
8.0.0 | Cette fonction est désormais obsolète car elle n'a plus d'effet.
8.0.0 | certificate accepte désormais une instance de OpenSSLCertificate ; auparavant, une ressource de type OpenSSL X.509 était accepté.


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, PHP 8)

openssl_x509_parse — Analyse un certificat X509

Description

openssl_x509_parse(OpenSSLCertificate|string $certificate, bool $short_names = true): array|false

openssl_x509_parse() analyse le certificat X509 certificate, 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

certificate

Certificat X509. Voir paramètre de Clé/Certificat pour une list de valeur valide.

short_names

short_names contrôle l'indexation des données dans le tableau : si short_names 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.

Historique

Version | Description
8.0.0 | certificate accepte désormais une instance de OpenSSLCertificate ; auparavant, une ressource de type OpenSSL X.509 était acceptée.


Analyse un certificat X.509 et retourne un objet

  • « openssl_x509_parse
  • openssl_x509_verify »
  • PHP Manual
  • Fonctions OpenSSL
  • Analyse un certificat X.509 et retourne un objet

openssl_x509_read

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

openssl_x509_read — Analyse un certificat X.509 et retourne un objet

Description

openssl_x509_read(OpenSSLCertificate|string $certificate): OpenSSLCertificate|false

openssl_x509_read() analyse le certificat certificate et retourne un objet OpenSSLCertificate pour celui-ci.

Liste de paramètres

certificate

Certificat X509. Voir paramètres clés/certificats pour la liste des valeurs valides.

Valeurs de retour

Retourne un OpenSSLCertificate en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | En cas de succès, cette fonction retourne désormais une instance de OpenSSLCertificate ; auparavant, une ressource de type OpenSSL X.509 était retournée.
8.0.0 | certificate accepte désormais une instance de OpenSSLCertificate ; auparavant, une ressource de type OpenSSL X.509 était acceptée.


Vérifie la signature digitale d'un certificat x509 par rapport à une clé publique

  • « openssl_x509_read
  • OpenSSLCertificate »
  • PHP Manual
  • Fonctions OpenSSL
  • Vérifie la signature digitale d'un certificat x509 par rapport à une clé publique

openssl_x509_verify

(PHP 7 >= 7.4.0, PHP 8)

openssl_x509_verify — Vérifie la signature digitale d'un certificat x509 par rapport à une clé publique

Description

openssl_x509_verify(OpenSSLCertificate|string $certificate, OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key): int

La fonction openssl_x509_verify() vérifie que le certificat certificate a été signé par la clé privée correspondant à la clé publique public_key.

Liste de paramètres

x509

Voir les paramètres clés/Certificats pour une liste de valeurs valides.

public_key

OpenSSLAsymmetricKey - une clé, retournée par la fonction openssl_get_publickey()

string - une clé formatée PEM, par exemple, -----BEGIN PUBLIC KEY----- MIIBCgK....

Valeurs de retour

Retourne 1 si la signature est correcte, 0 si elle est incorrecte, et -1 si une erreur survient.

Historique

Version | Description
8.0.0 | certificate accepte désormais une instance de OpenSSLCertificate ; auparavant, une ressource de type OpenSSL X.509 était acceptée.
8.0.0 | public_key accepte désormais une instance de OpenSSLAsymmetricKey ou OpenSSLCertificate ; auparavant, une ressource de type OpenSSL key ou OpenSSL X.509 était acceptée.

Exemples

Exemple #1 Exemple avec openssl_x509_verify()

<?php
$hostname = "news.php.net";
$ssloptions = array(
"capture_peer_cert" => true,
"capture_peer_cert_chain" => true,
"allow_self_signed"=> false,
"CN_match" => $hostname,
"verify_peer" => true,
"SNI_enabled" => true,
"SNI_server_name" => $hostname,
);

$ctx = stream_context_create( array("ssl" => $ssloptions) );
$result = stream_socket_client("ssl://$hostname:443", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $ctx);
$cont = stream_context_get_params($result);
$x509 = $cont["options"]["ssl"]["peer_certificate"];
$certparsed = openssl_x509_parse($x509);

foreach($cont["options"]["ssl"]["peer_certificate_chain"] as $chaincert)
{
$chainparsed = openssl_x509_parse($chaincert);
$chain_public_key = openssl_get_publickey($chaincert);
$r = openssl_x509_verify($x509, $chain_public_key);
if ($r==1)
{
echo $certparsed['subject']['CN'];
echo " was digitally signed by ";
echo $chainparsed['subject']['CN']."\n";
}
}
?>

Voir aussi

  • openssl_verify() - Vérifie une signature
  • openssl_get_publickey() - Alias de openssl_pkey_get_public


The OpenSSLCertificate class

(PHP 8)

Introduction

A fully opaque class which replaces OpenSSL X.509 resources as of PHP 8.0.0.

Synopsis de la classe

final class OpenSSLCertificate {
}


The OpenSSLCertificateSigningRequest class

(PHP 8)

Introduction

A fully opaque class which replaces OpenSSL X.509 CSR resources as of PHP 8.0.0.

Synopsis de la classe

final class OpenSSLCertificateSigningRequest {
}


The OpenSSLAsymmetricKey class

(PHP 8)

Introduction

A fully opaque class which replaces OpenSSL key resources as of PHP 8.0.0.

Synopsis de la classe

final class OpenSSLAsymmetricKey {
}


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_algos — Récupère tous les identifiants des algorithmes de hachage de mots de passe disponibles
    • 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() et autres algorithmes de hachage de mots de passe, rendant simple la création et la gestion des mots de passe, de manière sécurisée.


Pré-requis

Aucune bibliothèque externe n'est nécessaire pour compiler cette extension.

Pour le hachage Argon2 de mot de passe, » libargon2 est par contre requis. À partir de PHP 7.3.0, libargon2 version 20161029 ou ultérieur est requis.


Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du cœur de PHP.

Pour activer le hachage Argon2 de mot de passe, néanmoins, PHP doit être compilé avec le support de libargon2 en utilisant l'option de configuration --with-password-argon2.

Antérieur à PHP 8.1.0, il était possible de spécifier le répertoire argon2 avec --with-password-argon2[=DIR].


Constantes pré-définies

Les constantes listées ici sont toujours disponibles dans PHP.

PASSWORD_BCRYPT (string)

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 (string) - 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 et à partir de PHP 7.0.0 l'option salt a été désapprouvée.

  • cost (int) - le coût 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_BCRYPT_DEFAULT_COST (int)

PASSWORD_ARGON2I (string)

PASSWORD_ARGON2I est utilisé pour créer de nouveaux hashs de mot de passe à l'aide de l'algorithme Argon2i.

Options prises en charge :

  • memory_cost (int) - Mémoire maximale (en kibioctets) pouvant être utilisée pour calculer le hachage Argon2. Par défaut à PASSWORD_ARGON2_DEFAULT_MEMORY_COST.

  • time_cost (int) - Durée maximale de temps qu'il peut prendre pour calculer le hachage Argon2. Par défaut à PASSWORD_ARGON2_DEFAULT_TIME_COST.

  • threads (int) - Nombre de threads à utiliser pour calculer le hachage Argon2. Par défaut à PASSWORD_ARGON2_DEFAULT_THREADS. Uniquement disponible avec libargon2, et non avec l'implémentation libsodium.

Disponible à partir de PHP 7.2.0.

PASSWORD_ARGON2ID (string)

PASSWORD_ARGON2ID est utilisé pour créer de nouveaux hashs de mot de passe à l'aide de l'algorithme Argon2id. Supporte les mêmes options que PASSWORD_ARGON2I.

Disponible à partir de PHP 7.3.0.

PASSWORD_ARGON2_DEFAULT_MEMORY_COST (int)

Quantité de mémoire par défaut (en octets) qui sera utilisé en essayant de calculer un hachage.

Disponible à partir de PHP 7.2.0.

PASSWORD_ARGON2_DEFAULT_TIME_COST (int)

Durée de temps par défaut que sera passer pour essayer de calculer un hachage.

Disponible à partir de PHP 7.2.0.

PASSWORD_ARGON2_DEFAULT_THREADS (int)

Nombre par défaut de threads que Argon2lib va utiliser. Pas disponible avec avec l'implémentation libsodium.

Disponible à partir de PHP 7.2.0.

PASSWORD_ARGON2_PROVIDER (string)

Disponible à partir de PHP 7.4.0.

PASSWORD_DEFAULT (mixed)

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 (taille de 255 caractères recommandé).

Valeur pour cette constante :

  • PHP 5.5.0 - PASSWORD_BCRYPT

Historique

Version | Description
7.4.0 | Les valeurs pour les constantes PASSWORD_BCRYPT, PASSWORD_ARGON2I, PASSWORD_ARGON2ID et PASSWORD_DEFAULT sont désormais des chaîne de caractèress. Auparavant, elles étaient des entiers.


Fonctions de hachage de mot de passe

Sommaire

  • password_algos — Récupère tous les identifiants des algorithmes de hachage de mots de passe disponibles
  • 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


Récupère tous les identifiants des algorithmes de hachage de mots de passe disponibles

  • « Fonctions de hachage de mot de passe
  • password_get_info »
  • PHP Manual
  • Fonctions de hachage de mot de passe
  • Récupère tous les identifiants des algorithmes de hachage de mots de passe disponibles

password_algos

(PHP 7 >= 7.4.0, PHP 8)

password_algos — Récupère tous les identifiants des algorithmes de hachage de mots de passe disponibles

Description

password_algos(): array

Retourne une liste complète de tous les identifiants des algorithmes de hachage de mots de passe enregistrés, sous la forme d'un tableau de chaîne de caractères.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne tous les identifiants des algorithmes de hachage de mots de passe disponibles.

Exemples

Exemple #1 Utilisation basique de la fonction password_algos()

<?php
print_r(password_algos());
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => 2y
    [1] => argon2i
    [2] => argon2id
)


Retourne des informations à propos du hachage fourni

  • « password_algos
  • 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, PHP 8)

password_get_info — Retourne des informations à propos du hachage fourni

Description

password_get_info(string $hash): array

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, PHP 8)

password_hash — Crée une clé de hachage pour un mot de passe

Description

password_hash(string $password, string|int|null $algo, array $options = []): string

La fonction password_hash() crée un nouveau hachage en utilisant un algorithme de hachage fort et irréversible.

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.
  • PASSWORD_ARGON2I - Utilise l'algorithme de hachage Argon2i pour créer le hachage. Cet algorithme est seulement disponible si PHP a été compilé avec le support d'Argon2
  • PASSWORD_ARGON2ID - Utilise l'algorithme de hachage Argon2id pour créer le hachage. Cet algorithme est seulement disponible si PHP a été compilé avec le support d'Argon2

Options supportées pour PASSWORD_BCRYPT:

  • 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.

    Avertissement

    L'option Salt est obsolète. Il est préférable d'utiliser simplement le sel qui est généré par défaut. À partir de PHP 8.0.0, un sel explicitement fournit est ignoré.

  • 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.

Options supporté pour PASSWORD_ARGON2I et PASSWORD_ARGON2ID :

  • memory_cost (int) - Mémoire maximale (en kilo octets binaire) pouvant être utilisée pour calculer le hachage Argon2. Par défaut à PASSWORD_ARGON2_DEFAULT_MEMORY_COST.

  • time_cost (int) - Durée maximale de temps qu'il peut prendre pour calculer le hachage Argon2. Par défaut à PASSWORD_ARGON2_DEFAULT_TIME_COST.

  • threads (int) - Nombre de threads à utiliser pour calculer le hachage Argon2. Par défaut à PASSWORD_ARGON2_DEFAULT_THREADS.

    Avertissement

    Uniquement disponible quand PHP utilise libargon2, et non l'implementation libsodium.

Liste de paramètres

password

Le mot de passe utilisateur.

Attention

L'utilisation de la constante PASSWORD_BCRYPT pour l'algorithme fera que le paramètre password sera tronqué à une longueur maximale de 72 octets.

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é.

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.

Historique

Version | Description
8.0.0 | password_hash() ne retourne plus false en cas d'échec, une ValueError sera levée si l'algorithme de hachage de mot de passe n'est pas valide, ou une Error si le hachage de mot de passe a échoué pour une raison inconnue.
8.0.0 | algo est désormais nullable.
7.4.0 | Le paramètre algo attend désormais une chaîne de caractères, mais continue d'accepter un entier afin de conserver une compatibilité antérieure.
7.4.0 | L'extension sodium fournit un implémentation alternative pour les mots de passes Argon2.
7.3.0 | Ajout de la prise en charge des mots de passe Argon2id à l'aide de PASSWORD_ARGON2ID.
7.2.0 | Ajout de la prise en charge des mots de passe Argon2i à l'aide de PASSWORD_ARGON2I.

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);
?>

Résultat de l'exemple ci-dessus est 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);
?>

Résultat de l'exemple ci-dessus est similaire à :

$2y$12$QjSH496pcT5CEbzjD/vtVeH03tfHKFy36d4J0Ltp3lRtee9HDxY3K

Exemple #3 Exemple avec password_hash() trouver un bon coût (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.
* 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
* = à 350 millisecondes, ce qui est un délai approprié pour les systèmes gérants les identifications
* intéractivement.
*/
$timeTarget = 0.350; // 350 millisecondes

$cost = 10;
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;
?>

Résultat de l'exemple ci-dessus est similaire à :

Valeur de 'cost' la plus appropriée : 12

Exemple #4 Exemple avec password_hash() et Argon2i

<?php
echo 'Argon2i hash: ' . password_hash('rasmuslerdorf', PASSWORD_ARGON2I);
?>

Résultat de l'exemple ci-dessus est similaire à :

Argon2i hash: $argon2i$v=19$m=1024,t=2,p=2$YzJBSzV4TUhkMzc3d3laeg$zqU/1IN0/AogfP4cmSJI1vc8lpXRW9/S0sYY2i2jHT0

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 !

Comme indiqué ci-dessus, fournir l'option Salt en PHP 7.0 générera un avertissement de désapprobation. La prise en charge d'un sel fourni manuellement a été supprimée en PHP 8.0.

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 350 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 cœur 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 7.5.5, il ne sera éligible comme algorithme par défaut qu'à partir de PHP 7.7 (sachant que 7.6 sera la première version complète). Mais si un algorithme différent a été ajouté en 7.6.0, il sera aussi éligible comme algorithme par défaut à partir de la version 7.7.0.
  • L'algorithme par défaut ne peut être changé que lors d'une version complète (7.3.0, 8.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
  • password_needs_rehash() - Vérifie que le hachage fourni est conforme à l'algorithme et aux options spécifiées
  • crypt() - Hachage à sens unique (indéchiffrable)
  • sodium_crypto_pwhash_str() - Get an ASCII-encoded hash


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, PHP 8)

password_needs_rehash — Vérifie que le hachage fourni est conforme à l'algorithme et aux options spécifiées

Description

password_needs_rehash(string $hash, string|int|null $algo, array $options = []): bool

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.

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.

Historique

Version | Description
7.4.0 | Le paramètre algo attend désormais une chaîne de caractères, mais continue d'accepter un entier afin de conserver une compatibilité antérieure.

Exemples

Exemple #1 Usage de password_needs_rehash()

<?php

$password = 'rasmuslerdorf';
$hash = '$2y$10$YCFsG6elYca568hBi2pZ0.3LDL5wjgxct1N8w/oLR/jfHsiQwCqTS';

$algorithm = PASSWORD_BCRYPT;
// Le paramètre cost de bcrypt peut évoluer avec le temps en fonction des améliorations matérielles.
$options = ['cost' => 12];

// Vérifions d'abord que le mot de passe correspond au hachage stocké
if (password_verify($password, $hash)) {
// Vérifie si soit l'algorithme ou les options ont changé
if (password_needs_rehash($hash, $algorithm, $options)) {
if (password_needs_rehash($hash, PASSWORD_DEFAULT, $options)) {
// On crée un nouveau hachage afin de mettre à jour l'ancien
$newHash = password_hash($password, $algorithm, $options);

// Mettre à jour l'entré de l'utilisateur avec $newHash
}

// Exécute la connexion de l'utilisateur
}
?>


Vérifie qu'un mot de passe correspond à un hachage

  • « password_needs_rehash
  • Rnp »
  • 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, PHP 8)

password_verify — Vérifie qu'un mot de passe correspond à un hachage

Description

password_verify(string $password, string $hash): bool

Vérifie que le hachage fourni correspond bien au mot de passe fourni. La fonction password_verify() est compatible avec la fonction crypt(). Ainsi, un mot de passe haché par la fonction crypt() peut être utilisé avec la fonction password_verify().

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.

Cette fonction est sans danger contre les attaques sur le temps.

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()

Ceci est un exemple simplifié ; il est recommandé de ré-hacher un mot de passe correct si nécessaire ; voir la fonction password_needs_rehash() pour un exemple.

<?php
// Voir l'exemple fourni sur la page de la fonction password_hash()
// pour savoir d'où cela provient.
$hash = '$2y$10$.vGA1O9wmRjrwAVXD98HNOgsNpDczlqm3Jq7KnEd1rVAGv3Fykk1a';

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_needs_rehash() - Vérifie que le hachage fourni est conforme à l'algorithme et aux options spécifiées
  • password_hash() - Crée une clé de hachage pour un mot de passe
  • » l'implémentation en espace utilisateur
  • sodium_crypto_pwhash_str_verify() - Verifies that a password matches a hash


Rnp

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Clearsign text
  • Rnp Fonctions
    • rnp_backend_string — Return cryptographic backend library name
    • rnp_backend_version — Return cryptographic backend library version
    • rnp_decrypt — Decrypt PGP message
    • rnp_dump_packets_to_json — Dump OpenPGP packets stream information to the JSON string
    • rnp_dump_packets — Dump OpenPGP packets stream information in humand-readable format
    • rnp_ffi_create — Create the top-level object used for interacting with the library
    • rnp_ffi_destroy — Destroy the top-level object used for interacting with the library
    • rnp_ffi_set_pass_provider — Set password provider callback function
    • rnp_import_keys — Import keys from PHP string to the keyring and receive JSON describing new/updated keys
    • rnp_import_signatures — Import standalone signatures to the keyring and receive JSON describing updated keys
    • rnp_key_export_autocrypt — Export minimal key for autocrypt feature (just 5 packets: key, uid, signature, encryption subkey, signature)
    • rnp_key_export_revocation — Generate and export primary key revocation signature
    • rnp_key_export — Export a key
    • rnp_key_get_info — Get information about the key
    • rnp_key_remove — Remove a key from keyring(s)
    • rnp_key_revoke — Revoke a key or subkey by generating and adding revocation signature
    • rnp_list_keys — Enumerate all keys present in a keyring by specified identifer type
    • rnp_load_keys_from_path — Load keys from specified path
    • rnp_load_keys — Load keys from PHP string
    • rnp_locate_key — Search for the key
    • rnp_op_encrypt — Encrypt message
    • rnp_op_generate_key — Generate key
    • rnp_op_sign_cleartext — Perform signing operation on a textual data, return cleartext signed message
    • rnp_op_sign_detached — Perform signing operation, return detached signature(s)
    • rnp_op_sign — Perform signing operation on a binary data, return embedded signature(s)
    • rnp_op_verify_detached — Verify detached signatures
    • rnp_op_verify — Verify embedded or cleartext signatures
    • rnp_save_keys_to_path — Save keys to specified path
    • rnp_save_keys — Save keys to PHP string
    • rnp_supported_features — Get supported features in JSON format
    • rnp_version_string_full — Full version string of RNP library
    • rnp_version_string — RNP library version
  • RnpFFI — The RnpFFI class


Introduction

This module allows you to use » RNP library. RNP is a high performance C++ OpenPGP library used by Mozilla Thunderbird.


Pré-requis

In order to use RNP library functions you need to install the» RNP library. RNP library version >= 0.16.2 is required.


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 : » https://pecl.php.net/package/rnp


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.

RNP_KEYSTORE_GPG (string)
Keystore format "GPG".
RNP_KEYSTORE_KBX (string)
Keystore format "KBX". For public keys only. A keybox is a file format used to store public keys along with meta information and indices.
RNP_KEYSTORE_G10 (string)
Keystore format "G10". For private keys.
RNP_LOAD_SAVE_PUBLIC_KEYS (integer)
Load or save public keys only. Can be OR-ed with RNP_LOAD_SAVE_SECRET_KEYS to load both public and private keys to the FFI context or save them from the context.
RNP_LOAD_SAVE_SECRET_KEYS (integer)
Load or save secret keys only. Can be OR-ed with RNP_LOAD_SAVE_PUBLIC_KEYS to load both public and private keys to the FFI context or save them from the context.
RNP_LOAD_SAVE_PERMISSIVE (integer)
Allows to ignore bad signature/key/subkey packets during key import.
RNP_LOAD_SAVE_SINGLE (integer)
If set, only the first key will be loaded.
RNP_LOAD_SAVE_BASE64 (integer)
Allow import of base64-encoded keys (autocrypt ones).
RNP_FEATURE_SYMM_ALG (string)
List available symmetric encryption algorithms.
RNP_FEATURE_AEAD_ALG (string)
List available AEAD algorithms.
RNP_FEATURE_PROT_MODE (string)
List available protection modes.
RNP_FEATURE_PK_ALG (string)
List available public key algorithms.
RNP_FEATURE_HASH_ALG (string)
List available hash algorithms.
RNP_FEATURE_COMP_ALG (string)
List available compression algorithms.
RNP_FEATURE_CURVE (string)
List available elliptic curves.
RNP_DUMP_MPI (integer)
Dump MPI (Multi-precision integer) values.
RNP_DUMP_RAW (integer)
Dump raw packet contents as well.
RNP_DUMP_GRIP (integer)
Dump key fingerprints and grips.
RNP_JSON_DUMP_MPI (integer)
Dump MPI (Multi-precision integer) values.
RNP_JSON_DUMP_RAW (integer)
Dump raw packet contents as well.
RNP_JSON_DUMP_GRIP (integer)
Dump key fingerprints and grips.
RNP_ENCRYPT_NOWRAP (integer)
Allows encryption of signed message. Message is not wrapped into literal data packet.
RNP_KEY_EXPORT_ARMORED (integer)
Enable ASCII-armoring of exported data.
RNP_KEY_EXPORT_PUBLIC (integer)
Export public key.
RNP_KEY_EXPORT_SECRET (integer)
Export secret key.
RNP_KEY_EXPORT_SUBKEYS (integer)
If primary key is being exported, all subkeys will be exported too.
RNP_KEY_EXPORT_BASE64 (integer)
Export base64-encoded autocrypt key instead of binary.
RNP_KEY_REMOVE_PUBLIC (integer)
Remove public key.
RNP_KEY_REMOVE_SECRET (integer)
Remove secret key.
RNP_KEY_REMOVE_SUBKEYS (integer)
If primary key is being deleted, all of its subkeys will be removed too.


  • « Constantes pré-définies
  • Clearsign text »
  • PHP Manual
  • Rnp
  • Exemples

Exemples

Sommaire

  • Clearsign text


Clearsign text

This example will clearsign a given text.

Exemple #1 RNP clearsign example

<?php
// init FFI object
$ffi = rnp_ffi_create('GPG', 'GPG');

// generate RSA key
$key = rnp_op_generate_key($ffi, 'test@example.com', 'RSA');

// sign
$data = "Example text to sign";
$signature = rnp_op_sign_cleartext($ffi, $data, array($key));

echo $signature;

// destroy FFI object
rnp_ffi_destroy($ffi);
?>


Rnp Fonctions

Sommaire

  • rnp_backend_string — Return cryptographic backend library name
  • rnp_backend_version — Return cryptographic backend library version
  • rnp_decrypt — Decrypt PGP message
  • rnp_dump_packets_to_json — Dump OpenPGP packets stream information to the JSON string
  • rnp_dump_packets — Dump OpenPGP packets stream information in humand-readable format
  • rnp_ffi_create — Create the top-level object used for interacting with the library
  • rnp_ffi_destroy — Destroy the top-level object used for interacting with the library
  • rnp_ffi_set_pass_provider — Set password provider callback function
  • rnp_import_keys — Import keys from PHP string to the keyring and receive JSON describing new/updated keys
  • rnp_import_signatures — Import standalone signatures to the keyring and receive JSON describing updated keys
  • rnp_key_export_autocrypt — Export minimal key for autocrypt feature (just 5 packets: key, uid, signature, encryption subkey, signature)
  • rnp_key_export_revocation — Generate and export primary key revocation signature
  • rnp_key_export — Export a key
  • rnp_key_get_info — Get information about the key
  • rnp_key_remove — Remove a key from keyring(s)
  • rnp_key_revoke — Revoke a key or subkey by generating and adding revocation signature
  • rnp_list_keys — Enumerate all keys present in a keyring by specified identifer type
  • rnp_load_keys_from_path — Load keys from specified path
  • rnp_load_keys — Load keys from PHP string
  • rnp_locate_key — Search for the key
  • rnp_op_encrypt — Encrypt message
  • rnp_op_generate_key — Generate key
  • rnp_op_sign_cleartext — Perform signing operation on a textual data, return cleartext signed message
  • rnp_op_sign_detached — Perform signing operation, return detached signature(s)
  • rnp_op_sign — Perform signing operation on a binary data, return embedded signature(s)
  • rnp_op_verify_detached — Verify detached signatures
  • rnp_op_verify — Verify embedded or cleartext signatures
  • rnp_save_keys_to_path — Save keys to specified path
  • rnp_save_keys — Save keys to PHP string
  • rnp_supported_features — Get supported features in JSON format
  • rnp_version_string_full — Full version string of RNP library
  • rnp_version_string — RNP library version


Return cryptographic backend library name

  • « Rnp Fonctions
  • rnp_backend_version »
  • PHP Manual
  • Rnp Fonctions
  • Return cryptographic backend library name

rnp_backend_string

(PECL rnp >= 0.1.1)

rnp_backend_string — Return cryptographic backend library name

Description

rnp_backend_string(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Backend name string. Currently supported backends are "Botan" and "OpenSSL".


Return cryptographic backend library version

  • « rnp_backend_string
  • rnp_decrypt »
  • PHP Manual
  • Rnp Fonctions
  • Return cryptographic backend library version

rnp_backend_version

(PECL rnp >= 0.1.1)

rnp_backend_version — Return cryptographic backend library version

Description

rnp_backend_version(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Version string.


Decrypt PGP message

  • « rnp_backend_version
  • rnp_dump_packets_to_json »
  • PHP Manual
  • Rnp Fonctions
  • Decrypt PGP message

rnp_decrypt

(PECL rnp >= 0.1.1)

rnp_decrypt — Decrypt PGP message

Description

rnp_decrypt(RnpFFI $ffi, string $input): string|false

Private keys used for decryption should be loaded into the FFI object before calling this function. If password encryption was used, then password provider should be set by calling rnp_ffi_set_pass_provider().

Liste de paramètres

ffi

L'objet FFI retourné par rnp_ffi_create.

input

Encrypted message.

Valeurs de retour

Decrypted message on success ou false si une erreur survient.


Dump OpenPGP packets stream information to the JSON string

  • « rnp_decrypt
  • rnp_dump_packets »
  • PHP Manual
  • Rnp Fonctions
  • Dump OpenPGP packets stream information to the JSON string

rnp_dump_packets_to_json

(PECL rnp >= 0.1.1)

rnp_dump_packets_to_json — Dump OpenPGP packets stream information to the JSON string

Description

rnp_dump_packets_to_json(string $input, int $flags): string|false

Liste de paramètres

input

Input string containing OpenPGP data, either in binary or ASCII-armored format.

flags

See RNP_JSON_DUMP_* predefined constants.

Valeurs de retour

JSON string with dump ou false si une erreur survient.


Dump OpenPGP packets stream information in humand-readable format

  • « rnp_dump_packets_to_json
  • rnp_ffi_create »
  • PHP Manual
  • Rnp Fonctions
  • Dump OpenPGP packets stream information in humand-readable format

rnp_dump_packets

(PECL rnp >= 0.1.1)

rnp_dump_packets — Dump OpenPGP packets stream information in humand-readable format

Description

rnp_dump_packets(string $input, int $flags): string|false

Liste de paramètres

input

Input string containing OpenPGP data, either in binary or ASCII-armored format.

flags

See RNP_DUMP_* predefined constants.

Valeurs de retour

Text describing packet sequence ou false si une erreur survient.


Create the top-level object used for interacting with the library

  • « rnp_dump_packets
  • rnp_ffi_destroy »
  • PHP Manual
  • Rnp Fonctions
  • Create the top-level object used for interacting with the library

rnp_ffi_create

(PECL rnp >= 0.1.1)

rnp_ffi_create — Create the top-level object used for interacting with the library

Description

rnp_ffi_create(string $pub_format, string $sec_format): RnpFFI|false

Liste de paramètres

pub_format

the format of the public keyring, RNP_KEYSTORE_GPG or other RNP_KEYSTORE_* constant.

sec_format

the format of the secret keyring, RNP_KEYSTORE_GPG or other RNP_KEYSTORE_* constant

Valeurs de retour

Returns RnpFFI object on success ou false si une erreur survient.


Destroy the top-level object used for interacting with the library

  • « rnp_ffi_create
  • rnp_ffi_set_pass_provider »
  • PHP Manual
  • Rnp Fonctions
  • Destroy the top-level object used for interacting with the library

rnp_ffi_destroy

(PECL rnp >= 0.1.1)

rnp_ffi_destroy — Destroy the top-level object used for interacting with the library

Description

rnp_ffi_destroy(RnpFFI $ffi): void

Liste de paramètres

ffi

L'objet FFI retourné par rnp_ffi_create.

Valeurs de retour


Set password provider callback function

  • « rnp_ffi_destroy
  • rnp_import_keys »
  • PHP Manual
  • Rnp Fonctions
  • Set password provider callback function

rnp_ffi_set_pass_provider

(PECL rnp >= 0.1.1)

rnp_ffi_set_pass_provider — Set password provider callback function

Description

rnp_ffi_set_pass_provider(RnpFFI $ffi, callable $password_callback): bool

Sets password provider function. This function can ask for the password on a standard input (if PHP script is executed in a command line environment), display GUI dialog or provide password in any other possible ways. Requested passwords are used to encrypt or decrypt secret keys or perform symmetric encryption/decryption operations.

Liste de paramètres

ffi

L'objet FFI retourné par rnp_ffi_create.

password_callback

The function that is to be called for every password request. It has the following signature:

password_callback(string $key_fp, string $pgp_context, string &$password): bool
  • $key_fp - The key fingerprint, if any. Can be empty.
  • $pgp_context - String describing why the key is being requested.
  • $password - Password string reference where provided password should be stored to.
Callback function should return true if password was successfully set ou false si une erreur survient.

Valeurs de retour

Returns true on success ou false si une erreur survient.

Exemples

Exemple #1 simple callback function example

<?php
function password_callback(string $key_fp, string $pgp_context, string &$password)
{
$password = "password";

return true;
}

$ffi = rnp_ffi_create('GPG', 'GPG');

rnp_ffi_set_pass_provider($ffi, 'password_callback');


Import keys from PHP string to the keyring and receive JSON describing new/updated keys

  • « rnp_ffi_set_pass_provider
  • rnp_import_signatures »
  • PHP Manual
  • Rnp Fonctions
  • Import keys from PHP string to the keyring and receive JSON describing new/updated keys

rnp_import_keys

(PECL rnp >= 0.1.1)

rnp_import_keys — Import keys from PHP string to the keyring and receive JSON describing new/updated keys

Description

rnp_import_keys(RnpFFI $ffi, string $input, int $flags): string|false

Liste de paramètres

ffi

L'objet FFI retourné par rnp_ffi_create.

input

OpenPGP packets containing key(s) to be loaded. Can be either binary or ASCII armored.

flags

See RNP_LOAD_SAVE_* predefined constants.

Valeurs de retour

JSON string with information about new and updated keys on success ou false si une erreur survient.


Import standalone signatures to the keyring and receive JSON describing updated keys

  • « rnp_import_keys
  • rnp_key_export_autocrypt »
  • PHP Manual
  • Rnp Fonctions
  • Import standalone signatures to the keyring and receive JSON describing updated keys

rnp_import_signatures

(PECL rnp >= 0.1.1)

rnp_import_signatures — Import standalone signatures to the keyring and receive JSON describing updated keys

Description

rnp_import_signatures(RnpFFI $ffi, string $input, int $flags): string|false

Liste de paramètres

ffi

L'objet FFI retourné par rnp_ffi_create.

input

OpenPGP packets containing signatures to be imported. Can be either binary or ASCII armored.

flags

Currently must be 0.

Valeurs de retour

JSON string with information about updated keys on success ou false si une erreur survient.


Export minimal key for autocrypt feature (just 5 packets: key, uid, signature, encryption subkey, signature)

  • « rnp_import_signatures
  • rnp_key_export_revocation »
  • PHP Manual
  • Rnp Fonctions
  • Export minimal key for autocrypt feature (just 5 packets: key, uid, signature, encryption subkey, signature)

rnp_key_export_autocrypt

(PECL rnp >= 0.1.1)

rnp_key_export_autocrypt — Export minimal key for autocrypt feature (just 5 packets: key, uid, signature, encryption subkey, signature)

Description

rnp_key_export_autocrypt(
RnpFFI $ffi,
string $key_fp,
string $subkey_fp,
string $uid,
int $flags
): string|false

Liste de paramètres

ffi

L'objet FFI retourné par rnp_ffi_create.

key_fp

Primary key fingerprint.

subkey_fp

Subkey to export. Can be an empty string to pick the first suitable subkey.

uid

User ID to export. Can be an empty string if exported key has only one uid.

flags

Only RNP_KEY_EXPORT_BASE64 is currently supported. Enabling it would export base64-encoded key data instead of binary.

Valeurs de retour

OpenPGP packets of exported key on success ou false si une erreur survient.


Generate and export primary key revocation signature

  • « rnp_key_export_autocrypt
  • rnp_key_export »
  • PHP Manual
  • Rnp Fonctions
  • Generate and export primary key revocation signature

rnp_key_export_revocation

(PECL rnp >= 0.1.1)

rnp_key_export_revocation — Generate and export primary key revocation signature

Description

rnp_key_export_revocation(
RnpFFI $ffi,
string $key_fp,
int $flags,
array $options = ?
): string|false

Note: to revoke a key you'll need to import this signature into the keystore or use rnp_key_revoke() function.

Liste de paramètres

ffi

L'objet FFI retourné par rnp_ffi_create.

key_fp

Key fingerprint of the primary key to be revoked.

flags

RNP_KEY_EXPORT_ARMORED or 0.

options

An associative array with options.

Key | Data type | Description
"hash" | string | Set hash algorithm used during signature calculation.
"code" | string | Code reason for revocation code. Possible values: 'no', 'superseded', 'compromised', 'retired'. If not defined, then value 'no' will be used by default.
"reason" | string | Textual representation of the reason for revocation.

Valeurs de retour

Exported revocation signature on success ou false si une erreur survient.


Export a key

  • « rnp_key_export_revocation
  • rnp_key_get_info »
  • PHP Manual
  • Rnp Fonctions
  • Export a key

rnp_key_export

(PECL rnp >= 0.1.1)

rnp_key_export — Export a key

Description

rnp_key_export(RnpFFI $ffi, string $key_fp, int $flags): string|false

Liste de paramètres

ffi

L'objet FFI retourné par rnp_ffi_create.

key_fp

Key fingerprint.

flags

See RNP_KEY_EXPORT_* predefined constants (except RNP_KEY_EXPORT_BASE64).

Valeurs de retour

OpenPGP packets of exported key (binary or ASCII-armored) on success ou false si une erreur survient.


Get information about the key

  • « rnp_key_export
  • rnp_key_remove »
  • PHP Manual
  • Rnp Fonctions
  • Get information about the key

rnp_key_get_info

(PECL rnp >= 0.1.1)

rnp_key_get_info — Get information about the key

Description

rnp_key_get_info(RnpFFI $ffi, string $key_fp): array|false

Liste de paramètres

ffi

L'objet FFI retourné par rnp_ffi_create.

key_fp

Key fingerprint.

Valeurs de retour

An associative array with information about the key ou false si une erreur survient.

Key | Data type | Description
"is_primary" | boolean | true if this key is the primary key.
"is_sub" | boolean | true if this key is a subkey.
"is_valid" | boolean | true if public key is valid. This includes checks of the self-signatures, expiration times, revocations and so on.
"is_revoked" | boolean | true if this key is revoked.
"is_superseded" | boolean | true if this key is superseded. Present only if the key is revoked.
"is_compromised" | boolean | true if this key is compromised. Present only if the key is revoked.
"is_retired" | boolean | true if this key is retired. Present only if the key is revoked.
"is_expired" | boolean | true if this key is expired.
"have_secret" | boolean | true if this key has secret part.
"is_locked" | boolean | true if this key is currently locked. Only present for secret keys.
"is_protected" | boolean | true if this key is protected. Only present for secret keys. A protected key is one that is encrypted and can be safely held in memory and locked/unlocked as needed.
"have_public" | boolean | true if this key has public part. Generally all keys would have public part.
"valid_till" | integer | The timestamp till which key can be considered as valid. Note: this will take into account not only key's expiration, but revocations as well. For the subkey primary key's validity time will be also checked.
"bits" | integer | Number of bits in the key. For EC-based keys it will contain size of the curve.
"alg" | string | Key algorithm name.
"subkeys" | array | An indexed array containing fingerprint strings of subkeys. Only present for primary keys. Could be empty if primary key has no subkeys.
"uids" | array | An indexed array containing user ID strings. Only present for primary keys. Could be empty if primary key has no user ID-s.


Remove a key from keyring(s)

  • « rnp_key_get_info
  • rnp_key_revoke »
  • PHP Manual
  • Rnp Fonctions
  • Remove a key from keyring(s)

rnp_key_remove

(PECL rnp >= 0.1.1)

rnp_key_remove — Remove a key from keyring(s)

Description

rnp_key_remove(RnpFFI $ffi, string $key_fp, int $flags): bool

Note: you need to call rnp_save_keys() to write updated keyring(s) out.

Liste de paramètres

ffi

L'objet FFI retourné par rnp_ffi_create.

key_fp

Key fingerprint.

flags

See RNP_KEY_REMOVE_* constants. Flag RNP_KEY_REMOVE_SUBKEYS will work only for the primary key and will remove all of its subkeys as well.

Valeurs de retour

Returns true on success ou false si une erreur survient.


Revoke a key or subkey by generating and adding revocation signature

  • « rnp_key_remove
  • rnp_list_keys »
  • PHP Manual
  • Rnp Fonctions
  • Revoke a key or subkey by generating and adding revocation signature

rnp_key_revoke

(PECL rnp >= 0.1.1)

rnp_key_revoke — Revoke a key or subkey by generating and adding revocation signature

Description

rnp_key_revoke(
RnpFFI $ffi,
string $key_fp,
int $flags,
array $options = ?
): bool

Note: you need to call rnp_save_keys() to write updated keyring(s) out.

Liste de paramètres

ffi

L'objet FFI retourné par rnp_ffi_create.

key_fp

Key fingerprint.

flags

Currently must be 0.

options

An associative array with options.

Key | Data type | Description
"hash" | string | Set hash algorithm used during signature calculation.
"code" | string | Code reason for revocation code. Possible values: 'no', 'superseded', 'compromised', 'retired'. If not defined, then value 'no' will be used by default.
"reason" | string | Textual representation of the reason for revocation.

Valeurs de retour

Returns true on success ou false si une erreur survient.


Enumerate all keys present in a keyring by specified identifer type

  • « rnp_key_revoke
  • rnp_load_keys_from_path »
  • PHP Manual
  • Rnp Fonctions
  • Enumerate all keys present in a keyring by specified identifer type

rnp_list_keys

(PECL rnp >= 0.1.1)

rnp_list_keys — Enumerate all keys present in a keyring by specified identifer type

Description

rnp_list_keys(RnpFFI $ffi, string $identifier_type): array|false

Liste de paramètres

ffi

L'objet FFI retourné par rnp_ffi_create.

identifier_type

Key identifier type ("userid", "keyid", "grip", "fingerprint").

Valeurs de retour

An associative array where key is an identifier string and value is a PGP key fingerprint ou false si une erreur survient.


Load keys from specified path

  • « rnp_list_keys
  • rnp_load_keys »
  • PHP Manual
  • Rnp Fonctions
  • Load keys from specified path

rnp_load_keys_from_path

(PECL rnp >= 0.1.1)

rnp_load_keys_from_path — Load keys from specified path

Description

rnp_load_keys_from_path(
RnpFFI $ffi,
string $format,
string $input_path,
int $flags
): bool

Note that for G10, the input must be a directory (which must already exist).

Liste de paramètres

ffi

L'objet FFI retourné par rnp_ffi_create.

format

Le format de clé pour la donnée (GPG, KBX, G10).

input_path

file or directory containing the keys.

flags

Voir la description des drapeaux RNP_LOAD_SAVE_*.

Valeurs de retour

Returns true on success ou false si une erreur survient.


Load keys from PHP string

  • « rnp_load_keys_from_path
  • rnp_locate_key »
  • PHP Manual
  • Rnp Fonctions
  • Load keys from PHP string

rnp_load_keys

(PECL rnp >= 0.1.1)

rnp_load_keys — Load keys from PHP string

Description

rnp_load_keys(
RnpFFI $ffi,
string $format,
string $input,
int $flags
): bool

Note that for G10, the input must be a directory (which must already exist).

Liste de paramètres

ffi

L'objet FFI retourné par rnp_ffi_create.

format

Le format de clé pour la donnée (GPG, KBX, G10).

input

OpenPGP packets containing key(s) to be loaded. Can be either binary or ASCII armored.

flags

Voir la description des drapeaux RNP_LOAD_SAVE_*.

Valeurs de retour

Returns true on success ou false si une erreur survient.


Search for the key

  • « rnp_load_keys
  • rnp_op_encrypt »
  • PHP Manual
  • Rnp Fonctions
  • Search for the key

rnp_locate_key

(PECL rnp >= 0.1.1)

rnp_locate_key — Search for the key

Description

rnp_locate_key(RnpFFI $ffi, string $identifier_type, string $identifier): string|false

Note: only valid userids are checked while searching by userid.

Liste de paramètres

ffi

L'objet FFI retourné par rnp_ffi_create.

identifier_type

Identifier type string: "userid", "keyid", "fingerprint", "grip".

identifier

PGP User ID (name and email) for "userid" type, hexadecimal string that represents key id, fingerprint or key grip correspondingly.

Valeurs de retour

Returns hexadecimal fingerprint of the key found on success ou false si une erreur survient.


Encrypt message

  • « rnp_locate_key
  • rnp_op_generate_key »
  • PHP Manual
  • Rnp Fonctions
  • Encrypt message

rnp_op_encrypt

(PECL rnp >= 0.1.1)

rnp_op_encrypt — Encrypt message

Description

rnp_op_encrypt(
RnpFFI $ffi,
string $message,
array $recipient_keys_fp,
array $options = ?
): string|false

Liste de paramètres

ffi

L'objet FFI retourné par rnp_ffi_create.

message

Message to be encrypted.

recipient_keys_fp

Array with fingerprints of recipient's keys. At least one key must be present.

options

An associative array with options.

Key | Data type | Description
"compression_alg" | string | Compression algorithm. Both "compression_alg" and "compression_level" must be set in order to enable data compression.
"compression_level" | integer | Compression level, 0-9. 0 disables compression.
"armor" | boolean | Enable ASCII-armored output. Disabled by default.
"add_signature" | boolean | Encrypted message will be also signed.
"hash" | string | Set hash algorithm used during signature calculation. "add_signature" option should be set to true
"creation_time" | integer | Set signature creation time in seconds since Jan, 1 1970 UTC. By default current time is used.
"expiration_time" | integer | Set signature expiration time in seconds since the creation time. 0 value is used to mark signature as non-expiring (default value).
"password" | string | Add password which is used to encrypt data.
"cipher" | string | Set symmetric encryption algorithm. Possible values are "IDEA", "TRIPLEDES", "CAST5", "BLOWFISH", "AES128", "AES192", "AES256", "TWOFISH", "CAMELLIA128", "CAMELLIA192", "CAMELLIA256", "SM4".
"aead" | string | Set AEAD mode algorithm. Possible values are "None" to disable AEAD, "EAX", "OCB".
"aead_bits" | integer | Set chunk length for AEAD mode via number of chunk size bits. Must be between 0 to 56.
"flags" | integer | Set additional encryption flags. Supported flags: RNP_ENCRYPT_NOWRAP - do not wrap the data in a literal data packet. This would allow to encrypt already signed data.
"file_name" | string | Set the internally stored file name for the data being encrypted. Special value _CONSOLE may be used to mark message as 'for your eyes only', i.e. it should not be stored anywhere but only displayed to the receiver. Default is the empty string.
"file_mtime" | integer | Set input file modification date in seconds since Jan, 1 1970 UTC.

Valeurs de retour

Encrypted data on success ou false si une erreur survient.


Generate key

  • « rnp_op_encrypt
  • rnp_op_sign_cleartext »
  • PHP Manual
  • Rnp Fonctions
  • Generate key

rnp_op_generate_key

(PECL rnp >= 0.1.1)

rnp_op_generate_key — Generate key

Description

rnp_op_generate_key(
RnpFFI $ffi,
string $userid,
string $key_alg,
string $sub_alg = ?,
array $options = ?
): string|false

Liste de paramètres

ffi

L'objet FFI retourné par rnp_ffi_create.

userid

PGP User ID - text that is intended to represent the name and email address of the key holder.

key_alg

Primary key algorithm (i.e. 'RSA', 'DSA', etc).

sub_alg

Subkey algorithm. If not set, subkey will not be generated.

options

An associative array with options.

Key | Data type | Description
"bits" | integer | Primary key size in bits. Applicable only to RSA, DSA and El-Gamal keys.
"hash" | string | Hash algorithm used in self signature or subkey binding signature.
"dsa_qbits" | integer | Set size of a q parameter for DSA key. Note: appropriate default value will be set, depending on key bits. However you may override it if needed.
"curve" | string | Set the curve used for ECC key. Note: this is only applicable for ECDSA, ECDH and SM2 keys.
"request_password" | boolean | Enable requesting password via password provider. This password will be used for key encryption. Password provider callback function should be set in advance by calling rnp_ffi_set_pass_provider(). Note: this setting will be ignored if password was set via"password"
"password" | string | Set the password used to encrypt the secret key data.
"expiration" | integer | Set the key and subkey expiration time in seconds.
"sub_bits" | integer | Subkey size in bits. Applicable only to RSA, DSA and El-Gamal keys.
"sub_hash" | string | Hash algorithm used in subkey self signature or subkey binding signature.
"sub_curve" | string | Set the curve used for ECC subkey. Note: this is only applicable for ECDSA, ECDH and SM2 keys.

Valeurs de retour

Fingerprint of the generated primary key ou false si une erreur survient. This fingerprint can be used later to reference the key in sign and encrypt operations. The key data is stored in FFI memory context and can be saved using rnp_save_keys() or rnp_save_keys_to_path().


Perform signing operation on a textual data, return cleartext signed message

  • « rnp_op_generate_key
  • rnp_op_sign_detached »
  • PHP Manual
  • Rnp Fonctions
  • Perform signing operation on a textual data, return cleartext signed message

rnp_op_sign_cleartext

(PECL rnp >= 0.1.1)

rnp_op_sign_cleartext — Perform signing operation on a textual data, return cleartext signed message

Description

rnp_op_sign_cleartext(
RnpFFI $ffi,
string $data,
array $keys_fp,
array $options = ?
): string|false

Liste de paramètres

ffi

L'objet FFI retourné par rnp_ffi_create.

data

Data to be signed.

keys_fp

Array with key fingerprints. At least one key must be provided. Keys should be present in ffi.

options

An associative array with options.

Key | Data type | Description
"armor" | boolean | Enable ASCII-armored output. Disabled by default.
"hash" | string | Set hash algorithm used during signature calculation.
"creation_time" | integer | Set signature creation time in seconds since Jan, 1 1970 UTC. By default current time is used.
"expiration_time" | integer | Set signature expiration time in seconds since the creation time. 0 value is used to mark signature as non-expiring (default value).

Valeurs de retour

Cleartext signed message containing source data with additional headers and ASCII-armored signature on success ou false si une erreur survient.


Perform signing operation, return detached signature(s)

  • « rnp_op_sign_cleartext
  • rnp_op_sign »
  • PHP Manual
  • Rnp Fonctions
  • Perform signing operation, return detached signature(s)

rnp_op_sign_detached

(PECL rnp >= 0.1.1)

rnp_op_sign_detached — Perform signing operation, return detached signature(s)

Description

rnp_op_sign_detached(
RnpFFI $ffi,
string $data,
array $keys_fp,
array $options = ?
): string|false

Liste de paramètres

ffi

L'objet FFI retourné par rnp_ffi_create.

data

Data to be signed.

keys_fp

Array with key fingerprints. At least one key must be provided. Keys should be present in ffi.

options

An associative array with options.

Key | Data type | Description
"armor" | boolean | Enable ASCII-armored output. Disabled by default.
"hash" | string | Set hash algorithm used during signature calculation.
"creation_time" | integer | Set signature creation time in seconds since Jan, 1 1970 UTC. By default current time is used.
"expiration_time" | integer | Set signature expiration time in seconds since the creation time. 0 value is used to mark signature as non-expiring (default value).

Valeurs de retour

Detached signature(s) data on success ou false si une erreur survient.


Perform signing operation on a binary data, return embedded signature(s)

  • « rnp_op_sign_detached
  • rnp_op_verify_detached »
  • PHP Manual
  • Rnp Fonctions
  • Perform signing operation on a binary data, return embedded signature(s)

rnp_op_sign

(PECL rnp >= 0.1.1)

rnp_op_sign — Perform signing operation on a binary data, return embedded signature(s)

Description

rnp_op_sign(
RnpFFI $ffi,
string $data,
array $keys_fp,
array $options = ?
): string|false

Liste de paramètres

ffi

L'objet FFI retourné par rnp_ffi_create.

data

Data to be signed.

keys_fp

Array with key fingerprints. At least one key must be provided. Keys should be present in ffi.

options

An associative array with options.

Key | Data type | Description
"compression_alg" | string | Compression algorithm. Both "compression_alg" and "compression_level" must be set in order to enable data compression.
"compression_level" | integer | Compression level, 0-9. 0 disables compression.
"armor" | boolean | Enable ASCII-armored output. Disabled by default.
"hash" | string | Set hash algorithm used during signature calculation.
"creation_time" | integer | Set signature creation time in seconds since Jan, 1 1970 UTC. By default current time is used.
"expiration_time" | integer | Set signature expiration time in seconds since the creation time. 0 value is used to mark signature as non-expiring (default value).
"file_name" | string | Set input file name.Special value _CONSOLE may be used to mark message as 'for your eyes only', i.e. it should not be stored anywhere but only displayed to the receiver. Default is the empty string.
"file_mtime" | integer | Set input file modification date in seconds since Jan, 1 1970 UTC.

Valeurs de retour

Data with embedded signature(s) on success ou false si une erreur survient.


Verify detached signatures

  • « rnp_op_sign
  • rnp_op_verify »
  • PHP Manual
  • Rnp Fonctions
  • Verify detached signatures

rnp_op_verify_detached

(PECL rnp >= 0.1.1)

rnp_op_verify_detached — Verify detached signatures

Description

rnp_op_verify_detached(RnpFFI $ffi, string $data, string $signature): array|false

Liste de paramètres

ffi

L'objet FFI retourné par rnp_ffi_create.

data

Source data.

signature

Detached signature data.

Valeurs de retour

An associative array with information about verification results ou false si une erreur survient.

Key | Data type | Description
"verification_status" | string | Overall verification result, either "Success" string or appropriate error message. "Success" result is set when at least one signature is valid and successfully verified. Individual verification results for each signature can be checked in the "signatures" array.
"file_name" | string | File name.
"file_mtime" | integer | File modification time.
"mode" | string | Data protection (encryption) mode used in processed message. Currently defined values are "none", "cfb", "cfb-mdc", "aead-ocb", "aead-eax".
"cipher" | string | Symmetric cipher used for data encryption.
"valid_integrity" | boolean | true if message integrity protection was used (i.e. MDC or AEAD) and it was validated successfully.
"signatures" | array | An associative array describing each signature found. See description below.

"signatures" sub-array.

Key | Data type | Description
"verification_status" | string | Signature verification status, either "Success" string or appropriate error message.
"creation_time" | integer | Signature creation time in seconds since Jan, 1 1970 UTC.
"expiration_time" | integer | Signature expiration time in seconds since the creation time or 0 if signature never expires.
"hash" | string | Hash function algorithm used to calculate the signature.
"signing_key" | string | Fingerprint of the key used for signing. Could be "Not found" if corresponding public key is not loaded to the FFI object.
"signature_type" | string | Signature type. Currently defined values are: 'binary', 'text', 'standalone', 'certification (generic)', 'certification (persona)', 'certification (casual)', 'certification (positive)', 'subkey binding', 'primary key binding', 'direct', 'key revocation', 'subkey revocation', 'certification revocation', 'timestamp', 'uknown: 0..255'.


Verify embedded or cleartext signatures

  • « rnp_op_verify_detached
  • rnp_save_keys_to_path »
  • PHP Manual
  • Rnp Fonctions
  • Verify embedded or cleartext signatures

rnp_op_verify

(PECL rnp >= 0.1.1)

rnp_op_verify — Verify embedded or cleartext signatures

Description

rnp_op_verify(RnpFFI $ffi, string $data): array|false

Liste de paramètres

ffi

L'objet FFI retourné par rnp_ffi_create.

data

Signed data.

Valeurs de retour

An associative array with information about verification results ou false si une erreur survient.

Key | Data type | Description
"verification_status" | string | Overall verification result, either "Success" string or appropriate error message. "Success" result is set when at least one signature is valid and successfully verified. Individual verification results for each signature can be checked in the "signatures" array.
"file_name" | string | File name.
"file_mtime" | integer | File modification time.
"mode" | string | Data protection (encryption) mode used in processed message. Currently defined values are "none", "cfb", "cfb-mdc", "aead-ocb", "aead-eax".
"cipher" | string | Symmetric cipher used for data encryption.
"valid_integrity" | boolean | true if message integrity protection was used (i.e. MDC or AEAD) and it was validated successfully.
"signatures" | array | An associative array describing each signature found. See description below.

"signatures" sub-array.

Key | Data type | Description
"verification_status" | string | Signature verification status, either "Success" string or appropriate error message.
"creation_time" | integer | Signature creation time in seconds since Jan, 1 1970 UTC.
"expiration_time" | integer | Signature expiration time in seconds since the creation time or 0 if signature never expires.
"hash" | string | Hash function algorithm used to calculate the signature.
"signing_key" | string | Fingerprint of the key used for signing. Could be "Not found" if corresponding public key is not loaded to the FFI object.
"signature_type" | string | Signature type. Currently defined values are: 'binary', 'text', 'standalone', 'certification (generic)', 'certification (persona)', 'certification (casual)', 'certification (positive)', 'subkey binding', 'primary key binding', 'direct', 'key revocation', 'subkey revocation', 'certification revocation', 'timestamp', 'uknown: 0..255'.


Save keys to specified path

  • « rnp_op_verify
  • rnp_save_keys »
  • PHP Manual
  • Rnp Fonctions
  • Save keys to specified path

rnp_save_keys_to_path

(PECL rnp >= 0.1.1)

rnp_save_keys_to_path — Save keys to specified path

Description

rnp_save_keys_to_path(
RnpFFI $ffi,
string $format,
string $output_path,
int $flags
): bool

Saves keys present in the FFI object (loaded or generated) to the specified file or directory.

Liste de paramètres

ffi

L'objet FFI retourné par rnp_ffi_create.

format

Le format de clé pour la donnée (GPG, KBX, G10).

output_path

File or directory path where keys should be saved to.

flags

Voir la description des drapeaux RNP_LOAD_SAVE_*.

Valeurs de retour

Returns true on success ou false si une erreur survient.


Save keys to PHP string

  • « rnp_save_keys_to_path
  • rnp_supported_features »
  • PHP Manual
  • Rnp Fonctions
  • Save keys to PHP string

rnp_save_keys

(PECL rnp >= 0.1.1)

rnp_save_keys — Save keys to PHP string

Description

rnp_save_keys(
RnpFFI $ffi,
string $format,
string &$output,
int $flags
): bool

Note that for G10, the output must be a directory (which must already exist).

Liste de paramètres

ffi

L'objet FFI retourné par rnp_ffi_create.

format

Le format de clé pour la donnée (GPG, KBX, G10).

output

key packets will be saved to the string referenced by output.

flags

Voir la description des drapeaux RNP_LOAD_SAVE_*.

Valeurs de retour

Returns true on success ou false si une erreur survient.


Get supported features in JSON format

  • « rnp_save_keys
  • rnp_version_string_full »
  • PHP Manual
  • Rnp Fonctions
  • Get supported features in JSON format

rnp_supported_features

(PECL rnp >= 0.1.1)

rnp_supported_features — Get supported features in JSON format

Description

rnp_supported_features(string $type): string|false

Get the JSON formatted string containing array of supported rnp feature values (algorithms, curves, etc) by type.

Liste de paramètres

type

See RNP_FEATURE_* constants for supported values.

Valeurs de retour

String containing JSON formatted array of supported algorithms, curves, etc ou false si une erreur survient.


Full version string of RNP library

  • « rnp_supported_features
  • rnp_version_string »
  • PHP Manual
  • Rnp Fonctions
  • Full version string of RNP library

rnp_version_string_full

(PECL rnp >= 0.1.1)

rnp_version_string_full — Full version string of RNP library

Description

rnp_version_string_full(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns full version string of RNP library.


RNP library version

  • « rnp_version_string_full
  • RnpFFI »
  • PHP Manual
  • Rnp Fonctions
  • RNP library version

rnp_version_string

(PECL rnp >= 0.1.1)

rnp_version_string — RNP library version

Description

rnp_version_string(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns RNP library version string.


The RnpFFI class

(PECL rnp >= 0.1.1)

Introduction

Synopsis de la classe

class RnpFFI {
}


Sodium

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Sodium Fonctions
    • sodium_add — Add large numbers
    • sodium_base642bin — Decodes a base64-encoded string into raw binary.
    • sodium_bin2base64 — Encodes a raw binary string with base64.
    • sodium_bin2hex — Encode to hexadecimal
    • sodium_compare — Compare large numbers
    • sodium_crypto_aead_aes256gcm_decrypt — Verify then decrypt a message with AES-256-GCM
    • sodium_crypto_aead_aes256gcm_encrypt — Encrypt then authenticate with AES-256-GCM
    • sodium_crypto_aead_aes256gcm_is_available — Check if hardware supports AES256-GCM
    • sodium_crypto_aead_aes256gcm_keygen — Generate a random AES-256-GCM key
    • sodium_crypto_aead_chacha20poly1305_decrypt — Verify then decrypt with ChaCha20-Poly1305
    • sodium_crypto_aead_chacha20poly1305_encrypt — Encrypt then authenticate with ChaCha20-Poly1305
    • sodium_crypto_aead_chacha20poly1305_ietf_decrypt — Verify that the ciphertext includes a valid tag
    • sodium_crypto_aead_chacha20poly1305_ietf_encrypt — Encrypt a message
    • sodium_crypto_aead_chacha20poly1305_ietf_keygen — Generate a random ChaCha20-Poly1305 (IETF) key.
    • sodium_crypto_aead_chacha20poly1305_keygen — Generate a random ChaCha20-Poly1305 key.
    • sodium_crypto_aead_xchacha20poly1305_ietf_decrypt — (Preferred) Verify then decrypt with XChaCha20-Poly1305
    • sodium_crypto_aead_xchacha20poly1305_ietf_encrypt — (Preferred) Encrypt then authenticate with XChaCha20-Poly1305
    • sodium_crypto_aead_xchacha20poly1305_ietf_keygen — Generate a random XChaCha20-Poly1305 key.
    • sodium_crypto_auth_keygen — Generate a random key for sodium_crypto_auth
    • sodium_crypto_auth_verify — Verifies that the tag is valid for the message
    • sodium_crypto_auth — Compute a tag for the message
    • sodium_crypto_box_keypair_from_secretkey_and_publickey — Create a unified keypair string from a secret key and public key
    • sodium_crypto_box_keypair — Randomly generate a secret key and a corresponding public key
    • sodium_crypto_box_open — Authenticated public-key decryption
    • sodium_crypto_box_publickey_from_secretkey — Calculate the public key from a secret key
    • sodium_crypto_box_publickey — Extract the public key from a crypto_box keypair
    • sodium_crypto_box_seal_open — Anonymous public-key decryption
    • sodium_crypto_box_seal — Anonymous public-key encryption
    • sodium_crypto_box_secretkey — Extracts the secret key from a crypto_box keypair
    • sodium_crypto_box_seed_keypair — Deterministically derive the key pair from a single key
    • sodium_crypto_box — Authenticated public-key encryption
    • sodium_crypto_core_ristretto255_add — Adds an element
    • sodium_crypto_core_ristretto255_from_hash — Maps a vector
    • sodium_crypto_core_ristretto255_is_valid_point — Determines if a point on the ristretto255 curve
    • sodium_crypto_core_ristretto255_random — Generates a random key
    • sodium_crypto_core_ristretto255_scalar_add — Adds a scalar value
    • sodium_crypto_core_ristretto255_scalar_complement — The sodium_crypto_core_ristretto255_scalar_complement purpose
    • sodium_crypto_core_ristretto255_scalar_invert — Inverts a scalar value
    • sodium_crypto_core_ristretto255_scalar_mul — Multiplies a scalar value
    • sodium_crypto_core_ristretto255_scalar_negate — Negates a scalar value
    • sodium_crypto_core_ristretto255_scalar_random — Generates a random key
    • sodium_crypto_core_ristretto255_scalar_reduce — Reduces a scalar value
    • sodium_crypto_core_ristretto255_scalar_sub — Subtracts a scalar value
    • sodium_crypto_core_ristretto255_sub — Subtracts an element
    • sodium_crypto_generichash_final — Complete the hash
    • sodium_crypto_generichash_init — Initialize a hash for streaming
    • sodium_crypto_generichash_keygen — Generate a random generichash key
    • sodium_crypto_generichash_update — Add message to a hash
    • sodium_crypto_generichash — Get a hash of the message
    • sodium_crypto_kdf_derive_from_key — Derive a subkey
    • sodium_crypto_kdf_keygen — Generate a random root key for the KDF interface
    • sodium_crypto_kx_client_session_keys — Calculate the client-side session keys.
    • sodium_crypto_kx_keypair — Creates a new sodium keypair
    • sodium_crypto_kx_publickey — Extract the public key from a crypto_kx keypair
    • sodium_crypto_kx_secretkey — Extract the secret key from a crypto_kx keypair.
    • sodium_crypto_kx_seed_keypair — Description
    • sodium_crypto_kx_server_session_keys — Calculate the server-side session keys.
    • sodium_crypto_pwhash_scryptsalsa208sha256_str_verify — Verify that the password is a valid password verification string
    • sodium_crypto_pwhash_scryptsalsa208sha256_str — Get an ASCII encoded hash
    • sodium_crypto_pwhash_scryptsalsa208sha256 — Derives a key from a password, using scrypt
    • sodium_crypto_pwhash_str_needs_rehash — Determine whether or not to rehash a password
    • sodium_crypto_pwhash_str_verify — Verifies that a password matches a hash
    • sodium_crypto_pwhash_str — Get an ASCII-encoded hash
    • sodium_crypto_pwhash — Derive a key from a password, using Argon2
    • sodium_crypto_scalarmult_base — Alias de sodium_crypto_box_publickey_from_secretkey
    • sodium_crypto_scalarmult_ristretto255_base — Calculates the public key from a secret key
    • sodium_crypto_scalarmult_ristretto255 — Computes a shared secret
    • sodium_crypto_scalarmult — Compute a shared secret given a user's secret key and another user's public key
    • sodium_crypto_secretbox_keygen — Generate random key for sodium_crypto_secretbox
    • sodium_crypto_secretbox_open — Authenticated shared-key decryption
    • sodium_crypto_secretbox — Authenticated shared-key encryption
    • sodium_crypto_secretstream_xchacha20poly1305_init_pull — Initialize a secretstream context for decryption
    • sodium_crypto_secretstream_xchacha20poly1305_init_push — Initialize a secretstream context for encryption
    • sodium_crypto_secretstream_xchacha20poly1305_keygen — Generate a random secretstream key.
    • sodium_crypto_secretstream_xchacha20poly1305_pull — Decrypt a chunk of data from an encrypted stream
    • sodium_crypto_secretstream_xchacha20poly1305_push — Encrypt a chunk of data so that it can safely be decrypted in a streaming API
    • sodium_crypto_secretstream_xchacha20poly1305_rekey — Explicitly rotate the key in the secretstream state
    • sodium_crypto_shorthash_keygen — Get random bytes for key
    • sodium_crypto_shorthash — Compute a short hash of a message and key
    • sodium_crypto_sign_detached — Sign the message
    • sodium_crypto_sign_ed25519_pk_to_curve25519 — Convert an Ed25519 public key to a Curve25519 public key
    • sodium_crypto_sign_ed25519_sk_to_curve25519 — Convert an Ed25519 secret key to a Curve25519 secret key
    • sodium_crypto_sign_keypair_from_secretkey_and_publickey — Join a secret key and public key together
    • sodium_crypto_sign_keypair — Randomly generate a secret key and a corresponding public key
    • sodium_crypto_sign_open — Check that the signed message has a valid signature
    • sodium_crypto_sign_publickey_from_secretkey — Extract the Ed25519 public key from the secret key
    • sodium_crypto_sign_publickey — Extract the Ed25519 public key from a keypair
    • sodium_crypto_sign_secretkey — Extract the Ed25519 secret key from a keypair
    • sodium_crypto_sign_seed_keypair — Deterministically derive the key pair from a single key
    • sodium_crypto_sign_verify_detached — Verify signature for the message
    • sodium_crypto_sign — Sign a message
    • sodium_crypto_stream_keygen — Generate a random sodium_crypto_stream key.
    • sodium_crypto_stream_xchacha20_keygen — Returns a secure random key
    • sodium_crypto_stream_xchacha20_xor_ic — Encrypts a message using a nonce and a secret key (no authentication)
    • sodium_crypto_stream_xchacha20_xor — Encrypts a message using a nonce and a secret key (no authentication)
    • sodium_crypto_stream_xchacha20 — Expands the key and nonce into a keystream of pseudorandom bytes
    • sodium_crypto_stream_xor — Encrypt a message without authentication
    • sodium_crypto_stream — Generate a deterministic sequence of bytes from a seed
    • sodium_hex2bin — Decodes a hexadecimally encoded binary string
    • sodium_increment — Increment large number
    • sodium_memcmp — Test for equality in constant-time
    • sodium_memzero — Overwrite a string with NUL characters
    • sodium_pad — Add padding data
    • sodium_unpad — Remove padding data
  • SodiumException — La classe SodiumException


Introduction

Sodium est une bibliothèque moderne et facile à utiliser pour le chiffrement, déchiffrement, les signatures, et le hashage de mot de passe entre autres. Son objectif est de fournir toutes les opérations de base nécessaires à la construction d'outils cryptographiques de plus haut niveau.


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

Cette extension nécessite » libsodium = 1.0.8.


Installation

À partir de PHP 7.2.0 cette extension est fournie avec PHP. Pour les versions de PHP plus anciennes cette extension est disponible via PECL.

Systèmes Linux

Pour pouvoir utiliser cette extension vous devez compiler PHP avec le support de sodium en utilisant l'option de configuration --with-sodium[=DIR].

Windows

Pour pouvoir utiliser cette extension vous devez ajouter extension=php_sodium.dll au php.ini.

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 : » https://pecl.php.net/package/libsodium


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.

SODIUM_LIBRARY_VERSION (string)
SODIUM_LIBRARY_MAJOR_VERSION (int)
SODIUM_LIBRARY_MINOR_VERSION (int)
SODIUM_CRYPTO_AEAD_AES256GCM_KEYBYTES (int)
SODIUM_CRYPTO_AEAD_AES256GCM_NSECBYTES (int)
SODIUM_CRYPTO_AEAD_AES256GCM_NPUBBYTES (int)
SODIUM_CRYPTO_AEAD_AES256GCM_ABYTES (int)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_KEYBYTES (int)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_NSECBYTES (int)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_NPUBBYTES (int)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_ABYTES (int)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_KEYBYTES (int)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_NSECBYTES (int)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_NPUBBYTES (int)
SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_ABYTES (int)
SODIUM_CRYPTO_AUTH_BYTES (int)
SODIUM_CRYPTO_AUTH_KEYBYTES (int)
SODIUM_CRYPTO_BOX_SEALBYTES (int)
SODIUM_CRYPTO_BOX_SECRETKEYBYTES (int)
SODIUM_CRYPTO_BOX_PUBLICKEYBYTES (int)
SODIUM_CRYPTO_BOX_KEYPAIRBYTES (int)
SODIUM_CRYPTO_BOX_MACBYTES (int)
SODIUM_CRYPTO_BOX_NONCEBYTES (int)
SODIUM_CRYPTO_BOX_SEEDBYTES (int)
SODIUM_CRYPTO_KDF_BYTES_MIN (int)
SODIUM_CRYPTO_KDF_BYTES_MAX (int)
SODIUM_CRYPTO_KDF_CONTEXTBYTES (int)
SODIUM_CRYPTO_KDF_KEYBYTES (int)
SODIUM_CRYPTO_KX_SEEDBYTES (int)
SODIUM_CRYPTO_KX_SESSIONKEYBYTES (int)
SODIUM_CRYPTO_KX_PUBLICKEYBYTES (int)
SODIUM_CRYPTO_KX_SECRETKEYBYTES (int)
SODIUM_CRYPTO_KX_KEYPAIRBYTES (int)
SODIUM_CRYPTO_GENERICHASH_BYTES (int)
SODIUM_CRYPTO_GENERICHASH_BYTES_MIN (int)
SODIUM_CRYPTO_GENERICHASH_BYTES_MAX (int)
SODIUM_CRYPTO_GENERICHASH_KEYBYTES (int)
SODIUM_CRYPTO_GENERICHASH_KEYBYTES_MIN (int)
SODIUM_CRYPTO_GENERICHASH_KEYBYTES_MAX (int)
SODIUM_CRYPTO_PWHASH_ALG_ARGON2I13 (int)
SODIUM_CRYPTO_PWHASH_ALG_ARGON2ID13 (int)
SODIUM_CRYPTO_PWHASH_ALG_DEFAULT (int)
SODIUM_CRYPTO_PWHASH_SALTBYTES (int)
SODIUM_CRYPTO_PWHASH_STRPREFIX (int)
SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE (int)
SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE (int)
SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE (int)
SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE (int)
SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE (int)
SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE (int)
SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_SALTBYTES (int)
SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_STRPREFIX (string)
SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_INTERACTIVE (int)
SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_INTERACTIVE (int)
SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_SENSITIVE (int)
SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_SENSITIVE (int)
SODIUM_CRYPTO_CORE_RISTRETTO255_BYTES (int)
Disponible à partir de PHP 8.1.0.
SODIUM_CRYPTO_CORE_RISTRETTO255_HASHBYTES (int)
Disponible à partir de PHP 8.1.0.
SODIUM_CRYPTO_CORE_RISTRETTO255_NONREDUCEDSCALARBYTES (int)
Disponible à partir de PHP 8.1.0.
SODIUM_CRYPTO_CORE_RISTRETTO255_SCALARBYTES (int)
Disponible à partir de PHP 8.1.0.
SODIUM_CRYPTO_SCALARMULT_BYTES (int)
SODIUM_CRYPTO_SCALARMULT_SCALARBYTES (int)
SODIUM_CRYPTO_SCALARMULT_RISTRETTO255_BYTES (int)
Disponible à partir de PHP 8.1.0.
SODIUM_CRYPTO_SCALARMULT_RISTRETTO255_SCALARBYTES (int)
Disponible à partir de PHP 8.1.0.
SODIUM_CRYPTO_SHORTHASH_BYTES (int)
SODIUM_CRYPTO_SHORTHASH_KEYBYTES (int)
SODIUM_CRYPTO_SECRETBOX_KEYBYTES (int)
SODIUM_CRYPTO_SECRETBOX_MACBYTES (int)
SODIUM_CRYPTO_SECRETBOX_NONCEBYTES (int)
SODIUM_CRYPTO_SIGN_BYTES (int)
SODIUM_CRYPTO_SIGN_SEEDBYTES (int)
SODIUM_CRYPTO_SIGN_PUBLICKEYBYTES (int)
SODIUM_CRYPTO_SIGN_SECRETKEYBYTES (int)
SODIUM_CRYPTO_SIGN_KEYPAIRBYTES (int)
SODIUM_CRYPTO_STREAM_NONCEBYTES (int)
SODIUM_CRYPTO_STREAM_KEYBYTES (int)
SODIUM_CRYPTO_STREAM_XCHACHA20_KEYBYTES (int)
Disponible à partir de PHP 8.1.0.
SODIUM_CRYPTO_STREAM_XCHACHA20_NONCEBYTES (int)
Disponible à partir de PHP 8.1.0.


Sodium Fonctions

Sommaire

  • sodium_add — Add large numbers
  • sodium_base642bin — Decodes a base64-encoded string into raw binary.
  • sodium_bin2base64 — Encodes a raw binary string with base64.
  • sodium_bin2hex — Encode to hexadecimal
  • sodium_compare — Compare large numbers
  • sodium_crypto_aead_aes256gcm_decrypt — Verify then decrypt a message with AES-256-GCM
  • sodium_crypto_aead_aes256gcm_encrypt — Encrypt then authenticate with AES-256-GCM
  • sodium_crypto_aead_aes256gcm_is_available — Check if hardware supports AES256-GCM
  • sodium_crypto_aead_aes256gcm_keygen — Generate a random AES-256-GCM key
  • sodium_crypto_aead_chacha20poly1305_decrypt — Verify then decrypt with ChaCha20-Poly1305
  • sodium_crypto_aead_chacha20poly1305_encrypt — Encrypt then authenticate with ChaCha20-Poly1305
  • sodium_crypto_aead_chacha20poly1305_ietf_decrypt — Verify that the ciphertext includes a valid tag
  • sodium_crypto_aead_chacha20poly1305_ietf_encrypt — Encrypt a message
  • sodium_crypto_aead_chacha20poly1305_ietf_keygen — Generate a random ChaCha20-Poly1305 (IETF) key.
  • sodium_crypto_aead_chacha20poly1305_keygen — Generate a random ChaCha20-Poly1305 key.
  • sodium_crypto_aead_xchacha20poly1305_ietf_decrypt — (Preferred) Verify then decrypt with XChaCha20-Poly1305
  • sodium_crypto_aead_xchacha20poly1305_ietf_encrypt — (Preferred) Encrypt then authenticate with XChaCha20-Poly1305
  • sodium_crypto_aead_xchacha20poly1305_ietf_keygen — Generate a random XChaCha20-Poly1305 key.
  • sodium_crypto_auth_keygen — Generate a random key for sodium_crypto_auth
  • sodium_crypto_auth_verify — Verifies that the tag is valid for the message
  • sodium_crypto_auth — Compute a tag for the message
  • sodium_crypto_box_keypair_from_secretkey_and_publickey — Create a unified keypair string from a secret key and public key
  • sodium_crypto_box_keypair — Randomly generate a secret key and a corresponding public key
  • sodium_crypto_box_open — Authenticated public-key decryption
  • sodium_crypto_box_publickey_from_secretkey — Calculate the public key from a secret key
  • sodium_crypto_box_publickey — Extract the public key from a crypto_box keypair
  • sodium_crypto_box_seal_open — Anonymous public-key decryption
  • sodium_crypto_box_seal — Anonymous public-key encryption
  • sodium_crypto_box_secretkey — Extracts the secret key from a crypto_box keypair
  • sodium_crypto_box_seed_keypair — Deterministically derive the key pair from a single key
  • sodium_crypto_box — Authenticated public-key encryption
  • sodium_crypto_core_ristretto255_add — Adds an element
  • sodium_crypto_core_ristretto255_from_hash — Maps a vector
  • sodium_crypto_core_ristretto255_is_valid_point — Determines if a point on the ristretto255 curve
  • sodium_crypto_core_ristretto255_random — Generates a random key
  • sodium_crypto_core_ristretto255_scalar_add — Adds a scalar value
  • sodium_crypto_core_ristretto255_scalar_complement — The sodium_crypto_core_ristretto255_scalar_complement purpose
  • sodium_crypto_core_ristretto255_scalar_invert — Inverts a scalar value
  • sodium_crypto_core_ristretto255_scalar_mul — Multiplies a scalar value
  • sodium_crypto_core_ristretto255_scalar_negate — Negates a scalar value
  • sodium_crypto_core_ristretto255_scalar_random — Generates a random key
  • sodium_crypto_core_ristretto255_scalar_reduce — Reduces a scalar value
  • sodium_crypto_core_ristretto255_scalar_sub — Subtracts a scalar value
  • sodium_crypto_core_ristretto255_sub — Subtracts an element
  • sodium_crypto_generichash_final — Complete the hash
  • sodium_crypto_generichash_init — Initialize a hash for streaming
  • sodium_crypto_generichash_keygen — Generate a random generichash key
  • sodium_crypto_generichash_update — Add message to a hash
  • sodium_crypto_generichash — Get a hash of the message
  • sodium_crypto_kdf_derive_from_key — Derive a subkey
  • sodium_crypto_kdf_keygen — Generate a random root key for the KDF interface
  • sodium_crypto_kx_client_session_keys — Calculate the client-side session keys.
  • sodium_crypto_kx_keypair — Creates a new sodium keypair
  • sodium_crypto_kx_publickey — Extract the public key from a crypto_kx keypair
  • sodium_crypto_kx_secretkey — Extract the secret key from a crypto_kx keypair.
  • sodium_crypto_kx_seed_keypair — Description
  • sodium_crypto_kx_server_session_keys — Calculate the server-side session keys.
  • sodium_crypto_pwhash_scryptsalsa208sha256_str_verify — Verify that the password is a valid password verification string
  • sodium_crypto_pwhash_scryptsalsa208sha256_str — Get an ASCII encoded hash
  • sodium_crypto_pwhash_scryptsalsa208sha256 — Derives a key from a password, using scrypt
  • sodium_crypto_pwhash_str_needs_rehash — Determine whether or not to rehash a password
  • sodium_crypto_pwhash_str_verify — Verifies that a password matches a hash
  • sodium_crypto_pwhash_str — Get an ASCII-encoded hash
  • sodium_crypto_pwhash — Derive a key from a password, using Argon2
  • sodium_crypto_scalarmult_base — Alias de sodium_crypto_box_publickey_from_secretkey
  • sodium_crypto_scalarmult_ristretto255_base — Calculates the public key from a secret key
  • sodium_crypto_scalarmult_ristretto255 — Computes a shared secret
  • sodium_crypto_scalarmult — Compute a shared secret given a user's secret key and another user's public key
  • sodium_crypto_secretbox_keygen — Generate random key for sodium_crypto_secretbox
  • sodium_crypto_secretbox_open — Authenticated shared-key decryption
  • sodium_crypto_secretbox — Authenticated shared-key encryption
  • sodium_crypto_secretstream_xchacha20poly1305_init_pull — Initialize a secretstream context for decryption
  • sodium_crypto_secretstream_xchacha20poly1305_init_push — Initialize a secretstream context for encryption
  • sodium_crypto_secretstream_xchacha20poly1305_keygen — Generate a random secretstream key.
  • sodium_crypto_secretstream_xchacha20poly1305_pull — Decrypt a chunk of data from an encrypted stream
  • sodium_crypto_secretstream_xchacha20poly1305_push — Encrypt a chunk of data so that it can safely be decrypted in a streaming API
  • sodium_crypto_secretstream_xchacha20poly1305_rekey — Explicitly rotate the key in the secretstream state
  • sodium_crypto_shorthash_keygen — Get random bytes for key
  • sodium_crypto_shorthash — Compute a short hash of a message and key
  • sodium_crypto_sign_detached — Sign the message
  • sodium_crypto_sign_ed25519_pk_to_curve25519 — Convert an Ed25519 public key to a Curve25519 public key
  • sodium_crypto_sign_ed25519_sk_to_curve25519 — Convert an Ed25519 secret key to a Curve25519 secret key
  • sodium_crypto_sign_keypair_from_secretkey_and_publickey — Join a secret key and public key together
  • sodium_crypto_sign_keypair — Randomly generate a secret key and a corresponding public key
  • sodium_crypto_sign_open — Check that the signed message has a valid signature
  • sodium_crypto_sign_publickey_from_secretkey — Extract the Ed25519 public key from the secret key
  • sodium_crypto_sign_publickey — Extract the Ed25519 public key from a keypair
  • sodium_crypto_sign_secretkey — Extract the Ed25519 secret key from a keypair
  • sodium_crypto_sign_seed_keypair — Deterministically derive the key pair from a single key
  • sodium_crypto_sign_verify_detached — Verify signature for the message
  • sodium_crypto_sign — Sign a message
  • sodium_crypto_stream_keygen — Generate a random sodium_crypto_stream key.
  • sodium_crypto_stream_xchacha20_keygen — Returns a secure random key
  • sodium_crypto_stream_xchacha20_xor_ic — Encrypts a message using a nonce and a secret key (no authentication)
  • sodium_crypto_stream_xchacha20_xor — Encrypts a message using a nonce and a secret key (no authentication)
  • sodium_crypto_stream_xchacha20 — Expands the key and nonce into a keystream of pseudorandom bytes
  • sodium_crypto_stream_xor — Encrypt a message without authentication
  • sodium_crypto_stream — Generate a deterministic sequence of bytes from a seed
  • sodium_hex2bin — Decodes a hexadecimally encoded binary string
  • sodium_increment — Increment large number
  • sodium_memcmp — Test for equality in constant-time
  • sodium_memzero — Overwrite a string with NUL characters
  • sodium_pad — Add padding data
  • sodium_unpad — Remove padding data


Add large numbers

  • « Sodium Fonctions
  • sodium_base642bin »
  • PHP Manual
  • Sodium Fonctions
  • Add large numbers

sodium_add

(PHP 7 >= 7.2.0, PHP 8)

sodium_add — Add large numbers

Description

sodium_add(string &$string1, string $string2): void

This adds the parameter string2 to string1, overwriting the value stored in string1. This function assumes both parameters are binary strings that represent unsigned integers in little-endian byte order.

Liste de paramètres

string1

String representing an arbitrary-length unsigned integer in little-endian byte order. This parameter is passed by reference and will hold the sum of the two parameters.

string2

String representing an arbitrary-length unsigned integer in little-endian byte order.

Valeurs de retour

Aucune valeur n'est retournée.


Decodes a base64-encoded string into raw binary.

  • « sodium_add
  • sodium_bin2base64 »
  • PHP Manual
  • Sodium Fonctions
  • Decodes a base64-encoded string into raw binary.

sodium_base642bin

(PHP 7 >= 7.2.0, PHP 8)

sodium_base642bin — Decodes a base64-encoded string into raw binary.

Description

sodium_base642bin(string $string, int $id, string $ignore = ""): string

Converts a base64 encoded string into raw binary. Unlike base64_decode(), sodium_base642bin() is constant-time (a property that is important for any code that touches cryptographic inputs, such as plaintexts or keys) and supports multiple character sets.

Liste de paramètres

string

string; Encoded string.

id

  • SODIUM_BASE64_VARIANT_ORIGINAL for standard (A-Za-z0-9/\+) Base64 encoding.
  • SODIUM_BASE64_VARIANT_ORIGINAL_NO_PADDING for standard (A-Za-z0-9/\+) Base64 encoding, without = padding characters.
  • SODIUM_BASE64_VARIANT_URLSAFE for URL-safe (A-Za-z0-9\-_) Base64 encoding.
  • SODIUM_BASE64_VARIANT_URLSAFE_NO_PADDING for URL-safe (A-Za-z0-9\-_) Base64 encoding, without = padding characters.

ignore

Characters to ignore when decoding (e.g. whitespace characters).

Valeurs de retour

Decoded string.


Encodes a raw binary string with base64.

  • « sodium_base642bin
  • sodium_bin2hex »
  • PHP Manual
  • Sodium Fonctions
  • Encodes a raw binary string with base64.

sodium_bin2base64

(PHP 7 >= 7.2.0, PHP 8)

sodium_bin2base64 — Encodes a raw binary string with base64.

Description

sodium_bin2base64(string $string, int $id): string

Converts a raw binary string into a base64-encoded string. Unlike base64_encode(), sodium_bin2base64() is constant-time (a property that is important for any code that touches cryptographic inputs, such as plaintexts or keys) and supports multiple character sets.

Liste de paramètres

string

Raw binary string.

id

  • SODIUM_BASE64_VARIANT_ORIGINAL for standard (A-Za-z0-9/\+) Base64 encoding.
  • SODIUM_BASE64_VARIANT_ORIGINAL_NO_PADDING for standard (A-Za-z0-9/\+) Base64 encoding, without = padding characters.
  • SODIUM_BASE64_VARIANT_URLSAFE for URL-safe (A-Za-z0-9\-_) Base64 encoding.
  • SODIUM_BASE64_VARIANT_URLSAFE_NO_PADDING for URL-safe (A-Za-z0-9\-_) Base64 encoding, without = padding characters.

Valeurs de retour

Base64-encoded string.


Encode to hexadecimal

  • « sodium_bin2base64
  • sodium_compare »
  • PHP Manual
  • Sodium Fonctions
  • Encode to hexadecimal

sodium_bin2hex

(PHP 7 >= 7.2.0, PHP 8)

sodium_bin2hex — Encode to hexadecimal

Description

sodium_bin2hex(string $string): string

Converts a raw binary string into a hex-encoded string. Unlike the standard hex-encoding function, sodium_bin2hex() is constant-time (a property that is important for any code that touches cryptographic inputs, such as plaintexts or keys).

Liste de paramètres

string

Raw binary string.

Valeurs de retour

Hex encoded string.


Compare large numbers

  • « sodium_bin2hex
  • sodium_crypto_aead_aes256gcm_decrypt »
  • PHP Manual
  • Sodium Fonctions
  • Compare large numbers

sodium_compare

(PHP 7 >= 7.2.0, PHP 8)

sodium_compare — Compare large numbers

Description

sodium_compare(string $string1, string $string2): int

Compare two strings as if they were arbitrary-length, unsigned little-endian integers, without side-channel leakage.

Liste de paramètres

string1

Left operand

string2

Right operand

Valeurs de retour

Returns -1 if string1 is less than string2.

Returns 1 if string1 is greater than string2.

Returns 0 if both strings are equal.


Verify then decrypt a message with AES-256-GCM

  • « sodium_compare
  • sodium_crypto_aead_aes256gcm_encrypt »
  • PHP Manual
  • Sodium Fonctions
  • Verify then decrypt a message with AES-256-GCM

sodium_crypto_aead_aes256gcm_decrypt

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_aes256gcm_decrypt — Verify then decrypt a message with AES-256-GCM

Description

sodium_crypto_aead_aes256gcm_decrypt(
string $ciphertext,
string $additional_data,
string $nonce,
string $key
): string|false

Verify then decrypt with AES-256-GCM. Only available if sodium_crypto_aead_aes256gcm_is_available() returns true.

Liste de paramètres

ciphertext

Must be in the format provided by sodium_crypto_aead_aes256gcm_encrypt() (ciphertext and tag, concatenated).

additional_data

Additional, authenticated data. This is used in the verification of the authentication tag appended to the ciphertext, but it is not encrypted or stored in the ciphertext.

nonce

A number that must be only used once, per message. 12 bytes long.

key

Encryption key (256-bit).

Valeurs de retour

Returns the plaintext on success, ou false si une erreur survient.


Encrypt then authenticate with AES-256-GCM

  • « sodium_crypto_aead_aes256gcm_decrypt
  • sodium_crypto_aead_aes256gcm_is_available »
  • PHP Manual
  • Sodium Fonctions
  • Encrypt then authenticate with AES-256-GCM

sodium_crypto_aead_aes256gcm_encrypt

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_aes256gcm_encrypt — Encrypt then authenticate with AES-256-GCM

Description

sodium_crypto_aead_aes256gcm_encrypt(
string $message,
string $additional_data,
string $nonce,
string $key
): string

Encrypt then authenticate with AES-256-GCM. Only available if sodium_crypto_aead_aes256gcm_is_available() returns true.

Liste de paramètres

message

The plaintext message to encrypt.

additional_data

Additional, authenticated data. This is used in the verification of the authentication tag appended to the ciphertext, but it is not encrypted or stored in the ciphertext.

nonce

A number that must be only used once, per message. 12 bytes long.

key

Encryption key (256-bit).

Valeurs de retour

Returns the ciphertext and authentication tag as a string of raw binary bytes. (Format: ciphertext, then tag.)


Check if hardware supports AES256-GCM

  • « sodium_crypto_aead_aes256gcm_encrypt
  • sodium_crypto_aead_aes256gcm_keygen »
  • PHP Manual
  • Sodium Fonctions
  • Check if hardware supports AES256-GCM

sodium_crypto_aead_aes256gcm_is_available

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_aes256gcm_is_available — Check if hardware supports AES256-GCM

Description

sodium_crypto_aead_aes256gcm_is_available(): bool

The return value of this function depends on whether or not the hardware supports hardware-accelerated AES.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns true if it is safe to encrypt with AES-256-GCM, and false otherwise.


Generate a random AES-256-GCM key

  • « sodium_crypto_aead_aes256gcm_is_available
  • sodium_crypto_aead_chacha20poly1305_decrypt »
  • PHP Manual
  • Sodium Fonctions
  • Generate a random AES-256-GCM key

sodium_crypto_aead_aes256gcm_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_aes256gcm_keygen — Generate a random AES-256-GCM key

Description

sodium_crypto_aead_aes256gcm_keygen(): string

Generate a random key for use with sodium_crypto_aead_aes256gcm_encrypt() and sodium_crypto_aead_aes256gcm_decrypt().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a 256-bit random key.


Verify then decrypt with ChaCha20-Poly1305

  • « sodium_crypto_aead_aes256gcm_keygen
  • sodium_crypto_aead_chacha20poly1305_encrypt »
  • PHP Manual
  • Sodium Fonctions
  • Verify then decrypt with ChaCha20-Poly1305

sodium_crypto_aead_chacha20poly1305_decrypt

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_chacha20poly1305_decrypt — Verify then decrypt with ChaCha20-Poly1305

Description

sodium_crypto_aead_chacha20poly1305_decrypt(
string $ciphertext,
string $additional_data,
string $nonce,
string $key
): string|false

Verify then decrypt with ChaCha20-Poly1305.

Liste de paramètres

ciphertext

Must be in the format provided by sodium_crypto_aead_chacha20poly1305_encrypt() (ciphertext and tag, concatenated).

additional_data

Additional, authenticated data. This is used in the verification of the authentication tag appended to the ciphertext, but it is not encrypted or stored in the ciphertext.

nonce

A number that must be only used once, per message. 8 bytes long.

key

Encryption key (256-bit).

Valeurs de retour

Returns the plaintext on success, ou false si une erreur survient.


Encrypt then authenticate with ChaCha20-Poly1305

  • « sodium_crypto_aead_chacha20poly1305_decrypt
  • sodium_crypto_aead_chacha20poly1305_ietf_decrypt »
  • PHP Manual
  • Sodium Fonctions
  • Encrypt then authenticate with ChaCha20-Poly1305

sodium_crypto_aead_chacha20poly1305_encrypt

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_chacha20poly1305_encrypt — Encrypt then authenticate with ChaCha20-Poly1305

Description

sodium_crypto_aead_chacha20poly1305_encrypt(
string $message,
string $additional_data,
string $nonce,
string $key
): string

Encrypt then authenticate with ChaCha20-Poly1305.

Liste de paramètres

message

The plaintext message to encrypt.

additional_data

Additional, authenticated data. This is used in the verification of the authentication tag appended to the ciphertext, but it is not encrypted or stored in the ciphertext.

nonce

A number that must be only used once, per message. 8 bytes long.

key

Encryption key (256-bit).

Valeurs de retour

Returns the ciphertext and tag on success, ou false si une erreur survient.


Verify that the ciphertext includes a valid tag

  • « sodium_crypto_aead_chacha20poly1305_encrypt
  • sodium_crypto_aead_chacha20poly1305_ietf_encrypt »
  • PHP Manual
  • Sodium Fonctions
  • Verify that the ciphertext includes a valid tag

sodium_crypto_aead_chacha20poly1305_ietf_decrypt

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_chacha20poly1305_ietf_decrypt — Verify that the ciphertext includes a valid tag

Description

sodium_crypto_aead_chacha20poly1305_ietf_decrypt(
string $ciphertext,
string $additional_data,
string $nonce,
string $key
): string|false

Verify then decrypt with ChaCha20-Poly1305 (IETF variant).

The IETF variant uses 96-bit nonces and 32-bit internal counters, instead of 64-bit for both.

Liste de paramètres

ciphertext

Must be in the format provided by sodium_crypto_aead_chacha20poly1305_ietf_encrypt() (ciphertext and tag, concatenated).

additional_data

Additional, authenticated data. This is used in the verification of the authentication tag appended to the ciphertext, but it is not encrypted or stored in the ciphertext.

nonce

A number that must be only used once, per message. 12 bytes long.

key

Encryption key (256-bit).

Valeurs de retour

Returns the plaintext on success, ou false si une erreur survient.


Encrypt a message

  • « sodium_crypto_aead_chacha20poly1305_ietf_decrypt
  • sodium_crypto_aead_chacha20poly1305_ietf_keygen »
  • PHP Manual
  • Sodium Fonctions
  • Encrypt a message

sodium_crypto_aead_chacha20poly1305_ietf_encrypt

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_chacha20poly1305_ietf_encrypt — Encrypt a message

Description

sodium_crypto_aead_chacha20poly1305_ietf_encrypt(
string $message,
string $additional_data,
string $nonce,
string $key
): string

Encrypt then authenticate with ChaCha20-Poly1305 (IETF variant).

The IETF variant uses 96-bit nonces and 32-bit internal counters, instead of 64-bit for both.

Liste de paramètres

message

The plaintext message to encrypt.

additional_data

Additional, authenticated data. This is used in the verification of the authentication tag appended to the ciphertext, but it is not encrypted or stored in the ciphertext.

nonce

A number that must be only used once, per message. 12 bytes long.

key

Encryption key (256-bit).

Valeurs de retour

Returns the ciphertext and tag on success, ou false si une erreur survient.


Generate a random ChaCha20-Poly1305 (IETF) key.

  • « sodium_crypto_aead_chacha20poly1305_ietf_encrypt
  • sodium_crypto_aead_chacha20poly1305_keygen »
  • PHP Manual
  • Sodium Fonctions
  • Generate a random ChaCha20-Poly1305 (IETF) key.

sodium_crypto_aead_chacha20poly1305_ietf_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_chacha20poly1305_ietf_keygen — Generate a random ChaCha20-Poly1305 (IETF) key.

Description

sodium_crypto_aead_chacha20poly1305_ietf_keygen(): string

Generate a random key for use with sodium_crypto_aead_chacha20poly1305_ietf_encrypt() and sodium_crypto_aead_chacha20poly1305_ietf_decrypt().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a 256-bit random key.


Generate a random ChaCha20-Poly1305 key.

  • « sodium_crypto_aead_chacha20poly1305_ietf_keygen
  • sodium_crypto_aead_xchacha20poly1305_ietf_decrypt »
  • PHP Manual
  • Sodium Fonctions
  • Generate a random ChaCha20-Poly1305 key.

sodium_crypto_aead_chacha20poly1305_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_chacha20poly1305_keygen — Generate a random ChaCha20-Poly1305 key.

Description

sodium_crypto_aead_chacha20poly1305_keygen(): string

Generate a random key for use with sodium_crypto_aead_chacha20poly1305_encrypt() and sodium_crypto_aead_chacha20poly1305_decrypt().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a 256-bit random key.


(Preferred) Verify then decrypt with XChaCha20-Poly1305

  • « sodium_crypto_aead_chacha20poly1305_keygen
  • sodium_crypto_aead_xchacha20poly1305_ietf_encrypt »
  • PHP Manual
  • Sodium Fonctions
  • (Preferred) Verify then decrypt with XChaCha20-Poly1305

sodium_crypto_aead_xchacha20poly1305_ietf_decrypt

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_xchacha20poly1305_ietf_decrypt — (Preferred) Verify then decrypt with XChaCha20-Poly1305

Description

sodium_crypto_aead_xchacha20poly1305_ietf_decrypt(
string $ciphertext,
string $additional_data,
string $nonce,
string $key
): string|false

Verify then decrypt with ChaCha20-Poly1305 (eXtended-nonce variant).

Generally, XChaCha20-Poly1305 is the best of the provided AEAD modes to use.

Liste de paramètres

ciphertext

Must be in the format provided by sodium_crypto_aead_chacha20poly1305_ietf_encrypt() (ciphertext and tag, concatenated).

additional_data

Additional, authenticated data. This is used in the verification of the authentication tag appended to the ciphertext, but it is not encrypted or stored in the ciphertext.

nonce

A number that must be only used once, per message. 24 bytes long. This is a large enough bound to generate randomly (i.e. random_bytes()).

key

Encryption key (256-bit).

Valeurs de retour

Returns the plaintext on success, ou false si une erreur survient.


(Preferred) Encrypt then authenticate with XChaCha20-Poly1305

  • « sodium_crypto_aead_xchacha20poly1305_ietf_decrypt
  • sodium_crypto_aead_xchacha20poly1305_ietf_keygen »
  • PHP Manual
  • Sodium Fonctions
  • (Preferred) Encrypt then authenticate with XChaCha20-Poly1305

sodium_crypto_aead_xchacha20poly1305_ietf_encrypt

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_xchacha20poly1305_ietf_encrypt — (Preferred) Encrypt then authenticate with XChaCha20-Poly1305

Description

sodium_crypto_aead_xchacha20poly1305_ietf_encrypt(
string $message,
string $additional_data,
string $nonce,
string $key
): string

Encrypt then authenticate with XChaCha20-Poly1305 (eXtended-nonce variant).

Generally, XChaCha20-Poly1305 is the best of the provided AEAD modes to use.

Liste de paramètres

message

The plaintext message to encrypt.

additional_data

Additional, authenticated data. This is used in the verification of the authentication tag appended to the ciphertext, but it is not encrypted or stored in the ciphertext.

nonce

A number that must be only used once, per message. 24 bytes long. This is a large enough bound to generate randomly (i.e. random_bytes()).

key

Encryption key (256-bit).

Valeurs de retour

Returns the ciphertext and tag on success, ou false si une erreur survient.


Generate a random XChaCha20-Poly1305 key.

  • « sodium_crypto_aead_xchacha20poly1305_ietf_encrypt
  • sodium_crypto_auth_keygen »
  • PHP Manual
  • Sodium Fonctions
  • Generate a random XChaCha20-Poly1305 key.

sodium_crypto_aead_xchacha20poly1305_ietf_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_aead_xchacha20poly1305_ietf_keygen — Generate a random XChaCha20-Poly1305 key.

Description

sodium_crypto_aead_xchacha20poly1305_ietf_keygen(): string

Generate a random key for use with sodium_crypto_aead_xchacha20poly1305_ietf_encrypt() and sodium_crypto_aead_xchacha20poly1305_ietf_decrypt().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a 256-bit random key.


Generate a random key for sodium_crypto_auth

  • « sodium_crypto_aead_xchacha20poly1305_ietf_keygen
  • sodium_crypto_auth_verify »
  • PHP Manual
  • Sodium Fonctions
  • Generate a random key for sodium_crypto_auth

sodium_crypto_auth_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_auth_keygen — Generate a random key for sodium_crypto_auth

Description

sodium_crypto_auth_keygen(): string

Generate a key for use with sodium_crypto_auth() and sodium_crypto_auth_verify().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a 256-bit random key.


Verifies that the tag is valid for the message

  • « sodium_crypto_auth_keygen
  • sodium_crypto_auth »
  • PHP Manual
  • Sodium Fonctions
  • Verifies that the tag is valid for the message

sodium_crypto_auth_verify

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_auth_verify — Verifies that the tag is valid for the message

Description

sodium_crypto_auth_verify(string $mac, string $message, string $key): bool

Verify the authentication tag is valid for a given message and key.

Unlike with digital signatures (e.g. sodium_crypto_sign_verify_detached()), any party capable of verifying a message is also capable of authenticating their own messages. (Hence, symmetric authentication.)

Liste de paramètres

mac

Authentication tag produced by sodium_crypto_auth()

message

Message

key

Authentication key

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.


Compute a tag for the message

  • « sodium_crypto_auth_verify
  • sodium_crypto_box_keypair_from_secretkey_and_publickey »
  • PHP Manual
  • Sodium Fonctions
  • Compute a tag for the message

sodium_crypto_auth

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_auth — Compute a tag for the message

Description

sodium_crypto_auth(string $message, string $key): string

Symmetric message authentication via sodium_crypto_auth() provides integrity, but not confidentiality.

Unlike with digital signatures (e.g. sodium_crypto_sign_detached()), any party capable of verifying a message is also capable of authenticating their own messages. (Hence, symmetric authentication.)

Liste de paramètres

message

The message you intend to authenticate

key

Authentication key

Valeurs de retour

Authentication tag


Create a unified keypair string from a secret key and public key

  • « sodium_crypto_auth
  • sodium_crypto_box_keypair »
  • PHP Manual
  • Sodium Fonctions
  • Create a unified keypair string from a secret key and public key

sodium_crypto_box_keypair_from_secretkey_and_publickey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_keypair_from_secretkey_and_publickey — Create a unified keypair string from a secret key and public key

Description

sodium_crypto_box_keypair_from_secretkey_and_publickey(string $secret_key, string $public_key): string

This function exists to satisfy the API requirements of e.g. crypto_box(). Pass in one party's secret key and the other's public key, and you will obtain a "keypair" for your conversation.

Liste de paramètres

secret_key

Secret key.

public_key

Public key.

Valeurs de retour

X25519 Keypair.


Randomly generate a secret key and a corresponding public key

  • « sodium_crypto_box_keypair_from_secretkey_and_publickey
  • sodium_crypto_box_open »
  • PHP Manual
  • Sodium Fonctions
  • Randomly generate a secret key and a corresponding public key

sodium_crypto_box_keypair

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_keypair — Randomly generate a secret key and a corresponding public key

Description

sodium_crypto_box_keypair(): string

Generates a secret key and a public key as one string.

To get the secret key out of this unified keypair string, see sodium_crypto_box_secretkey(). To get the public key out of this unified keypair string, see sodium_crypto_box_publickey().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

One string containing both the X25519 secret key and corresponding X25519 public key.


Authenticated public-key decryption

  • « sodium_crypto_box_keypair
  • sodium_crypto_box_publickey_from_secretkey »
  • PHP Manual
  • Sodium Fonctions
  • Authenticated public-key decryption

sodium_crypto_box_open

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_open — Authenticated public-key decryption

Description

sodium_crypto_box_open(string $ciphertext, string $nonce, string $key_pair): string|false

Decrypt a message using asymmetric (public key) cryptography.

Liste de paramètres

ciphertext

The encrypted message to attempt to decrypt.

nonce

A number that must be only used once, per message. 24 bytes long. This is a large enough bound to generate randomly (i.e. random_bytes()).

key_pair

See sodium_crypto_box_keypair_from_secretkey_and_publickey(). This should include the sender's public key and the recipient's secret key.

Valeurs de retour

Returns the plaintext message on success, ou false si une erreur survient.


Calculate the public key from a secret key

  • « sodium_crypto_box_open
  • sodium_crypto_box_publickey »
  • PHP Manual
  • Sodium Fonctions
  • Calculate the public key from a secret key

sodium_crypto_box_publickey_from_secretkey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_publickey_from_secretkey — Calculate the public key from a secret key

Description

sodium_crypto_box_publickey_from_secretkey(string $secret_key): string

Given a secret key, calculate the corresponding public key.

This only works with the type of keys intended for use with crypto_box() (which uses Elliptic Curve Diffie-Hellman over the Montgomery curve, Curve25519; abbreviated as X25519), not crypto_sign() (which uses Edwards Digital Signature Algorithm over the Edwards Curve with the corresponding paramaters; abbreviated Ed25519).

Liste de paramètres

secret_key

X25519 secret key

Valeurs de retour

X25519 public key.


Extract the public key from a crypto_box keypair

  • « sodium_crypto_box_publickey_from_secretkey
  • sodium_crypto_box_seal_open »
  • PHP Manual
  • Sodium Fonctions
  • Extract the public key from a crypto_box keypair

sodium_crypto_box_publickey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_publickey — Extract the public key from a crypto_box keypair

Description

sodium_crypto_box_publickey(string $key_pair): string

Given a keypair, fetch only the public key.

Liste de paramètres

key_pair

A keypair, such as one generated by sodium_crypto_box_keypair() or sodium_crypto_box_seed_keypair()

Valeurs de retour

X25519 public key.


Anonymous public-key decryption

  • « sodium_crypto_box_publickey
  • sodium_crypto_box_seal »
  • PHP Manual
  • Sodium Fonctions
  • Anonymous public-key decryption

sodium_crypto_box_seal_open

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_seal_open — Anonymous public-key decryption

Description

sodium_crypto_box_seal_open(string $ciphertext, string $key_pair): string|false

Decrypt a message that was encrypted with sodium_crypto_box_seal()

Liste de paramètres

ciphertext

The encrypted message

key_pair

The keypair of the recipient. Must include the secret key.

Valeurs de retour

The plaintext on success, ou false si une erreur survient.

Exemples

Exemple #1 sodium_crypto_box_seal_open() example

<?php
// Ciphertext is not sensitive; base64_decode is fine
$sealed_b64 = "oRBXXAV4iQBrxlV4A21Bord8Yo/D8ZlrIIGNyaRCcGBfpz0map52I3xq6l+CST+1NSgQkbV+HiYyFjXWiWiaCGupGf+zl4bgWj/A9Adtem7Jt3h3emrMsLw=";
$sealed = base64_decode($sealed_b64);

// Keypair contains a cryptographic secret; use a timing-safe decoder
$keypair_b64 = "KZkF8wnB7bnC2aXB3lFOqCTc0Z6MllvaQb9ASVG8o2/MsewkuE4u1uaEgTzSakeiYyIW8DGj+02/L3cWIbs9bQ==";
$keypair = sodium_base642bin($keypair_b64, SODIUM_BASE64_VARIANT_ORIGINAL);

$opened = sodium_crypto_box_seal_open($sealed, $keypair);
var_dump($opened);
?>

Résultat de l'exemple ci-dessus est similaire à :

string(41) "Writing software in PHP can be a delight!"


Anonymous public-key encryption

  • « sodium_crypto_box_seal_open
  • sodium_crypto_box_secretkey »
  • PHP Manual
  • Sodium Fonctions
  • Anonymous public-key encryption

sodium_crypto_box_seal

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_seal — Anonymous public-key encryption

Description

sodium_crypto_box_seal(string $message, string $public_key): string

Encrypt a message such that only the recipient can decrypt it.

Unlike with sodium_crypto_box(), you only need to know the recipient's public key to use sodium_crypto_box_seal(). One consequence of this convenience, however, is that the ciphertext isn't bound to a static public key, and is therefore not authenticated. Hence, anonymous public-key encryption.

sodium_crypto_box_seal() still provides ciphertext integrity. Just not sender identity authentication.

If you also need sender authentication, the sodium_crypto_sign() functions are likely the best place to start.

Liste de paramètres

message

The message to encrypt.

public_key

The public key that corresponds to the only key that can decrypt the message.

Valeurs de retour

A ciphertext string in the format of (one-time public key, encrypted message, authentication tag).

Exemples

Exemple #1 sodium_crypto_box_seal() example

<?php
$keypair = sodium_crypto_box_keypair();
$public_key = sodium_crypto_box_publickey($keypair);

// Obfuscated plaintext to make the example more fun
$plaintext_b64 = "V3JpdGluZyBzb2Z0d2FyZSBpbiBQSFAgY2FuIGJlIGEgZGVsaWdodCE=";
$decoded_plaintext = sodium_base642bin($plaintext_b64, SODIUM_BASE64_VARIANT_ORIGINAL);

$sealed = sodium_crypto_box_seal($decoded_plaintext, $public_key);
var_dump(base64_encode($sealed));

$opened = sodium_crypto_box_seal_open($sealed, $keypair);
var_dump($opened);
?>

Résultat de l'exemple ci-dessus est similaire à :

string(120) "oRBXXAV4iQBrxlV4A21Bord8Yo/D8ZlrIIGNyaRCcGBfpz0map52I3xq6l+CST+1NSgQkbV+HiYyFjXWiWiaCGupGf+zl4bgWj/A9Adtem7Jt3h3emrMsLw="
string(41) "Writing software in PHP can be a delight!"


Extracts the secret key from a crypto_box keypair

  • « sodium_crypto_box_seal
  • sodium_crypto_box_seed_keypair »
  • PHP Manual
  • Sodium Fonctions
  • Extracts the secret key from a crypto_box keypair

sodium_crypto_box_secretkey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_secretkey — Extracts the secret key from a crypto_box keypair

Description

sodium_crypto_box_secretkey(string $key_pair): string

Given a keypair, fetch only the secret key.

Liste de paramètres

key_pair

A keypair, such as one generated by sodium_crypto_box_keypair() or sodium_crypto_box_seed_keypair()

Valeurs de retour

X25519 secret key.


Deterministically derive the key pair from a single key

  • « sodium_crypto_box_secretkey
  • sodium_crypto_box »
  • PHP Manual
  • Sodium Fonctions
  • Deterministically derive the key pair from a single key

sodium_crypto_box_seed_keypair

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box_seed_keypair — Deterministically derive the key pair from a single key

Description

sodium_crypto_box_seed_keypair(string $seed): string

Clamps the seed to form a secret key, derives the public key, and returns the two as a keypair.

The *_seed_keypair functions are ideal for generating a keypair from a password and salt. Use the result as a seed to generate the desired keys.

Liste de paramètres

seed

Some cryptographic input. Must be 32 bytes.

Valeurs de retour

X25519 Keypair (secret key and public key).


Authenticated public-key encryption

  • « sodium_crypto_box_seed_keypair
  • sodium_crypto_core_ristretto255_add »
  • PHP Manual
  • Sodium Fonctions
  • Authenticated public-key encryption

sodium_crypto_box

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_box — Authenticated public-key encryption

Description

sodium_crypto_box(string $message, string $nonce, string $key_pair): string

Encrypt a message using asymmetric (public key) cryptography.

The algorithm used by functions prefixed with sodium_crypto_box() are Elliptic Curve Diffie-Hellman over the Montgomery curve, Curve25519; usually abbreviated as X25519.

Liste de paramètres

message

The message to be encrypted.

nonce

A number that must be only used once, per message. 24 bytes long. This is a large enough bound to generate randomly (i.e. random_bytes()).

key_pair

See sodium_crypto_box_keypair_from_secretkey_and_publickey(). This should include the sender's X25519 secret key and the recipient's X25519 public key.

Valeurs de retour

Returns the encrypted message (ciphertext plus authentication tag). The ciphertext will be 16 bytes longer than the plaintext, and a raw binary string. See sodium_bin2base64() for safe encoding for storage.


Adds an element

  • « sodium_crypto_box
  • sodium_crypto_core_ristretto255_from_hash »
  • PHP Manual
  • Sodium Fonctions
  • Adds an element

sodium_crypto_core_ristretto255_add

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_add — Adds an element

Description

sodium_crypto_core_ristretto255_add(string $p, string $q): string

Adds an element q to p. Available as of libsodium 1.0.18.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

p

An element.

q

An element.

Valeurs de retour

Returns a 32-byte random chaîne de caractères.

Exemples

Exemple #1 sodium_crypto_core_ristretto255_add() example

<?php

$foo = sodium_crypto_core_ristretto255_random();
$bar = sodium_crypto_core_ristretto255_random();

$value = sodium_crypto_core_ristretto255_add($foo, $bar);
$value = sodium_crypto_core_ristretto255_sub($value, $bar);

var_dump(hash_equals($foo, $value));
?>

L'exemple ci-dessus va afficher :

bool(true)

Voir aussi

  • sodium_crypto_core_ristretto255_random() - Generates a random key
  • sodium_crypto_core_ristretto255_sub() - Subtracts an element


Maps a vector

  • « sodium_crypto_core_ristretto255_add
  • sodium_crypto_core_ristretto255_is_valid_point »
  • PHP Manual
  • Sodium Fonctions
  • Maps a vector

sodium_crypto_core_ristretto255_from_hash

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_from_hash — Maps a vector

Description

sodium_crypto_core_ristretto255_from_hash(string $s): string

Maps a 64-bytes vector s to a group element. Available as of libsodium 1.0.18.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

s

A 64-bytes vector.

Valeurs de retour

Returns a 32-byte random chaîne de caractères.

Exemples

Exemple #1 sodium_crypto_core_ristretto255_from_hash() example

<?php

$hashes = sodium_hex2bin(
'5d1be09e3d0c82fc538112490e35701979d99e06ca3e2b5b54bffe8b4dc772c1' .
'4d98b696a1bbfb5ca32c436cc61c16563790306c79eaca7705668b47dffe5bb6'
);
var_dump(sodium_bin2hex(sodium_crypto_core_ristretto255_from_hash($hashes)));
?>

L'exemple ci-dessus va afficher :

string(64) "3066f82a1a747d45120d1740f14358531a8f04bbffe6a819f86dfe50f44a0a46"

Voir aussi

  • sodium_hex2bin() - Decodes a hexadecimally encoded binary string
  • sodium_bin2hex() - Encode to hexadecimal
  • sodium_crypto_core_ristretto255_from_hash()


Determines if a point on the ristretto255 curve

  • « sodium_crypto_core_ristretto255_from_hash
  • sodium_crypto_core_ristretto255_random »
  • PHP Manual
  • Sodium Fonctions
  • Determines if a point on the ristretto255 curve

sodium_crypto_core_ristretto255_is_valid_point

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_is_valid_point — Determines if a point on the ristretto255 curve

Description

sodium_crypto_core_ristretto255_is_valid_point(string $s): bool

Determines if a point on the ristretto255 curve, in canonical form, on the main subgroup, and that the point doesn't have a small order. Available as of libsodium 1.0.18.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

s

An Elliptic-curve point.

Valeurs de retour

Returns true if s is on the ristretto255 curve, false otherwise.

Exemples

Exemple #1 sodium_crypto_core_ristretto255_is_valid_point() example

<?php

$foo = sodium_crypto_core_ristretto255_scalar_random();
$bar = sodium_crypto_scalarmult_ristretto255_base($foo);

var_dump(sodium_crypto_core_ristretto255_is_valid_point($bar));
?>

L'exemple ci-dessus va afficher :

bool(true)

Voir aussi

  • sodium_crypto_core_ristretto255_scalar_random() - Generates a random key
  • sodium_crypto_scalarmult_ristretto255_base() - Calculates the public key from a secret key


Generates a random key

  • « sodium_crypto_core_ristretto255_is_valid_point
  • sodium_crypto_core_ristretto255_scalar_add »
  • PHP Manual
  • Sodium Fonctions
  • Generates a random key

sodium_crypto_core_ristretto255_random

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_random — Generates a random key

Description

sodium_crypto_core_ristretto255_random(): string

Generates a random key. Available as of libsodium 1.0.18.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a 32-byte random chaîne de caractères.

Exemples

Exemple #1 sodium_crypto_core_ristretto255_random() example

<?php

$foo = sodium_crypto_core_ristretto255_random();
$bar = sodium_crypto_core_ristretto255_random();

$value = sodium_crypto_core_ristretto255_add($foo, $bar);
$value = sodium_crypto_core_ristretto255_sub($value, $bar);

var_dump(hash_equals($foo, $value));
?>

L'exemple ci-dessus va afficher :

bool(true)

Voir aussi

  • sodium_crypto_core_ristretto255_add() - Adds an element
  • sodium_crypto_core_ristretto255_sub() - Subtracts an element


Adds a scalar value

  • « sodium_crypto_core_ristretto255_random
  • sodium_crypto_core_ristretto255_scalar_complement »
  • PHP Manual
  • Sodium Fonctions
  • Adds a scalar value

sodium_crypto_core_ristretto255_scalar_add

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_scalar_add — Adds a scalar value

Description

sodium_crypto_core_ristretto255_scalar_add(string $x, string $y): string

Adds an element y to x. Available as of libsodium 1.0.18.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

x

Scalar, representing the X coordinate.

y

Scalar, representing the Y coordinate.

Valeurs de retour

Returns a 32-byte random chaîne de caractères.

Exemples

Exemple #1 sodium_crypto_core_ristretto255_scalar_add() example

<?php

$foo = sodium_crypto_core_ristretto255_scalar_random();
$bar = sodium_crypto_core_ristretto255_scalar_random();

$value = sodium_crypto_core_ristretto255_scalar_add($foo, $bar);
$value = sodium_crypto_core_ristretto255_scalar_sub($value, $bar);

var_dump(hash_equals($foo, $value));
?>

L'exemple ci-dessus va afficher :

bool(true)

Voir aussi

  • sodium_crypto_core_ristretto255_scalar_random() - Generates a random key
  • sodium_crypto_core_ristretto255_scalar_sub() - Subtracts a scalar value


The sodium_crypto_core_ristretto255_scalar_complement purpose

  • « sodium_crypto_core_ristretto255_scalar_add
  • sodium_crypto_core_ristretto255_scalar_invert »
  • PHP Manual
  • Sodium Fonctions
  • The sodium_crypto_core_ristretto255_scalar_complement purpose

sodium_crypto_core_ristretto255_scalar_complement

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_scalar_complement — The sodium_crypto_core_ristretto255_scalar_complement purpose

Description

sodium_crypto_core_ristretto255_scalar_complement(string $s): string

Available as of libsodium 1.0.18.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

s

Scalar value.

Valeurs de retour

Returns a 32-byte random chaîne de caractères.

Voir aussi

  • sodium_crypto_core_ristretto255_scalar_random() - Generates a random key


Inverts a scalar value

  • « sodium_crypto_core_ristretto255_scalar_complement
  • sodium_crypto_core_ristretto255_scalar_mul »
  • PHP Manual
  • Sodium Fonctions
  • Inverts a scalar value

sodium_crypto_core_ristretto255_scalar_invert

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_scalar_invert — Inverts a scalar value

Description

sodium_crypto_core_ristretto255_scalar_invert(string $s): string

Inverts a scalar value. Available as of libsodium 1.0.18.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

s

Scalar value.

Valeurs de retour

Returns a 32-byte random chaîne de caractères.

Exemples

Exemple #1 sodium_crypto_core_ristretto255_scalar_invert() example

<?php

$foo = sodium_crypto_core_ristretto255_scalar_random();

$inverted = sodium_crypto_core_ristretto255_scalar_invert($foo);
$reInverted = sodium_crypto_core_ristretto255_scalar_invert($inverted);

var_dump(hash_equals($foo, $reInverted));
?>

L'exemple ci-dessus va afficher :

bool(true)

Voir aussi

  • sodium_crypto_core_ristretto255_scalar_random() - Generates a random key


Multiplies a scalar value

  • « sodium_crypto_core_ristretto255_scalar_invert
  • sodium_crypto_core_ristretto255_scalar_negate »
  • PHP Manual
  • Sodium Fonctions
  • Multiplies a scalar value

sodium_crypto_core_ristretto255_scalar_mul

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_scalar_mul — Multiplies a scalar value

Description

sodium_crypto_core_ristretto255_scalar_mul(string $x, string $y): string

Multiplies a scalar value. Available as of libsodium 1.0.18.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

x

Scalar, representing the X coordinate.

y

Scalar, representing the Y coordinate.

Valeurs de retour

Returns a 32-byte random chaîne de caractères.

Voir aussi

  • sodium_crypto_core_ristretto255_scalar_random() - Generates a random key


Negates a scalar value

  • « sodium_crypto_core_ristretto255_scalar_mul
  • sodium_crypto_core_ristretto255_scalar_random »
  • PHP Manual
  • Sodium Fonctions
  • Negates a scalar value

sodium_crypto_core_ristretto255_scalar_negate

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_scalar_negate — Negates a scalar value

Description

sodium_crypto_core_ristretto255_scalar_negate(string $s): string

Negates a scalar value. Available as of libsodium 1.0.18.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

s

Scalar value.

Valeurs de retour

Returns a 32-byte random chaîne de caractères.

Exemples

Exemple #1 sodium_crypto_core_ristretto255_scalar_negate() example

<?php

$foo = sodium_crypto_core_ristretto255_scalar_random();

$negate = sodium_crypto_core_ristretto255_scalar_negate($foo);
$reNegate = sodium_crypto_core_ristretto255_scalar_negate($negate);

var_dump(hash_equals($foo, $reNegate));
?>

L'exemple ci-dessus va afficher :

bool(true)

Voir aussi

  • sodium_crypto_core_ristretto255_scalar_random() - Generates a random key


Generates a random key

  • « sodium_crypto_core_ristretto255_scalar_negate
  • sodium_crypto_core_ristretto255_scalar_reduce »
  • PHP Manual
  • Sodium Fonctions
  • Generates a random key

sodium_crypto_core_ristretto255_scalar_random

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_scalar_random — Generates a random key

Description

sodium_crypto_core_ristretto255_scalar_random(): string

Generates a random key. Available as of libsodium 1.0.18.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a 32-byte random chaîne de caractères.

Exemples

Exemple #1 sodium_crypto_core_ristretto255_scalar_random() example

<?php

$foo = sodium_crypto_core_ristretto255_scalar_random();
$bar = sodium_crypto_core_ristretto255_scalar_random();

$value = sodium_crypto_core_ristretto255_scalar_add($foo, $bar);
$value = sodium_crypto_core_ristretto255_scalar_sub($value, $bar);

var_dump(hash_equals($foo, $value));
?>

L'exemple ci-dessus va afficher :

bool(true)

Voir aussi

  • sodium_crypto_core_ristretto255_scalar_add() - Adds a scalar value
  • sodium_crypto_core_ristretto255_scalar_sub() - Subtracts a scalar value


Reduces a scalar value

  • « sodium_crypto_core_ristretto255_scalar_random
  • sodium_crypto_core_ristretto255_scalar_sub »
  • PHP Manual
  • Sodium Fonctions
  • Reduces a scalar value

sodium_crypto_core_ristretto255_scalar_reduce

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_scalar_reduce — Reduces a scalar value

Description

sodium_crypto_core_ristretto255_scalar_reduce(string $s): string

Reduces a scalar value. Available as of libsodium 1.0.18.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

s

Scalar value.

Valeurs de retour

Returns a 32-byte random chaîne de caractères.

Voir aussi

  • sodium_crypto_core_ristretto255_scalar_random() - Generates a random key


Subtracts a scalar value

  • « sodium_crypto_core_ristretto255_scalar_reduce
  • sodium_crypto_core_ristretto255_sub »
  • PHP Manual
  • Sodium Fonctions
  • Subtracts a scalar value

sodium_crypto_core_ristretto255_scalar_sub

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_scalar_sub — Subtracts a scalar value

Description

sodium_crypto_core_ristretto255_scalar_sub(string $x, string $y): string

Subtracts a scalar y from x. Available as of libsodium 1.0.18.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

x

Scalar, representing the X coordinate.

y

Scalar, representing the Y coordinate.

Valeurs de retour

Returns a 32-byte random chaîne de caractères.

Exemples

Exemple #1 sodium_crypto_core_ristretto255_scalar_sub() example

<?php

$foo = sodium_crypto_core_ristretto255_scalar_random();
$bar = sodium_crypto_core_ristretto255_scalar_random();

$value = sodium_crypto_core_ristretto255_scalar_add($foo, $bar);
$value = sodium_crypto_core_ristretto255_scalar_sub($value, $bar);

var_dump(hash_equals($foo, $value));
?>

L'exemple ci-dessus va afficher :

bool(true)

Voir aussi

  • sodium_crypto_core_ristretto255_scalar_random() - Generates a random key
  • sodium_crypto_core_ristretto255_scalar_add() - Adds a scalar value


Subtracts an element

  • « sodium_crypto_core_ristretto255_scalar_sub
  • sodium_crypto_generichash_final »
  • PHP Manual
  • Sodium Fonctions
  • Subtracts an element

sodium_crypto_core_ristretto255_sub

(PHP 8 >= 8.1.0)

sodium_crypto_core_ristretto255_sub — Subtracts an element

Description

sodium_crypto_core_ristretto255_sub(string $p, string $q): string

Subtracts an element q from p. Available as of libsodium 1.0.18.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

p

An element.

q

An element.

Valeurs de retour

Returns a 32-byte random chaîne de caractères.

Exemples

Exemple #1 sodium_crypto_core_ristretto255_sub() example

<?php

$foo = sodium_crypto_core_ristretto255_random();
$bar = sodium_crypto_core_ristretto255_random();

$value = sodium_crypto_core_ristretto255_add($foo, $bar);
$value = sodium_crypto_core_ristretto255_sub($value, $bar);

var_dump(hash_equals($foo, $value));
?>

L'exemple ci-dessus va afficher :

bool(true)

Voir aussi

  • sodium_crypto_core_ristretto255_random() - Generates a random key
  • sodium_crypto_core_ristretto255_add() - Adds an element


Complete the hash

  • « sodium_crypto_core_ristretto255_sub
  • sodium_crypto_generichash_init »
  • PHP Manual
  • Sodium Fonctions
  • Complete the hash

sodium_crypto_generichash_final

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_generichash_final — Complete the hash

Description

sodium_crypto_generichash_final(string &$state, int $length = SODIUM_CRYPTO_GENERICHASH_BYTES): string

The finalization method for the streaming generichash API.

Liste de paramètres

state

Hash state returned from sodium_crypto_generichash_init()

length

Output length.

Valeurs de retour

Cryptographic hash.

Exemples

Exemple #1 sodium_crypto_generichash_final() example

<?php
$messages = [random_bytes(32), random_bytes(32), random_bytes(16)];
$state = sodium_crypto_generichash_init('', 32);
foreach ($messages as $message) {
sodium_crypto_generichash_update($state, $message);
}

$final = sodium_crypto_generichash_final($state, 32);
var_dump(sodium_bin2hex($final));

$allAtOnce = sodium_crypto_generichash(implode('', $messages));
var_dump(sodium_bin2hex($allAtOnce));
?>

Résultat de l'exemple ci-dessus est similaire à :

string(64) "a2939a9163cb7c796ec28e01028489e72475c136b2697ea59e3e760ab4a8ab20"
string(64) "a2939a9163cb7c796ec28e01028489e72475c136b2697ea59e3e760ab4a8ab20"


Initialize a hash for streaming

  • « sodium_crypto_generichash_final
  • sodium_crypto_generichash_keygen »
  • PHP Manual
  • Sodium Fonctions
  • Initialize a hash for streaming

sodium_crypto_generichash_init

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_generichash_init — Initialize a hash for streaming

Description

sodium_crypto_generichash_init(string $key = "", int $length = SODIUM_CRYPTO_GENERICHASH_BYTES): string

The initialization method for the streaming generichash API.

Liste de paramètres

key

The generichash key.

length

The expected output length of the hash function.

Valeurs de retour

Returns a hash state, serialized as a raw binary string.

Exemples

Exemple #1 sodium_crypto_generichash_init() example

<?php
$messages = [random_bytes(32), random_bytes(32), random_bytes(16)];
$state = sodium_crypto_generichash_init('', 32);
foreach ($messages as $message) {
sodium_crypto_generichash_update($state, $message);
}
$final = sodium_crypto_generichash_final($state, 32);
var_dump(sodium_bin2hex($final));
$allAtOnce = sodium_crypto_generichash(implode('', $messages));
var_dump(sodium_bin2hex($allAtOnce));
?>

Résultat de l'exemple ci-dessus est similaire à :

string(64) "a2939a9163cb7c796ec28e01028489e72475c136b2697ea59e3e760ab4a8ab20"
string(64) "a2939a9163cb7c796ec28e01028489e72475c136b2697ea59e3e760ab4a8ab20"


Generate a random generichash key

  • « sodium_crypto_generichash_init
  • sodium_crypto_generichash_update »
  • PHP Manual
  • Sodium Fonctions
  • Generate a random generichash key

sodium_crypto_generichash_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_generichash_keygen — Generate a random generichash key

Description

sodium_crypto_generichash_keygen(): string

Generate a random key for use with the generichash API.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A random 256-bit key.


Add message to a hash

  • « sodium_crypto_generichash_keygen
  • sodium_crypto_generichash »
  • PHP Manual
  • Sodium Fonctions
  • Add message to a hash

sodium_crypto_generichash_update

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_generichash_update — Add message to a hash

Description

sodium_crypto_generichash_update(string &$state, string $message): true

Appends a message to the internal hash state.

Liste de paramètres

state

The return value of sodium_crypto_generichash_init().

message

Data to append to the hashing state.

Valeurs de retour

Retourne toujours true.

Exemples

Exemple #1 sodium_crypto_generichash_update() example

<?php
$messages = [random_bytes(32), random_bytes(32), random_bytes(16)];
$state = sodium_crypto_generichash_init();
foreach ($messages as $message) {
sodium_crypto_generichash_update($state, $message);
}
$final = sodium_crypto_generichash_final($state);
var_dump(sodium_bin2hex($final));

$allAtOnce = sodium_crypto_generichash(implode('', $messages));
var_dump(sodium_bin2hex($allAtOnce));
?>

Résultat de l'exemple ci-dessus est similaire à :

string(64) "e16e28bbbbcc39d9f5b1cbc33c41f1d217808640103e57a41f24870f79831e04"
string(64) "e16e28bbbbcc39d9f5b1cbc33c41f1d217808640103e57a41f24870f79831e04"


Get a hash of the message

  • « sodium_crypto_generichash_update
  • sodium_crypto_kdf_derive_from_key »
  • PHP Manual
  • Sodium Fonctions
  • Get a hash of the message

sodium_crypto_generichash

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_generichash — Get a hash of the message

Description

sodium_crypto_generichash(string $message, string $key = "", int $length = SODIUM_CRYPTO_GENERICHASH_BYTES): string

Hash a message with BLAKE2b.

Liste de paramètres

message

The message being hashed.

key

(Optional) cryptographic key. This serves the same function as a HMAC key, but it's utilized as a reserved section of the internal BLAKE2 state.

length

Output size.

Valeurs de retour

The cryptographic hash as raw bytes. If a hex-encoded output is desired, the result can be passed to sodium_bin2hex().


Derive a subkey

  • « sodium_crypto_generichash
  • sodium_crypto_kdf_keygen »
  • PHP Manual
  • Sodium Fonctions
  • Derive a subkey

sodium_crypto_kdf_derive_from_key

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_kdf_derive_from_key — Derive a subkey

Description

sodium_crypto_kdf_derive_from_key(
int $subkey_length,
int $subkey_id,
string $context,
string $key
): string

Derive a subkey from a root key and additional context.

Similar to hash_hkdf().

Liste de paramètres

subkey_length

Length of the key to return (in bytes)

subkey_id

Return the Nth subkey from a given root key. Useful for seeking.

context

Application-specific context.

key

The root key from which the subkey is derived.

Valeurs de retour

A string of pseudorandom (raw binary) bytes.


Generate a random root key for the KDF interface

  • « sodium_crypto_kdf_derive_from_key
  • sodium_crypto_kx_client_session_keys »
  • PHP Manual
  • Sodium Fonctions
  • Generate a random root key for the KDF interface

sodium_crypto_kdf_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_kdf_keygen — Generate a random root key for the KDF interface

Description

sodium_crypto_kdf_keygen(): string

Generates a random key suitable for serving as the root key for sodium_crypto_kdf_derive_from_key().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A random 256-bit key.


Calculate the client-side session keys.

  • « sodium_crypto_kdf_keygen
  • sodium_crypto_kx_keypair »
  • PHP Manual
  • Sodium Fonctions
  • Calculate the client-side session keys.

sodium_crypto_kx_client_session_keys

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_kx_client_session_keys — Calculate the client-side session keys.

Description

sodium_crypto_kx_client_session_keys(string $client_key_pair, string $server_key): array

Calculate the client-side session keys, using the X25519 + BLAKE2b key-exchange method.

Liste de paramètres

client_key_pair

A crypto_kx keypair, such as one generated by sodium_crypto_kx_keypair().

server_key

A crypto_kx public key.

Valeurs de retour

An array consisting of two strings. The first should be used for receiving data from the server. The second should be used for sending data to the server.


Creates a new sodium keypair

  • « sodium_crypto_kx_client_session_keys
  • sodium_crypto_kx_publickey »
  • PHP Manual
  • Sodium Fonctions
  • Creates a new sodium keypair

sodium_crypto_kx_keypair

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_kx_keypair — Creates a new sodium keypair

Description

sodium_crypto_kx_keypair(): string

Create a new sodium keypair consisting of the secret key (32 bytes) followed by the public key (32 bytes). The keys can be retrieved by calling sodium_crypto_kx_secretkey() and sodium_crypto_kx_publickey(), respectively.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the new keypair on success; throws an exception otherwise.

Exemples

Exemple #1 sodium_crypto_kx_keypair() usage

Create a new keypair and retrieve the secret and the public key from it.

<?php
$keypair = sodium_crypto_kx_keypair();
$secret = sodium_crypto_kx_secretkey($keypair);
$public = sodium_crypto_kx_publickey($keypair);
printf("secret: %s\npublic: %s", sodium_bin2hex($secret), sodium_bin2hex($public));
?>

Résultat de l'exemple ci-dessus est similaire à :

secret: e7c5c918fdc40762e6000542c0118f4368ce8fd242b0e48c1e17202797a25daf
public: d1f59fda8652caf40ed1a01d2b6f3802b60846986372cd8fa337b7c12c428b18


Extract the public key from a crypto_kx keypair

  • « sodium_crypto_kx_keypair
  • sodium_crypto_kx_secretkey »
  • PHP Manual
  • Sodium Fonctions
  • Extract the public key from a crypto_kx keypair

sodium_crypto_kx_publickey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_kx_publickey — Extract the public key from a crypto_kx keypair

Description

sodium_crypto_kx_publickey(string $key_pair): string

Extract the public key from a crypto_kx keypair.

Liste de paramètres

key_pair

X25519 keypair, such as one generated by sodium_crypto_kx_keypair().

Valeurs de retour

X25519 public key.


Extract the secret key from a crypto_kx keypair.

  • « sodium_crypto_kx_publickey
  • sodium_crypto_kx_seed_keypair »
  • PHP Manual
  • Sodium Fonctions
  • Extract the secret key from a crypto_kx keypair.

sodium_crypto_kx_secretkey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_kx_secretkey — Extract the secret key from a crypto_kx keypair.

Description

sodium_crypto_kx_secretkey(string $key_pair): string

Extract the secret key from a crypto_kx keypair.

Liste de paramètres

key_pair

X25519 keypair, such as one generated by sodium_crypto_kx_keypair().

Valeurs de retour

X25519 secret key.


Description

  • « sodium_crypto_kx_secretkey
  • sodium_crypto_kx_server_session_keys »
  • PHP Manual
  • Sodium Fonctions
  • Description

sodium_crypto_kx_seed_keypair

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_kx_seed_keypair — Description

Description

sodium_crypto_kx_seed_keypair(string $seed): string

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

seed

Valeurs de retour


Calculate the server-side session keys.

  • « sodium_crypto_kx_seed_keypair
  • sodium_crypto_pwhash_scryptsalsa208sha256_str_verify »
  • PHP Manual
  • Sodium Fonctions
  • Calculate the server-side session keys.

sodium_crypto_kx_server_session_keys

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_kx_server_session_keys — Calculate the server-side session keys.

Description

sodium_crypto_kx_server_session_keys(string $server_key_pair, string $client_key): array

Calculate the server-side session keys, using the X25519 + BLAKE2b key-exchange method.

Liste de paramètres

server_key_pair

A crypto_kx keypair, such as one generated by sodium_crypto_kx_keypair().

client_key

A crypto_kx public key.

Valeurs de retour

An array consisting of two strings. The first should be used for receiving data from the client. The second should be used for sending data to the client.


Verify that the password is a valid password verification string

  • « sodium_crypto_kx_server_session_keys
  • sodium_crypto_pwhash_scryptsalsa208sha256_str »
  • PHP Manual
  • Sodium Fonctions
  • Verify that the password is a valid password verification string

sodium_crypto_pwhash_scryptsalsa208sha256_str_verify

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_pwhash_scryptsalsa208sha256_str_verify — Verify that the password is a valid password verification string

Description

sodium_crypto_pwhash_scryptsalsa208sha256_str_verify(string $hash, string $password): bool

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

hash

password

Valeurs de retour


Get an ASCII encoded hash

  • « sodium_crypto_pwhash_scryptsalsa208sha256_str_verify
  • sodium_crypto_pwhash_scryptsalsa208sha256 »
  • PHP Manual
  • Sodium Fonctions
  • Get an ASCII encoded hash

sodium_crypto_pwhash_scryptsalsa208sha256_str

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_pwhash_scryptsalsa208sha256_str — Get an ASCII encoded hash

Description

sodium_crypto_pwhash_scryptsalsa208sha256_str(string $password, int $opslimit, int $memlimit): string

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

password

opslimit

memlimit

Valeurs de retour


Derives a key from a password, using scrypt

  • « sodium_crypto_pwhash_scryptsalsa208sha256_str
  • sodium_crypto_pwhash_str_needs_rehash »
  • PHP Manual
  • Sodium Fonctions
  • Derives a key from a password, using scrypt

sodium_crypto_pwhash_scryptsalsa208sha256

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_pwhash_scryptsalsa208sha256 — Derives a key from a password, using scrypt

Description

sodium_crypto_pwhash_scryptsalsa208sha256(
int $length,
string $password,
string $salt,
int $opslimit,
int $memlimit
): string

This is the scrypt counterpart to sodium_crypto_pwhash().

A common reason to use this particular function is to derive the seeds for cryptographic keys from a password and salt, and then use these seeds to generate the actual keys needed for some purpose (e.g. sodium_crypto_sign_detached()).

Liste de paramètres

length

The length of the password hash to generate, in bytes.

password

The password to generate a hash for.

salt

A salt to add to the password before hashing. The salt should be unpredictable, ideally generated from a good random number source such as random_bytes(), and have a length of at least SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_SALTBYTES bytes.

opslimit

Represents a maximum amount of computations to perform. Raising this number will make the function require more CPU cycles to compute a key. There are some constants available to set the operations limit to appropriate values depending on intended use, in order of strength: SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_INTERACTIVE and SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_SENSITIVE.

memlimit

The maximum amount of RAM that the function will use, in bytes. There are constants to help you choose an appropriate value, in order of size: SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_INTERACTIVE and SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_SENSITIVE. Typically these should be paired with the matching opslimit values.

Valeurs de retour

A string of bytes of the desired length.


Determine whether or not to rehash a password

  • « sodium_crypto_pwhash_scryptsalsa208sha256
  • sodium_crypto_pwhash_str_verify »
  • PHP Manual
  • Sodium Fonctions
  • Determine whether or not to rehash a password

sodium_crypto_pwhash_str_needs_rehash

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_pwhash_str_needs_rehash — Determine whether or not to rehash a password

Description

sodium_crypto_pwhash_str_needs_rehash(string $password, int $opslimit, int $memlimit): bool

Determine whether or not to rehash a password, based on the current hash opslimit and memlimit.

Liste de paramètres

password

Password hash

opslimit

Configured opslimit; see sodium_crypto_pwhash_str()

memlimit

Configured memlimit; see sodium_crypto_pwhash_str()

Valeurs de retour

Returns true if the provided memlimit/opslimit do not match what's stored in the hash. Returns false if they match.


Verifies that a password matches a hash

  • « sodium_crypto_pwhash_str_needs_rehash
  • sodium_crypto_pwhash_str »
  • PHP Manual
  • Sodium Fonctions
  • Verifies that a password matches a hash

sodium_crypto_pwhash_str_verify

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_pwhash_str_verify — Verifies that a password matches a hash

Description

sodium_crypto_pwhash_str_verify(string $hash, string $password): bool

Checks that a password hash created using sodium_crypto_pwhash_str() matches a given plain-text password. Note that the parameters are in the opposite order to the same parameters in the similar password_verify() function.

Liste de paramètres

hash

Un hachage créé par la fonction password_hash().

password

Le mot de passe utilisateur.

Valeurs de retour

Returns true if the password and hash match, or false otherwise.

Notes

Note:

Hashes are calculated using the Argon2ID algorithm, providing resistance to both GPU and side-channel attacks.

Voir aussi

  • sodium_crypto_pwhash_str() - Get an ASCII-encoded hash
  • password_hash() - Crée une clé de hachage pour un mot de passe
  • password_verify() - Vérifie qu'un mot de passe correspond à un hachage


Get an ASCII-encoded hash

  • « sodium_crypto_pwhash_str_verify
  • sodium_crypto_pwhash »
  • PHP Manual
  • Sodium Fonctions
  • Get an ASCII-encoded hash

sodium_crypto_pwhash_str

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_pwhash_str — Get an ASCII-encoded hash

Description

sodium_crypto_pwhash_str(string $password, int $opslimit, int $memlimit): string

Uses a CPU- and memory-hard hash algorithm along with a randomly-generated salt, and memory and CPU limits to generate an ASCII-encoded hash suitable for password storage.

Liste de paramètres

password

string; The password to generate a hash for.

opslimit

Represents a maximum amount of computations to perform. Raising this number will make the function require more CPU cycles to compute a key. There are constants available to set the operations limit to appropriate values depending on intended use, in order of strength: SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE, SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE and SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE.

memlimit

The maximum amount of RAM that the function will use, in bytes. There are constants to help you choose an appropriate value, in order of size: SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE, SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE, and SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE. Typically these should be paired with the matching opslimit values.

Valeurs de retour

Returns the hashed password.

In order to produce the same password hash from the same password, the same values for opslimit and memlimit must be used. These are embedded within the generated hash, so everything that's needed to verify the hash is included. This allows the sodium_crypto_pwhash_str_verify() function to verify the hash without needing separate storage for the other parameters.

Exemples

Exemple #1 sodium_crypto_pwhash_str() example

<?php
$password = 'password';
echo sodium_crypto_pwhash_str(
$password,
SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE,
SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE
);

Résultat de l'exemple ci-dessus est similaire à :

$argon2id$v=19$m=65536,t=2,p=1$oWIfdaXwWwhVmovOBc2NAQ$EbsZ+JnZyyavkafS0hoc4HdaOB0ILWZESAZ7kVGa+Iw

Notes

Note:

Hashes are calculated using the Argon2ID algorithm, providing resistance to both GPU and side-channel attacks. In contrast to the password_hash() function, there is no salt parameter (a salt is generated automatically), and the opslimit and memlimit parameters are not optional.

Voir aussi

  • sodium_crypto_pwhash_str_verify() - Verifies that a password matches a hash
  • sodium_crypto_pwhash() - Derive a key from a password, using Argon2
  • password_hash() - Crée une clé de hachage pour un mot de passe
  • password_verify() - Vérifie qu'un mot de passe correspond à un hachage
  • » Libsodium Argon2 docs


Derive a key from a password, using Argon2

  • « sodium_crypto_pwhash_str
  • sodium_crypto_scalarmult_base »
  • PHP Manual
  • Sodium Fonctions
  • Derive a key from a password, using Argon2

sodium_crypto_pwhash

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_pwhash — Derive a key from a password, using Argon2

Description

sodium_crypto_pwhash(
int $length,
string $password,
string $salt,
int $opslimit,
int $memlimit,
int $algo = SODIUM_CRYPTO_PWHASH_ALG_DEFAULT
): string

This function provides low-level access to libsodium's crypto_pwhash key derivation function. Unless you have specific reason to use this function, you should use sodium_crypto_pwhash_str() or password_hash() functions instead.

A common reason to use this particular function is to derive the seeds for cryptographic keys from a password and salt, and then use these seeds to generate the actual keys needed for some purpose (e.g. sodium_crypto_sign_detached()).

Liste de paramètres

length

int; The length of the password hash to generate, in bytes.

password

string; The password to generate a hash for.

salt

A salt to add to the password before hashing. The salt should be unpredictable, ideally generated from a good random number source such as random_bytes(), and have a length of exactly SODIUM_CRYPTO_PWHASH_SALTBYTES bytes.

opslimit

Represents a maximum amount of computations to perform. Raising this number will make the function require more CPU cycles to compute a key. There are some constants available to set the operations limit to appropriate values depending on intended use, in order of strength: SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE, SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE and SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE.

memlimit

The maximum amount of RAM that the function will use, in bytes. There are constants to help you choose an appropriate value, in order of size: SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE, SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE, and SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE. Typically these should be paired with the matching opslimit values.

algo

int A number indicating the hash algorithm to use. By default SODIUM_CRYPTO_PWHASH_ALG_DEFAULT (the currently recommended algorithm, which can change from one version of libsodium to another), or explicitly using SODIUM_CRYPTO_PWHASH_ALG_ARGON2ID13, representing the Argon2id algorithm version 1.3.

Valeurs de retour

Returns the derived key. The return value is a binary string of the hash, not an ASCII-encoded representation, and does not contain additional information about the parameters used to create the hash, so you will need to keep that information if you are ever going to verify the password in future. Use sodium_crypto_pwhash_str() to avoid needing to do all that.

Exemples

Exemple #1 sodium_crypto_pwhash() example

<?php
//Need to keep the salt if we're ever going to be able to check this password
$salt = random_bytes(SODIUM_CRYPTO_PWHASH_SALTBYTES);
//Using bin2hex to keep output readable
echo bin2hex(
sodium_crypto_pwhash(
16, // == 128 bits
'password',
$salt,
SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE,
SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE,
SODIUM_CRYPTO_PWHASH_ALG_ARGON2ID13
)
);
?>

Résultat de l'exemple ci-dessus est similaire à :

a18f346ba57992eb7e4ae6abf3fd30ee


Alias de sodium_crypto_box_publickey_from_secretkey

  • « sodium_crypto_pwhash
  • sodium_crypto_scalarmult_ristretto255_base »
  • PHP Manual
  • Sodium Fonctions
  • Alias de sodium_crypto_box_publickey_from_secretkey

sodium_crypto_scalarmult_base

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_scalarmult_base — Alias de sodium_crypto_box_publickey_from_secretkey()

Description

Cette fonction est un alias de : sodium_crypto_box_publickey_from_secretkey().


Calculates the public key from a secret key

  • « sodium_crypto_scalarmult_base
  • sodium_crypto_scalarmult_ristretto255 »
  • PHP Manual
  • Sodium Fonctions
  • Calculates the public key from a secret key

sodium_crypto_scalarmult_ristretto255_base

(PHP 8 >= 8.1.1)

sodium_crypto_scalarmult_ristretto255_base — Calculates the public key from a secret key

Description

sodium_crypto_scalarmult_ristretto255_base(string $n): string

Given a secret key, calculates the corresponding public key. Available as of libsodium 1.0.18.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

n

A secret key.

Valeurs de retour

Returns a 32-byte random chaîne de caractères.

Voir aussi

  • sodium_crypto_scalarmult_ristretto255() - Computes a shared secret


Computes a shared secret

  • « sodium_crypto_scalarmult_ristretto255_base
  • sodium_crypto_scalarmult »
  • PHP Manual
  • Sodium Fonctions
  • Computes a shared secret

sodium_crypto_scalarmult_ristretto255

(PHP 8 >= 8.1.1)

sodium_crypto_scalarmult_ristretto255 — Computes a shared secret

Description

sodium_crypto_scalarmult_ristretto255(string $n, string $p): string

Calculates scalar n times point p. Available as of libsodium 1.0.18.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

n

A scalar, which is typically a secret key.

p

A point (x-coordinate), which is typically a public key.

Valeurs de retour

Returns a 32-byte random chaîne de caractères.

Voir aussi

  • sodium_crypto_scalarmult_ristretto255_base() - Calculates the public key from a secret key


Compute a shared secret given a user's secret key and another user's public key

  • « sodium_crypto_scalarmult_ristretto255
  • sodium_crypto_secretbox_keygen »
  • PHP Manual
  • Sodium Fonctions
  • Compute a shared secret given a user's secret key and another user's public key

sodium_crypto_scalarmult

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_scalarmult — Compute a shared secret given a user's secret key and another user's public key

Description

sodium_crypto_scalarmult(string $n, string $p): string

Elliptic Curve Diffie-Hellman. Calculates scalar n times point p, on an elliptic curve.

Liste de paramètres

n

scalar, which is typically a secret key

p

point (x-coordinate), which is typically a public key

Valeurs de retour

A 32-byte random string.


Generate random key for sodium_crypto_secretbox

  • « sodium_crypto_scalarmult
  • sodium_crypto_secretbox_open »
  • PHP Manual
  • Sodium Fonctions
  • Generate random key for sodium_crypto_secretbox

sodium_crypto_secretbox_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretbox_keygen — Generate random key for sodium_crypto_secretbox

Description

sodium_crypto_secretbox_keygen(): string

Generate a key for use with sodium_crypto_secretbox() and sodium_crypto_secretbox_open().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the generated string of cryptographically secure random bytes.

Exemples

Exemple #1 sodium_crypto_secretbox_keygen() example

<?php
$key = sodium_crypto_secretbox_keygen();
var_dump( sodium_bin2hex( $key ) );
?>

Résultat de l'exemple ci-dessus est similaire à :

string(64) "88bd1dc51ec81984f3ddc5a8f59a3d95b647e2da3e879f1b9ceb0abd89e7286c"

Exemple #2 Comparing sodium_crypto_secretbox_keygen() with random_bytes()

<?php
$key = sodium_crypto_secretbox_keygen();
$bytes = random_bytes( SODIUM_CRYPTO_SECRETBOX_KEYBYTES );
var_dump( mb_strlen( $key, '8bit' ) === mb_strlen( $bytes, '8bit' ) );
?>

L'exemple ci-dessus va afficher :

bool(true)

Voir aussi

  • sodium_bin2hex() - Encode to hexadecimal
  • random_bytes() - Récupère des octets aléatoires cryptographiquement sécurisés


Authenticated shared-key decryption

  • « sodium_crypto_secretbox_keygen
  • sodium_crypto_secretbox »
  • PHP Manual
  • Sodium Fonctions
  • Authenticated shared-key decryption

sodium_crypto_secretbox_open

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretbox_open — Authenticated shared-key decryption

Description

sodium_crypto_secretbox_open(string $ciphertext, string $nonce, string $key): string|false

Decrypt an encrypted message with a symmetric (shared) key.

Liste de paramètres

ciphertext

Must be in the format provided by sodium_crypto_secretbox() (ciphertext and tag, concatenated).

nonce

A number that must be only used once, per message. 24 bytes long. This is a large enough bound to generate randomly (i.e. random_bytes()).

key

Encryption key (256-bit).

Valeurs de retour

The decrypted string on success ou false si une erreur survient.

Erreurs / Exceptions

  • If nonce has a length of bytes different than SODIUM_CRYPTO_SECRETBOX_NONCEBYTES (24 bytes), a SodiumException will be thrown.
  • If key has a length of bytes different than SODIUM_CRYPTO_SECRETBOX_KEYBYTES (32 bytes), a SodiumException will be thrown.

Exemples

Exemple #1 sodium_crypto_secretbox_open() example

<?php
// The $key must be kept confidential
$key = random_bytes(SODIUM_CRYPTO_SECRETBOX_KEYBYTES);
// Do not reuse $nonce with the same key
$nonce = random_bytes(SODIUM_CRYPTO_SECRETBOX_NONCEBYTES);
$ciphertext = sodium_crypto_secretbox('message to be encrypted', $nonce, $key);

// The same nonce and key are required to decrypt the $ciphertext
$plaintext = sodium_crypto_secretbox_open($ciphertext, $nonce, $key);
if ($plaintext !== false) {
echo $plaintext . PHP_EOL;
}
?>

L'exemple ci-dessus va afficher :

message to be encrypted

Voir aussi

  • sodium_crypto_secretbox() - Authenticated shared-key encryption
  • sodium_crypto_secretbox_keygen() - Generate random key for sodium_crypto_secretbox
  • random_bytes() - Récupère des octets aléatoires cryptographiquement sécurisés


Authenticated shared-key encryption

  • « sodium_crypto_secretbox_open
  • sodium_crypto_secretstream_xchacha20poly1305_init_pull »
  • PHP Manual
  • Sodium Fonctions
  • Authenticated shared-key encryption

sodium_crypto_secretbox

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretbox — Authenticated shared-key encryption

Description

sodium_crypto_secretbox(string $message, string $nonce, string $key): string

Encrypt a message with a symmetric (shared) key.

Liste de paramètres

message

The plaintext message to encrypt.

nonce

A number that must be only used once, per message. 24 bytes long. This is a large enough bound to generate randomly (i.e. random_bytes()).

key

Encryption key (256-bit).

Valeurs de retour

Returns the encrypted string.

Erreurs / Exceptions

  • If nonce has a length of bytes different than SODIUM_CRYPTO_SECRETBOX_NONCEBYTES (24 bytes), a SodiumException will be thrown.
  • If key has a length of bytes different than SODIUM_CRYPTO_SECRETBOX_KEYBYTES (32 bytes), a SodiumException will be thrown.
  • Throws a SodiumException on failure.

Exemples

Exemple #1 sodium_crypto_secretbox() example

<?php
// The $key must be kept confidential
$key = sodium_crypto_secretbox_keygen();
// Do not reuse $nonce with the same key
$nonce = random_bytes(SODIUM_CRYPTO_SECRETBOX_NONCEBYTES);
$plaintext = "message to be encrypted";
$ciphertext = sodium_crypto_secretbox($plaintext, $nonce, $key);

var_dump(bin2hex($ciphertext));
// The same nonce and key are required to decrypt the $ciphertext
var_dump(sodium_crypto_secretbox_open($ciphertext, $nonce, $key));
?>

Résultat de l'exemple ci-dessus est similaire à :

string(78) "3a1fa3e9f7b72ef8be51d40abf8e296c6899c185d07b18b4c93e7f26aa776d24c50852cd6b1076"
string(23) "message to be encrypted"

Voir aussi

  • sodium_crypto_secretbox_open() - Authenticated shared-key decryption
  • sodium_crypto_secretbox_keygen() - Generate random key for sodium_crypto_secretbox
  • random_bytes() - Récupère des octets aléatoires cryptographiquement sécurisés


Initialize a secretstream context for decryption

  • « sodium_crypto_secretbox
  • sodium_crypto_secretstream_xchacha20poly1305_init_push »
  • PHP Manual
  • Sodium Fonctions
  • Initialize a secretstream context for decryption

sodium_crypto_secretstream_xchacha20poly1305_init_pull

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretstream_xchacha20poly1305_init_pull — Initialize a secretstream context for decryption

Description

sodium_crypto_secretstream_xchacha20poly1305_init_pull(string $header, string $key): string

Initialize a secretstream context for decryption.

Liste de paramètres

header

The header of the secretstream. This should be one of the values produced by sodium_crypto_secretstream_xchacha20poly1305_init_push().

key

Encryption key (256-bit).

Valeurs de retour

Secretstream state.

Exemples

Exemple #1 sodium_crypto_secretstream_xchacha20poly1305_init_pull() example

<?php
function decrypt_file(string $inputFilePath, string $outputFilePath, string $key): void
{
$inputFile = fopen($inputFilePath, 'rb');
$outputFile = fopen($outputFilePath, 'wb');
$header = fread($inputFile, 24);

$state = sodium_crypto_secretstream_xchacha20poly1305_init_pull($header, $key);
$inputFileSize = fstat($inputFile)['size'];

// Decrypt the file and write its contents to the output file:
for ($i = 24; $i < $inputFileSize; $i += 8192) {
$ctxt_chunk = fread($inputFile, 8192);

// We're not using $tag, but in real protocols you can use this on encrypt to e.g.
// trigger a re-key or indicate the end of file. Then, on decrypt, you can assert
// this behavior.
[$ptxt_chunk, $tag] = sodium_crypto_secretstream_xchacha20poly1305_pull($state, $ctxt_chunk);
fwrite($outputFile, $ptxt_chunk);
}

sodium_memzero($state);
fclose($inputFile);
fclose($outputFile);
}

// sodium_crypto_secretstream_xchacha20poly1305_keygen()
$key = sodium_base642bin('MS0lzb7HC+thY6jY01pkTE/cwsQxnRq0/2L1eL4Hxn8=', SODIUM_BASE64_VARIANT_ORIGINAL);

$example = sodium_hex2bin('971e33b255f0990ef3931caf761c59136efa77b434832f28ec719e3ff73f5aec38b3bba1574ab5b70a8844d8da36a668e802cfea2c');
file_put_contents('hello.enc', $example);
decrypt_file('hello.enc', 'hello.txt.decrypted', $key);
var_dump(file_get_contents('hello.txt.decrypted'));
?>

Résultat de l'exemple ci-dessus est similaire à :

string(12) "Hello world!"


Initialize a secretstream context for encryption

  • « sodium_crypto_secretstream_xchacha20poly1305_init_pull
  • sodium_crypto_secretstream_xchacha20poly1305_keygen »
  • PHP Manual
  • Sodium Fonctions
  • Initialize a secretstream context for encryption

sodium_crypto_secretstream_xchacha20poly1305_init_push

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretstream_xchacha20poly1305_init_push — Initialize a secretstream context for encryption

Description

sodium_crypto_secretstream_xchacha20poly1305_init_push(string $key): array

Initialize a secretstream context for encryption.

Liste de paramètres

key

Cryptography key. See sodium_crypto_secretstream_xchacha20poly1305_keygen().

Valeurs de retour

An array with two string values:

  • The secretstream state, needed for further pushes
  • The secretstream header, which needs to be provided to the recipient so they can pull data

Exemples

Exemple #1 sodium_crypto_secretstream_xchacha20poly1305_init_push() example

<?php
function encrypt_file(string $inputFilePath, string $outputFilePath, string $key): void
{
[$state, $header] = sodium_crypto_secretstream_xchacha20poly1305_init_push($key);

$inputFile = fopen($inputFilePath, 'rb');
$outputFile = fopen($outputFilePath, 'wb');
// Write the header:
fwrite($outputFile, $header);
$inputFileSize = fstat($inputFile)['size'];

// Encrypt the file and write its contents to the output file:
for ($i = 0; $i < $inputFileSize; $i += 8175) {
$ptxt_chunk = fread($inputFile, 8175);
$ctxt_chunk = sodium_crypto_secretstream_xchacha20poly1305_push($state, $ptxt_chunk);
fwrite($outputFile, $ctxt_chunk);
}

sodium_memzero($state);
fclose($inputFile);
fclose($outputFile);
}

// sodium_crypto_secretstream_xchacha20poly1305_keygen()
$key = sodium_base642bin('MS0lzb7HC+thY6jY01pkTE/cwsQxnRq0/2L1eL4Hxn8=', SODIUM_BASE64_VARIANT_ORIGINAL);

file_put_contents('hello.txt', 'Hello world!');
encrypt_file('hello.txt', 'hello.txt.encrypted', $key);
var_dump(sodium_bin2hex(file_get_contents('hello.txt.encrypted')));
?>

Résultat de l'exemple ci-dessus est similaire à :

string(106) "971e33b255f0990ef3931caf761c59136efa77b434832f28ec719e3ff73f5aec38b3bba1574ab5b70a8844d8da36a668e802cfea2c"


Generate a random secretstream key.

  • « sodium_crypto_secretstream_xchacha20poly1305_init_push
  • sodium_crypto_secretstream_xchacha20poly1305_pull »
  • PHP Manual
  • Sodium Fonctions
  • Generate a random secretstream key.

sodium_crypto_secretstream_xchacha20poly1305_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretstream_xchacha20poly1305_keygen — Generate a random secretstream key.

Description

sodium_crypto_secretstream_xchacha20poly1305_keygen(): string

Generate a random secretstream key.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a string of random bytes.


Decrypt a chunk of data from an encrypted stream

  • « sodium_crypto_secretstream_xchacha20poly1305_keygen
  • sodium_crypto_secretstream_xchacha20poly1305_push »
  • PHP Manual
  • Sodium Fonctions
  • Decrypt a chunk of data from an encrypted stream

sodium_crypto_secretstream_xchacha20poly1305_pull

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretstream_xchacha20poly1305_pull — Decrypt a chunk of data from an encrypted stream

Description

sodium_crypto_secretstream_xchacha20poly1305_pull(string &$state, string $ciphertext, string $additional_data = ""): array|false

Decrypt a chunk of data from an encrypted stream.

Liste de paramètres

state

See sodium_crypto_secretstream_xchacha20poly1305_init_pull() and sodium_crypto_secretstream_xchacha20poly1305_init_push()

ciphertext

The ciphertext chunk to decrypt.

additional_data

Optional additional data to include in the authentication tag.

Valeurs de retour

An array with two values:

  • string; The decrypted chunk

  • int; An optional tag (if provided during push). Possible values:

    • SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_MESSAGE: the most common tag, that doesn't add any information about the nature of the message.
    • SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_FINAL: indicates that the message marks the end of the stream, and erases the secret key used to encrypt the previous sequence.
    • SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_PUSH: indicates that the message marks the end of a set of messages, but not the end of the stream. For example, a huge JSON string sent as multiple chunks can use this tag to indicate to the application that the string is complete and that it can be decoded. But the stream itself is not closed, and more data may follow.
    • SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_REKEY: "forget" the key used to encrypt this message and the previous ones, and derive a new secret key.


Encrypt a chunk of data so that it can safely be decrypted in a streaming API

  • « sodium_crypto_secretstream_xchacha20poly1305_pull
  • sodium_crypto_secretstream_xchacha20poly1305_rekey »
  • PHP Manual
  • Sodium Fonctions
  • Encrypt a chunk of data so that it can safely be decrypted in a streaming API

sodium_crypto_secretstream_xchacha20poly1305_push

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretstream_xchacha20poly1305_push — Encrypt a chunk of data so that it can safely be decrypted in a streaming API

Description

sodium_crypto_secretstream_xchacha20poly1305_push(
string &$state,
string $message,
string $additional_data = "",
int $tag = SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_MESSAGE
): string

Encrypt a chunk of data so that it can safely be decrypted in a streaming API.

Liste de paramètres

state

See sodium_crypto_secretstream_xchacha20poly1305_init_pull() and sodium_crypto_secretstream_xchacha20poly1305_init_push()

message

additional_data

tag

Optional. Can be used to assert decryption behavior (i.e. re-keying or indicating the final chunk in a stream).

  • SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_MESSAGE: the most common tag, that doesn't add any information about the nature of the message.
  • SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_FINAL: indicates that the message marks the end of the stream, and erases the secret key used to encrypt the previous sequence.
  • SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_PUSH: indicates that the message marks the end of a set of messages, but not the end of the stream. For example, a huge JSON string sent as multiple chunks can use this tag to indicate to the application that the string is complete and that it can be decoded. But the stream itself is not closed, and more data may follow.
  • SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_REKEY: "forget" the key used to encrypt this message and the previous ones, and derive a new secret key.

Valeurs de retour

Returns the encrypted ciphertext.


Explicitly rotate the key in the secretstream state

  • « sodium_crypto_secretstream_xchacha20poly1305_push
  • sodium_crypto_shorthash_keygen »
  • PHP Manual
  • Sodium Fonctions
  • Explicitly rotate the key in the secretstream state

sodium_crypto_secretstream_xchacha20poly1305_rekey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_secretstream_xchacha20poly1305_rekey — Explicitly rotate the key in the secretstream state

Description

sodium_crypto_secretstream_xchacha20poly1305_rekey(string &$state): void

Explicitly rotate the key in the secretstream state. Overwrites the value passed in.

Liste de paramètres

state

Secretstream state.

Valeurs de retour

Aucune valeur n'est retournée.


Get random bytes for key

  • « sodium_crypto_secretstream_xchacha20poly1305_rekey
  • sodium_crypto_shorthash »
  • PHP Manual
  • Sodium Fonctions
  • Get random bytes for key

sodium_crypto_shorthash_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_shorthash_keygen — Get random bytes for key

Description

sodium_crypto_shorthash_keygen(): string

Generate a key for use with sodium_crypto_shorthash().

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Compute a short hash of a message and key

  • « sodium_crypto_shorthash_keygen
  • sodium_crypto_sign_detached »
  • PHP Manual
  • Sodium Fonctions
  • Compute a short hash of a message and key

sodium_crypto_shorthash

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_shorthash — Compute a short hash of a message and key

Description

sodium_crypto_shorthash(string $message, string $key): string

sodium_crypto_shorthash() wraps a hash function called SipHash-2-4, which is ideal for implementing hash tables that are not susceptible to hash collision denial of service attacks (Hash-DoS).

SipHash-2-4 isn't a general purpose cryptographic hash function.

Liste de paramètres

message

The message to hash.

key

The hash key.

Valeurs de retour


Sign the message

  • « sodium_crypto_shorthash
  • sodium_crypto_sign_ed25519_pk_to_curve25519 »
  • PHP Manual
  • Sodium Fonctions
  • Sign the message

sodium_crypto_sign_detached

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_detached — Sign the message

Description

sodium_crypto_sign_detached(string $message, string $secret_key): string

Sign a message with a secret key, that can be verified by the corresponding public key. This function returns a detached signature.

Liste de paramètres

message

Message to sign.

secret_key

Secret key. See sodium_crypto_sign_secretkey()

Valeurs de retour

Cryptographic signature.


Convert an Ed25519 public key to a Curve25519 public key

  • « sodium_crypto_sign_detached
  • sodium_crypto_sign_ed25519_sk_to_curve25519 »
  • PHP Manual
  • Sodium Fonctions
  • Convert an Ed25519 public key to a Curve25519 public key

sodium_crypto_sign_ed25519_pk_to_curve25519

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_ed25519_pk_to_curve25519 — Convert an Ed25519 public key to a Curve25519 public key

Description

sodium_crypto_sign_ed25519_pk_to_curve25519(string $public_key): string

Given an Ed25519 public key, calculate the birationally equivalent X25519 public key.

Liste de paramètres

public_key

Public key suitable for the crypto_sign functions.

Valeurs de retour

Public key suitable for the crypto_box functions.


Convert an Ed25519 secret key to a Curve25519 secret key

  • « sodium_crypto_sign_ed25519_pk_to_curve25519
  • sodium_crypto_sign_keypair_from_secretkey_and_publickey »
  • PHP Manual
  • Sodium Fonctions
  • Convert an Ed25519 secret key to a Curve25519 secret key

sodium_crypto_sign_ed25519_sk_to_curve25519

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_ed25519_sk_to_curve25519 — Convert an Ed25519 secret key to a Curve25519 secret key

Description

sodium_crypto_sign_ed25519_sk_to_curve25519(string $secret_key): string

Given an Ed25519 secret key, calculate the birationally equivalent X25519 secret key.

Liste de paramètres

secret_key

Secret key suitable for the crypto_sign functions.

Valeurs de retour

Secret key suitable for the crypto_box functions.


Join a secret key and public key together

  • « sodium_crypto_sign_ed25519_sk_to_curve25519
  • sodium_crypto_sign_keypair »
  • PHP Manual
  • Sodium Fonctions
  • Join a secret key and public key together

sodium_crypto_sign_keypair_from_secretkey_and_publickey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_keypair_from_secretkey_and_publickey — Join a secret key and public key together

Description

sodium_crypto_sign_keypair_from_secretkey_and_publickey(string $secret_key, string $public_key): string

Join a secret key and public key together.

Liste de paramètres

secret_key

Ed25519 secret key

public_key

Ed25519 public key

Valeurs de retour

Keypair


Randomly generate a secret key and a corresponding public key

  • « sodium_crypto_sign_keypair_from_secretkey_and_publickey
  • sodium_crypto_sign_open »
  • PHP Manual
  • Sodium Fonctions
  • Randomly generate a secret key and a corresponding public key

sodium_crypto_sign_keypair

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_keypair — Randomly generate a secret key and a corresponding public key

Description

sodium_crypto_sign_keypair(): string

Generate a random Ed25519 keypair as one string.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Ed25519 keypair.


Check that the signed message has a valid signature

  • « sodium_crypto_sign_keypair
  • sodium_crypto_sign_publickey_from_secretkey »
  • PHP Manual
  • Sodium Fonctions
  • Check that the signed message has a valid signature

sodium_crypto_sign_open

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_open — Check that the signed message has a valid signature

Description

sodium_crypto_sign_open(string $signed_message, string $public_key): string|false

Verify the signature attached to a message and return the message

Liste de paramètres

signed_message

A message signed with sodium_crypto_sign()

public_key

An Ed25519 public key

Valeurs de retour

Returns the original signed message on success, ou false si une erreur survient.


Extract the Ed25519 public key from the secret key

  • « sodium_crypto_sign_open
  • sodium_crypto_sign_publickey »
  • PHP Manual
  • Sodium Fonctions
  • Extract the Ed25519 public key from the secret key

sodium_crypto_sign_publickey_from_secretkey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_publickey_from_secretkey — Extract the Ed25519 public key from the secret key

Description

sodium_crypto_sign_publickey_from_secretkey(string $secret_key): string

Extract the Ed25519 public key from the secret key

Liste de paramètres

secret_key

Ed25519 secret key

Valeurs de retour

Ed25519 public key


Extract the Ed25519 public key from a keypair

  • « sodium_crypto_sign_publickey_from_secretkey
  • sodium_crypto_sign_secretkey »
  • PHP Manual
  • Sodium Fonctions
  • Extract the Ed25519 public key from a keypair

sodium_crypto_sign_publickey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_publickey — Extract the Ed25519 public key from a keypair

Description

sodium_crypto_sign_publickey(string $key_pair): string

Extract the Ed25519 public key from a keypair

Liste de paramètres

key_pair

Ed25519 keypair (see: sodium_crypto_sign_keypair())

Valeurs de retour

Ed25519 public key


Extract the Ed25519 secret key from a keypair

  • « sodium_crypto_sign_publickey
  • sodium_crypto_sign_seed_keypair »
  • PHP Manual
  • Sodium Fonctions
  • Extract the Ed25519 secret key from a keypair

sodium_crypto_sign_secretkey

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_secretkey — Extract the Ed25519 secret key from a keypair

Description

sodium_crypto_sign_secretkey(string $key_pair): string

Extract the Ed25519 secret key from a keypair

Liste de paramètres

key_pair

Ed25519 keypair (see: sodium_crypto_sign_keypair())

Valeurs de retour

Ed25519 secret key


Deterministically derive the key pair from a single key

  • « sodium_crypto_sign_secretkey
  • sodium_crypto_sign_verify_detached »
  • PHP Manual
  • Sodium Fonctions
  • Deterministically derive the key pair from a single key

sodium_crypto_sign_seed_keypair

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_seed_keypair — Deterministically derive the key pair from a single key

Description

sodium_crypto_sign_seed_keypair(string $seed): string

Clamps the seed to form a secret key, derives the public key, and returns the two as a keypair.

The *_seed_keypair functions are ideal for generating a keypair from a password and salt. Use the result as a seed to generate the desired keys.

Liste de paramètres

seed

Some cryptographic input. Must be 32 bytes.

Valeurs de retour

Keypair (secret key and public key)


Verify signature for the message

  • « sodium_crypto_sign_seed_keypair
  • sodium_crypto_sign »
  • PHP Manual
  • Sodium Fonctions
  • Verify signature for the message

sodium_crypto_sign_verify_detached

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign_verify_detached — Verify signature for the message

Description

sodium_crypto_sign_verify_detached(string $signature, string $message, string $public_key): bool

Verify signature for the message

Liste de paramètres

signature

The cryptographic signature obtained from sodium_crypto_sign_detached()

message

The message being verified

public_key

Ed25519 public key

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.


Sign a message

  • « sodium_crypto_sign_verify_detached
  • sodium_crypto_stream_keygen »
  • PHP Manual
  • Sodium Fonctions
  • Sign a message

sodium_crypto_sign

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_sign — Sign a message

Description

sodium_crypto_sign(string $message, string $secret_key): string

Sign a message with a secret key, that can be verified by the corresponding public key. This function attaches the signature to the message. See sodium_crypto_sign_detached() for detached signatures.

Liste de paramètres

message

Message to sign.

secret_key

Secret key. See sodium_crypto_sign_secretkey()

Valeurs de retour

Signed message (not encrypted).


Generate a random sodium_crypto_stream key.

  • « sodium_crypto_sign
  • sodium_crypto_stream_xchacha20_keygen »
  • PHP Manual
  • Sodium Fonctions
  • Generate a random sodium_crypto_stream key.

sodium_crypto_stream_keygen

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_stream_keygen — Generate a random sodium_crypto_stream key.

Description

sodium_crypto_stream_keygen(): string

Generate a key for use with sodium_crypto_stream() and sodium_crypto_stream_xor().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Encryption key (256-bit).


Returns a secure random key

  • « sodium_crypto_stream_keygen
  • sodium_crypto_stream_xchacha20_xor_ic »
  • PHP Manual
  • Sodium Fonctions
  • Returns a secure random key

sodium_crypto_stream_xchacha20_keygen

(PHP 8 >= 8.1.0)

sodium_crypto_stream_xchacha20_keygen — Returns a secure random key

Description

sodium_crypto_stream_xchacha20_keygen(): string

Returns a secure random key for use with sodium_crypto_stream_xchacha20().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a 32-byte secure random key for use with sodium_crypto_stream_xchacha20().


Encrypts a message using a nonce and a secret key (no authentication)

  • « sodium_crypto_stream_xchacha20_keygen
  • sodium_crypto_stream_xchacha20_xor »
  • PHP Manual
  • Sodium Fonctions
  • Encrypts a message using a nonce and a secret key (no authentication)

sodium_crypto_stream_xchacha20_xor_ic

(PHP 8 >= 8.2.0)

sodium_crypto_stream_xchacha20_xor_ic — Encrypts a message using a nonce and a secret key (no authentication)

Description

sodium_crypto_stream_xchacha20_xor_ic(
string $message,
string $nonce,
int $counter,
string $key
): string

The function is similar to sodium_crypto_stream_xchacha20_xor() but adds the ability to set the initial value of the block counter to a non-zero value. This permits direct access to any block without having to compute the previous ones.

Attention

This encryption is unauthenticated, and does not prevent chosen-ciphertext attacks. Make sure to combine the ciphertext with a Message Authentication Code, for example with sodium_crypto_aead_xchacha20poly1305_ietf_encrypt() function, or sodium_crypto_auth().

Liste de paramètres

message

The message to encrypt.

nonce

24-byte nonce.

counter

The initial value of the block counter.

key

Key, possibly generated from sodium_crypto_stream_xchacha20_keygen().

Valeurs de retour

Encrypted message, ou false si une erreur survient.

Exemples

Exemple #1 sodium_crypto_stream_xchacha20_xor_ic() example

<?php
$n2 = random_bytes(SODIUM_CRYPTO_STREAM_XCHACHA20_NONCEBYTES);
$left = str_repeat("\x01", 64);
$right = str_repeat("\xfe", 64);

// All at once:
$stream7_unified = sodium_crypto_stream_xchacha20_xor($left . $right, $n2, $key);

// Piecewise, with initial counter:
$stream7_left = sodium_crypto_stream_xchacha20_xor_ic($left, $n2, 0, $key);
$stream7_right = sodium_crypto_stream_xchacha20_xor_ic($right, $n2, 1, $key);
$stream7_concat = $stream7_left . $stream7_right;

var_dump(strlen($stream7_concat));
var_dump($stream7_unified === $stream7_concat);
?>

Résultat de l'exemple ci-dessus est similaire à :

int(128)
bool(true)

Voir aussi

  • sodium_crypto_stream_xchacha20_xor() - Encrypts a message using a nonce and a secret key (no authentication)


Encrypts a message using a nonce and a secret key (no authentication)

  • « sodium_crypto_stream_xchacha20_xor_ic
  • sodium_crypto_stream_xchacha20 »
  • PHP Manual
  • Sodium Fonctions
  • Encrypts a message using a nonce and a secret key (no authentication)

sodium_crypto_stream_xchacha20_xor

(PHP 8 >= 8.1.0)

sodium_crypto_stream_xchacha20_xor — Encrypts a message using a nonce and a secret key (no authentication)

Description

sodium_crypto_stream_xchacha20_xor(string $message, string $nonce, string $key): string

Encrypts a message using a nonce and a secret key (no authentication).

Attention

This encryption is unauthenticated, and does not prevent chosen-ciphertext attacks. Make sure to combine the ciphertext with a Message Authentication Code, for example with sodium_crypto_aead_xchacha20poly1305_ietf_encrypt() function, or sodium_crypto_auth().

Liste de paramètres

message

The message to encrypt.

nonce

24-byte nonce.

key

Key, possibly generated from sodium_crypto_stream_xchacha20_keygen().

Valeurs de retour

Encrypted message.

Voir aussi

  • sodium_crypto_stream_xchacha20_xor_ic() - Encrypts a message using a nonce and a secret key (no authentication)


Expands the key and nonce into a keystream of pseudorandom bytes

  • « sodium_crypto_stream_xchacha20_xor
  • sodium_crypto_stream_xor »
  • PHP Manual
  • Sodium Fonctions
  • Expands the key and nonce into a keystream of pseudorandom bytes

sodium_crypto_stream_xchacha20

(PHP 8 >= 8.1.0)

sodium_crypto_stream_xchacha20 — Expands the key and nonce into a keystream of pseudorandom bytes

Description

sodium_crypto_stream_xchacha20(int $length, string $nonce, string $key): string

Expands the key and nonce into a keystream of pseudorandom bytes.

Liste de paramètres

length

Number of bytes desired.

nonce

24-byte nonce.

key

Key, possibly generated from sodium_crypto_stream_xchacha20_keygen().

Valeurs de retour

Returns a pseudorandom stream that can be used with sodium_crypto_stream_xchacha20_xor().


Encrypt a message without authentication

  • « sodium_crypto_stream_xchacha20
  • sodium_crypto_stream »
  • PHP Manual
  • Sodium Fonctions
  • Encrypt a message without authentication

sodium_crypto_stream_xor

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_stream_xor — Encrypt a message without authentication

Description

sodium_crypto_stream_xor(string $message, string $nonce, string $key): string

This function encrypts a message with XSalsa20, but does not provide any ciphertext guarantees about the plaintext.

Liste de paramètres

message

The message to encrypt

nonce

A number that must be only used once, per message. 24 bytes long. This is a large enough bound to generate randomly (i.e. random_bytes()).

key

Encryption key (256-bit).

Valeurs de retour

Encrypted message.


Generate a deterministic sequence of bytes from a seed

  • « sodium_crypto_stream_xor
  • sodium_hex2bin »
  • PHP Manual
  • Sodium Fonctions
  • Generate a deterministic sequence of bytes from a seed

sodium_crypto_stream

(PHP 7 >= 7.2.0, PHP 8)

sodium_crypto_stream — Generate a deterministic sequence of bytes from a seed

Description

sodium_crypto_stream(int $length, string $nonce, string $key): string

Generate a deterministic sequence of bytes from a seed, using the XSalsa20 stream cipher.

Liste de paramètres

length

The number of bytes to return.

nonce

A number that must be only used once, per message. 24 bytes long. This is a large enough bound to generate randomly (i.e. random_bytes()).

key

Encryption key (256-bit).

Valeurs de retour

String of pseudorandom bytes.


Decodes a hexadecimally encoded binary string

  • « sodium_crypto_stream
  • sodium_increment »
  • PHP Manual
  • Sodium Fonctions
  • Decodes a hexadecimally encoded binary string

sodium_hex2bin

(PHP 7 >= 7.2.0, PHP 8)

sodium_hex2bin — Decodes a hexadecimally encoded binary string

Description

sodium_hex2bin(string $string, string $ignore = ""): string

Decodes a hexadecimally encoded binary string.

Like sodium_bin2hex(), sodium_hex2bin() is resistant to side-channel attacks while hex2bin() is not.

Liste de paramètres

string

Hexadecimal representation of data.

ignore

Optional string argument for characters to ignore.

Valeurs de retour

Returns the binary representation of the given string data.


Increment large number

  • « sodium_hex2bin
  • sodium_memcmp »
  • PHP Manual
  • Sodium Fonctions
  • Increment large number

sodium_increment

(PHP 7 >= 7.2.0, PHP 8)

sodium_increment — Increment large number

Description

sodium_increment(string &$string): void

Treat the string as a little-endian unsigned integer, then increase it by 1. Constant-time.

Liste de paramètres

string

String to increment.

Valeurs de retour

Aucune valeur n'est retournée.


Test for equality in constant-time

  • « sodium_increment
  • sodium_memzero »
  • PHP Manual
  • Sodium Fonctions
  • Test for equality in constant-time

sodium_memcmp

(PHP 7 >= 7.2.0, PHP 8)

sodium_memcmp — Test for equality in constant-time

Description

sodium_memcmp(string $string1, string $string2): int

Compare two strings in constant-time.

In practice, you almost always want to use hash_equals() instead, since it provides the same logic but returns a bool instead of an int. However, if you're using the return value of a comparison in a calculation that's timing-sensitive, and worried about timing leaks with bool-to-int conversions, sodium_memcmp() is an ideal replacement.

Liste de paramètres

string1

String to compare

string2

Other string to compare

Valeurs de retour

Returns 0 if both strings are equal; -1 otherwise.


Overwrite a string with NUL characters

  • « sodium_memcmp
  • sodium_pad »
  • PHP Manual
  • Sodium Fonctions
  • Overwrite a string with NUL characters

sodium_memzero

(PHP 7 >= 7.2.0, PHP 8)

sodium_memzero — Overwrite a string with NUL characters

Description

sodium_memzero(string &$string): void

sodium_memzero() zeroes out the string that is passed by reference.

Liste de paramètres

string

String.

Valeurs de retour

Aucune valeur n'est retournée.


Add padding data

  • « sodium_memzero
  • sodium_unpad »
  • PHP Manual
  • Sodium Fonctions
  • Add padding data

sodium_pad

(PHP 7 >= 7.2.0, PHP 8)

sodium_pad — Add padding data

Description

sodium_pad(string $string, int $block_size): string

Right-pad a string to a desired length. Timing-safe.

Liste de paramètres

string

Unpadded string.

block_size

The string will be padded until it is an even multiple of the block size.

Valeurs de retour

Padded string.


Remove padding data

  • « sodium_pad
  • SodiumException »
  • PHP Manual
  • Sodium Fonctions
  • Remove padding data

sodium_unpad

(PHP 7 >= 7.2.0, PHP 8)

sodium_unpad — Remove padding data

Description

sodium_unpad(string $string, int $block_size): string

Unpad a padded string. Timing-safe.

Liste de paramètres

string

Padded string.

block_size

The block size for padding.

Valeurs de retour

Unpadded string.


La classe SodiumException

(PHP 7 >= 7.2.0, PHP 8)

Introduction

Exception lancé par les fonctions sodium.

Synopsis de la classe

class SodiumException extends Exception {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Extensions sur les bases de données

  • Interface d'abstraction
    • DBA — Couche d'abstraction de base de données (style dbm)
    • ODBC — ODBC (Unifié)
    • PDO — PHP Data Objects
  • Extensions spécifiques des fabricants de bases de données
    • CUBRID
    • dBase
    • Firebird/InterBase
    • IBM DB2 — Fonctions IBM DB2, Cloudscape et Apache Derby
    • MongoDB — MongoDB driver
    • MySQL — Plugins et drivers MySQL
    • OCI8 — Oracle OCI8
    • PostgreSQL
    • SQLite3
    • SQLSRV — Driver Microsoft SQL Server pour PHP


Interface d'abstraction

  • DBA — Couche d'abstraction de base de données (style dbm)
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions DBA
  • 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
    • PDORow — La classe PDORow
    • 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 peut être utilisée avec BDB 5 à partir de 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. Nous supportons également l'écriture (et non la mise à jour) via la bibliothèque interne cdb.
cdb_make | Nous supportons l'écriture (et non la mise à jour) des fichiers cdb lorsque la bibliothèque cdb est utilisée.
flatfile | Ceci est disponible 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 | Ceci est disponible 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(), qui permet de convertir les clés en tableaux sans déperdition.
qdbm | La bibliothèque qdbm peut être téléchargée depuis » http://fallabs.com/qdbm/index.html.
tcadb | La bibliothèque Tokyo Cabinet peut être téléchargée depuis » http://fallabs.com/tokyocabinet/.
lmdb | Disponible depuis PHP 7.2.0. La bibliothèque Lightning Memory-Mapped Database peut être téléchargée depuis » https://symas.com/lmdb/.

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 ou --enable-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:

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:

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 --enable-flatfile. Antérieur à PHP 5.2.1 l'option --with-flatfile devait être utilisé à la place.

Note:

Ceci a été ajouté 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 --enable-inifile. Antérieur à PHP 5.2.1 l'option --with-inifile devait être utilisé à la place.

Note:

Cette option a été ajoutée pour permettre 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:

La bibliothèque qdbm peut être téléchargée depuis » http://fallabs.com/qdbm/index.html.

tcadb

Pour activer le support de Tokyo Cabinet, ajouter l'option de compilation --with-tcadb[=DIR].

Note:

La bibliothèque Tokyo Cabinet peut être téléchargée depuis » http://fallabs.com/tokyocabinet/.

lmdb

Pour activer le support de Lightning Memory-Mapped Database ajoutez l'option de configuration --with-lmdb[=DIR].

Note:

Ceci a été ajouté en PHP 7.2.0. La bibliothèque Lightning Memory-Mapped Database peut être téléchargée depuis » https://symas.com/lmdb/.


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 | 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.


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.

DBA_LMDB_USE_SUB_DIR (int)

Drapeau du pilote LMDB pour permettre la création d'un sous-répertoire pour les fichiers de base de données. Disponible à partir de PHP 8.2.0.

DBA_LMDB_NO_SUB_DIR (int)

Drapeau du pilote LMDB pour interdire la création d'un sous-répertoire pour les fichiers de base de données. Disponible à partir de PHP 8.2.0.


  • « 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, PHP 8)

dba_close — Ferme une base DBA

Description

dba_close(resource $dba): void

dba_close() ferme le lien établi avec la base de données et libère toutes les ressources de handle.

Liste de paramètres

dba

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, PHP 8)

dba_delete — Efface une ligne dans une base DBA

Description

dba_delete(string|array $key, resource $dba): bool

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.

dba

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, PHP 8)

dba_exists — Vérifie qu'une clé DBA existe

Description

dba_exists(string|array $key, resource $dba): bool

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.

dba

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, PHP 8)

dba_fetch — Lit les données liées à une clé DBA

Description

dba_fetch(string|array $key, resource $dba, int $skip = 0): string|false

Signature surchargée obsolète à partir de 8.3.0 :

dba_fetch(string|array $key, int $skip, resource $dba): string

dba_fetch() lit les données spécifiées par la clé key dans la base identifiée par dba.

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().

dba

Le gestionnaire de base de données retourné par la fonction dba_open() ou dba_popen().

skip

Le nombre de paires clé-valeur à ignorer lors de l'utilisation de bases de données cdb. Cette valeur est ignorée pour toutes les autres bases de données qui ne prennent pas en charge les clés multiples avec le même nom.

Valeurs de retour

Retourne la chaîne associée si la paire clé/valeur est trouvée, false sinon.

Historique

Version | Description
8.3.0 | L'appel de dba_fetch() avec dba comme troisième argument est désormais obsolète.
8.2.0 | L'argument facultatif "skip" de la fonction dba_fetch() est maintenant placé à la fin, conformément à la sémantique PHP côté utilisateur. La signature précédemment surchargée est toujours acceptée mais déconseillée.

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, PHP 8)

dba_firstkey — Lit la première clé DBA

Description

dba_firstkey(resource $dba): string|false

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

dba

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, PHP 8)

dba_handlers — Liste les gestionnaires DBA disponibles

Description

dba_handlers(bool $full_info = false): array

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";
}

?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

dba_insert — Insère une entrée DBA

Description

dba_insert(string|array $key, string $value, resource $dba): bool

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.

dba

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, PHP 8)

dba_key_split — Transforme une représentation de clé DBA par chaîne en une représentation par tableau

Description

dba_key_split(string|false|null $key): array|false

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, PHP 8)

dba_list — Liste tous les fichiers de bases de données DBA ouverts

Description

dba_list(): array

dba_list() liste tous les fichiers de bases de données DBA ouverts.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

dba_nextkey — Lit la clé DBA suivante

Description

dba_nextkey(resource $dba): string|false

dba_nextkey() retourne la clé suivante, dans la base identifiée par handle et incrémente le pointeur de clé.

Liste de paramètres

dba

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, PHP 8)

dba_open — Ouvre une base de données DBA

Description

dba_open(
string $path,
string $mode,
?string $handler = null,
int $permission = 0644,
int $map_size = 0,
?int $flags = null
): resource|false

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. Si le paramètre handler est null, alors le gestionnaire par défaut est invoqué.

permission

Paramètre facultatif de type entier qui est passé au pilote. Il a la même signification que le paramètre permissions de la fonction chmod(), et a une valeur par défaut de 0644.

Les pilotes db1, db2, db3, db4, dbm, gdbm, Les pilotes ndbm et lmdb prennent en charge le paramètre permission.

Le pilote lmdb supporte deux paramètres additionels. Le premier permet de définir le $filemode (voir description ci-dessus), et le second permet de définir la $mapsize, dont la valeur devrait être un multiple de la taille de page du système d'exploitation, ou zéro pour utiliser la mapsize par défaut. La paramètre $mapsize est supporté à partir de PHP 7.3.14 et 7.4.2, respectivement.

map_size

Paramètre facultatif de type entier qui est passé au pilote. Sa valeur doit être un multiple de la taille de page du système d'exploitation, ou zéro pour utiliser la taille de mappage par défaut.

Seul le pilote lmdb accepte le paramètre map_size.

flags

Drapeaux à passer aux pilotes de base de données. Si null, les drapeaux par défaut seront fournis. Actuellement, seul le pilote LMDB prend en charge les drapeaux suivants : DBA_LMDB_USE_SUB_DIR et DBA_LMDB_NO_SUB_DIR.

Erreurs / Exceptions

false est retourné et une erreur de niveau E_WARNING est émise lorsque le paramètre handler est null, mais qu'aucun gestionnaire par défaut n'est disponible.

Valeurs de retour

Retourne un gestionnaire positif en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.2.0 | Le paramètre flags est ajouté.
8.2.0 | Le paramètre handler est désormais nullable.
7.3.14, 7.4.2 | Le pilote lmdb supporte désormais un paramètre additionel map_size.

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, PHP 8)

dba_optimize — Optimise une base DBA

Description

dba_optimize(resource $dba): bool

dba_optimize() optimise la base de données identifiée par handle.

Liste de paramètres

dba

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, PHP 8)

dba_popen — Ouvre une connexion persistante à une base de données DBA

Description

dba_popen(
string $path,
string $mode,
?string $handler = null,
int $permission = 0644,
int $map_size = 0,
?int $flags = null
): resource|false

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(). Si le paramètre handler est null, alors le gestionnaire par défaut est invoqué.

permission

Paramètre optionnel de type entier (entier) qui est passé au pilote. Il a la même signification que le paramètre permissions de la fonction chmod(), et sa valeur par défaut est 0644.

Les pilotes db1, db2, db3, db4, dbm, gdbm, ndbm et lmdb prennent en charge le paramètre permission.

map_size

Paramètre optionnel de type entier qui est passé au pilote. Sa valeur doit être un multiple de la taille de page du système d'exploitation, ou zéro pour utiliser la taille de mappe par défaut.

Le pilote lmdb accepte le paramètre map_size.

flags

Permet de passer des drapeaux aux pilotes de base de données. Actuellement, seul le pilote LMDB avec les drapeaux DBA_LMDB_USE_SUB_DIR et DBA_LMDB_NO_SUB_DIR est pris en charge.

Valeurs de retour

Retourne un gestionnaire positif en cas de succès ou false si une erreur survient.

Erreurs / Exceptions

La valeur false est renvoyée et une erreur de niveau E_WARNING est émise lorsque le paramètre handler est null, mais qu'aucun gestionnaire par défaut n'est disponible.

Historique

Version | Description
8.2.0 | Le paramètre flags a été ajouté.
8.2.0 | Le paramètre handler est désormais nullable.
7.3.14, 7.4.2 | Le pilote lmdb supporte désormais un paramètre additionel map_size.

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, PHP 8)

dba_replace — Remplace ou insère une ligne DBA

Description

dba_replace(string|array $key, string $value, resource $dba): bool

dba_replace() remplace ou insère une entrée, pour la clé key et avec la valeur value dans la base identifiée par dba.

Liste de paramètres

key

La clé de l'entrée à remplacer.

value

La valeur utilisée pour le remplacement.

dba

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
  • ODBC »
  • PHP Manual
  • Fonctions DBA
  • Synchronise une base de données DBA

dba_sync

(PHP 4, PHP 5, PHP 7, PHP 8)

dba_sync — Synchronise une base de données DBA

Description

dba_sync(resource $dba): bool

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

dba

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


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_connection_string_is_quoted — Determines if an ODBC connection string value is quoted
    • odbc_connection_string_quote — Quotes an ODBC connection string value
    • odbc_connection_string_should_quote — Determines if an ODBC connection string value should be quoted
    • odbc_cursor — Lit le nom du pointeur de résultat courant
    • odbc_data_source — Retourne des informations sur les DSNs disponibles
    • odbc_do — Alias de odbc_exec
    • odbc_error — Lit le dernier code d'erreur
    • odbc_errormsg — Lit le dernier message d'erreur
    • odbc_exec — Exécute directement 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:

Mis à 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).

Les utilisateurs Windows doivent activer php_odbc.dll afin d'utiliser cette extension.


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 | INI_ALL |
odbc.default_user * | NULL | INI_ALL |
odbc.default_pw * | NULL | INI_ALL |
odbc.allow_persistent | "1" | INI_SYSTEM |
odbc.check_persistent | "1" | INI_SYSTEM |
odbc.max_persistent | "-1" | INI_SYSTEM |
odbc.max_links | "-1" | INI_SYSTEM |
odbc.defaultlrl | "4096" | INI_ALL |
odbc.defaultbinmode | "1" | INI_ALL |
odbc.default_cursortype | "3" | INI_ALL |

Note: Les entrées marquées avec une étoile ne sont pas encore implémentées.

Pour plus de détails sur les modes 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 string

La source de données ODBC si aucune n'est spécifiée dans les fonctions odbc_connect() ou odbc_pconnect().

odbc.default_user string

Nom d'utilisateur à utiliser si aucun n'est spécifié dans les fonctions odbc_connect() ou odbc_pconnect().

odbc.default_pw string

Mot de passe à utiliser si aucun n'est spécifié dans les fonctions odbc_connect() ou odbc_pconnect().

odbc.allow_persistent bool

Est-ce que les connexions ODBC persistantes sont autorisées ou pas ?

odbc.check_persistent bool

Vérifie que la connexion est valide avant de l'utiliser.

odbc.max_persistent int

Nombre maximum de connexions persistantes par processus.

odbc.max_links int

Le nombre maximum de connexions ODBC par processus, y compris les connexions persistantes.

odbc.defaultlrl int

Gestion des champs de type LONG. Spécifie le nombre d'octets retournés dans les variables. Voir odbc_longreadlen() pour plus d'information.

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 int

Gestion des données binaires. Voir odbc_binmode() pour plus d'information.

odbc.default_cursortype int

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 (string)
ODBC_BINMODE_PASSTHRU (int)
ODBC_BINMODE_RETURN (int)
ODBC_BINMODE_CONVERT (int)
SQL_ODBC_CURSORS (int)
SQL_CUR_USE_DRIVER (int)
SQL_CUR_USE_IF_NEEDED (int)
SQL_CUR_USE_ODBC (int)
SQL_CONCURRENCY (int)
SQL_CONCUR_READ_ONLY (int)
SQL_CONCUR_LOCK (int)
SQL_CONCUR_ROWVER (int)
SQL_CONCUR_VALUES (int)
SQL_CURSOR_TYPE (int)
SQL_CURSOR_FORWARD_ONLY (int)
SQL_CURSOR_KEYSET_DRIVEN (int)
SQL_CURSOR_DYNAMIC (int)
SQL_CURSOR_STATIC (int)
SQL_KEYSET_SIZE (int)
SQL_CHAR (int)
SQL_VARCHAR (int)
SQL_LONGVARCHAR (int)
SQL_DECIMAL (int)
SQL_NUMERIC (int)
SQL_BIT (int)
SQL_TINYINT (int)
SQL_SMALLINT (int)
SQL_INTEGER (int)
SQL_BIGINT (int)
SQL_REAL (int)
SQL_FLOAT (int)
SQL_DOUBLE (int)
SQL_BINARY (int)
SQL_VARBINARY (int)
SQL_LONGVARBINARY (int)
SQL_DATE (int)
SQL_TIME (int)
SQL_TIMESTAMP (int)
SQL_TYPE_DATE (int)
SQL_TYPE_TIME (int)
SQL_TYPE_TIMESTAMP (int)
SQL_BEST_ROWID (int)
SQL_ROWVER (int)
SQL_SCOPE_CURROW (int)
SQL_SCOPE_TRANSACTION (int)
SQL_SCOPE_SESSION (int)
SQL_NO_NULLS (int)
SQL_NULLABLE (int)
SQL_INDEX_UNIQUE (int)
SQL_INDEX_ALL (int)
SQL_ENSURE (int)
SQL_QUICK (int)


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_connection_string_is_quoted — Determines if an ODBC connection string value is quoted
  • odbc_connection_string_quote — Quotes an ODBC connection string value
  • odbc_connection_string_should_quote — Determines if an ODBC connection string value should be quoted
  • odbc_cursor — Lit le nom du pointeur de résultat courant
  • odbc_data_source — Retourne des informations sur les DSNs disponibles
  • odbc_do — Alias de odbc_exec
  • odbc_error — Lit le dernier code d'erreur
  • odbc_errormsg — Lit le dernier message d'erreur
  • odbc_exec — Exécute directement 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, PHP 8)

odbc_autocommit — Active le mode d'autovalidation

Description

odbc_autocommit(resource $odbc, bool $enable = null): int|bool

Sans le paramètre enable, 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

odbc

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

enable

Si enable vaut true, l'autovalidation est activée. S'il est false, l'autovalidation est désactivée. Si null est passé, cette fonction renvoie le statut d'auto-engagement pour odbc.

Valeurs de retour

Sans le paramètre enable, odbc_autocommit() retourne le statut d'autovalidation de la connexion odbc. 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 enable est défini, cette fonction retourne true en cas de succès,et false si une erreur survient.

Historique

Version | Description
8.3.0 | enable est désormais nullable.

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, PHP 8)

odbc_binmode — Modifie la gestion des colonnes de données binaires

Description

odbc_binmode(resource $statement, int $mode): bool

odbc_binmode() contrôle la gestion des colonnes de données binaires. Les types ODBC SQL affectés sont BINARY, VARBINARY et LONGVARBINARY. Le mode par défaut peut être définie en utilisant la directive php.ini uodbc.defaultbinmode

Lorsqu'une donnée SQL est convertie en caractère C, (ODBC_BINMODE_CONVERT) 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".

Alors que la gestion des colonnes BINARY et VARBINARY dépendent uniquement du binmode, la gestion des colonnes LONGVARBINARY dépend aussi de longreadlen, comme ceci :

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_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. Si la fonction odbc_result() est utilisée, passthru signifie que les données sont envoyés directement au client (i.e. imprimé).

Liste de paramètres

statement

L'identifiant de résultat.

Si statement vaut 0, ces paramètres seront appliqués aux nouveaux résultats.

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

Note: La gestion des colonnes de type binary long est aussi affectée par la fonction odbc_longreadlen().

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, PHP 8)

odbc_close_all — Ferme toutes les connexions ODBC

Description

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, PHP 8)

odbc_close — Ferme une connexion ODBC

Description

odbc_close(resource $odbc): void

Ferme la connexion avec la source de données représentée par l'identifiant de connexion connection_id.

Liste de paramètres

odbc

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, PHP 8)

odbc_columnprivileges — Liste les colonnes et leurs droits associés

Description

odbc_columnprivileges(
resource $odbc,
?string $catalog,
string $schema,
string $table,
string $column
): resource|false

Liste les colonnes et leurs droits associés.

Liste de paramètres

odbc

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

catalog

Le catalogue ('calificatif' dans le jargon ODBC 2).

schema

Le schéma ('propriétaire' dans le jargon ODBC 2). Ce paramètre accepte les masques de recherche suivants : % pour chercher zéro ou plusieurs caractères, et _ pour chercher un seul caractère.

table

Le nom de la table. 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

Le nom de 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 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_CAT
  • TABLE_SCHEM
  • TABLE_NAME
  • COLUMN_NAME
  • GRANTOR
  • GRANTEE
  • PRIVILEGE
  • IS_GRANTABLE
Les pilotes peuvent signaler des colonnes supplémentaires.

Le jeu de résultat est ordonné par TABLE_CAT, TABLE_SCHEM, TABLE_NAME, COLUMN_NAME et PRIVILEGE.

Exemples

Exemple #1 Lister les Priviléges pour une Colonne

<?php
$conn = odbc_connect($dsn, $user, $pass);
$privileges = odbc_columnprivileges($conn, 'TutorialDB', 'dbo', 'test', 'id');
while (($row = odbc_fetch_array($privileges))) {
print_r($row);
break; // further rows omitted for brevity
}
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [TABLE_CAT] => TutorialDB
    [TABLE_SCHEM] => dbo
    [TABLE_NAME] => test
    [COLUMN_NAME] => id
    [GRANTOR] => dbo
    [GRANTEE] => dbo
    [PRIVILEGE] => INSERT
    [IS_GRANTABLE] => YES
)


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, PHP 8)

odbc_columns — Liste les colonnes d'une table

Description

odbc_columns(
resource $odbc,
?string $catalog = null,
?string $schema = null,
?string $table = null,
?string $column = null
): resource|false

Liste les colonnes d'une table.

Liste de paramètres

odbc

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

catalog

Le catalogue ('calificatif' dans le jargon ODBC 2).

schema

Le schéma ('propriétaire' dans le jargon ODBC 2). Ce paramètre accepte les masques de recherche suivants : % pour chercher zéro ou plusieurs caractères, et _ pour chercher un seul caractère.

table

Le nom de la table. 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

Le nom de 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 un identifiant de résultat ODBC ou false si une erreur survient.

Le jeu de résultat contient les colonnes suivantes :

  • TABLE_CAT
  • TABLE_SCHEM
  • TABLE_NAME
  • COLUMN_NAME
  • DATA_TYPE
  • TYPE_NAME
  • COLUMN_SIZE
  • BUFFER_LENGTH
  • DECIMAL_DIGITS
  • NUM_PREC_RADIX
  • NULLABLE
  • REMARKS
  • COLUMN_DEF
  • SQL_DATA_TYPE
  • SQL_DATETIME_SUB
  • CHAR_OCTET_LENGTH
  • ORDINAL_POSITION
  • IS_NULLABLE
Les pilotes peuvent signaler des colonnes supplémentaires.

Le jeu de résultat est ordonné par TABLE_CAT, TABLE_SCHEM, TABLE_NAME et ORDINAL_POSITION.

Historique

Version | Description
8.0.0 | schema, table and column are now nullable.

Exemples

Exemple #1 Lister les Colonnes d'une Table

<?php
$conn = odbc_connect($dsn, $user, $pass);
$columns = odbc_columns($conn, 'TutorialDB', 'dbo', 'test', '%');
while (($row = odbc_fetch_array($columns))) {
print_r($row);
break; // further rows omitted for brevity
}
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [TABLE_CAT] => TutorialDB
    [TABLE_SCHEM] => dbo
    [TABLE_NAME] => TEST
    [COLUMN_NAME] => id
    [DATA_TYPE] => 4
    [TYPE_NAME] => int
    [COLUMN_SIZE] => 10
    [BUFFER_LENGTH] => 4
    [DECIMAL_DIGITS] => 0
    [NUM_PREC_RADIX] => 10
    [NULLABLE] => 0
    [REMARKS] =>
    [COLUMN_DEF] =>
    [SQL_DATA_TYPE] => 4
    [SQL_DATETIME_SUB] =>
    [CHAR_OCTET_LENGTH] =>
    [ORDINAL_POSITION] => 1
    [IS_NULLABLE] => NO
)

Voir aussi

  • odbc_columnprivileges() - Liste les colonnes et leurs droits associés
  • odbc_procedurecolumns() - Liste les paramètres des procédures


Valide une transaction ODBC

  • « odbc_columns
  • odbc_connect »
  • PHP Manual
  • Fonctions ODBC
  • Valide une transaction ODBC

odbc_commit

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_commit — Valide une transaction ODBC

Description

odbc_commit(resource $odbc): bool

Valide toutes les transactions en cours sur la connexion connection_id.

Liste de paramètres

odbc

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_connection_string_is_quoted »
  • PHP Manual
  • Fonctions ODBC
  • Connexion à une source

odbc_connect

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_connect — Connexion à une source

Description

odbc_connect(
string $dsn,
string $user,
string $password,
int $cursor_option = SQL_CUR_USE_DRIVER
): resource|false

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_option

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


Determines if an ODBC connection string value is quoted

  • « odbc_connect
  • odbc_connection_string_quote »
  • PHP Manual
  • Fonctions ODBC
  • Determines if an ODBC connection string value is quoted

odbc_connection_string_is_quoted

(PHP 8 >= 8.2.0)

odbc_connection_string_is_quoted — Determines if an ODBC connection string value is quoted

Description

odbc_connection_string_is_quoted(string $str): bool

Determines if a string is properly quoted for an ODBC connection string value. ODBC connection string quoting is performed using curly braces, and ending braces within a string must be escaped through repeating them twice, similar to SQL quoting.

Liste de paramètres

str

The string to check for quoting.

Valeurs de retour

true if quoted properly, false if not.

Voir aussi

  • odbc_connection_string_quote() - Quotes an ODBC connection string value
  • odbc_connection_string_should_quote() - Determines if an ODBC connection string value should be quoted


Quotes an ODBC connection string value

  • « odbc_connection_string_is_quoted
  • odbc_connection_string_should_quote »
  • PHP Manual
  • Fonctions ODBC
  • Quotes an ODBC connection string value

odbc_connection_string_quote

(PHP 8 >= 8.2.0)

odbc_connection_string_quote — Quotes an ODBC connection string value

Description

odbc_connection_string_quote(string $str): string

Quotes a value for a connection string, according to ODBC rules. That is, it will be surrounded by quotes, and any ending curly braces will be escaped. This should be done for any connection string values that come from user input. Not doing so can lead to issues with parsing the connection string, or values being injected into the connection string.

Note that this function does not check if the string is already quoted, nor if the string needs quoting. For that, call odbc_connection_string_is_quoted() and odbc_connection_string_should_quote().

Liste de paramètres

str

The unquoted string.

Valeurs de retour

A quoted string, surrounded by curly braces, and properly escaped.

Exemples

Exemple #1 odbc_connection_string_quote() example

This example quotes a string, then puts it in a connection string. Note that the string is quoted, and the ending quote character in the middle of the string has been escaped.

<?php
$value = odbc_connection_string_quote("foo}bar");
$connection_string = "DSN=PHP;UserValue=$value";
echo $connection_string;
?>

Résultat de l'exemple ci-dessus est similaire à :

DSN=PHP;UserValue={foo}}bar}

Voir aussi

  • odbc_connection_string_is_quoted() - Determines if an ODBC connection string value is quoted
  • odbc_connection_string_should_quote() - Determines if an ODBC connection string value should be quoted


Determines if an ODBC connection string value should be quoted

  • « odbc_connection_string_quote
  • odbc_cursor »
  • PHP Manual
  • Fonctions ODBC
  • Determines if an ODBC connection string value should be quoted

odbc_connection_string_should_quote

(PHP 8 >= 8.2.0)

odbc_connection_string_should_quote — Determines if an ODBC connection string value should be quoted

Description

odbc_connection_string_should_quote(string $str): bool

Determines if a string needs to be quoted for an ODBC connection string value; that is, if it contains special characters.

Note that this does not check if the string is already quoted; an already quoted string will contain characters that will make this function return true. You should call odbc_connection_string_is_quoted() to check.

Liste de paramètres

str

The string to check for.

Valeurs de retour

true if the string should be quoted; false otherwise.

Voir aussi

  • odbc_connection_string_quote() - Quotes an ODBC connection string value
  • odbc_connection_string_is_quoted() - Determines if an ODBC connection string value is quoted


Lit le nom du pointeur de résultat courant

  • « odbc_connection_string_should_quote
  • odbc_data_source »
  • PHP Manual
  • Fonctions ODBC
  • Lit le nom du pointeur de résultat courant

odbc_cursor

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_cursor — Lit le nom du pointeur de résultat courant

Description

odbc_cursor(resource $statement): string|false

odbc_cursor() lit le nom du pointeur de résultat courant pour le résultat result_id.

Liste de paramètres

statement

La ressource de résultat.

Valeurs de retour

Retourne le nom du curseur, sous forme d'une chaîne de caractères, ou false si une erreur survient.


Retourne des informations sur les DSNs disponibles

  • « odbc_cursor
  • odbc_do »
  • PHP Manual
  • Fonctions ODBC
  • Retourne des informations sur les DSNs disponibles

odbc_data_source

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

odbc_data_source — Retourne des informations sur les DSNs disponibles

Description

odbc_data_source(resource $odbc, int $fetch_type): array|false

Retourne une liste de DSN disponibles (après l'avoir appelée plusieurs fois).

Liste de paramètres

odbc

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 en cas de succès, et null après avoir récupéré le dernier DSN disponible.

Exemples

Exemple #1 Lister les DSNs disponibles

<?php
$conn = odbc_connect('dsn', 'user', 'pass');
$dsn_info = odbc_data_source($conn, SQL_FETCH_FIRST);
while ($dsn_info) {
print_r($dsn_info);
$dsn_info = odbc_data_source($conn, SQL_FETCH_NEXT);
}
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [server] => dsn
    [description] => ODBC Driver 17 for SQL Server
)
Array
(
    [server] => other_dsn
    [description] => Microsoft Access Driver (*.mdb, *.accdb)
)


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, PHP 8)

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, PHP 8)

odbc_error — Lit le dernier code d'erreur

Description

odbc_error(?resource $odbc = null): string

Retourne un état ODBC sur 6 chiffres, ou une chaîne vide s'il n'y avait plus d'erreurs.

Liste de paramètres

odbc

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

Valeurs de retour

Si odbc 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).

Historique

Version | Description
8.0.0 | odbc is nullable now.

Voir aussi

  • odbc_errormsg() - Lit le dernier message d'erreur
  • odbc_exec() - Exécute directement 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, PHP 8)

odbc_errormsg — Lit le dernier message d'erreur

Description

odbc_errormsg(?resource $odbc = null): string

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

odbc

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

Valeurs de retour

Si odbc 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).

Historique

Version | Description
8.0.0 | odbc is nullable now.

Voir aussi

  • odbc_error() - Lit le dernier code d'erreur
  • odbc_exec() - Exécute directement une requête SQL


Exécute directement une requête SQL

  • « odbc_errormsg
  • odbc_execute »
  • PHP Manual
  • Fonctions ODBC
  • Exécute directement une requête SQL

odbc_exec

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_exec — Exécute directement une requête SQL

Description

odbc_exec(resource $odbc, string $query): resource|false

odbc_exec() envoie une commande SQL à la source de données ODBC, représentée par connection_id.

Liste de paramètres

odbc

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

query

La requête SQL.

Valeurs de retour

Retourne une ressource de résultat ODBC en cas de succès, false si une erreur survient.

Historique

Version | Description
8.0.0 | flags was removed.

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, PHP 8)

odbc_execute — Exécute une requête SQL préparée

Description

odbc_execute(resource $statement, array $params = []): bool

Exécute une requête SQL préparée par odbc_prepare().

Liste de paramètres

statement

L'identifiant de résultat, depuis la fonction odbc_prepare().

params

Les valeurs du paramètre params 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 params 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 pour oci8 pour Oracle).

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, PHP 8)

odbc_fetch_array — Lit une ligne de résultat dans un tableau associatif

Description

odbc_fetch_array(resource $statement, int $row = -1): array|false

odbc_fetch_array() lit une ligne de résultat dans un tableau associatif depuis une requête ODBC.

Liste de paramètres

statement

La ressource de résultat depuis la fonction odbc_exec().

row

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, PHP 8)

odbc_fetch_into — Lit une ligne de résultat, et la place dans un tableau

Description

odbc_fetch_into(resource $statement, array &$array, int $row = 0): int|false

Lit une ligne de résultat, et la place dans un tableau.

Liste de paramètres

statement

La ressource de résultat.

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.

row

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, PHP 8)

odbc_fetch_object — Lit une ligne de résultat dans un objet

Description

odbc_fetch_object(resource $statement, int $row = -1): stdClass|false

odbc_fetch_object() lit une ligne de résultat dans un objet depuis une requête ODBC.

Liste de paramètres

statement

La ressource de résultat depuis la fonction odbc_exec().

row

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, PHP 8)

odbc_fetch_row — Lit une ligne de résultat

Description

odbc_fetch_row(resource $statement, ?int $row = null): bool

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

statement

L'identifiant de résultat.

row

Si row est omis, row 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 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 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.

Historique

Version | Description
8.0.0 | row is nullable now.


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, PHP 8)

odbc_field_len — Lit la longueur d'un champ

Description

odbc_field_len(resource $statement, int $field): int|false

Lit la longueur du champ identifié par son numéro.

Liste de paramètres

statement

L'identifiant de résultat.

field

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, PHP 8)

odbc_field_name — Lit le nom de la colonne

Description

odbc_field_name(resource $statement, int $field): string|false

Lit le nom de la colonne dont l'index est field_number.

Liste de paramètres

statement

L'identifiant de résultat.

field

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, PHP 8)

odbc_field_num — Numéro de colonne

Description

odbc_field_num(resource $statement, string $field): int|false

Lit le numéro de la colonne nommée field_name.

Liste de paramètres

statement

L'identifiant de résultat.

field

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, PHP 8)

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, PHP 8)

odbc_field_scale — Lit l'échelle d'un champ

Description

odbc_field_scale(resource $statement, int $field): int|false

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

statement

L'identifiant de résultat.

field

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, PHP 8)

odbc_field_type — Type de données d'un champ

Description

odbc_field_type(resource $statement, int $field): string|false

Lit le type de données SQL d'un champ, identifié par son numéro.

Liste de paramètres

statement

L'identifiant de résultat.

field

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, PHP 8)

odbc_foreignkeys — Liste les clés étrangères

Description

odbc_foreignkeys(
resource $odbc,
?string $pk_catalog,
string $pk_schema,
string $pk_table,
string $fk_catalog,
string $fk_schema,
string $fk_table
): resource|false

Liste les clés étrangères utilisées dans la table pk_table.

Liste de paramètres

odbc

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

fk_catalog

Le catalogue ('qualifier' en terminology ODBC 2) de la clé primaire de table.

pk_schema

Le schèma ('qualifier' en terminology ODBC 2) de la clé primaire de table.

pk_table

La clé primaire de la table The primary key table.

pk_catalog

Le catalogue ('qualifier' en terminology ODBC 2) de la clé étrangère de table.

fk_schema

Le schèma ('qualifier' en terminology ODBC 2) de la clé étrangère de table.

fk_table

La table de clé étrangère.

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 :

  • PKTABLE_CAT
  • PKTABLE_SCHEM
  • PKTABLE_NAME
  • PKCOLUMN_NAME
  • FKTABLE_CAT
  • FKTABLE_SCHEM
  • FKTABLE_NAME
  • FKCOLUMN_NAME
  • KEY_SEQ
  • UPDATE_RULE
  • DELETE_RULE
  • FK_NAME
  • PK_NAME
  • DEFERRABILITY
Les pilotes peuvent signaler des colonnes supplémentaires.

Si les clés étrangères associé avec une clé primaire sont demandées, le jeu de résultat est ordonné par FKTABLE_CAT, FKTABLE_SCHEM, FKTABLE_NAME et KEY_SEQ. Si les clés primaire associé avec une clé étrangère sont demandées, le jeu de résultat est ordonné par PKTABLE_CAT, PKTABLE_SCHEM, PKTABLE_NAME et KEY_SEQ.

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.

Voir aussi

  • odbc_tables() - Liste les tables d'une source
  • odbc_primarykeys() - Liste les colonnes utilisées dans une clé primaire


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, PHP 8)

odbc_free_result — Libère les ressources associées à un résultat

Description

odbc_free_result(resource $statement): bool

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

statement

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, PHP 8)

odbc_gettypeinfo — Liste les types de données supportés par une source

Description

odbc_gettypeinfo(resource $odbc, int $data_type = 0): resource|false

Liste les types de données supportés par une source.

Liste de paramètres

odbc

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, PHP 8)

odbc_longreadlen — Gestion des colonnes de type LONG

Description

odbc_longreadlen(resource $statement, int $length): bool

Active la gestion des colonnes de type LONG et LONGVARCHAR et LONGVARBINARY. La longeur par défaut peut être définie en utilisant la directive php.ini uodbc.defaultlrl

Liste de paramètres

statement

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 (i.e. imprimé) lorsqu'elles sont récupérées avec la fonction odbc_result().

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, PHP 8)

odbc_next_result — Vérifie si plusieurs résultats sont disponibles

Description

odbc_next_result(resource $statement): bool

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

statement

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, PHP 8)

odbc_num_fields — Nombre de colonnes dans un résultat

Description

odbc_num_fields(resource $statement): int

Récupère le nombre de colonnes dans un résultat ODBC.

Liste de paramètres

statement

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, PHP 8)

odbc_num_rows — Nombre de lignes dans un résultat

Description

odbc_num_rows(resource $statement): int

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

statement

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, PHP 8)

odbc_pconnect — Ouvre une connexion persistante à une source de données

Description

odbc_pconnect(
string $dsn,
string $user,
string $password,
int $cursor_option = SQL_CUR_USE_DRIVER
): resource|false

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 une connexion ODBC, ou 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, PHP 8)

odbc_prepare — Prépare une commande pour l'exécution

Description

odbc_prepare(resource $odbc, string $query): resource|false

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

odbc

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

query

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 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, PHP 8)

odbc_primarykeys — Liste les colonnes utilisées dans une clé primaire

Description

odbc_primarykeys(
resource $odbc,
?string $catalog,
string $schema,
string $table
): resource|false

Liste les colonnes utilisées dans une clé primaire de la table table.

Liste de paramètres

odbc

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

catalog

Le catalogue ('calificatif' dans le jargon ODBC 2).

schema

Le schéma ('propriétaire' dans le jargon ODBC 2).

table

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_CAT
  • TABLE_SCHEM
  • TABLE_NAME
  • COLUMN_NAME
  • KEY_SEQ
  • PK_NAME
Les pilotes peuvent signaler des colonnes supplémentaires.

Le jeu de résultat est ordonné par TABLE_CAT, TABLE_SCHEM, TABLE_NAME et KEY_SEQ.

Exemples

Exemple #1 Lister les Clés primaire d'une Colonne

<?php
$conn = odbc_connect($dsn, $user, $pass);
$primarykeys = odbc_primarykeys($conn, 'TutorialDB', 'dbo', 'TEST');
while (($row = odbc_fetch_array($primarykeys))) {
print_r($row);
break; // further rows omitted for brevity
}
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [TABLE_CAT] => TutorialDB
    [TABLE_SCHEM] => dbo
    [TABLE_NAME] => TEST
    [COLUMN_NAME] => id
    [KEY_SEQ] => 1
    [PK_NAME] => PK__TEST__3213E83FE141F843
)

Voir aussi

  • odbc_tables() - Liste les tables d'une source
  • odbc_foreignkeys() - Liste les clés étrangères


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, PHP 8)

odbc_procedurecolumns — Liste les paramètres des procédures

Description

odbc_procedurecolumns(
resource $odbc,
?string $catalog = null,
?string $schema = null,
?string $procedure = null,
?string $column = null
): resource|false

Liste les paramètres des procédures.

Liste de paramètres

odbc

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

catalog

Le catalogue ('calificatif' dans le jargon ODBC 2).

schema

Le schéma ('propriétaire' dans le jargon ODBC 2). Ce paramètre accepte les masques de recherche suivants : % pour chercher zéro ou plusieurs caractères, et _ pour chercher un seul caractère.

procedure

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 jeu de résultat contient les colonnes suivantes :

  • PROCEDURE_CAT
  • PROCEDURE_SCHEM
  • PROCEDURE_NAME
  • COLUMN_NAME
  • COLUMN_TYPE
  • DATA_TYPE
  • TYPE_NAME
  • COLUMN_SIZE
  • BUFFER_LENGTH
  • DECIMAL_DIGITS
  • NUM_PREC_RADIX
  • NULLABLE
  • REMARKS
  • COLUMN_DEF
  • SQL_DATA_TYPE
  • SQL_DATETIME_SUB
  • CHAR_OCTET_LENGTH
  • ORDINAL_POSITION
  • IS_NULLABLE
Les pilotes peuvent signaler des colonnes supplémentaires.

Le jeu de résultat est ordonné par PROCEDURE_CAT, PROCEDURE_SCHEM, PROCEDURE_NAME et COLUMN_TYPE.

Historique

Version | Description
8.0.0 | Prior to this version, the function could only be called with either one or five arguments.

Exemples

Exemple #1 Liste les Colonnes d'une Procédure Stocké

<?php
$conn = odbc_connect($dsn, $user, $pass);
$columns = odbc_procedurecolumns($conn, 'TutorialDB', 'dbo', 'GetEmployeeSalesYTD;1', '%');
while (($row = odbc_fetch_array($columns))) {
print_r($row);
break; // further rows omitted for brevity
}
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [PROCEDURE_CAT] => TutorialDB
    [PROCEDURE_SCHEM] => dbo
    [PROCEDURE_NAME] => GetEmployeeSalesYTD;1
    [COLUMN_NAME] => @SalesPerson
    [COLUMN_TYPE] => 1
    [DATA_TYPE] => -9
    [TYPE_NAME] => nvarchar
    [COLUMN_SIZE] => 50
    [BUFFER_LENGTH] => 100
    [DECIMAL_DIGITS] =>
    [NUM_PREC_RADIX] =>
    [NULLABLE] => 1
    [REMARKS] =>
    [COLUMN_DEF] =>
    [SQL_DATA_TYPE] => -9
    [SQL_DATETIME_SUB] =>
    [CHAR_OCTET_LENGTH] => 100
    [ORDINAL_POSITION] => 1
    [IS_NULLABLE] => YES
)

Voir aussi

  • odbc_columns() - Liste les colonnes d'une table


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, PHP 8)

odbc_procedures — Liste les procédures stockées

Description

odbc_procedures(
resource $odbc,
?string $catalog = null,
?string $schema = null,
?string $procedure = null
): resource|false

Liste les procédures stockées.

Liste de paramètres

odbc

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

catalog

Le catalogue ('calificatif' dans le jargon ODBC 2).

schema

Le schéma ('propriétaire' dans le jargon ODBC 2). Ce paramètre accepte les masques de recherche suivants : % pour chercher zéro ou plusieurs caractères, et _ pour chercher un seul caractère.

procedure

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 jeu de résultat contient les colonnes suivantes :

  • PROCEDURE_CAT
  • PROCEDURE_SCHEM
  • PROCEDURE_NAME
  • NUM_INPUT_PARAMS
  • NUM_OUTPUT_PARAMS
  • NUM_RESULT_SETS
  • REMARKS
  • PROCEDURE_TYPE
Les pilotes peuvent signaler des colonnes supplémentaires.

Le jeu de résultat est ordonné par PROCEDURE_CAT, PROCEDURE_SCHEMA et PROCEDURE_NAME.

Historique

Version | Description
8.0.0 | Prior to this version, the function could only be called with either one or four arguments.

Exemples

Exemple #1 Liste les Procédures stocké d'une Base de Donnée

<?php
$conn = odbc_connect($dsn, $user, $pass);
$procedures = odbc_procedures($conn, $catalog, $schema, '%');
while (($row = odbc_fetch_array($procedures))) {
print_r($row);
break; // further rows omitted for brevity
}
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [PROCEDURE_CAT] => TutorialDB
    [PROCEDURE_SCHEM] => dbo
    [PROCEDURE_NAME] => GetEmployeeSalesYTD;1
    [NUM_INPUT_PARAMS] => -1
    [NUM_OUTPUT_PARAMS] => -1
    [NUM_RESULT_SETS] => -1
    [REMARKS] =>
    [PROCEDURE_TYPE] => 2
)

Voir aussi

  • odbc_procedurecolumns() - Liste les paramètres des procédures
  • odbc_tables() - Liste les tables d'une source


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, PHP 8)

odbc_result_all — Affiche le résultat sous la forme d'une table HTML

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 8.1.0. Dépendre de cette fonction est fortement déconseillé.

Description

odbc_result_all(resource $statement, string $format = ""): int|false

Affiche toutes les lignes d'un résultat. L'affichage se fait au format HTML. Les données ne sont pas échappées.

Cette fonction n'est pas supposée être utilisée en environnement de production ; elle est prévue pour le développement pour afficher rapidement un jeu de résultats.

Liste de paramètres

statement

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.

Historique

Version | Description
8.1.0 | Cette fonction a été rendue obsolète.


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, PHP 8)

odbc_result — Lit un champ de résultat UODBC

Description

odbc_result(resource $statement, string|int $field): string|bool|null

Lit un champ de résultat UODBC.

Liste de paramètres

statement

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, PHP 8)

odbc_rollback — Annule une transaction

Description

odbc_rollback(resource $odbc): bool

Annule toutes les transactions sur la connexion connection_id.

Liste de paramètres

odbc

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, PHP 8)

odbc_setoption — Modifie les paramètres ODBC

Description

odbc_setoption(
resource $odbc,
int $which,
int $option,
int $value
): bool

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

odbc

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.

which

Fonction ODBC à utiliser. La valeur doit être de 1 pour utiliser SQLSetConnectOption() et 2 pour SQLSetStmtOption().

option

L'option à définir.

value

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, PHP 8)

odbc_specialcolumns — Retourne l'ensemble optimal de colonnes

Description

odbc_specialcolumns(
resource $odbc,
int $type,
?string $catalog,
string $schema,
string $table,
int $scope,
int $nullable
): resource|false

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

odbc

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.
catalog

Le catalogue ('calificatif' dans le jargon ODBC 2).

schema

Le schéma ('propriétaire' dans le jargon ODBC 2).

table

La table.

scope

Le scope, qui ordonne le jeu de résultats. Un de SQL_SCOPE_CURROW, SQL_SCOPE_TRANSACTION ou SQL_SCOPE_SESSION.

nullable

Détermine si les colonnes spéciales qui peuvent avoir une valeur NULL doivent être retourné ou non. Un de SQL_NO_NULLS ou SQL_NULLABLE .

Valeurs de retour

Retourne la ressource de résultat ODBC ou false si une erreur survient.

Le jeu de résultat contient les colonnes suivantes :

  • SCOPE
  • COLUMN_NAME
  • DATA_TYPE
  • TYPE_NAME
  • COLUMN_SIZE
  • BUFFER_LENGTH
  • DECIMAL_DIGITS
  • PSEUDO_COLUMN
Les pilotes peuvent signaler des colonnes supplémentaires.

Le jeu de résultat est ordonné par SCOPE.

Voir aussi

  • odbc_tables() - Liste les tables d'une source


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, PHP 8)

odbc_statistics — Calcul des statistiques sur une table

Description

odbc_statistics(
resource $odbc,
?string $catalog,
string $schema,
string $table,
int $unique,
int $accuracy
): resource|false

Calcul des statistiques sur une table.

Liste de paramètres

odbc

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

catalog

Le catalogue ('calificatif' dans le jargon ODBC 2).

schema

Le schéma ('propriétaire' dans le jargon ODBC 2).

table

Le nom de la table.

unique

Le type de l'index. Un de SQL_INDEX_UNIQUE ou SQL_INDEX_ALL.

accuracy

Un de SQL_ENSURE ou SQL_QUICK. Ce dernier demande au pilote de récupérer la CARDINALITY et PAGES seulement s'ils sont immédiatement disponible depuis le serveur.

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_CAT
  • TABLE_SCHEM
  • TABLE_NAME
  • NON_UNIQUE
  • INDEX_QUALIFIER
  • INDEX_NAME
  • TYPE
  • ORDINAL_POSITION
  • COLUMN_NAME
  • ASC_OR_DESC
  • CARDINALITY
  • PAGES
  • FILTER_CONDITION
Les pilotes peuvent signaler des colonnes supplémentaires.

Le jeu de résultat est ordonné par NON_UNIQUE, TYPE, INDEX_QUALIFIER, INDEX_NAME et ORDINAL_POSITION.

Exemples

Exemple #1 Liste les Statistiques d'une Table

<?php
$conn = odbc_connect($dsn, $user, $pass);
$statistics = odbc_statistics($conn, 'TutorialDB', 'dbo', 'TEST', SQL_INDEX_UNIQUE, SQL_QUICK);
while (($row = odbc_fetch_array($statistics))) {
print_r($row);
break; // further rows omitted for brevity
}
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [TABLE_CAT] => TutorialDB
    [TABLE_SCHEM] => dbo
    [TABLE_NAME] => TEST
    [NON_UNIQUE] =>
    [INDEX_QUALIFIER] =>
    [INDEX_NAME] =>
    [TYPE] => 0
    [ORDINAL_POSITION] =>
    [COLUMN_NAME] =>
    [ASC_OR_DESC] =>
    [CARDINALITY] => 15
    [PAGES] => 3
    [FILTER_CONDITION] =>
)

Voir aussi

  • odbc_tables() - Liste les tables d'une source


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, PHP 8)

odbc_tableprivileges — Liste les tables et leurs privilèges

Description

odbc_tableprivileges(
resource $odbc,
?string $catalog,
string $schema,
string $table
): resource|false

Liste les tables et leurs privilèges.

Liste de paramètres

odbc

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

catalog

Le catalogue ('calificatif' dans le jargon ODBC 2).

schema

Le schéma ('propriétaire' dans le jargon ODBC 2). Ce paramètre accepte les masques de recherche suivants : % pour chercher zéro ou plusieurs caractères, et _ pour chercher un seul caractère.

table

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 ou false si une erreur survient.

Le jeu de résultat contient les colonnes suivantes :

  • TABLE_CAT
  • TABLE_SCHEM
  • TABLE_NAME
  • GRANTOR
  • GRANTEE
  • PRIVILEGE
  • IS_GRANTABLE
Les pilotes peuvent signaler des colonnes supplémentaires.

Le jeu de résultat est ordonné par TABLE_CAT, TABLE_SCHEM, TABLE_NAME, PRIVILEGE and GRANTEE.

Exemples

Exemple #1 Liste les Priviléges d'une Table

<?php
$conn = odbc_connect($dsn, $user, $pass);
$privileges = odbc_tableprivileges($conn, 'SalesOrders', 'dbo', 'Orders');
while (($row = odbc_fetch_array($privileges))) {
print_r($row);
break; // further rows omitted for brevity
}
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [TABLE_CAT] => SalesOrders
    [TABLE_SCHEM] => dbo
    [TABLE_NAME] => Orders
    [GRANTOR] => dbo
    [GRANTEE] => dbo
    [PRIVILEGE] => DELETE
    [IS_GRANTABLE] => YES
)

Voir aussi

  • odbc_tables() - Liste les tables d'une source


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, PHP 8)

odbc_tables — Liste les tables d'une source

Description

odbc_tables(
resource $odbc,
?string $catalog = null,
?string $schema = null,
?string $table = null,
?string $types = null
): resource|false

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 catalog, schema, table et table_type est disponible :

  • Si catalog est un signe de pourcentage (%), et schema et table 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 schema est un signe de pourcentage (%), et catalog et table 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 catalog, schema et table 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

odbc

L'identifiant de connexion ODBC, voir la documentation de la fonction odbc_connect() pour plus de détails.

catalog

Le catalogue ('calificatif' dans le jargon ODBC 2).

schema

Le schéma ('propriétaire' dans le jargon ODBC 2). Ce paramètre accepte les masques de recherche suivants : % pour chercher zéro ou plusieurs caractères, et _ pour chercher un seul caractère.

table

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.

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 jeu de résultat contient les colonnes suivantes :

  • TABLE_CAT
  • TABLE_SCHEM
  • TABLE_NAME
  • TABLE_TYPE
  • REMARKS
Les pilotes peuvent signaler des colonnes supplémentaires.

Le jeu de résultat est ordonné par TABLE_TYPE, TABLE_CAT, TABLE_SCHEM and TABLE_NAME.

Historique

Version | Description
8.0.0 | schema, table and types are now nullable.

Exemples

Exemple #1 Liste les Tables dans un Catalogue

<?php
$conn = odbc_connect($dsn, $user, $pass);
$tables = odbc_tables($conn, 'SalesOrders', 'dbo', '%', 'TABLE');
while (($row = odbc_fetch_array($tables))) {
print_r($row);
break; // further rows omitted for brevity
}
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [TABLE_CAT] => SalesOrders
    [TABLE_SCHEM] => dbo
    [TABLE_NAME] => Orders
    [TABLE_TYPE] => TABLE
    [REMARKS] =>
)

Voir aussi

  • odbc_tableprivileges() - Liste les tables et leurs privilèges
  • odbc_columns() - Liste les colonnes d'une table
  • odbc_specialcolumns() - Retourne l'ensemble optimal de colonnes
  • odbc_statistics() - Calcul des statistiques sur une table
  • odbc_procedures() - Liste les procédures stockées


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 — Prépare et Exécute une requête SQL sans marque substitutive
    • 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 — Récupère les lignes restantes d'un ensemble de résultats
    • 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::getIterator — Gets result set iterator
    • 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
  • PDORow — La classe PDORow
  • 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)


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 quel que 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.


Installation

Installer PDO sur les systèmes Unix

  1. PDO et le pilote PDO_SQLITE sont activés par défaut. 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. 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.

PDO::PARAM_BOOL (int)
Représente le type de données booléen.
PDO::PARAM_NULL (int)
Représente le type de données NULL SQL.
PDO::PARAM_INT (int)
Représente le type de données INTEGER SQL.
PDO::PARAM_STR (int)
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_STR_NATL (int)
Indicateur pour désigner une chaîne utilise le jeu de caractères national. Disponible à partir de PHP 7.2.0
PDO::PARAM_STR_CHAR (int)
Indicateur pour désigner une chaîne utilise le jeu de caractères normal. Disponible à partir de PHP 7.2.0
PDO::PARAM_LOB (int)
Représente le type de données "objet large" SQL.
PDO::PARAM_STMT (int)
Représente un type de jeu de résultats. N'est actuellement pas pris en charge par tous les pilotes.
PDO::PARAM_INPUT_OUTPUT (int)
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_DEFAULT (int)
Spécifie que le méthode de récupération par défaut doit être utilisé. Disponible à partir de PHP 8.0.7.
PDO::FETCH_LAZY (int)
Spécifie que la méthode de récupération doit retourner chaque ligne en tant qu'objet avec les noms de propriétés correspondant aux noms de colonnes retournés dans le jeu de résultats. PDO::FETCH_LAZY retourne un objet PDORow qui crée les noms de propriété de l'objet au fur et à mesure de leur accès. Pas valide avec PDOStatement::fetchAll().
PDO::FETCH_ASSOC (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
Groupe le résultat par les valeurs. Habituellement combiné avec PDO::FETCH_COLUMN ou PDO::FETCH_KEY_PAIR.
PDO::FETCH_UNIQUE (int)
Récupère uniquement les valeurs uniques.
PDO::FETCH_KEY_PAIR (int)
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.
PDO::FETCH_CLASSTYPE (int)
Détermine le nom de la classe depuis la valeur de la première colonne.
PDO::FETCH_SERIALIZE (int)
Identique à PDO::FETCH_INTO, mais l'objet est fourni sous la forme d'une chaîne sérialisée. Le constructeur de la classe n'est jamais appelé si ce drapeau est défini. Obsolète à partir de PHP 8.1.0.
PDO::FETCH_PROPS_LATE (int)
Appelle le constructeur avant de définir les propriétés.
PDO::ATTR_AUTOCOMMIT (int)
Si la valeur vaut false, PDO tente de désactiver l'autovalidation lorsque la connexion commence une transaction.
PDO::ATTR_PREFETCH (int)
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 (int)
Définit la valeur d'attente en secondes pour les communications avec la base de données.
PDO::ATTR_ERRMODE (int)
Voir la section sur les erreurs et la gestion des erreurs pour plus d'informations sur cet attribut.
PDO::ATTR_SERVER_VERSION (int)
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 (int)
Attribut en lecture seule ; il retourne des informations sur la version de la librairie cliente utilisée par PDO.
PDO::ATTR_SERVER_INFO (int)
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 (int)
PDO::ATTR_CASE (int)
Force les noms des colonnes dans une casse spécifiée par les constantes PDO::CASE_*.
PDO::ATTR_CURSOR_NAME (int)
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 (int)
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 (int)
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 (int)
Convertit les chaînes vides en valeurs NULL SQL dans les données récupérées.
PDO::ATTR_PERSISTENT (int)
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 (int)
Définit le nom de la classe sous laquelle les données sont retournées.
PDO::ATTR_FETCH_CATALOG_NAMES (int)
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 (int)
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 (int)
Force toutes les valeurs lues pour être traitées comme des chaînes.
PDO::ATTR_MAX_COLUMN_LEN (int)
Définit la longueur maximale du nom de colonne.
PDO::ATTR_DEFAULT_FETCH_MODE (int)
PDO::ATTR_EMULATE_PREPARES (int)
PDO::ATTR_DEFAULT_STR_PARAM (int)
Définit le type de paramètre de chaîne par défaut, cela peut être PDO::PARAM_STR_NATL ou PDO::PARAM_STR_CHAR. Disponible à partir de PHP 7.2.0.
PDO::ERRMODE_SILENT (int)
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 (int)
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 (int)
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 (int)
Laisse les noms de colonnes comme retournés par le pilote de base de données.
PDO::CASE_LOWER (int)
Force les noms de colonnes en minuscules.
PDO::CASE_UPPER (int)
Force les noms des colonnes en majuscules.
PDO::NULL_NATURAL (int)
PDO::NULL_EMPTY_STRING (int)
PDO::NULL_TO_STRING (int)
PDO::FETCH_ORI_NEXT (int)
Récupère la prochaine ligne d'un jeu de résultats. Valide seulement pour les curseurs défilables.
PDO::FETCH_ORI_PRIOR (int)
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 (int)
Récupère la première ligne d'un jeu de résultats. Valide seulement pour les curseurs défilables.
PDO::FETCH_ORI_LAST (int)
Récupère la dernière ligne d'un jeu de résultats. Valide seulement pour les curseurs défilables.
PDO::FETCH_ORI_ABS (int)
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 (int)
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 (int)
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 (int)
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 (string)
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 (int)
Alloue un événement
PDO::PARAM_EVT_FREE (int)
Supprime un événement
PDO::PARAM_EVT_EXEC_PRE (int)
Toujours faire un déclencheur avant l'exécution d'une requête préparée.
PDO::PARAM_EVT_EXEC_POST (int)
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 (int)
Toujours effectuer un déclencheur avant de récupérer un résultat d'un jeu de résultats.
PDO::PARAM_EVT_FETCH_POST (int)
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 (int)
Toujours effectuer un déclencheur lors de l'enregistrement des paramètres liés permettant au pilote de normaliser le nom des paramètres.
PDO::SQLITE_DETERMINISTIC (int)
Spécifie qu'une fonction créée avec PDO:: PDO::sqliteCreateFunction() est déterministe, c'est-à-dire qu'elle retourne toujours le même résultat en raison des mêmes entrées dans une seule instruction SQL. (Disponible à partir de PHP 7.1.4.)


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);
} catch (PDOException $e) {
// tenter de réessayer la connexion après un certain délai, par exemple
}

Avertissement

Comme toutes les autres exception, PDOException peut être capturée soit explicitement, par une instruction catch, soit implicitement via set_exception_handler(). Sinon, le comportement par défaut consistant à convertir une exception non capturée en une E_FATAL_ERROR se produira. L'erreur fatale contiendra un backtrace qui peut laisser échapper des détails sur la connexion. Ainsi, l'option php.ini display_errors doit être définie à 0 sur un serveur de production.

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.

Note: S'il existe encore d'autres références à cette instance PDO (par exemple, à partir d'une instance PDOStatement ou d'autres variables référençant la même instance PDO), celles-ci doivent également être supprimées (par exemple, en affectant null à la variable qui référence le PDOStatement).

Exemple #3 Fermeture d'une connexion

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
// utiliser la connexion ici
$sth = $dbh->query('SELECT * FROM foo');

// et maintenant, fermez-la !
$sth = null;
$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
));
?>

La valeur de l'option PDO::ATTR_PERSISTENT est convertie en booléen (activer/désactiver les connexions persistantes), sauf si c'est une chaîne de caractères non-numérique, auquel cas ceci autorise l'utilisation de plusieurs pools de connexions persistantes. Ceci est utile si les connexions différentes utilisent des paramètres incompatibles, par exemple, des valeurs différentes de PDO::MYSQL_ATTR_USE_BUFFERED_QUERY.

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'ayez 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 = ?");
$stmt->execute([$_GET['name']]);
foreach ($stmt as $row) {
print_r($row);
}
?>

Exemple #4 Appel d'une procédure stockée avec un paramètre de sortie

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.

<?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";
?>

Exemple #5 Appel d'une procédure stockée avec un paramètre d'entrée/sortie

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.

<?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([$_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(["%$_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

    Antérieur à PHP 8.0.0, 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

    À partir de PHP 8.0.0, c'est le mode par défaut. 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';

$dbh = new PDO($dsn, $user, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// Cela provoquera une PDOException (lorsque la table n'existe pas).
$dbh->query("SELECT wrongcolumn FROM wrongtable");
?>

L'exemple ci-dessus va afficher :

Fatal error: Uncaught PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'testdb.wrongtable' doesn't exist in /tmp/pdo_test.php:10
Stack trace:
#0 /tmp/pdo_test.php(10): PDO->query('SELECT wrongcol...')
#1 {main}
  thrown in /tmp/pdo_test.php on line 10

Note:

PDO::__construct() lance toujours une exception PDOException si la connexion échoue, quelle que soit la configuration de PDO::ATTR_ERRMODE.

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';

$dbh = new PDO($dsn, $user, $password, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));

// 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 9


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);

$db->beginTransaction();
$stmt->execute();
$db->commit();
?>


La classe PDO

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

Introduction

Représente une connexion entre PHP et un serveur de base de données.

Synopsis de la classe

class PDO {
/* Constantes */
public const int PARAM_NULL;
public const int PARAM_BOOL = 5;
public const int PARAM_INT = 1;
public const int PARAM_STR = 2;
public const int PARAM_LOB = 3;
public const int PARAM_STMT = 4;
public const int PARAM_INPUT_OUTPUT;
public const int PARAM_STR_NATL;
public const int PARAM_STR_CHAR;
public const int PARAM_EVT_ALLOC;
public const int PARAM_EVT_FREE;
public const int PARAM_EVT_EXEC_PRE;
public const int PARAM_EVT_EXEC_POST;
public const int PARAM_EVT_FETCH_PRE;
public const int PARAM_EVT_FETCH_POST;
public const int PARAM_EVT_NORMALIZE;
public const int FETCH_DEFAULT;
public const int FETCH_LAZY;
public const int FETCH_ASSOC;
public const int FETCH_NUM;
public const int FETCH_BOTH;
public const int FETCH_OBJ;
public const int FETCH_BOUND;
public const int FETCH_COLUMN;
public const int FETCH_CLASS;
public const int FETCH_INTO;
public const int FETCH_FUNC;
public const int FETCH_GROUP;
public const int FETCH_UNIQUE;
public const int FETCH_KEY_PAIR;
public const int FETCH_CLASSTYPE;
public const int FETCH_SERIALIZE;
public const int FETCH_PROPS_LATE;
public const int FETCH_NAMED;
public const int ATTR_AUTOCOMMIT;
public const int ATTR_PREFETCH;
public const int ATTR_TIMEOUT;
public const int ATTR_ERRMODE;
public const int ATTR_SERVER_VERSION;
public const int ATTR_CLIENT_VERSION;
public const int ATTR_SERVER_INFO;
public const int ATTR_CONNECTION_STATUS;
public const int ATTR_CASE;
public const int ATTR_CURSOR_NAME;
public const int ATTR_CURSOR;
public const int ATTR_ORACLE_NULLS;
public const int ATTR_PERSISTENT;
public const int ATTR_STATEMENT_CLASS;
public const int ATTR_FETCH_TABLE_NAMES;
public const int ATTR_FETCH_CATALOG_NAMES;
public const int ATTR_DRIVER_NAME;
public const int ATTR_STRINGIFY_FETCHES;
public const int ATTR_MAX_COLUMN_LEN;
public const int ATTR_EMULATE_PREPARES;
public const int ATTR_DEFAULT_FETCH_MODE;
public const int ATTR_DEFAULT_STR_PARAM;
public const int ERRMODE_SILENT;
public const int ERRMODE_WARNING;
public const int ERRMODE_EXCEPTION;
public const int CASE_NATURAL;
public const int CASE_LOWER;
public const int CASE_UPPER;
public const int NULL_NATURAL;
public const int NULL_EMPTY_STRING;
public const int NULL_TO_STRING;
public const string ERR_NONE;
public const int FETCH_ORI_NEXT;
public const int FETCH_ORI_PRIOR;
public const int FETCH_ORI_FIRST;
public const int FETCH_ORI_LAST;
public const int FETCH_ORI_ABS;
public const int FETCH_ORI_REL;
public const int CURSOR_FWDONLY;
public const int CURSOR_SCROLL;
/* Méthodes */
public __construct(
string $dsn,
?string $username = null,
?string $password = null,
?array $options = null
)
public beginTransaction(): bool
public commit(): bool
public errorCode(): ?string
public errorInfo(): array
public exec(string $statement): int|false
public getAttribute(int $attribute): mixed
public static getAvailableDrivers(): array
public inTransaction(): bool
public lastInsertId(?string $name = null): string|false
public prepare(string $query, array $options = []): PDOStatement|false
public query(string $query, ?int $fetchMode = null): PDOStatement|false
public query(string $query, ?int $fetchMode = PDO::FETCH_COLUMN, int $colno): PDOStatement|false
public query(
string $query,
?int $fetchMode = PDO::FETCH_CLASS,
string $classname,
array $constructorArgs
): PDOStatement|false
public query(string $query, ?int $fetchMode = PDO::FETCH_INTO, object $object): PDOStatement|false
public quote(string $string, int $type = PDO::PARAM_STR): string|false
public rollBack(): bool
public setAttribute(int $attribute, mixed $value): bool
}

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 — Prépare et Exécute une requête SQL sans marque substitutive
  • 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, PHP 8, PECL pdo >= 0.1.0)

PDO::beginTransaction — Démarre une transaction

Description

public PDO::beginTransaction(): bool

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.

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.

Erreurs / Exceptions

Lance l'exception PDOException si une transaction a déjà démarrée ou que le pilote ne prend pas encharge les tansactions.

Note: Une exception sera émise même si l'attribut PDO::ATTR_ERRMODE ne vaut pas PDO::ERRMODE_EXCEPTION.

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, PHP 8, PECL pdo >= 0.1.0)

PDO::commit — Valide une transaction

Description

public PDO::commit(): bool

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.

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.

Erreurs / Exceptions

Une exception PDOException sera lancée si aucune transaction n'est active.

Note: Une exception sera émise même si l'attribut PDO::ATTR_ERRMODE ne vaut pas PDO::ERRMODE_EXCEPTION.

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, PHP 8, 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 = null,
?string $password = null,
?array $options = null
)

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.

Erreurs / Exceptions

PDO::__construct() émet une exception PDOException si la tentative de connexion à la base de données échoue, peu importe le PDO::ATTR_ERRMODE actuellement définit.

Exemples

Exemple #1 Crée une instance PDO via une invocation de pilote

<?php

$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';

$dbh = new PDO($dsn, $user, $password);

?>

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

$dsn = 'uri:file:///usr/local/dbconnect';
$user = '';
$password = '';

$dbh = new PDO($dsn, $user, $password);

?>

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

$dsn = 'mydb';
$user = '';
$password = '';

$dbh = new PDO($dsn, $user, $password);

?>


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, PHP 8, 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 PDO::errorCode(): ?string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8, 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 PDO::errorInfo(): array

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8, PECL pdo >= 0.1.0)

PDO::exec — Exécute une requête SQL et retourne le nombre de lignes affectées

Description

public PDO::exec(string $statement): int|false

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 par la requête SQL exécutée. 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)); // incorrect
?>

Erreurs / Exceptions

Émet une erreur de niveau E_WARNING si l'attribut PDO::ATTR_ERRMODE est défini à PDO::ERRMODE_WARNING.

Lève une exception PDOException si l'attribut PDO::ATTR_ERRMODE est défini à PDO::ERRMODE_EXCEPTION.

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");

/* Retourne le nombre de lignes effacées */
print "Effacement de $count lignes.\n";
?>

L'exemple ci-dessus va afficher :

Effacement de 1 lignes.

Voir aussi

  • PDO::prepare() - Prépare une requête à l'exécution et retourne un objet
  • PDO::query() - Prépare et Exécute une requête SQL sans marque substitutive
  • 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, PHP 8, PECL pdo >= 0.2.0)

PDO::getAttribute — Récupère un attribut d'une connexion à une base de données

Description

public PDO::getAttribute(int $attribute): mixed

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 attributs génériques qui sont appliqués 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

Certains pilotes peuvent faire usage d'attributs supplémentaires spécifiques au pilote. Notez que les attributs spécifiques au pilote ne doivent pas être utilisés avec d'autres pilotes.

Valeurs de retour

Un appel réussi retourne la valeur de l'attribut PDO demandé. Un appel qui a échoué retourne la valeur null.

Erreurs / Exceptions

La méthode PDO::getAttribute() peut générer une exception PDOException lorsque le pilote sous-jacent ne prend pas en charge l'attribute demandé.

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

pdo_drivers

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 1.0.3)

PDO::getAvailableDrivers -- pdo_drivers — Retourne la liste des pilotes PDO disponibles

Description

public static PDO::getAvailableDrivers(): array
pdo_drivers(): array

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().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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());
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

PDO::inTransaction — Vérifie si nous sommes dans une transaction

Description

public PDO::inTransaction(): bool

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, PHP 8, 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 PDO::lastInsertId(?string $name = null): string|false

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 permet de spécifier le nom de n'importe quel objet séquence 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.

Erreurs / Exceptions

Émet une erreur de niveau E_WARNING si l'attribut PDO::ATTR_ERRMODE est défini à PDO::ERRMODE_WARNING.

Lève une exception PDOException si l'attribut PDO::ATTR_ERRMODE est défini à PDO::ERRMODE_EXCEPTION.


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, PHP 8, PHP 8,PECL pdo >= 0.1.0)

PDO::prepare — Prépare une requête à l'exécution et retourne un objet

Description

public PDO::prepare(string $query, array $options = []): PDOStatement|false

Prépare une requête SQL à être exécutée par la méthode PDOStatement::execute(). Le modèle de déclaration peut contenir zéro ou plusieurs paramètres nommés (:nom) ou marqueurs (?) pour lesquels les valeurs réelles seront substituées lorsque la requête sera exécutée. L'utilisation à la fois des paramètres nommés ainsi que les marqueurs est impossible dans un modèle de déclaration ; seul l'un ou l'autre style de paramètre. 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 meta-informations. De plus appeler PDO::prepare() et PDOStatement::execute() 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.

Note: L'analyseur utilisé pour les déclarations préparés émulées et pour réécrire les paramètres nommés ou du style point d'intérogation supporte l'échappement antislash non standard pour les guillemets simple et double. Ceci signifie que des guillemets terminant qui sont précédés par un antislash ne seront pas reconnue comme tel, ce qui peut résulter dans une mauvaise détection des paramètres causant la déclaration préparer d'échouer lorsqu'elle est exécuté. Un contournement est de ne pas utiliser les requêtes émulées pour de telles requêtes SQL, et d'éviter de réécrite les paramètres en utilisant un style de paramètre qui est supporté nativement par le pilote.

À partir de PHP 7.4.0, les points d'interrogation peuvent être échappés en les dédoublant. Cela signifie que la chaîne ?? sera traduite en ? lors de l'envoi de la requête à la base de données.

Liste de paramètres

query

Doit être un modèle de requête SQL valide pour le serveur de base de données ciblée.

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.

Erreurs / Exceptions

Émet une erreur de niveau E_WARNING si l'attribut PDO::ATTR_ERRMODE est défini à PDO::ERRMODE_WARNING.

Lève une exception PDOException si l'attribut PDO::ATTR_ERRMODE est défini à PDO::ERRMODE_EXCEPTION.

Exemples

Exemple #1 Modèle de déclaration 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, [PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY]);
$sth->execute(['calories' => 150, 'couleur' => 'red']);
$red = $sth->fetchAll();
/* Les clés du tableau peuvent être préfixées par des deux-points ":" également (facultatif) */
$sth->execute([':calories' => 175, ':couleur' => 'yellow']);
$yellow = $sth->fetchAll();
?>

Exemple #2 Modèle de déclaration 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([150, 'rouge']);
$red = $sth->fetchAll();
$sth->execute([175, 'jaune']);
$yellow = $sth->fetchAll();
?>

Exemple #3 Modèle de déclaration SQL avec un point d'interrogation échappé

<?php
/* note: ceci n'est valable que pour les bases de données PostgreSQL */
$sth = $dbh->prepare('SELECT * FROM issues WHERE tag::jsonb ?? ?');
$sth->execute(['feature']);
$featureIssues = $sth->fetchAll();
$sth->execute(['performance']);
$performanceIssues = $sth->fetchAll();
?>

Voir aussi

  • PDO::exec() - Exécute une requête SQL et retourne le nombre de lignes affectées
  • PDO::query() - Prépare et Exécute une requête SQL sans marque substitutive
  • PDOStatement::execute() - Exécute une requête préparée


Prépare et Exécute une requête SQL sans marque substitutive

  • « PDO::prepare
  • PDO::quote »
  • PHP Manual
  • PDO
  • Prépare et Exécute une requête SQL sans marque substitutive

PDO::query

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.0)

PDO::query — Prépare et Exécute une requête SQL sans marque substitutive

Description

public PDO::query(string $query, ?int $fetchMode = null): PDOStatement|false
public PDO::query(string $query, ?int $fetchMode = PDO::FETCH_COLUMN, int $colno): PDOStatement|false
public PDO::query(
string $query,
?int $fetchMode = PDO::FETCH_CLASS,
string $classname,
array $constructorArgs
): PDOStatement|false
public PDO::query(string $query, ?int $fetchMode = PDO::FETCH_INTO, object $object): PDOStatement|false

PDO::query() prépare et exécute une requête SQL en un seul appel de fonction, retournant 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:

Si query contient des marqueurs de substitution, la requête doit être préparé et exécuté séparément en utilisant les méthodes PDO::prepare() et PDOStatement::execute().

Liste de paramètres

query

La requête SQL à préparer et à exécuter.

Si le SQL contient des marqueurs de substitution, PDO::prepare() et PDOStatement::execute() doivent être utilisé à la place. Alternativement, le SQL peut être préparé manuellement avant d'appeler PDO::query(), avec les données proprement formaté utilisant PDO::quote() si le pilote le supporte.

fetchMode

Le mode de récupération par défaut pour le PDOStatement retourné. Ceci doit être une des constantes PDO::FETCH_*.

Si cet argument est passé à la fonction, le reste des arguments seront traité comme si PDOStatement::setFetchMode() a été appelé sur l'objet de la requête résultante. Les arguments suivant dépendent en fonction du mode de récupération sélectionné.

Valeurs de retour

Retourne un object PDOStatement ou false si une erreur survient.

Erreurs / Exceptions

Émet une erreur de niveau E_WARNING si l'attribut PDO::ATTR_ERRMODE est défini à PDO::ERRMODE_WARNING.

Lève une exception PDOException si l'attribut PDO::ATTR_ERRMODE est défini à PDO::ERRMODE_EXCEPTION.

Exemples

Exemple #1 SQL sans marqueurs de substitution peut être exécuté utilisant PDO::query()

<?php
$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, PHP 8, PECL pdo >= 0.2.1)

PDO::quote — Protège une chaîne pour l'utiliser dans une requête SQL PDO

Description

public PDO::quote(string $string, int $type = PDO::PARAM_STR): string|false

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.

type

Le type de données pour les drivers qui ont des styles particuliers de protection. Fournit un indice au type de donnée pour les pilotes qui ont un style d'échappement différent. Par exemple PDO_PARAM_LOB indique au pilote d'échapper des données binaires.

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 échappée : $string\n";
print "Chaîne échappé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, PHP 8, PECL pdo >= 0.1.0)

PDO::rollBack — Annule une transaction

Description

public PDO::rollBack(): bool

Annule la transaction courante, initiée par la fonction PDO::beginTransaction().

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.

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.

Erreurs / Exceptions

Une exception PDOException sera lancée si aucune transaction n'est active.

Note: Une exception sera émise même si l'attribut PDO::ATTR_ERRMODE ne vaut pas PDO::ERRMODE_EXCEPTION.

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, PHP 8, PECL pdo >= 0.1.0)

PDO::setAttribute — Configure un attribut PDO

Description

public PDO::setAttribute(int $attribute, mixed $value): bool

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 configurations supplémentaires. Il est à noter que les attributs spécifiques à un pilote ne doivent pas être utilisés avec d'autres pilotes.

PDO::ATTR_CASE

Force les noms de colonnes à une casse particulière. Peut prendre une des valeurs suivantes :

PDO::CASE_LOWER
Force les noms de colonnes en minuscule.
PDO::CASE_NATURAL
Laisse les noms de colonnes telle que retourné par le pilote de base de données.
PDO::CASE_UPPER
Force les noms de colonnes en majuscule.
PDO::ATTR_ERRMODE

Le mode pour reporter les erreurs de PDO. Peut prendre une des valeurs suivantes :

PDO::ERRMODE_SILENT
Définit juste les codes d'erreurs.
PDO::ERRMODE_WARNING
Émets des diagnostics E_WARNING.
PDO::ERRMODE_EXCEPTION
Lances des PDOExceptions.
PDO::ATTR_ORACLE_NULLS

Note: Cet attribut est disponible avec tout les pilotes, pas juste Oracle.

Détermine si et comment null et les chaînes vides devraient être convertie. Peut prendre une des valeurs suivantes :

PDO::NULL_NATURAL
Aucune conversion est effectuée.
PDO::NULL_EMPTY_STRING
Les chaînes vides sont converties en null.
PDO::NULL_TO_STRING
null est convertie en chaîne vide.
PDO::ATTR_STRINGIFY_FETCHES

Détermine si les valeurs numériques sont à convertir en chaînes de caractères lors de la récupération. Prend une valeur de type bool: true pour activer et false pour désactiver.

PDO::ATTR_STATEMENT_CLASS

Configure la classe de résultat dérivée de PDOStatement et définie par l'utilisateur. Nécessite array(string classname, array(mixed constructor_args)).

Attention

Ne peut être utilisé avec les instances persistantes de PDO.

PDO::ATTR_TIMEOUT

Spécifie la durée du timeout en secondes. Prend une valeur de type int.

Note:

Pas tout les pilotes supportent 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, mais d'autres pilotes peuvent interpréter ceci comme un timeout de connexion ou de lecture.

PDO::ATTR_AUTOCOMMIT

Note: Uniquement disponible pour les pilotes OCI, Firebird, et MySQL.

Détermine si chaque requête est autocommit. Prend une valeur de type bool: true pour activer et false pour désactiver. Par défaut, true.

PDO::ATTR_EMULATE_PREPARES

Note: Uniquement disponible pour les pilotes OCI, Firebird, et MySQL.

Configure l'activation ou désactivation des requêtes préparées émulées. Certains pilotes ne supportent pas les requêtes préparées nativement ou ont un support limité. Si définit à true PDO émulera toujours les requêtes préparées, sinon PDO tentera d'utiliser les requêtes préparées natives. Dans le cas où le pilote ne peut pas préparer la requête courante, PDO se rabattra toujours sur l'émulation des requêtes préparées.

PDO::MYSQL_ATTR_USE_BUFFERED_QUERY

Note: Uniquement disponible pour le pilote MySQL.

Configure l'utilisation des requêtes tampons. Prend une valeur de type bool: true pour activer et false pour désactiver. Par défaut, true.

PDO::ATTR_DEFAULT_FETCH_MODE

Définit le mode de récupération. Une description des modes et comment les utiliser est disponible sur la documentation de PDOStatement::fetch().

Liste de paramètres

attribute

L'attribut à modifier.

value

La valeur à laquelle définir l'attribute, ceci peut nécessiter un type spécifique dépendant de l'attribut.

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
  • PDOStatement::getAttribute() - Récupère un attribut de requête
  • PDOStatement::setAttribute() - Définit un attribut de requête


La classe PDOStatement

(PHP 5 >= 5.1.0, PHP 7, PHP 8, 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

class PDOStatement implements IteratorAggregate {
/* Propriétés */
public string $queryString;
/* Méthodes */
public bindColumn(
string|int $column,
mixed &$var,
int $type = PDO::PARAM_STR,
int $maxLength = 0,
mixed $driverOptions = null
): bool
public bindParam(
string|int $param,
mixed &$var,
int $type = PDO::PARAM_STR,
int $maxLength = 0,
mixed $driverOptions = null
): bool
public bindValue(string|int $param, mixed $value, int $type = PDO::PARAM_STR): bool
public closeCursor(): bool
public columnCount(): int
public debugDumpParams(): ?bool
public errorCode(): ?string
public errorInfo(): array
public execute(?array $params = null): bool
public fetch(int $mode = PDO::FETCH_DEFAULT, int $cursorOrientation = PDO::FETCH_ORI_NEXT, int $cursorOffset = 0): mixed
public fetchAll(int $mode = PDO::FETCH_DEFAULT): array
public fetchAll(int $mode = PDO::FETCH_COLUMN, int $column): array
public fetchAll(int $mode = PDO::FETCH_CLASS, string $class, ?array $constructorArgs): array
public fetchAll(int $mode = PDO::FETCH_FUNC, callable $callback): array
public fetchColumn(int $column = 0): mixed
public fetchObject(?string $class = "stdClass", array $constructorArgs = []): object|false
public getAttribute(int $name): mixed
public getColumnMeta(int $column): array|false
public getIterator(): Iterator
public nextRowset(): bool
public rowCount(): int
public setAttribute(int $attribute, mixed $value): bool
public setFetchMode(int $mode): bool
public setFetchMode(int $mode = PDO::FETCH_COLUMN, int $colno): bool
public setFetchMode(int $mode = PDO::FETCH_CLASS, string $class, ?array $constructorArgs = null): bool
public setFetchMode(int $mode = PDO::FETCH_INTO, object $object): bool
}

Propriétés

queryString

chaîne de caractères utilisée pour la requête.

Historique

Version | Description
8.0.0 | La classe PDOStatement implémente désormais IteratorAggregate au lieu de Traversable.

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 — Récupère les lignes restantes d'un ensemble de résultats
  • 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::getIterator — Gets result set iterator
  • 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, PHP 8, PECL pdo >= 0.1.0)

PDOStatement::bindColumn — Lie une colonne à une variable PHP

Description

public PDOStatement::bindColumn(
string|int $column,
mixed &$var,
int $type = PDO::PARAM_STR,
int $maxLength = 0,
mixed $driverOptions = null
): bool

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.

var

Nom de la variable PHP à laquelle la colonne doit être liée.

type

Type du paramètre, spécifié par les constantes PDO::PARAM_*.

maxLength

Une astuce pour la pré-allocation.

driverOptions

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.

Erreurs / Exceptions

Émet une erreur de niveau E_WARNING si l'attribut PDO::ATTR_ERRMODE est défini à PDO::ERRMODE_WARNING.

Lève une exception PDOException si l'attribut PDO::ATTR_ERRMODE est défini à PDO::ERRMODE_EXCEPTION.

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
$stmt = $dbh->prepare('SELECT name, colour, calories FROM fruit');
$stmt->execute();

/* Lie par les numéros de colonnes */
$stmt->bindColumn(1, $name);
$stmt->bindColumn(2, $colour);

/* Lie par les noms de colonnes */
$stmt->bindColumn('calories', $cals);
while ($stmt->fetch(PDO::FETCH_BOUND)) {
print $name . "\t" . $colour . "\t" . $cals . "\n";
}
readData($dbh);
?>

Résultat de l'exemple ci-dessus est similaire à :

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() - Récupère les lignes restantes d'un ensemble de résultats
  • 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, PHP 8, PECL pdo >= 0.1.0)

PDOStatement::bindParam — Lie un paramètre à un nom de variable spécifique

Description

public PDOStatement::bindParam(
string|int $param,
mixed &$var,
int $type = PDO::PARAM_STR,
int $maxLength = 0,
mixed $driverOptions = null
): bool

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 (mais peuvent néanmoins être transtypé en fonction de data_type). 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

param

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ée +1 du paramètre.

var

Nom de la variable PHP à lier au paramètre de la requête SQL.

type

Type explicite de données pour le paramètre utilisant les constantes PDO::PARAM_*. 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 type.

maxLength

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. Significatif uniquement lorsque le paramètre type est PDO::PARAM_INPUT_OUTPUT.

driverOptions

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Erreurs / Exceptions

Émet une erreur de niveau E_WARNING si l'attribut PDO::ATTR_ERRMODE est défini à PDO::ERRMODE_WARNING.

Lève une exception PDOException si l'attribut PDO::ATTR_ERRMODE est défini à PDO::ERRMODE_EXCEPTION.

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);
/* Les noms peuvent aussi être préfixés par des deux-points ":" (facultatif) */
$sth->bindParam(':couleur', $couleur, PDO::PARAM_STR);
$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);
$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, PHP 8, PECL pdo >= 1.0.0)

PDOStatement::bindValue — Associe une valeur à un paramètre

Description

public PDOStatement::bindValue(string|int $param, mixed $value, int $type = PDO::PARAM_STR): bool

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

param

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.

type

Type de données explicite pour le paramètre utilisant les constantes PDO::PARAM_*.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Erreurs / Exceptions

Émet une erreur de niveau E_WARNING si l'attribut PDO::ATTR_ERRMODE est défini à PDO::ERRMODE_WARNING.

Lève une exception PDOException si l'attribut PDO::ATTR_ERRMODE est défini à PDO::ERRMODE_EXCEPTION.

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');

/* Définit la valeur d'un paramètre en utilisant son nom */
$sth->bindValue('calories', $calories, PDO::PARAM_INT);
/* Optionnellement, les noms des paramètres peuvent être préfixés par des deux points " :" */
$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, PHP 8, PECL pdo >= 0.9.0)

PDOStatement::closeCursor — Ferme le curseur, permettant à la requête d'être de nouveau exécutée

Description

public PDOStatement::closeCursor(): bool

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);
?>

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.

Erreurs / Exceptions

Émet une erreur de niveau E_WARNING si l'attribut PDO::ATTR_ERRMODE est défini à PDO::ERRMODE_WARNING.

Lève une exception PDOException si l'attribut PDO::ATTR_ERRMODE est défini à PDO::ERRMODE_EXCEPTION.

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, PHP 8, PECL pdo >= 0.2.0)

PDOStatement::columnCount — Retourne le nombre de colonnes dans le jeu de résultats

Description

public PDOStatement::columnCount(): int

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().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre de colonnes dans le jeu de résultats représenté par l'objet PDOStatement, même si le jeu de résultats est vide. S'il n'y a pas de jeu de résultats, PDOStatement::columnCount() retournera 0.

Erreurs / Exceptions

Émet une erreur de niveau E_WARNING si l'attribut PDO::ATTR_ERRMODE est défini à PDO::ERRMODE_WARNING.

Lève une exception PDOException si l'attribut PDO::ATTR_ERRMODE est défini à PDO::ERRMODE_EXCEPTION.

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, PHP 8, PECL pdo >= 0.9.0)

PDOStatement::debugDumpParams — Détaille une commande préparée SQL

Description

public PDOStatement::debugDumpParams(): ?bool

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ébogage, qui affiche directement des informations sur la sortie standard.

Astuce

Comme pour toutes les fonctions qui affichent directement des résultats au navigateur, les fonctions de gestion des sorties peuvent être utilisées pour capturer la sortie de cette fonction et l'enregistrer dans une chaîne de caractères (par exemple).

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne null, ou false en cas d'erreur.

Historique

Version | Description
7.2.0 | PDOStatement::debugDumpParams() retourne maintenant le SQL envoyé à la base de données, y compris la requête complète, RAW (y compris les espaces réservés remplacés avec leurs valeurs délimitées). Notez que cela ne sera disponible que si les instructions préparées émulées sont activées.

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, PHP 8, 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 PDOStatement::errorCode(): ?string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8, 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 PDOStatement::errorInfo(): array

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8, PECL pdo >= 0.1.0)

PDOStatement::execute — Exécute une requête préparée

Description

public PDOStatement::execute(?array $params = null): bool

Exécute une requête préparée. Si la requête préparée inclut des marqueurs de positionnement, vous pouvez :

  • PDOStatement::bindParam() et/ou PDOStatement::bindValue() doit être appelé pour lier des variables ou des valeurs (respectivement) aux marqueurs de paramètres. 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

params

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.

Les valeurs multiples ne peuvent pas être liées à un seul paramètre; par exemple, il n'est pas autorisé de lier deux valeurs à un seul paramètre nommé dans une clause IN().

La liaison de plus de valeurs que spécifié n'est pas possible ; s'il y a plus de clés dans params 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.

Erreurs / Exceptions

Émet une erreur de niveau E_WARNING si l'attribut PDO::ATTR_ERRMODE est défini à PDO::ERRMODE_WARNING.

Lève une exception PDOException si l'attribut PDO::ATTR_ERRMODE est défini à PDO::ERRMODE_EXCEPTION.

Exemples

Exemple #1 Exécute une requête préparée avec des variables et valeurs liées

<?php
/* Exécute une requête préparée en liant des variables et valeurs */
$calories = 150;
$couleur = 'ver';
$sth = $dbh->prepare('SELECT nom, couleur, calories
FROM fruit
WHERE calories < :calories AND couleur LIKE :couleur');
$sth->bindParam('calories', $calories, PDO::PARAM_INT);
/* Les noms peuvent aussi être préfixés par des deux-points ":" (facultatif) */
$sth->bindValue(':colour', "%$colour%");
$sth->execute();
?>

Exemple #2 Exécute une requête préparée avec un tableau de valeurs nommées

<?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, 'colour' => $colour));
/* Les clés du tableau peuvent aussi être préfixées par des deux-points ":" (facultatif) */
$sth->execute(array(':calories' => $calories, ':couleur' => $couleur));
?>

Exemple #3 Exécute une requête préparée avec un tableau de valeurs positionnels

<?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 des variables lié à 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() - Récupère les lignes restantes d'un ensemble de résultats
  • 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, PHP 8, PECL pdo >= 0.1.0)

PDOStatement::fetch — Récupère la ligne suivante d'un jeu de résultats PDO

Description

public PDOStatement::fetch(int $mode = PDO::FETCH_DEFAULT, int $cursorOrientation = PDO::FETCH_ORI_NEXT, int $cursorOffset = 0): mixed

Récupère une ligne depuis un jeu de résultats associé à l'objet PDOStatement. Le paramètre mode détermine la façon dont PDO retourne la ligne.

Liste de paramètres

mode

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 et en appelant le constructeur par la suite, sauf si PDO::FETCH_PROPS_LATE est également donné. 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, et renvoie un objet PDORow qui crée les noms de propriété de l'objet au fur et à mesure de leur accès.

  • 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

  • PDO::FETCH_PROPS_LATE : lorsqu'il est utilisé avec PDO::FETCH_CLASS, le constructeur de la classe est appelé avant que les propriétés ne soient assignées à partir des valeurs de colonne respectives.

cursorOrientation

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().

cursorOffset

Pour un objet PDOStatement représentant un curseur scrollable pour lequel le paramètre cursorOrientation 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 cursorOrientation 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 ou s'il n'y a plus de lignes.

Erreurs / Exceptions

Émet une erreur de niveau E_WARNING si l'attribut PDO::ATTR_ERRMODE est défini à PDO::ERRMODE_WARNING.

Lève une exception PDOException si l'attribut PDO::ATTR_ERRMODE est défini à PDO::ERRMODE_EXCEPTION.

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 PDORow 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 PDORow 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';
$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;
}
}
function readDataBackwards($dbh) {
$sql = 'SELECT hand, won, bet FROM mynumbers ORDER BY bet';
$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));
}

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

Exemple #3 Ordre de construction

Lorsque des objets sont récupérés via PDO::FETCH_CLASS, les propriétés de l'objet sont assignées en premier, puis le constructeur de la classe est appelé. Si PDO::FETCH_PROPS_LATE est également donné, cet ordre est inversé, c'est à dire d'abord le constructeur est appelé, et ensuite les propriétés sont assignées.

<?php
class Person
{
private $name;

public function __construct()
{
$this->tell();
}

public function tell()
{
if (isset($this->name)) {
echo "Je suis {$this->name}.\n";
} else {
echo "Je n'ai pas encore de nom.\n";
}
}
}

$sth = $dbh->query("SELECT * FROM people");
$sth->setFetchMode(PDO::FETCH_CLASS, 'Person');
$person = $sth->fetch();
$person->tell();
$sth->setFetchMode(PDO::FETCH_CLASS|PDO::FETCH_PROPS_LATE, 'Person');
$person = $sth->fetch();
$person->tell();
?>

Résultat de l'exemple ci-dessus est similaire à :

Je suis Alice.
Je suis Alice.
Je n'ai pas encore de nom.
Je suis Bob.

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() - Récupère les lignes restantes d'un ensemble de résultats
  • 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


Récupère les lignes restantes d'un ensemble de résultats

  • « PDOStatement::fetch
  • PDOStatement::fetchColumn »
  • PHP Manual
  • PDOStatement
  • Récupère les lignes restantes d'un ensemble de résultats

PDOStatement::fetchAll

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDOStatement::fetchAll — Récupère les lignes restantes d'un ensemble de résultats

Description

public PDOStatement::fetchAll(int $mode = PDO::FETCH_DEFAULT): array
public PDOStatement::fetchAll(int $mode = PDO::FETCH_COLUMN, int $column): array
public PDOStatement::fetchAll(int $mode = PDO::FETCH_CLASS, string $class, ?array $constructorArgs): array
public PDOStatement::fetchAll(int $mode = PDO::FETCH_FUNC, callable $callback): array

Liste de paramètres

mode

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 column.

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.

Les paramètres suivants sont dynamiques et dépendent du mode de récupération. Ils ne peuvent pas être utilisés avec des paramètres nommés.
column

Utilisé avec PDO::FETCH_COLUMN. Renvoie la colonne indiquée indexée à 0.

class

Utilisé avec PDO::FETCH_CLASS. Renvoie des instances de la classe spécifiée, en faisant correspondre les colonnes de chaque ligne à des propriétés nommées dans la classe.

constructorArgs

Arguments du constructeur personnalisé de la classe lorsque l'argument mode est à PDO::FETCH_CLASS.

callback

Utilisé avec PDO::FETCH_FUNC. Renvoie les résultats de l'appel de la fonction spécifiée, en utilisant les colonnes de chaque ligne comme paramètres dans l'appel.

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. Un tableau vide est retourné s'il y a zéro résultat.

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.

Erreurs / Exceptions

Émet une erreur de niveau E_WARNING si l'attribut PDO::ATTR_ERRMODE est défini à PDO::ERRMODE_WARNING.

Lève une exception PDOException si l'attribut PDO::ATTR_ERRMODE est défini à PDO::ERRMODE_EXCEPTION.

Historique

Version | Description
8.0.0 | Cette méthode retourne désormais toujours un tableau, auparavant false pouvait être retourné en cas d'échec.

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);
?>

Résultat de l'exemple ci-dessus est similaire à :

Récupération de toutes les lignes d'un jeu de résultats :
Array
(
    [0] => Array
        (
            [nom] => apple
            [0] => apple
            [couleur] => red
            [1] => red
        )

    [1] => Array
        (
            [nom] => pear
            [0] => pear
            [couleur] => green
            [1] => green
        )

    [2] => 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);
?>

Résultat de l'exemple ci-dessus est 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));
?>

Résultat de l'exemple ci-dessus est 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) "pink"
    }
}

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);
?>

Résultat de l'exemple ci-dessus est 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"
  }
  [3]=>
  object(fruit)#4 (2) {
    ["name"]=>
    string(5) "apple"
    ["colour"]=>
    string(3) "red"
  }
  [4]=>
  object(fruit)#5 (2) {
    ["name"]=>
    string(4) "pear"
    ["colour"]=>
    string(5) "green"
  }
}

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);
?>

Résultat de l'exemple ci-dessus est similaire à :

array(3) {
  [0]=>
  string(12) "apple: green"
  [1]=>
  string(12) "pear: yellow"
  [2]=>
  string(16) "watermelon: pink"
  [3]=>
  string(10) "apple: red"
  [4]=>
  string(11) "pear: green"
}

Voir aussi

  • PDO::query() - Prépare et Exécute une requête SQL sans marque substitutive
  • 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, PHP 8, PECL pdo >= 0.9.0)

PDOStatement::fetchColumn — Retourne une colonne depuis la ligne suivante d'un jeu de résultats

Description

public PDOStatement::fetchColumn(int $column = 0): mixed

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

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 ou false s'il n'y a plus de lignes.

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.

Erreurs / Exceptions

Émet une erreur de niveau E_WARNING si l'attribut PDO::ATTR_ERRMODE est défini à PDO::ERRMODE_WARNING.

Lève une exception PDOException si l'attribut PDO::ATTR_ERRMODE est défini à PDO::ERRMODE_EXCEPTION.

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() - Prépare et Exécute une requête SQL sans marque substitutive
  • PDOStatement::fetch() - Récupère la ligne suivante d'un jeu de résultats PDO
  • PDOStatement::fetchAll() - Récupère les lignes restantes d'un ensemble 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


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, PHP 8, PECL pdo >= 0.2.4)

PDOStatement::fetchObject — Récupère la prochaine ligne et la retourne en tant qu'objet

Description

public PDOStatement::fetchObject(?string $class = "stdClass", array $constructorArgs = []): object|false

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.

Lorsqu'un objet est récupéré, ses propriétés sont assignées à partir des valeurs de colonne respectives, et ensuite son constructeur est appelé.

Liste de paramètres

class

Nom de la classe créée.

constructorArgs

É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.

Erreurs / Exceptions

Émet une erreur de niveau E_WARNING si l'attribut PDO::ATTR_ERRMODE est défini à PDO::ERRMODE_WARNING.

Lève une exception PDOException si l'attribut PDO::ATTR_ERRMODE est défini à PDO::ERRMODE_EXCEPTION.

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, PHP 8, PECL pdo >= 0.2.0)

PDOStatement::getAttribute — Récupère un attribut de requête

Description

public PDOStatement::getAttribute(int $name): mixed

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.

Notez que les attributs spécifiques au pilote ne doivent pas être utilisés avec d'autres pilotes.

Liste de paramètres

name

L'attribut à interroger.

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::getIterator »
  • 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, PHP 8, PECL pdo >= 0.2.0)

PDOStatement::getColumnMeta — Retourne les métadonnées pour une colonne d'un jeu de résultats

Description

public PDOStatement::getColumnMeta(int $column): array|false

Récupère les métadonnées pour une colonne d'un jeu de résultats dans un tableau associatif.

Avertissement

Certains pilotes peuvent ne pas implémenter la fonction PDOStatement::getColumnMeta(), car elle est facultative. Cependant, tous les pilotes PDO documentés dans le manuel implémentent cette fonction.

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 métadonnées pour une colonne :

Métadonnées 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.

Exemples

Exemple #1 Récupération des métadonnées pour une colonne

L'exemple suivant montre le résultat de la récupération des métadonnées 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()


Gets result set iterator

  • « PDOStatement::getColumnMeta
  • PDOStatement::nextRowset »
  • PHP Manual
  • PDOStatement
  • Gets result set iterator

PDOStatement::getIterator

(PHP 8)

PDOStatement::getIterator — Gets result set iterator

Description

public PDOStatement::getIterator(): Iterator

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Avance à la prochaine ligne de résultats d'un gestionnaire de lignes de résultats multiples

  • « PDOStatement::getIterator
  • 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, PHP 8, 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 PDOStatement::nextRowset(): bool

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.

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 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_ROWSETS, qui retourne trois lignes de résultats. Une boucle do-while est utilisé pour parcourir la méthode PDOStatement::nextRowset(), qui retourne false et termine la boucle quand il n'y a plus de ligne de résultats disponible.

<?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() - Prépare et Exécute une requête SQL sans marque substitutive


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, PHP 8, PECL pdo >= 0.1.0)

PDOStatement::rowCount — Retourne le nombre de lignes affectées par le dernier appel à la fonction PDOStatement::execute()

Description

public PDOStatement::rowCount(): int

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.

Note:

Cette méthode retourne toujours "0" (zéro) avec le pilote SQLite, et avec le pilote PostgreSQL uniquement quand l'attribut de déclaration PDO::ATTR_CURSOR est définie à PDO::CURSOR_SCROLL.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre de lignes.

Erreurs / Exceptions

Émet une erreur de niveau E_WARNING si l'attribut PDO::ATTR_ERRMODE est défini à PDO::ERRMODE_WARNING.

Lève une exception PDOException si l'attribut PDO::ATTR_ERRMODE est défini à PDO::ERRMODE_EXCEPTION.

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";
?>

Résultat de l'exemple ci-dessus est similaire à :

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 correspondantes.

<?php
$sql = "SELECT COUNT(*) FROM fruit WHERE calories > 100";
$res = $conn->query($sql);
$count = $res->fetchColumn();

print "Il y a " . $count . " ligne(s) correspondante(s).";
?>

Résultat de l'exemple ci-dessus est similaire à :

Il y  2 ligne(s) correspondante(s).

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() - Prépare et Exécute une requête SQL sans marque substitutive


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, PHP 8, PECL pdo >= 0.2.0)

PDOStatement::setAttribute — Définit un attribut de requête

Description

public PDOStatement::setAttribute(int $attribute, mixed $value): bool

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.

Notez que les attributs spécifiques au pilote ne doivent pas être utilisés avec d'autres pilotes.

Liste de paramètres

attribute

L'attribut à modifier.

value

La valeur pour définir l'attribute, peut nécessiter un type spécifique selon l'attribut.

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
  • PDORow »
  • 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, PHP 8, PECL pdo >= 0.2.0)

PDOStatement::setFetchMode — Définit le mode de récupération par défaut pour cette requête

Description

public PDOStatement::setFetchMode(int $mode): bool
public PDOStatement::setFetchMode(int $mode = PDO::FETCH_COLUMN, int $colno): bool
public PDOStatement::setFetchMode(int $mode = PDO::FETCH_CLASS, string $class, ?array $constructorArgs = null): bool
public PDOStatement::setFetchMode(int $mode = PDO::FETCH_INTO, object $object): bool

Liste de paramètres

mode

Le mode de récupération doit être une des constantes PDO::FETCH_*.

colno

Numéro de la colonne.

class

Nom de la classe.

constructorArgs

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
$stmt = $dbh->query('SELECT name, colour, calories FROM fruit');
$stmt->setFetchMode(PDO::FETCH_NUM);
foreach ($stmt as $row) {
print $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\n";
}
?>

Résultat de l'exemple ci-dessus est similaire à :

apple   red     150
banana  yellow  250
orange  orange  300
kiwi    brown   75
lemon   yellow  25
pear    green   150


La classe PDORow

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 1.0.0)

Introduction

Représente une ligne d'un jeu de résultats retourné par PDOStatement::fetch() appelé avec le mode de récupération PDO_FETCH_LAZY.

Les objets de cette classe ne peuvent pas être instanciés et ne sont pas sérialisables.

La classe PDORow permet d'accéder aux données retournées comme si les modes PDO::FETCH_OBJ et PDO::FETCH_BOTH étaient utilisés. Cela signifie que les données retournées peuvent être accédées comme des propriétés d'objet, et comme un tableau indexé par le nom de la colonne et un numéro de position de colonne.

Attention

Accéder à une propriété non définie retourne null sans émettre de message d'avertissement.

Synopsis de la classe

final class PDORow {
/* Propriétés */
public string $queryString;
}

Propriétés

queryString

La requête utilisée par PDOStatement qui a retourné l'objet PDORow.

Erreurs / Exceptions

Lance une erreur de type Error lorsqu'on tente d'écrire ou de unset() une propriété.


La classe PDOException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

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

class PDOException extends RuntimeException {
/* Propriétés */
protected int|string $code;
public ?array $errorInfo = null;
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private 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)

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/8.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


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

(PECL PDO_CUBRID >= 8.3.0.0001)

PDO::cubrid_schema — Récupère le schéma d'informations demandé

Description

public PDO::cubrid_schema(int $schema_type, string $table_name = ?, string $col_name = ?): array

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.

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 (int)

Configure le format de la date.

PDO::FB_ATTR_TIME_FORMAT (int)

Configure le format de l'heure.

PDO::FB_ATTR_TIMESTAMP_FORMAT (int)

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.

dialect

Le dialecte de la base de donnée ; soit 1 ou 3. Si pas spécifié, le dialect par défaut est 3. Disponible à partir de PHP 7.4.0.

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

Exemple #4 Un DSN PDO_FIREBIRD pour se connecter à une base de donnée en dialecte 1

L'exemple suivant montre un DSN PDO_FIREBIRD pour se connecter à une base de donnée Firebird test.fdb qui a été créeé en utilisant le dialecte 1. Ceci est uniquement supporté à partir de PHP 7.4.0.

firebird:dbname=localhost:/var/lib/firebird/2.5/data/test.fdb;CHARSET=Windows-1252;dialect=1


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 du 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.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

PDO_IBM Configuration Options
Nom | Défaut | Modifiable | Historique
pdo_ibm.i5_dbcs_alloc | "0" | INI_SYSTEM | Added in PDO_IBM 1.5.0
pdo_ibm.i5_override_ccsid | "0" | INI_SYSTEM | Added in PDO_IBM 1.5.0
Pour plus de détails sur les modes INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

pdo_ibm.i5_dbcs_alloc int

This options affects the internal buffer allocation strategy on IBM i. By default, this option is 0. When this option is set, buffers are allocated with a much larger size, in case the database is misleading about character size when converting between encodings. This option uses six times as much memory for buffers (to account for the largest possible UTF-8 sequences), but may be needed if truncated data is returned.

  • 0 - Minimum size buffers are allocated.

  • 1 - Larger size buffers are allocated.

pdo_ibm.i5_override_ccsid int

The ASCII CCSID to use for conversion from EBCDIC on IBM i. Setting this to 1208 will use UTF-8. By default, this is 0, which will select the default ASCII job CCSID.

To learn more about CCSIDs on IBM i, consult the » IBM documentation.

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 du 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 MySQL.

PDO_MYSQL utilises des requêtes préparées émulées par défaut.

MySQL 8

Si PHP est utilisé dans une version 7.1 antérieure à la version 7.1.16, ou PHP 7.2 antérieure à 7.2.4, le plugin de mot de passe doit être défini à mysql_native_password pour MySQL 8 Server, car sinon des erreurs similaires à The server requested authentication method unknown to the client [caching_sha2_password] peuvent apparaitre, même si caching_sha2_password n'est pas utilisé.

Ceci est dû au fait que MySQL 8 utilise par défaut caching_sha2_password, un plugin qui n'est pas reconnu par les anciennes versions de PHP (mysqlnd). À la place il faut modifier le paramètre default_authentication_plugin=mysql_native_password dans my.cnf. Le plugin caching_sha2_password est pleinement supporté à partir de PHP 7.4.4. Pour les versions antérieures, l'extension mysql_xdevapi le supporte.

Avertissement

Prendre garde toutefois : 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, toute requête DLL publiée enverra implicitement l'ensemble des transactions en attente.

Note:

Le pilote MySQL ne supporte pas proprement PDO::PARAM_INPUT_OUTPUT via PDOStatement::bindParam(); tandis que de tel paramètres peuvent être utilisé, il ne seront pas mis à jour (c.à.d. la sortie actuel est ignoré).

Installation

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, les bibliothèques clientes doivent souvent être installées au moyen d'un paquet additionnel. Voyez si c'est le cas pour votre distribution.

Par exemple, sur Ubuntu le package php5-mysql installe les extensions PHP ext/mysql, ext/mysqli, et pdo_mysql. Sur CentOS, le package php-mysql installe aussi ces trois extensions PHP.

Alternativement, vous pouvez compiler cette extension vous-même. Construire PHP depuis les sources permet de préciser les extensions MySQL à embarquer, mais aussi les bibliothèques clientes de chaque extension.

Lors de la compilation utilisez --with-pdo-mysql[=DIR] pour installer l'extension PDO MySQL, où [=DIR] est le chemin de la bibliothèque de base de MySQL. Mysqlnd et la bibliothèque par défaut. Pour plus de détails à propos du choix de la bibliothèque, voir Choisir une bibliothèque MySQL.

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ée pour définir le préfixe d'installation zlib.

$ ./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.

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 (bool)
Par défaut, toutes les instructions sont exécutées en mode buffered. Si cet attribut est défini sur false pour un objet PDO, le pilote MySQL utilisera le mode non bufferisé.

Exemple #1 Activation du mode non mis en cache de MySQL

<?php
$pdo = new PDO("mysql:host=localhost;dbname=world", 'my_user', 'my_password');
$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);

$unbufferedResult = $pdo->query("SELECT Name FROM City");
foreach ($unbufferedResult as $row) {
echo $row['Name'] . PHP_EOL;
}
?>

PDO::MYSQL_ATTR_LOCAL_INFILE (int)

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_LOCAL_INFILE_DIRECTORY (string)

Permet de restreindre le chargement de LOCAL DATA aux fichiers localisé dans le dossier désigné. Disponible à partir de PHP 8.1.0.

Note, cette constante peut seulement être utilisé dans le tableau driver_options lors de la construction d'un nouvel gestionnaire de base de donnée.

PDO::MYSQL_ATTR_INIT_COMMAND (string)

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 (int)

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 (int)

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 (int)

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 (int)

Effectue des requêtes directes, sans utiliser de requêtes préparées.

PDO::MYSQL_ATTR_FOUND_ROWS (int)

Retourne le nombre d'enregistrements trouvés, pas le nombre d'enregistrements changés.

PDO::MYSQL_ATTR_IGNORE_SPACE (int)

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 (int)

Active la compression de la communication réseau.

PDO::MYSQL_ATTR_SSL_CA (int)

Chemin vers l'autorité certificat SSL.

PDO::MYSQL_ATTR_SSL_CAPATH (int)

Chemin vers le dossier contenant les certificats SSL CA, stockés au format PEM.

PDO::MYSQL_ATTR_SSL_CERT (int)

Chemin vers le certificat SSL.

PDO::MYSQL_ATTR_SSL_CIPHER (int)

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

PDO::MYSQL_ATTR_SSL_KEY (int)

Chemin vers la clé SSL.

PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT (int)

Fournit un moyen de désactiver la vérification du certificat SSL du serveur. Cette option est disponible uniquement avec mysqlnd.

Existe à partir de PHP 7.0.18 et PHP 7.1.4.

PDO::MYSQL_ATTR_MULTI_STATEMENTS (int)

Désactive la requête d'exécution multiple à la fois dans PDO::prepare() et PDO::query() quand définie à false.

Il est à noter que cette constante peut seulement être utilisée dans le tableau driver_options lors de la construction d'un nouveau gestionnaire de base de données.

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" | INI_SYSTEM
pdo_mysql.debug | NULL | INI_SYSTEM
Pour plus de détails sur les modes 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 bool

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.

Exemples

Exemple #1 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

La version la plus récente du pilote est disponible au téléchargement ici : » téléchargement SQLSRV. Les sources du pilote sont hébergées dans un » dépôt public.

Pour plus d'information à propos des exigences système, consultez le chapitre sur les » exisgences systèmes SQLSRV.

Sur Windows, l'extension PDO_SQLSRV est activée en téléchargeant et en ajoutant les fichiers DLL appropriés dans le répertoire d'extension PHP et l'entrée correspondante dans le fichier php.ini.

Sur Linux et macOS, l'extension PDO_SQLSRV peut être installée en utilisant » PECL. Voir le » tutoriel d'installation pour plus de détails. » 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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 multioctet, 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 (int)
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 (int)
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 (int)
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 (int)
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

(PECL pdo_sqlsrv >= 2.0.1)

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 autosigné.

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

Si la base de donnée Oracle est sur la même que PHP, le logiciel de base de donnée contient déjà les bibliothèquess nécessaire. Quand PHP est sur une machine différente, utilisez les biliothèques gratuites » Oracle Instant Client. Pour plus de détails consultez la section sur Prérequis OCI8.

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

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::OCI_ATTR_ACTION (int)

Fournit un moyen de spécifier l'action sur la session de base de données.

Existe à partir de PHP 7.2.16 et 7.3.3

PDO::OCI_ATTR_CLIENT_INFO (int)

Fournit un moyen de spécifier l'information du client sur la session de base de données.

Existe à partir de PHP 7.2.16 et 7.3.3

PDO::OCI_ATTR_CLIENT_IDENTIFIER (int)

Fournit un moyen de spécifier l'identifiant de client sur la session de base de données.

Existe à partir de PHP 7.2.16 et 7.3.3

PDO::OCI_ATTR_MODULE (int)

Fournit un moyen de spécifier le module sur la session de base de données.

Existe à partir de PHP 7.2.16 et 7.3.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 express-C.

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, php_pdo_odbc.dll doit être activé en tant qu'extension dans php.ini. 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.

Installation

PDO_ODBC sur les systèmes UNIX

  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 developerWorks.

    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

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_ODBC_TYPE (string)

PDO::ODBC_ATTR_USE_CURSOR_LIBRARY (int)

This option controls whether the ODBC cursor library is used. The ODBC cursor library supports some advanced ODBC features (e.g. block scrollable cursors), which may not be implemented by the driver. The following values are supported:

  • PDO::ODBC_SQL_USE_IF_NEEDED (the default): use the ODBC cursor library when needed.

  • PDO::ODBC_SQL_USE_DRIVER: never use the ODBC cursor library.

  • PDO::ODBC_SQL_USE_ODBC: always use the ODBC cursor library.

PDO::ODBC_ATTR_ASSUME_UTF8 (bool)

Windows only. If true, UTF-16 encoded character data (CHAR, VARCHAR and LONGVARCHAR) is converted to UTF-8 when reading from or writing data to the database. If false (the default), character encoding conversion may be done by the driver.

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" | INI_ALL |
pdo_odbc.db2_instance_name | null | INI_SYSTEM | Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
Pour plus de détails sur les modes 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

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::PGSQL_ATTR_DISABLE_PREPARES (int)

Send the query and the parameters to the server together in a single call, avoiding the need to create a named prepared statement separately. If the query is only going to be executed once this can reduce latency by avoiding an unnecessary server round-trip.

Notes générales

Note:

Les champs bytea sont retournés sous forme de flux.

Sommaire

  • PDO_PGSQL DSN — Connexion aux bases de données PostgreSQL
  • PDO::pgsqlCopyFromArray — Copie des données d'un tableau PHP dans une table
  • PDO::pgsqlCopyFromFile — Copie des données d'un fichier dans une table
  • PDO::pgsqlCopyToArray — Copie des données d'une table de base de donnée dans un tableau PHP
  • PDO::pgsqlCopyToFile — Copie des données d'une table dans un fichier
  • 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

(PHP 5 >= 5.1.0, PHP 7, 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.

sslmode

Le mode SSL. Les valeurs prises en charge et leur signification sont listées dans la section » Documentation PostgreSQL.

Note: Tous les points-virgules dans la chaîne DSN sont remplacés par des espaces, parce que PostgreSQL s'attend à ce format. Cela implique que les points-virgules dans l'un des composants (par exemple password ou dbname) ne sont pas supportés.

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


Copie des données d'un tableau PHP dans une table

  • « PDO_PGSQL DSN
  • PDO::pgsqlCopyFromFile »
  • PHP Manual
  • PostgreSQL (PDO)
  • Copie des données d'un tableau PHP dans une table

PDO::pgsqlCopyFromArray

(PHP 5 >= 5.3.3, PHP 7, PHP 8)

PDO::pgsqlCopyFromArray — Copie des données d'un tableau PHP dans une table

Description

public PDO::pgsqlCopyFromArray(
string $table_name,
array $rows,
string $delimiter = "\t",
string $null_as = "\\\\N",
string $fields = ?
): bool

Copie des données du tableau row dans la table table_name en utilisant delimiter comme délimiteur de champs et la liste fields

Liste de paramètres

table_name

chaîne de caractères contenant le nom de la table.

rows

Un tableau de chaîne de caractères avec les champs séparé par delimiter.

delimiter

Délimiteur utilisé dans le tableau rows.

null_as

Comment interpréter les valeurs nulles.

fields

Liste de champs à insérer.

Valeurs de retour

Retourne true en cas de succès, ou false si une erreur survient.


Copie des données d'un fichier dans une table

  • « PDO::pgsqlCopyFromArray
  • PDO::pgsqlCopyToArray »
  • PHP Manual
  • PostgreSQL (PDO)
  • Copie des données d'un fichier dans une table

PDO::pgsqlCopyFromFile

(PHP 5 >= 5.3.3, PHP 7, PHP 8)

PDO::pgsqlCopyFromFile — Copie des données d'un fichier dans une table

Description

public PDO::pgsqlCopyFromFile(
string $table_name,
string $filename,
string $delimiter = "\t",
string $null_as = "\\\\N",
string $fields = ?
): bool

Copie des données d'un fichié spécifié par filename dans la table table_name en utilisant delimiter comme délimiteur de champs et la liste fields

Liste de paramètres

table_name

chaîne de caractères contenant le nom de la table.

filename

Nom de fichier d'où importer les données.

delimiter

Délimiteur utilisé dans le fichier spécifié par filename.

null_as

Comment interpréter les valeurs nulles.

fields

Liste de champs à insérer.

Valeurs de retour

Retourne true en cas de succès, ou false si une erreur survient.


Copie des données d'une table de base de donnée dans un tableau PHP

  • « PDO::pgsqlCopyFromFile
  • PDO::pgsqlCopyToFile »
  • PHP Manual
  • PostgreSQL (PDO)
  • Copie des données d'une table de base de donnée dans un tableau PHP

PDO::pgsqlCopyToArray

(PHP 5 >= 5.3.3, PHP 7, PHP 8)

PDO::pgsqlCopyToArray — Copie des données d'une table de base de donnée dans un tableau PHP

Description

public PDO::pgsqlCopyToArray(
string $table_name,
string $delimiter = "\t",
string $null_as = "\\\\N",
string $fields = ?
): array|false

Copie des données de table dans un tableau en utilisant delimiter comme délimiteur de champs et la liste fields

Liste de paramètres

table_name

chaîne de caractères contenant le nom de la table.

delimiter

Délimiteur utilisé dans les lignes.

null_as

Comment interpréter les valeurs nulles.

fields

Liste des champs à exporter.

Valeurs de retour

Retourne un tableau de lignes, ou false si une erreur survient.


Copie des données d'une table dans un fichier

  • « PDO::pgsqlCopyToArray
  • PDO::pgsqlGetNotify »
  • PHP Manual
  • PostgreSQL (PDO)
  • Copie des données d'une table dans un fichier

PDO::pgsqlCopyToFile

(PHP 5 >= 5.3.3, PHP 7, PHP 8)

PDO::pgsqlCopyToFile — Copie des données d'une table dans un fichier

Description

public PDO::pgsqlCopyToFile(
string $table_name,
string $filename,
string $delimiter = "\t",
string $null_as = "\\\\N",
string $fields = ?
): bool

Copie des données d'une table dans un fichié spécifié par filename en utilisant delimiter comme délimiteur de champs et la liste fields

Liste de paramètres

table_name

chaîne de caractères contenant le nom de la table.

filename

Nom de fichier où exporter les données.

delimiter

Délimiteur utilisé dans le fichier spécifié par filename.

null_as

Comment interpréter les valeurs nulles.

fields

Liste de champs à insérer.

Valeurs de retour

Retourne true en cas de succès, 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, PHP 8)

PDO::pgsqlGetNotify — Récupère une notification asynchrone

Description

public PDO::pgsqlGetNotify(int $result_type = PDO::FETCH_USE_DEFAULT, int $ms_timeout = 0): array|false

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, PHP 8)

PDO::pgsqlGetPid — Récupère le PID du serveur

Description

public PDO::pgsqlGetPid(): int

Retourne le PID du serveur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8, PECL pdo_pgsql >= 1.0.2)

PDO::pgsqlLOBCreate — Crée un nouvel objet large

Description

public PDO::pgsqlLOBCreate(): string

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, PHP 8, PECL pdo_pgsql >= 1.0.2)

PDO::pgsqlLOBOpen — Ouvre un flux existant de large objet

Description

public PDO::pgsqlLOBOpen(string $oid, string $mode = "rb"): resource|false

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, PHP 8, PECL pdo_pgsql >= 1.0.2)

PDO::pgsqlLOBUnlink — Supprime un objet large

Description

public PDO::pgsqlLOBUnlink(string $oid): bool

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_SQLITE 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.

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. À partir de PHP 7.4.0 » libsqlite = 3.5.0 est requis. Aupravant, la libsqlite intégré pouvait être utilisé à la place, et était par défaut, si [=DIR] était omis.

Note: Installation supplméntaire sur Windows à partir de PHP 7.4.0

Afin de faire fonctionner cette extension, quelques bibliothèques DLL doivent être disponibles via le PATH du système Windows. Lisez la F.A.Q 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 : libsqlite3.dll.

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

(PHP 5 >= 5.1.0, PHP 7, 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, vous devez ajouter le chemin absolu au préfixe DSN.

  • Pour créer une base de données en mémoire, vous devez ajouter :memory: au préfixe DSN.

  • Si le DSN ne contient que le préfixe DSN, une base de données temporaire sera créée, et qui sera supprimée lorsque la connexion sera fermée.

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:
sqlite:


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, PHP 8, 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 PDO::sqliteCreateAggregate(
string $function_name,
callable $step_func,
callable $finalize_func,
int $num_args = ?
): bool
Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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 :

step(
mixed $context,
int $rownumber,
mixed $value,
mixed ...$values
): mixed
context

null pour la première ligne ; sur les lignes suivantes ceci aura la valeur qui a été précedement retourné par la fonction step ; vous devriez utiliser ceci pour maintenir l'état d'aggregation.

rownumber

Le numéro de ligne courante.

value

Le premier argument à passer à l'agrégateur.

values

Arguments supplémentaires à passer à l'agrégateur.

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 doit retourner un type compris par SQLite (c'est-à-dire un type scalaire).

Cette fonction doit être définie comme :

fini(mixed $context, int $rowcount): mixed
context

Contient la valeur de retour du tout dernier appel à la fonction step.

rowcount

Contient le nombre de lignes sur lesquelles l'agrégat a été effectué.

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 === null ? 0 : $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.

Voir aussi

  • PDO::sqliteCreateFunction
  • sqlite_create_function()
  • sqlite_create_aggregate()


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, PHP 8)

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 PDO::sqliteCreateCollation(string $name, callable $callback): bool
Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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 :

collation(string $string1, string $string2): int

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


Référence une fonction définie par l'utilisateur pour une utilisation dans les requêtes SQL

  • « PDO::sqliteCreateCollation
  • Extensions spécifiques des fabricants de bases de données »
  • 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, PHP 8, 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 PDO::sqliteCreateFunction(
string $function_name,
callable $callback,
int $num_args = -1,
int $flags = 0
): bool
Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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).

Cette fonction doit être définit comme :

callback(mixed $value, mixed ...$values): mixed
value

Le premier argument à passer à la fonction SQL.

values

Arguments supplémentaires à passer à la fonction SQL.

num_args

Nombre d'arguments que la fonction SQL prend. Si ce paramètre est -1, la fonction SQL peut prendre n'importe quel nombre d'arguments.

flags

Une conjonction d'opérations de bits d'indicateurs. Actuellement, seul PDO::SQLITE_DETERMINISTIC est pris en charge, ce qui spécifie que la fonction retourne toujours le même résultat étant donné les mêmes entrées dans une seule instruction SQL.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
7.1.4 | Le paramètre flags a été ajouté.

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.

Voir aussi

  • PDO::sqliteCreateAggregate
  • sqlite_create_function()
  • sqlite_create_aggregate()


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
  • dBase
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions dBase
  • Firebird/InterBase
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Firebird/InterBase
  • IBM DB2 — Fonctions IBM DB2, Cloudscape et Apache Derby
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions IBM DB2
  • MongoDB — MongoDB driver
    • Installation/Configuration
    • Tutorials
    • Driver Architecture and Internals — Explains the driver architecture, and special features
    • Security
    • MongoDB\Driver — MongoDB driver classes
    • MongoDB\BSON — Classes de types BSON et fonctions de sérialisation
    • MongoDB\Driver\Monitoring — Monitoring classes and subscriber functions
    • MongoDB\Driver\Exception — Exception classes
  • MySQL — Plugins et drivers MySQL
    • Aperçu des drivers PHP MySQL
    • MySQLi — Extension mysqli
    • Mysql_xdevapi
    • MySQL (Original) — API MySQL originale
    • Mysqlnd — Le pilote natif MySQL
  • 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 Transparent Application Failover (TAF) Support
    • OCI8 et le suivi dynamique DTrace
    • Types de données supportées par le driver
    • Fonctions OCI8
    • OCICollection — La classe OCICollection
    • OCILob — La classe OCILob
    • Fonctions et alias OCI8 obsolètes
  • PostgreSQL
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions PostgreSQL
    • PgSql\Connection — La classe PgSql\Connection
    • PgSql\Result — La classe PgSql\Result
    • PgSql\Lob — La classe PgSql\Lob
  • SQLite3
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • SQLite3 — La classe SQLite3
    • SQLite3Exception — The SQLite3Exception class
    • SQLite3Stmt — La classe SQLite3Stmt
    • SQLite3Result — La classe SQLite3Result
  • SQLSRV — Driver Microsoft SQL Server pour PHP
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions SQLSRV


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 : » https://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 index 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

cubrid_bind(
resource $req_identifier,
int $bind_index,
mixed $bind_value,
string $bind_value_type = ?
): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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

cubrid_close_prepare(resource $req_identifier): bool

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

cubrid_close_request(resource $req_identifier): bool

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

cubrid_col_get(resource $conn_identifier, string $oid, string $attr_name): array

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

cubrid_col_size(resource $conn_identifier, string $oid, string $attr_name): int

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, ou false si une erreur survient.

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

cubrid_column_names(resource $req_identifier): array

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, ou false si une erreur survient.

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

cubrid_column_types(resource $req_identifier): array

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, ou false si une erreur survient.

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

cubrid_commit(resource $conn_identifier): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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

cubrid_connect_with_url(
string $conn_url,
string $userid = ?,
string $passwd = ?,
bool $new_link = false
): resource

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, ou false si 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

cubrid_connect(
string $host,
int $port,
string $dbname,
string $userid = ?,
string $passwd = ?,
bool $new_link = false
): resource

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, ou false si une erreur survient.

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

cubrid_current_oid(resource $req_identifier): string

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, ou false si une erreur survient.

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

cubrid_disconnect(resource $conn_identifier = ?): bool

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

Cette fonction retourne true en cas de succès ou 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

cubrid_drop(resource $conn_identifier, string $oid): bool

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

Cette fonction retourne true en cas de succès ou 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

cubrid_error_code_facility(): int

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

cubrid_error_code(): int

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

cubrid_error_msg(): string

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

cubrid_execute(resource $conn_identifier, string $sql, int $option = 0): resource
cubrid_execute(resource $request_identifier, int $option = 0): bool

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, ou 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

cubrid_fetch(resource $result, int $type = CUBRID_BOTH): mixed

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

cubrid_free_result(resource $req_identifier): bool

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

Cette fonction retourne true en cas de succès ou 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

cubrid_get_autocommit(resource $conn_identifier): bool

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

cubrid_get_charset(resource $conn_identifier): string

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, ou 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

cubrid_get_class_name(resource $conn_identifier, string $oid): string

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, ou 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

cubrid_get_client_info(): string

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, ou 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

cubrid_get_db_parameter(resource $conn_identifier): array

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, ou 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

cubrid_get_query_timeout(resource $req_identifier): int

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, ou 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

cubrid_get_server_info(resource $conn_identifier): string

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, ou 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

cubrid_get(resource $conn_identifier, string $oid, mixed $attr = ?): mixed

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

cubrid_insert_id(resource $conn_identifier = ?): string

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

cubrid_is_instance(resource $conn_identifier, string $oid): int

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

cubrid_lob_close(array $lob_identifier_array): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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

cubrid_lob_export(resource $conn_identifier, resource $lob_identifier, string $path_name): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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

cubrid_lob_get(resource $conn_identifier, string $sql): array

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, ou false si une erreur survient.

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

cubrid_lob_send(resource $conn_identifier, resource $lob_identifier): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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

cubrid_lob_size(resource $lob_identifier): string

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, ou false si une erreur survient.

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

cubrid_lob2_bind(
resource $req_identifier,
int $bind_index,
mixed $bind_value,
string $bind_value_type = ?
): bool

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

Cette fonction retourne true en cas de succès ou 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

cubrid_lob2_close(resource $lob_identifier): bool

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

Cette fonction retourne true en cas de succès ou false si 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

cubrid_lob2_export(resource $lob_identifier, string $file_name): bool

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

Cette fonction retourne true en cas de succès ou 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

cubrid_lob2_import(resource $lob_identifier, string $file_name): bool

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

Cette fonction retourne 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

cubrid_lob2_new(resource $conn_identifier = ?, string $type = "BLOB"): resource

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, ou 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

cubrid_lob2_read(resource $lob_identifier, int $len): string

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 en tant que chaîne de caractères, false quand il n'y a plus de données, ou 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

cubrid_lob2_seek64(resource $lob_identifier, string $offset, int $origin = CUBRID_CURSOR_CURRENT): bool

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

Cette fonction retourne true en cas de succès ou 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

cubrid_lob2_seek(resource $lob_identifier, int $offset, int $origin = CUBRID_CURSOR_CURRENT): bool

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

Cette fonction retourne 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

cubrid_lob2_size64(resource $lob_identifier): string

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, ou 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

cubrid_lob2_size(resource $lob_identifier): int

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, ou 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

cubrid_lob2_tell64(resource $lob_identifier): string

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, ou 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

cubrid_lob2_tell(resource $lob_identifier): int

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, ou 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

cubrid_lob2_write(resource $lob_identifier, string $buf): bool

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

Cette fonction retourne true en cas de succès ou 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

cubrid_lock_read(resource $conn_identifier, string $oid): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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

cubrid_lock_write(resource $conn_identifier, string $oid): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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

cubrid_move_cursor(resource $req_identifier, int $offset, int $origin = CUBRID_CURSOR_CURRENT): bool

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

Cette fonction retourne true en cas de succès ou 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

cubrid_next_result(resource $result): bool

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

Cette fonction retourne true en cas de succès ou false si 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

cubrid_num_cols(resource $result): int

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

cubrid_num_rows(resource $result): int

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

cubrid_pconnect_with_url(string $conn_url, string $userid = ?, string $passwd = ?): resource

É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, ou false si 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_connect_with_url() - Établit l'environnement pour une connexion au serveur CUBRID
  • cubrid_pconnect() - 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 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

cubrid_pconnect(
string $host,
int $port,
string $dbname,
string $userid = ?,
string $passwd = ?
): resource

É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, ou 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

cubrid_prepare(resource $conn_identifier, string $prepare_stmt, int $option = 0): resource

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, ou false si une erreur survient.

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

cubrid_put(
resource $conn_identifier,
string $oid,
string $attr = ?,
mixed $value
): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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

cubrid_rollback(resource $conn_identifier): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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

cubrid_schema(
resource $conn_identifier,
int $schema_type,
string $class_name = ?,
string $attr_name = ?
): array

La fonction cubrid_schema() est utilisée pour récupérer des informations d'un schéma depuis la base de données. Pour récupérer les informations d'une classe particulière, il faut définir class_name, pour récupérer les informations sur un attributs particulier (seulement utilisable avec CUBRID_SCH_ATTR_PRIVILEGE), il faut définir attr_name.

Le résultat de la fonction cubrid_schema() 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, ou false si une erreur survient.

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

cubrid_seq_drop(
resource $conn_identifier,
string $oid,
string $attr_name,
int $index
): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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

cubrid_seq_insert(
resource $conn_identifier,
string $oid,
string $attr_name,
int $index,
string $seq_element
): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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

cubrid_seq_put(
resource $conn_identifier,
string $oid,
string $attr_name,
int $index,
string $seq_element
): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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

cubrid_set_add(
resource $conn_identifier,
string $oid,
string $attr_name,
string $set_element
): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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

cubrid_set_autocommit(resource $conn_identifier, bool $mode): bool

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

Cette fonction retourne true en cas de succès ou false si 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

cubrid_set_db_parameter(resource $conn_identifier, int $param_type, int $param_value): bool

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

Cette fonction retourne true en cas de succès ou 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

cubrid_set_drop(
resource $conn_identifier,
string $oid,
string $attr_name,
string $set_element
): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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

cubrid_set_query_timeout(resource $req_identifier, int $timeout): bool

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

Cette fonction retourne true en cas de succès ou false si 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

cubrid_version(): string

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

cubrid_affected_rows(resource $conn_identifier = ?): int
cubrid_affected_rows(resource $req_identifier = ?): int

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

cubrid_client_encoding(resource $conn_identifier = ?): string

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

cubrid_close(resource $conn_identifier = ?): bool

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

cubrid_data_seek(resource $result, int $row_number): bool

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

cubrid_db_name(array $result, int $index): string

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

cubrid_errno(resource $conn_identifier = ?): int

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

cubrid_error(resource $connection = ?): string

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

cubrid_fetch_array(resource $result, int $type = CUBRID_BOTH): array

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

cubrid_fetch_assoc(resource $result, int $type = ?): array

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

cubrid_fetch_field(resource $result, int $field_offset = 0): object

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

cubrid_fetch_lengths(resource $result): array

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

cubrid_fetch_object(
resource $result,
string $class_name = ?,
array $params = ?,
int $type = ?
): object

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

cubrid_fetch_row(resource $result, int $type = ?): array

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

cubrid_field_flags(resource $result, int $field_offset): string

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

cubrid_field_len(resource $result, int $field_offset): int

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

cubrid_field_name(resource $result, int $field_offset): string

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

cubrid_field_seek(resource $result, int $field_offset = 0): bool

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

cubrid_field_table(resource $result, int $field_offset): string

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

result provient d'un appel à 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 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

cubrid_field_type(resource $result, int $field_offset): string

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

result provient d'un appel à cubrid_execute()

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

cubrid_list_dbs(resource $conn_identifier = ?): array

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

cubrid_num_fields(resource $result): int

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

cubrid_ping(resource $conn_identifier = ?): bool

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

cubrid_query(string $query, resource $conn_identifier = ?): resource

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

cubrid_real_escape_string(string $unescaped_string, resource $conn_identifier = ?): string

Cette fonction retourne la version échappée de la chaîne fournie. Elle ajoute des antislashes 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

cubrid_result(resource $result, int $row, mixed $field = 0): string

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

cubrid_unbuffered_query(string $query, resource $conn_identifier = ?): resource

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.

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);
?>

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().


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

cubrid_load_from_glo(resource $conn_identifier, string $oid, string $file_name): int

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

cubrid_new_glo(resource $conn_identifier, string $class_name, string $file_name): string

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

cubrid_save_to_glo(resource $conn_identifier, string $oid, string $file_name): int

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
  • dBase »
  • 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

cubrid_send_glo(resource $conn_identifier, string $oid): int

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


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

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.

Ces fonctions permettent d'accéder aux enregistrements des bases de données au format dBase (dbf).

Avertissement

Nous vous recommandons de ne pas utiliser les fichiers dBase comme votre base de données de production. Utilisez » SQLite ou 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.

Attention

À partir de dbase 7.0.0 les bases de données sont automatiquement vérouillées via flock(). Il n'y avait aucun support pour le vérouillage précedement, donc deux processus de serveur web concomitant modifiant le même fichier dBase aurait très probablement ruinné votre base de donnée. Ceci peut se produire même avec dbase 7.0.0+ sur les systèmes qui implémente le vérouillage au niveau du processus avec les SAPIs multithreaded.

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().

Seul les fichier dbf levels 3 (dBASE III+) - 5 (dBASE V) sont supportés. 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
T | DateTime | YYYYMMDDhhmmss.uuu | (FoxPro) Aucune vérification de validité sont faite. Disponible à partir de dbase 7.0.0.
N | Number | Un nombre | Vous devez déclarer une taille et une précision (le nombre de chiffres après le point décimal).
F | Float | Un nombre flottant | Identique à N.
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. Les chaîne de caractères trop longue seront tronquées silencieusement lors de l'enregistrement.
L | booléen | T ou Y pour true, F ou N pour false, ? pour non initialisée. | À partir de dbase 7.0.0, retourné en tant que bool (true ou false), ou null pour les champs non initialisées Précédement, retourneé en tant que int (1 ou 0).

Note:

À partir de dbase 7.0.0 les champs nullable sont supporté pour les bases de données DBASE_TYPE_FOXPRO. Si un champ est nullable, passé null définira le drapeau respectif, et lors d'une récupération ultérieur la valeur du champ sera null.

Note:

Il n'y a pas aucun support des index ou des champs memo.


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 : » https://pecl.php.net/package/dbase.


Types de ressources

À partir de dbase 7.0.0, le type de ressource dbase est définit, qui est retourné par dbase_open() et dbase_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.

DBASE_VERSION (string)
La version de l'extension (Disponible à partir de dbase 7.0.0)
DBASE_RDONLY (int)
Ouvre une base de donnée en lecture seule. Utilisé avec dbase_open(). (Disponible à partir de dbase 7.0.0)
DBASE_RDWR (int)
Ouvre une base de donnée en lecture et écriture. Utilisé avec dbase_open(). (Disponible à partir de dbase 7.0.0)
DBASE_TYPE_DBASE (int)
Créer une base de donnée style dBASE. Utilisé avec dbase_create(). (Disponible à partir de dbase 7.0.0)
DBASE_TYPE_FOXPRO (int)
Créer une base de donnée style FoxPro. Utilisé avec dbase_create(). (Disponible à partir de dbase 7.0.0)


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

dbase_add_record(resource $database, array $data): bool

dbase_add_record() ajoute les données fournies dans la base de données dBase spécifiée.

Liste de paramètres

database

La ressource de base de données, retournée par dbase_open() ou dbase_create().

data

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.

Historique

Version | Description
dbase 7.0.0 | database est maintenant une resource au lieu d'un int.

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

dbase_close(resource $database): bool

dbase_close() ferme la base de données correspondant à la ressource database.

Liste de paramètres

database

La ressource de base de données, retournée par dbase_open() ou dbase_create().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
dbase 7.0.0 | database est maintenant une resource au lieu d'un int.

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

dbase_create(string $path, array $fields, int $type = DBASE_TYPE_DBASE): resource

dbase_create() crée une base de données dBase avec la définition fournit. Si le fichier existe déjà, il n'est pas tronqué. dbase_pack() peut être appellé pour forcer une troncature.

Note:

Cette fonction est affectée par la directive de configuration open_basedir.

Liste de paramètres

path

Le chemin vers 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, une précision et un drapeau nullable. Las champs supportés sont énumérer dans la section d'introduction.

Note:

Les noms des champs sont limités en longueur et ne doivent pas excéder 10 caractères.

type

Le type de base de donnée à créer. Soit DBASE_TYPE_DBASE ou DBASE_TYPE_FOXPRO.

Valeurs de retour

Retourne une ressource de base de données si la base de données a été créée avec succès, ou false si une erreur survient.

Historique

Version | Description
dbase 7.0.0 | Le paramètre type a été ajouté.
dbase 7.0.0 | dbase_identifier is now a resource instead of an int.

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

dbase_delete_record(resource $database, int $number): bool

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

database

La ressource de base de données, retournée par dbase_open() ou dbase_create().

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.

Historique

Version | Description
dbase 7.0.0 | database est maintenant une resource au lieu d'un int.

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

dbase_get_header_info(resource $database): array

dbase_get_header_info() retourne des informations sur la structure des colonnes de la base de données référencée par la ressource database.

Liste de paramètres

database

La ressource de base de données, retournée 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.) Les types de champs supporté sont énumérés dans la section d'introdcution.
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é.

Historique

Version | Description
dbase 7.0.0 | database est maintenant une resource au lieu d'un int.

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

dbase_get_record_with_names(resource $database, int $number): array

Récupère un enregistrement d'une base de donnée dBase en tant qu'un tableau associatif.

Liste de paramètres

database

La ressource de base de données, retournée par dbase_open() ou dbase_create().

number

L'index de l'enregistrement entre 1 et dbase_numrecords($dbase_identifier).

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()). Par conséquent il n'est pas possible de récupérer la valeur d'un champ nommé deleted avec cette fonction.

Chaque champs est converti en type PHP approprié, sauf :

  • Les dates sont conservées comme chaînes de caractères.
  • Les valeurs DateTime sont converties en chaînes de caractères.
  • Les entiers en dehors de l'intervalle PHP_INT_MIN..PHP_INT_MAX sont retournés comme chaînes de caractères.
  • Avant dbase 7.0.0, les booléens (L) étaient convertis en 1 ou 0.

En cas d'erreur, dbase_get_record_with_names() retourne false.

Historique

Version | Description
dbase 7.0.0 | database est maintenant une resource au lieu d'un int.

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

dbase_get_record(resource $database, int $number): array

dbase_get_record() retourne les données de l'enregistrement record dans un tableau.

Liste de paramètres

database

La ressource de base de données, retourné par dbase_open() ou dbase_create().

number

L'index de l'enregistrement entre 1 et dbase_numrecords($dbase_identifier).

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 champs est converti en type PHP approprié, sauf :

  • Les dates sont conservées comme chaînes de caractères.
  • Les valeurs DateTime sont converties en chaînes de caractères.
  • Les entiers en dehors de l'intervalle PHP_INT_MIN..PHP_INT_MAX sont retournés comme chaînes de caractères.
  • Avant dbase 7.0.0, les booléens (L) étaient convertis en 1 ou 0.

En cas d'erreur, dbase_get_record() retourne false.

Historique

Version | Description
dbase 7.0.0 | database est maintenant une resource au lieu d'un int.

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

dbase_numfields(resource $database): int

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

database

La ressource de 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.

Historique

Version | Description
dbase 7.0.0 | database est maintenant une resource au lieu d'un int.

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

dbase_numrecords(resource $database): int

Récupère le nombre d'enregistrements (lignes) dans la base spécifié.

Note:

Les enregistrements marqués comme supprimé sont aussi compté.

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

database

Une ressource de 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.

Historique

Version | Description
dbase 7.0.0 | Le paramètre database est maintenant une resource au lieu d'un int.

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++) {
$record = dbase_get_record($db, $i);
if (!$record['deleted']) {
// faire qqch avec l'enregistrement $record
} else {
// faire qqch avec l'enregistrement supprimé $record ou l'ignorer
}
}
}

?>

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

dbase_open(string $path, int $mode): resource|false

dbase_open() ouvre une base de données dBase avec un mode d'accès donné.

Note:

Cette fonction est affectée par la directive de configuration open_basedir.

Liste de paramètres

path

Le chemin vers 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.

À partir de dbase 7.0.0 DBASE_RDONLY et DBASE_RDWR peuvent être utilisé, respectivement, pour définir le mode.

Valeurs de retour

Retourne une ressource de base de données en cas de succès, ou false si une erreur survient.

Historique

Version | Description
dbase 7.0.0 | La valeur retournée est maintenant une resource au lieu d'un int.

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);
}

?>

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

dbase_pack(resource $database): bool

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()). Notez que le fichier sera tronquer après une compactation réussie (contrairement à la commande PACK de dBASE III).

Liste de paramètres

database

La ressource database, 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.

Historique

Version | Description
dbase 7.0.0 | database est maintenant une resource au lieu d'un int.

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
  • Firebird/InterBase »
  • 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

dbase_replace_record(resource $database, array $data, int $number): bool

Remplace l'enregistrement passé dans la base de donnée avec les données fournit.

Liste de paramètres

database

La ressource database, retourné par dbase_open() ou dbase_create().

data

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.

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.

Historique

Version | Description
dbase 7.0.0 | Le paramètre database est maintenant une resource au lieu d'un int.

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');

// Remplacer l'enregistrement
dbase_replace_record($db, $row, 1);
dbase_close($db);
}

?>

Notes

Note:

Les résultats de champs booléen sont des éléments de valeur de type entier (0 ou 1) quand récupéré via dbase_get_record() ou dbase_get_record_with_names(). Si elles sont réécrite, ceci causera la valeur à devenir 0, des précautions doivent donc être prise pour ajuster correctement les valeurs.

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


Firebird/InterBase

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Fonctions Firebird/InterBase
    • fbird_add_user — Alias de ibase_add_user
    • fbird_affected_rows — Alias de ibase_affected_rows
    • fbird_backup — Alias de ibase_backup
    • fbird_blob_add — Alias de ibase_blob_add
    • fbird_blob_cancel — Annule la création d'un blob
    • fbird_blob_close — Alias de ibase_blob_close
    • fbird_blob_create — Alias de ibase_blob_create
    • fbird_blob_echo — Alias de ibase_blob_echo
    • fbird_blob_get — Alias de ibase_blob_get
    • fbird_blob_import — Alias de ibase_blob_import
    • fbird_blob_info — Alias de ibase_blob_info
    • fbird_blob_open — Alias de ibase_blob_open
    • fbird_close — Alias de ibase_close
    • fbird_commit_ret — Alias de ibase_commit_ret
    • fbird_commit — Alias de ibase_commit
    • fbird_connect — Alias de ibase_connect
    • fbird_db_info — Alias de ibase_db_info
    • fbird_delete_user — Alias de ibase_delete_user
    • fbird_drop_db — Alias de ibase_drop_db
    • fbird_errcode — Alias de ibase_errcode
    • fbird_errmsg — Alias de ibase_errmsg
    • fbird_execute — Alias de ibase_execute
    • fbird_fetch_assoc — Alias de ibase_fetch_assoc
    • fbird_fetch_object — Alias de ibase_fetch_object
    • fbird_fetch_row — Alias de ibase_fetch_row
    • fbird_field_info — Alias de ibase_field_info
    • fbird_free_event_handler — Alias de ibase_free_event_handler
    • fbird_free_query — Alias de ibase_free_query
    • fbird_free_result — Alias de ibase_free_result
    • fbird_gen_id — Alias de ibase_gen_id
    • fbird_maintain_db — Alias de ibase_maintain_db
    • fbird_modify_user — Alias de ibase_modify_user
    • fbird_name_result — Alias de ibase_name_result
    • fbird_num_fields — Alias de ibase_num_fields
    • fbird_num_params — Alias de ibase_num_params
    • fbird_param_info — Alias de ibase_param_info
    • fbird_pconnect — Alias de ibase_pconnect
    • fbird_prepare — Alias de ibase_prepare
    • fbird_query — Alias de ibase_query
    • fbird_restore — Alias de ibase_restore
    • fbird_rollback_ret — Alias de ibase_rollback_ret
    • fbird_rollback — Alias de ibase_rollback
    • fbird_server_info — Alias de ibase_server_info
    • fbird_service_attach — Alias de ibase_service_attach
    • fbird_service_detach — Alias de ibase_service_detach
    • fbird_set_event_handler — Alias de ibase_set_event_handler
    • fbird_trans — Alias de ibase_trans
    • fbird_wait_event — Alias de ibase_wait_event
    • 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 — Lance une tâche de sauvegarde dans le gestionnaire de services et retourne immédiatement
    • 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 — Lance une tâche de restauration dans le gestionnaire de services et retourne immédiatement
    • ibase_rollback_ret — Annule une transaction sans la fermer
    • ibase_rollback — Annule une transaction interBase
    • ibase_server_info — Sollicite des informations à propos d'un serveur de base de donnée
    • ibase_service_attach — Connexion au gestionnaire de service
    • ibase_service_detach — Déconnexion du gestionnaire de service
    • 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

Avertissement

Cette extension est considérée comme morte et non maintenue. Cependant, le code source de cette extension est toujours disponible dans le GIT de PECL : » https://github.com/php/pecl-database-interbase.

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 a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 7.4.0

Cette extension supporte Interbase version 6 et suivantes ainsi que Firebird version 2 et suivantes.


Installation

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 7.4.0

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 : » https://pecl.php.net/package/ibase.

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 F.A.Q 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" | INI_SYSTEM |
ibase.max_persistent | "-1" | INI_SYSTEM |
ibase.max_links | "-1" | INI_SYSTEM |
ibase.default_db | NULL | INI_SYSTEM |
ibase.default_user | NULL | INI_ALL |
ibase.default_password | NULL | INI_ALL |
ibase.default_charset | NULL | INI_ALL |
ibase.timestampformat | "%Y-%m-%d %H:%M:%S" | INI_ALL |
ibase.dateformat | "%Y-%m-%d" | INI_ALL |
ibase.timeformat | "%H:%M:%S" | INI_ALL |
Pour plus de détails sur les modes 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

Accepte ou non les connexions persistantes à Firebird/Interbase.

ibase.max_persistent int

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 int

Le nombre maximal de connexions Firebird/Interbase par processus, incluant les connexions persistantes.

ibase.default_db string

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 string

Le nom d'utilisateur utilisé lors de la connexion à la base de données lorsque aucun n'est spécifié.

ibase.default_password string

Le mot de passe utilisé lors de la connexion à la base de données lorsque aucun n'est spécifié.

ibase.default_charset string

Le jeux de caractères utilisé lors de la connexion à la base de données lorsque aucun n'est spécifié.

ibase.timestampformat string

ibase.dateformat string

ibase.timeformat string

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 à ibase_trans() pour spécifier le comportement des transactions.

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
Options pour ibase_backup()
IBASE_BKP_IGNORE_LIMBO
Options pour ibase_backup()
IBASE_BKP_METADATA_ONLY
Options pour ibase_backup()
IBASE_BKP_NO_GARBAGE_COLLECT
Options pour ibase_backup()
IBASE_BKP_OLD_DESCRIPTIONS
Options pour ibase_backup()
IBASE_BKP_NON_TRANSPORTABLE
Options pour ibase_backup()
IBASE_BKP_CONVERT
Options pour ibase_backup()
IBASE_RES_DEACTIVATE_IDX
Options pour ibase_restore()
IBASE_RES_NO_SHADOW
Options pour ibase_restore()
IBASE_RES_NO_VALIDITY
Options pour ibase_restore()
IBASE_RES_ONE_AT_A_TIME
Options pour ibase_restore()
IBASE_RES_REPLACE
IBASE_RES_CREATE
Options pour ibase_restore()
IBASE_RES_USE_ALL_SPACE
Options pour 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
Options pour ibase_server_info()
IBASE_SVC_IMPLEMENTATION
Options pour ibase_server_info()
IBASE_SVC_GET_ENV
Options pour ibase_server_info()
IBASE_SVC_GET_ENV_LOCK
IBASE_SVC_GET_ENV_MSG
IBASE_SVC_USER_DBPATH
IBASE_SVC_SVR_DB_INFO
IBASE_SVC_GET_USERS
Options pour ibase_server_info()


Fonctions Firebird/InterBase

Sommaire

  • fbird_add_user — Alias de ibase_add_user
  • fbird_affected_rows — Alias de ibase_affected_rows
  • fbird_backup — Alias de ibase_backup
  • fbird_blob_add — Alias de ibase_blob_add
  • fbird_blob_cancel — Annule la création d'un blob
  • fbird_blob_close — Alias de ibase_blob_close
  • fbird_blob_create — Alias de ibase_blob_create
  • fbird_blob_echo — Alias de ibase_blob_echo
  • fbird_blob_get — Alias de ibase_blob_get
  • fbird_blob_import — Alias de ibase_blob_import
  • fbird_blob_info — Alias de ibase_blob_info
  • fbird_blob_open — Alias de ibase_blob_open
  • fbird_close — Alias de ibase_close
  • fbird_commit_ret — Alias de ibase_commit_ret
  • fbird_commit — Alias de ibase_commit
  • fbird_connect — Alias de ibase_connect
  • fbird_db_info — Alias de ibase_db_info
  • fbird_delete_user — Alias de ibase_delete_user
  • fbird_drop_db — Alias de ibase_drop_db
  • fbird_errcode — Alias de ibase_errcode
  • fbird_errmsg — Alias de ibase_errmsg
  • fbird_execute — Alias de ibase_execute
  • fbird_fetch_assoc — Alias de ibase_fetch_assoc
  • fbird_fetch_object — Alias de ibase_fetch_object
  • fbird_fetch_row — Alias de ibase_fetch_row
  • fbird_field_info — Alias de ibase_field_info
  • fbird_free_event_handler — Alias de ibase_free_event_handler
  • fbird_free_query — Alias de ibase_free_query
  • fbird_free_result — Alias de ibase_free_result
  • fbird_gen_id — Alias de ibase_gen_id
  • fbird_maintain_db — Alias de ibase_maintain_db
  • fbird_modify_user — Alias de ibase_modify_user
  • fbird_name_result — Alias de ibase_name_result
  • fbird_num_fields — Alias de ibase_num_fields
  • fbird_num_params — Alias de ibase_num_params
  • fbird_param_info — Alias de ibase_param_info
  • fbird_pconnect — Alias de ibase_pconnect
  • fbird_prepare — Alias de ibase_prepare
  • fbird_query — Alias de ibase_query
  • fbird_restore — Alias de ibase_restore
  • fbird_rollback_ret — Alias de ibase_rollback_ret
  • fbird_rollback — Alias de ibase_rollback
  • fbird_server_info — Alias de ibase_server_info
  • fbird_service_attach — Alias de ibase_service_attach
  • fbird_service_detach — Alias de ibase_service_detach
  • fbird_set_event_handler — Alias de ibase_set_event_handler
  • fbird_trans — Alias de ibase_trans
  • fbird_wait_event — Alias de ibase_wait_event
  • 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 — Lance une tâche de sauvegarde dans le gestionnaire de services et retourne immédiatement
  • 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 — Lance une tâche de restauration dans le gestionnaire de services et retourne immédiatement
  • ibase_rollback_ret — Annule une transaction sans la fermer
  • ibase_rollback — Annule une transaction interBase
  • ibase_server_info — Sollicite des informations à propos d'un serveur de base de donnée
  • ibase_service_attach — Connexion au gestionnaire de service
  • ibase_service_detach — Déconnexion du gestionnaire de service
  • 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


Alias de ibase_add_user

  • « Fonctions Firebird/InterBase
  • fbird_affected_rows »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_add_user

fbird_add_user

(PHP 5, PHP 7 < 7.4.0)

fbird_add_user — Alias de ibase_add_user()

Description

Cette fonction est un alias de : ibase_add_user().

Voir aussi

  • fbird_modify_user() - Alias de ibase_modify_user
  • fbird_delete_user() - Alias de ibase_delete_user


Alias de ibase_affected_rows

  • « fbird_add_user
  • fbird_backup »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_affected_rows

fbird_affected_rows

(PHP 5, PHP 7 < 7.4.0)

fbird_affected_rows — Alias de ibase_affected_rows()

Description

Cette fonction est un alias de : ibase_affected_rows().

Voir aussi

  • fbird_query() - Alias de ibase_query
  • fbird_execute() - Alias de ibase_execute


Alias de ibase_backup

  • « fbird_affected_rows
  • fbird_blob_add »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_backup

fbird_backup

(PHP 5, PHP 7 < 7.4.0)

fbird_backup — Alias de ibase_backup()

Description

Cette fonction est un alias de : ibase_backup().


Alias de ibase_blob_add

  • « fbird_backup
  • fbird_blob_cancel »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_blob_add

fbird_blob_add

(PHP 5, PHP 7 < 7.4.0)

fbird_blob_add — Alias de ibase_blob_add()

Description

Cette fonction est un alias de : ibase_blob_add().

Voir aussi

  • fbird_blob_cancel() - Annule la création d'un blob
  • fbird_blob_close() - Alias de ibase_blob_close
  • fbird_blob_create() - Alias de ibase_blob_create
  • fbird_blob_import() - Alias de ibase_blob_import


Annule la création d'un blob

  • « fbird_blob_add
  • fbird_blob_close »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Annule la création d'un blob

fbird_blob_cancel

(PHP 5, PHP 7 < 7.4.0)

fbird_blob_cancel — Annule la création d'un blob

Description

fbird_blob_cancel(resource $blob_handle): bool

Cette fonction jetera un BLOB s'il n'a pas encore était fermé par fbird_blob_close().

Liste de paramètres

blob_handle

Un gestionnaire de BLOB ouvert avec fbird_blob_create().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Voir aussi

  • fbird_blob_close() - Alias de ibase_blob_close
  • fbird_blob_create() - Alias de ibase_blob_create
  • fbird_blob_import() - Alias de ibase_blob_import


Alias de ibase_blob_close

  • « fbird_blob_cancel
  • fbird_blob_create »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_blob_close

fbird_blob_close

(PHP 5, PHP 7 < 7.4.0)

fbird_blob_close — Alias de ibase_blob_close()

Description

Cette fonction est un alias de : ibase_blob_close().

Voir aussi

  • fbird_blob_create() - Alias de ibase_blob_create
  • fbird_blob_cancel() - Annule la création d'un blob
  • fbird_blob_open() - Alias de ibase_blob_open
  • fbird_blob_import() - Alias de ibase_blob_import


Alias de ibase_blob_create

  • « fbird_blob_close
  • fbird_blob_echo »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_blob_create

fbird_blob_create

(PHP 5, PHP 7 < 7.4.0)

fbird_blob_create — Alias de ibase_blob_create()

Description

Cette fonction est un alias de : ibase_blob_create().

Voir aussi

  • fbird_blob_add() - Alias de ibase_blob_add
  • fbird_blob_cancel() - Annule la création d'un blob
  • fbird_blob_close() - Alias de ibase_blob_close
  • fbird_blob_import() - Alias de ibase_blob_import


Alias de ibase_blob_echo

  • « fbird_blob_create
  • fbird_blob_get »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_blob_echo

fbird_blob_echo

(PHP 5, PHP 7 < 7.4.0)

fbird_blob_echo — Alias de ibase_blob_echo()

Description

Cette fonction est un alias de : ibase_blob_echo().

Voir aussi

  • fbird_blob_open() - Alias de ibase_blob_open
  • fbird_blob_close() - Alias de ibase_blob_close
  • fbird_blob_get() - Alias de ibase_blob_get


Alias de ibase_blob_get

  • « fbird_blob_echo
  • fbird_blob_import »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_blob_get

fbird_blob_get

(PHP 5, PHP 7 < 7.4.0)

fbird_blob_get — Alias de ibase_blob_get()

Description

Cette fonction est un alias de : ibase_blob_get().

Voir aussi

  • fbird_blob_open() - Alias de ibase_blob_open
  • fbird_blob_close() - Alias de ibase_blob_close
  • fbird_blob_echo() - Alias de ibase_blob_echo


Alias de ibase_blob_import

  • « fbird_blob_get
  • fbird_blob_info »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_blob_import

fbird_blob_import

(PHP 5, PHP 7 < 7.4.0)

fbird_blob_import — Alias de ibase_blob_import()

Description

Cette fonction est un alias de : ibase_blob_import().

Voir aussi

  • fbird_blob_add() - Alias de ibase_blob_add
  • fbird_blob_cancel() - Annule la création d'un blob
  • fbird_blob_close() - Alias de ibase_blob_close
  • fbird_blob_create() - Alias de ibase_blob_create


Alias de ibase_blob_info

  • « fbird_blob_import
  • fbird_blob_open »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_blob_info

fbird_blob_info

(PHP 5, PHP 7 < 7.4.0)

fbird_blob_info — Alias de ibase_blob_info()

Description

Cette fonction est un alias de : ibase_blob_info().


Alias de ibase_blob_open

  • « fbird_blob_info
  • fbird_close »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_blob_open

fbird_blob_open

(PHP 5, PHP 7 < 7.4.0)

fbird_blob_open — Alias de ibase_blob_open()

Description

Cette fonction est un alias de : ibase_blob_open().

Voir aussi

  • fbird_blob_close() - Alias de ibase_blob_close
  • fbird_blob_echo() - Alias de ibase_blob_echo
  • fbird_blob_get() - Alias de ibase_blob_get


Alias de ibase_close

  • « fbird_blob_open
  • fbird_commit_ret »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_close

fbird_close

(PHP 5, PHP 7 < 7.4.0)

fbird_close — Alias de ibase_close()

Description

Cette fonction est un alias de : ibase_close().

Voir aussi

  • fbird_connect() - Alias de ibase_connect
  • fbird_pconnect() - Alias de ibase_pconnect


Alias de ibase_commit_ret

  • « fbird_close
  • fbird_commit »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_commit_ret

fbird_commit_ret

(PHP 5, PHP 7 < 7.4.0)

fbird_commit_ret — Alias de ibase_commit_ret()

Description

Cette fonction est un alias de : ibase_commit_ret().


Alias de ibase_commit

  • « fbird_commit_ret
  • fbird_connect »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_commit

fbird_commit

(PHP 5, PHP 7 < 7.4.0)

fbird_commit — Alias de ibase_commit()

Description

Cette fonction est un alias de : ibase_commit().


Alias de ibase_connect

  • « fbird_commit
  • fbird_db_info »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_connect

fbird_connect

(PHP 5, PHP 7 < 7.4.0)

fbird_connect — Alias de ibase_connect()

Description

Cette fonction est un alias de : ibase_connect().

Voir aussi

  • fbird_pconnect() - Alias de ibase_pconnect
  • fbird_close() - Alias de ibase_close


Alias de ibase_db_info

  • « fbird_connect
  • fbird_delete_user »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_db_info

fbird_db_info

(PHP 5, PHP 7 < 7.4.0)

fbird_db_info — Alias de ibase_db_info()

Description

Cette fonction est un alias de : ibase_db_info().


Alias de ibase_delete_user

  • « fbird_db_info
  • fbird_drop_db »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_delete_user

fbird_delete_user

(PHP 5, PHP 7 < 7.4.0)

fbird_delete_user — Alias de ibase_delete_user()

Description

Cette fonction est un alias de : ibase_delete_user().

Voir aussi

  • fbird_add_user() - Alias de ibase_add_user
  • fbird_modify_user() - Alias de ibase_modify_user


Alias de ibase_drop_db

  • « fbird_delete_user
  • fbird_errcode »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_drop_db

fbird_drop_db

(PHP 5, PHP 7 < 7.4.0)

fbird_drop_db — Alias de ibase_drop_db()

Description

Cette fonction est un alias de : ibase_drop_db().

Voir aussi

  • fbird_connect() - Alias de ibase_connect
  • fbird_pconnect() - Alias de ibase_pconnect


Alias de ibase_errcode

  • « fbird_drop_db
  • fbird_errmsg »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_errcode

fbird_errcode

(PHP 5, PHP 7 < 7.4.0)

fbird_errcode — Alias de ibase_errcode()

Description

Cette fonction est un alias de : ibase_errcode().

Voir aussi

  • fbird_errmsg() - Alias de ibase_errmsg


Alias de ibase_errmsg

  • « fbird_errcode
  • fbird_execute »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_errmsg

fbird_errmsg

(PHP 5, PHP 7 < 7.4.0)

fbird_errmsg — Alias de ibase_errmsg()

Description

Cette fonction est un alias de : ibase_errmsg().

Voir aussi

  • fbird_errcode() - Alias de ibase_errcode


Alias de ibase_execute

  • « fbird_errmsg
  • fbird_fetch_assoc »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_execute

fbird_execute

(PHP 5, PHP 7 < 7.4.0)

fbird_execute — Alias de ibase_execute()

Description

Cette fonction est un alias de : ibase_execute().

Voir aussi

  • fbird_query() - Alias de ibase_query


Alias de ibase_fetch_assoc

  • « fbird_execute
  • fbird_fetch_object »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_fetch_assoc

fbird_fetch_assoc

(PHP 5, PHP 7 < 7.4.0)

fbird_fetch_assoc — Alias de ibase_fetch_assoc()

Description

Cette fonction est un alias de : ibase_fetch_assoc().

Voir aussi

  • fbird_fetch_row() - Alias de ibase_fetch_row
  • fbird_fetch_object() - Alias de ibase_fetch_object


Alias de ibase_fetch_object

  • « fbird_fetch_assoc
  • fbird_fetch_row »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_fetch_object

fbird_fetch_object

(PHP 5, PHP 7 < 7.4.0)

fbird_fetch_object — Alias de ibase_fetch_object()

Description

Cette fonction est un alias de : ibase_fetch_object().

Voir aussi

  • fbird_fetch_row() - Alias de ibase_fetch_row
  • fbird_fetch_assoc() - Alias de ibase_fetch_assoc


Alias de ibase_fetch_row

  • « fbird_fetch_object
  • fbird_field_info »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_fetch_row

fbird_fetch_row

(PHP 5, PHP 7 < 7.4.0)

fbird_fetch_row — Alias de ibase_fetch_row()

Description

Cette fonction est un alias de : ibase_fetch_row().

Voir aussi

  • fbird_fetch_assoc() - Alias de ibase_fetch_assoc
  • fbird_fetch_object() - Alias de ibase_fetch_object


Alias de ibase_field_info

  • « fbird_fetch_row
  • fbird_free_event_handler »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_field_info

fbird_field_info

(PHP 5, PHP 7 < 7.4.0)

fbird_field_info — Alias de ibase_field_info()

Description

Cette fonction est un alias de : ibase_field_info().

Voir aussi

  • fbird_num_fields() - Alias de ibase_num_fields


Alias de ibase_free_event_handler

  • « fbird_field_info
  • fbird_free_query »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_free_event_handler

fbird_free_event_handler

(PHP 5, PHP 7 < 7.4.0)

fbird_free_event_handler — Alias de ibase_free_event_handler()

Description

Cette fonction est un alias de : ibase_free_event_handler().

Voir aussi

  • fbird_set_event_handler() - Alias de ibase_set_event_handler


Alias de ibase_free_query

  • « fbird_free_event_handler
  • fbird_free_result »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_free_query

fbird_free_query

(PHP 5, PHP 7 < 7.4.0)

fbird_free_query — Alias de ibase_free_query()

Description

Cette fonction est un alias de : ibase_free_query().


Alias de ibase_free_result

  • « fbird_free_query
  • fbird_gen_id »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_free_result

fbird_free_result

(PHP 5, PHP 7 < 7.4.0)

fbird_free_result — Alias de ibase_free_result()

Description

Cette fonction est un alias de : ibase_free_result().


Alias de ibase_gen_id

  • « fbird_free_result
  • fbird_maintain_db »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_gen_id

fbird_gen_id

(PHP 5, PHP 7 < 7.4.0)

fbird_gen_id — Alias de ibase_gen_id()

Description

Cette fonction est un alias de : ibase_gen_id().


Alias de ibase_maintain_db

  • « fbird_gen_id
  • fbird_modify_user »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_maintain_db

fbird_maintain_db

(PHP 5, PHP 7 < 7.4.0)

fbird_maintain_db — Alias de ibase_maintain_db()

Description

Cette fonction est un alias de : ibase_maintain_db().


Alias de ibase_modify_user

  • « fbird_maintain_db
  • fbird_name_result »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_modify_user

fbird_modify_user

(PHP 5, PHP 7 < 7.4.0)

fbird_modify_user — Alias de ibase_modify_user()

Description

Cette fonction est un alias de : ibase_modify_user().

Voir aussi

  • fbird_add_user() - Alias de ibase_add_user
  • fbird_delete_user() - Alias de ibase_delete_user


Alias de ibase_name_result

  • « fbird_modify_user
  • fbird_num_fields »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_name_result

fbird_name_result

(PHP 5, PHP 7 < 7.4.0)

fbird_name_result — Alias de ibase_name_result()

Description

Cette fonction est un alias de : ibase_name_result().

Voir aussi

  • fbird_prepare() - Alias de ibase_prepare
  • fbird_execute() - Alias de ibase_execute


Alias de ibase_num_fields

  • « fbird_name_result
  • fbird_num_params »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_num_fields

fbird_num_fields

(PHP 5, PHP 7 < 7.4.0)

fbird_num_fields — Alias de ibase_num_fields()

Description

Cette fonction est un alias de : ibase_num_fields().

Voir aussi

  • fbird_field_info() - Alias de ibase_field_info


Alias de ibase_num_params

  • « fbird_num_fields
  • fbird_param_info »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_num_params

fbird_num_params

(PHP 5, PHP 7 < 7.4.0)

fbird_num_params — Alias de ibase_num_params()

Description

Cette fonction est un alias de : ibase_num_params().

Voir aussi

  • fbird_prepare() - Alias de ibase_prepare
  • fbird_param_info() - Alias de ibase_param_info


Alias de ibase_param_info

  • « fbird_num_params
  • fbird_pconnect »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_param_info

fbird_param_info

(PHP 5, PHP 7 < 7.4.0)

fbird_param_info — Alias de ibase_param_info()

Description

Cette fonction est un alias de : ibase_param_info().

Voir aussi

  • fbird_field_info() - Alias de ibase_field_info
  • fbird_num_params() - Alias de ibase_num_params


Alias de ibase_pconnect

  • « fbird_param_info
  • fbird_prepare »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_pconnect

fbird_pconnect

(PHP 5, PHP 7 < 7.4.0)

fbird_pconnect — Alias de ibase_pconnect()

Description

Cette fonction est un alias de : ibase_pconnect().

Voir aussi

  • fbird_close() - Alias de ibase_close
  • fbird_connect() - Alias de ibase_connect


Alias de ibase_prepare

  • « fbird_pconnect
  • fbird_query »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_prepare

fbird_prepare

(PHP 5, PHP 7 < 7.4.0)

fbird_prepare — Alias de ibase_prepare()

Description

Cette fonction est un alias de : ibase_prepare().


Alias de ibase_query

  • « fbird_prepare
  • fbird_restore »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_query

fbird_query

(PHP 5, PHP 7 < 7.4.0)

fbird_query — Alias de ibase_query()

Description

Cette fonction est un alias de : ibase_query().

Voir aussi

  • fbird_errmsg() - Alias de ibase_errmsg
  • fbird_fetch_row() - Alias de ibase_fetch_row
  • fbird_fetch_object() - Alias de ibase_fetch_object
  • fbird_free_result() - Alias de ibase_free_result


Alias de ibase_restore

  • « fbird_query
  • fbird_rollback_ret »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_restore

fbird_restore

(PHP 5, PHP 7 < 7.4.0)

fbird_restore — Alias de ibase_restore()

Description

Cette fonction est un alias de : ibase_restore().


Alias de ibase_rollback_ret

  • « fbird_restore
  • fbird_rollback »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_rollback_ret

fbird_rollback_ret

(PHP 5, PHP 7 < 7.4.0)

fbird_rollback_ret — Alias de ibase_rollback_ret()

Description

Cette fonction est un alias de : ibase_rollback_ret().


Alias de ibase_rollback

  • « fbird_rollback_ret
  • fbird_server_info »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_rollback

fbird_rollback

(PHP 5, PHP 7 < 7.4.0)

fbird_rollback — Alias de ibase_rollback()

Description

Cette fonction est un alias de : ibase_rollback().


Alias de ibase_server_info

  • « fbird_rollback
  • fbird_service_attach »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_server_info

fbird_server_info

(PHP 5, PHP 7 < 7.4.0)

fbird_server_info — Alias de ibase_server_info()

Description

Cette fonction est un alias de : ibase_server_info().


Alias de ibase_service_attach

  • « fbird_server_info
  • fbird_service_detach »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_service_attach

fbird_service_attach

(PHP 5, PHP 7 < 7.4.0)

fbird_service_attach — Alias de ibase_service_attach()

Description

Cette fonction est un alias de : ibase_service_attach().


Alias de ibase_service_detach

  • « fbird_service_attach
  • fbird_set_event_handler »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_service_detach

fbird_service_detach

(PHP 5, PHP 7 < 7.4.0)

fbird_service_detach — Alias de ibase_service_detach()

Description

Cette fonction est un alias de : ibase_service_detach().


Alias de ibase_set_event_handler

  • « fbird_service_detach
  • fbird_trans »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_set_event_handler

fbird_set_event_handler

(PHP 5, PHP 7 < 7.4.0)

fbird_set_event_handler — Alias de ibase_set_event_handler()

Description

Cette fonction est un alias de : ibase_set_event_handler().

Voir aussi

  • fbird_free_event_handler() - Alias de ibase_free_event_handler
  • fbird_wait_event() - Alias de ibase_wait_event


Alias de ibase_trans

  • « fbird_set_event_handler
  • fbird_wait_event »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_trans

fbird_trans

(PHP 5, PHP 7 < 7.4.0)

fbird_trans — Alias de ibase_trans()

Description

Cette fonction est un alias de : ibase_trans().


Alias de ibase_wait_event

  • « fbird_trans
  • ibase_add_user »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Alias de ibase_wait_event

fbird_wait_event

(PHP 5, PHP 7 < 7.4.0)

fbird_wait_event — Alias de ibase_wait_event()

Description

Cette fonction est un alias de : ibase_wait_event().

Voir aussi

  • fbird_set_event_handler() - Alias de ibase_set_event_handler
  • fbird_free_event_handler() - Alias de ibase_free_event_handler


Ajoute un utilisateur à une base de données de sécurité

  • « fbird_wait_event
  • 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 < 7.4.0)

ibase_add_user — Ajoute un utilisateur à une base de données de sécurité

Description

ibase_add_user(
resource $service_handle,
string $user_name,
string $password,
string $first_name = ?,
string $middle_name = ?,
string $last_name = ?
): bool

Liste de paramètres

service_handle

Le gestionnaire sur le service du serveur de base de données.

user_name

L'identifiant pour le nouvel utilisateur de la base de donnée.

password

Le mot de passe pour le nouvel utilisateur.

first_name

Le prénom pour le nouvel utilisateur de la base de donnée.

middle_name

Le deuxième prénom pour le nouvel utilisateur de la base de donnée.

last_name

Le nom de famille pour le nouvel utilisateur de la base de donnée.

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 < 7.4.0)

ibase_affected_rows — Retourne le nombre de lignes affectées par la dernière requête iBase

Description

ibase_affected_rows(resource $link_identifier = ?): int

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


Lance une tâche de sauvegarde dans le gestionnaire de services et retourne immédiatement

  • « ibase_affected_rows
  • ibase_blob_add »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Lance une tâche de sauvegarde dans le gestionnaire de services et retourne immédiatement

ibase_backup

(PHP 5, PHP 7 < 7.4.0)

ibase_backup — Lance une tâche de sauvegarde dans le gestionnaire de services et retourne immédiatement

Description

ibase_backup(
resource $service_handle,
string $source_db,
string $dest_file,
int $options = 0,
bool $verbose = false
): mixed

Cette fonction transmet les arguments au serveur de base de donnée (distant). Là, il commence un nouveau processus de sauvegarde. Par conséquent, vous n'obtiendrez aucune réponse.

Liste de paramètres

service_handle

Une connexion au serveur de base de donnée créee précédemment.

source_db

Le chemin absolue vers la base de donnée sur le serveur de base de donnée. Vous pouvez également utiliser un alias de base de données.

dest_file

Le chemin absolue vers le fichier de sauvegarde sur le serveur de base de donnée.

options

Options supplémentaires à transmettre au serveur de base de données pour la sauvegarde. Le paramètre options peut être une combinaison des constantes suivantes : 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 or IBASE_BKP_CONVERT. Lire la section à propos des Constantes pré-définies pour plus d'information.

verbose

Étant donné que le processus de sauvegarde est effectué sur le serveur de base de données, vous n’avez aucune chance d’obtenir sa sortie. Cet argument est inutile.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Le processus de sauvegarde étant effectué sur le serveur (distant), cette fonction ne fait que lui transmettre les arguments. Tant que les arguments sont légaux, vous n'obtiendrez pas false.

Exemples

Exemple #1 Exemple avec ibase_backup()

<?php

// S'attacher au serveur par adresse ip et port.
$service = ibase_service_attach ('10.1.11.200/3050', 'sysdba', 'masterkey');

// Débuter le processus de sauvegarde sur le serveur de base de donnée
// Sauvegarde la base de donnée employee en utilisant le chemin complet vers /srv/backup/employees.fbk
// N'utilise pas d'argument spéciaux
ibase_backup($service, '/srv/firebird/employees.fdb', '/srv/backup/employees.fbk');

// Libère la connexion attaché
ibase_service_detach ($service);
?>

Exemple #2 Exemple de ibase_backup() avec des arguments

<?php

// S'attacher au serveur par nom et port par défaut
$service = ibase_service_attach ('fb-server.contoso.local', 'sysdba', 'masterkey');

// Débuter le processus de sauvegarde sur le serveur de base de donnée
// Sauvegarde la base de donnée employee en utilisant un alias vers /srv/backup/employees.fbk.
// Sauvegarde uniquement les métadonnées. Ne crée pas une sauvegarde transportable.
ibase_backup($service, 'employees.fdb', '/srv/backup/employees.fbk', IBASE_BKP_METADATA_ONLY | IBASE_BKP_NON_TRANSPORTABLE);

// Libère la connexion attaché
ibase_service_detach ($service);
?>

Voir aussi

  • ibase_restore() - Lance une tâche de restauration dans le gestionnaire de services et retourne immédiatement


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 < 7.4.0)

ibase_blob_add — Ajoute des données dans un BLOB iBase fraîchement créé

Description

ibase_blob_add(resource $blob_handle, string $data): void

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 < 7.4.0)

ibase_blob_cancel — Annule la création d'un BLOB iBase

Description

ibase_blob_cancel(resource $blob_handle): bool

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 < 7.4.0)

ibase_blob_close — Ferme un BLOB iBase

Description

ibase_blob_close(resource $blob_handle): mixed

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 < 7.4.0)

ibase_blob_create — Crée un BLOB iBase pour ajouter des données

Description

ibase_blob_create(resource $link_identifier = null): resource|false

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 < 7.4.0)

ibase_blob_echo — Affiche le contenu d'un BLOB iBase au navigateur

Description

ibase_blob_echo(string $blob_id): bool
ibase_blob_echo(resource $link_identifier, string $blob_id): bool

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 < 7.4.0)

ibase_blob_get — Lit len octets de données dans un BLOB iBase ouvert

Description

ibase_blob_get(resource $blob_handle, int $len): string

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 < 7.4.0)

ibase_blob_import — Crée un BLOB iBase, y copie un fichier et le referme

Description

ibase_blob_import(resource $link_identifier, resource $file_handle): string
ibase_blob_import(resource $file_handle): string

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 < 7.4.0)

ibase_blob_info — Retourne la taille d'un BLOB iBase et d'autres informations utiles

Description

ibase_blob_info(resource $link_identifier, string $blob_id): array
ibase_blob_info(string $blob_id): array

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 < 7.4.0)

ibase_blob_open — Ouvre un BLOB iBase pour récupérer des parties de données

Description

ibase_blob_open(resource $link_identifier, string $blob_id): resource|false
ibase_blob_open(string $blob_id): resource|false

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 < 7.4.0)

ibase_close — Ferme une connexion à une base de données Interbase

Description

ibase_close(resource $connection_id = null): bool

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 < 7.4.0)

ibase_commit_ret — Valide une transaction iBase sans la refermer

Description

ibase_commit_ret(resource $link_or_trans_identifier = null): bool

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 < 7.4.0)

ibase_commit — Valide une transaction iBase

Description

ibase_commit(resource $link_or_trans_identifier = null): bool

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 < 7.4.0)

ibase_connect — Ouvre une connexion à une base de données

Description

ibase_connect(
string $database = ?,
string $username = ?,
string $password = ?,
string $charset = ?,
int $buffers = ?,
int $dialect = ?,
string $role = ?,
int $sync = ?
): resource

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), 'hostname/port:' (TCP/IP avec un serveur interbase sur un port TCP personalisé), '//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 < 7.4.0)

ibase_db_info — Demande des statistiques sur une base de données Interbase

Description

ibase_db_info(
resource $service_handle,
string $db,
int $action,
int $argument = 0
): string
Avertissement

Cette fonction est actuellement non documentée ; 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 < 7.4.0)

ibase_delete_user — Efface un utilisateur d'une base de données de sécurité

Description

ibase_delete_user(resource $service_handle, string $user_name): bool

Liste de paramètres

service_handle

Le gestionnaire sur le service du serveur de base de données.

user_name

L'identifiant de l'utilisteur qui doit être supprimé de la base de donnée.

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 < 7.4.0)

ibase_drop_db — Supprime une base de données iBase

Description

ibase_drop_db(resource $connection = null): bool

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 < 7.4.0)

ibase_errcode — Retourne le code d'erreur iBase

Description

ibase_errcode(): int

Retourne le code erreur résultant de l'appel le plus récent à une fonction InterBase.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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 < 7.4.0)

ibase_errmsg — Retourne un message d'erreur

Description

ibase_errmsg(): string

Retourne une chaîne contenant les messages d'erreurs.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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 < 7.4.0)

ibase_execute — Exécute une requête iBase préparée

Description

ibase_execute(resource $query, mixed ...$values): resource

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().

values

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 < 7.4.0)

ibase_fetch_assoc — Récupère une ligne du résultat d'une requête dans un tableau associatif

Description

ibase_fetch_assoc(resource $result, int $fetch_flag = 0): array

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 < 7.4.0)

ibase_fetch_object — Lit une ligne dans une base Interbase dans un objet

Description

ibase_fetch_object(resource $result_id, int $fetch_flag = 0): object

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 < 7.4.0)

ibase_fetch_row — Lit une ligne d'une base Interbase

Description

ibase_fetch_row(resource $result_identifier, int $fetch_flag = 0): array

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 < 7.4.0)

ibase_field_info — Lit les informations sur un champ iBase

Description

ibase_field_info(resource $result, int $field_number): array

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 < 7.4.0)

ibase_free_event_handler — Libère un gestionnaire d'événements iBase

Description

ibase_free_event_handler(resource $event): bool

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 < 7.4.0)

ibase_free_query — Libère la mémoire réservée par une requête préparée

Description

ibase_free_query(resource $query): bool

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 < 7.4.0)

ibase_free_result — Libère un résultat iBase

Description

ibase_free_result(resource $result_identifier): bool

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 < 7.4.0)

ibase_gen_id — Incrémente le générateur donné et retourne sa nouvelle valeur

Description

ibase_gen_id(string $generator, int $increment = 1, resource $link_identifier = null): mixed
Avertissement

Cette fonction est actuellement non documentée ; 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 < 7.4.0)

ibase_maintain_db — Exécute une commande de maintenance sur une base de données Interbase

Description

ibase_maintain_db(
resource $service_handle,
string $db,
int $action,
int $argument = 0
): bool
Avertissement

Cette fonction est actuellement non documentée ; 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 < 7.4.0)

ibase_modify_user — Modifie un utilisateur dans une base de données de sécurité

Description

ibase_modify_user(
resource $service_handle,
string $user_name,
string $password,
string $first_name = ?,
string $middle_name = ?,
string $last_name = ?
): bool

Liste de paramètres

service_handle

Le gestionnaire sur le service du serveur de base de données.

user_name

L'identifiant de l'utilisateur de base de donnée à modifier.

password

Le nouveau mot de passe de l'utilisateur.

first_name

Le nouveau prénom de l'utilisateur.

middle_name

Le nouveau deuxième prénom de l'utilisateur.

last_name

Le nouveau nom de famille de l'utilisateur.

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 < 7.4.0)

ibase_name_result — Assigne un nom à un jeu de résultats iBase

Description

ibase_name_result(resource $result, string $name): bool

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 < 7.4.0)

ibase_num_fields — Retourne le nombre de colonnes dans un résultat iBase

Description

ibase_num_fields(resource $result_id): int

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 < 7.4.0)

ibase_num_params — Retourne le nombre de paramètres dans une requête préparée iBase

Description

ibase_num_params(resource $query): int

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 < 7.4.0)

ibase_param_info — Retourne des informations à propos d'un paramètre dans une requête préparée iBase

Description

ibase_param_info(resource $query, int $param_number): array

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 < 7.4.0)

ibase_pconnect — Ouvre une connexion persistante à une base de données InterBase

Description

ibase_pconnect(
string $database = ?,
string $username = ?,
string $password = ?,
string $charset = ?,
int $buffers = ?,
int $dialect = ?,
string $role = ?,
int $sync = ?
): resource

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 < 7.4.0)

ibase_prepare — Prépare une requête iBase pour lier les paramètres et l'exécuter ultérieurement

Description

ibase_prepare(string $query): resource
ibase_prepare(resource $link_identifier, string $query): resource
ibase_prepare(resource $link_identifier, string $trans, string $query): resource

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.

link_identifier

Un lien idantifiant Interbase retourné par ibase_connect(). Si omis, le dernier lien ouvert est adopté.

trans

Un gestionnaire de transaction InterBase avec lequel la requête doit être associer. Si omis, la transaction par défaut de la connexion est adopté.

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 < 7.4.0)

ibase_query — Exécute une requête sur une base iBase

Description

ibase_query(resource $link_identifier = ?, string $query, int $bind_args = ?): resource

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).

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


Lance une tâche de restauration dans le gestionnaire de services et retourne immédiatement

  • « ibase_query
  • ibase_rollback_ret »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Lance une tâche de restauration dans le gestionnaire de services et retourne immédiatement

ibase_restore

(PHP 5, PHP 7 < 7.4.0)

ibase_restore — Lance une tâche de restauration dans le gestionnaire de services et retourne immédiatement

Description

ibase_restore(
resource $service_handle,
string $source_file,
string $dest_db,
int $options = 0,
bool $verbose = false
): mixed

Cette fonction transmet les arguments au serveur de base de donnée (distant). Là, il commence un nouveau processus de restauration. Par conséquent, vous n'obtiendrez aucune réponse.

Liste de paramètres

service_handle

Une connexion au serveur de base de donnée créee précédemment.

source_file

Le chemin absolue sur le serveur où le fichier de sauvegarde est situé.

dest_db

Le chemin pour créer la nouvelle base de données sur le serveur. Vous pouvez également utiliser un alias de base de données.

options

Options supplémentaires à transmettre au serveur de base de données pour la restauration. Le paramètre options peut être une combinaison des constantes suivantes : 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, IBASE_PRP_PAGE_BUFFERS, IBASE_PRP_SWEEP_INTERVAL, IBASE_RES_CREATE. Lire la section à propos des Constantes pré-définies pour plus d'information.

verbose

Étant donné que le processus de restauration est effectué sur le serveur de base de données, vous n’avez aucune chance d’obtenir sa sortie. Cet argument est inutile.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Le processus de restauration étant effectué sur le serveur (distant), cette fonction ne fait que lui transmettre les arguments. Tant que les arguments sont légaux, vous n'obtiendrez pas false.

Exemples

Exemple #1 Exemple avec ibase_restore()

<?php
// S'attacher au serveur par adresse ip et port.
$service = ibase_service_attach ('10.1.11.200/3050', 'sysdba', 'masterkey');

// Débuter le processus de restauration sur le serveur de base de donnée
// Restaurer la sauvegarde de employee vers la nouvelle base de donnée emps.fdb
// N'utilise pas d'argument spéciaux
ibase_restore($service, '/srv/backup/employees.fbk', '/srv/firebird/emps.fdb');

// Libère la connexion attaché
ibase_service_detach ($service);
?>

Exemple #2 Exemple de ibase_restore() avec des arguments

<?php

// S'attacher au serveur par nom et port par défaut
$service = ibase_service_attach ('fb-server.contoso.local', 'sysdba', 'masterkey');

// Débuter le processus de restauration sur le serveur de base de donnée
// Restaure la base de donnée employee en utilisant un alias.
// Restaure sans index, Remplace la base de donnée existante.
ibase_restore($service, '/srv/backup/employees.fbk', 'employees.fdb', IBASE_RES_DEACTIVATE_IDX | IBASE_RES_REPLACE);

// Libère la connexion attaché
ibase_service_detach ($service);
?>

Voir aussi

  • ibase_backup() - Lance une tâche de sauvegarde dans le gestionnaire de services et retourne immédiatement


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 < 7.4.0)

ibase_rollback_ret — Annule une transaction sans la fermer

Description

ibase_rollback_ret(resource $link_or_trans_identifier = null): bool

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 < 7.4.0)

ibase_rollback — Annule une transaction interBase

Description

ibase_rollback(resource $link_or_trans_identifier = null): bool

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.


Sollicite des informations à propos d'un serveur de base de donnée

  • « ibase_rollback
  • ibase_service_attach »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Sollicite des informations à propos d'un serveur de base de donnée

ibase_server_info

(PHP 5, PHP 7 < 7.4.0)

ibase_server_info — Sollicite des informations à propos d'un serveur de base de donnée

Description

ibase_server_info(resource $service_handle, int $action): string

Liste de paramètres

service_handle

Une connexion au serveur de base de donnée créee précédemment.

action

Une constante valide.

Valeurs de retour

Retourne des types différents en fonction du contexte.

Exemples

Exemple #1 Exemple avec ibase_service_attach()

<?php
// S'attacher au serveur Firebird distant
if (($service = ibase_service_attach('10.1.1.254/3050', 'sysdba', 'masterkey')) != FALSE) {

// Attaché avec succès.

// Afficher les informations
echo "Server version: " . ibase_server_info($service, IBASE_SVC_SERVER_VERSION) . "\n";
echo "Server implementation: " . ibase_server_info($service, IBASE_SVC_IMPLEMENTATION) . "\n";
echo "Server users: " . print_r(ibase_server_info($service, IBASE_SVC_GET_USERS), true) . "\n";
echo "Server directory: " . ibase_server_info($service, IBASE_SVC_GET_ENV) . "\n";
echo "Server lock path: " . ibase_server_info($service, IBASE_SVC_GET_ENV_LOCK) . "\n";
echo "Server lib path: " . ibase_server_info($service, IBASE_SVC_GET_ENV_MSG) . "\n";
echo "Path of user db: " . ibase_server_info($service, IBASE_SVC_USER_DBPATH) . "\n";
echo "Established connections: " . print_r(ibase_server_info($service, IBASE_SVC_SVR_DB_INFO),true) . "\n";

// Se détacher du serveur (déconnexion)
ibase_service_detach($service);

}
else {
// Afficher un message en cas d'erreur
$conn_error = ibase_errmsg();
die($conn_error);
}
?>

L'exemple ci-dessus va afficher :

Server version: LI-V3.0.4.33054 Firebird 3.0
Server implementation: Firebird/Linux/AMD/Intel/x64
Server users: Array
(
    [0] => Array
        (
            [user_name] => SYSDBA
            [first_name] => Sql
            [middle_name] => Server
            [last_name] => Administrator
            [user_id] => 0
            [group_id] => 0
        )

)

Server directory: /etc/firebird/
Server lock path: /tmp/firebird/
Server lib path: /usr/lib64/firebird/lib/
Path of user db: /var/lib/firebird/secdb/security3.fdb
Established connections: Array
(
    [attachments] => 3
    [databases] => 2
    [0] => /srv/firebird/poss.fdb
    [1] => /srv/firebird/employees.fdb
)


Connexion au gestionnaire de service

  • « ibase_server_info
  • ibase_service_detach »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Connexion au gestionnaire de service

ibase_service_attach

(PHP 5, PHP 7 < 7.4.0)

ibase_service_attach — Connexion au gestionnaire de service

Description

ibase_service_attach(string $host, string $dba_username, string $dba_password): resource|false

Liste de paramètres

host

Le nom ou l'adresse IP de l'hôte de la base de donnée. Vous pouvez définir le port en ajoutant '/' et le numéro du port. Si aucun port est spécifié, le port 3050 sera utilisé.

dba_username

Le nom de tout utilisateur valide.

dba_password

Le mot de passe de l'utilisateur.

Valeurs de retour

Returns a Interbase / Firebird link identifier on success ou false si une erreur survient.

Exemples

Exemple #1 Exemple avec ibase_service_attach()

<?php
// S'attacher au serveur Firebird distant par une adresse ip
if (($service = ibase_service_attach('10.1.1.199', 'sysdba', 'masterkey')) != FALSE) {

// Attaché avec succès.
// Récupérer la version du serveur (qqch comme 'LI-V3.0.4.33054 Firebird 3.0')
$server_version = ibase_server_info($service, IBASE_SVC_SERVER_VERSION);

// Récupérer l'implémentation serveur (qqch comme 'Firebird/Linux/AMD/Intel/x64')
$server_implementation = ibase_server_info($service, IBASE_SVC_IMPLEMENTATION);

// Se détacher du serveur (déconnexion)
ibase_service_detach($service);

// Afficher les informations
echo "Server version: " . $server_version . "<br/>";
echo "Server implementation: " . $server_implementation;
}
else {
// Afficher un message en cas d'erreur
$conn_error = ibase_errmsg();
die($conn_error);
}

?>

Exemple #2 Exemple deibase_service_attach() en utilisant la syntaxe hostname/port

<?php
// S'attacher au serveur Firebird distant par nom. Utilise le Port 3050.
if (($service = ibase_service_attach('FB-SRV-01.contoso.local/3050', 'sysdba', 'masterkey')) != FALSE) {

// Attaché avec succès.
// Récupérer la version du serveur (qqch comme 'LI-V3.0.4.33054 Firebird 3.0')
$server_version = ibase_server_info($service, IBASE_SVC_SERVER_VERSION);

// Récupérer l'implémentation serveur (qqch comme 'Firebird/Linux/AMD/Intel/x64')
$server_implementation = ibase_server_info($service, IBASE_SVC_IMPLEMENTATION);

// Se détacher du serveur (déconnexion)
ibase_service_detach($service);

// Afficher les informations
echo "Server version: " . $server_version . "<br/>";
echo "Server implementation: " . $server_implementation;
}
else {
// Afficher un message en cas d'erreur
$conn_error = ibase_errmsg();
die($conn_error);
}

?>

Voir aussi

  • ibase_service_detach() - Déconnexion du gestionnaire de service


Déconnexion du gestionnaire de service

  • « ibase_service_attach
  • ibase_set_event_handler »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Déconnexion du gestionnaire de service

ibase_service_detach

(PHP 5, PHP 7 < 7.4.0)

ibase_service_detach — Déconnexion du gestionnaire de service

Description

ibase_service_detach(resource $service_handle): bool

Liste de paramètres

service_handle

Une connexion au serveur de base de donnée créee précédemment.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 Exemple avec ibase_service_detach()

<?php
// S'attacher au serveur Firebird distant par une adresse ip
if (($service = ibase_service_attach('10.1.1.199', 'sysdba', 'masterkey')) != FALSE) {

// Attaché avec succès.
// Récupérer la version du serveur (qqch comme 'LI-V3.0.4.33054 Firebird 3.0')
$server_version = ibase_server_info($service, IBASE_SVC_SERVER_VERSION);

// Récupérer l'implémentation serveur (qqch comme 'Firebird/Linux/AMD/Intel/x64')
$server_implementation = ibase_server_info($service, IBASE_SVC_IMPLEMENTATION);

// Se détacher du serveur (déconnexion)
if(ibase_service_detach($service) == FALSE) {
echo "Error on service detach.";
}
else {
echo "Successfully detached from service.";
}

}
else {
// Afficher un message en cas d'erreur
$conn_error = ibase_errmsg();
die($conn_error);
}

?>


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 < 7.4.0)

ibase_set_event_handler — Enregistre une fonction de rappel sur un événement interBase

Description

ibase_set_event_handler(callable $event_handler, string $event_name, string ...$even_names): resource
ibase_set_event_handler(
resource $connection,
callable $event_handler,
string $event_name,
string ...$event_names
): resource

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_name

Le nom de l'événement.

event_names

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 < 7.4.0)

ibase_trans — Prépare une transaction interBase

Description

ibase_trans(int $trans_args = ?, resource $link_identifier = ?): resource
ibase_trans(resource $link_identifier = ?, int $trans_args = ?): resource

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
  • IBM DB2 »
  • PHP Manual
  • Fonctions Firebird/InterBase
  • Attend un événement interBase

ibase_wait_event

(PHP 5, PHP 7 < 7.4.0)

ibase_wait_event — Attend un événement interBase

Description

ibase_wait_event(string $event_name, string ...$event_names): string
ibase_wait_event(resource $connection, string $event_name, string ...$event_names): 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_name

Le nom de l'événement.

event_names

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


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 le système. DB2 ne les installe pas par défaut, il pourrait donc être nécessaire de retourner à l'installation de DB2 et ajouter cette option. Le client de développement d'application DB2 inclus les fichiers d'en-tête et est disponible librement au téléchargement depuis le » support du site de la base de données universelle.

Si les fichiers d'en-têtes et de bibliothèques de l'application de développement de DB2 sont ajoutés sur un système Linux ou Unix où DB2 est déjà installé, la commande db2iupdt -e devra être lancée pour mettre à jour les liens symboliques vers les fichiers d'en-têtes et de bibliothèques des instances 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 des 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 le driver ibm_db2 est utilisé avec IIS (Microsoft Internet Information Server), il pourrait être nécessaire de prendre les mesures suivantes :

  • Installer DB2 avec le système de sécurité étendu.
  • Ajouter le chemin vers le binaire PHP à la variable d'environnement PATH du système (Par défaut : C:\php\).
  • Créer une autre variable d'environnement contenant le chemin vers le fichier PHP.INI (e.g. : PHPRC = C:\php\).
  • Ajouter 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" | INI_ALL |
ibm_db2.i5_all_pconnect | "0" | INI_SYSTEM | Disponible à partir de ibm_db2 1.6.5.
ibm_db2.i5_allow_commit | "0" | INI_SYSTEM | Disponible à partir de ibm_db2 1.4.9.
ibm_db2.i5_blank_userid | "0" | INI_SYSTEM | Disponible à partir de ibm_db2 1.9.7.
ibm_db2.i5_char_trim | "0" | INI_SYSTEM | Disponible à partir de ibm_db2 2.1.0.
ibm_db2.i5_dbcs_alloc | "0" | INI_SYSTEM | Disponible à partir de ibm_db2 1.5.0.
ibm_db2.i5_guard_profile | "0" | INI_SYSTEM | Disponible à partir de ibm_db2 1.9.7.
ibm_db2.i5_ignore_userid | "0" | INI_SYSTEM | Disponible à partir de ibm_db2 1.8.0.
ibm_db2.i5_job_sort | "0" | INI_SYSTEM | Disponible à partir de ibm_db2 1.8.4.
ibm_db2.i5_log_verbose | "0" | INI_SYSTEM | Disponible à partir de ibm_db2 1.9.7.
ibm_db2.i5_max_pconnect | "0" | INI_SYSTEM | Disponible à partir de ibm_db2 1.9.7.
ibm_db2.i5_override_ccsid | "0" | INI_SYSTEM | Disponible à partir de ibm_db2 1.9.7.
ibm_db2.i5_servermode_subsystem | NULL | INI_SYSTEM | Disponible à partir de ibm_db2 1.9.7.
ibm_db2.i5_sys_naming | "0" | INI_SYSTEM | Disponible à partir de ibm_db2 1.9.7.
ibm_db2.instance_name | NULL | INI_SYSTEM | Disponible à partir de ibm_db2 1.0.2.

Voici un éclaircissement sur l'utilisation des directives de configuration.

ibm_db2.binmode (int)

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 (int)

Cette option force toutes les connexions à être persistantes sur IBM i. Fondamentalement, tous les appels à db2_connect() deviennent automatiquement des appels à db2_pconnect(). Par défaut, cette option est 0. Cette option est fournie pour des raisons de commodité dans les cas où les connexions persistantes sont plus rapides. Elle ne devrait pas être utilisée dans de nouvelles applications.

  • 0 - Les connexions persistantes et non persistantes peuvent être établies.

  • 1 - Toutes les connexions sont persistantes.

ibm_db2.i5_allow_commit int

Cette option contrôle le mode d'isolation de la transaction utilisé. Par défaut, cette option est 0, donc le contrôle d'engagement n'est pas utilisé. Cette option peut être remplacée lors de la connexion si la clé de tableau i5_commit est définie dans le tableau d'options de connexion passé à db2_connect() ou db2_pconnect().

  • 0 - contrôle d'envoie n'est pas utilisé.

  • 1 - lire non envoyé, lecture sale possible.

  • 2 - lire envoyé, lecture sale impossible.

  • 3 - lecture répététable, lecture sale et lecture non répétable sont impossible.

  • 4 - sérialisable, lecture sale, lecture non répétabl, et phantôme sont impossible.

ibm_db2.i5_blank_userid int

Cela contrôle si un identifiant utilisateur vide doit être autorisé sur IBM i. Par défaut, cette option est 0. Contrairement à ibm_db2.i5_ignore_userid, cette option ne force pas tous les identifiants d'utilisateur à être vides ou à modifier le comportement du travail, mais permet simplement de passer un identifiant d'utilisateur vide, pour se connecter à Db2 en tant qu'utilisateur actuel.

  • 0 - Ne permet pas de passer un identifiant utilisateur vide.

  • 1 - Permet de passer un identifiant utilisateur vide.

ibm_db2.i5_char_trim int

Cette option contrôle si la fin des chaînes est tronquée sur IBM i. Étant donné que de nombreuses tables utilisent des tailles de colonnes fixes remplies d'espaces, cela est fourni par commodité. Par défaut, cette option est 0.

  • 0 - Les colonnes ne sont pas tronquées.

  • 1 - Les espaces à la fin des colonnes de caractères retournées sont supprimés.

ibm_db2.i5_dbcs_alloc (int)

Cette option affecte la stratégie d'allocation de mémoire tampon interne sur IBM i. Par défaut, cette option est 0. Lorsque cette option est définie, les tampons sont alloués avec une taille beaucoup plus grande, au cas où la base de données sous-estimerait la taille d'une chaîne lors de la conversion entre les encodages. Cette option utilise six fois plus de mémoire pour les tampons (pour prendre en compte les séquences UTF-8 les plus grandes possibles), mais peut être nécessaire si des données tronquées sont renvoyées.

  • 0 - Des tampons de taille minimale sont alloués.

  • 1 - Des tampons de taille plus grande sont alloués.

ibm_db2.i5_guard_profile int

Cette option vérifie si le profil utilisateur de la base de données a été changé lors de la connexion à une connexion de base de données persistante sur IBM i, et si c'est le cas, elle se déconnecte de la base de données. Par défaut, cette option est définie sur 0.

  • 0 - Ne pas vérifier les changements de profil.

  • 1 - Vérifier les changements de profil et se déconnecter le cas échéant.

ibm_db2.i5_log_verbose int

Cette option définit si les messages diagnostiques SQL tels que les avertissements et les erreurs sont toujours envoyés dans le journal d'erreurs PHP sur IBM i. Normalement, seul un bref message en cas d'échec est envoyé (tel que "l'exécution de la déclaration a échoué") dans le journal d'erreurs PHP, car cette option est définie sur 0 par défaut. Notez que vous pouvez toujours et devriez appeler, par exemple, db2_stmt_errormsg() manuellement pour vérifier si les fonctions échouent.

  • 0 - Ne journalise que des messages brefs.

  • 1 - Journalise le message diagnostique SQL en plus du message bref.

ibm_db2.i5_ignore_userid (int)

Cette option ignore l'ID utilisateur lors de la connexion à la base de données lors de l'exécution sur IBM i, et exécute la fonctionnalité SQL/CLI à l'intérieur du travail PHP, au lieu d'un travail séparé. Par défaut, cette option est 0. Lorsqu'elle est activée, elle n'utilise plus un travail de serveur de base de données séparé, et utilise toujours le profil utilisateur actuel pour la base de données, ignorant le nom d'utilisateur et le mot de passe transmis à db2_connect() et db2_pconnect().

  • 0 : db2_(p)connect avec un identifiant utilisateur et un mot de passe spécifique 0 - Utilise les informations d'identification spécifiées et utilise un travail de serveur SQL/CLI.

  • 1 : db2_(p)connect avec un identifiant utilisateur et un mot de passe vide 1 - Utilise toujours des informations d'identification vides et exécute SQL/CLI dans le travail PHP.

ibm_db2.i5_job_sort int

Contrôle l'option de tri des travaux sur IBM i. Par défaut, cette option est 0. Cela correspond à l'attribut SQL_ATTR_CONN_SORT_SEQUENCE d'IBM i SQL/CLI.

  • 0 - Utilise l'option de tri *HEX, triant par octets.

  • 1 - Utilise la séquence de tri de travail définie pour le travail PHP.

  • 2 - Utilise la séquence de tri de travail définie pour le travail de base de données.

ibm_db2.i5_max_pconnect int

Cela affectera combien de fois une connexion persistante peut être réutilisée lors de l'exécution sur IBM i. Par défaut, cela est réglé sur 0, ce qui signifie qu'une connexion persistante peut toujours être réutilisée. Cette option peut aider à contourner les problèmes dans un travail de base de données de longue durée (c'est-à-dire si une procédure perd de la mémoire), mais n'est évidemment pas une solution à long terme.

ibm_db2.i5_override_ccsid int

Le CCSID PASE à utiliser pour les conversions de caractères d'EBCDIC sur IBM i. Par défaut, c'est 0, ce qui sélectionnera le CCSID de travail PASE par défaut, provenant des paramètres de localisation PASE. Par exemple, en le réglant sur 1208, on utilisera l'UTF-8. Cela ne doit être modifié que si le CCSID du travail PASE n'est pas le CCSID attendu, et que la localisation ne peut pas être modifiée.

Pour en savoir plus sur les CCSID sur IBM i, consultez la » documentation IBM. Pour savoir comment les localisations sur IBM i PASE sont mappées sur les CCSID, consultez la » documentation IBM.

ibm_db2.i5_sys_naming int

Cette option contrôle le mode de nommage lors de la connexion à un système IBM i. Par défaut, cette option est 0. Le mode de nommage affecte la résolution des noms et la syntaxe autorisée pour les noms. Lorsqu'il est réglé sur 0, cela utilise des points pour qualifier les noms et utilise la bibliothèque ou l'ID utilisateur par défaut pour résoudre les noms. Lorsqu'il est réglé sur 1, cela utilise des barres obliques pour qualifier les noms et utilise la liste de bibliothèques de travail pour résoudre les noms.

  • 0 - Utilise le mode de nommage SQL ("SCHEMA.TABLE").

  • 1 - Utilise le mode de nommage système ("LIBRARY/FILE").

Pour en savoir plus sur les modes de nommage sur IBM i, consultez la » documentation IBM.

ibm_db2.i5_servermode-subsystem string

Cette option modifie le sous-système sous lequel les travaux du serveur de base de données s'exécutent sur IBM i. Par défaut, cette option est null, donc les travaux s'exécuteront sous le sous-système par défaut pour les travaux QSQSRVR.

ibm_db2.instance_name string

Sur les systèmes d'exploitation Linux et UNIX, cette option définit le nom de l'instance à utiliser pour les connexions de base de données cataloguées. Par défaut, cette option est null. Si cette option est définie, sa valeur remplace le réglage de la variable d'environnement DB2INSTANCE.

Cette option est ignorée sur les systèmes d'exploitation Windows.


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 (int)
Spécifie que les données binaires seront retournées comme elles sont. Ceci est le mode par défaut.
DB2_CONVERT (int)
Spécifie que les données binaires seront converties en hexadécimal et retournées comme une chaîne ASCII.
DB2_PASSTHRU (int)
Spécifie que les données binaires seront converties en valeur null.
DB2_SCROLLABLE (int)
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 (int)
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 (int)
Spécifie que la variable PHP doit être lié comme étant un paramètre ENTRANT pour une procédure d'enregistrement.
DB2_PARAM_OUT (int)
Spécifie que la variable PHP doit être lié comme étant un paramètre SORTANT pour une procédure d'enregistrement.
DB2_PARAM_INOUT (int)
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 (int)
Spécifie que la colonne doit être lié directement à un fichier pour entrée.
DB2_AUTOCOMMIT_ON (int)
Spécifie que autocommit doit être activé.
DB2_AUTOCOMMIT_OFF (int)
Spécifie que autocommit doit être désactivé.
DB2_DOUBLE (int)
Spécifie que la variable doit être lié à un type DOUBLE, FLOAT ou REAL.
DB2_LONG (int)
Spécifie que la variable doit être lié à un type SMALLINT, INTEGER ou BIGINT.
DB2_CHAR (int)
Spécifie que la variable doit être lié à un type CHAR ou VARCHAR
DB2_CASE_NATURAL (int)
Spécifie que les noms de colonnes doivent être retournés dans leurs casses naturelles.
DB2_CASE_LOWER (int)
Spécifie que les noms de colonnes doivent être retournés en minuscule.
DB2_CASE_UPPER (int)
Spécifie que les noms de colonnes doivent être retournés en majuscule.
DB2_DEFERRED_PREPARE_ON (int)
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 (int)
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

db2_autocommit(resource $connection, int $value = ?): int|bool

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 DB2_AUTOCOMMIT_OFF signifie que AUTOCOMMIT est désactivé, tandis qu'une valeur de DB2_AUTOCOMMIT_ON 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 == DB2_AUTOCOMMIT_OFF) {
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 == DB2_AUTOCOMMIT_OFF) {
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

db2_bind_param(
resource $stmt,
int $parameter_number,
string $variable_name,
int $parameter_type = DB2_PARAM_IN,
int $data_type = 0,
int $precision = -1,
int $scale = 0
): bool

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

db2_client_info(resource $connection): stdClass|false

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, ou false si une erreur survient

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

db2_close(resource $connection): bool

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

db2_column_privileges(
resource $connection,
?string $qualifier = null,
?string $schema = null,
?string $table_name = null,
?string $column_name = null
): resource

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

db2_columns(
resource $connection,
?string $qualifier = null,
?string $schema = null,
?string $table_name = null,
?string $column_name = null
): resource

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

db2_commit(resource $connection): bool

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

db2_conn_error(?resource $connection = null): string

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

db2_conn_errormsg(?resource $connection = null): string

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

db2_connect(
string $database,
?string $username,
?string $password,
array $options = []
): resource|false

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 sérialisé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

db2_cursor_type(resource $stmt): int

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

db2_escape_string(string $string_literal): string

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

db2_exec(resource $connection, string $statement, array $options = []): resource|false

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 nœuds 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

db2_execute(resource $stmt, array $parameters = []): bool

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 nœuds 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

db2_fetch_array(resource $stmt, int $row_number = -1): array|false

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

db2_fetch_assoc(resource $stmt, int $row_number = -1): array|false

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

db2_fetch_both(resource $stmt, int $row_number = -1): array|false

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

db2_fetch_object(resource $stmt, int $row_number = -1): stdClass|false

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

db2_fetch_row(resource $stmt, int $row_number = -1): bool

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

db2_field_display_size(resource $stmt, int|string $column): int|false

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

db2_field_name(resource $stmt, int|string $column): string|false

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

db2_field_num(resource $stmt, int|string $column): int|false

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

db2_field_precision(resource $stmt, int|string $column): int|false

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

db2_field_scale(resource $stmt, int|string $column): int|false

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

db2_field_type(resource $stmt, int|string $column): string|false

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

db2_field_width(resource $stmt, int|string $column): int|false

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

db2_foreign_keys(
resource $connection,
?string $qualifier,
?string $schema,
string $table_name
): resource

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

db2_free_result(resource $stmt): bool

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

db2_free_stmt(resource $stmt): bool

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

db2_get_option(resource $resource, string $option): string|false

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

db2_last_insert_id(resource $resource): ?string

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

db2_lob_read(resource $stmt, int $colnum, int $length): string|false

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

db2_next_result(resource $stmt): resource|false

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

db2_num_fields(resource $stmt): int|false

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

db2_num_rows(resource $stmt): int|false

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 bool 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, ou false si une erreur survient


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

db2_pclose(resource $connection): bool

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

db2_pconnect(
string $database,
?string $username,
?string $password,
array $options = []
): resource|false

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

db2_prepare(resource $connection, string $statement, array $options = []): resource|false

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

db2_primary_keys(
resource $connection,
?string $qualifier,
?string $schema,
string $table_name
): resource

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

db2_procedure_columns(
resource $connection,
?string $qualifier,
string $schema,
string $procedure,
?string $parameter
): resource

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

db2_procedures(
resource $connection,
?string $qualifier,
string $schema,
string $procedure
): resource

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

db2_result(resource $stmt, int|string $column): ?mixed

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

db2_rollback(resource $connection): bool

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

db2_server_info(resource $connection): stdClass|false

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, ou false si une erreur survient

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

db2_set_option(resource $resource, array $options, int $type): bool

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

db2_special_columns(
resource $connection,
?string $qualifier,
string $schema,
string $table_name,
int $scope
): resource

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

db2_statistics(
resource $connection,
?string $qualifier,
?string $schema,
string $table_name,
bool $unique
): resource

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

Quand unique est true, les informations relatives à tous les index de la table sont renvoyées. Sinon, seules les informations relatives aux index uniques de la table sont renvoyées.

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

db2_stmt_error(?resource $stmt = null): string

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

db2_stmt_errormsg(?resource $stmt = null): string

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

db2_table_privileges(
resource $connection,
?string $qualifier = null,
?string $schema = null,
?string $table_name = null
): resource

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
  • MongoDB »
  • 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

db2_tables(
resource $connection,
?string $qualifier = null,
?string $schema = null,
?string $table_name = null,
?string $table_type = null
): resource

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


MongoDB driver

This extension 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
    • Using the PHP Library for MongoDB (PHPLIB)
    • Application Performance Monitoring (APM)
  • Driver Architecture and Internals — Explains the driver architecture, 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\Session — The MongoDB\Driver\Session class
    • MongoDB\Driver\ClientEncryption — The MongoDB\Driver\ClientEncryption class
    • MongoDB\Driver\ServerApi — The MongoDB\Driver\ServerApi 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\CursorInterface — The MongoDB\Driver\CursorInterface interface
    • MongoDB\Driver\Server — La classe MongoDB\Driver\Server
    • MongoDB\Driver\ServerDescription — The MongoDB\Driver\ServerDescription class
    • MongoDB\Driver\TopologyDescription — The MongoDB\Driver\TopologyDescription class
    • 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 — Classes de types BSON et fonctions de sérialisation
    • Fonctions
    • MongoDB\BSON\Document — The MongoDB\BSON\Document class
    • MongoDB\BSON\PackedArray — The MongoDB\BSON\PackedArray class
    • MongoDB\BSON\Iterator — The MongoDB\BSON\Iterator class
    • 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 — The MongoDB\BSON\ObjectId class
    • 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\BSON\BinaryInterface — The MongoDB\BSON\BinaryInterface interface
    • MongoDB\BSON\Decimal128Interface — The MongoDB\BSON\Decimal128Interface interface
    • MongoDB\BSON\JavascriptInterface — The MongoDB\BSON\JavascriptInterface interface
    • MongoDB\BSON\MaxKeyInterface — The MongoDB\BSON\MaxKeyInterface interface
    • MongoDB\BSON\MinKeyInterface — The MongoDB\BSON\MinKeyInterface interface
    • MongoDB\BSON\ObjectIdInterface — The MongoDB\BSON\ObjectIdInterface interface
    • MongoDB\BSON\RegexInterface — The MongoDB\BSON\RegexInterface interface
    • MongoDB\BSON\TimestampInterface — The MongoDB\BSON\TimestampInterface interface
    • MongoDB\BSON\UTCDateTimeInterface — The MongoDB\BSON\UTCDateTimeInterface interface
    • MongoDB\BSON\DBPointer — The MongoDB\BSON\DBPointer class (deprecated)
    • MongoDB\BSON\Int64 — The MongoDB\BSON\Int64 class
    • MongoDB\BSON\Symbol — The MongoDB\BSON\Symbol class (deprecated)
    • MongoDB\BSON\Undefined — The MongoDB\BSON\Undefined class (deprecated)
  • MongoDB\Driver\Monitoring — Monitoring classes and subscriber functions
    • Fonctions
    • MongoDB\Driver\Monitoring\CommandFailedEvent — La classe MongoDB\Driver\Monitoring\CommandFailedEvent
    • MongoDB\Driver\Monitoring\CommandStartedEvent — La classe MongoDB\Driver\Monitoring\CommandStartedEvent
    • MongoDB\Driver\Monitoring\CommandSucceededEvent — The MongoDB\Driver\Monitoring\CommandSucceededEvent class
    • MongoDB\Driver\Monitoring\ServerChangedEvent — The MongoDB\Driver\Monitoring\ServerChangedEvent class
    • MongoDB\Driver\Monitoring\ServerClosedEvent — The MongoDB\Driver\Monitoring\ServerClosedEvent class
    • MongoDB\Driver\Monitoring\ServerOpeningEvent — The MongoDB\Driver\Monitoring\ServerOpeningEvent class
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent — The MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent class
    • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent — The MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent class
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent — The MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent class
    • MongoDB\Driver\Monitoring\TopologyChangedEvent — The MongoDB\Driver\Monitoring\TopologyChangedEvent class
    • MongoDB\Driver\Monitoring\TopologyClosedEvent — The MongoDB\Driver\Monitoring\TopologyClosedEvent class
    • MongoDB\Driver\Monitoring\TopologyOpeningEvent — The MongoDB\Driver\Monitoring\TopologyOpeningEvent class
    • MongoDB\Driver\Monitoring\CommandSubscriber — The MongoDB\Driver\Monitoring\CommandSubscriber interface
    • MongoDB\Driver\Monitoring\LogSubscriber — The MongoDB\Driver\Monitoring\LogSubscriber interface
    • MongoDB\Driver\Monitoring\SDAMSubscriber — The MongoDB\Driver\Monitoring\SDAMSubscriber interface
    • MongoDB\Driver\Monitoring\Subscriber — The MongoDB\Driver\Monitoring\Subscriber interface
  • MongoDB\Driver\Exception — Exception classes
    • MongoDB\Driver\Exception\AuthenticationException — La classe MongoDB\Driver\Exception\AuthenticationException
    • MongoDB\Driver\Exception\BulkWriteException — La classe MongoDB\Driver\Exception\BulkWriteException
    • MongoDB\Driver\Exception\CommandException — The MongoDB\Driver\Exception\CommandException class
    • MongoDB\Driver\Exception\ConnectionException — La classe MongoDB\Driver\Exception\ConnectionException
    • MongoDB\Driver\Exception\ConnectionTimeoutException — The MongoDB\Driver\Exception\ConnectionTimeoutException class
    • MongoDB\Driver\Exception\EncryptionException — The MongoDB\Driver\Exception\EncryptionException class
    • MongoDB\Driver\Exception\Exception — La classe MongoDB\Driver\Exception\Exception
    • MongoDB\Driver\Exception\ExecutionTimeoutException — The MongoDB\Driver\Exception\ExecutionTimeoutException class
    • MongoDB\Driver\Exception\InvalidArgumentException — La classe MongoDB\Driver\Exception\InvalidArgumentException
    • MongoDB\Driver\Exception\LogicException — The MongoDB\Driver\Exception\LogicException class
    • MongoDB\Driver\Exception\RuntimeException — La classe MongoDB\Driver\Exception\RuntimeException
    • MongoDB\Driver\Exception\ServerException — The MongoDB\Driver\Exception\ServerException class
    • MongoDB\Driver\Exception\SSLConnectionException — La classe MongoDB\Driver\Exception\SSLConnectionException
    • MongoDB\Driver\Exception\UnexpectedValueException — The MongoDB\Driver\Exception\UnexpectedValueException class
    • MongoDB\Driver\Exception\WriteException — La classe MongoDB\Driver\Exception\WriteException
    • Class Tree — MongoDB Exception Class Tree


Installation/Configuration

  • Pré-requis
  • Installation
    • Installing the MongoDB PHP Driver with PECL
    • Installing the MongoDB PHP Driver on macOS with Homebrew
    • Installing the MongoDB PHP Driver on Windows
    • Building the MongoDB PHP Driver from source
  • Configuration à l'exécution
  • Constantes pré-définies


Pré-requis

As of version 1.16.0, the driver requires PHP 7.2 or higher. Previous versions of the driver allow compatibility with older PHP versions.

The driver requires » libbson and » libmongoc, and will use bundled versions of both libraries by default. System libraries may also be used, as discussed in the manual installation documentation.

The driver, via libmongoc, optionally depends on a TLS library (e.g. OpenSSL) and will use it if available. If the build process fails to find a TLS library, users should check that the appropriate development package (e.g. libssl-dev) and » pkg-config are both installed. The process for detecting and configuring TLS libraries is discussed in more detail in the manual installation documentation.

» Cyrus SASL is an optional dependency to support Kerberos authentication and will be used if available.

Note: Due to potential problems representing 64-bit integers on 32-bit platforms, users are advised to use 64-bit environments. When using a 32-bit platform, be aware that any 64-bit integer read from the database will be returned as a MongoDB\BSON\Int64 instance instead of a PHP integer type.


Installation

Sommaire

  • Installing the MongoDB PHP Driver with PECL
  • Installing the MongoDB PHP Driver on macOS with Homebrew
  • Installing the MongoDB PHP Driver on Windows
  • Building the MongoDB PHP Driver from source


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 : » https://pecl.php.net/package/mongodb

Linux, Unix, and macOS users may run the following command to install the driver:

$ sudo pecl install mongodb

On systems with multiple version of PHP installed (e.g. macOS default, Homebrew, » XAMPP), each version of PHP will have its own pecl command and php.ini file(s). Additionally, each PHP environments (e.g. CLI, web) may use separate php.ini files.

As of driver version 1.17.0, PECL will prompt for various configure options. To install the driver with default options in a non-interactive script, empty string input may be piped to pecl install using the yes command:

$ yes '' | sudo pecl install mongodb

A complete list of supported configure options can be found in the package.xml file included in the PECL package. To install the driver with specific configure options in a non-interactive script, the --configureoptions option for pecl install may be used:

$ sudo pecl install --configureoptions='with-mongodb-system-libs="yes" enable-mongodb-developer-flags="no"' mongodb

By default, installing the driver via PECL will use bundled versions of » libbson, » libmongoc, and » libmongocrypt and attempt to automatically configure them.

Note: If the build process fails to find an SSL library, check that the development packages (e.g. libssl-dev) and » pkg-config are both installed. If that does not resolve the problem, consider using the manual installation process.

Finally, add the following line to the php.ini file for each environment that will need to use the driver:

extension=mongodb.so


Installing the MongoDB PHP Driver on macOS with Homebrew

» Homebrew 1.5.0 deprecated the » Homebrew/php tap and removed formulae for individual PHP extensions. Going forward, macOS users are advised to install the » php formula and follow the standard PECL installation instructions using the pecl command provided by the Homebrew PHP installation.


Installing the MongoDB PHP Driver on Windows

Precompiled binaries are attached to the project's » Github releases. Archives are published for various combinations of PHP version, thread safety (TS or NTS), and architecture (x86 or x64). Determining the correct archive for the PHP environment and extract the php_mongodb.dll file to the extension directory ("ext" by default).

Add the following line to the php.ini file for each environment that will need to use the driver:

extension=php_mongodb.dll

Failure to select the correct binary will result in an error when attempting to load the extension DLL at runtime:

PHP Warning:  PHP Startup: Unable to load dynamic library 'mongodb'

Ensure that the downloaded DLL corresponds to the following PHP runtime properties:

  • PHP version (PHP_VERSION)
  • Thread safety (PHP_ZTS)
  • Architecture (PHP_INT_SIZE)

In addition to the aforementioned constants, these properties can also be inferred from phpinfo(). If a system has multiple PHP runtimes installed, double-check that the phpinfo() output is for the correct environment.

Note: Additional DLL dependencies for Windows Users

Afin de faire fonctionner cette extension, quelques bibliothèques DLL doivent être disponibles via le PATH du système Windows. Lisez la F.A.Q 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


Building the MongoDB PHP Driver from source

For driver developers and users interested in the latest bugfixes, the driver may be compiled 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 update --init
$ phpize
$ ./configure
$ make all
$ sudo make install

On systems with multiple version of PHP installed (e.g. macOS default, Homebrew, » XAMPP), each version of PHP will have its own phpize command and php.ini file(s). Additionally, each PHP environments (e.g. CLI, web) may use separate php.ini files.

By default, the driver will use bundled versions of » libbson, » libmongoc, and » libmongocrypt and attempt to configure them automatically. If these libraries are already installed as system libraries, the driver can utilize them by specifying --with-mongodb-system-libs=yes as an option to configure.

For a complete list of configure options, run configure --help.

When using bundled versions of libmongoc and libmongocrypt, the driver will also attempt to select an SSL library according to the --with-mongodb-ssl configure option. As of driver version 1.17.0, OpenSSL is always preferred by default. Previously, Secure Transport was the default on macOS and OpenSSL was the default on all other platforms.

Note:

If the build process fails to find an SSL library, check that the development packages (e.g. libssl-dev) and » pkg-config are both installed.

When using Homebrew on macOS, it is common for a system to have multiple versions of OpenSSL installed. To ensure that the desired version of OpenSSL is selected, the PKG_CONFIG_PATH environment variable may be used to control the search path for pkg-config. If pkg-config is not used, configure also supports a --with-openssl-dir=DIR argument, which can be used to specify a manual search path (for OpenSSL only).

The final build step, make install, will report where mongodb.so has been installed, similar to:

Installing shared extensions:     /usr/lib/php/extensions/debug-non-zts-20220829/

Ensure that the extension_dir option in php.ini points to the directory where mongodb.so was installed. The option may be queried by running:

$ php -i | grep extension_dir
  extension_dir => /usr/lib/php/extensions/debug-non-zts-20220829 =>
                   /usr/lib/php/extensions/debug-non-zts-20220829

If the directories differ, either change extension_dir in php.ini or manually move mongodb.so to the correct directory.

Finally, add the following line to the php.ini file for each environment that will need to use the driver:

extension=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
mongodb.debug | "" | INI_ALL |

Voici un éclaircissement sur l'utilisation des directives de configuration.

mongodb.debug string

This option can be used to enable or disable trace-level debug logging in the driver (and libmongoc).

Specify an empty string, "0", "off", "no", or "false" to disable logging.

Specify "stderr" or "stdout" to log to stderr or stdout, respectively.

Specify "1", "on", "yes", or "true" to log to a new temporary file within the default system temp directory (i.e. sys_get_temp_dir()).

Specify any other string to log to a new temporary file within that directory. If the directory cannot be used, the default system temp directory will be used instead.

Note:

Please note that the debug log can contain sensitive information, such as credentials to the MongoDB server and full documents written to or read from the server. Please review any debug logs before sharing them with other people.


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 du numéro de version de l'extension
MONGODB_STABILITY (string)
Stabilité courante (alpha/beta/stable)


Tutorials

In this section you will find several tutorials on how to use the MongoDB driver for PHP.

  • Using the PHP Library for MongoDB (PHPLIB)
  • Application Performance Monitoring (APM)


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

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.

If you have used MongoDB drivers in other languages, the library's API should look familiar. It contains a » Client class for connecting to MongoDB, a » 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).

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's autoloader

$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()}'";
?>

Since the inserted document did not contain an _id field, the driver will generate an MongoDB\BSON\ObjectId for the server to use as the _id. This value is also made available to the caller via the result object returned by the insertOne method.

After insertion, you can query for 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's autoloader

$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, these type 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.


Application Performance Monitoring (APM)

The MongoDB driver contains an event subscriber API, which allows applications to monitor commands and internal activity pertaining to the » Server Discovery and Monitoring Specification. This tutorial will demonstrate command monitoring using the MongoDB\Driver\Monitoring\CommandSubscriber interface.

The MongoDB\Driver\Monitoring\CommandSubscriber interface defines three methods: commandStarted, commandSucceeded, and commandFailed. Each of these three methods accept a single event argument of a specific class for the respective event. For example, the commandSucceeded's $event argument is a MongoDB\Driver\Monitoring\CommandSucceededEvent object.

In this tutorial we will implement a subscriber that creates a list of all the query profiles and the average time they took.

Subscriber Class Scaffolding

We start with the framework for our subscriber:

<?php

class QueryTimeCollector implements \MongoDB\Driver\Monitoring\CommandSubscriber
{
public function commandStarted( \MongoDB\Driver\Monitoring\CommandStartedEvent $event ): void
{
}

public function commandSucceeded( \MongoDB\Driver\Monitoring\CommandSucceededEvent $event ): void
{
}

public function commandFailed( \MongoDB\Driver\Monitoring\CommandFailedEvent $event ): void
{
}
}

?>

Registering the Subscriber

Once a subscriber object is instantiated, it needs to be registered with the driver's monitoring system. This is done by calling MongoDB\Driver\Monitoring\addSubscriber() or MongoDB\Driver\Manager::addSubscriber() to register the subscriber globally or with a specific Manager, respectively.

<?php

\MongoDB\Driver\Monitoring\addSubscriber( new QueryTimeCollector() );

?>

Implementing the Logic

With the object registered, the only thing left is to implement the logic in the subscriber class. To correlate the two events that make up a successfully executed command (commandStarted and commandSucceeded), each event object exposes a requestId field.

To record the average time per query shape, we will start by checking for a find command in the commandStarted event. We will then add an item to the pendingCommands property indexed by its requestId and with its value representing the query shape.

If we receive a corresponding commandSucceeded event with the same requestId, we add the duration of the event (from durationMicros) to the total time and increment the operation count.

If a corresponding commandFailed event is encountered, we just remove the entry from the pendingCommands property.

<?php

class QueryTimeCollector implements \MongoDB\Driver\Monitoring\CommandSubscriber
{
private $pendingCommands = [];
private $queryShapeStats = [];

/* Creates a query shape out of the filter argument. Right now it only
* takes the top level fields into account */
private function createQueryShape( array $filter )
{
return json_encode( array_keys( $filter ) );
}

public function commandStarted( \MongoDB\Driver\Monitoring\CommandStartedEvent $event ): void
{
if ( array_key_exists( 'find', (array) $event->getCommand() ) )
{
$queryShape = $this->createQueryShape( (array) $event->getCommand()->filter );
$this->pendingCommands[$event->getRequestId()] = $queryShape;
}
}

public function commandSucceeded( \MongoDB\Driver\Monitoring\CommandSucceededEvent $event ): void
{
$requestId = $event->getRequestId();
if ( array_key_exists( $requestId, $this->pendingCommands ) )
{
$this->queryShapeStats[$this->pendingCommands[$requestId]]['count']++;
$this->queryShapeStats[$this->pendingCommands[$requestId]]['duration'] += $event->getDurationMicros();
unset( $this->pendingCommands[$requestId] );
}
}

public function commandFailed( \MongoDB\Driver\Monitoring\CommandFailedEvent $event ): void
{
if ( array_key_exists( $event->getRequestId(), $this->pendingCommands ) )
{
unset( $this->pendingCommands[$event->getRequestId()] );
}
}

public function __destruct()
{
foreach( $this->queryShapeStats as $shape => $stats )
{
echo "Shape: ", $shape, " (", $stats['count'], ")\n ",
$stats['duration'] / $stats['count'], "µs\n\n";
}
}
}

$m = new \MongoDB\Driver\Manager( 'mongodb://localhost:27016' );

/* Add the subscriber */
\MongoDB\Driver\Monitoring\addSubscriber( new QueryTimeCollector() );

/* Do a bunch of queries */
$query = new \MongoDB\Driver\Query( [
'region_slug' => 'scotland-highlands', 'age' => [ '$gte' => 20 ]
] );
$cursor = $m->executeQuery( 'dramio.whisky', $query );

$query = new \MongoDB\Driver\Query( [
'region_slug' => 'scotland-lowlands', 'age' => [ '$gte' => 15 ]
] );
$cursor = $m->executeQuery( 'dramio.whisky', $query );

$query = new \MongoDB\Driver\Query( [ 'region_slug' => 'scotland-lowlands' ] );
$cursor = $m->executeQuery( 'dramio.whisky', $query );

?>


Explains the driver architecture, 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 article explains how all the different components of the PHP driver fit together, from base system libraries, through the extension, and to the PHP libraries on top.

At the top of this stack sits a » PHP library, which is distributed as a » Composer package. This library provides an API consistent with other MongoDB » drivers and implements various cross-driver » specifications. While the extension can be used directly, the library has minimal overhead and should be a common dependency for most applications built with MongoDB.

Sitting below that library is a PHP extension, which is distributed through » PECL. The extension forms the glue between PHP and our system libraries (» libmongoc, » libbson, and » libmongocrypt). Its public API provides only the most essential functionality:

  • Connection management
  • BSON encoding and decoding
  • Object document serialization (to support ODM libraries)
  • Executing commands, queries, and write operations
  • Handling cursors for command and query results

Driver Source Code and JIRA Projects
Project | GitHub | JIRA
PHP Library | » mongodb/mongo-php-library | » PHPLIB
PHP Extension | » mongodb/mongo-php-driver | » PHPC


Connection handling and persistence

Note: 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 version 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. This behavior can be disabled via the "disableClientPersistence" driver option.

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 hello 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 will be made. Depending on how long ago the previous request was served, the driver may need to issue additional hello 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.


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. empty array or 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(): array {
return [ 'foo' => $this->foo, 'prot' => $this->prot ];
}
} // => { "foo" : 42, "prot" : "wine" }

class AnotherClass2 implements MongoDB\BSON\Serializable {
public $foo = 42;
function bsonSerialize(): self {
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(): array {
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(): array {
return $this->elements;
}
}
function bsonSerialize(): array {
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(): array {
return array_values($this->elements);
}
}
function bsonSerialize(): array {
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(): array {
return (object) $this->elements;
}
}
function bsonSerialize(): array {
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(): array {
return [ 'foo' => $this->foo, 'prot' => $this->prot ];
}
} // => { "foo" : 42, "prot" : "wine", "__pclass" : { "$type" : "80", "$binary" : "VXBwZXJDbGFzcw==" } }


Deserialization from BSON

Avertissement

Les documents BSON peuvent techniquement contenir des clés dupliquées car les documents sont stockés en tant qu'une liste de paire clé-valeur ; cependant, les applications devrait s'abstenir de générer des documents avec des clés dupliquées car le comportement du serveur et du pilote peut être indéfinie. Puisque les objets et tableaux PHP ne peuvent pas avoir de clés dupliquées, les données pourraient aussi être perdu lors du décodage d'un document BSON avec des clés dupliquées.

The legacy mongo extension deserialized both BSON documents and arrays as PHP arrays. While PHP arrays are convenient to work with, this behavior was problematic because different BSON types could deserialize to the same PHP value (e.g. {"0": "foo"} and ["foo"]) and make it impossible to infer the original BSON type. By default, the current driver addresses this concern by ensuring that BSON arrays and documents are converted to PHP arrays and objects, respectively.

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

Besides the three collective types, it is also possible to configure specific fields in your document to map to the data types mentioned below. As an example, the following type map allows you to map each embedded document within an "addresses" array to an Address class and each "city" field within those embedded address documents to a City class:

[
    'fieldPaths' => [
        'addresses.$' => 'MyProject\Address',
        'addresses.$.city' => 'MyProject\City',
    ],
]

Each of those three data types, as well as the field specific mappings, can be mapped against different PHP types. The possible mapping values are:

not set or NULL (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.

    The __pclass functionality relies on the property being part of a retrieved MongoDB document. If you use a projection when querying for documents, you need to include the __pclass field in the projection for this functionality to work.

"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.

"bson"

Turns a BSON array into a MongoDB\BSON\PackedArray and a BSON document into a MongoDB\BSON\Document, regardless of whether the BSON document has a __pclass property [1].

Note: The bson value is only available for the three root types, not in the field specific mappings.

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(), MongoDB\BSON\Document::toPHP(), and MongoDB\BSON\PackedArray::toPHP(). Each of the three classes (root, document, and array) can be individually set, in addition to the field specific types.

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 database interaction 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::addSubscriber — Registers a monitoring event subscriber with this Manager
    • MongoDB\Driver\Manager::__construct — Create new MongoDB Manager
    • MongoDB\Driver\Manager::createClientEncryption — Create a new ClientEncryption object
    • 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::executeReadCommand — Execute a database command that reads
    • MongoDB\Driver\Manager::executeReadWriteCommand — Execute a database command that reads and writes
    • MongoDB\Driver\Manager::executeWriteCommand — Execute a database command that writes
    • MongoDB\Driver\Manager::getEncryptedFieldsMap — Return the encryptedFieldsMap auto encryption option for the Manager
    • MongoDB\Driver\Manager::getReadConcern — Return the ReadConcern for the Manager
    • MongoDB\Driver\Manager::getReadPreference — Return the ReadPreference for the Manager
    • MongoDB\Driver\Manager::getServers — Retourner les serveurs auxquels ce gestionnaire est connecté
    • MongoDB\Driver\Manager::getWriteConcern — Return the WriteConcern for the Manager
    • MongoDB\Driver\Manager::removeSubscriber — Unregisters a monitoring event subscriber with this Manager
    • MongoDB\Driver\Manager::selectServer — Select a server matching a read preference
    • MongoDB\Driver\Manager::startSession — Start a new client session for use with this client
  • 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 — Create a 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\Session — The MongoDB\Driver\Session class
    • MongoDB\Driver\Session::abortTransaction — Aborts a transaction
    • MongoDB\Driver\Session::advanceClusterTime — Advances the cluster time for this session
    • MongoDB\Driver\Session::advanceOperationTime — Advances the operation time for this session
    • MongoDB\Driver\Session::commitTransaction — Commits a transaction
    • MongoDB\Driver\Session::__construct — Create a new Session (not used)
    • MongoDB\Driver\Session::endSession — Terminates a session
    • MongoDB\Driver\Session::getClusterTime — Returns the cluster time for this session
    • MongoDB\Driver\Session::getLogicalSessionId — Returns the logical session ID for this session
    • MongoDB\Driver\Session::getOperationTime — Returns the operation time for this session
    • MongoDB\Driver\Session::getServer — Returns the server to which this session is pinned
    • MongoDB\Driver\Session::getTransactionOptions — Returns options for the currently running transaction
    • MongoDB\Driver\Session::getTransactionState — Returns the current transaction state for this session
    • MongoDB\Driver\Session::isDirty — Returns whether the session has been marked as dirty
    • MongoDB\Driver\Session::isInTransaction — Returns whether a multi-document transaction is in progress
    • MongoDB\Driver\Session::startTransaction — Starts a transaction
  • MongoDB\Driver\ClientEncryption — The MongoDB\Driver\ClientEncryption class
    • MongoDB\Driver\ClientEncryption::addKeyAltName — Adds an alternate name to a key document
    • MongoDB\Driver\ClientEncryption::__construct — Create a new ClientEncryption object
    • MongoDB\Driver\ClientEncryption::createDataKey — Creates a key document
    • MongoDB\Driver\ClientEncryption::decrypt — Decrypt a value
    • MongoDB\Driver\ClientEncryption::deleteKey — Deletes a key document
    • MongoDB\Driver\ClientEncryption::encrypt — Encrypt a value
    • MongoDB\Driver\ClientEncryption::encryptExpression — Encrypts a match or aggregate expression
    • MongoDB\Driver\ClientEncryption::getKey — Gets a key document
    • MongoDB\Driver\ClientEncryption::getKeyByAltName — Gets a key document by an alternate name
    • MongoDB\Driver\ClientEncryption::getKeys — Gets all key documents
    • MongoDB\Driver\ClientEncryption::removeKeyAltName — Removes an alternate name from a key document
    • MongoDB\Driver\ClientEncryption::rewrapManyDataKey — Rewraps data keys
  • MongoDB\Driver\ServerApi — The MongoDB\Driver\ServerApi class
    • MongoDB\Driver\ServerApi::bsonSerialize — Returns an object for BSON serialization
    • MongoDB\Driver\ServerApi::__construct — Create a new ServerApi instance
    • MongoDB\Driver\ServerApi::serialize — Serialize a ServerApi
    • MongoDB\Driver\ServerApi::unserialize — Unserialize a ServerApi
  • 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
    • 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::isDefault — Checks if this is the default write concern
    • MongoDB\Driver\WriteConcern::serialize — Serialize a WriteConcern
    • MongoDB\Driver\WriteConcern::unserialize — Unserialize a WriteConcern
  • MongoDB\Driver\ReadPreference — La classe MongoDB\Driver\ReadPreference
    • MongoDB\Driver\ReadPreference::bsonSerialize — Returns an object for BSON serialization
    • MongoDB\Driver\ReadPreference::__construct — Créer un nouveau ReadPreference
    • MongoDB\Driver\ReadPreference::getHedge — Returns the ReadPreference's "hedge" option
    • MongoDB\Driver\ReadPreference::getMaxStalenessSeconds — Returns the ReadPreference's "maxStalenessSeconds" option
    • MongoDB\Driver\ReadPreference::getMode — Returns the ReadPreference's "mode" option
    • MongoDB\Driver\ReadPreference::getModeString — Returns the ReadPreference's "mode" option as a string
    • MongoDB\Driver\ReadPreference::getTagSets — Returns the ReadPreference's "tagSets" option
    • MongoDB\Driver\ReadPreference::serialize — Serialize a ReadPreference
    • MongoDB\Driver\ReadPreference::unserialize — Unserialize a ReadPreference
  • MongoDB\Driver\ReadConcern — The MongoDB\Driver\ReadConcern class
    • MongoDB\Driver\ReadConcern::bsonSerialize — Returns an object for BSON serialization
    • MongoDB\Driver\ReadConcern::__construct — Create a new ReadConcern
    • MongoDB\Driver\ReadConcern::getLevel — Returns the ReadConcern's "level" option
    • MongoDB\Driver\ReadConcern::isDefault — Checks if this is the default read concern
    • MongoDB\Driver\ReadConcern::serialize — Serialize a ReadConcern
    • MongoDB\Driver\ReadConcern::unserialize — Unserialize a ReadConcern
  • MongoDB\Driver\Cursor — La classe MongoDB\Driver\Cursor
    • MongoDB\Driver\Cursor::__construct — Créer un nouveau curseur (non utilisé)
    • MongoDB\Driver\Cursor::current — Returns the current element
    • MongoDB\Driver\Cursor::getId — Retourne l'ID de ce curseur
    • MongoDB\Driver\Cursor::getServer — Retourne le serveur associé à ce curseur
    • MongoDB\Driver\Cursor::isDead — Vérifie si le curseur est épuisé ou peut avoir des résultats supplémentaires
    • MongoDB\Driver\Cursor::key — Returns the current result's index within the cursor
    • MongoDB\Driver\Cursor::next — Advances the cursor to the next result
    • MongoDB\Driver\Cursor::rewind — Rewind the cursor to the first result
    • MongoDB\Driver\Cursor::setTypeMap — Défini un type de carte à utiliser pour la désérialisation BSON
    • MongoDB\Driver\Cursor::toArray — Retourne un tableau contenant tous les résultats pour ce curseur
    • MongoDB\Driver\Cursor::valid — Checks if the current position in the cursor is valid
  • MongoDB\Driver\CursorId — La classe MongoDB\Driver\CursorId
    • MongoDB\Driver\CursorId::__construct — Créer un nouveau CursorId (non utilisé)
    • MongoDB\Driver\CursorId::serialize — Serialize a CursorId
    • MongoDB\Driver\CursorId::__toString — Représentation sous forme de chaîne de l'ID de curseur
    • MongoDB\Driver\CursorId::unserialize — Unserialize a CursorId
  • MongoDB\Driver\CursorInterface — The MongoDB\Driver\CursorInterface interface
    • MongoDB\Driver\CursorInterface::getId — Returns the ID for this cursor
    • MongoDB\Driver\CursorInterface::getServer — Returns the server associated with this cursor
    • MongoDB\Driver\CursorInterface::isDead — Checks if the cursor may have additional results
    • MongoDB\Driver\CursorInterface::setTypeMap — Sets a type map to use for BSON unserialization
    • MongoDB\Driver\CursorInterface::toArray — Returns an array containing all results for this cursor
  • MongoDB\Driver\Server — La classe MongoDB\Driver\Server
    • MongoDB\Driver\Server::__construct — Créer un nouveau serveur (non utilisé)
    • 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::executeReadCommand — Execute a database command that reads on this server
    • MongoDB\Driver\Server::executeReadWriteCommand — Execute a database command that reads and writes on this server
    • MongoDB\Driver\Server::executeWriteCommand — Execute a database command that writes on this server
    • MongoDB\Driver\Server::getHost — Retourne le nom d'hôte du serveur
    • MongoDB\Driver\Server::getInfo — Retourne un tableau d'informations décrivant ce serveur
    • MongoDB\Driver\Server::getLatency — Retourne la latence de ce serveur en millisecondes
    • MongoDB\Driver\Server::getPort — Retourne le port sur lequel le serveur écoute
    • MongoDB\Driver\Server::getServerDescription — Returns a ServerDescription for this server
    • 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\ServerDescription — The MongoDB\Driver\ServerDescription class
    • MongoDB\Driver\ServerDescription::getHelloResponse — Returns the server's most recent "hello" response
    • MongoDB\Driver\ServerDescription::getHost — Returns the hostname of this server
    • MongoDB\Driver\ServerDescription::getLastUpdateTime — Returns the server's last update time in microseconds
    • MongoDB\Driver\ServerDescription::getPort — Returns the port on which this server is listening
    • MongoDB\Driver\ServerDescription::getRoundTripTime — Returns the server's round trip time in milliseconds
    • MongoDB\Driver\ServerDescription::getType — Returns a string denoting the type of this server
  • MongoDB\Driver\TopologyDescription — The MongoDB\Driver\TopologyDescription class
    • MongoDB\Driver\TopologyDescription::getServers — Returns the servers in the topology
    • MongoDB\Driver\TopologyDescription::getType — Returns a string denoting the type of this topology
    • MongoDB\Driver\TopologyDescription::hasReadableServer — Returns whether the topology has a readable server
    • MongoDB\Driver\TopologyDescription::hasWritableServer — Returns whether the topology has a writable server
  • MongoDB\Driver\WriteConcernError — La classe MongoDB\Driver\WriteConcernError
    • MongoDB\Driver\WriteConcernError::getCode — Retourne le code d'erreur de WriteConcernError
    • MongoDB\Driver\WriteConcernError::getInfo — Retourne le document de métadonnées pour WriteConcernError
    • MongoDB\Driver\WriteConcernError::getMessage — Renvoie le message d'erreur du WriteConcernError
  • MongoDB\Driver\WriteError — La classe MongoDB\Driver\WriteError
    • MongoDB\Driver\WriteError::getCode — Retourne le code d'erreur de WriteError
    • MongoDB\Driver\WriteError::getIndex — Retourne l'index de l'opération d'écriture correspondant à ce WriteError
    • MongoDB\Driver\WriteError::getInfo — Retourne le document de métadonnées pour WriteError
    • MongoDB\Driver\WriteError::getMessage — Renvoie le message d'erreur du WriteError
  • MongoDB\Driver\WriteResult — La classe MongoDB\Driver\WriteResult
    • MongoDB\Driver\WriteResult::getDeletedCount — Renvoie le nombre de documents supprimés
    • MongoDB\Driver\WriteResult::getInsertedCount — Renvoie le nombre de documents insérés (à l'exception de Upserts)
    • MongoDB\Driver\WriteResult::getMatchedCount — Renvoie le nombre de documents sélectionnés pour la mise à jour
    • MongoDB\Driver\WriteResult::getModifiedCount — Renvoie le nombre de documents existants mis à jour
    • MongoDB\Driver\WriteResult::getServer — Retourne le serveur associé à ce résultat d'écriture
    • MongoDB\Driver\WriteResult::getUpsertedCount — Renvoie le nombre de documents insérés par un upsert
    • MongoDB\Driver\WriteResult::getUpsertedIds — Retourne un tableau d'identificateurs pour les documents upserted
    • MongoDB\Driver\WriteResult::getWriteConcernError — Retourne toute erreur de WriteConcern qui s'est produite
    • MongoDB\Driver\WriteResult::getWriteErrors — Retourne toutes les erreurs d'écriture qui se sont produites
    • MongoDB\Driver\WriteResult::isAcknowledged — Retourne si l'écriture a été reconnue


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 class MongoDB\Driver\Manager {
/* Méthodes */
final public addSubscriber(MongoDB\Driver\Monitoring\Subscriber $subscriber): void
final public __construct(?string $uri = null, ?array $uriOptions = null, ?array $driverOptions = null)
final public createClientEncryption(array $options): MongoDB\Driver\ClientEncryption
final public executeBulkWrite(string $namespace, MongoDB\Driver\BulkWrite $bulk, array|MongoDB\Driver\WriteConcern|null $options = null): MongoDB\Driver\WriteResult
final public executeCommand(string $db, MongoDB\Driver\Command $command, array|MongoDB\Driver\ReadPreference|null $options = null): MongoDB\Driver\Cursor
final public executeQuery(string $namespace, MongoDB\Driver\Query $query, array|MongoDB\Driver\ReadPreference|null $options = null): MongoDB\Driver\Cursor
final public executeReadCommand(string $db, MongoDB\Driver\Command $command, ?array $options = null): MongoDB\Driver\Cursor
final public executeReadWriteCommand(string $db, MongoDB\Driver\Command $command, ?array $options = null): MongoDB\Driver\Cursor
final public executeWriteCommand(string $db, MongoDB\Driver\Command $command, ?array $options = null): MongoDB\Driver\Cursor
final public getEncryptedFieldsMap(): array|object|null
final public getReadConcern(): MongoDB\Driver\ReadConcern
final public getReadPreference(): MongoDB\Driver\ReadPreference
final public getServers(): array
final public getWriteConcern(): MongoDB\Driver\WriteConcern
final public removeSubscriber(MongoDB\Driver\Monitoring\Subscriber $subscriber): void
final public selectServer(?MongoDB\Driver\ReadPreference $readPreference = null): MongoDB\Driver\Server
final public startSession(?array $options = null): MongoDB\Driver\Session
}

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);

?>

Résultat de l'exemple ci-dessus est similaire à :

object(MongoDB\Driver\Manager)#1 (2) {
  ["uri"]=>
  string(26) "mongodb://127.0.0.1:27017/"
  ["cluster"]=>
  array(0) {
  }
}

Sommaire

  • MongoDB\Driver\Manager::addSubscriber — Registers a monitoring event subscriber with this Manager
  • MongoDB\Driver\Manager::__construct — Create new MongoDB Manager
  • MongoDB\Driver\Manager::createClientEncryption — Create a new ClientEncryption object
  • 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::executeReadCommand — Execute a database command that reads
  • MongoDB\Driver\Manager::executeReadWriteCommand — Execute a database command that reads and writes
  • MongoDB\Driver\Manager::executeWriteCommand — Execute a database command that writes
  • MongoDB\Driver\Manager::getEncryptedFieldsMap — Return the encryptedFieldsMap auto encryption option for the Manager
  • MongoDB\Driver\Manager::getReadConcern — Return the ReadConcern for the Manager
  • MongoDB\Driver\Manager::getReadPreference — Return the ReadPreference for the Manager
  • MongoDB\Driver\Manager::getServers — Retourner les serveurs auxquels ce gestionnaire est connecté
  • MongoDB\Driver\Manager::getWriteConcern — Return the WriteConcern for the Manager
  • MongoDB\Driver\Manager::removeSubscriber — Unregisters a monitoring event subscriber with this Manager
  • MongoDB\Driver\Manager::selectServer — Select a server matching a read preference
  • MongoDB\Driver\Manager::startSession — Start a new client session for use with this client


Registers a monitoring event subscriber with this Manager

  • « MongoDB\Driver\Manager
  • MongoDB\Driver\Manager::__construct »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Registers a monitoring event subscriber with this Manager

MongoDB\Driver\Manager::addSubscriber

(mongodb >=1.10.0)

MongoDB\Driver\Manager::addSubscriber — Registers a monitoring event subscriber with this Manager

Description

final public MongoDB\Driver\Manager::addSubscriber(MongoDB\Driver\Monitoring\Subscriber $subscriber): void

Registers a monitoring event subscriber with this Manager. The subscriber will be notified of all events for this Manager.

Note: If subscriber is already registered with this Manager, this function is a no-op. If subscriber is also registered globally, it will still only be notified once of each event for this Manager.

Liste de paramètres

subscriber (MongoDB\Driver\Monitoring\Subscriber)

A monitoring event subscriber to register with this Manager.

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.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if subscriber is a MongoDB\Driver\Monitoring\LogSubscriber, since loggers can only be registered globally.

Voir aussi

  • MongoDB\Driver\Manager::removeSubscriber() - Unregisters a monitoring event subscriber with this Manager
  • MongoDB\Driver\Monitoring\Subscriber
  • MongoDB\Driver\Monitoring\CommandSubscriber
  • MongoDB\Driver\Monitoring\addSubscriber() - Enregistre un abonnement de surveillance d'événement
  • Application Performance Monitoring (APM)


Create new MongoDB Manager

  • « MongoDB\Driver\Manager::addSubscriber
  • MongoDB\Driver\Manager::createClientEncryption »
  • 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 = null, ?array $uriOptions = null, ?array $driverOptions = null)

Constructs a new MongoDB\Driver\Manager object with the specified options.

Note: Per the » Server Discovery and Monitoring Specification, this constructor performs no I/O. Connections will be initialized on demand, when the first operation is executed.

Note: When specifying any SSL or TLS URI options via the connection string or uriOptions parameter, the driver will implicitly enable TLS for its connections. To avoid this, either explicitly disable the tls option or don't specify any TLS options.

Note: 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]]][/[defaultAuthDb][?options]]

For details on supported URI options, see » Connection String Options in the MongoDB manual. » Connection pool options are not supported, as the PHP driver does not implement connection pools.

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.

The defaultAuthDb component may be used to specify the database name associated with the user's credentials; however the authSource URI option will take priority if specified. If neither defaultAuthDb nor authSource are specified, the admin database will be used by default. The defaultAuthDb component has no effect in the absence of user credentials.

uriOptions

Additional » connection string options, which will overwrite any options with the same name in the uri parameter.

uriOptions
Option | Type | Description
appname string

MongoDB 3.4+ has the ability to annotate connections with metadata provided by the connecting client. This metadata is included in the server's logs upon establishing a connection and also recorded in slow query logs when database profiling is enabled.

This option may be used to specify an application name, which will be included in the metadata. The value cannot exceed 128 characters in length.

authMechanism string

The authentication mechanism that MongoDB will use to authenticate the connection. For additional details and a list of supported values, see » Authentication Options in the MongoDB manual.

authMechanismProperties array

Properties for the selected authentication mechanism. For additional details and a list of supported properties, see the » Driver Authentication Specification.

Note: When not specified in the URI string, this option is expressed as an array of key/value pairs. The keys and values in this array should be strings.

authSource string

The database name associated with the user's credentials. Defaults to the database component of the connection URI, or the admin database if both are unspecified.

For authentication mechanisms that delegate credential storage to other services (e.g. GSSAPI), this should be "$external".

canonicalizeHostname bool

If true, the driver will resolve the real hostname for the server IP address before authenticating via SASL. Some underlying GSSAPI layers already do this, but the functionality may be disabled in their config (e.g. krb.conf). Defaults to false.

This option is a deprecated alias for the "CANONICALIZE_HOST_NAME" property of the "authMechanismProperties" URI option.

compressors string

A prioritized, comma-delimited list of compressors that the client wants to use. Messages are only compressed if the client and server share any compressors in common, and the compressor used in each direction will depend on the individual configuration of the server or driver. See the » Driver Compression Specification for more information.

connectTimeoutMS int

The time in milliseconds to attempt a connection before timing out. Defaults to 10,000 milliseconds.

directConnection bool

This option can be used to control replica set discovery behavior when only a single host is provided in the connection string. By default, providing a single member in the connection string will establish a direct connection or discover additional members depending on whether the "replicaSet" URI option is omitted or present, respectively. Specify false to force discovery to occur (if "replicaSet" is omitted) or specify true to force a direct connection (if "replicaSet" is present).

gssapiServiceName string

Set the Kerberos service name when connecting to Kerberized MongoDB instances. This value must match the service name set on MongoDB instances (i.e. » saslServiceName server parameter). Defaults to "mongodb".

This option is a deprecated alias for the "SERVICE_NAME" property of the "authMechanismProperties" URI option.

heartbeatFrequencyMS int

Specifies the interval in milliseconds between the driver's checks of the MongoDB topology, counted from the end of the previous check until the beginning of the next one. Defaults to 60,000 milliseconds.

Per the » Server Discovery and Monitoring Specification, this value cannot be less than 500 milliseconds.

journal bool

Corresponds to the default write concern's journal parameter. If true, writes will require acknowledgement from MongoDB that the operation has been written to the journal. For details, see MongoDB\Driver\WriteConcern.

loadBalanced bool

Specifies whether the driver is connecting to a MongoDB cluster through a load balancer. If true, the driver may only connect to a single host (specified by either the connection string or SRV lookup), the "directConnection" URI option cannot be true, and the "replicaSet" URI option must be omitted. Defaults to false.

localThresholdMS int

The size in milliseconds of the latency window for selecting among multiple suitable MongoDB instances while resolving a read preference. Defaults to 15 milliseconds.

maxStalenessSeconds int

Corresponds to the read preference's "maxStalenessSeconds". Specifies, in seconds, how stale a secondary can be before the client stops using it for read operations. By default, there is no maximum staleness and clients will not consider a secondary’s lag when choosing where to direct a read operation. For details, see MongoDB\Driver\ReadPreference.

If specified, the max staleness must be a signed 32-bit integer greater than or equal to MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS (i.e. 90 seconds).

password | string | The password for the user being authenticated. This option is useful if the password contains special characters, which would otherwise need to be URL encoded for the connection URI.
readConcernLevel | string | Corresponds to the read concern's level parameter. Specifies the level of read isolation. For details, see MongoDB\Driver\ReadConcern.
readPreference string

Corresponds to the read preference's mode parameter. Defaults to "primary". For details, see MongoDB\Driver\ReadPreference.

readPreferenceTags array

Corresponds to the read preference's tagSets parameter. Tag sets allow you to target read operations to specific members of a replica set. For details, see MongoDB\Driver\ReadPreference.

Note: When not specified in the URI string, this option is expressed as an array consistent with the format expected by MongoDB\Driver\ReadPreference::__construct().

replicaSet string

Specifies the name of the replica set.

retryReads bool

Specifies whether or not the driver should automatically retry certain read operations that fail due to transient network errors or replica set elections. This functionality requires MongoDB 3.6+. Defaults to true.

See the » Retryable Reads Specification for more information.

retryWrites bool

Specifies whether or not the driver should automatically retry certain write operations that fail due to transient network errors or replica set elections. This functionality requires MongoDB 3.6+. Defaults to true.

See » Retryable Writes in the MongoDB manual for more information.

safe bool

If true, specifies 1 for the default write concern's w parameter. If false, 0 is specified. For details, see MongoDB\Driver\WriteConcern.

This option is deprecated and should not be used.

serverSelectionTimeoutMS int

Specifies how long in milliseconds to block for server selection before throwing an exception. Defaults to 30,000 milliseconds.

serverSelectionTryOnce bool

When true, instructs the driver to scan the MongoDB deployment exactly once after server selection fails and then either select a server or raise an error. When false, the driver blocks and searches for a server up to the "serverSelectionTimeoutMS" value. Defaults to true.

socketCheckIntervalMS int

If a socket has not been used recently, the driver must check it via a hello command before using it for any operation. Defaults to 5,000 milliseconds.

socketTimeoutMS int

The time in milliseconds to attempt a send or receive on a socket before timing out. Defaults to 300,000 milliseconds (i.e. five minutes).

srvMaxHosts int

The maximum number of SRV results to randomly select when initially populating the seedlist or, during SRV polling, adding new hosts to the topology. Defaults to 0 (i.e. no maximum).

srvServiceName string

The service name to use for SRV lookup in initial DNS seedlist discovery and SRV polling. Defaults to "mongodb".

ssl bool

Initiates the connection with TLS/SSL if true. Defaults to false.

This option is a deprecated alias for the "tls" URI option.

tls bool

Initiates the connection with TLS/SSL if true. Defaults to false.

tlsAllowInvalidCertificates bool

Specifies whether or not the driver should error when the server's TLS certificate is invalid. Defaults to false.

Avertissement

Disabling certificate validation creates a vulnerability.

tlsAllowInvalidHostnames bool

Specifies whether or not the driver should error when there is a mismatch between the server's hostname and the hostname specified by the TLS certificate. Defaults to false.

Avertissement

Disabling certificate validation creates a vulnerability. Allowing invalid hostnames may expose the driver to a » man-in-the-middle attack.

tlsCAFile string

Path to file with either a single or bundle of certificate authorities to be considered trusted when making a TLS connection. The system certificate store will be used by default.

tlsCertificateKeyFile string

Path to the client certificate file or the client private key file; in the case that they both are needed, the files should be concatenated.

tlsCertificateKeyFilePassword string

Password to decrypt the client private key (i.e. "tlsCertificateKeyFile" URI option) to be used for TLS connections.

tlsDisableCertificateRevocationCheck bool

If true, the driver will not attempt to check certificate revocation status (e.g. OCSP, CRL). Defaults to false.

tlsDisableOCSPEndpointCheck bool

If true, the driver will not attempt to contact an OCSP responder endpoint if needed (i.e. an OCSP response is not stapled). Defaults to false.

tlsInsecure bool

Relax TLS constraints as much as possible. Specifying true for this option has the same effect as specifying true for both the "tlsAllowInvalidCertificates" and "tlsAllowInvalidHostnames" URI options. Defaults to false.

Avertissement

Disabling certificate validation creates a vulnerability. Allowing invalid hostnames may expose the driver to a » man-in-the-middle attack.

username | string | The username for the user being authenticated. This option is useful if the username contains special characters, which would otherwise need to be URL encoded for the connection URI.
w int|string

Corresponds to the default write concern's w parameter. For details, see MongoDB\Driver\WriteConcern.

wTimeoutMS int|string

Corresponds to the default write concern's wtimeout parameter. Specifies a time limit, in milliseconds, for the write concern. For details, see MongoDB\Driver\WriteConcern.

If specified, wTimeoutMS must be a signed 32-bit integer greater than or equal to zero.

zlibCompressionLevel int

Specifies the compression level to use for the zlib compressor. This option has no effect if zlib is not included in the "compressors" URI option. See the » Driver Compression Specification for more information.

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.

This option is a deprecated alias for the "tlsAllowInvalidHostnames" URI option.

autoEncryption array

Provides options to enable automatic client-side field level encryption.

Note:

Automatic encryption is an enterprise-only feature that only applies to operations on a collection. Automatic encryption is not supported for operations on a database or view, and operations that are not bypassed will result in error (see » libmongocrypt: Auto Encryption Allow-List). To bypass automatic encryption for all operations, set bypassAutoEncryption to true.

Automatic encryption requires the authenticated user to have the » listCollections privilege action.

Explicit encryption/decryption and automatic decryption is a community feature. The driver can still automatically decrypt when bypassAutoEncryption is true.

The following options are supported:

Options for automatic encryption
Option | Type | Description
keyVaultClient | MongoDB\Driver\Manager | Le Manager utilisé pour router les requêtes de clés de données à un cluster MongoDB différent. Par défaut, le Manager et cluster courant et utilisé.
keyVaultNamespace | chaîne de caractères | Un nom d'espace complètement qualifié (par exemple "databaseName.collectionName") dénotant la collection qui contient toutes les clés de données utilisé pour le chiffrement et déchiffrement. Cette option est requise.
kmsProviders tableau

Un document contenant la configuration d'un ou plusieurs fournisseurs KMS, qui sont utilisés pour chiffrer les clés de données. Les fournisseurs supporté sont "aws", "azure", "gcp" et "local", et au moins un doit être spécifié.

Si un document vide est spécifié pour "aws", "azure", ou "gcp", le pilote tentera de configurer le fournisseur en utilisant » Automatic Credentials.

Le format pour "aws" est le suivant :

aws: {
    accessKeyId: <string>,
    secretAccessKey: <string>,
    sessionToken: <optional string>
}

Le format pour "azure" est le suivant :

azure: {
    tenantId: <string>,
    clientId: <string>,
    clientSecret: <string>,
    identityPlatformEndpoint: <optional string> // Defaults to "login.microsoftonline.com"

}

Le format pour "gcp" est le suivant :

gcp: {
    email: <string>,
    privateKey: <base64 string>|<MongoDB\BSON\Binary>,
    endpoint: <optional string> // Defaults to "oauth2.googleapis.com"

}

Le format pour "kmip" est le suivant :

kmip: {
    endpoint: <string>
}

Le format pour "local" est le suivant :

local: {
    // 96-byte master key used to encrypt/decrypt data keys
    key: <base64 string>|<MongoDB\BSON\Binary>
}
tlsOptions array

Un document contenant la configuration TLS d'un ou plusieurs fournisseurs KMS. Les fournisseurs supporté sont "aws", "azure", "gcp" et "kmip". Tous les fournisseurs supportent les options suivantes :

<provider>: {
    tlsCaFile: <optional string>,
    tlsCertificateKeyFile: <optional string>,
    tlsCertificateKeyFilePassword: <optional string>,
    tlsDisableOCSPEndpointCheck: <optional bool>
}
schemaMap array|object

Map of collection namespaces to a local JSON schema. This is used to configure automatic encryption. See » Automatic Encryption Rules in the MongoDB manual for more information. It is an error to specify a collection in both schemaMap and encryptedFieldsMap.

Note: Supplying a schemaMap provides more security than relying on JSON schemas obtained from the server. It protects against a malicious server advertising a false JSON schema, which could trick the client into sending unencrypted data that should be encrypted.

Note: Schemas supplied in the schemaMap only apply to configuring automatic encryption for client side encryption. Other validation rules in the JSON schema will not be enforced by the driver and will result in an error.

bypassAutoEncryption | bool | If true, mongocryptd will not be spawned automatically. This is used to disable automatic encryption. Defaults to false.
bypassQueryAnalysis bool

If true, automatic analysis of outgoing commands will be disabled and mongocryptd will not be spawned automatically. This enables the use case of explicit encryption for querying indexed fields without requiring the enterprise licensed crypt_shared library or mongocryptd process. Defaults to false.

encryptedFieldsMap array|object

Map of collection namespaces to an encryptedFields document. This is used to configure queryable encryption. See » Field Encryption and Queryability in the MongoDB manual for more information. It is an error to specify a collection in both encryptedFieldsMap and schemaMap.

Note: Supplying an encryptedFieldsMap provides more security than relying on an encryptedFields obtained from the server. It protects against a malicious server advertising a false encryptedFields.

extraOptions array

The extraOptions relate to the mongocryptd process. The following options are supported:

  • mongocryptdURI (string): URI to connect to an existing mongocryptd process. Defaults to "mongodb://localhost:27020".
  • mongocryptdBypassSpawn (bool): If true, prevent the driver from spawning mongocryptd. Defaults to false.
  • mongocryptdSpawnPath (string): Absolute path to search for mongocryptd binary. Defaults to empty string and consults system paths.
  • mongocryptdSpawnArgs (array): Array of string arguments to pass to mongocryptd when spawning. Defaults to ["--idleShutdownTimeoutSecs=60"].
  • cryptSharedLibPath (string): Absolute path to crypt_shared shared library. Defaults to empty string and consults system paths.
  • cryptSharedLibRequired (bool): If true, require the driver to load crypt_shared. Defaults to false.

See the » Client-Side Encryption Specification for more information.

Note: Automatic encryption is an enterprise only feature that only applies to operations on a collection. Automatic encryption is not supported for operations on a database or view, and operations that are not bypassed will result in error. To bypass automatic encryption for all operations, set bypassAutoEncryption=true in autoEncryption. For more information on allowed operations, see the » Client-Side Encryption Specification.

ca_dir string

Path to a correctly hashed certificate directory. The system certificate store will be used by default.

ca_file string

Path to file with either a single or bundle of certificate authorities to be considered trusted when making a TLS connection. The system certificate store will be used by default.

This option is a deprecated alias for the "tlsCAFile" URI option.

context resource

SSL context options to be used as fallbacks if a driver option or its equivalent URI option, if any, is not specified. Note that the driver does not consult the default stream context (i.e. stream_context_get_default()). The following context options are supported:

SSL context option fallbacks
Driver option | Context option (fallback)
ca_dir | capath
ca_file | cafile
pem_file | local_cert
pem_pwd | passphrase
weak_cert_validation | allow_self_signed

This option is supported for backwards compatibility, but should be considered deprecated.

crl_file | string | Path to a certificate revocation list file.
disableClientPersistence bool

If true, this Manager will use a new libmongoc client, which will not be persisted or shared with other Manager objects. When this Manager object is freed, its client will be destroyed and any connections will be closed. Defaults to false.

Note: Disabling client persistence is not generally recommended.

driver array

Allows custom drivers to append their own metadata to the server handshake. By default, the driver submits its own name, version, and platform (i.e. PHP version) in the handshake. Custom drivers can specify strings for the "name", "version", and "platform" keys of this array, which will be appended to the respective field(s) in the handshake document.

Note: Handshake information is limited to 512 bytes. The driver will truncate handshake data to fit within this 512-byte string. Drivers and ODMs are encouraged to keep their own metadata concise.

pem_file string

Path to a PEM encoded certificate to use for client authentication.

This option is a deprecated alias for the "tlsCertificateKeyFile" URI option.

pem_pwd string

Passphrase for the PEM encoded certificate (if applicable).

This option is a deprecated alias for the "tlsCertificateKeyFilePassword" URI option.

serverApi MongoDB\Driver\ServerApi

This option is used to declare a server API version for the manager. If omitted, no API version is declared.

weak_cert_validation bool

Disables certificate validation if true. Defaults to false

This option is a deprecated alias for the "tlsAllowInvalidCertificates" URI option.

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
PECL mongodb 1.16.0

The AWS KMS provider for client-side encryption now accepts a "sessionToken" option, which can be used to authenticate with temporary AWS credentials.

Added "tlsDisableOCSPEndpointCheck" to the "tlsOptions" field of the "autoEncryption" driver option.

If an empty document is specified for the "azure" or "gcp" KMS provider, the driver will attempt to configure the provider using » Automatic Credentials.

PECL mongodb 1.15.0

If an empty document is specified for the "aws" KMS provider, the driver will attempt to configure the provider using » Automatic Credentials.

PECL mongodb 1.14.0

Added the "bypassQueryAnalysis" and "encryptedFieldsMap" auto encryption options. Additional options pertaining to crypt_shared are now supported in the "extraOptions" auto encryption option.

PECL mongodb 1.13.0

Added the "srvMaxHosts" and "srvServiceName" URI options.

PECL mongodb 1.12.0

KMIP is now supported as a KMS provider for client-side encryption and may be configured in the "kmsProviders" field of the "autoEncryption" driver option. Additionally, TLS options for KMS providers may now be configured in the "tlsOptions" field of the "autoEncryption" driver option.

PECL mongodb 1.11.0

Added the "loadBalanced" URI option.

PECL mongodb 1.10.0

Added the "disableClientPersistence" driver option.

Azure and GCP are now supported as KMS providers for client-side encryption and may be configured in the "kmsProviders" field of the "autoEncryption" driver option. Base64-encoded strings are now accepted as an alternative to MongoDB\BSON\Binary for options within "kmsProviders".

PECL mongodb 1.8.0

Added the "directConnection", "tlsDisableCertificateRevocationCheck", and "tlsDisableOCSPEndpointCheck" URI options.

Added the "driver" driver option.

PECL mongodb 1.7.0

Added the "autoEncryption" driver option.

Specifying any SSL or TLS option via the driverOptions parameter will now implicitly enable TLS, as is done for the corresponding URI options.

PECL mongodb 1.6.0

Added the "retryReads", "tls", "tlsAllowInvalidCertificates", "tlsAllowInvalidHostnames", "tlsCAFile", "tlsCertificateKeyFile", "tlsCertificateKeyFilePassword", and "tlsInsecure" URI options.

The "retryWrites" URI option defaults to true.

Specifying any SSL or TLS URI option via the connection string or uriOptions parameter will now implicitly enable TLS unless ssl or tls is false. TLS is not implicitly enabled for any options in the driverOptions parameter, which is unchanged from previous versions.

PECL mongodb 1.5.0

"wtimeoutMS" is now always validated and applied to the write concern. Previously, the option was ignored if "w" was <= 1, since the timeout only applies to replication.

PECL mongodb 1.4.0

Added the "compressors", "retryWrites", and "zlibCompressionLevel" URI options.

PECL mongodb 1.3.0

The uriOptions argument now accepts "authMechanism" and "authMechanismProperties" options. Previously, these options were only supported in the uri argument.

PECL mongodb 1.2.0

The uri argument defaults to "mongodb://127.0.0.1/". The default port remains 27017.

Added the "appname" URI option.

Added the "allow_invalid_hostname", "ca_file", "ca_dir", "clr_file", "pem_file", "pem_pwd", and "weak_cert_validation" driver options.

The PHP Streams API is no longer used for socket communication. The "connectTimeoutMS" URI option now defaults to 10 seconds instead of default_socket_timeout in previous versions. Additionally, the driver no longer supports all SSL context options via the "context" driver option.

PECL mongodb 1.1.0

The uri argument is optional and defaults to "mongodb://localhost:27017/".

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/?authSource=databaseName");

?>

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/?authSource=databaseName");

?>

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

  • Connection handling and persistence
  • » MongoDB Connection String Format


Create a new ClientEncryption object

  • « MongoDB\Driver\Manager::__construct
  • MongoDB\Driver\Manager::executeBulkWrite »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Create a new ClientEncryption object

MongoDB\Driver\Manager::createClientEncryption

(mongodb >=1.7.0)

MongoDB\Driver\Manager::createClientEncryption — Create a new ClientEncryption object

Description

final public MongoDB\Driver\Manager::createClientEncryption(array $options): MongoDB\Driver\ClientEncryption

Constructs a new MongoDB\Driver\ClientEncryption object with the specified options.

Liste de paramètres

options

options
Option | Type | Description
keyVaultClient | MongoDB\Driver\Manager | Le Manager utilisé pour router les requêtes de clés de données à un cluster MongoDB différent. Par défaut, le Manager et cluster courant et utilisé.
keyVaultNamespace | chaîne de caractères | Un nom d'espace complètement qualifié (par exemple "databaseName.collectionName") dénotant la collection qui contient toutes les clés de données utilisé pour le chiffrement et déchiffrement. Cette option est requise.
kmsProviders tableau

Un document contenant la configuration d'un ou plusieurs fournisseurs KMS, qui sont utilisés pour chiffrer les clés de données. Les fournisseurs supporté sont "aws", "azure", "gcp" et "local", et au moins un doit être spécifié.

Si un document vide est spécifié pour "aws", "azure", ou "gcp", le pilote tentera de configurer le fournisseur en utilisant » Automatic Credentials.

Le format pour "aws" est le suivant :

aws: {
    accessKeyId: <string>,
    secretAccessKey: <string>,
    sessionToken: <optional string>
}

Le format pour "azure" est le suivant :

azure: {
    tenantId: <string>,
    clientId: <string>,
    clientSecret: <string>,
    identityPlatformEndpoint: <optional string> // Defaults to "login.microsoftonline.com"

}

Le format pour "gcp" est le suivant :

gcp: {
    email: <string>,
    privateKey: <base64 string>|<MongoDB\BSON\Binary>,
    endpoint: <optional string> // Defaults to "oauth2.googleapis.com"

}

Le format pour "kmip" est le suivant :

kmip: {
    endpoint: <string>
}

Le format pour "local" est le suivant :

local: {
    // 96-byte master key used to encrypt/decrypt data keys
    key: <base64 string>|<MongoDB\BSON\Binary>
}
tlsOptions array

Un document contenant la configuration TLS d'un ou plusieurs fournisseurs KMS. Les fournisseurs supporté sont "aws", "azure", "gcp" et "kmip". Tous les fournisseurs supportent les options suivantes :

<provider>: {
    tlsCaFile: <optional string>,
    tlsCertificateKeyFile: <optional string>,
    tlsCertificateKeyFilePassword: <optional string>,
    tlsDisableOCSPEndpointCheck: <optional bool>
}

Valeurs de retour

Returns a new MongoDB\Driver\ClientEncryption instance.

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 extension was compiled without libmongocrypt support

Historique

Version | Description
PECL mongodb 1.16.0

The AWS KMS provider for client-side encryption now accepts a "sessionToken" option, which can be used to authenticate with temporary AWS credentials.

Added "tlsDisableOCSPEndpointCheck" to the "tlsOptions" option.

If an empty document is specified for the "azure" or "gcp" KMS provider, the driver will attempt to configure the provider using » Automatic Credentials.

PECL mongodb 1.15.0

If an empty document is specified for the "aws" KMS provider, the driver will attempt to configure the provider using » Automatic Credentials.

PECL mongodb 1.12.0

KMIP is now supported as a KMS provider for client-side encryption and may be configured in the "kmsProviders" option.

Added the "tlsOptions" option.

PECL mongodb 1.10.0 | Azure and GCP are now supported as KMS providers for client-side encryption and may be configured in the "kmsProviders" option. Base64-encoded strings are now accepted as an alternative to MongoDB\BSON\Binary for options within "kmsProviders".

Voir aussi

  • MongoDB\Driver\ClientEncryption::__construct() - Create a new ClientEncryption object
  • » Explicit (Manual) Client-Side Field Level Encryption in the MongoDB manual


Execute one or more write operations

  • « MongoDB\Driver\Manager::createClientEncryption
  • 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\Manager::executeBulkWrite(string $namespace, MongoDB\Driver\BulkWrite $bulk, array|MongoDB\Driver\WriteConcern|null $options = null): MongoDB\Driver\WriteResult

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)

Écriture(s) à exécuter.

options

options
Option Type Description
session MongoDB\Driver\Session

Une session à associer à l'opération.

writeConcern MongoDB\Driver\WriteConcern

Une préoccupation d'écriture à appliquer à l'opération.

Valeurs de retour

Retourne un MongoDB\Driver\WriteResult en cas de succès.

Erreurs / Exceptions

  • Throws MongoDB\Driver\Exception\InvalidArgumentException if bulk does not contain any write operations.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if bulk has already been executed. MongoDB\Driver\BulkWrite objects may not be executed multiple times.
  • Lance une exception MongoDB\Driver\Exception\InvalidArgumentException si l'option "session" est utilisée conjointement avec une préoccupation d'écriture non reconnu.
  • 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\BulkWriteException lors d'une erreur d'une opération en écriture (une erreur WriteError et WriteConcern)
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors.

Historique

Version | Description
PECL mongodb 1.4.4 | MongoDB\Driver\Exception\InvalidArgumentException will be thrown if the "session" option is used in combination with an unacknowledged write concern.
PECL mongodb 1.4.0 | The third parameter is now an options array. For backwards compatibility, this paramater will still accept a MongoDB\Driver\WriteConcern object.
PECL mongodb 1.3.0 | MongoDB\Driver\Exception\InvalidArgumentException is now thrown if bulk does not contain any write operations. Previously, a MongoDB\Driver\Exception\BulkWriteException was thrown.

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());
}
?>

Résultat de l'exemple ci-dessus est 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\Manager::executeCommand(string $db, MongoDB\Driver\Command $command, array|MongoDB\Driver\ReadPreference|null $options = null): MongoDB\Driver\Cursor

Selects a server according to the "readPreference" option and executes the command on that server. By default, the primary server will be selected.

This method applies no special logic to the command. Although this method accepts "readConcern" and "writeConcern" options, which will be incorporated into the command document, those options will not default to corresponding values from the MongoDB Connection URI nor will the MongoDB server version be taken into account. Users are therefore encouraged to use specific read and/or write command methods if possible.

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 commande à exécuter.

options

options
Option Type Description
readConcern MongoDB\Driver\ReadConcern

Une préoccupation de lecture à appliquer à l'opération.

Cette option est disponible dans MongoDB 3.2+ et se traduira par une exception au moment de l'exécution si elle est spécifiée pour une version plus ancienne du serveur.

readPreference MongoDB\Driver\ReadPreference

Une préférence de lecture à utiliser pour sélectionner un serveur pour l'opération.

session MongoDB\Driver\Session

Une session à associer à l'opération.

writeConcern MongoDB\Driver\WriteConcern

Une préoccupation d'écriture à appliquer à l'opération.

Avertissement

Si vous utilisez une "session" qui a une transaction en cours, vous ne pouvez pas spécifier l'option "readConcern" ou "writeConcern". Tenter de faire ceci lancera une exception MongoDB\Driver\Exception\InvalidArgumentException. À la place vous devriez définir ces options quand vous créez la transaction avec MongoDB\Driver\Session::startTransaction().

Valeurs de retour

Retourne un MongoDB\Driver\Cursor en cas de succès.

Erreurs / Exceptions

  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the "session" option is used with an associated transaction in combination with a "readConcern" or "writeConcern" option.
  • Lance une exception MongoDB\Driver\Exception\InvalidArgumentException si l'option "session" est utilisée conjointement avec une préoccupation d'écriture non reconnu.
  • 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).

Historique

Version | Description
PECL mongodb 1.4.4 | MongoDB\Driver\Exception\InvalidArgumentException will be thrown if the "session" option is used in combination with an unacknowledged write concern.
PECL mongodb 1.4.0 | The third parameter is now an options array. For backwards compatibility, this paramater will still accept a MongoDB\Driver\ReadPreference object.

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)
}

Exemple #3 Limiting execution time for a command

The execution time of a command may be limited by specifying a value for "maxTimeMS" in the MongoDB\Driver\Command document. Note that this time limit is enforced on the server side and does not take network latency into account. See » Terminate Running Operations in the MongoDB manual for more information.

<?php

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');

$command = new MongoDB\Driver\Command([
'count' => 'collection',
'query' => ['x' => ['$gt' => 1]],
'maxTimeMS' => 1000,
]);

$cursor = $manager->executeCommand('db', $command);

var_dump($cursor->toArray()[0]);

?>

If the command fails to complete after one second of execution time on the server, a MongoDB\Driver\Exception\ExecutionTimeoutException will be thrown.

Notes

Note: 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.

Note: This method does not default to using the read preference from the MongoDB Connection URI. Applications in need of that behavior should consider using MongoDB\Driver\Manager::executeReadCommand().

Voir aussi

  • MongoDB\Driver\Command
  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Manager::executeReadCommand() - Execute a database command that reads
  • MongoDB\Driver\Manager::executeReadWriteCommand() - Execute a database command that reads and writes
  • MongoDB\Driver\Manager::executeWriteCommand() - Execute a database command that writes
  • 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::executeReadCommand »
  • 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\Manager::executeQuery(string $namespace, MongoDB\Driver\Query $query, array|MongoDB\Driver\ReadPreference|null $options = null): MongoDB\Driver\Cursor

Selects a server according to the "readPreference" option and executes the query on that server. By default, the read preference from the MongoDB Connection URI will be used.

Liste de paramètres

namespace (string)

Un espace de noms totalement qualifié (e.g. "databaseName.collectionName")

query (MongoDB\Driver\Query)

La requête à exécuter.

options

options
Option Type Description
readPreference MongoDB\Driver\ReadPreference

Une préférence de lecture à utiliser pour sélectionner un serveur pour l'opération.

session MongoDB\Driver\Session

Une session à associer à l'opération.

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).

Historique

Version | Description
PECL mongodb 1.4.0 | The third parameter is now an options array. For backwards compatibility, this paramater will still accept a MongoDB\Driver\ReadPreference object.

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)
}

Exemple #2 Limiting execution time for a query

The "maxTimeMS" MongoDB\Driver\Query option may be used to limit the execution time of a query. Note that this time limit is enforced on the server side and does not take network latency into account. See » Terminate Running Operations in the MongoDB manual for more information.

<?php

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');

$filter = ['x' => ['$gt' => 1]];
$options = [
'maxTimeMS' => 1000,
];

$query = new MongoDB\Driver\Query($filter, $options);
$cursor = $manager->executeQuery('db.collection', $query);

foreach ($cursor as $document) {
var_dump($document);
}

?>

If the query fails to complete after one second of execution time on the server, a MongoDB\Driver\Exception\ExecutionTimeoutException will be thrown.

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


Execute a database command that reads

  • « MongoDB\Driver\Manager::executeQuery
  • MongoDB\Driver\Manager::executeReadWriteCommand »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Execute a database command that reads

MongoDB\Driver\Manager::executeReadCommand

(mongodb >=1.4.0)

MongoDB\Driver\Manager::executeReadCommand — Execute a database command that reads

Description

final public MongoDB\Driver\Manager::executeReadCommand(string $db, MongoDB\Driver\Command $command, ?array $options = null): MongoDB\Driver\Cursor

Selects a server according to the "readPreference" option and executes the command on that server. By default, the read preference from the MongoDB Connection URI will be used.

This method will apply logic that is specific to commands that read (e.g. » count) and take the MongoDB server version into account. The "readConcern" option will default to the corresponding value from the MongoDB Connection URI.

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 commande à exécuter.

options

options
Option Type Description
readConcern MongoDB\Driver\ReadConcern

Une préoccupation de lecture à appliquer à l'opération.

Cette option est disponible dans MongoDB 3.2+ et se traduira par une exception au moment de l'exécution si elle est spécifiée pour une version plus ancienne du serveur.

readPreference MongoDB\Driver\ReadPreference

Une préférence de lecture à utiliser pour sélectionner un serveur pour l'opération.

session MongoDB\Driver\Session

Une session à associer à l'opération.

Avertissement

Si vous utilisez une "session" qui a une transaction en cours, vous ne pouvez pas spécifier l'option "readConcern" ou "writeConcern". Tenter de faire ceci lancera une exception MongoDB\Driver\Exception\InvalidArgumentException. À la place vous devriez définir ces options quand vous créez la transaction avec MongoDB\Driver\Session::startTransaction().

Valeurs de retour

Retourne un MongoDB\Driver\Cursor en cas de succès.

Erreurs / Exceptions

  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the "session" option is used with an associated transaction in combination with a "readConcern" or "writeConcern" option.
  • 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).

Voir aussi

  • MongoDB\Driver\Command
  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Manager::executeCommand() - Execute a database command
  • MongoDB\Driver\Manager::executeReadWriteCommand() - Execute a database command that reads and writes
  • MongoDB\Driver\Manager::executeWriteCommand() - Execute a database command that writes
  • MongoDB\Driver\Server::executeReadCommand() - Execute a database command that reads on this server


Execute a database command that reads and writes

  • « MongoDB\Driver\Manager::executeReadCommand
  • MongoDB\Driver\Manager::executeWriteCommand »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Execute a database command that reads and writes

MongoDB\Driver\Manager::executeReadWriteCommand

(mongodb >=1.4.0)

MongoDB\Driver\Manager::executeReadWriteCommand — Execute a database command that reads and writes

Description

final public MongoDB\Driver\Manager::executeReadWriteCommand(string $db, MongoDB\Driver\Command $command, ?array $options = null): MongoDB\Driver\Cursor

Executes the command on the primary server.

This method will apply logic that is specific to commands that read and write (e.g. » aggregate) and take the MongoDB server version into account. The "readConcern" and "writeConcern" options will default to the corresponding values from the MongoDB Connection URI.

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 commande à exécuter.

options

options
Option Type Description
readConcern MongoDB\Driver\ReadConcern

Une préoccupation de lecture à appliquer à l'opération.

Cette option est disponible dans MongoDB 3.2+ et se traduira par une exception au moment de l'exécution si elle est spécifiée pour une version plus ancienne du serveur.

session MongoDB\Driver\Session

Une session à associer à l'opération.

writeConcern MongoDB\Driver\WriteConcern

Une préoccupation d'écriture à appliquer à l'opération.

Avertissement

Si vous utilisez une "session" qui a une transaction en cours, vous ne pouvez pas spécifier l'option "readConcern" ou "writeConcern". Tenter de faire ceci lancera une exception MongoDB\Driver\Exception\InvalidArgumentException. À la place vous devriez définir ces options quand vous créez la transaction avec MongoDB\Driver\Session::startTransaction().

Valeurs de retour

Retourne un MongoDB\Driver\Cursor en cas de succès.

Erreurs / Exceptions

  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the "session" option is used with an associated transaction in combination with a "readConcern" or "writeConcern" option.
  • Lance une exception MongoDB\Driver\Exception\InvalidArgumentException si l'option "session" est utilisée conjointement avec une préoccupation d'écriture non reconnu.
  • 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).

Historique

Version | Description
PECL mongodb 1.4.4 | MongoDB\Driver\Exception\InvalidArgumentException will be thrown if the "session" option is used in combination with an unacknowledged write concern.

Voir aussi

  • MongoDB\Driver\Command
  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Manager::executeCommand() - Execute a database command
  • MongoDB\Driver\Manager::executeReadCommand() - Execute a database command that reads
  • MongoDB\Driver\Manager::executeWriteCommand() - Execute a database command that writes
  • MongoDB\Driver\Server::executeReadWriteCommand() - Execute a database command that reads and writes on this server


Execute a database command that writes

  • « MongoDB\Driver\Manager::executeReadWriteCommand
  • MongoDB\Driver\Manager::getEncryptedFieldsMap »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Execute a database command that writes

MongoDB\Driver\Manager::executeWriteCommand

(mongodb >=1.4.0)

MongoDB\Driver\Manager::executeWriteCommand — Execute a database command that writes

Description

final public MongoDB\Driver\Manager::executeWriteCommand(string $db, MongoDB\Driver\Command $command, ?array $options = null): MongoDB\Driver\Cursor

Executes the command on the primary server.

This method will apply logic that is specific to commands that write (e.g. » drop) and take the MongoDB server version into account. The "writeConcern" option will default to the corresponding value from the MongoDB Connection URI.

Note: This method is not intended to be used to execute » insert, » update, or » delete commands. Users are encouraged to use MongoDB\Driver\Manager::executeBulkWrite() for those commands.

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 commande à exécuter.

options

options
Option Type Description
session MongoDB\Driver\Session

Une session à associer à l'opération.

writeConcern MongoDB\Driver\WriteConcern

Une préoccupation d'écriture à appliquer à l'opération.

Avertissement

Si vous utilisez une "session" qui a une transaction en cours, vous ne pouvez pas spécifier l'option "readConcern" ou "writeConcern". Tenter de faire ceci lancera une exception MongoDB\Driver\Exception\InvalidArgumentException. À la place vous devriez définir ces options quand vous créez la transaction avec MongoDB\Driver\Session::startTransaction().

Valeurs de retour

Retourne un MongoDB\Driver\Cursor en cas de succès.

Erreurs / Exceptions

  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the "session" option is used with an associated transaction in combination with a "readConcern" or "writeConcern" option.
  • Lance une exception MongoDB\Driver\Exception\InvalidArgumentException si l'option "session" est utilisée conjointement avec une préoccupation d'écriture non reconnu.
  • 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).

Historique

Version | Description
PECL mongodb 1.4.4 | MongoDB\Driver\Exception\InvalidArgumentException will be thrown if the "session" option is used in combination with an unacknowledged write concern.

Voir aussi

  • MongoDB\Driver\Command
  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Manager::executeCommand() - Execute a database command
  • MongoDB\Driver\Manager::executeReadCommand() - Execute a database command that reads
  • MongoDB\Driver\Manager::executeReadWriteCommand() - Execute a database command that reads and writes
  • MongoDB\Driver\Server::executeWriteCommand() - Execute a database command that writes on this server


Return the encryptedFieldsMap auto encryption option for the Manager

  • « MongoDB\Driver\Manager::executeWriteCommand
  • MongoDB\Driver\Manager::getReadConcern »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Return the encryptedFieldsMap auto encryption option for the Manager

MongoDB\Driver\Manager::getEncryptedFieldsMap

(mongodb >=1.14.0)

MongoDB\Driver\Manager::getEncryptedFieldsMap — Return the encryptedFieldsMap auto encryption option for the Manager

Description

final public MongoDB\Driver\Manager::getEncryptedFieldsMap(): array|object|null

Returns the encryptedFieldsMap auto encryption option for the Manager, if specified.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The encryptedFieldsMap auto encryption option for the Manager, or null if it was not specified.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\Driver\Manager::__construct() - Create new MongoDB Manager


Return the ReadConcern for the Manager

  • « MongoDB\Driver\Manager::getEncryptedFieldsMap
  • MongoDB\Driver\Manager::getReadPreference »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Return the ReadConcern for the Manager

MongoDB\Driver\Manager::getReadConcern

(mongodb >=1.1.0)

MongoDB\Driver\Manager::getReadConcern — Return the ReadConcern for the Manager

Description

final public MongoDB\Driver\Manager::getReadConcern(): MongoDB\Driver\ReadConcern

Returns the MongoDB\Driver\ReadConcern for the Manager, which is derived from its URI options. This is the default read concern for queries and commands executed on the Manager.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The MongoDB\Driver\ReadConcern for the Manager.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Exemples

Exemple #1 MongoDB\Driver\Manager::getReadConcern() example

<?php

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
var_dump($manager->getReadConcern());

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017/?readConcernLevel=local');
var_dump($manager->getReadConcern());

?>

Résultat de l'exemple ci-dessus est similaire à :

object(MongoDB\Driver\ReadConcern)#2 (0) {
}
object(MongoDB\Driver\ReadConcern)#1 (1) {
  ["level"]=>
  string(5) "local"
}

Voir aussi

  • MongoDB\Driver\ReadConcern
  • MongoDB\Driver\Manager::__construct() - Create new MongoDB Manager


Return the ReadPreference for the Manager

  • « MongoDB\Driver\Manager::getReadConcern
  • MongoDB\Driver\Manager::getServers »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Return the ReadPreference for the Manager

MongoDB\Driver\Manager::getReadPreference

(mongodb >=1.0.0)

MongoDB\Driver\Manager::getReadPreference — Return the ReadPreference for the Manager

Description

final public MongoDB\Driver\Manager::getReadPreference(): MongoDB\Driver\ReadPreference

Returns the MongoDB\Driver\ReadPreference for the Manager, which is derived from its URI options. This is the default read preference for queries and commands executed on the Manager.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The MongoDB\Driver\ReadPreference for the Manager.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Exemples

Exemple #1 MongoDB\Driver\Manager::getReadPreference() example

<?php

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
var_dump($manager->getReadPreference());

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017/?readPreference=secondaryPreferred&readPreferenceTags=dc:ny,rack:1&readPreferenceTags=dc:ny&readPreferenceTags=');
var_dump($manager->getReadPreference());

?>

Résultat de l'exemple ci-dessus est similaire à :

object(MongoDB\Driver\ReadPreference)#2 (1) {
  ["mode"]=>
  string(7) "primary"
}
object(MongoDB\Driver\ReadPreference)#1 (2) {
  ["mode"]=>
  string(18) "secondaryPreferred"
  ["tags"]=>
  array(3) {
    [0]=>
    object(stdClass)#3 (2) {
      ["dc"]=>
      string(2) "ny"
      ["rack"]=>
      string(1) "1"
    }
    [1]=>
    object(stdClass)#4 (1) {
      ["dc"]=>
      string(2) "ny"
    }
    [2]=>
    object(stdClass)#5 (0) {
    }
  }
}

Voir aussi

  • MongoDB\Driver\ReadPreference
  • MongoDB\Driver\Manager::__construct() - Create new MongoDB Manager


Retourner les serveurs auxquels ce gestionnaire est connecté

  • « MongoDB\Driver\Manager::getReadPreference
  • MongoDB\Driver\Manager::getWriteConcern »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Retourner les serveurs auxquels ce gestionnaire est connecté

MongoDB\Driver\Manager::getServers

(mongodb >=1.0.0)

MongoDB\Driver\Manager::getServers — Retourner les serveurs auxquels ce gestionnaire est connecté

Description

final public MongoDB\Driver\Manager::getServers(): array

Retourne un tableau d'instances MongoDB\Driver\Server auxquelles ce gestionnaire est connecté.

Note: Étant donné que le pilote se connecte paresseusement à la base de données, cette méthode peut retourner un tableau vide s'il est appelé avant d'exécuter une opération sur le MongoDB\Driver\Manager.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau d'instances MongoDB\Driver\Server auxquelles ce gestionnaire est connecté.

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\Manager::getServers()

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

/* The driver connects to the database server lazily, so Manager::getServers()
* may initially return an empty array. */
var_dump($manager->getServers());

$command = new MongoDB\Driver\Command(['ping' => 1]);
$manager->executeCommand('db', $command);

var_dump($manager->getServers());

?>

Résultat de l'exemple ci-dessus est similaire à :

array(0) {
}
array(1) {
  [0]=>
  object(MongoDB\Driver\Server)#3 (10) {
    ["host"]=>
    string(9) "localhost"
    ["port"]=>
    int(27017)
    ["type"]=>
    int(1)
    ["is_primary"]=>
    bool(false)
    ["is_secondary"]=>
    bool(false)
    ["is_arbiter"]=>
    bool(false)
    ["is_hidden"]=>
    bool(false)
    ["is_passive"]=>
    bool(false)
    ["last_hello_response"]=>
    array(8) {
      ["isWritablePrimary"]=>
      bool(true)
      ["maxBsonObjectSize"]=>
      int(16777216)
      ["maxMessageSizeBytes"]=>
      int(48000000)
      ["maxWriteBatchSize"]=>
      int(1000)
      ["localTime"]=>
      object(MongoDB\BSON\UTCDateTime)#4 (1) {
        ["milliseconds"]=>
        int(1447267964517)
      }
      ["maxWireVersion"]=>
      int(3)
      ["minWireVersion"]=>
      int(0)
      ["ok"]=>
      float(1)
    }
    ["round_trip_time"]=>
    int(554)
  }
}

Voir aussi

  • MongoDB\Driver\Server
  • MongoDB\Driver\Manager::selectServer() - Select a server matching a read preference


Return the WriteConcern for the Manager

  • « MongoDB\Driver\Manager::getServers
  • MongoDB\Driver\Manager::removeSubscriber »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Return the WriteConcern for the Manager

MongoDB\Driver\Manager::getWriteConcern

(mongodb >=1.0.0)

MongoDB\Driver\Manager::getWriteConcern — Return the WriteConcern for the Manager

Description

final public MongoDB\Driver\Manager::getWriteConcern(): MongoDB\Driver\WriteConcern

Returns the MongoDB\Driver\WriteConcern for the Manager, which is derived from its URI options. This is the default write concern for writes and commands executed on the Manager.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The MongoDB\Driver\WriteConcern for the Manager.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Exemples

Exemple #1 MongoDB\Driver\Manager::getWriteConcern() example

<?php

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
var_dump($manager->getWriteConcern());

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017/?w=majority&wtimeoutMS=2000');
var_dump($manager->getWriteConcern());

?>

Résultat de l'exemple ci-dessus est similaire à :

object(MongoDB\Driver\WriteConcern)#2 (0) {
}
object(MongoDB\Driver\WriteConcern)#1 (2) {
  ["w"]=>
  string(8) "majority"
  ["wtimeout"]=>
  int(2000)
}

Voir aussi

  • MongoDB\Driver\WriteConcern
  • MongoDB\Driver\Manager::__construct() - Create new MongoDB Manager


Unregisters a monitoring event subscriber with this Manager

  • « MongoDB\Driver\Manager::getWriteConcern
  • MongoDB\Driver\Manager::selectServer »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Unregisters a monitoring event subscriber with this Manager

MongoDB\Driver\Manager::removeSubscriber

(mongodb >=1.10.0)

MongoDB\Driver\Manager::removeSubscriber — Unregisters a monitoring event subscriber with this Manager

Description

final public MongoDB\Driver\Manager::removeSubscriber(MongoDB\Driver\Monitoring\Subscriber $subscriber): void

Unregisters a monitoring event subscriber with this Manager.

Note: If subscriber is not already registered with this Manager, this function is a no-op.

Liste de paramètres

subscriber (MongoDB\Driver\Monitoring\Subscriber)

A monitoring event subscriber to unregister with this Manager.

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.

Voir aussi

  • MongoDB\Driver\Manager::addSubscriber() - Registers a monitoring event subscriber with this Manager
  • MongoDB\Driver\Monitoring\Subscriber
  • MongoDB\Driver\Monitoring\CommandSubscriber
  • MongoDB\Driver\Monitoring\removeSubscriber() - Retire un abonnement de surveillance d'événement global
  • Application Performance Monitoring (APM)


Select a server matching a read preference

  • « MongoDB\Driver\Manager::removeSubscriber
  • MongoDB\Driver\Manager::startSession »
  • 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\Manager::selectServer(?MongoDB\Driver\ReadPreference $readPreference = null): MongoDB\Driver\Server

Selects a MongoDB\Driver\Server matching readPreference. If readPreference is null or omitted, the primary server will be selected by default. This may be used to preselect a server in order to perform version checking before executing an operation.

Note: Unlike MongoDB\Driver\Manager::getServers(), this method will initialize database connections and perform server discovery if necessary. See the » Server Selection Specification for additional information.

Liste de paramètres

readPreference (MongoDB\Driver\ReadPreference)

The read preference to use for selecting a server. If null or omitted, the primary server will be selected by default.

Valeurs de retour

Returns a 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.

Historique

Version | Description
PECL mongodb 1.11.0 | The readPreference is now optional. If null or omitted, the primary server will be selected by default.

Voir aussi

  • MongoDB\Driver\Server
  • MongoDB\Driver\Manager::getServers() - Retourner les serveurs auxquels ce gestionnaire est connecté
  • » Server Selection Specification


Start a new client session for use with this client

  • « MongoDB\Driver\Manager::selectServer
  • MongoDB\Driver\Command »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Start a new client session for use with this client

MongoDB\Driver\Manager::startSession

(mongodb >=1.4.0)

MongoDB\Driver\Manager::startSession — Start a new client session for use with this client

Description

final public MongoDB\Driver\Manager::startSession(?array $options = null): MongoDB\Driver\Session

Creates a MongoDB\Driver\Session for the given options. The session may then be specified when executing commands, queries, and write operations.

Note: A MongoDB\Driver\Session can only be used with the MongoDB\Driver\Manager from which it was created.

Liste de paramètres

options

options
Option Type Description Default
causalConsistency bool

Configure causal consistency in a session. If true, each operation in the session will be causally ordered after the previous read or write operation. Set to false to disable causal consistency.

See » Casual Consistency in the MongoDB manual for more information.

true
defaultTransactionOptions array

Default options to apply to newly created transactions. These options are used unless they are overridden when a transaction is started with different value for each option.

options
Option Type Description
maxCommitTimeMS integer

Le temps maximum en millisecondes pour permettre à une seule commande commitTransaction de s'exécuter.

Si spécifié, maxCommitTimeMS doit être un entier 32 bits signé supérieur ou égal à zéro.

readConcern MongoDB\Driver\ReadConcern

Une préoccupation de lecture à appliquer à l'opération.

Cette option est disponible dans MongoDB 3.2+ et se traduira par une exception au moment de l'exécution si elle est spécifiée pour une version plus ancienne du serveur.

readPreference MongoDB\Driver\ReadPreference

Une préférence de lecture à utiliser pour sélectionner un serveur pour l'opération.

writeConcern MongoDB\Driver\WriteConcern

Une préoccupation d'écriture à appliquer à l'opération.

This option is available in MongoDB 4.0+.

[]
snapshot bool

Configure snapshot reads in a session. If true, a timestamp will be obtained from the first supported read operation in the session (i.e. find, aggregate, or unsharded distinct). Subsequent read operations within the session will then utilize a "snapshot" read concern level to read majority-committed data from that timestamp. Set to false to disable snapshot reads.

Snapshot reads require MongoDB 5.0+ and cannot be used with causal consistency, transactions, or write operations. If "snapshot" is true, "causalConsistency" will default to false.

See » Read Concern "snapshot" in the MongoDB manual for more information.

false

Valeurs de retour

Returns a MongoDB\Driver\Session.

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 the "causalConsistency" and "snapshot" options are both true.
  • Throws MongoDB\Driver\Exception\RuntimeException if the session could not be created (e.g. libmongoc does not support crypto).

Historique

Version | Description
PECL mongodb 1.11.0 | The "snapshot" option was added.
PECL mongodb 1.6.0 | The "maxCommitTimeMS" option was added to "defaultTransactionOptions".
PECL mongodb 1.5.0 | The "defaultTransactionOptions" option was added.

Voir aussi

  • MongoDB\Driver\Session
  • » Casual Consistency in the MongoDB manual


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 class MongoDB\Driver\Command {
/* Méthodes */
final public __construct(array|object $document, ?array $commandOptions = null)
}

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 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, ?array $commandOptions = null)

Construit un nouveau MongoDB\Driver\Command, qui est un objet valeur immuable qui représente une commande de base de données. La commande peut alors être exécutée avec MongoDB\Driver\Manager::executeCommand().

Le document de commande complet, qui inclut le nom de la commande et ses options, doit être exprimé dans le paramètre document. Le paramètre commandOptions est utilisé uniquement pour spécifier les options liées à l'exécution de la commande et le résultat MongoDB\Driver\Cursor.

Liste de paramètres

document

Le document de commande complet, qui sera envoyé au serveur.

commandOptions

Note: N'utilisez pas ce paramètre pour spécifier les options décrites dans la référence de la commande dans le manuel MongoDB. Ce paramètre ne doit être utilisé que pour les options explicitement énumérées ci-dessous.

commandOptions
Option Type Description
maxAwaitTimeMS int

Entier positif indiquant la limite de temps en millisecondes pour que le serveur bloque une opération getMore si aucune donnée n'est disponible. Cette option ne doit être utilisée qu'en conjonction avec les commandes qui retournent un curseur à queue (par exemple » Change Streams).

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Historique

Version | Description
PECL mongodb 1.4.0 | Ajout d'un deuxième argument commandOptions, qui prend en charge l'option "maxAwaitTimeMS".

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);

?>

Résultat de l'exemple ci-dessus est 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)
}

Exemple #2 Exemple avec MongoDB\Driver\Command::__construct()

Les commandes peuvent également accepter des options, dans le cadre de la structure normale que vous créez pour envoyer au serveur. Par exemple, l'option maxTimeMS peut être passée avec la plupart des commandes pour restreindre la durée pendant laquelle une commande spécifique peut s'exécuter sur le serveur.

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$command = new MongoDB\Driver\Command(
array(
"distinct" => "beer",
"key" => "beer_name",
"maxTimeMS" => 10,
)
);

try {
$cursor = $manager->executeCommand("beerdb", $command);
$response = $cursor->toArray()[0];
} catch(MongoDB\Driver\Exception\Exception $e) {
echo $e->getMessage(), "\n";
exit;
}
var_dump($response);

?>

Résultat de l'exemple ci-dessus est similaire à :

operation exceeded time limit

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 class MongoDB\Driver\Query {
/* Méthodes */
final public __construct(array|object $filter, ?array $queryOptions = null)
}

Sommaire

  • MongoDB\Driver\Query::__construct — Create a new Query


Create a new Query

  • « MongoDB\Driver\Query
  • MongoDB\Driver\BulkWrite »
  • PHP Manual
  • MongoDB\Driver\Query
  • Create a new Query

MongoDB\Driver\Query::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Query::__construct — Create a new Query

Description

final public MongoDB\Driver\Query::__construct(array|object $filter, ?array $queryOptions = null)

Constructs a new MongoDB\Driver\Query, which is an immutable value object that represents a database query. The query may then be executed with MongoDB\Driver\Manager::executeQuery().

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.

Note: Lors de l'évaluation des critères de requête, MongoDB compare les type et les valeurs en fonction de leur propre » règles de comparaison pour les types BSON, qui diffère des règles de comparaison et de manipulation des type de PHP. Lors de la correspondance d'un type BSON spcécial, les critères de requête doivent utiliser la classe BSON (ex. : utiliser MongoDB\BSON\ObjectId pour correspondre à un » ObjectId).

queryOptions

queryOptions
Option | Type | Description
allowDiskUse bool

Allows MongoDB to use temporary disk files to store data exceeding the 100 megabyte system memory limit while processing a blocking sort operation.

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 int

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 mixed

An arbitrary comment to help trace the operation through the database profiler, currentOp output, and logs.

The comment can be any valid BSON type for MongoDB 4.4+. Earlier server versions only support string values.

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.

let array|object

Dictionnaire des noms et des valeurs des paramètres. Les valeurs doivent être des constantes ou des expressions fermées qui ne font pas référence aux champs du document. Les paramètres peuvent ensuite être accédés en tant que variables dans un contexte d'expression agrégée (par exemple $$var).

Cette option est disponible dans MongoDB 5.0+ et entraînera une exception au moment de l'exécution si elle est spécifiée pour une version antérieure du serveur.

limit int

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.

maxAwaitTimeMS int

Positive integer denoting the time limit in milliseconds for the server to block a getMore operation if no data is available. This option should only be used in conjunction with the "tailable" and "awaitData" options.

maxScan int
Avertissement

This option is deprecated and should not be used.

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 int

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> ] ]

Note: This option is deprecated as of the 1.8.0 release.
projection array|object

The » projection specification to determine which fields to include in the returned documents.

If you are using the ODM functionality to deserialise documents as their original PHP class, make sure that you include the __pclass field in the projection. This is required for the deserialization to work and without it, the driver will return (by default) a stdClass object instead.

readConcern MongoDB\Driver\ReadConcern

A read concern to apply to the operation. By default, the read concern from the MongoDB Connection URI will be used.

This option is available in MongoDB 3.2+ and will result in an exception at execution time if specified for an older server version.

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.
skip | int | Number of documents to skip. Defaults to 0.
snapshot bool
Avertissement

This option is deprecated and should not be used.

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.

sort array|object

The sort specification for the ordering of the results.

Falls back to the deprecated "$orderby" 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
PECL mongodb 1.14.0

Added the "let" option. The "comment" option now accepts any type.

PECL mongodb 1.8.0

Added the "allowDiskUse" option.

The "oplogReplay" option is deprecated.

PECL mongodb 1.5.0

The "maxScan" and "snapshot" options are deprecated.

PECL mongodb 1.3.0

Added the "maxAwaitTimeMS" option.

PECL mongodb 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 legacy "secondaryOk" option, which is obsolete. For queries using the legacy wire protocol OP_QUERY, the driver will set the secondaryOk bit as needed in accordance with the » Server Selection Specification.

PECL mongodb 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 class MongoDB\Driver\BulkWrite implements Countable {
/* Méthodes */
public __construct(?array $options = null)
public count(): int
public delete(array|object $filter, ?array $deleteOptions = null): void
public insert(array|object $document): mixed
public update(array|object $filter, array|object $newObj, ?array $updateOptions = null): void
}

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 = null)

Constructs a new MongoDB\Driver\BulkWrite, which is a mutable object to which one or more write operations may be added. The write(s) may then be executed with MongoDB\Driver\Manager::executeBulkWrite().

Liste de paramètres

options (array)

options
Option | Type | Description | Default
bypassDocumentValidation bool

If true, allows insert and update operations to circumvent document level validation.

This option is available in MongoDB 3.2+ and is ignored for older server versions, which do not support document level validation.

false
comment mixed

An arbitrary comment to help trace the operation through the database profiler, currentOp output, and logs.

This option is available in MongoDB 4.4+ and will result in an exception at execution time if specified for an older server version.

let array|object

Dictionnaire des noms et des valeurs des paramètres. Les valeurs doivent être des constantes ou des expressions fermées qui ne font pas référence aux champs du document. Les paramètres peuvent ensuite être accédés en tant que variables dans un contexte d'expression agrégée (par exemple $$var).

Cette option est disponible dans MongoDB 5.0+ et entraînera une exception au moment de l'exécution si elle est spécifiée pour une version antérieure du serveur.

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.

Historique

Version | Description
PECL mongodb 1.14.0 | Added the "comment" and "let" options.
PECL mongodb 1.1.0 | Added the "bypassDocumentValidation" option.

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(1);

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 MongoDB\Driver\BulkWrite::count(): int

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
PECL mongodb 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 MongoDB\Driver\BulkWrite::delete(array|object $filter, ?array $deleteOptions = null): void

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.

Note: Lors de l'évaluation des critères de requête, MongoDB compare les type et les valeurs en fonction de leur propre » règles de comparaison pour les types BSON, qui diffère des règles de comparaison et de manipulation des type de PHP. Lors de la correspondance d'un type BSON spcécial, les critères de requête doivent utiliser la classe BSON (ex. : utiliser MongoDB\BSON\ObjectId pour correspondre à un » ObjectId).

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.

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.

This option is available in MongoDB 4.4+ and will result in an exception at execution time if specified for an older server version.

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
PECL mongodb 1.8.0 | Added the "hint" option.
PECL mongodb 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');
$result = $manager->executeBulkWrite('db.collection', $bulk);

?>

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 MongoDB\Driver\BulkWrite::insert(array|object $document): mixed

Adds an insert operation to the MongoDB\Driver\BulkWrite.

Liste de paramètres

document (array|object)

A document to insert.

Valeurs de retour

Returns the _id of the inserted document. If the document did not have an _id, the MongoDB\BSON\ObjectId generated for the insert will be returned.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Historique

Version | Description
PECL mongodb 1.3.0 | The _id of the inserted document is always returned. Previously, the method only returned a value if a MongoDB\BSON\ObjectId was generated.

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');
$result = $manager->executeBulkWrite('db.collection', $bulk);

?>

Résultat de l'exemple ci-dessus est 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\Session »
  • 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 MongoDB\Driver\BulkWrite::update(array|object $filter, array|object $newObj, ?array $updateOptions = null): void

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.

Note: Lors de l'évaluation des critères de requête, MongoDB compare les type et les valeurs en fonction de leur propre » règles de comparaison pour les types BSON, qui diffère des règles de comparaison et de manipulation des type de PHP. Lors de la correspondance d'un type BSON spcécial, les critères de requête doivent utiliser la classe BSON (ex. : utiliser MongoDB\BSON\ObjectId pour correspondre à un » ObjectId).

newObj (array|object)

A document containing either update operators (e.g. $set), a replacement document (i.e. only field:value expressions), or an » aggregation pipeline.

updateOptions

updateOptions
Option | Type | Description | Default
arrayFilters array

An array of filter documents that determines which array elements to modify for an update operation on an array field. See » Specify arrayFilters for Array Update Operations in the MongoDB manual for more information.

This option is available in MongoDB 3.6+ and will result in an exception at execution time if specified for an older server version.

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.

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.

This option is available in MongoDB 4.2+ and will result in an exception at execution time if specified for an older server version.

multi | bool | Update only the first matching document if false, or all matching documents true. This option cannot be true if newObj is a replacement document. | 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
PECL mongodb 1.7.0 | Added the "hint" option.
PECL mongodb 1.6.0 | The newObj parameter now accepts an aggregation pipeline. This feature requires MongoDB 4.2+ and will result in an exception at execution time if specified for an older server version.
PECL mongodb 1.5.0 | Using the "arrayFilters" option will result in an exception at execution time if unsupported by the server. Previously, no exception would be thrown and the option may have been ignored.
PECL mongodb 1.4.0 | Added the "arrayFilters" option.
PECL mongodb 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');
$result = $manager->executeBulkWrite('db.collection', $bulk);

?>

Voir aussi

  • MongoDB\Driver\Manager::executeBulkWrite() - Execute one or more write operations
  • MongoDB\Driver\WriteResult


The MongoDB\Driver\Session class

(mongodb >=1.4.0)

Introduction

The MongoDB\Driver\Session class represents a client session and is returned by MongoDB\Driver\Manager::startSession(). Commands, queries, and write operations may then be associated the session.

Synopsis de la classe

final class MongoDB\Driver\Session {
/* Constantes */
const string TRANSACTION_NONE = none;
const string TRANSACTION_STARTING = starting;
const string TRANSACTION_IN_PROGRESS = in_progress;
const string TRANSACTION_COMMITTED = committed;
const string TRANSACTION_ABORTED = aborted;
/* Méthodes */
final public abortTransaction(): void
final public advanceClusterTime(array|object $clusterTime): void
final public advanceOperationTime(MongoDB\BSON\TimestampInterface $operationTime): void
final public commitTransaction(): void
final private __construct()
final public endSession(): void
final public getClusterTime(): ?object
final public getLogicalSessionId(): object
final public getOperationTime(): ?MongoDB\BSON\Timestamp
final public getServer(): ?MongoDB\Driver\Server
final public getTransactionOptions(): ?array
final public getTransactionState(): string
final public isDirty(): bool
final public isInTransaction(): bool
final public startTransaction(?array $options = null): void
}

Constantes pré-définies

MongoDB\Driver\Session::TRANSACTION_NONE

There is no transaction in progress.

MongoDB\Driver\Session::TRANSACTION_STARTING

A transaction has been started, but no operation has been sent to the server.

MongoDB\Driver\Session::TRANSACTION_IN_PROGRESS

A transaction is in progress.

MongoDB\Driver\Session::TRANSACTION_COMMITTED

The transaction was committed.

MongoDB\Driver\Session::TRANSACTION_ABORTED

The transaction was aborted.

Sommaire

  • MongoDB\Driver\Session::abortTransaction — Aborts a transaction
  • MongoDB\Driver\Session::advanceClusterTime — Advances the cluster time for this session
  • MongoDB\Driver\Session::advanceOperationTime — Advances the operation time for this session
  • MongoDB\Driver\Session::commitTransaction — Commits a transaction
  • MongoDB\Driver\Session::__construct — Create a new Session (not used)
  • MongoDB\Driver\Session::endSession — Terminates a session
  • MongoDB\Driver\Session::getClusterTime — Returns the cluster time for this session
  • MongoDB\Driver\Session::getLogicalSessionId — Returns the logical session ID for this session
  • MongoDB\Driver\Session::getOperationTime — Returns the operation time for this session
  • MongoDB\Driver\Session::getServer — Returns the server to which this session is pinned
  • MongoDB\Driver\Session::getTransactionOptions — Returns options for the currently running transaction
  • MongoDB\Driver\Session::getTransactionState — Returns the current transaction state for this session
  • MongoDB\Driver\Session::isDirty — Returns whether the session has been marked as dirty
  • MongoDB\Driver\Session::isInTransaction — Returns whether a multi-document transaction is in progress
  • MongoDB\Driver\Session::startTransaction — Starts a transaction


Aborts a transaction

  • « MongoDB\Driver\Session
  • MongoDB\Driver\Session::advanceClusterTime »
  • PHP Manual
  • MongoDB\Driver\Session
  • Aborts a transaction

MongoDB\Driver\Session::abortTransaction

(mongodb >=1.5.0)

MongoDB\Driver\Session::abortTransaction — Aborts a transaction

Description

final public MongoDB\Driver\Session::abortTransaction(): void

Terminates the multi-document transaction and rolls back any data changes made by the operations within the transaction. That is, the transaction ends without saving any of the changes made by the operations in the transaction.

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 MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.
  • Throws MongoDB\Driver\Exception\RuntimeException if the transaction could not be aborted (e.g. a transaction was not started).

Voir aussi

  • MongoDB\Driver\Manager::startSession() - Start a new client session for use with this client
  • MongoDB\Driver\Session::commitTransaction() - Commits a transaction
  • MongoDB\Driver\Session::startTransaction() - Starts a transaction


Advances the cluster time for this session

  • « MongoDB\Driver\Session::abortTransaction
  • MongoDB\Driver\Session::advanceOperationTime »
  • PHP Manual
  • MongoDB\Driver\Session
  • Advances the cluster time for this session

MongoDB\Driver\Session::advanceClusterTime

(mongodb >=1.4.0)

MongoDB\Driver\Session::advanceClusterTime — Advances the cluster time for this session

Description

final public MongoDB\Driver\Session::advanceClusterTime(array|object $clusterTime): void

Advances the cluster time for this session. If the cluster time is less than or equal to the session's current cluster time, this function is a no-op.

By using this method in conjunction with MongoDB\Driver\Session::advanceOperationTime() to copy the cluster and operation times from another session, you can ensure that operations in this session are causally consistent with the last operation in the other session.

Liste de paramètres

clusterTime

The cluster time is a document containing a logical timestamp and server signature. Typically, this value will be obtained by calling MongoDB\Driver\Session::getClusterTime() on another session object.

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.

Voir aussi

  • MongoDB\Driver\Session::advanceOperationTime() - Advances the operation time for this session
  • MongoDB\Driver\Session::getClusterTime() - Returns the cluster time for this session


Advances the operation time for this session

  • « MongoDB\Driver\Session::advanceClusterTime
  • MongoDB\Driver\Session::commitTransaction »
  • PHP Manual
  • MongoDB\Driver\Session
  • Advances the operation time for this session

MongoDB\Driver\Session::advanceOperationTime

(mongodb >=1.4.0)

MongoDB\Driver\Session::advanceOperationTime — Advances the operation time for this session

Description

final public MongoDB\Driver\Session::advanceOperationTime(MongoDB\BSON\TimestampInterface $operationTime): void

Advances the operation time for this session. If the operation time is less than or equal to the session's current operation time, this function is a no-op.

By using this method in conjunction with MongoDB\Driver\Session::advanceClusterTime() to copy the operation and cluster times from another session, you can ensure that operations in this session are causally consistent with the last operation in the other session.

Liste de paramètres

operationTime

The operation time is a logical timestamp. Typically, this value will be obtained by calling MongoDB\Driver\Session::getOperationTime() on another session object.

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.

Voir aussi

  • MongoDB\Driver\Session::advanceClusterTime() - Advances the cluster time for this session
  • MongoDB\Driver\Session::getClusterTime() - Returns the cluster time for this session


Commits a transaction

  • « MongoDB\Driver\Session::advanceOperationTime
  • MongoDB\Driver\Session::__construct »
  • PHP Manual
  • MongoDB\Driver\Session
  • Commits a transaction

MongoDB\Driver\Session::commitTransaction

(mongodb >=1.5.0)

MongoDB\Driver\Session::commitTransaction — Commits a transaction

Description

final public MongoDB\Driver\Session::commitTransaction(): void

Saves the changes made by the operations in the multi-document transaction and ends the transaction. Until the commit, none of the data changes made from within the transaction are visible outside the transaction.

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 MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.
  • Throws MongoDB\Driver\Exception\CommandException if the server could not commit the transaction (e.g. due to conflicts, network issues). In case the exception's MongoDB\Driver\Exception\CommandException::getResultDocument() has a "errorLabels" element, and this array contains a "TransientTransactionError" or "UnUnknownTransactionCommitResult" value, it is safe to re-try the whole transaction. In newer versions of the driver, MongoDB\Driver\Exception\RuntimeException::hasErrorLabel() should be used to test for this situation instead.
  • Throws MongoDB\Driver\Exception\RuntimeException if the transaction could not be commited (e.g. a transaction was not started).

Voir aussi

  • MongoDB\Driver\Manager::startSession() - Start a new client session for use with this client
  • MongoDB\Driver\Session::abortTransaction() - Aborts a transaction
  • MongoDB\Driver\Session::startTransaction() - Starts a transaction
  • MongoDB\Driver\Exception\RuntimeException::hasErrorLabel() - Retourne si un label d'erreur est associé avec une exception


Create a new Session (not used)

  • « MongoDB\Driver\Session::commitTransaction
  • MongoDB\Driver\Session::endSession »
  • PHP Manual
  • MongoDB\Driver\Session
  • Create a new Session (not used)

MongoDB\Driver\Session::__construct

(mongodb >=1.4.0)

MongoDB\Driver\Session::__construct — Create a new Session (not used)

Description

final private MongoDB\Driver\Session::__construct()

MongoDB\Driver\Session objects are returned by MongoDB\Driver\Manager::startSession() and cannot be constructed directly.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Voir aussi

  • MongoDB\Driver\Manager::startSession() - Start a new client session for use with this client


Terminates a session

  • « MongoDB\Driver\Session::__construct
  • MongoDB\Driver\Session::getClusterTime »
  • PHP Manual
  • MongoDB\Driver\Session
  • Terminates a session

MongoDB\Driver\Session::endSession

(mongodb >=1.5.0)

MongoDB\Driver\Session::endSession — Terminates a session

Description

final public MongoDB\Driver\Session::endSession(): void

This method closes an existing session. If a transaction was associated with this session, the transaction will be aborted. After calling this method, applications should not invoke other methods on the session.

Note: Sessions are also closed during garbage collection. It should not be necessary to call this method under normal circumstances.

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 MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\Driver\Manager::startSession() - Start a new client session for use with this client
  • MongoDB\Driver\Session::abortTransaction() - Aborts a transaction
  • MongoDB\Driver\Session::commitTransaction() - Commits a transaction
  • MongoDB\Driver\Session::startTransaction() - Starts a transaction


Returns the cluster time for this session

  • « MongoDB\Driver\Session::endSession
  • MongoDB\Driver\Session::getLogicalSessionId »
  • PHP Manual
  • MongoDB\Driver\Session
  • Returns the cluster time for this session

MongoDB\Driver\Session::getClusterTime

(mongodb >=1.4.0)

MongoDB\Driver\Session::getClusterTime — Returns the cluster time for this session

Description

final public MongoDB\Driver\Session::getClusterTime(): ?object

Returns the cluster time for this session. If the session has not been used for any operation and MongoDB\Driver\Session::advanceClusterTime() has not been called, the cluster time will be null.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the cluster time for this session, or null if the session has no cluster time.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\Driver\Session::advanceClusterTime() - Advances the cluster time for this session


Returns the logical session ID for this session

  • « MongoDB\Driver\Session::getClusterTime
  • MongoDB\Driver\Session::getOperationTime »
  • PHP Manual
  • MongoDB\Driver\Session
  • Returns the logical session ID for this session

MongoDB\Driver\Session::getLogicalSessionId

(mongodb >=1.4.0)

MongoDB\Driver\Session::getLogicalSessionId — Returns the logical session ID for this session

Description

final public MongoDB\Driver\Session::getLogicalSessionId(): object

Returns the logical session ID for this session, which may be used to identify this session's operations on the server.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the logical session ID for this session.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


Returns the operation time for this session

  • « MongoDB\Driver\Session::getLogicalSessionId
  • MongoDB\Driver\Session::getServer »
  • PHP Manual
  • MongoDB\Driver\Session
  • Returns the operation time for this session

MongoDB\Driver\Session::getOperationTime

(mongodb >=1.4.0)

MongoDB\Driver\Session::getOperationTime — Returns the operation time for this session

Description

final public MongoDB\Driver\Session::getOperationTime(): ?MongoDB\BSON\Timestamp

Returns the operation time for this session. If the session has not been used for any operation and MongoDB\Driver\Session::advanceOperationTime() has not been called, the operation time will be null

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the operation time for this session, or null if the session has no operation time.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\Driver\Session::advanceOperationTime() - Advances the operation time for this session


Returns the server to which this session is pinned

  • « MongoDB\Driver\Session::getOperationTime
  • MongoDB\Driver\Session::getTransactionOptions »
  • PHP Manual
  • MongoDB\Driver\Session
  • Returns the server to which this session is pinned

MongoDB\Driver\Session::getServer

(mongodb >=1.6.0)

MongoDB\Driver\Session::getServer — Returns the server to which this session is pinned

Description

final public MongoDB\Driver\Session::getServer(): ?MongoDB\Driver\Server

Returns the MongoDB\Driver\Server to which this session is pinned. If the session is not pinned to a server, null will be returned.

Session pinning is primarily used for sharded transactions, as all commands within a sharded transaction must be sent to the same mongos instance. This method is intended to be used by libraries built atop the extension to allow use of a pinned server instead of invoking server selection.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the MongoDB\Driver\Server to which this session is pinned, or null if the session is not pinned to any server.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


Returns options for the currently running transaction

  • « MongoDB\Driver\Session::getServer
  • MongoDB\Driver\Session::getTransactionState »
  • PHP Manual
  • MongoDB\Driver\Session
  • Returns options for the currently running transaction

MongoDB\Driver\Session::getTransactionOptions

(mongodb >=1.7.0)

MongoDB\Driver\Session::getTransactionOptions — Returns options for the currently running transaction

Description

final public MongoDB\Driver\Session::getTransactionOptions(): ?array

Returns options for the currently running transaction.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a array containing current transaction options, or null if no transaction is running.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\Driver\Session::getTransactionState() - Returns the current transaction state for this session


Returns the current transaction state for this session

  • « MongoDB\Driver\Session::getTransactionOptions
  • MongoDB\Driver\Session::isDirty »
  • PHP Manual
  • MongoDB\Driver\Session
  • Returns the current transaction state for this session

MongoDB\Driver\Session::getTransactionState

(mongodb >=1.7.0)

MongoDB\Driver\Session::getTransactionState — Returns the current transaction state for this session

Description

final public MongoDB\Driver\Session::getTransactionState(): string

Returns the transaction state for this session.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the current transaction state for this session.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\Driver\Session::isInTransaction() - Returns whether a multi-document transaction is in progress
  • MongoDB\Driver\Session::getTransactionOptions() - Returns options for the currently running transaction


Returns whether the session has been marked as dirty

  • « MongoDB\Driver\Session::getTransactionState
  • MongoDB\Driver\Session::isInTransaction »
  • PHP Manual
  • MongoDB\Driver\Session
  • Returns whether the session has been marked as dirty

MongoDB\Driver\Session::isDirty

(mongodb >=1.13.0)

MongoDB\Driver\Session::isDirty — Returns whether the session has been marked as dirty

Description

final public MongoDB\Driver\Session::isDirty(): bool

Returns whether the session has been marked as dirty (i.e. it has been used with a command that encountered a network error).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns whether the session has been marked as dirty.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


Returns whether a multi-document transaction is in progress

  • « MongoDB\Driver\Session::isDirty
  • MongoDB\Driver\Session::startTransaction »
  • PHP Manual
  • MongoDB\Driver\Session
  • Returns whether a multi-document transaction is in progress

MongoDB\Driver\Session::isInTransaction

(mongodb >=1.6.0)

MongoDB\Driver\Session::isInTransaction — Returns whether a multi-document transaction is in progress

Description

final public MongoDB\Driver\Session::isInTransaction(): bool

Returns whether a multi-document transaction is currently in progress for this session. A transaction is considered "in progress" if it has been started but has not been committed or aborted.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns true if a transaction is currently in progress for this session, 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\Session::getTransactionState() - Returns the current transaction state for this session


Starts a transaction

  • « MongoDB\Driver\Session::isInTransaction
  • MongoDB\Driver\ClientEncryption »
  • PHP Manual
  • MongoDB\Driver\Session
  • Starts a transaction

MongoDB\Driver\Session::startTransaction

(mongodb >=1.5.0)

MongoDB\Driver\Session::startTransaction — Starts a transaction

Description

final public MongoDB\Driver\Session::startTransaction(?array $options = null): void

Starts a multi-document transaction associated with the session. At any given time, you can have at most one open transaction for a session. After starting a transaction, the session object must be passed to each operation via the "session" option (e.g. MongoDB\Driver\Manager::executeBulkWrite()) in order to associate that operation with the transaction.

Transactions can be committed through MongoDB\Driver\Session::commitTransaction(), and aborted with MongoDB\Driver\Session::abortTransaction(). Transactions are also automatically aborted when the session is closed from garbage collection or by explicitly calling MongoDB\Driver\Session::endSession().

Liste de paramètres

options

Options can be passed as argument to this method. Each element in this options array overrides the corresponding option from the "defaultTransactionOptions" option, if set when starting the session with MongoDB\Driver\Manager::startSession().

options
Option Type Description
maxCommitTimeMS integer

Le temps maximum en millisecondes pour permettre à une seule commande commitTransaction de s'exécuter.

Si spécifié, maxCommitTimeMS doit être un entier 32 bits signé supérieur ou égal à zéro.

readConcern MongoDB\Driver\ReadConcern

Une préoccupation de lecture à appliquer à l'opération.

Cette option est disponible dans MongoDB 3.2+ et se traduira par une exception au moment de l'exécution si elle est spécifiée pour une version plus ancienne du serveur.

readPreference MongoDB\Driver\ReadPreference

Une préférence de lecture à utiliser pour sélectionner un serveur pour l'opération.

writeConcern MongoDB\Driver\WriteConcern

Une préoccupation d'écriture à appliquer à l'opération.

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.
  • Throws MongoDB\Driver\Exception\CommandException if the transaction could not be started because of a server-side problem (e.g. a lock could not be obtained).
  • Throws MongoDB\Driver\Exception\RuntimeException if the transaction could not be started (e.g. a transaction was already started).

Historique

Version | Description
PECL mongodb 1.6.0 | The "maxCommitTimeMS" option was added.

Voir aussi

  • MongoDB\Driver\Manager::startSession() - Start a new client session for use with this client
  • MongoDB\Driver\Session::commitTransaction() - Commits a transaction
  • MongoDB\Driver\Session::abortTransaction() - Aborts a transaction


The MongoDB\Driver\ClientEncryption class

(mongodb >=1.7.0)

Introduction

The MongoDB\Driver\ClientEncryption class handles creation of data keys for client-side encryption, as well as manually encrypting and decrypting values.

Synopsis de la classe

final class MongoDB\Driver\ClientEncryption {
/* Constantes */
const string AEAD_AES_256_CBC_HMAC_SHA_512_DETERMINISTIC = AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic;
const string AEAD_AES_256_CBC_HMAC_SHA_512_RANDOM = AEAD_AES_256_CBC_HMAC_SHA_512-Random;
const string ALGORITHM_INDEXED = Indexed;
const string ALGORITHM_UNINDEXED = Unindexed;
const string ALGORITHM_RANGE_PREVIEW = RangePreview;
const string QUERY_TYPE_EQUALITY = equality;
const string QUERY_TYPE_RANGE_PREVIEW = rangePreview;
/* Méthodes */
final public addKeyAltName(MongoDB\BSON\Binary $keyId, string $keyAltName): ?object
final public __construct(array $options)
final public createDataKey(string $kmsProvider, ?array $options = null): MongoDB\BSON\Binary
final public decrypt(MongoDB\BSON\Binary $value): mixed
final public deleteKey(MongoDB\BSON\Binary $keyId): object
final public encrypt(mixed $value, ?array $options = null): MongoDB\BSON\Binary
final public encryptExpression(array|object $expr, ?array $options = null): object
final public getKey(MongoDB\BSON\Binary $keyId): ?object
final public getKeyByAltName(string $keyAltName): ?object
final public getKeys(): MongoDB\Driver\Cursor
final public removeKeyAltName(MongoDB\BSON\Binary $keyId, string $keyAltName): ?object
final public rewrapManyDataKey(array|object $filter, ?array $options = null): object
}

Constantes pré-définies

MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_DETERMINISTIC

Specifies an algorithm for » deterministic encryption, which is suitable for querying.

MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_RANDOM

Specifies an algorithm for » randomized encryption

MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED

Specifies an algorithm for an indexed, encrypted payload, which can be used with queryable encryption.

To insert or query with an indexed, encrypted payload, the MongoDB\Driver\Manager must be configured with the "autoEncryption" driver option. The "bypassQueryAnalysis" auto encryption option may be true. The "bypassAutoEncryption" auto encryption option must be false.

MongoDB\Driver\ClientEncryption::ALGORITHM_UNINDEXED

Specifies an algorithm for an unindexed, encrypted payload.

MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW

Specifies an algorithm for a range, encrypted payload, which can be used with queryable encryption.

To query with a range encrypted payload, the MongoDB\Driver\Manager must be configured with the "autoEncryption" driver option. The "bypassQueryAnalysis" auto encryption option may be true. The "bypassAutoEncryption" auto encryption option must be false.

Note:

The range algorithm is experimental only. It is not intended for public use.

The PHP driver does not yet support range queries for decimal128 BSON field types.

MongoDB\Driver\ClientEncryption::QUERY_TYPE_EQUALITY

Specifies an equality query type, which is used in conjunction with MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED.

MongoDB\Driver\ClientEncryption::QUERY_TYPE_RANGE_PREVIEW

Specifies a range query type, which is used in conjunction with MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW.

Historique

Version | Description
PECL mongodb 1.16.0 | Added MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW and MongoDB\Driver\ClientEncryption::QUERY_TYPE_RANGE_PREVIEW.
PECL mongodb 1.14.0 | Added MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED, MongoDB\Driver\ClientEncryption::ALGORITHM_UNINDEXED, and MongoDB\Driver\ClientEncryption::QUERY_TYPE_EQUALITY

Voir aussi

  • MongoDB\Driver\Manager::createClientEncryption()

Sommaire

  • MongoDB\Driver\ClientEncryption::addKeyAltName — Adds an alternate name to a key document
  • MongoDB\Driver\ClientEncryption::__construct — Create a new ClientEncryption object
  • MongoDB\Driver\ClientEncryption::createDataKey — Creates a key document
  • MongoDB\Driver\ClientEncryption::decrypt — Decrypt a value
  • MongoDB\Driver\ClientEncryption::deleteKey — Deletes a key document
  • MongoDB\Driver\ClientEncryption::encrypt — Encrypt a value
  • MongoDB\Driver\ClientEncryption::encryptExpression — Encrypts a match or aggregate expression
  • MongoDB\Driver\ClientEncryption::getKey — Gets a key document
  • MongoDB\Driver\ClientEncryption::getKeyByAltName — Gets a key document by an alternate name
  • MongoDB\Driver\ClientEncryption::getKeys — Gets all key documents
  • MongoDB\Driver\ClientEncryption::removeKeyAltName — Removes an alternate name from a key document
  • MongoDB\Driver\ClientEncryption::rewrapManyDataKey — Rewraps data keys


Adds an alternate name to a key document

  • « MongoDB\Driver\ClientEncryption
  • MongoDB\Driver\ClientEncryption::__construct »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Adds an alternate name to a key document

MongoDB\Driver\ClientEncryption::addKeyAltName

(mongodb >=1.15.0)

MongoDB\Driver\ClientEncryption::addKeyAltName — Adds an alternate name to a key document

Description

final public MongoDB\Driver\ClientEncryption::addKeyAltName(MongoDB\BSON\Binary $keyId, string $keyAltName): ?object

Adds keyAltName to the set of alternate names for the key document with the given UUID keyId.

Liste de paramètres

keyId

A MongoDB\BSON\Binary instance with subtype 4 (UUID) identifying the key document.

keyAltName

Alternate name to add to the key document.

Valeurs de retour

Returns the previous version of the key document, or null if no document matched.

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.

Voir aussi

  • MongoDB\Driver\ClientEncryption::getKeyByAltName() - Gets a key document by an alternate name
  • MongoDB\Driver\ClientEncryption::removeKeyAltName() - Removes an alternate name from a key document


Create a new ClientEncryption object

  • « MongoDB\Driver\ClientEncryption::addKeyAltName
  • MongoDB\Driver\ClientEncryption::createDataKey »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Create a new ClientEncryption object

MongoDB\Driver\ClientEncryption::__construct

(mongodb >=1.14.0)

MongoDB\Driver\ClientEncryption::__construct — Create a new ClientEncryption object

Description

final public MongoDB\Driver\ClientEncryption::__construct(array $options)

Constructs a new MongoDB\Driver\ClientEncryption object with the specified options.

Liste de paramètres

options

options
Option | Type | Description
keyVaultClient | MongoDB\Driver\Manager | The Manager used to route data key queries. This option is required (unlike with MongoDB\Driver\Manager::createClientEncryption()).
keyVaultNamespace | chaîne de caractères | Un nom d'espace complètement qualifié (par exemple "databaseName.collectionName") dénotant la collection qui contient toutes les clés de données utilisé pour le chiffrement et déchiffrement. Cette option est requise.
kmsProviders tableau

Un document contenant la configuration d'un ou plusieurs fournisseurs KMS, qui sont utilisés pour chiffrer les clés de données. Les fournisseurs supporté sont "aws", "azure", "gcp" et "local", et au moins un doit être spécifié.

Si un document vide est spécifié pour "aws", "azure", ou "gcp", le pilote tentera de configurer le fournisseur en utilisant » Automatic Credentials.

Le format pour "aws" est le suivant :

aws: {
    accessKeyId: <string>,
    secretAccessKey: <string>,
    sessionToken: <optional string>
}

Le format pour "azure" est le suivant :

azure: {
    tenantId: <string>,
    clientId: <string>,
    clientSecret: <string>,
    identityPlatformEndpoint: <optional string> // Defaults to "login.microsoftonline.com"

}

Le format pour "gcp" est le suivant :

gcp: {
    email: <string>,
    privateKey: <base64 string>|<MongoDB\BSON\Binary>,
    endpoint: <optional string> // Defaults to "oauth2.googleapis.com"

}

Le format pour "kmip" est le suivant :

kmip: {
    endpoint: <string>
}

Le format pour "local" est le suivant :

local: {
    // 96-byte master key used to encrypt/decrypt data keys
    key: <base64 string>|<MongoDB\BSON\Binary>
}
tlsOptions array

Un document contenant la configuration TLS d'un ou plusieurs fournisseurs KMS. Les fournisseurs supporté sont "aws", "azure", "gcp" et "kmip". Tous les fournisseurs supportent les options suivantes :

<provider>: {
    tlsCaFile: <optional string>,
    tlsCertificateKeyFile: <optional string>,
    tlsCertificateKeyFilePassword: <optional string>,
    tlsDisableOCSPEndpointCheck: <optional bool>
}

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 extension was compiled without libmongocrypt support

Historique

Version Description
PECL mongodb 1.16.0

The AWS KMS provider for client-side encryption now accepts a "sessionToken" option, which can be used to authenticate with temporary AWS credentials.

Added "tlsDisableOCSPEndpointCheck" to the "tlsOptions" option.

If an empty document is specified for the "azure" or "gcp" KMS provider, the driver will attempt to configure the provider using » Automatic Credentials.

PECL mongodb 1.15.0

If an empty document is specified for the "aws" KMS provider, the driver will attempt to configure the provider using » Automatic Credentials.

Voir aussi

  • MongoDB\Driver\Manager::createClientEncryption() - Create a new ClientEncryption object
  • » Explicit (Manual) Client-Side Field Level Encryption in the MongoDB manual


Creates a key document

  • « MongoDB\Driver\ClientEncryption::__construct
  • MongoDB\Driver\ClientEncryption::decrypt »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Creates a key document

MongoDB\Driver\ClientEncryption::createDataKey

(mongodb >=1.7.0)

MongoDB\Driver\ClientEncryption::createDataKey — Creates a key document

Description

final public MongoDB\Driver\ClientEncryption::createDataKey(string $kmsProvider, ?array $options = null): MongoDB\BSON\Binary

Creates a new key document and inserts it into the key vault collection.

Liste de paramètres

kmsProvider

The KMS provider (e.g. "local", "aws") that will be used to encrypt the new data key.

options

Data key options
Option Type Description
masterKey array

The masterKey document identifies a KMS-specific key used to encrypt the new data key. This option is required unless kmsProvider is "local".

Options du fournisseur "aws"
Option | Type | Description
region | string | Requis.
key | string | Requis. Le nom de ressource Amazon (ARN) de la clé maîtresse du client AWS (CMK).
endpoint | string | Optionnel. Un identifiant d'hôte alternatif pour envoyer les demandes KMS. Peut inclure le numéro de port.

Options du fournisseur "azure"
Option | Type | Description
keyVaultEndpoint | string | Requis. Hôte avec port optionnel (par exemple, "example.vault.azure.net").
keyName | string | Requis.
keyVersion | string | Optionnel. Une version spécifique de la clé nommée. Par défaut, la version primaire de la clé est utilisée.

Options du fournisseur "gcp"
Option | Type | Description
projectId | string | Requis.
location | string | Requis.
keyRing | string | Requis.
keyName | string | Requis.
keyVersion | string | Optionnel. Une version spécifique de la clé nommée. Par défaut, la version primaire de la clé est utilisée.
endpoint | string | Optionnel. Hôte avec port optionnel. La valeur par défaut est "cloudkms.googleapis.com".

Options du fournisseur "kmip"
Option | Type | Description
keyId | string | Optionnel. Identifiant unique d'un objet géré de 96 octets de données secrètes KMIP. S'il n'est pas spécifié, le pilote crée un objet géré aléatoire de 96 octets de données secrètes KMIP.
endpoint | string | Optionnel. Hôte avec port optionnel.

keyAltNames array

An optional list of string alternate names used to reference a key. If a key is created with alternate names, then encryption may refer to the key by the unique alternate name instead of by _id.

keyMaterial MongoDB\BSON\Binary

An optional 96-byte value to use as custom key material for the data key being created. If keyMaterial is given, the custom key material is used for encrypting and decrypting data. Otherwise, the key material for the new data key is generated from a cryptographically secure random device.

Valeurs de retour

Returns the identifier of the new key as a MongoDB\BSON\Binary object with subtype 4 (UUID).

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.

Historique

Version | Description
PECL mongodb 1.15.0 | Added the "keyMaterial" option.
PECL mongodb 1.10.0 | Azure and GCP are now supported as KMS providers for client-side encryption.


Decrypt a value

  • « MongoDB\Driver\ClientEncryption::createDataKey
  • MongoDB\Driver\ClientEncryption::deleteKey »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Decrypt a value

MongoDB\Driver\ClientEncryption::decrypt

(mongodb >=1.7.0)

MongoDB\Driver\ClientEncryption::decrypt — Decrypt a value

Description

final public MongoDB\Driver\ClientEncryption::decrypt(MongoDB\BSON\Binary $value): mixed

Decrypts the value.

Liste de paramètres

value

A MongoDB\BSON\Binary instance with subtype 6 containing the encrypted value.

Valeurs de retour

Returns the decrypted value as it was passed to MongoDB\Driver\ClientEncryption::encrypt().

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.
  • Throws MongoDB\Driver\Exception\EncryptionException if an error occurs while decrypting the value

Voir aussi

  • MongoDB\Driver\ClientEncryption::encrypt() - Encrypt a value


Deletes a key document

  • « MongoDB\Driver\ClientEncryption::decrypt
  • MongoDB\Driver\ClientEncryption::encrypt »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Deletes a key document

MongoDB\Driver\ClientEncryption::deleteKey

(mongodb >=1.15.0)

MongoDB\Driver\ClientEncryption::deleteKey — Deletes a key document

Description

final public MongoDB\Driver\ClientEncryption::deleteKey(MongoDB\BSON\Binary $keyId): object

Removes the key document with the given UUID keyId from the key vault collection.

Liste de paramètres

keyId

A MongoDB\BSON\Binary instance with subtype 4 (UUID) identifying the key document.

Valeurs de retour

Returns the result of the internal deleteOne operation on the key vault collection.

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.


Encrypt a value

  • « MongoDB\Driver\ClientEncryption::deleteKey
  • MongoDB\Driver\ClientEncryption::encryptExpression »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Encrypt a value

MongoDB\Driver\ClientEncryption::encrypt

(mongodb >=1.7.0)

MongoDB\Driver\ClientEncryption::encrypt — Encrypt a value

Description

final public MongoDB\Driver\ClientEncryption::encrypt(mixed $value, ?array $options = null): MongoDB\BSON\Binary

Encrypts the value.

Liste de paramètres

value

The value to be encrypted. Any value that can be inserted into MongoDB can be encrypted using this method.

options

Options de chiffrement
Option Type Description
algorithm string

L'algorithme de chiffrement à utiliser. Cette option est requise. Spécifiez l'une des constantes suivantes de ClientEncryption :

  • MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_DETERMINISTIC
  • MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_RANDOM
  • MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED
  • MongoDB\Driver\ClientEncryption::ALGORITHM_UNINDEXED
  • MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW
contentionFactor int

Le facteur de contention pour évaluer les requêtes avec des charges utiles chiffrées indexées.

Cette option s'applique uniquement et ne peut être spécifiée que lorsque algorithm est MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED ou MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW.

keyAltName string

Identifie un document de collection de coffre à clés par keyAltName. Cette option est mutuellement exclusive avec keyId et l'une des deux est requise.

keyId MongoDB\BSON\Binary

Identifie une clé de données par _id. La valeur est un UUID (sous-type binaire 4). Cette option est mutuellement exclusive avec keyAltName et l'une des deux est requise.

queryType string

Le type de requête pour évaluer les requêtes avec des charges utiles chiffrées indexées. Spécifiez l'une des constantes suivantes de ClientEncryption :

  • MongoDB\Driver\ClientEncryption::QUERY_TYPE_EQUALITY
  • MongoDB\Driver\ClientEncryption::QUERY_TYPE_RANGE_PREVIEW

Cette option s'applique uniquement et ne peut être spécifiée que lorsque algorithm est MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED ou MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW.

rangeOpts array

Options d'index pour un champ de chiffrement interrogeable prenant en charge les requêtes "rangePreview". Les options ci-dessous doivent correspondre aux valeurs définies dans encryptedFields de la collection cible. Pour les types de champ BSON double et decimal128, min, max et precision doivent être tous définis ou tous non définis.

Options d'index de plage
Option | Type | Description
min | mixed | Requis si precision est défini.
max | mixed | Requis si precision est défini.
sparsity | int | Requis.
precision | int | Facultatif. Ne peut être défini que pour les types de champ BSON double ou decimal128.

Valeurs de retour

Returns the encrypted value as MongoDB\BSON\Binary object with subtype 6.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.
  • Throws MongoDB\Driver\Exception\EncryptionException if an error occurs while encrypting the value

Historique

Version | Description
PECL mongodb 1.14.0 | Added the "contentionFactor" and "queryType" options.

Voir aussi

  • MongoDB\Driver\ClientEncryption::decrypt() - Decrypt a value


Encrypts a match or aggregate expression

  • « MongoDB\Driver\ClientEncryption::encrypt
  • MongoDB\Driver\ClientEncryption::getKey »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Encrypts a match or aggregate expression

MongoDB\Driver\ClientEncryption::encryptExpression

(mongodb >=1.16.0)

MongoDB\Driver\ClientEncryption::encryptExpression — Encrypts a match or aggregate expression

Description

final public MongoDB\Driver\ClientEncryption::encryptExpression(array|object $expr, ?array $options = null): object

Encrypts a match or aggregate expression to query a range index.

To query with a range encrypted payload, the MongoDB\Driver\Manager must be configured with the "autoEncryption" driver option. The "bypassQueryAnalysis" auto encryption option may be true. The "bypassAutoEncryption" auto encryption option must be false.

Note:

The range algorithm is experimental only. It is not intended for public use.

The PHP driver does not yet support range queries for decimal128 BSON field types.

Liste de paramètres

expr

The match or aggregate expression to be encrypted. Expressions must use at least one of the $gt, $gte, $lt, or $lte operators. A top-level $and operator is required, even if only a single comparison operator is used.

An example of a supported match expression (applies to queries and the $match aggregation stage) is as follows:

[
    '$and' => [
        [ '<field>' => [ '$gt'  => '<value1>' ] ],
        [ '<field>' => [ '$lte' => '<value2>' ] ],
    ],
]

An example of a supported aggregate expression is as follows:

[
    '$and' => [
        [ '$gte' => [ '<fieldPath>', '<value1>' ] ],
        [ '$lt'  => [ '<fieldPath>', '<value2>' ] ],
    ],
]
options

Options de chiffrement
Option Type Description
algorithm string

L'algorithme de chiffrement à utiliser. Cette option est requise. Spécifiez l'une des constantes suivantes de ClientEncryption :

  • MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_DETERMINISTIC
  • MongoDB\Driver\ClientEncryption::AEAD_AES_256_CBC_HMAC_SHA_512_RANDOM
  • MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED
  • MongoDB\Driver\ClientEncryption::ALGORITHM_UNINDEXED
  • MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW
contentionFactor int

Le facteur de contention pour évaluer les requêtes avec des charges utiles chiffrées indexées.

Cette option s'applique uniquement et ne peut être spécifiée que lorsque algorithm est MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED ou MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW.

keyAltName string

Identifie un document de collection de coffre à clés par keyAltName. Cette option est mutuellement exclusive avec keyId et l'une des deux est requise.

keyId MongoDB\BSON\Binary

Identifie une clé de données par _id. La valeur est un UUID (sous-type binaire 4). Cette option est mutuellement exclusive avec keyAltName et l'une des deux est requise.

queryType string

Le type de requête pour évaluer les requêtes avec des charges utiles chiffrées indexées. Spécifiez l'une des constantes suivantes de ClientEncryption :

  • MongoDB\Driver\ClientEncryption::QUERY_TYPE_EQUALITY
  • MongoDB\Driver\ClientEncryption::QUERY_TYPE_RANGE_PREVIEW

Cette option s'applique uniquement et ne peut être spécifiée que lorsque algorithm est MongoDB\Driver\ClientEncryption::ALGORITHM_INDEXED ou MongoDB\Driver\ClientEncryption::ALGORITHM_RANGE_PREVIEW.

rangeOpts array

Options d'index pour un champ de chiffrement interrogeable prenant en charge les requêtes "rangePreview". Les options ci-dessous doivent correspondre aux valeurs définies dans encryptedFields de la collection cible. Pour les types de champ BSON double et decimal128, min, max et precision doivent être tous définis ou tous non définis.

Options d'index de plage
Option | Type | Description
min | mixed | Requis si precision est défini.
max | mixed | Requis si precision est défini.
sparsity | int | Requis.
precision | int | Facultatif. Ne peut être défini que pour les types de champ BSON double ou decimal128.

Valeurs de retour

Returns the encrypted expression as an object.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.
  • Throws MongoDB\Driver\Exception\EncryptionException if an error occurs while encrypting the expression

Voir aussi

  • MongoDB\Driver\Manager::__construct() - Create new MongoDB Manager


Gets a key document

  • « MongoDB\Driver\ClientEncryption::encryptExpression
  • MongoDB\Driver\ClientEncryption::getKeyByAltName »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Gets a key document

MongoDB\Driver\ClientEncryption::getKey

(mongodb >=1.15.0)

MongoDB\Driver\ClientEncryption::getKey — Gets a key document

Description

final public MongoDB\Driver\ClientEncryption::getKey(MongoDB\BSON\Binary $keyId): ?object

Finds a single key document in the key vault collection with the given UUID keyId.

Liste de paramètres

keyId

A MongoDB\BSON\Binary instance with subtype 4 (UUID) identifying the key document.

Valeurs de retour

Returns the key document, or null if no document matched.

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.


Gets a key document by an alternate name

  • « MongoDB\Driver\ClientEncryption::getKey
  • MongoDB\Driver\ClientEncryption::getKeys »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Gets a key document by an alternate name

MongoDB\Driver\ClientEncryption::getKeyByAltName

(mongodb >=1.15.0)

MongoDB\Driver\ClientEncryption::getKeyByAltName — Gets a key document by an alternate name

Description

final public MongoDB\Driver\ClientEncryption::getKeyByAltName(string $keyAltName): ?object

Finds a single key document in the key vault collection with the given alternate name keyAltName.

Liste de paramètres

keyAltName

Alternate name for the key document.

Valeurs de retour

Returns the key document, or null if no document matched.

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.

Voir aussi

  • MongoDB\Driver\ClientEncryption::addKeyAltName() - Adds an alternate name to a key document
  • MongoDB\Driver\ClientEncryption::removeKeyAltName() - Removes an alternate name from a key document


Gets all key documents

  • « MongoDB\Driver\ClientEncryption::getKeyByAltName
  • MongoDB\Driver\ClientEncryption::removeKeyAltName »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Gets all key documents

MongoDB\Driver\ClientEncryption::getKeys

(mongodb >=1.15.0)

MongoDB\Driver\ClientEncryption::getKeys — Gets all key documents

Description

final public MongoDB\Driver\ClientEncryption::getKeys(): MongoDB\Driver\Cursor

Finds all key documents in the key vault collection.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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.


Removes an alternate name from a key document

  • « MongoDB\Driver\ClientEncryption::getKeys
  • MongoDB\Driver\ClientEncryption::rewrapManyDataKey »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Removes an alternate name from a key document

MongoDB\Driver\ClientEncryption::removeKeyAltName

(mongodb >=1.15.0)

MongoDB\Driver\ClientEncryption::removeKeyAltName — Removes an alternate name from a key document

Description

final public MongoDB\Driver\ClientEncryption::removeKeyAltName(MongoDB\BSON\Binary $keyId, string $keyAltName): ?object

Removes keyAltName from the set of alternate names for the key document with the given UUID keyId.

Liste de paramètres

keyId

A MongoDB\BSON\Binary instance with subtype 4 (UUID) identifying the key document.

keyAltName

Alternate name to remove from the key document.

Valeurs de retour

Returns the previous version of the key document, or null if no document matched.

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.

Voir aussi

  • MongoDB\Driver\ClientEncryption::addKeyAltName() - Adds an alternate name to a key document
  • MongoDB\Driver\ClientEncryption::getKeyByAltName() - Gets a key document by an alternate name


Rewraps data keys

  • « MongoDB\Driver\ClientEncryption::removeKeyAltName
  • MongoDB\Driver\ServerApi »
  • PHP Manual
  • MongoDB\Driver\ClientEncryption
  • Rewraps data keys

MongoDB\Driver\ClientEncryption::rewrapManyDataKey

(mongodb >=1.15.0)

MongoDB\Driver\ClientEncryption::rewrapManyDataKey — Rewraps data keys

Description

final public MongoDB\Driver\ClientEncryption::rewrapManyDataKey(array|object $filter, ?array $options = null): object

Rewraps (i.e. decrypts and re-encrypts) zero or more data keys in the key vault collection that match the given filter.

If the "provider" option is not specified, matching data keys will be rewrapped with their current KMS provider. Otherwise, matching data keys will be re-encrypted according to the specified "provider" and "masterKey" options.

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.

Note: Lors de l'évaluation des critères de requête, MongoDB compare les type et les valeurs en fonction de leur propre » règles de comparaison pour les types BSON, qui diffère des règles de comparaison et de manipulation des type de PHP. Lors de la correspondance d'un type BSON spcécial, les critères de requête doivent utiliser la classe BSON (ex. : utiliser MongoDB\BSON\ObjectId pour correspondre à un » ObjectId).

options

RewrapManyDataKey options
Option Type Description
provider string

The KMS provider (e.g. "local", "aws") that will be used to re-encrypt the matched data keys.

If a KMS provider is not specified, matched data keys will be re-encrypted with their current KMS provider.

masterKey array

The masterKey identifies a KMS-specific key used to encrypt the new data key. This option should not be specified without the "provider" option. This option is required if "provider" is specified and not "local".

Options du fournisseur "aws"
Option | Type | Description
region | string | Requis.
key | string | Requis. Le nom de ressource Amazon (ARN) de la clé maîtresse du client AWS (CMK).
endpoint | string | Optionnel. Un identifiant d'hôte alternatif pour envoyer les demandes KMS. Peut inclure le numéro de port.

Options du fournisseur "azure"
Option | Type | Description
keyVaultEndpoint | string | Requis. Hôte avec port optionnel (par exemple, "example.vault.azure.net").
keyName | string | Requis.
keyVersion | string | Optionnel. Une version spécifique de la clé nommée. Par défaut, la version primaire de la clé est utilisée.

Options du fournisseur "gcp"
Option | Type | Description
projectId | string | Requis.
location | string | Requis.
keyRing | string | Requis.
keyName | string | Requis.
keyVersion | string | Optionnel. Une version spécifique de la clé nommée. Par défaut, la version primaire de la clé est utilisée.
endpoint | string | Optionnel. Hôte avec port optionnel. La valeur par défaut est "cloudkms.googleapis.com".

Options du fournisseur "kmip"
Option | Type | Description
keyId | string | Optionnel. Identifiant unique d'un objet géré de 96 octets de données secrètes KMIP. S'il n'est pas spécifié, le pilote crée un objet géré aléatoire de 96 octets de données secrètes KMIP.
endpoint | string | Optionnel. Hôte avec port optionnel.

Valeurs de retour

Returns an object, which will have an optional bulkWriteResult property containing the result of the internal bulkWrite operation as an object. If no data keys matched the filter or the write was unacknowledged, the bulkWriteResult property will be null.

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\EncryptionException if an error occurs while decrypting or re-encrypting a data key.
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors.


The MongoDB\Driver\ServerApi class

(mongodb >=1.10.0)

Introduction

Synopsis de la classe

final class MongoDB\Driver\ServerApi implements MongoDB\BSON\Serializable, Serializable {
/* Constantes */
const string MongoDB\Driver\ServerAPI::V1 = "1";
/* Méthodes */
final public bsonSerialize(): stdClass
final public __construct(string $version, ?bool $strict = null, ?bool $deprecationErrors = null)
final public serialize(): string
final public unserialize(string $data): void
}

Constantes pré-définies

MongoDB\Driver\ServerApi::V1

Server API version 1.

Exemples

Exemple #1 Declare an API version on a manager

<?php

use MongoDB\Driver\Manager;
use MongoDB\Driver\ServerApi;

$v1 = new ServerApi(ServerApi::v1);
$manager = new Manager('mongodb://localhost:27017', [], ['serverApi' => $v1]);

$command = new MongoDB\Driver\Command(['buildInfo' => 1]);

try {
$cursor = $manager->executeCommand('admin', $command);
} catch(MongoDB\Driver\Exception $e) {
echo $e->getMessage(), "\n";
exit;
}

/* The buildInfo command returns a single result document, so we need to access
* the first result in the cursor. */
$buildInfo = $cursor->toArray()[0];

echo $buildInfo->version, "\n";

?>

L'exemple ci-dessus va afficher :

4.9.0-alpha7-49-gb968ca0

Exemple #2 Declare a strict API version on a manager

The following example sets the strict flag, which tells the server to reject any command that is not part of the declared API version. This results in an error when running the buildInfo command.

<?php

use MongoDB\Driver\Manager;
use MongoDB\Driver\ServerApi;

$v1 = new ServerApi(ServerApi::v1, true);
$manager = new Manager('mongodb://localhost:27017', [], ['serverApi' => $v1]);

$command = new MongoDB\Driver\Command(['buildInfo' => 1]);

try {
$cursor = $manager->executeCommand('admin', $command);
} catch(MongoDB\Driver\Exception $e) {
echo $e->getMessage(), "\n";
exit;
}

/* The buildInfo command returns a single result document, so we need to access
* the first result in the cursor. */
$buildInfo = $cursor->toArray()[0];

echo $buildInfo->version, "\n";

?>

L'exemple ci-dessus va afficher :

Provided apiStrict:true, but the command buildInfo is not in API Version 1

Sommaire

  • MongoDB\Driver\ServerApi::bsonSerialize — Returns an object for BSON serialization
  • MongoDB\Driver\ServerApi::__construct — Create a new ServerApi instance
  • MongoDB\Driver\ServerApi::serialize — Serialize a ServerApi
  • MongoDB\Driver\ServerApi::unserialize — Unserialize a ServerApi


Returns an object for BSON serialization

  • « MongoDB\Driver\ServerApi
  • MongoDB\Driver\ServerApi::__construct »
  • PHP Manual
  • MongoDB\Driver\ServerApi
  • Returns an object for BSON serialization

MongoDB\Driver\ServerApi::bsonSerialize

(mongodb >=1.10.0)

MongoDB\Driver\ServerApi::bsonSerialize — Returns an object for BSON serialization

Description

final public MongoDB\Driver\ServerApi::bsonSerialize(): stdClass

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns an object for serializing the ServerApi as BSON.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\BSON\Serializable::bsonSerialize() - Fournit un tableau ou un document à sérialiser en tant que BSON


Create a new ServerApi instance

  • « MongoDB\Driver\ServerApi::bsonSerialize
  • MongoDB\Driver\ServerApi::serialize »
  • PHP Manual
  • MongoDB\Driver\ServerApi
  • Create a new ServerApi instance

MongoDB\Driver\ServerApi::__construct

(mongodb >=1.10.0)

MongoDB\Driver\ServerApi::__construct — Create a new ServerApi instance

Description

final public MongoDB\Driver\ServerApi::__construct(string $version, ?bool $strict = null, ?bool $deprecationErrors = null)

Creates a new MongoDB\Driver\ServerApi instance used to declare an API version when creating a MongoDB\Driver\Manager.

Liste de paramètres

version

A server API version.

Supported API versions are provided as constants in MongoDB\Driver\ServerApi. The only supported API version is MongoDB\Driver\ServerApi::V1.

strict

If the strict parameter is set to true, the server will yield an error for any command that is not part of the specified API version. If no value is provided, the server default value (false) is used.

deprecationErrors

If the deprecationErrors parameter is set to true, the server will yield an error when using a command that is deprecated in the specified API version. If no value is provided, the server default value (false) is used.


Serialize a ServerApi

  • « MongoDB\Driver\ServerApi::__construct
  • MongoDB\Driver\ServerApi::unserialize »
  • PHP Manual
  • MongoDB\Driver\ServerApi
  • Serialize a ServerApi

MongoDB\Driver\ServerApi::serialize

(mongodb >=1.10.0)

MongoDB\Driver\ServerApi::serialize — Serialize a ServerApi

Description

final public MongoDB\Driver\ServerApi::serialize(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the serialized representation of the MongoDB\Driver\ServerApi.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\Driver\ServerApi::unserialize() - Unserialize a ServerApi
  • serialize() - Génère une représentation stockable d'une valeur
  • Serializing Objects


Unserialize a ServerApi

  • « MongoDB\Driver\ServerApi::serialize
  • MongoDB\Driver\WriteConcern »
  • PHP Manual
  • MongoDB\Driver\ServerApi
  • Unserialize a ServerApi

MongoDB\Driver\ServerApi::unserialize

(mongodb >=1.10.0)

MongoDB\Driver\ServerApi::unserialize — Unserialize a ServerApi

Description

final public MongoDB\Driver\ServerApi::unserialize(string $data): void

Liste de paramètres

data

The serialized MongoDB\Driver\ServerApi.

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.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Voir aussi

  • MongoDB\Driver\ServerApi::serialize() - Serialize a ServerApi
  • unserialize() - Crée une variable PHP à partir d'une valeur sérialisée
  • Serializing Objects


La classe MongoDB\Driver\WriteConcern

(mongodb >=1.0.0)

Introduction

MongoDB\Driver\WriteConcern décrit le niveau d'accusé de réception demandé par MongoDB pour les opérations écriture à un mongod autonome ou à des ensembles de réplicas ou à des clusters fragmentés. Dans les clusters fragmentés, les instances de mongos transmettent le contrôle d'écriture aux fragments.

Synopsis de la classe

final class MongoDB\Driver\WriteConcern implements MongoDB\BSON\Serializable, Serializable {
/* Constantes */
const string MAJORITY = "majority";
/* Méthodes */
final public bsonSerialize(): stdClass
final public __construct(string|int $w, ?int $wtimeout = null, ?bool $journal = null)
final public getJournal(): ?bool
final public getW(): string|int|null
final public getWtimeout(): int
final public isDefault(): bool
final public serialize(): string
final public unserialize(string $data): 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é.

Historique

Version | Description
PECL mongodb 1.7.0 | Implémente Serializable.
PECL mongodb 1.2.0 | Implémente MongoDB\BSON\Serializable.

Sommaire

  • MongoDB\Driver\WriteConcern::bsonSerialize — Returns an object for BSON serialization
  • MongoDB\Driver\WriteConcern::__construct — Construit un WriteConcern
  • 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::isDefault — Checks if this is the default write concern
  • MongoDB\Driver\WriteConcern::serialize — Serialize a WriteConcern
  • MongoDB\Driver\WriteConcern::unserialize — Unserialize a WriteConcern


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 MongoDB\Driver\WriteConcern::bsonSerialize(): stdClass

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));

?>

Résultat de l'exemple ci-dessus est 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));

?>

Résultat de l'exemple ci-dessus est 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() - Fournit un tableau ou un document à sérialiser en tant que BSON
  • » Write Concern reference


Construit un WriteConcern

  • « MongoDB\Driver\WriteConcern::bsonSerialize
  • MongoDB\Driver\WriteConcern::getJournal »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Construit un WriteConcern

MongoDB\Driver\WriteConcern::__construct

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcern::__construct — Construit un WriteConcern

Description

final public MongoDB\Driver\WriteConcern::__construct(string|int $w, ?int $wtimeout = null, ?bool $journal = null)

Construit un nouveau MongoDB\Driver\WriteConcern, qui est un objet de valeur immuable.

Liste de paramètres

w

Préoccupation d'écriture
Valeur | Description
1 | Demande l'accusé de réception que l'opération d'écriture s'est propagée au mongod autonome ou au principal dans un jeu de réplicas. Il s'agit de la préoccupation d'écriture par défaut pour MongoDB.
0 | Ne demande aucun accusé de réception de l'opération d'écriture. Toutefois, cela peut renvoyer des informations sur les exceptions de socket et les erreurs de mise en réseau à l'application.
<entier supérieur à 1> | Les nombres supérieurs à 1 sont valides uniquement pour les jeux de réplicas pour demander l'accusé de réception à partir du nombre spécifié de membres, y compris le principal.
MongoDB\Driver\WriteConcern::MAJORITY

Demande l'accusé de réception que les opérations d'écriture se sont propagées à la majorité des nœuds votants, y compris le principal, et ont été écrites dans le journal sur disque pour ces nœuds.

Avant MongoDB 3.0, il s'agit de la majorité des membres du jeu de réplicas (et pas seulement des nœuds votants).

string | Une valeur de chaîne est interprétée comme un jeu de balises. Demande l'accusé de réception que les opérations d'écriture se sont propagées à un membre de jeu de réplicas avec la balise spécifiée.

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.

Si spécifié, wtimeout doit être un entier signé 64 bits supérieur ou égal à zéro.

Délai d'attente maximal des préoccupations d'écriture
Valeur | Description
0 | Bloc indéfiniement. C'est le comportement par défaut.
<entier supérieur à 0> | Nombre de millisecondes à attendre avant de retourner.

journal

Attente avant que mongod n'applique l'écriture au journal.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.
  • Lève une exception MongoDB\Driver\Exception\InvalidArgumentException si w est invalide ou wtimeout est negatif ou supérieure aux limites d'un entier signé 32 bits.

Historique

Version | Description
PECL mongodb 1.7.0 | Le paramètre wTimeout accepte désormais des valeurs 64-bit.

Exemples

Exemple #1 Exemple avec MongoDB\Driver\WriteConcern::__construct()

<?php

/* Demande une confirmation des requêtes en écriture pour la majorité des nœuds
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);

?>

Voir aussi

  • » Write Concern reference


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 MongoDB\Driver\WriteConcern::getJournal(): ?bool

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 MongoDB\Driver\WriteConcern::getW(): string|int|null

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\WriteConcern::isDefault »
  • 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 MongoDB\Driver\WriteConcern::getWtimeout(): int

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.

Historique

Version | Description
PECL mongodb 1.7.0 | On 32-bit systems, this method will always truncate the wTimeout value if it exceeds the 32-bit range. In that case, a warning will be emitted.

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


Checks if this is the default write concern

  • « MongoDB\Driver\WriteConcern::getWtimeout
  • MongoDB\Driver\WriteConcern::serialize »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Checks if this is the default write concern

MongoDB\Driver\WriteConcern::isDefault

(mongodb >=1.3.0)

MongoDB\Driver\WriteConcern::isDefault — Checks if this is the default write concern

Description

final public MongoDB\Driver\WriteConcern::isDefault(): bool

Returns whether this is the default write concern (i.e. no options are specified). This method is primarily intended to be used in conjunction with MongoDB\Driver\Manager::getWriteConcern() to determine whether the Manager has been constructed without any write concern options.

The driver will not include a default write concern in its write operations (e.g. MongoDB\Driver\Manager::executeBulkWrite()) in order to allow the server to apply its own default, which may have been » modified. Libraries that access the Manager's write concern to include it in their own write commands should use this method to ensure that default write concerns are left unset.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns true if this is the default write concern 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\WriteConcern::isDefault() example

<?php

$wc = new MongoDB\Driver\WriteConcern(1);
var_dump($wc->isDefault());

$manager = new MongoDB\Driver\Manager('mongodb://127.0.0.1/?w=majority');
$wc = $manager->getWriteConcern();
var_dump($wc->isDefault());

$manager = new MongoDB\Driver\Manager('mongodb://127.0.0.1/');
$wc = $manager->getWriteConcern();
var_dump($wc->isDefault());

?>

L'exemple ci-dessus va afficher :

bool(false)
bool(false)
bool(true)

Voir aussi

  • MongoDB\Driver\Manager::getWriteConcern() - Return the WriteConcern for the Manager
  • » Modify Default Write Concern in the MongoDB manual
  • » Write Concern reference


Serialize a WriteConcern

  • « MongoDB\Driver\WriteConcern::isDefault
  • MongoDB\Driver\WriteConcern::unserialize »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Serialize a WriteConcern

MongoDB\Driver\WriteConcern::serialize

(mongodb >=1.7.0)

MongoDB\Driver\WriteConcern::serialize — Serialize a WriteConcern

Description

final public MongoDB\Driver\WriteConcern::serialize(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the serialized representation of the MongoDB\Driver\WriteConcern.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\Driver\WriteConcern::unserialize() - Unserialize a WriteConcern
  • serialize() - Génère une représentation stockable d'une valeur
  • Serializing Objects


Unserialize a WriteConcern

  • « MongoDB\Driver\WriteConcern::serialize
  • MongoDB\Driver\ReadPreference »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Unserialize a WriteConcern

MongoDB\Driver\WriteConcern::unserialize

(mongodb >=1.7.0)

MongoDB\Driver\WriteConcern::unserialize — Unserialize a WriteConcern

Description

final public MongoDB\Driver\WriteConcern::unserialize(string $data): void

Liste de paramètres

data

The serialized MongoDB\Driver\WriteConcern.

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.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Voir aussi

  • MongoDB\Driver\WriteConcern::serialize() - Serialize a WriteConcern
  • unserialize() - Crée une variable PHP à partir d'une valeur sérialisée
  • Serializing Objects


La classe MongoDB\Driver\ReadPreference

(mongodb >=1.0.0)

Introduction

Synopsis de la classe

final class MongoDB\Driver\ReadPreference implements MongoDB\BSON\Serializable, Serializable {
/* Constantes */
const int RP_PRIMARY = 1;
const int RP_PRIMARY_PREFERRED = 5;
const int RP_SECONDARY = 2;
const int RP_SECONDARY_PREFERRED = 6;
const int RP_NEAREST = 10;
const string PRIMARY = primary;
const string PRIMARY_PREFERRED = primaryPreferred;
const string SECONDARY = secondary;
const string SECONDARY_PREFERRED = secondaryPreferred;
const string NEAREST = nearest;
const int NO_MAX_STALENESS = -1;
const int SMALLEST_MAX_STALENESS_SECONDS = 90;
/* Méthodes */
final public bsonSerialize(): stdClass
final public __construct(string|int $mode, ?array $tagSets = null, ?array $options = null)
final public getHedge(): ?object
final public getMaxStalenessSeconds(): int
final public getMode(): int
final public getModeString(): string
final public getTagSets(): array
final public serialize(): string
final public unserialize(string $data): void
}

Constantes pré-définies

MongoDB\Driver\ReadPreference::RP_PRIMARY

Toutes les opérations lues à partir du jeu de réplicas actuel primaire. Il s'agit de la préférence de lecture par défaut pour MongoDB.

MongoDB\Driver\ReadPreference::RP_PRIMARY_PREFERRED

Dans la plupart des situations, les opérations sont lues à partir du primaire, mais s'il n'est pas disponible, les opérations sont lues à partir de membres secondaires.

MongoDB\Driver\ReadPreference::RP_SECONDARY

Toutes les opérations sont lues à partir des membres secondaires du jeu de réplicas.

MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED

Dans la plupart des cas, les opérations sont lues par des membres secondaires, mais si aucun membre secondaire n'est disponible, les opérations sont lues à partir du primaire.

MongoDB\Driver\ReadPreference::RP_NEAREST

Les opérations sont lues à partir du membre du jeu de réplicas avec la latence de réseau la moins élevée, quel que soit le type du membre.

MongoDB\Driver\ReadPreference::PRIMARY

Toutes les opérations lues à partir du jeu de réplicas actuel primaire. Il s'agit de la préférence de lecture par défaut pour MongoDB.

MongoDB\Driver\ReadPreference::PRIMARY_PREFERRED

Dans la plupart des situations, les opérations sont lues à partir du primaire, mais s'il n'est pas disponible, les opérations sont lues à partir de membres secondaires.

MongoDB\Driver\ReadPreference::SECONDARY

Toutes les opérations sont lues à partir des membres secondaires du jeu de réplicas.

MongoDB\Driver\ReadPreference::SECONDARY_PREFERRED

Dans la plupart des cas, les opérations sont lues par des membres secondaires, mais si aucun membre secondaire n'est disponible, les opérations sont lues à partir du primaire.

MongoDB\Driver\ReadPreference::NEAREST

Les opérations sont lues à partir du membre du jeu de réplicas avec la latence de réseau la moins élevée, quel que soit le type du membre.

MongoDB\Driver\ReadPreference::NO_MAX_STALENESS

La valeur par défaut de l'option "maxStalenessSeconds" est de ne spécifier aucune limite sur l'obsolescence maximale, ce qui signifie que le pilote ne prendra pas en compte le décalage d'un secondaire lors du choix de l'endroit où diriger une opération de lecture.

MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS

La valeur minimale de l'option "maxStalenessSeconds" est de 90 secondes. Le pilote estime l'obsolescence des secondes en vérifiant périodiquement la dernière date d'écriture de chaque membre du jeu de réplicas. Comme ces contrôles sont peu fréquents, l'estimation de l'obsolescence est grossière. Ainsi, le pilote ne peut pas appliquer une valeur d'obsolescence maximale inférieure à 90 secondes.

Historique

Version | Description
PECL mongodb 1.7.0 | Ajout des constantes MongoDB\Driver\ReadPreference::PRIMARY, MongoDB\Driver\ReadPreference::PRIMARY_PREFERRED, MongoDB\Driver\ReadPreference::SECONDARY, MongoDB\Driver\ReadPreference::SECONDARY_PREFERRED, MongoDB\Driver\ReadPreference::NEAREST. Implémente Serializable.
PECL mongodb 1.2.0 | Ajout des constantes MongoDB\Driver\ReadPreference::NO_MAX_STALENESS et MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS. Implémente MongoDB\BSON\Serializable.

Sommaire

  • MongoDB\Driver\ReadPreference::bsonSerialize — Returns an object for BSON serialization
  • MongoDB\Driver\ReadPreference::__construct — Créer un nouveau ReadPreference
  • MongoDB\Driver\ReadPreference::getHedge — Returns the ReadPreference's "hedge" option
  • MongoDB\Driver\ReadPreference::getMaxStalenessSeconds — Returns the ReadPreference's "maxStalenessSeconds" option
  • MongoDB\Driver\ReadPreference::getMode — Returns the ReadPreference's "mode" option
  • MongoDB\Driver\ReadPreference::getModeString — Returns the ReadPreference's "mode" option as a string
  • MongoDB\Driver\ReadPreference::getTagSets — Returns the ReadPreference's "tagSets" option
  • MongoDB\Driver\ReadPreference::serialize — Serialize a ReadPreference
  • MongoDB\Driver\ReadPreference::unserialize — Unserialize a ReadPreference


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 MongoDB\Driver\ReadPreference::bsonSerialize(): stdClass

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));

?>

Résultat de l'exemple ci-dessus est 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));

?>

Résultat de l'exemple ci-dessus est 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" }, {  } ] }

Exemple #3 MongoDB\Driver\ReadPreference::bsonSerialize() with secondary read preference and max staleness

<?php

$rp = new MongoDB\Driver\ReadPreference(
MongoDB\Driver\ReadPreference::RP_SECONDARY,
null,
['maxStalenessSeconds' => 120]
);
var_dump($rp->bsonSerialize());

echo "\n", MongoDB\BSON\toJSON(MongoDB\BSON\fromPHP($rp));

?>

Résultat de l'exemple ci-dessus est similaire à :

object(stdClass)#2 (2) {
  ["mode"]=>
  string(9) "secondary"
  ["maxStalenessSeconds"]=>
  int(120)
}

{ "mode" : "secondary", "maxStalenessSeconds" : 120 }

Voir aussi

  • MongoDB\BSON\Serializable::bsonSerialize() - Fournit un tableau ou un document à sérialiser en tant que BSON
  • » Read Preference reference


Créer un nouveau ReadPreference

  • « MongoDB\Driver\ReadPreference::bsonSerialize
  • MongoDB\Driver\ReadPreference::getHedge »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Créer un nouveau ReadPreference

MongoDB\Driver\ReadPreference::__construct

(mongodb >=1.0.0)

MongoDB\Driver\ReadPreference::__construct — Créer un nouveau ReadPreference

Description

final public MongoDB\Driver\ReadPreference::__construct(string|int $mode, ?array $tagSets = null, ?array $options = null)

Construit un nouveau MongoDB\Driver\ReadPreference, qui est un objet de valeur immuable.

Liste de paramètres

mode

Mode de préférence de lecture
Valeur Description
MongoDB\Driver\ReadPreference::RP_PRIMARY ou "primary"

Toutes les opérations lues à partir du jeu de réplicas actuel primaire. Il s'agit de la préférence de lecture par défaut pour MongoDB.

MongoDB\Driver\ReadPreference::RP_PRIMARY_PREFERRED ou "primaryPreferred"

Dans la plupart des situations, les opérations sont lues à partir du primaire, mais si il n'est pas disponible, les opérations sont lues à partir d'un membre secondaire.

MongoDB\Driver\ReadPreference::RP_SECONDARY ou "secondary"

Toutes les opérations sont lues à partir des membres secondaires du jeu de réplicas.

MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED ou "secondaryPreferred"

Dans la plupart des cas, les opérations sont lues par des membres secondaires, mais si aucun membre secondaire n'est disponible, les opérations sont lues à partir du primaire.

MongoDB\Driver\ReadPreference::RP_NEAREST ou "nearest"

Opérations lues à partir du membre du jeu de réplicas ayant la latence réseau la moins élevée, quel que soit le type du membre.

tagSets

Les jeux de tag vous permettent de cibler des opérations de lecture sur des membres spécifiques d'un jeu de réplicas. Ce paramètre doit être un tableau de tableaux associatifs, qui contiennent chacun zéro ou plusieurs paires clé/valeur. Lors de la sélection d'un serveur pour une opération de lecture, le pilote tente de sélectionner un nœud comportant toutes les balises d'un ensemble (c'est-à-dire le tableau associatif de paires clé/valeur). Si la sélection échoue, le pilote essaiera les jeux suivants. Un jeu de balises vide (array()) correspond à n'importe quel nœud et peut être utilisé comme secours.

Les tags ne sont pas compatibles avec le mode MongoDB\Driver\ReadPreference::RP_PRIMARY et, en général, s'appliquent uniquement lors de la sélection d'un membre secondaire d'un jeu pour une opération de lecture. Toutefois, le mode MongoDB\Driver\ReadPreference::RP_NEAREST, lorsqu'il est combiné avec un jeu de balises, sélectionne le membre correspondant avec la latence réseau la plus basse. Ce membre peut être primaire ou secondaire.

options

options
Option Type Description
hedge object|array

Spécifie si l'on doit utiliser ou non » les lectures croisées, qui sont supportés depuis MongoDB 4.4+ pour les requêtes partagées.

Le serveur des lectures croisées est disponible pour toutes les lectures des références non primaires, et est activé par défaut lors de l'utilisation du mode "nearest". Cette option permet d'activer explicitement le serveur des lectures croisées pour les lectures des références non primaires en spécifiant ['enabled' => true], ou de désactiver explicitement le serveur des lectures croisées pour les lectures des références "nearest" en spécifiant ['enabled' => false].

maxStalenessSeconds entier

Spécifie un décalage de réplication maximal, ou "obsolescence", pour les lectures des secondaires. Lorsque l'obsolescence estimée d'un secondaire dépasse cette valeur, le pilote cesse de l'utiliser pour les opérations de lecture.

Si elle est spécifiée, l'obsolescence maximale doit être un entier signé 32 bits supérieur ou égal à MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS.

Par défaut, MongoDB\Driver\ReadPreference::NO_MAX_STALENESS, ce qui signifie que le pilote ne prendra pas en compte le décalage d'un secondaire lors du choix de l'endroit où diriger une opération de lecture.

Cette option n'est pas compatible avec le mode MongoDB\Driver\ReadPreference::RP_PRIMARY. La spécification d'une obsolescence maximale requiert également que toutes les instances MongoDB du déploiement utilisent MongoDB 3.4+. Une exception sera levée au moment de l'exécution si toutes les instances de MongoDB dans le déploiement sont d'une version de serveur plus ancienne.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.
  • Lève une exception MongoDB\Driver\Exception\InvalidArgumentException si mode est incorrect.
  • Lève une exception MongoDB\Driver\Exception\InvalidArgumentException si tagSets est fourni pour une préférence de lecture primaire ou est incorrect (c.-à-d. pas un tableau de zéro ou plus de documents).
  • Lève une exception MongoDB\Driver\Exception\InvalidArgumentException si l'option "maxStalenessSeconds" est fournie pour une préférence de lecture primaire ou est hors de la plage.

Historique

Version | Description
PECL mongodb 1.8.0 | Ajout de l'option "hedge".
PECL mongodb 1.3.0 | L'argument mode accepte maintenant une valeur de chaîne, ce qui est compatible avec l'option URI "readPreference" pour MongoDB\Driver\Manager::__construct()
PECL mongodb 1.2.0 | Ajout d'un troisième argument d'options, qui prend en charge l'option "maxStalenessSeconds" .

Exemples

Exemple #1 Exemple avec MongoDB\Driver\ReadPreference::__construct()

<?php

/* Préférez un nœud secondaire mais retombez sur un primaire. */
var_dump(new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED));

/* Préférez un nœud dans le centre de données de New York avec la latence la plus basse. */
var_dump(new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_NEAREST, [['dc' => 'ny']]));

/* Nécessite un nœud secondaire dont le décalage de réplication se trouve dans les deux minutes */
var_dump(new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY, null, ['maxStalenessSeconds' => 120]));

/* Active explicitement le servuer des lectures croisées */
var_dump(new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY, null, ['hedge' => ['enabled' => true]]));
?>

Résultat de l'exemple ci-dessus est similaire à :

object(MongoDB\Driver\ReadPreference)#1 (1) {
  ["mode"]=>
  string(18) "secondaryPreferred"
}
object(MongoDB\Driver\ReadPreference)#1 (2) {
  ["mode"]=>
  string(7) "nearest"
  ["tags"]=>
  array(1) {
    [0]=>
    object(stdClass)#2 (1) {
      ["dc"]=>
      string(2) "ny"
    }
  }
}
object(MongoDB\Driver\ReadPreference)#1 (2) {
  ["mode"]=>
  string(9) "secondary"
  ["maxStalenessSeconds"]=>
  int(120)
}
object(MongoDB\Driver\ReadPreference)#1 (2) {
  ["mode"]=>
  string(9) "secondary"
  ["hedge"]=>
  object(stdClass)#1 (1) {
    ["enabled"]=>
    bool(true)
  }
}

Voir aussi

  • » Read Preference reference


Returns the ReadPreference's "hedge" option

  • « MongoDB\Driver\ReadPreference::__construct
  • MongoDB\Driver\ReadPreference::getMaxStalenessSeconds »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Returns the ReadPreference's "hedge" option

MongoDB\Driver\ReadPreference::getHedge

(mongodb >=1.8.0)

MongoDB\Driver\ReadPreference::getHedge — Returns the ReadPreference's "hedge" option

Description

final public MongoDB\Driver\ReadPreference::getHedge(): ?object

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the ReadPreference's "hedge" option.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • » Read Preference reference


Returns the ReadPreference's "maxStalenessSeconds" option

  • « MongoDB\Driver\ReadPreference::getHedge
  • MongoDB\Driver\ReadPreference::getMode »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Returns the ReadPreference's "maxStalenessSeconds" option

MongoDB\Driver\ReadPreference::getMaxStalenessSeconds

(mongodb >=1.2.0)

MongoDB\Driver\ReadPreference::getMaxStalenessSeconds — Returns the ReadPreference's "maxStalenessSeconds" option

Description

final public MongoDB\Driver\ReadPreference::getMaxStalenessSeconds(): int

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the ReadPreference's "maxStalenessSeconds" option. If no max staleness has been specified, MongoDB\Driver\ReadPreference::NO_MAX_STALENESS will be 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\ReadPreference::getMaxStalenessSeconds() example

<?php

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY);
var_dump($rp->getMaxStalenessSeconds());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY, null, [
'maxStalenessSeconds' => MongoDB\Driver\ReadPreference::NO_MAX_STALENESS,
]);
var_dump($rp->getMaxStalenessSeconds());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY, null, [
'maxStalenessSeconds' => MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS,
]);
var_dump($rp->getMaxStalenessSeconds());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY, null, [
'maxStalenessSeconds' => 1000,
]);
var_dump($rp->getMaxStalenessSeconds());

?>

L'exemple ci-dessus va afficher :

int(-1)
int(-1)
int(90)
int(1000)

Voir aussi

  • » Read Preference reference


Returns the ReadPreference's "mode" option

  • « MongoDB\Driver\ReadPreference::getMaxStalenessSeconds
  • MongoDB\Driver\ReadPreference::getModeString »
  • 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 MongoDB\Driver\ReadPreference::getMode(): int

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

  • MongoDB\Driver\ReadPreference::getModeString() - Returns the ReadPreference's "mode" option as a string
  • » Read Preference reference


Returns the ReadPreference's "mode" option as a string

  • « MongoDB\Driver\ReadPreference::getMode
  • MongoDB\Driver\ReadPreference::getTagSets »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Returns the ReadPreference's "mode" option as a string

MongoDB\Driver\ReadPreference::getModeString

(mongodb >=1.7.0)

MongoDB\Driver\ReadPreference::getModeString — Returns the ReadPreference's "mode" option as a string

Description

final public MongoDB\Driver\ReadPreference::getModeString(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the ReadPreference's "mode" option as a string.

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::getModeString() example

<?php

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::PRIMARY);
var_dump($rp->getModeString());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::PRIMARY_PREFERRED);
var_dump($rp->getModeString());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::SECONDARY);
var_dump($rp->getModeString());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::SECONDARY_PREFERRED);
var_dump($rp->getModeString());

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::NEAREST);
var_dump($rp->getModeString());

?>

L'exemple ci-dessus va afficher :

string(7) "primary"
string(16) "primaryPreferred"
string(9) "secondary"
string(18) "secondaryPreferred"
string(7) "nearest"

Voir aussi

  • MongoDB\Driver\ReadPreference::getMode() - Returns the ReadPreference's "mode" option
  • » Read Preference reference


Returns the ReadPreference's "tagSets" option

  • « MongoDB\Driver\ReadPreference::getModeString
  • MongoDB\Driver\ReadPreference::serialize »
  • 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 MongoDB\Driver\ReadPreference::getTagSets(): array

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


Serialize a ReadPreference

  • « MongoDB\Driver\ReadPreference::getTagSets
  • MongoDB\Driver\ReadPreference::unserialize »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Serialize a ReadPreference

MongoDB\Driver\ReadPreference::serialize

(mongodb >=1.7.0)

MongoDB\Driver\ReadPreference::serialize — Serialize a ReadPreference

Description

final public MongoDB\Driver\ReadPreference::serialize(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the serialized representation of the MongoDB\Driver\ReadPreference.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\Driver\ReadPreference::unserialize() - Unserialize a ReadPreference
  • serialize() - Génère une représentation stockable d'une valeur
  • Serializing Objects


Unserialize a ReadPreference

  • « MongoDB\Driver\ReadPreference::serialize
  • MongoDB\Driver\ReadConcern »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Unserialize a ReadPreference

MongoDB\Driver\ReadPreference::unserialize

(mongodb >=1.7.0)

MongoDB\Driver\ReadPreference::unserialize — Unserialize a ReadPreference

Description

final public MongoDB\Driver\ReadPreference::unserialize(string $data): void

Liste de paramètres

data

The serialized MongoDB\Driver\ReadPreference.

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.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Voir aussi

  • MongoDB\Driver\ReadPreference::serialize() - Serialize a ReadPreference
  • unserialize() - Crée une variable PHP à partir d'une valeur sérialisée
  • Serializing Objects


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 MongoDB 3.2 or later.

Synopsis de la classe

final class MongoDB\Driver\ReadConcern implements MongoDB\BSON\Serializable, Serializable {
/* Constantes */
const string AVAILABLE = "available";
const string LINEARIZABLE = "linearizable";
const string LOCAL = "local";
const string MAJORITY = "majority";
const string SNAPSHOT = "snapshot";
/* Méthodes */
final public bsonSerialize(): stdClass
final public __construct(?string $level = null)
final public getLevel(): ?string
final public isDefault(): bool
final public serialize(): string
final public unserialize(string $data): void
}

Constantes pré-définies

MongoDB\Driver\ReadConcern::AVAILABLE

Default for reads against secondaries when afterClusterTimeand level are unspecified.

The query returns the instance's most recent data. Provides no guarantee that the data has been written to a majority of the replica set members (i.e. may be rolled back).

For unsharded collections (including collections in a standalone deployment or a replica set deployment), "local" and "available" read concerns behave identically.

For a sharded cluster, "available" read concern provides greater tolerance for partitions since it does not wait to ensure consistency guarantees. However, a query with "available" read concern may return orphan documents if the shard is undergoing chunk migrations since the "available" read concern, unlike "local" read concern, does not contact the shard's primary nor the config servers for updated metadata.

MongoDB\Driver\ReadConcern::LINEARIZABLE

The query returns data that reflects all successful writes issued with a write concern of "majority" and acknowledged prior to the start of the read operation. For replica sets that run with writeConcernMajorityJournalDefault set to true, linearizable read concern returns data that will never be rolled back.

With writeConcernMajorityJournalDefault set to false, MongoDB will not wait for w: "majority" writes to be durable before acknowledging the writes. As such, "majority" write operations could possibly roll back in the event of a loss of a replica set member.

You can specify linearizable read concern for read operations on the primary only.

Linearizable read concern guarantees only apply if read operations specify a query filter that uniquely identifies a single document.

Astuce

Always use maxTimeMS with linearizable read concern in case a majority of data bearing members are unavailable. maxTimeMS ensures that the operation does not block indefinitely and instead ensures that the operation returns an error if the read concern cannot be fulfilled.

Linearizable read concern requires MongoDB 3.4.

MongoDB\Driver\ReadConcern::LOCAL

Default for reads against primary if level is unspecified and for reads against secondaries if level is unspecified but afterClusterTime is specified.

The query returns the instance's most recent data. Provides no guarantee that the data has been written to a majority of the replica set members (i.e. may be rolled back).

MongoDB\Driver\ReadConcern::MAJORITY

The query returns the instance's most recent data acknowledged as having been written to a majority of members in the replica set.

To use read concern level of "majority", replica sets must use WiredTiger storage engine and election protocol version 1.

MongoDB\Driver\ReadConcern::SNAPSHOT

Read concern "snapshot" is available for multi-document transactions, and starting in MongoDB 5.0, certain read operations outside of multi-document transactions.

If the transaction is not part of a causally consistent session, upon transaction commit with write concern "majority", the transaction operations are guaranteed to have read from a snapshot of majority-committed data.

If the transaction is part of a causally consistent session, upon transaction commit with write concern "majority", the transaction operations are guaranteed to have read from a snapshot of majority-committed data that provides causal consistency with the operation immediately preceding the transaction start.

Outside of multi-document transactions, read concern "snapshot" is available on primaries and secondaries for the following read operations: find, aggregate, and distinct (on unsharded collections). All other read commands prohibit "snapshot".

Historique

Version | Description
PECL mongodb 1.11.0 | Added the MongoDB\Driver\ReadConcern::SNAPSHOT constant.
PECL mongodb 1.7.0 | Implements Serializable.
PECL mongodb 1.4.0 | Added the MongoDB\Driver\ReadConcern::AVAILABLE constant.
PECL mongodb 1.2.0 | Added the MongoDB\Driver\ReadConcern::LINEARIZABLE constant. Implements MongoDB\BSON\Serializable.

Voir aussi

  • » Read Concern reference

Sommaire

  • MongoDB\Driver\ReadConcern::bsonSerialize — Returns an object for BSON serialization
  • MongoDB\Driver\ReadConcern::__construct — Create a new ReadConcern
  • MongoDB\Driver\ReadConcern::getLevel — Returns the ReadConcern's "level" option
  • MongoDB\Driver\ReadConcern::isDefault — Checks if this is the default read concern
  • MongoDB\Driver\ReadConcern::serialize — Serialize a ReadConcern
  • MongoDB\Driver\ReadConcern::unserialize — Unserialize a ReadConcern


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 MongoDB\Driver\ReadConcern::bsonSerialize(): stdClass

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));

?>

Résultat de l'exemple ci-dessus est 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));

?>

Résultat de l'exemple ci-dessus est similaire à :

object(stdClass)#2 (1) {
  ["level"]=>
  string(5) "local"
}

{ "level" : "local" }

Voir aussi

  • MongoDB\BSON\Serializable::bsonSerialize() - Fournit un tableau ou un document à sérialiser en tant que BSON
  • » Read Concern reference


Create a new ReadConcern

  • « MongoDB\Driver\ReadConcern::bsonSerialize
  • MongoDB\Driver\ReadConcern::getLevel »
  • PHP Manual
  • MongoDB\Driver\ReadConcern
  • Create a new ReadConcern

MongoDB\Driver\ReadConcern::__construct

(mongodb >=1.0.0)

MongoDB\Driver\ReadConcern::__construct — Create a new ReadConcern

Description

final public MongoDB\Driver\ReadConcern::__construct(?string $level = null)

Constructs a new MongoDB\Driver\ReadConcern, which is an immutable value object.

Liste de paramètres

level

The » read concern level. You may use, but are not limited to, one of the class constants.

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\ReadConcern::isDefault »
  • 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 MongoDB\Driver\ReadConcern::getLevel(): ?string

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


Checks if this is the default read concern

  • « MongoDB\Driver\ReadConcern::getLevel
  • MongoDB\Driver\ReadConcern::serialize »
  • PHP Manual
  • MongoDB\Driver\ReadConcern
  • Checks if this is the default read concern

MongoDB\Driver\ReadConcern::isDefault

(mongodb >=1.3.0)

MongoDB\Driver\ReadConcern::isDefault — Checks if this is the default read concern

Description

final public MongoDB\Driver\ReadConcern::isDefault(): bool

Returns whether this is the default read concern (i.e. no options are specified). This method is primarily intended to be used in conjunction with MongoDB\Driver\Manager::getReadConcern() to determine whether the Manager has been constructed without any read concern options.

The driver will not include a default read concern in its read operations (e.g. MongoDB\Driver\Manager::executeQuery()) in order order to allow the server to apply its own default. Libraries that access the Manager's read concern to include it in their own read commands should use this method to ensure that default read concerns are left unset.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns true if this is the default read concern 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\ReadConcern::isDefault() example

<?php

$rc = new MongoDB\Driver\ReadConcern(null);
var_dump($rc->isDefault());

$rc = new MongoDB\Driver\ReadConcern(MongoDB\Driver\ReadConcern::MAJORITY);
var_dump($rc->isDefault());

$manager = new MongoDB\Driver\Manager('mongodb://127.0.0.1/?readConcernLevel=majority');
$rc = $manager->getReadConcern();
var_dump($rc->isDefault());

$manager = new MongoDB\Driver\Manager('mongodb://127.0.0.1/');
$rc = $manager->getReadConcern();
var_dump($rc->isDefault());

?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)
bool(false)
bool(true)

Voir aussi

  • MongoDB\Driver\Manager::getReadConcern() - Return the ReadConcern for the Manager
  • » Read Concern reference


Serialize a ReadConcern

  • « MongoDB\Driver\ReadConcern::isDefault
  • MongoDB\Driver\ReadConcern::unserialize »
  • PHP Manual
  • MongoDB\Driver\ReadConcern
  • Serialize a ReadConcern

MongoDB\Driver\ReadConcern::serialize

(mongodb >=1.7.0)

MongoDB\Driver\ReadConcern::serialize — Serialize a ReadConcern

Description

final public MongoDB\Driver\ReadConcern::serialize(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the serialized representation of the MongoDB\Driver\ReadConcern.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\Driver\ReadConcern::unserialize() - Unserialize a ReadConcern
  • serialize() - Génère une représentation stockable d'une valeur
  • Serializing Objects


Unserialize a ReadConcern

  • « MongoDB\Driver\ReadConcern::serialize
  • MongoDB\Driver\Cursor »
  • PHP Manual
  • MongoDB\Driver\ReadConcern
  • Unserialize a ReadConcern

MongoDB\Driver\ReadConcern::unserialize

(mongodb >=1.7.0)

MongoDB\Driver\ReadConcern::unserialize — Unserialize a ReadConcern

Description

final public MongoDB\Driver\ReadConcern::unserialize(string $data): void

Liste de paramètres

data

The serialized MongoDB\Driver\ReadConcern.

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.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Voir aussi

  • MongoDB\Driver\ReadConcern::serialize() - Serialize a ReadConcern
  • unserialize() - Crée une variable PHP à partir d'une valeur sérialisée
  • Serializing Objects


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

final class MongoDB\Driver\Cursor implements MongoDB\Driver\CursorInterface, Iterator {
/* Méthodes */
final private __construct()
public current(): array|object|null
final public getId(): MongoDB\Driver\CursorId
final public getServer(): MongoDB\Driver\Server
final public isDead(): bool
public key(): int
public next(): void
public rewind(): void
final public setTypeMap(array $typemap): void
final public toArray(): array
public valid(): bool
}

Historique

Version | Description
PECL mongodb 1.9.0 | Implémente Iterator.
PECL mongodb 1.6.0 | Iméplémentation de MongoDB\Driver\CursorInterface, qui étend Traversable.

Exemples

Exemple #1 Lecture d'un jeu de résultats

MongoDB\Driver\Manager::executeCommand() et MongoDB\Driver\Manager::executeQuery() les deux renvoient leur (s) résultat (s) en tant qu'objet MongoDB\Driver\Cursor. Cet objet peut être utilisé pour itérer au sein du jeu de résultats de la commande ou de la requête.

Parce que MongoDB\Driver\Cursor implémente l'interface Traversable, vous pouvez simplement itérer sur le jeu de résultats avec foreach.

<?php

$manager = new MongoDB\Driver\Manager();

/* Insérez des documents afin que notre requête renvoie des informations */
$bulkWrite = new MongoDB\Driver\BulkWrite;
$bulkWrite->insert(['name' => 'Ceres', 'size' => 946, 'distance' => 2.766]);
$bulkWrite->insert(['name' => 'Vesta', 'size' => 525, 'distance' => 2.362]);
$manager->executeBulkWrite("test.asteroids", $bulkWrite);

/* Requête pour tous les éléments de la collection */
$query = new MongoDB\Driver\Query( [] );

/* Interrogez la collection "asteroids" de la base de données "test" */
$cursor = $manager->executeQuery("test.asteroids", $query);

/* $cursor contient maintenant un objet qui entoure le jeu de résultats.
* Utilisez foreach() pour itérer sur tous les résultats */
foreach($cursor as $document) {
print_r($document);
}

?>

Résultat de l'exemple ci-dessus est similaire à :

stdClass Object
(
    [_id] => MongoDB\BSON\ObjectId Object
        (
            [oid] => 5a4cff2f122d3321565d8cc2
        )

    [name] => Ceres
    [size] => 946
    [distance] => 2.766
)
stdClass Object
(
    [_id] => MongoDB\BSON\ObjectId Object
        (
            [oid] => 5a4cff2f122d3321565d8cc3
        )

    [name] => Vesta
    [size] => 525
    [distance] => 2.362
}

Exemple #2 Lecture d'un jeu de résultats pour un curseur à queue

Les » curseurs à queue sont un type spécial de curseur MongoDB qui permet au client de lire quelques résultats et d'attendre jusqu'à ce que plus de documents deviennent disponibles. Ces curseurs sont principalement utilisés avec » Capped Collections et » Change Streams.

Bien que les curseurs normaux puissent être parcourus une fois avec foreach, cette approche ne fonctionnera pas avec les curseurs à queue. Lorsque foreach est utilisé avec un curseur à queue, la boucle s'arrêtera à la fin du jeu de résultats initial. Tenter de continuer l'itération sur le curseur avec une seconde foreach lèverait une exception, car PHP tente de rembobiner le curseur. Comme pour les objets result dans d'autres pilotes de base de données, les curseurs dans MongoDB prennent uniquement en charge l'itération en avant, ce qui signifie qu'ils ne peuvent pas être rembobinés.

Afin de lire en continu à partir d'un curseur de queue, l'objet Cursor doit être enveloppé avec un IteratorIterator. Cela permet à l'application de contrôler directement l'itération du curseur, d'éviter de rembobiner par inadvertance le curseur et de décider quand attendre les nouveaux résultats ou arrêter complètement l'itération.

Afin de démontrer un curseur en action, deux scripts seront utilisés: un "Producer" et un "Consumer". Le script Producer créera une nouvelle collection plafonnée à l'aide de la commande » Create et procédera à l'insertion d'un nouveau document dans cette collection chaque seconde.

<?php

$manager = new MongoDB\Driver\Manager;

$manager->executeCommand('test', new MongoDB\Driver\Command([
'create' => 'asteroids',
'capped' => true,
'size' => 1048576,
]));

while (true) {
$bulkWrite = new MongoDB\Driver\BulkWrite;
$bulkWrite->insert(['createdAt' => new MongoDB\BSON\UTCDateTime]);
$manager->executeBulkWrite('test.asteroids', $bulkWrite);

sleep(1);
}

?>

Avec le script Producer toujours en cours d'exécution, un deuxième script consommateur peut être exécuté pour lire les documents insérés à l'aide d'un curseur de queue, indiqué par les options tailable et awaitData à MongoDB\Driver\Query::__construct().

<?php

$manager = new MongoDB\Driver\Manager;

$query = new MongoDB\Driver\Query([], [
'tailable' => true,
'awaitData' => true,
]);

$cursor = $manager->executeQuery('test.asteroids', $query);

$iterator = new IteratorIterator($cursor);

$iterator->rewind();

while (true) {
if ($iterator->valid()) {
$document = $iterator->current();
printf("Consumed document created at: %s\n", $document->createdAt);
}

$iterator->next();
}

?>

Le script consommateur va commencer par imprimer rapidement tous les documents disponibles dans la collection plafonnée (comme si foreach avait été utilisé); toutefois, il ne se terminera pas à la fin du jeu de résultats initial. Étant donné que le curseur est en file d'attente, l'appel de IteratorIterator::next() se bloque et attend des résultats supplémentaires. IteratorIterator::valid() est également utilisé pour vérifier s'il y a effectivement des données disponibles à lire à chaque étape.

Note: Cet exemple utilise l'option de requête awaitData pour indiquer au serveur de bloquer pendant une courte période (par exemple une seconde) à la fin du jeu de résultats avant de retourner une réponse au pilote. Ceci est utilisé pour empêcher le pilote d'interroger agressivement le serveur lorsqu'il n'y a aucun résultat disponible. L'option maxAwaitTimeMS peut être utilisée conjointement avec tailable et awaitData pour spécifier la durée pendant laquelle le serveur doit se bloquer lorsqu'il atteint la fin du jeu de résultats.

Erreurs / Exceptions

Lors de l'itération sur l'objet Cursor, les données BSON sont converties en variables PHP. Cette itération peut provoquer les exceptions suivantes:

  • Lèle une exception MongoDB\Driver\Exception\InvalidArgumentException si une classe dans le mappage de type ne peut pas être instanciée ou n'implémente pas MongoDB\BSON\Unserializable.
  • Lance une exception MongoDB\Driver\Exception\UnexpectedValueException si l'entrée ne contient pas exactement un document BSON. Les raisons possibles comprennent, mais ne sont pas limitées à, BSON invalide, des données supplémentaires (après avoir lu un document BSON), ou une erreur imprévu de » libbson.

Sommaire

  • MongoDB\Driver\Cursor::__construct — Créer un nouveau curseur (non utilisé)
  • MongoDB\Driver\Cursor::current — Returns the current element
  • MongoDB\Driver\Cursor::getId — Retourne l'ID de ce curseur
  • MongoDB\Driver\Cursor::getServer — Retourne le serveur associé à ce curseur
  • MongoDB\Driver\Cursor::isDead — Vérifie si le curseur est épuisé ou peut avoir des résultats supplémentaires
  • MongoDB\Driver\Cursor::key — Returns the current result's index within the cursor
  • MongoDB\Driver\Cursor::next — Advances the cursor to the next result
  • MongoDB\Driver\Cursor::rewind — Rewind the cursor to the first result
  • MongoDB\Driver\Cursor::setTypeMap — Défini un type de carte à utiliser pour la désérialisation BSON
  • MongoDB\Driver\Cursor::toArray — Retourne un tableau contenant tous les résultats pour ce curseur
  • MongoDB\Driver\Cursor::valid — Checks if the current position in the cursor is valid


Créer un nouveau curseur (non utilisé)

  • « MongoDB\Driver\Cursor
  • MongoDB\Driver\Cursor::current »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Créer un nouveau curseur (non utilisé)

MongoDB\Driver\Cursor::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::__construct — Créer un nouveau curseur (non utilisé)

Description

final private MongoDB\Driver\Cursor::__construct()

Les objets MongoDB\Driver\Cursor sont retournés en tant que résultat d'une commande ou d'une requête exécutée et ne peuvent pas être construits directement.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Voir aussi

  • MongoDB\Driver\Manager::executeCommand() - Execute a database command
  • MongoDB\Driver\Manager::executeQuery() - Execute a database query
  • 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


Returns the current element

  • « MongoDB\Driver\Cursor::__construct
  • MongoDB\Driver\Cursor::getId »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Returns the current element

MongoDB\Driver\Cursor::current

(mongodb >=1.9.0)

MongoDB\Driver\Cursor::current — Returns the current element

Description

public MongoDB\Driver\Cursor::current(): array|object|null

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the current result document as an array or object, depending on the cursor's type map. If iteration has not started or the current position is not valid, null will be returned.

Voir aussi

  • Iterator::current() - Retourne l'élément courant


Retourne l'ID de ce curseur

  • « MongoDB\Driver\Cursor::current
  • MongoDB\Driver\Cursor::getServer »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Retourne l'ID de ce curseur

MongoDB\Driver\Cursor::getId

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::getId — Retourne l'ID de ce curseur

Description

final public MongoDB\Driver\Cursor::getId(): MongoDB\Driver\CursorId

Retourne le MongoDB\Driver\CursorId associé à ce curseur. Un ID de curseur identifie de façon unique le curseur sur le serveur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le MongoDB\Driver\CursorId associé à ce curseur.

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\Cursor::getId()

<?php

/* Dans cet exemple, nous introduisons plusieurs documents dans la collection et
* spécifions un BatchSize plus petit pour garantir que le premier lot ne contient
* qu'un sous-ensemble de nos résultats et que le curseur reste ouvert sur le
* serveur. */
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$query = new MongoDB\Driver\Query([], ['batchSize' => 2]);

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->insert(['x' => 2]);
$bulk->insert(['x' => 3]);
$manager->executeBulkWrite('db.collection', $bulk);

$cursor = $manager->executeQuery('db.collection', $query);
var_dump($cursor->getId());

?>

Résultat de l'exemple ci-dessus est similaire à :

object(MongoDB\Driver\CursorId)#5 (1) {
  ["id"]=>
  int(94810124093)
}

Voir aussi

  • MongoDB\Driver\CursorId
  • MongoDB\Driver\CursorId::__toString() - Représentation sous forme de chaîne de l'ID de curseur


Retourne le serveur associé à ce curseur

  • « MongoDB\Driver\Cursor::getId
  • MongoDB\Driver\Cursor::isDead »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Retourne le serveur associé à ce curseur

MongoDB\Driver\Cursor::getServer

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::getServer — Retourne le serveur associé à ce curseur

Description

final public MongoDB\Driver\Cursor::getServer(): MongoDB\Driver\Server

Retourne le MongoDB\Driver\Server associé à ce curseur. Il s'agit du serveur qui a exécuté la MongoDB\Driver\Query ou MongoDB\Driver\Command.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le MongoDB\Driver\Server associé à ce curseur.

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\Cursor::getServer()

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$query = new MongoDB\Driver\Query([]);

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$manager->executeBulkWrite('db.collection', $bulk);

$cursor = $manager->executeQuery('db.collection', $query);
var_dump($cursor->getServer());

?>

Résultat de l'exemple ci-dessus est similaire à :

object(MongoDB\Driver\Server)#5 (10) {
  ["host"]=>
  string(9) "localhost"
  ["port"]=>
  int(27017)
  ["type"]=>
  int(1)
  ["is_primary"]=>
  bool(false)
  ["is_secondary"]=>
  bool(false)
  ["is_arbiter"]=>
  bool(false)
  ["is_hidden"]=>
  bool(false)
  ["is_passive"]=>
  bool(false)
  ["last_hello_response"]=>
  array(8) {
    ["isWritablePrimary"]=>
    bool(true)
    ["maxBsonObjectSize"]=>
    int(16777216)
    ["maxMessageSizeBytes"]=>
    int(48000000)
    ["maxWriteBatchSize"]=>
    int(1000)
    ["localTime"]=>
    object(MongoDB\BSON\UTCDateTime)#6 (1) {
      ["milliseconds"]=>
      int(1446505367907)
    }
    ["maxWireVersion"]=>
    int(3)
    ["minWireVersion"]=>
    int(0)
    ["ok"]=>
    float(1)
  }
  ["round_trip_time"]=>
  int(584)
}

Voir aussi

  • MongoDB\Driver\Server


Vérifie si le curseur est épuisé ou peut avoir des résultats supplémentaires

  • « MongoDB\Driver\Cursor::getServer
  • MongoDB\Driver\Cursor::key »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Vérifie si le curseur est épuisé ou peut avoir des résultats supplémentaires

MongoDB\Driver\Cursor::isDead

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::isDead — Vérifie si le curseur est épuisé ou peut avoir des résultats supplémentaires

Description

final public MongoDB\Driver\Cursor::isDead(): bool

Vérifie s'il n'y a plus aucun résultat supplémentaire disponible sur le curseur. Cette méthode est similaire à la méthode » cursor.isExhausted() dans le shell MongoDB et son utilité primaire et lors de l'itération de » curseurs de queue.

Un curseur n'a plus de résultats supplémentaires et est considéré "mort" s'il satisfait l'une des conditions ci-dessous:

  • Le lot actuel a était complètement itéré et l'ID du curseur est zéro (c.à.d. il est impossible de délivrer un » getMore).
  • Une erreur a été rencontré lors de l'itération du curseur.
  • Le curseur a atteint sa limite configurée.

Par sa conception, il n'est pas toujours possible de déterminer si un curseur a des résultats supplémentaires. Les cas où un curseur peut avoir plus de données disponibles sont les suivants :

  • Il y a des documents supplémentaires dans le lot courrant, qui sont tamponée du côté client. Itérer récupèrera un document du tampon local.
  • Il n'y a pas de documents supplémentairesdans le lot courrant (c.à.d. tampon local), mais le l'ID du curseur est différent de zéro. Itérer solliicitera plus de documents depuis le serveur via une opération » getMore, qui retournera ou pas des résultats supplémentaires et / ou indiquera que le curseur a été fermé sur le serveur en retournant zéro pour son ID.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true si c'est confirmé qu'aucun résultat supplémentaire n'est disponible sur le curseur, et false sinon.

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\Cursor::isDead()

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$query = new MongoDB\Driver\Query([]);

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->insert(['x' => 2]);
$bulk->insert(['x' => 3]);
$manager->executeBulkWrite('db.collection', $bulk);

$cursor = $manager->executeQuery('db.collection', $query);

$iterator = new IteratorIterator($cursor);

$iterator->rewind();
var_dump($cursor->isDead());

$iterator->next();
var_dump($cursor->isDead());

$iterator->next();
var_dump($cursor->isDead());

$iterator->next();
var_dump($cursor->isDead());

?>

Résultat de l'exemple ci-dessus est similaire à :

bool(false)
bool(false)
bool(false)
bool(true)

Voir aussi

  • » Tailable Cursors in the MongoDB manual
  • » cursor.isExhausted() in the MongoDB manual


Returns the current result's index within the cursor

  • « MongoDB\Driver\Cursor::isDead
  • MongoDB\Driver\Cursor::next »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Returns the current result's index within the cursor

MongoDB\Driver\Cursor::key

(mongodb >=1.9.0)

MongoDB\Driver\Cursor::key — Returns the current result's index within the cursor

Description

public MongoDB\Driver\Cursor::key(): int

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The current result's numeric index within the cursor.

Voir aussi

  • Iterator::key() - Retourne la clé de l'élément courant


Advances the cursor to the next result

  • « MongoDB\Driver\Cursor::key
  • MongoDB\Driver\Cursor::rewind »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Advances the cursor to the next result

MongoDB\Driver\Cursor::next

(mongodb >=1.9.0)

MongoDB\Driver\Cursor::next — Advances the cursor to the next result

Description

public MongoDB\Driver\Cursor::next(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Moves the current position to the next element in the cursor.

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

Voir aussi

  • Iterator::next() - Se déplace sur l'élément suivant


Rewind the cursor to the first result

  • « MongoDB\Driver\Cursor::next
  • MongoDB\Driver\Cursor::setTypeMap »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Rewind the cursor to the first result

MongoDB\Driver\Cursor::rewind

(mongodb >=1.9.0)

MongoDB\Driver\Cursor::rewind — Rewind the cursor to the first result

Description

public MongoDB\Driver\Cursor::rewind(): void

If the cursor has advanced beyond its first position, it can no longer be rewound.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

null.

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\LogicException if this method is called after the cursor has advanced beyond its first position.

Voir aussi

  • Iterator::rewind() - Replace l'itérateur sur le premier élément


Défini un type de carte à utiliser pour la désérialisation BSON

  • « MongoDB\Driver\Cursor::rewind
  • MongoDB\Driver\Cursor::toArray »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Défini un type de carte à utiliser pour la désérialisation BSON

MongoDB\Driver\Cursor::setTypeMap

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::setTypeMap — Défini un type de carte à utiliser pour la désérialisation BSON

Description

final public MongoDB\Driver\Cursor::setTypeMap(array $typemap): void

Définit la configuration de mappage de type à utiliser lors de la désérialisation des résultats BSON en valeurs PHP.

Liste de paramètres

typeMap (array)

Configuration du type de carte.

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.

Lors de l'itération sur le curseur, les exceptions suivantes peuvent également être levées en raison d'une configuration de mappage de type incorrecte :

  • Lève une exception MongoDB\Driver\Exception\InvalidArgumentException si une classe dans le mappage de type ne peut pas être instanciée ou n'implémente pas MongoDB\BSON\Unserializable.

Exemples

Exemple #1 Exemple avec MongoDB\Driver\Cursor::setTypeMap()

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

$bulk = new MongoDB\Driver\BulkWrite;
$id = $bulk->insert(['x' => 1]);
$manager->executeBulkWrite('db.collection', $bulk);

$query = new MongoDB\Driver\Query(['_id' => $id]);
$cursor = $manager->executeQuery('db.collection', $query);
$cursor->setTypeMap(['root' => 'array']);

foreach ($cursor as $document) {
var_dump($document);
}

?>

Résultat de l'exemple ci-dessus est similaire à :

array(2) {
  ["_id"]=>
  object(MongoDB\BSON\ObjectId)#6 (1) {
    ["oid"]=>
    string(24) "56424fb76118fd3267180741"
  }
  ["x"]=>
  int(1)
}

Voir aussi

  • Persisting Data


Retourne un tableau contenant tous les résultats pour ce curseur

  • « MongoDB\Driver\Cursor::setTypeMap
  • MongoDB\Driver\Cursor::valid »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Retourne un tableau contenant tous les résultats pour ce curseur

MongoDB\Driver\Cursor::toArray

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::toArray — Retourne un tableau contenant tous les résultats pour ce curseur

Description

final public MongoDB\Driver\Cursor::toArray(): array

Itère le curseur et retourne ses résultats dans un tableau. MongoDB\Driver\Cursor::setTypeMap() peut être utilisé pour contrôler comment les documents sont désérialisés en valeurs PHP.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant tous les résultats pour ce curseur.

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\Cursor::toArray()

<?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);

$query = new MongoDB\Driver\Query([]);
$cursor = $manager->executeQuery('db.collection', $query);

var_dump($cursor->toArray());

?>

Résultat de l'exemple ci-dessus est similaire à :

array(3) {
  [0]=>
  object(stdClass)#6 (2) {
    ["_id"]=>
    object(MongoDB\BSON\ObjectId)#5 (1) {
      ["oid"]=>
      string(24) "564259a96118fd40b41bcf61"
    }
    ["x"]=>
    int(1)
  }
  [1]=>
  object(stdClass)#8 (2) {
    ["_id"]=>
    object(MongoDB\BSON\ObjectId)#7 (1) {
      ["oid"]=>
      string(24) "564259a96118fd40b41bcf62"
    }
    ["x"]=>
    int(2)
  }
  [2]=>
  object(stdClass)#10 (2) {
    ["_id"]=>
    object(MongoDB\BSON\ObjectId)#9 (1) {
      ["oid"]=>
      string(24) "564259a96118fd40b41bcf63"
    }
    ["x"]=>
    int(3)
  }
}

Voir aussi

  • MongoDB\Driver\Cursor::setTypeMap() - Défini un type de carte à utiliser pour la désérialisation BSON


Checks if the current position in the cursor is valid

  • « MongoDB\Driver\Cursor::toArray
  • MongoDB\Driver\CursorId »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Checks if the current position in the cursor is valid

MongoDB\Driver\Cursor::valid

(mongodb >=1.9.0)

MongoDB\Driver\Cursor::valid — Checks if the current position in the cursor is valid

Description

public MongoDB\Driver\Cursor::valid(): bool

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

true if the current cursor position is valid, false otherwise.

Voir aussi

  • Iterator::valid() - Vérifie si la position courante est valide


La classe MongoDB\Driver\CursorId

(mongodb >=1.0.0)

Introduction

La classe MongoDB\Driver\CursorID est un objet valeur qui représente un identificateur de curseur. Les instances de cette classe sont retournées par MongoDB\Driver\Cursor::getId().

Synopsis de la classe

final class MongoDB\Driver\CursorId implements Serializable, Stringable {
/* Méthodes */
final private __construct()
final public serialize(): string
final public __toString(): string
final public unserialize(string $data): void
}

Historique

Version | Description
PECL mongodb 1.12.0 | Implémente Stringable pour PHP 8.0+.
PECL mongodb 1.7.0 | Implémente Serializable.

Sommaire

  • MongoDB\Driver\CursorId::__construct — Créer un nouveau CursorId (non utilisé)
  • MongoDB\Driver\CursorId::serialize — Serialize a CursorId
  • MongoDB\Driver\CursorId::__toString — Représentation sous forme de chaîne de l'ID de curseur
  • MongoDB\Driver\CursorId::unserialize — Unserialize a CursorId


Créer un nouveau CursorId (non utilisé)

  • « MongoDB\Driver\CursorId
  • MongoDB\Driver\CursorId::serialize »
  • PHP Manual
  • MongoDB\Driver\CursorId
  • Créer un nouveau CursorId (non utilisé)

MongoDB\Driver\CursorId::__construct

(mongodb >=1.0.0)

MongoDB\Driver\CursorId::__construct — Créer un nouveau CursorId (non utilisé)

Description

final private MongoDB\Driver\CursorId::__construct()

Les objets MongoDB\Driver\CursorId sont retourné part MongoDB\Driver\Cursor::getId() et ne peuvent pas être construits directement.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Voir aussi

  • MongoDB\Driver\Cursor::getId() - Retourne l'ID de ce curseur


Serialize a CursorId

  • « MongoDB\Driver\CursorId::__construct
  • MongoDB\Driver\CursorId::__toString »
  • PHP Manual
  • MongoDB\Driver\CursorId
  • Serialize a CursorId

MongoDB\Driver\CursorId::serialize

(mongodb >=1.7.0)

MongoDB\Driver\CursorId::serialize — Serialize a CursorId

Description

final public MongoDB\Driver\CursorId::serialize(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the serialized representation of the MongoDB\Driver\CursorId.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\Driver\CursorId::unserialize() - Unserialize a CursorId
  • serialize() - Génère une représentation stockable d'une valeur
  • Serializing Objects


Représentation sous forme de chaîne de l'ID de curseur

  • « MongoDB\Driver\CursorId::serialize
  • MongoDB\Driver\CursorId::unserialize »
  • PHP Manual
  • MongoDB\Driver\CursorId
  • Représentation sous forme de chaîne de l'ID de curseur

MongoDB\Driver\CursorId::__toString

(mongodb >=1.0.0)

MongoDB\Driver\CursorId::__toString — Représentation sous forme de chaîne de l'ID de curseur

Description

final public MongoDB\Driver\CursorId::__toString(): string

Retourne la représentation sous forme de chaîne de caractères de l'ID de curseur.

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'ID de curseur.

Exemples

Exemple #1 Exemple avec MongoDB\Driver\CursorId::__toString()

<?php

/* Dans cet exemple, nous introduisons plusieurs documents dans la collection et
* spécifions un BatchSize plus petit pour garantir que le premier lot ne contient
* qu'un sous-ensemble de nos résultats et que le curseur reste ouvert sur le
* serveur. */
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$query = new MongoDB\Driver\Query([], ['batchSize' => 2]);

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->insert(['x' => 2]);
$bulk->insert(['x' => 3]);
$manager->executeBulkWrite('db.collection', $bulk);

$cursor = $manager->executeQuery('db.collection', $query);
var_dump((string) $cursor->getId());

?>

Résultat de l'exemple ci-dessus est similaire à :

string(11) "98061641158"

Voir aussi

  • MongoDB\Driver\Cursor::getId() - Retourne l'ID de ce curseur


Unserialize a CursorId

  • « MongoDB\Driver\CursorId::__toString
  • MongoDB\Driver\CursorInterface »
  • PHP Manual
  • MongoDB\Driver\CursorId
  • Unserialize a CursorId

MongoDB\Driver\CursorId::unserialize

(mongodb >=1.7.0)

MongoDB\Driver\CursorId::unserialize — Unserialize a CursorId

Description

final public MongoDB\Driver\CursorId::unserialize(string $data): void

Liste de paramètres

data

The serialized MongoDB\Driver\CursorId.

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.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. serialized was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Voir aussi

  • MongoDB\Driver\CursorId::serialize() - Serialize a CursorId
  • unserialize() - Crée une variable PHP à partir d'une valeur sérialisée
  • Serializing Objects


The MongoDB\Driver\CursorInterface interface

(mongodb >=1.6.0)

Introduction

This interface is implemented by MongoDB\Driver\Cursor to be used as a parameter, return, or property type in userland classes.

Synopsis de la classe

class MongoDB\Driver\CursorInterface implements Traversable {
/* Méthodes */
abstract public getId(): MongoDB\Driver\CursorId
abstract public getServer(): MongoDB\Driver\Server
abstract public isDead(): bool
abstract public setTypeMap(array $typemap): void
abstract public toArray(): array
}

Historique

Version | Description
PECL mongodb 1.15.0 | Les types de retours des méthodes sont déclarés comme provisoires en PHP 8.0 et ultérieur, ce qui déclenche des avis de dépréciation dans le code qui implémente cette interface sans déclarer les types de retours appropriés. L'attribut #[ReturnTypeWillChange] peut être ajouté pour ignorer la notice de dépréciation.

Sommaire

  • MongoDB\Driver\CursorInterface::getId — Returns the ID for this cursor
  • MongoDB\Driver\CursorInterface::getServer — Returns the server associated with this cursor
  • MongoDB\Driver\CursorInterface::isDead — Checks if the cursor may have additional results
  • MongoDB\Driver\CursorInterface::setTypeMap — Sets a type map to use for BSON unserialization
  • MongoDB\Driver\CursorInterface::toArray — Returns an array containing all results for this cursor


Returns the ID for this cursor

  • « MongoDB\Driver\CursorInterface
  • MongoDB\Driver\CursorInterface::getServer »
  • PHP Manual
  • MongoDB\Driver\CursorInterface
  • Returns the ID for this cursor

MongoDB\Driver\CursorInterface::getId

(mongodb >=1.6.0)

MongoDB\Driver\CursorInterface::getId — Returns the ID for this cursor

Description

abstract public MongoDB\Driver\CursorInterface::getId(): MongoDB\Driver\CursorId

Returns the MongoDB\Driver\CursorId associated with this cursor. A cursor ID uniquely identifies the cursor on the server.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the MongoDB\Driver\CursorId for this cursor.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\Driver\Cursor::getId() - Retourne l'ID de ce curseur
  • MongoDB\Driver\CursorId
  • MongoDB\Driver\CursorId::__toString() - Représentation sous forme de chaîne de l'ID de curseur


Returns the server associated with this cursor

  • « MongoDB\Driver\CursorInterface::getId
  • MongoDB\Driver\CursorInterface::isDead »
  • PHP Manual
  • MongoDB\Driver\CursorInterface
  • Returns the server associated with this cursor

MongoDB\Driver\CursorInterface::getServer

(mongodb >=1.6.0)

MongoDB\Driver\CursorInterface::getServer — Returns the server associated with this cursor

Description

abstract public MongoDB\Driver\CursorInterface::getServer(): MongoDB\Driver\Server

Returns the MongoDB\Driver\Server associated with this cursor. This is the server that executed the MongoDB\Driver\Query or MongoDB\Driver\Command.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the MongoDB\Driver\Server associated with this cursor.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\Driver\Cursor::getServer() - Retourne le serveur associé à ce curseur
  • MongoDB\Driver\Server


Checks if the cursor may have additional results

  • « MongoDB\Driver\CursorInterface::getServer
  • MongoDB\Driver\CursorInterface::setTypeMap »
  • PHP Manual
  • MongoDB\Driver\CursorInterface
  • Checks if the cursor may have additional results

MongoDB\Driver\CursorInterface::isDead

(mongodb >=1.6.0)

MongoDB\Driver\CursorInterface::isDead — Checks if the cursor may have additional results

Description

abstract public MongoDB\Driver\CursorInterface::isDead(): bool

Checks whether the cursor may have additional results available to read. A cursor is initially "alive" but may become "dead" for any of the following reasons:

  • Advancing a non-tailable cursor did not return a document
  • The cursor encountered an error
  • The cursor read its last batch to completion
  • The cursor reached its configured limit
This is primarily useful with tailable cursors.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns true if additional results are not available, 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\Cursor::isDead() - Vérifie si le curseur est épuisé ou peut avoir des résultats supplémentaires


Sets a type map to use for BSON unserialization

  • « MongoDB\Driver\CursorInterface::isDead
  • MongoDB\Driver\CursorInterface::toArray »
  • PHP Manual
  • MongoDB\Driver\CursorInterface
  • Sets a type map to use for BSON unserialization

MongoDB\Driver\CursorInterface::setTypeMap

(mongodb >=1.6.0)

MongoDB\Driver\CursorInterface::setTypeMap — Sets a type map to use for BSON unserialization

Description

abstract public MongoDB\Driver\CursorInterface::setTypeMap(array $typemap): void

Sets the type map configuration to use when unserializing the BSON results into PHP values.

Liste de paramètres

typeMap (array)

Configuration du type de carte.

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.

Voir aussi

  • MongoDB\Driver\Cursor::setTypeMap() - Défini un type de carte à utiliser pour la désérialisation BSON
  • Persisting Data


Returns an array containing all results for this cursor

  • « MongoDB\Driver\CursorInterface::setTypeMap
  • MongoDB\Driver\Server »
  • PHP Manual
  • MongoDB\Driver\CursorInterface
  • Returns an array containing all results for this cursor

MongoDB\Driver\CursorInterface::toArray

(mongodb >=1.6.0)

MongoDB\Driver\CursorInterface::toArray — Returns an array containing all results for this cursor

Description

abstract public MongoDB\Driver\CursorInterface::toArray(): array

Iterates the cursor and returns its results in an array. MongoDB\Driver\CursorInterface::setTypeMap() may be used to control how documents are unserialized into PHP values.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns an array containing all results for this cursor.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\Driver\Cursor::toArray() - Retourne un tableau contenant tous les résultats pour ce curseur
  • MongoDB\Driver\CursorInterface::setTypeMap() - Sets a type map to use for BSON unserialization


La classe MongoDB\Driver\Server

(mongodb >=1.0.0)

Introduction

Synopsis de la classe

final class MongoDB\Driver\Server {
/* Constantes */
const int TYPE_UNKNOWN = 0;
const int TYPE_STANDALONE = 1;
const int TYPE_MONGOS = 2;
const int TYPE_POSSIBLE_PRIMARY = 3;
const int TYPE_RS_PRIMARY = 4;
const int TYPE_RS_SECONDARY = 5;
const int TYPE_RS_ARBITER = 6;
const int TYPE_RS_OTHER = 7;
const int TYPE_RS_GHOST = 8;
const int TYPE_LOAD_BALANCER = 9;
/* Méthodes */
final private __construct()
final public executeBulkWrite(string $namespace, MongoDB\Driver\BulkWrite $bulk, array|MongoDB\Driver\WriteConcern|null $options = null): MongoDB\Driver\WriteResult
final public executeCommand(string $db, MongoDB\Driver\Command $command, array|MongoDB\Driver\ReadPreference|null $options = null): MongoDB\Driver\Cursor
final public executeQuery(string $namespace, MongoDB\Driver\Query $query, array|MongoDB\Driver\ReadPreference|null $options = null): MongoDB\Driver\Cursor
final public executeReadCommand(string $db, MongoDB\Driver\Command $command, ?array $options = null): MongoDB\Driver\Cursor
final public executeReadWriteCommand(string $db, MongoDB\Driver\Command $command, ?array $options = null): MongoDB\Driver\Cursor
final public executeWriteCommand(string $db, MongoDB\Driver\Command $command, ?array $options = null): MongoDB\Driver\Cursor
final public getHost(): string
final public getInfo(): array
final public getLatency(): ?integer
final public getPort(): int
final public getServerDescription(): MongoDB\Driver\ServerDescription
final public getTags(): array
final public getType(): int
final public isArbiter(): bool
final public isHidden(): bool
final public isPassive(): bool
final public isPrimary(): bool
final public isSecondary(): bool
}

Constantes pré-définies

MongoDB\Driver\Server::TYPE_UNKNOWN

Type de serveur inconnu, retourné par MongoDB\Driver\Server::getType().

MongoDB\Driver\Server::TYPE_STANDALONE

Type de serveur autonome, retourné par MongoDB\Driver\Server::getType().

MongoDB\Driver\Server::TYPE_MONGOS

Type de serveur Mongos, retourné par MongoDB\Driver\Server::getType().

MongoDB\Driver\Server::TYPE_POSSIBLE_PRIMARY

Jeu de réplique type de serveur principal possible, retourné par MongoDB\Driver\Server::getType().

Un serveur peut être identifié comme un possible primaire s'il n'a pas encore été vérifié, mais une autre mémoire du jeu de réplique pense qu'il est le principal.

MongoDB\Driver\Server::TYPE_RS_PRIMARY

Type de serveur principal du jeu de réplique, retourné par MongoDB\Driver\Server::getType().

MongoDB\Driver\Server::TYPE_RS_SECONDARY

Réplique de type de serveur secondaire, retourné par MongoDB\Driver\Server::getType().

MongoDB\Driver\Server::TYPE_RS_ARBITER

Type de serveur arbitre de jeu de réplique, retourné par MongoDB\Driver\Server::getType().

MongoDB\Driver\Server::TYPE_RS_OTHER

Type de serveur autre de jeu de réplique, retourné par MongoDB\Driver\Server::getType().

Ces serveurs peuvent être masqués, en cours de démarrage ou en cours de récupération. Ils ne peuvent pas être interrogés, mais leurs listes d'hôtes sont utiles pour découvrir la configuration actuelle du jeu de réplique.

MongoDB\Driver\Server::TYPE_RS_GHOST

Type de serveur fantôme de jeu de réplique, retourné par MongoDB\Driver\Server::getType().

Les serveurs peuvent être identifiés comme tels dans au moins trois situations : brièvement pendant le démarrage du serveur ; dans un jeu de réplique non initialisé ; ou lorsque le serveur est évité (c'est-à-dire supprimé de la config du jeu de réplique). Ils ne peuvent pas être interrogés et leur liste d'hôtes ne peut pas être utilisée pour découvrir la configuration actuelle du jeu de réplique ; toutefois, le client peut surveiller ce serveur dans l'espoir qu'il change vers un état plus utile.

MongoDB\Driver\Server::TYPE_LOAD_BALANCER

Type de serveur de Load balancer, retourné par MongoDB\Driver\Server::getType().

Historique

Version | Description
PECL mongodb 1.11.0 | Ajout de la constante MongoDB\Driver\Server::TYPE_LOAD_BALANCER.

Sommaire

  • MongoDB\Driver\Server::__construct — Créer un nouveau serveur (non utilisé)
  • 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::executeReadCommand — Execute a database command that reads on this server
  • MongoDB\Driver\Server::executeReadWriteCommand — Execute a database command that reads and writes on this server
  • MongoDB\Driver\Server::executeWriteCommand — Execute a database command that writes on this server
  • MongoDB\Driver\Server::getHost — Retourne le nom d'hôte du serveur
  • MongoDB\Driver\Server::getInfo — Retourne un tableau d'informations décrivant ce serveur
  • MongoDB\Driver\Server::getLatency — Retourne la latence de ce serveur en millisecondes
  • MongoDB\Driver\Server::getPort — Retourne le port sur lequel le serveur écoute
  • MongoDB\Driver\Server::getServerDescription — Returns a ServerDescription for this server
  • 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


Créer un nouveau serveur (non utilisé)

  • « MongoDB\Driver\Server
  • MongoDB\Driver\Server::executeBulkWrite »
  • PHP Manual
  • MongoDB\Driver\Server
  • Créer un nouveau serveur (non utilisé)

MongoDB\Driver\Server::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Server::__construct — Créer un nouveau serveur (non utilisé)

Description

final private MongoDB\Driver\Server::__construct()

Les objets MongoDB\Driver\Server sont créés en interne par MongoDB\Driver\Manager lorsqu'une connexion de base de données est établie et peut être retournée par MongoDB\Driver\Manager::getServers() et MongoDB\Driver\Manager::selectServer().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Voir aussi

  • MongoDB\Driver\Manager::getServers() - Retourner les serveurs auxquels ce gestionnaire est connecté
  • MongoDB\Driver\Manager::selectServer() - Select a server matching a read preference


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\Server::executeBulkWrite(string $namespace, MongoDB\Driver\BulkWrite $bulk, array|MongoDB\Driver\WriteConcern|null $options = null): MongoDB\Driver\WriteResult

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)

Écriture(s) à exécuter.

options

options
Option Type Description
session MongoDB\Driver\Session

Une session à associer à l'opération.

writeConcern MongoDB\Driver\WriteConcern

Une préoccupation d'écriture à appliquer à l'opération.

Valeurs de retour

Retourne un MongoDB\Driver\WriteResult en cas de succès.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\Exception\InvalidArgumentException si bulk ne contient aucune opération d'écriture.
  • Lance une exception MongoDB\Driver\Exception\InvalidArgumentException si bulk a déjà été exécuté. Les objets MongoDB\Driver\BulkWrite ne peuvent pas être exécutés plusieurs fois.
  • Lance une exception MongoDB\Driver\Exception\InvalidArgumentException si l'option "session" est utilisée conjointement avec une préoccupation d'écriture non reconnu.
  • 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\BulkWriteException lors d'une erreur d'une opération en écriture (une erreur WriteError et WriteConcern)
  • Lance une exception MongoDB\Driver\Exception\RuntimeException si une erreur survient.

Historique

Version | Description
PECL mongodb 1.4.4 | MongoDB\Driver\Exception\InvalidArgumentException sera lancé si l'option "session" est utilisée conjointement avec une préoccupation d'écriture non reconnu.
PECL mongodb 1.4.0 | Le troisième paramètre est maintenant un tableau d'options. Pour la compatibilité ascendante, ce paramateur acceptera toujours un objet MongoDB\Driver\WriteConcern.
PECL mongodb 1.3.0 | MongoDBDriverExceptionInvalidArgumentException est maintenant levé si Bulk ne contient pas d'opérations d'écriture. Auparavant, une MongoDB\Driver\Exception\BulkWriteException était levée.

Notes

Note: Il est de la responsabilité de l'appelant de s'assurer que le serveur est capable d'exécuter l'opération d'écriture. Par exemple, l'exécution d'une opération d'écriture sur un secondaire (à l'exclusion de sa 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\Server::executeCommand(string $db, MongoDB\Driver\Command $command, array|MongoDB\Driver\ReadPreference|null $options = null): MongoDB\Driver\Cursor

Exécute une commande sur ce serveur.

This method applies no special logic to the command. Although this method accepts "readConcern" and "writeConcern" options, which will be incorporated into the command document, those options will not default to corresponding values from the MongoDB Connection URI nor will the MongoDB server version be taken into account. Users are therefore encouraged to use specific read and/or write command methods if possible. Cette méthode n'applique aucune logique spéciale à la commande. Bien que cette méthode accepte les options "readConcern" et "writeConcern", qui seront incorporées dans le document de commande, ces options ne seront pas par défaut aux valeurs correspondantes de l'URI de connexion MongoDB, ni la version du serveur MongoDB ne sera pris en compte. Les utilisateurs sont donc encouragés à utiliser des méthodes de commande de lecture et/ou d'écriture spécifiques si possible.

Note: L'option readPreference ne contrôle pas le serveur vers lequel le pilote émet l'opération; il sera toujours exécuté sur cet objet serveur. Au lieu de cela, il peut être utilisé lors de l'émission de l'opération à un secondaire (à partir d'une connexion de jeu de répliques, pas autonome) ou le nœud Mongos pour s'assurer que le pilote définit le protocole de fil en conséquence ou ajoute la préférence de lecture à l'opération, 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 commande à exécuter.

options

options
Option Type Description
readConcern MongoDB\Driver\ReadConcern

Une préoccupation de lecture à appliquer à l'opération.

Cette option est disponible dans MongoDB 3.2+ et se traduira par une exception au moment de l'exécution si elle est spécifiée pour une version plus ancienne du serveur.

readPreference MongoDB\Driver\ReadPreference

Une préférence de lecture à utiliser pour sélectionner un serveur pour l'opération.

session MongoDB\Driver\Session

Une session à associer à l'opération.

writeConcern MongoDB\Driver\WriteConcern

Une préoccupation d'écriture à appliquer à l'opération.

Avertissement

Si vous utilisez une "session" qui a une transaction en cours, vous ne pouvez pas spécifier l'option "readConcern" ou "writeConcern". Tenter de faire ceci lancera une exception MongoDB\Driver\Exception\InvalidArgumentException. À la place vous devriez définir ces options quand vous créez la transaction avec MongoDB\Driver\Session::startTransaction().

Valeurs de retour

Retourne un MongoDB\Driver\Cursor en cas de succès.

Erreurs / Exceptions

  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the "session" option is used with an associated transaction in combination with a "readConcern" or "writeConcern" option.
  • Lance une exception MongoDB\Driver\Exception\InvalidArgumentException si l'option "session" est utilisée conjointement avec une préoccupation d'écriture non reconnu.
  • 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).

Historique

Version | Description
PECL mongodb 1.4.4 | MongoDB\Driver\Exception\InvalidArgumentException sera lancé si l'option "session" est utilisée conjointement avec une préoccupation d'écriture non reconnu.
PECL mongodb 1.4.0 | Le troisième paramètre est maintenant un tableau d'options. Pour la compatibilité ascendante, ce paramateur acceptera toujours un objet MongoDB\Driver\ReadPreference.

Notes

Note: Il est de la responsabilité de l'appelant de s'assurer que le serveur est capable d'exécuter l'opération d'écriture. Par exemple, l'exécution d'une opération d'écriture sur un secondaire (à l'exclusion de sa base de données "local") échouera.

Voir aussi

  • MongoDB\Driver\Command
  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Server::executeReadCommand() - Execute a database command that reads on this server
  • MongoDB\Driver\Server::executeReadWriteCommand() - Execute a database command that reads and writes on this server
  • MongoDB\Driver\Server::executeWriteCommand() - Execute a database command that writes on this server
  • 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::executeReadCommand »
  • 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\Server::executeQuery(string $namespace, MongoDB\Driver\Query $query, array|MongoDB\Driver\ReadPreference|null $options = null): MongoDB\Driver\Cursor

Exécute la requête sur ce serveur.

Note: L'option "readPreference" ne contrôle pas le serveur sur lequel le pilote émet l'opération ; elle sera toujours exécutée sur l'objet serveur. A la place, il peut être utilisé lors de l'envoi de l'opération sur un secondaire (depuis un jeu de connexion de réplication, et non en serveur unique), ou un nœud 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 requête à exécuter.

options

options
Option Type Description
readPreference MongoDB\Driver\ReadPreference

Une préférence de lecture à utiliser pour sélectionner un serveur pour l'opération.

session MongoDB\Driver\Session

Une session à associer à l'opération.

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).

Historique

Version | Description
PECL mongodb 1.4.0 | Le troisième paramètre est maintenant un tableau d'options. Pour la compatibilité ascendante, ce paramateur acceptera toujours un objet MongoDB\Driver\ReadPreference.

Voir aussi

  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Query
  • MongoDB\Driver\ReadPreference
  • MongoDB\Driver\Manager::executeQuery() - Execute a database query


Execute a database command that reads on this server

  • « MongoDB\Driver\Server::executeQuery
  • MongoDB\Driver\Server::executeReadWriteCommand »
  • PHP Manual
  • MongoDB\Driver\Server
  • Execute a database command that reads on this server

MongoDB\Driver\Server::executeReadCommand

(mongodb >=1.4.0)

MongoDB\Driver\Server::executeReadCommand — Execute a database command that reads on this server

Description

final public MongoDB\Driver\Server::executeReadCommand(string $db, MongoDB\Driver\Command $command, ?array $options = null): MongoDB\Driver\Cursor

Executes the command on this server.

This method will apply logic that is specific to commands that read (e.g. » count) and take the MongoDB server version into account. The "readConcern" option will default to the corresponding value from the MongoDB Connection URI.

Note: L'option readPreference ne contrôle pas le serveur vers lequel le pilote émet l'opération; il sera toujours exécuté sur cet objet serveur. Au lieu de cela, il peut être utilisé lors de l'émission de l'opération à un secondaire (à partir d'une connexion de jeu de répliques, pas autonome) ou le nœud Mongos pour s'assurer que le pilote définit le protocole de fil en conséquence ou ajoute la préférence de lecture à l'opération, 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 commande à exécuter.

options

options
Option Type Description
readConcern MongoDB\Driver\ReadConcern

Une préoccupation de lecture à appliquer à l'opération.

Cette option est disponible dans MongoDB 3.2+ et se traduira par une exception au moment de l'exécution si elle est spécifiée pour une version plus ancienne du serveur.

readPreference MongoDB\Driver\ReadPreference

Une préférence de lecture à utiliser pour sélectionner un serveur pour l'opération.

session MongoDB\Driver\Session

Une session à associer à l'opération.

Avertissement

Si vous utilisez une "session" qui a une transaction en cours, vous ne pouvez pas spécifier l'option "readConcern" ou "writeConcern". Tenter de faire ceci lancera une exception MongoDB\Driver\Exception\InvalidArgumentException. À la place vous devriez définir ces options quand vous créez la transaction avec MongoDB\Driver\Session::startTransaction().

Valeurs de retour

Retourne un MongoDB\Driver\Cursor en cas de succès.

Erreurs / Exceptions

  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the "session" option is used with an associated transaction in combination with a "readConcern" or "writeConcern" option.
  • 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).

Voir aussi

  • MongoDB\Driver\Command
  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Server::executeCommand() - Exécute une commande de base de données sur ce serveur
  • MongoDB\Driver\Server::executeReadWriteCommand() - Execute a database command that reads and writes on this server
  • MongoDB\Driver\Server::executeWriteCommand() - Execute a database command that writes on this server
  • MongoDB\Driver\Manager::executeReadCommand() - Execute a database command that reads


Execute a database command that reads and writes on this server

  • « MongoDB\Driver\Server::executeReadCommand
  • MongoDB\Driver\Server::executeWriteCommand »
  • PHP Manual
  • MongoDB\Driver\Server
  • Execute a database command that reads and writes on this server

MongoDB\Driver\Server::executeReadWriteCommand

(mongodb >=1.4.0)

MongoDB\Driver\Server::executeReadWriteCommand — Execute a database command that reads and writes on this server

Description

final public MongoDB\Driver\Server::executeReadWriteCommand(string $db, MongoDB\Driver\Command $command, ?array $options = null): MongoDB\Driver\Cursor

Executes the command on this server.

This method will apply logic that is specific to commands that read and write (e.g. » aggregate) and take the MongoDB server version into account. The "readConcern" and "writeConcern" options will default to the corresponding values from the MongoDB Connection URI.

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 commande à exécuter.

options

options
Option Type Description
readConcern MongoDB\Driver\ReadConcern

Une préoccupation de lecture à appliquer à l'opération.

Cette option est disponible dans MongoDB 3.2+ et se traduira par une exception au moment de l'exécution si elle est spécifiée pour une version plus ancienne du serveur.

session MongoDB\Driver\Session

Une session à associer à l'opération.

writeConcern MongoDB\Driver\WriteConcern

Une préoccupation d'écriture à appliquer à l'opération.

Avertissement

Si vous utilisez une "session" qui a une transaction en cours, vous ne pouvez pas spécifier l'option "readConcern" ou "writeConcern". Tenter de faire ceci lancera une exception MongoDB\Driver\Exception\InvalidArgumentException. À la place vous devriez définir ces options quand vous créez la transaction avec MongoDB\Driver\Session::startTransaction().

Valeurs de retour

Retourne un MongoDB\Driver\Cursor en cas de succès.

Erreurs / Exceptions

  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the "session" option is used with an associated transaction in combination with a "readConcern" or "writeConcern" option.
  • Lance une exception MongoDB\Driver\Exception\InvalidArgumentException si l'option "session" est utilisée conjointement avec une préoccupation d'écriture non reconnu.
  • 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).

Historique

Version | Description
PECL mongodb 1.4.4 | MongoDB\Driver\Exception\InvalidArgumentException will be thrown if the "session" option is used in combination with an unacknowledged write concern.

Notes

Note: Il est de la responsabilité de l'appelant de s'assurer que le serveur est capable d'exécuter l'opération d'écriture. Par exemple, l'exécution d'une opération d'écriture sur un secondaire (à l'exclusion de sa base de données "local") échouera.

Voir aussi

  • MongoDB\Driver\Command
  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Server::executeCommand() - Exécute une commande de base de données sur ce serveur
  • MongoDB\Driver\Server::executeReadCommand() - Execute a database command that reads on this server
  • MongoDB\Driver\Server::executeWriteCommand() - Execute a database command that writes on this server
  • MongoDB\Driver\Manager::executeReadWriteCommand() - Execute a database command that reads and writes


Execute a database command that writes on this server

  • « MongoDB\Driver\Server::executeReadWriteCommand
  • MongoDB\Driver\Server::getHost »
  • PHP Manual
  • MongoDB\Driver\Server
  • Execute a database command that writes on this server

MongoDB\Driver\Server::executeWriteCommand

(mongodb >=1.4.0)

MongoDB\Driver\Server::executeWriteCommand — Execute a database command that writes on this server

Description

final public MongoDB\Driver\Server::executeWriteCommand(string $db, MongoDB\Driver\Command $command, ?array $options = null): MongoDB\Driver\Cursor

Executes the command on this server.

This method will apply logic that is specific to commands that write (e.g. » drop) and take the MongoDB server version into account. The "writeConcern" option will default to the corresponding value from the MongoDB Connection URI.

Note: This method is not intended to be used to execute » insert, » update, or » delete commands. Users are encouraged to use MongoDB\Driver\Server::executeBulkWrite() for those commands.

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 commande à exécuter.

options

options
Option Type Description
session MongoDB\Driver\Session

Une session à associer à l'opération.

writeConcern MongoDB\Driver\WriteConcern

Une préoccupation d'écriture à appliquer à l'opération.

Avertissement

Si vous utilisez une "session" qui a une transaction en cours, vous ne pouvez pas spécifier l'option "readConcern" ou "writeConcern". Tenter de faire ceci lancera une exception MongoDB\Driver\Exception\InvalidArgumentException. À la place vous devriez définir ces options quand vous créez la transaction avec MongoDB\Driver\Session::startTransaction().

Valeurs de retour

Retourne un MongoDB\Driver\Cursor en cas de succès.

Erreurs / Exceptions

  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the "session" option is used with an associated transaction in combination with a "readConcern" or "writeConcern" option.
  • Lance une exception MongoDB\Driver\Exception\InvalidArgumentException si l'option "session" est utilisée conjointement avec une préoccupation d'écriture non reconnu.
  • 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).

Historique

Version | Description
PECL mongodb 1.4.4 | MongoDB\Driver\Exception\InvalidArgumentException will be thrown if the "session" option is used in combination with an unacknowledged write concern.

Notes

Note: Il est de la responsabilité de l'appelant de s'assurer que le serveur est capable d'exécuter l'opération d'écriture. Par exemple, l'exécution d'une opération d'écriture sur un secondaire (à l'exclusion de sa base de données "local") échouera.

Voir aussi

  • MongoDB\Driver\Command
  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Server::executeCommand() - Exécute une commande de base de données sur ce serveur
  • MongoDB\Driver\Server::executeReadCommand() - Execute a database command that reads on this server
  • MongoDB\Driver\Server::executeReadWriteCommand() - Execute a database command that reads and writes on this server
  • MongoDB\Driver\Manager::executeWriteCommand() - Execute a database command that writes


Retourne le nom d'hôte du serveur

  • « MongoDB\Driver\Server::executeWriteCommand
  • 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 MongoDB\Driver\Server::getHost(): string

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 décrivant ce serveur
  • MongoDB\Driver\ServerDescription::getHost() - Returns the hostname of this server


Retourne un tableau d'informations décrivant ce serveur

  • « MongoDB\Driver\Server::getHost
  • MongoDB\Driver\Server::getLatency »
  • PHP Manual
  • MongoDB\Driver\Server
  • Retourne un tableau d'informations décrivant ce serveur

MongoDB\Driver\Server::getInfo

(mongodb >=1.0.0)

MongoDB\Driver\Server::getInfo — Retourne un tableau d'informations décrivant ce serveur

Description

final public MongoDB\Driver\Server::getInfo(): array

Retourne un tableau d'informations décrivant le serveur. Ce tableau est dérivé de la réponse la plus récente à la commande » hello obtenue par la » surveillance du serveur.

Note:

Lorsque le pilote est connecté à un équilibreur de charge, cette méthode retourne la réponse à la commande » hello du serveur de backing lors de la poignée de main initiale de la connexion. Cela contraste avec d'autres méthodes (par exemple, MongoDB\Driver\Server::getType()), qui renverront des informations sur l'équilibreur de charge lui-même.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau d'informations décrivant 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('primary');
$server = $manager->selectServer($rp);

var_dump($server->getInfo());

?>

Résultat de l'exemple ci-dessus est similaire à :

array(23) {
  ["helloOk"]=>
  bool(true)
  ["topologyVersion"]=>
  array(2) {
    ["processId"]=>
    object(MongoDB\BSON\ObjectId)#4 (1) {
      ["oid"]=>
      string(24) "617b6d696a3a89d2f77e6df0"
    }
    ["counter"]=>
    int(6)
  }
  ["hosts"]=>
  array(1) {
    [0]=>
    string(15) "localhost:27017"
  }
  ["setName"]=>
  string(3) "rs0"
  ["setVersion"]=>
  int(1)
  ["ismaster"]=>
  bool(true)
  ["secondary"]=>
  bool(false)
  ["primary"]=>
  string(15) "localhost:27017"
  ["me"]=>
  string(15) "localhost:27017"
  ["electionId"]=>
  object(MongoDB\BSON\ObjectId)#5 (1) {
    ["oid"]=>
    string(24) "7fffffff0000000000000001"
  }
  ["lastWrite"]=>
  array(4) {
    ["opTime"]=>
    array(2) {
      ["ts"]=>
      object(MongoDB\BSON\Timestamp)#6 (2) {
        ["increment"]=>
        string(1) "1"
        ["timestamp"]=>
        string(10) "1635478989"
      }
      ["t"]=>
      int(1)
    }
    ["lastWriteDate"]=>
    object(MongoDB\BSON\UTCDateTime)#7 (1) {
      ["milliseconds"]=>
      string(13) "1635478989000"
    }
    ["majorityOpTime"]=>
    array(2) {
      ["ts"]=>
      object(MongoDB\BSON\Timestamp)#8 (2) {
        ["increment"]=>
        string(1) "1"
        ["timestamp"]=>
        string(10) "1635478989"
      }
      ["t"]=>
      int(1)
    }
    ["majorityWriteDate"]=>
    object(MongoDB\BSON\UTCDateTime)#9 (1) {
      ["milliseconds"]=>
      string(13) "1635478989000"
    }
  }
  ["maxBsonObjectSize"]=>
  int(16777216)
  ["maxMessageSizeBytes"]=>
  int(48000000)
  ["maxWriteBatchSize"]=>
  int(100000)
  ["localTime"]=>
  object(MongoDB\BSON\UTCDateTime)#10 (1) {
    ["milliseconds"]=>
    string(13) "1635478992136"
  }
  ["logicalSessionTimeoutMinutes"]=>
  int(30)
  ["connectionId"]=>
  int(3)
  ["minWireVersion"]=>
  int(0)
  ["maxWireVersion"]=>
  int(13)
  ["readOnly"]=>
  bool(false)
  ["ok"]=>
  float(1)
  ["$clusterTime"]=>
  array(2) {
    ["clusterTime"]=>
    object(MongoDB\BSON\Timestamp)#11 (2) {
      ["increment"]=>
      string(1) "1"
      ["timestamp"]=>
      string(10) "1635478989"
    }
    ["signature"]=>
    array(2) {
      ["hash"]=>
      object(MongoDB\BSON\Binary)#12 (2) {
        ["data"]=>
        string(20) ""
        ["type"]=>
        int(0)
      }
      ["keyId"]=>
      int(0)
    }
  }
  ["operationTime"]=>
  object(MongoDB\BSON\Timestamp)#13 (2) {
    ["increment"]=>
    string(1) "1"
    ["timestamp"]=>
    string(10) "1635478989"
  }
}

Historique

Version | Description
PECL mongodb 1.11.0 | Lorsque le pilote est connecté à un équilibreur de charge, cette méthode renvoie la réponse de la commande hello du serveur de backing à partir de la poignée de main de connexion initiale.

Voir aussi

  • MongoDB\Driver\ServerDescription::getHelloResponse() - Returns the server's most recent "hello" response
  • Commande » hello dans le manuel de MongoDB
  • » Spécification de la découverte et de la surveillance des serveurs


Retourne la latence de ce serveur en millisecondes

  • « MongoDB\Driver\Server::getInfo
  • MongoDB\Driver\Server::getPort »
  • PHP Manual
  • MongoDB\Driver\Server
  • Retourne la latence de ce serveur en millisecondes

MongoDB\Driver\Server::getLatency

(mongodb >=1.0.0)

MongoDB\Driver\Server::getLatency — Retourne la latence de ce serveur en millisecondes

Description

final public MongoDB\Driver\Server::getLatency(): ?integer

Retourne la latence de ce serveur en millisecondes. C'est la mesure cliente du temps d'un » aller/retour d'une commande hello.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la latence du serveur en millisecondes, ou null si aucune latence n'a été mesurée (par exemple, le client est connecté à un équilibreur de charge).

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Historique

Version | Description
PECL mongodb 1.11.0 | Cette méthode retournera null si aucune latence n'a été mesurée. Dans les versions antérieures, un nombre entier était toujours retourné et une valeur non définie pouvait être signalée comme -1.

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());

?>

Résultat de l'exemple ci-dessus est similaire à :

int(592)

Voir aussi

  • MongoDB\Driver\Server::getInfo() - Retourne un tableau d'informations décrivant ce serveur
  • MongoDB\Driver\ServerDescription::getRoundTripTime() - Returns the server's round trip time in milliseconds
  • » 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::getServerDescription »
  • 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 MongoDB\Driver\Server::getPort(): int

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 décrivant ce serveur
  • MongoDB\Driver\ServerDescription::getPort() - Returns the port on which this server is listening


Returns a ServerDescription for this server

  • « MongoDB\Driver\Server::getPort
  • MongoDB\Driver\Server::getTags »
  • PHP Manual
  • MongoDB\Driver\Server
  • Returns a ServerDescription for this server

MongoDB\Driver\Server::getServerDescription

(mongodb >=1.13.0)

MongoDB\Driver\Server::getServerDescription — Returns a ServerDescription for this server

Description

final public MongoDB\Driver\Server::getServerDescription(): MongoDB\Driver\ServerDescription

Returns a MongoDB\Driver\ServerDescription for this server. This is an immutable value object that will describe the server at the time this method is called.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a MongoDB\Driver\ServerDescription for this server.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


Returns an array of tags describing this server in a replica set

  • « MongoDB\Driver\Server::getServerDescription
  • 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 MongoDB\Driver\Server::getTags(): array

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 décrivant 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 MongoDB\Driver\Server::getType(): int

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 décrivant ce serveur
  • MongoDB\Driver\ServerDescription::getType() - Returns a string denoting the type of this server


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 MongoDB\Driver\Server::isArbiter(): bool

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 décrivant 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 MongoDB\Driver\Server::isHidden(): bool

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 décrivant 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 MongoDB\Driver\Server::isPassive(): bool

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 décrivant 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 MongoDB\Driver\Server::isPrimary(): bool

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 décrivant ce serveur


Checks if this server is a secondary member of a replica set

  • « MongoDB\Driver\Server::isPrimary
  • MongoDB\Driver\ServerDescription »
  • 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 MongoDB\Driver\Server::isSecondary(): bool

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 décrivant ce serveur


The MongoDB\Driver\ServerDescription class

(mongodb >=1.13.0)

Introduction

The MongoDB\Driver\ServerDescription class is a value object that represents a server to which the driver is connected. Instances of this class are returned by MongoDB\Driver\Server::getServerDescription() and MongoDB\Driver\Monitoring\ServerChangedEvent methods.

Synopsis de la classe

final class MongoDB\Driver\ServerDescription {
/* Constantes */
const string TYPE_UNKNOWN = "Unknown";
const string TYPE_STANDALONE = "Standalone";
const string TYPE_MONGOS = "Mongos";
const string TYPE_POSSIBLE_PRIMARY = "PossiblePrimary";
const string TYPE_RS_PRIMARY = "RSPrimary";
const string TYPE_RS_SECONDARY = "RSSecondary";
const string TYPE_RS_ARBITER = "RSArbiter";
const string TYPE_RS_OTHER = "RSOther";
const string TYPE_RS_GHOST = "RSGhost";
const string TYPE_LOAD_BALANCER = "LoadBalancer";
/* Méthodes */
final public getHelloResponse(): array
final public getHost(): string
final public getLastUpdateTime(): int
final public getPort(): int
final public getRoundTripTime(): ?int
final public getType(): string
}

Constantes pré-définies

MongoDB\Driver\ServerDescription::TYPE_UNKNOWN

Unknown server type, returned by MongoDB\Driver\ServerDescription::getType().

MongoDB\Driver\ServerDescription::TYPE_STANDALONE

Standalone server type, returned by MongoDB\Driver\ServerDescription::getType().

MongoDB\Driver\ServerDescription::TYPE_MONGOS

Mongos server type, returned by MongoDB\Driver\ServerDescription::getType().

MongoDB\Driver\ServerDescription::TYPE_POSSIBLE_PRIMARY

Replica set possible primary server type, returned by MongoDB\Driver\ServerDescription::getType().

A server may be identified as a possible primary if it has not yet been checked but another memory of the replica set thinks it is the primary.

MongoDB\Driver\ServerDescription::TYPE_RS_PRIMARY

Replica set primary server type, returned by MongoDB\Driver\ServerDescription::getType().

MongoDB\Driver\ServerDescription::TYPE_RS_SECONDARY

Replica set secondary server type, returned by MongoDB\Driver\ServerDescription::getType().

MongoDB\Driver\ServerDescription::TYPE_RS_ARBITER

Replica set arbiter server type, returned by MongoDB\Driver\ServerDescription::getType().

MongoDB\Driver\ServerDescription::TYPE_RS_OTHER

Replica set other server type, returned by MongoDB\Driver\ServerDescription::getType().

Such servers may be hidden, starting up, or recovering. They cannot be queried, but their hosts lists are useful for discovering the current replica set configuration.

MongoDB\Driver\ServerDescription::TYPE_RS_GHOST

Replica set ghost server type, returned by MongoDB\Driver\ServerDescription::getType().

Servers may be identified as such in at least three situations: briefly during server startup; in an uninitialized replica set; or when the server is shunned (i.e. removed from the replica set config). They cannot be queried, nor can their host list be used to discover the current replica set configuration; however, the client may monitor this server in hope that it transitions to a more useful state.

MongoDB\Driver\ServerDescription::TYPE_LOAD_BALANCER

Load balancer server type, returned by MongoDB\Driver\ServerDescription::getType().

Sommaire

  • MongoDB\Driver\ServerDescription::getHelloResponse — Returns the server's most recent "hello" response
  • MongoDB\Driver\ServerDescription::getHost — Returns the hostname of this server
  • MongoDB\Driver\ServerDescription::getLastUpdateTime — Returns the server's last update time in microseconds
  • MongoDB\Driver\ServerDescription::getPort — Returns the port on which this server is listening
  • MongoDB\Driver\ServerDescription::getRoundTripTime — Returns the server's round trip time in milliseconds
  • MongoDB\Driver\ServerDescription::getType — Returns a string denoting the type of this server


Returns the server's most recent "hello" response

  • « MongoDB\Driver\ServerDescription
  • MongoDB\Driver\ServerDescription::getHost »
  • PHP Manual
  • MongoDB\Driver\ServerDescription
  • Returns the server's most recent "hello" response

MongoDB\Driver\ServerDescription::getHelloResponse

(mongodb >=1.13.0)

MongoDB\Driver\ServerDescription::getHelloResponse — Returns the server's most recent "hello" response

Description

final public MongoDB\Driver\ServerDescription::getHelloResponse(): array

Returns an array of information describing the server. This array is derived from the most recent (at the time the MongoDB\Driver\ServerDescription was constructed) » hello command response obtained through » server monitoring.

Note:

When the driver is connected to a load balancer, this method will return an empty array since load balancers are not monitored. This is in contrast to MongoDB\Driver\Server::getInfo(), which would return the backing server's » hello command response from the initial connection handshake.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns an array of information describing this server.

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 décrivant ce serveur
  • » hello command in the MongoDB manual
  • » Server Discovery and Monitoring Specification


Returns the hostname of this server

  • « MongoDB\Driver\ServerDescription::getHelloResponse
  • MongoDB\Driver\ServerDescription::getLastUpdateTime »
  • PHP Manual
  • MongoDB\Driver\ServerDescription
  • Returns the hostname of this server

MongoDB\Driver\ServerDescription::getHost

(mongodb >=1.13.0)

MongoDB\Driver\ServerDescription::getHost — Returns the hostname of this server

Description

final public MongoDB\Driver\ServerDescription::getHost(): string

Returns the hostname of this server.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the hostname of this server.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\Driver\Server::getHost() - Retourne le nom d'hôte du serveur


Returns the server's last update time in microseconds

  • « MongoDB\Driver\ServerDescription::getHost
  • MongoDB\Driver\ServerDescription::getPort »
  • PHP Manual
  • MongoDB\Driver\ServerDescription
  • Returns the server's last update time in microseconds

MongoDB\Driver\ServerDescription::getLastUpdateTime

(mongodb >=1.13.0)

MongoDB\Driver\ServerDescription::getLastUpdateTime — Returns the server's last update time in microseconds

Description

final public MongoDB\Driver\ServerDescription::getLastUpdateTime(): int

Returns the server's last update time in microseconds.

Note: The returned value is a monotonic timestamp, which starts at an arbitrary point. As such, it is only suitable to compare with other return values from MongoDB\Driver\ServerDescription::getLastUpdateTime().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the server's last update time in microseconds.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


Returns the port on which this server is listening

  • « MongoDB\Driver\ServerDescription::getLastUpdateTime
  • MongoDB\Driver\ServerDescription::getRoundTripTime »
  • PHP Manual
  • MongoDB\Driver\ServerDescription
  • Returns the port on which this server is listening

MongoDB\Driver\ServerDescription::getPort

(mongodb >=1.13.0)

MongoDB\Driver\ServerDescription::getPort — Returns the port on which this server is listening

Description

final public MongoDB\Driver\ServerDescription::getPort(): int

Returns the port on which this server is listening.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the port on which this server is listening.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\Driver\Server::getPort() - Retourne le port sur lequel le serveur écoute


Returns the server's round trip time in milliseconds

  • « MongoDB\Driver\ServerDescription::getPort
  • MongoDB\Driver\ServerDescription::getType »
  • PHP Manual
  • MongoDB\Driver\ServerDescription
  • Returns the server's round trip time in milliseconds

MongoDB\Driver\ServerDescription::getRoundTripTime

(mongodb >=1.13.0)

MongoDB\Driver\ServerDescription::getRoundTripTime — Returns the server's round trip time in milliseconds

Description

final public MongoDB\Driver\ServerDescription::getRoundTripTime(): ?int

Returns the server's round trip time in milliseconds. This is the client's measurement of the duration of a » hello command.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the server's round trip time in milliseconds.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\Driver\Server::getLatency() - Retourne la latence de ce serveur en millisecondes


Returns a string denoting the type of this server

  • « MongoDB\Driver\ServerDescription::getRoundTripTime
  • MongoDB\Driver\TopologyDescription »
  • PHP Manual
  • MongoDB\Driver\ServerDescription
  • Returns a string denoting the type of this server

MongoDB\Driver\ServerDescription::getType

(mongodb >=1.13.0)

MongoDB\Driver\ServerDescription::getType — Returns a string denoting the type of this server

Description

final public MongoDB\Driver\ServerDescription::getType(): string

Returns a string denoting the type of this server. The value will correlate with a MongoDB\Driver\ServerDescription constant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a string denoting the type of this server.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\Driver\Server::getType() - Retourne un entier représentant le type du serveur


The MongoDB\Driver\TopologyDescription class

(mongodb >=1.13.0)

Introduction

The MongoDB\Driver\TopologyDescription class is a value object that represents a topology to which the driver is connected. Instances of this class are returned by MongoDB\Driver\Monitoring\TopologyChangedEvent methods.

Synopsis de la classe

final class MongoDB\Driver\TopologyDescription {
/* Constantes */
const string TYPE_UNKNOWN = "Unknown";
const string TYPE_SINGLE = "Single";
const string TYPE_SHARDED = "Sharded";
const string TYPE_REPLICA_SET_NO_PRIMARY = "ReplicaSetNoPrimary";
const string TYPE_REPLICA_SET_WITH_PRIMARY = "ReplicaSetWithPrimary";
const string TYPE_LOAD_BALANCED = "LoadBalanced";
/* Méthodes */
final public getServers(): array
final public getType(): string
final public hasReadableServer(?MongoDB\Driver\ReadPreference $readPreference = null): bool
final public hasWritableServer(): bool
}

Constantes pré-définies

MongoDB\Driver\TopologyDescription::TYPE_UNKNOWN

Unknown topology type, returned by MongoDB\Driver\TopologyDescription::getType().

MongoDB\Driver\TopologyDescription::TYPE_SINGLE

Single server (i.e. direct connection), returned by MongoDB\Driver\TopologyDescription::getType().

MongoDB\Driver\TopologyDescription::TYPE_SHARDED

Sharded cluster, returned by MongoDB\Driver\TopologyDescription::getType().

MongoDB\Driver\TopologyDescription::TYPE_REPLICA_SET_NO_PRIMARY

Replica set with no primary server, returned by MongoDB\Driver\TopologyDescription::getType().

MongoDB\Driver\TopologyDescription::TYPE_REPLICA_SET_WITH_PRIMARY

Replica set with a primary server, returned by MongoDB\Driver\TopologyDescription::getType().

MongoDB\Driver\TopologyDescription::TYPE_LOAD_BALANCED

Load balanced topology, returned by MongoDB\Driver\TopologyDescription::getType().

Sommaire

  • MongoDB\Driver\TopologyDescription::getServers — Returns the servers in the topology
  • MongoDB\Driver\TopologyDescription::getType — Returns a string denoting the type of this topology
  • MongoDB\Driver\TopologyDescription::hasReadableServer — Returns whether the topology has a readable server
  • MongoDB\Driver\TopologyDescription::hasWritableServer — Returns whether the topology has a writable server


Returns the servers in the topology

  • « MongoDB\Driver\TopologyDescription
  • MongoDB\Driver\TopologyDescription::getType »
  • PHP Manual
  • MongoDB\Driver\TopologyDescription
  • Returns the servers in the topology

MongoDB\Driver\TopologyDescription::getServers

(mongodb >=1.13.0)

MongoDB\Driver\TopologyDescription::getServers — Returns the servers in the topology

Description

final public MongoDB\Driver\TopologyDescription::getServers(): array

Returns an array of MongoDB\Driver\ServerDescription objects corresponding to the known servers in the topology.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns an array of MongoDB\Driver\ServerDescription objects corresponding to the known servers in the topology.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


Returns a string denoting the type of this topology

  • « MongoDB\Driver\TopologyDescription::getServers
  • MongoDB\Driver\TopologyDescription::hasReadableServer »
  • PHP Manual
  • MongoDB\Driver\TopologyDescription
  • Returns a string denoting the type of this topology

MongoDB\Driver\TopologyDescription::getType

(mongodb >=1.13.0)

MongoDB\Driver\TopologyDescription::getType — Returns a string denoting the type of this topology

Description

final public MongoDB\Driver\TopologyDescription::getType(): string

Returns a string denoting the type of this topology. The value will correlate with a MongoDB\Driver\TopologyDescription constant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a string denoting the type of this topology.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


Returns whether the topology has a readable server

  • « MongoDB\Driver\TopologyDescription::getType
  • MongoDB\Driver\TopologyDescription::hasWritableServer »
  • PHP Manual
  • MongoDB\Driver\TopologyDescription
  • Returns whether the topology has a readable server

MongoDB\Driver\TopologyDescription::hasReadableServer

(mongodb >=1.13.0)

MongoDB\Driver\TopologyDescription::hasReadableServer — Returns whether the topology has a readable server

Description

final public MongoDB\Driver\TopologyDescription::hasReadableServer(?MongoDB\Driver\ReadPreference $readPreference = null): bool

Returns whether the topology has a readable server or, if readPreference is specified, a server matching the specified read preference.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns whether the topology has a readable server or, if readPreference is specified, a server matching the specified read preference.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


Returns whether the topology has a writable server

  • « MongoDB\Driver\TopologyDescription::hasReadableServer
  • MongoDB\Driver\WriteConcernError »
  • PHP Manual
  • MongoDB\Driver\TopologyDescription
  • Returns whether the topology has a writable server

MongoDB\Driver\TopologyDescription::hasWritableServer

(mongodb >=1.13.0)

MongoDB\Driver\TopologyDescription::hasWritableServer — Returns whether the topology has a writable server

Description

final public MongoDB\Driver\TopologyDescription::hasWritableServer(): bool

Returns whether the topology has a writable server.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns whether the topology has a writable server.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


La classe MongoDB\Driver\WriteConcernError

(mongodb >=1.0.0)

Introduction

La classe MongoDB\Driver\WriteConcernError contient des informations relative à une erreur concernant l'écriture et peut être retournée par MongoDB\Driver\WriteResult::getWriteConcernError().

Synopsis de la classe

final class MongoDB\Driver\WriteConcernError {
/* Méthodes */
final public getCode(): int
final public getInfo(): ?object
final public getMessage(): string
}

Sommaire

  • MongoDB\Driver\WriteConcernError::getCode — Retourne le code d'erreur de WriteConcernError
  • MongoDB\Driver\WriteConcernError::getInfo — Retourne le document de métadonnées pour WriteConcernError
  • MongoDB\Driver\WriteConcernError::getMessage — Renvoie le message d'erreur du WriteConcernError


Retourne le code d'erreur de WriteConcernError

  • « MongoDB\Driver\WriteConcernError
  • MongoDB\Driver\WriteConcernError::getInfo »
  • PHP Manual
  • MongoDB\Driver\WriteConcernError
  • Retourne le code d'erreur de WriteConcernError

MongoDB\Driver\WriteConcernError::getCode

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcernError::getCode — Retourne le code d'erreur de WriteConcernError

Description

final public MongoDB\Driver\WriteConcernError::getCode(): int

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le code d'erreur de WriteConcernError

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\WriteConcernError::getCode()

<?php

$manager = new MongoDB\Driver\Manager("mongodb://rs1.example.com,rs2.example.com/?replicaSet=myReplicaSet");

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);

$writeConcern = new MongoDB\Driver\WriteConcern(2, 1);

try {
$manager->executeBulkWrite('db.collection', $bulk, $writeConcern);
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
var_dump($e->getWriteResult()->getWriteConcernError()->getCode());
}

?>

Résultat de l'exemple ci-dessus est similaire à :

int(64)

Voir aussi

  • » Référence Write Concern


Retourne le document de métadonnées pour WriteConcernError

  • « MongoDB\Driver\WriteConcernError::getCode
  • MongoDB\Driver\WriteConcernError::getMessage »
  • PHP Manual
  • MongoDB\Driver\WriteConcernError
  • Retourne le document de métadonnées pour WriteConcernError

MongoDB\Driver\WriteConcernError::getInfo

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcernError::getInfo — Retourne le document de métadonnées pour WriteConcernError

Description

final public MongoDB\Driver\WriteConcernError::getInfo(): ?object

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le document de métadonnées pour WriteConcernError, ou null si aucune métadonnée n'est disponible.

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\WriteConcernError::getInfo()

<?php

$manager = new MongoDB\Driver\Manager("mongodb://rs1.example.com,rs2.example.com/?replicaSet=myReplicaSet");

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);

$writeConcern = new MongoDB\Driver\WriteConcern(2, 1);

try {
$manager->executeBulkWrite('db.collection', $bulk, $writeConcern);
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
var_dump($e->getWriteResult()->getWriteConcernError()->getInfo());
}

?>

Résultat de l'exemple ci-dessus est similaire à :

object(stdClass)#1 (1) {
  ["wtimeout"]=>
  bool(true)
}

Voir aussi

  • » Référence Write Concern


Renvoie le message d'erreur du WriteConcernError

  • « MongoDB\Driver\WriteConcernError::getInfo
  • MongoDB\Driver\WriteError »
  • PHP Manual
  • MongoDB\Driver\WriteConcernError
  • Renvoie le message d'erreur du WriteConcernError

MongoDB\Driver\WriteConcernError::getMessage

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcernError::getMessage — Renvoie le message d'erreur du WriteConcernError

Description

final public MongoDB\Driver\WriteConcernError::getMessage(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Renvoie le message d'erreur du WriteConcernError

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\WriteConcernError::getMessage()

<?php

$manager = new MongoDB\Driver\Manager("mongodb://rs1.example.com,rs2.example.com/?replicaSet=myReplicaSet");

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);

$writeConcern = new MongoDB\Driver\WriteConcern(2, 1);

try {
$manager->executeBulkWrite('db.collection', $bulk, $writeConcern);
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
var_dump($e->getWriteResult()->getWriteConcernError()->getMessage());
}

?>

Résultat de l'exemple ci-dessus est similaire à :

string(33) "waiting for replication timed out"

Voir aussi

  • » Référence Write Concern


La classe MongoDB\Driver\WriteError

(mongodb >=1.0.0)

Introduction

La classe MongoDB\Driver\WriteError contient des informations sur une erreur d'écriture et peut être retournée en tant qu'élément d'un tableau à partir de MongoDB\Driver\WriteResult::getWriteErrors().

Synopsis de la classe

final class MongoDB\Driver\WriteError {
/* Méthodes */
final public getCode(): int
final public getIndex(): int
final public getInfo(): ?object
final public getMessage(): string
}

Sommaire

  • MongoDB\Driver\WriteError::getCode — Retourne le code d'erreur de WriteError
  • MongoDB\Driver\WriteError::getIndex — Retourne l'index de l'opération d'écriture correspondant à ce WriteError
  • MongoDB\Driver\WriteError::getInfo — Retourne le document de métadonnées pour WriteError
  • MongoDB\Driver\WriteError::getMessage — Renvoie le message d'erreur du WriteError


Retourne le code d'erreur de WriteError

  • « MongoDB\Driver\WriteError
  • MongoDB\Driver\WriteError::getIndex »
  • PHP Manual
  • MongoDB\Driver\WriteError
  • Retourne le code d'erreur de WriteError

MongoDB\Driver\WriteError::getCode

(mongodb >=1.0.0)

MongoDB\Driver\WriteError::getCode — Retourne le code d'erreur de WriteError

Description

final public MongoDB\Driver\WriteError::getCode(): int

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le code d'erreur de WriteError

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\WriteError::getCode()

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['_id' => 1]);
$bulk->insert(['_id' => 1]);

try {
$manager->executeBulkWrite('db.collection', $bulk);
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
var_dump($e->getWriteResult()->getWriteErrors()[0]->getCode());
}

?>

Résultat de l'exemple ci-dessus est similaire à :

int(11000)


Retourne l'index de l'opération d'écriture correspondant à ce WriteError

  • « MongoDB\Driver\WriteError::getCode
  • MongoDB\Driver\WriteError::getInfo »
  • PHP Manual
  • MongoDB\Driver\WriteError
  • Retourne l'index de l'opération d'écriture correspondant à ce WriteError

MongoDB\Driver\WriteError::getIndex

(mongodb >=1.0.0)

MongoDB\Driver\WriteError::getIndex — Retourne l'index de l'opération d'écriture correspondant à ce WriteError

Description

final public MongoDB\Driver\WriteError::getIndex(): int

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'index de l'opération d'écriture (à partir de MongoDBDriverBulkWrite) correspondant à ce WriteError.

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\WriteError::getIndex()

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['_id' => 1]);
$bulk->insert(['_id' => 1]);

try {
$manager->executeBulkWrite('db.collection', $bulk);
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
var_dump($e->getWriteResult()->getWriteErrors()[0]->getIndex());
}

?>

Résultat de l'exemple ci-dessus est similaire à :

int(1)

Voir aussi

  • MongoDB\Driver\BulkWrite


Retourne le document de métadonnées pour WriteError

  • « MongoDB\Driver\WriteError::getIndex
  • MongoDB\Driver\WriteError::getMessage »
  • PHP Manual
  • MongoDB\Driver\WriteError
  • Retourne le document de métadonnées pour WriteError

MongoDB\Driver\WriteError::getInfo

(mongodb >=1.0.0)

MongoDB\Driver\WriteError::getInfo — Retourne le document de métadonnées pour WriteError

Description

final public MongoDB\Driver\WriteError::getInfo(): ?object

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le document de métadonnées pour WriteError, ou null s'il n'y a pas de métadonnées disponible.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


Renvoie le message d'erreur du WriteError

  • « MongoDB\Driver\WriteError::getInfo
  • MongoDB\Driver\WriteResult »
  • PHP Manual
  • MongoDB\Driver\WriteError
  • Renvoie le message d'erreur du WriteError

MongoDB\Driver\WriteError::getMessage

(mongodb >=1.0.0)

MongoDB\Driver\WriteError::getMessage — Renvoie le message d'erreur du WriteError

Description

final public MongoDB\Driver\WriteError::getMessage(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Renvoie le message d'erreur du WriteError.

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\WriteError::getMessage()

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['_id' => 1]);
$bulk->insert(['_id' => 1]);

try {
$manager->executeBulkWrite('db.collection', $bulk);
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
var_dump($e->getWriteResult()->getWriteErrors()[0]->getMessage());
}

?>

Résultat de l'exemple ci-dessus est similaire à :

string(70) "E11000 duplicate key error index: db.collection.$_id_ dup key: { : 1 }"


La classe MongoDB\Driver\WriteResult

(mongodb >=1.0.0)

Introduction

La classe MongoDB\Driver\WriteResult contient les informations sur une exécution MongoDB\Driver\BulkWrite et peut être retourné par MongoDB\Driver\Manager::executeBulkWrite().

Synopsis de la classe

final class MongoDB\Driver\WriteResult {
/* Méthodes */
final public getDeletedCount(): ?int
final public getInsertedCount(): ?int
final public getMatchedCount(): ?int
final public getModifiedCount(): ?int
final public getServer(): MongoDB\Driver\Server
final public getUpsertedCount(): ?int
final public getUpsertedIds(): array
final public getWriteConcernError(): ?MongoDB\Driver\WriteConcernError
final public getWriteErrors(): array
final public isAcknowledged(): bool
}

Sommaire

  • MongoDB\Driver\WriteResult::getDeletedCount — Renvoie le nombre de documents supprimés
  • MongoDB\Driver\WriteResult::getInsertedCount — Renvoie le nombre de documents insérés (à l'exception de Upserts)
  • MongoDB\Driver\WriteResult::getMatchedCount — Renvoie le nombre de documents sélectionnés pour la mise à jour
  • MongoDB\Driver\WriteResult::getModifiedCount — Renvoie le nombre de documents existants mis à jour
  • MongoDB\Driver\WriteResult::getServer — Retourne le serveur associé à ce résultat d'écriture
  • MongoDB\Driver\WriteResult::getUpsertedCount — Renvoie le nombre de documents insérés par un upsert
  • MongoDB\Driver\WriteResult::getUpsertedIds — Retourne un tableau d'identificateurs pour les documents upserted
  • MongoDB\Driver\WriteResult::getWriteConcernError — Retourne toute erreur de WriteConcern qui s'est produite
  • MongoDB\Driver\WriteResult::getWriteErrors — Retourne toutes les erreurs d'écriture qui se sont produites
  • MongoDB\Driver\WriteResult::isAcknowledged — Retourne si l'écriture a été reconnue


Renvoie le nombre de documents supprimés

  • « MongoDB\Driver\WriteResult
  • MongoDB\Driver\WriteResult::getInsertedCount »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Renvoie le nombre de documents supprimés

MongoDB\Driver\WriteResult::getDeletedCount

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getDeletedCount — Renvoie le nombre de documents supprimés

Description

final public MongoDB\Driver\WriteResult::getDeletedCount(): ?int

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Renvoie le nombre de documents supprimés, ou null si l'écriture n'a pas été validé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\WriteResult::getDeletedCount()

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->update(['x' => 1], ['$set' => ['y' => 3]]);
$bulk->update(['x' => 2], ['$set' => ['y' => 1]], ['upsert' => true]);
$bulk->update(['x' => 3], ['$set' => ['y' => 2]], ['upsert' => true]);
$bulk->delete(['x' => 1]);

$result = $manager->executeBulkWrite('db.collection', $bulk);

var_dump($result->getDeletedCount());

?>

Résultat de l'exemple ci-dessus est similaire à :

int(1)

Voir aussi

  • MongoDB\Driver\WriteResult::isAcknowledged() - Retourne si l'écriture a été reconnue


Renvoie le nombre de documents insérés (à l'exception de Upserts)

  • « MongoDB\Driver\WriteResult::getDeletedCount
  • MongoDB\Driver\WriteResult::getMatchedCount »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Renvoie le nombre de documents insérés (à l'exception de Upserts)

MongoDB\Driver\WriteResult::getInsertedCount

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getInsertedCount — Renvoie le nombre de documents insérés (à l'exception de Upserts)

Description

final public MongoDB\Driver\WriteResult::getInsertedCount(): ?int

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Renvoie le nombre de documents insérés (à l'exception de Upserts permettent), ou null si l'écriture n'a pas été validé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\WriteResult::getInsertedCount()

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->update(['x' => 1], ['$set' => ['y' => 3]]);
$bulk->update(['x' => 2], ['$set' => ['y' => 1]], ['upsert' => true]);
$bulk->update(['x' => 3], ['$set' => ['y' => 2]], ['upsert' => true]);
$bulk->delete(['x' => 1]);

$result = $manager->executeBulkWrite('db.collection', $bulk);

var_dump($result->getInsertedCount());

?>

Résultat de l'exemple ci-dessus est similaire à :

int(1)

Voir aussi

  • MongoDB\Driver\WriteResult::isAcknowledged() - Retourne si l'écriture a été reconnue


Renvoie le nombre de documents sélectionnés pour la mise à jour

  • « MongoDB\Driver\WriteResult::getInsertedCount
  • MongoDB\Driver\WriteResult::getModifiedCount »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Renvoie le nombre de documents sélectionnés pour la mise à jour

MongoDB\Driver\WriteResult::getMatchedCount

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getMatchedCount — Renvoie le nombre de documents sélectionnés pour la mise à jour

Description

final public MongoDB\Driver\WriteResult::getMatchedCount(): ?int

Si l'opération de mise à jour n'entraîne aucune modification du document (par exemple, en définissant la valeur d'un champ sur sa valeur actuelle), le nombre correspondant peut être supérieur à la valeur retournée par MongoDB\Driver\WriteResult::getModifiedCount().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre de documents sélectionnés pour la mis à jour, ou null si l'écriture n'a pas été validé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\WriteResult::getMatchedCount()

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->update(['x' => 1], ['$set' => ['y' => 3]]);
$bulk->update(['x' => 2], ['$set' => ['y' => 1]], ['upsert' => true]);
$bulk->update(['x' => 3], ['$set' => ['y' => 2]], ['upsert' => true]);
$bulk->delete(['x' => 1]);

$result = $manager->executeBulkWrite('db.collection', $bulk);

var_dump($result->getMatchedCount());

?>

Résultat de l'exemple ci-dessus est similaire à :

int(1)

Voir aussi

  • MongoDB\Driver\WriteResult::getModifiedCount() - Renvoie le nombre de documents existants mis à jour
  • MongoDB\Driver\WriteResult::isAcknowledged() - Retourne si l'écriture a été reconnue


Renvoie le nombre de documents existants mis à jour

  • « MongoDB\Driver\WriteResult::getMatchedCount
  • MongoDB\Driver\WriteResult::getServer »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Renvoie le nombre de documents existants mis à jour

MongoDB\Driver\WriteResult::getModifiedCount

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getModifiedCount — Renvoie le nombre de documents existants mis à jour

Description

final public MongoDB\Driver\WriteResult::getModifiedCount(): ?int

Si l'opération de mise à jour n'entraîne aucune modification du document (par exemple, en définissant la valeur d'un champ sur sa valeur actuelle), le nombre modifié peut être inférieur à la valeur retournée par MongoDB\Driver\WriteResult::getMatchedCount().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre de documents existants mis à jour, ou null si l'écriture n'a pas été validée.

Le nombre modifié n'est pas disponible sur les versions de MongoDB avant 2.6, qui utilisaient la version héritée du protocole Wire (i.e. OP_UPDATE). Si tel est le cas, le nombre modifié sera null.

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\WriteResult::getModifiedCount()

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->update(['x' => 1], ['$set' => ['y' => 3]]);
$bulk->update(['x' => 2], ['$set' => ['y' => 1]], ['upsert' => true]);
$bulk->update(['x' => 3], ['$set' => ['y' => 2]], ['upsert' => true]);
$bulk->delete(['x' => 1]);

$result = $manager->executeBulkWrite('db.collection', $bulk);

var_dump($result->getModifiedCount());

?>

Résultat de l'exemple ci-dessus est similaire à :

int(1)

Voir aussi

  • MongoDB\Driver\WriteResult::getMatchedCount() - Renvoie le nombre de documents sélectionnés pour la mise à jour
  • MongoDB\Driver\WriteResult::isAcknowledged() - Retourne si l'écriture a été reconnue


Retourne le serveur associé à ce résultat d'écriture

  • « MongoDB\Driver\WriteResult::getModifiedCount
  • MongoDB\Driver\WriteResult::getUpsertedCount »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Retourne le serveur associé à ce résultat d'écriture

MongoDB\Driver\WriteResult::getServer

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getServer — Retourne le serveur associé à ce résultat d'écriture

Description

final public MongoDB\Driver\WriteResult::getServer(): MongoDB\Driver\Server

Retourne le MongoDB\Driver\Server associé à ce résultat d'écriture. Il s'agit du serveur qui a exécuté le MongoDB\Driver\BulkWrite.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le MongoDB\Driver\Server associé à ce résultat d'écriture.

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\WriteResult::getServer()

<?php

$manager = new MongoDB\Driver\Manager;
$server = $manager->selectServer(new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY));

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);

$result = $server->executeBulkWrite('db.collection', $bulk);

var_dump($result->getServer() == $server);

?>

Résultat de l'exemple ci-dessus est similaire à :

bool(true)

Voir aussi

  • MongoDB\Driver\Server


Renvoie le nombre de documents insérés par un upsert

  • « MongoDB\Driver\WriteResult::getServer
  • MongoDB\Driver\WriteResult::getUpsertedIds »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Renvoie le nombre de documents insérés par un upsert

MongoDB\Driver\WriteResult::getUpsertedCount

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getUpsertedCount — Renvoie le nombre de documents insérés par un upsert

Description

final public MongoDB\Driver\WriteResult::getUpsertedCount(): ?int

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Renvoie le nombre de documents insérés par un upsert.

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\WriteResult::getUpsertedCount()

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->update(['x' => 1], ['$set' => ['y' => 3]]);
$bulk->update(['x' => 2], ['$set' => ['y' => 1]], ['upsert' => true]);
$bulk->update(['x' => 3], ['$set' => ['y' => 2]], ['upsert' => true]);
$bulk->delete(['x' => 1]);

$result = $manager->executeBulkWrite('db.collection', $bulk);

var_dump($result->getUpsertedCount());

?>

Résultat de l'exemple ci-dessus est similaire à :

int(2)

Voir aussi

  • MongoDB\Driver\WriteResult::getUpsertedIds() - Retourne un tableau d'identificateurs pour les documents upserted
  • MongoDB\Driver\WriteResult::isAcknowledged() - Retourne si l'écriture a été reconnue


Retourne un tableau d'identificateurs pour les documents upserted

  • « MongoDB\Driver\WriteResult::getUpsertedCount
  • MongoDB\Driver\WriteResult::getWriteConcernError »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Retourne un tableau d'identificateurs pour les documents upserted

MongoDB\Driver\WriteResult::getUpsertedIds

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getUpsertedIds — Retourne un tableau d'identificateurs pour les documents upserted

Description

final public MongoDB\Driver\WriteResult::getUpsertedIds(): array

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau d'identificateurs (par exemple la valeur du champ "_id") pour les documents upserted. Les clés de tableau correspondent à l'index de l'opération d'écriture (à partir de MongoDBDriverBulkWrite) responsable du upsert.

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\WriteResult::getUpsertedIds()

<?php

$manager = new MongoDB\Driver\Manager;

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->update(['x' => 1], ['$set' => ['y' => 3]]);
$bulk->update(['x' => 2], ['$set' => ['y' => 1]], ['upsert' => true]);
$bulk->update(['x' => 3], ['$set' => ['y' => 2]], ['upsert' => true]);
$bulk->delete(['x' => 1]);

$result = $manager->executeBulkWrite('db.collection', $bulk);

var_dump($result->getUpsertedIds());

?>

Résultat de l'exemple ci-dessus est similaire à :

array(2) {
  [2]=>
  object(MongoDB\BSON\ObjectId)#4 (1) {
    ["oid"]=>
    string(24) "580e62a224f2302f191b880b"
  }
  [3]=>
  object(MongoDB\BSON\ObjectId)#5 (1) {
    ["oid"]=>
    string(24) "580e62a224f2302f191b880c"
  }
}

Voir aussi

  • MongoDB\Driver\WriteResult::getUpsertedCount() - Renvoie le nombre de documents insérés par un upsert
  • MongoDB\Driver\WriteResult::isAcknowledged() - Retourne si l'écriture a été reconnue


Retourne toute erreur de WriteConcern qui s'est produite

  • « MongoDB\Driver\WriteResult::getUpsertedIds
  • MongoDB\Driver\WriteResult::getWriteErrors »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Retourne toute erreur de WriteConcern qui s'est produite

MongoDB\Driver\WriteResult::getWriteConcernError

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getWriteConcernError — Retourne toute erreur de WriteConcern qui s'est produite

Description

final public MongoDB\Driver\WriteResult::getWriteConcernError(): ?MongoDB\Driver\WriteConcernError

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un MongoDBDriverWriteConcernError si une erreur de préoccupation d'écriture a été rencontrée pendant l'opération d'écriture, et null sinon.

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\WriteResult::getWriteConcernError()

<?php

$manager = new MongoDB\Driver\Manager("mongodb://rs1.example.com,rs2.example.com/?replicaSet=myReplicaSet");

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);

$writeConcern = new MongoDB\Driver\WriteConcern(2, 1);

try {
$manager->executeBulkWrite('db.collection', $bulk, $writeConcern);
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
var_dump($e->getWriteResult()->getWriteConcernError());
}

?>

Résultat de l'exemple ci-dessus est similaire à :

object(MongoDB\Driver\WriteConcernError)#6 (3) {
  ["message"]=>
  string(33) "waiting for replication timed out"
  ["code"]=>
  int(64)
  ["info"]=>
  object(stdClass)#7 (1) {
    ["wtimeout"]=>
    bool(true)
  }
}

Voir aussi

  • MongoDB\Driver\WriteConcern
  • » Référence Write Concern


Retourne toutes les erreurs d'écriture qui se sont produites

  • « MongoDB\Driver\WriteResult::getWriteConcernError
  • MongoDB\Driver\WriteResult::isAcknowledged »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Retourne toutes les erreurs d'écriture qui se sont produites

MongoDB\Driver\WriteResult::getWriteErrors

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getWriteErrors — Retourne toutes les erreurs d'écriture qui se sont produites

Description

final public MongoDB\Driver\WriteResult::getWriteErrors(): array

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau d'objets MongoDBDriverWriteError pour toutes les erreurs d'écriture rencontrées pendant l'opération d'écriture. Le tableau sera vide si aucune erreur d'écriture n'est survenue.

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::getWriteErrors() avec une seule erreur

<?php

$manager = new MongoDB\Driver\Manager;

/* Par défaut, les opérations d'écriture en bloc sont exécutées en série dans
* l'ordre et l'exécution s'arrêtera après la première erreur.
*/
$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['_id' => 1]);
$bulk->insert(['_id' => 2]);
$bulk->insert(['_id' => 2]);
$bulk->insert(['_id' => 3]);
$bulk->insert(['_id' => 4]);
$bulk->insert(['_id' => 4]);

try {
$result = $manager->executeBulkWrite('db.collection', $bulk);
} catch (MongoDB\Driver\Exception\BulkWriteException $e) {
var_dump($e->getWriteResult()->getWriteErrors());
}

?>

Résultat de l'exemple ci-dessus est similaire à :

array(1) {
  [0]=>
  object(MongoDB\Driver\WriteError)#5 (4) {
    ["message"]=>
    string(81) "E11000 duplicate key error collection: db.collection index: _id_ dup key: { : 2 }"
    ["code"]=>
    int(11000)
    ["index"]=>
    int(2)
    ["info"]=>
    NULL
  }
}

Exemple #2 MongoDB\Driver\WriteResult::getWriteErrors() avec plusieurs erreurs

<?php

$manager = new MongoDB\Driver\Manager;

/* L'option "ordered" peut être utilisée pour permettre aux opérations
* d'écriture en bloc de continuer à s'exécuter après la première erreur.
*/
$bulk = new MongoDB\Driver\BulkWrite(['ordered' => false]);
$bulk->insert(['_id' => 1]);
$bulk->insert(['_id' => 2]);
$bulk->insert(['_id' => 2]);
$bulk->insert(['_id' => 3]);
$bulk->insert(['_id' => 4]);
$bulk->insert(['_id' => 4]);

try {
$result = $manager->executeBulkWrite('db.collection', $bulk);
} catch (MongoDB\Driver\Exception\BulkWriteException $e) {
var_dump($e->getWriteResult()->getWriteErrors());
}

?>

Résultat de l'exemple ci-dessus est similaire à :

array(2) {
  [0]=>
  object(MongoDB\Driver\WriteError)#5 (4) {
    ["message"]=>
    string(81) "E11000 duplicate key error collection: db.collection index: _id_ dup key: { : 2 }"
    ["code"]=>
    int(11000)
    ["index"]=>
    int(2)
    ["info"]=>
    NULL
  }
  [1]=>
  object(MongoDB\Driver\WriteError)#6 (4) {
    ["message"]=>
    string(81) "E11000 duplicate key error collection: db.collection index: _id_ dup key: { : 4 }"
    ["code"]=>
    int(11000)
    ["index"]=>
    int(5)
    ["info"]=>
    NULL
  }
}

Voir aussi

  • MongoDB\Driver\WriteError


Retourne si l'écriture a été reconnue

  • « MongoDB\Driver\WriteResult::getWriteErrors
  • MongoDB\BSON »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Retourne si l'écriture a été reconnue

MongoDB\Driver\WriteResult::isAcknowledged

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::isAcknowledged — Retourne si l'écriture a été reconnue

Description

final public MongoDB\Driver\WriteResult::isAcknowledged(): bool

Si l'écriture a été reconnue, d'autres champs de comptage seront disponible pour l'objet MongoDB\Driver\WriteResult.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true si l'écriture a été reconnue, et false sinon.

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() avec la préocupation d'écriture reconnue

<?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() avec la préocupation d'écriture non reconnue

<?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
  • » Référence sur la Préocupation d'Écriture


Classes de types BSON et fonctions de sérialisation

  • Fonctions
    • MongoDB\BSON\fromJSON — Retourne la représentation BSON d'une valeur JSON
    • MongoDB\BSON\fromPHP — Retourne la représentation BSON d'une valeur PHP
    • MongoDB\BSON\toCanonicalExtendedJSON — Returns the Canonical Extended JSON representation of a BSON value
    • MongoDB\BSON\toJSON — Retourne la représentation JSON étendue héritée d'une valeur BSON
    • MongoDB\BSON\toPHP — Returns the PHP representation of a BSON value
    • MongoDB\BSON\toRelaxedExtendedJSON — Returns the Relaxed Extended JSON representation of a BSON value
  • MongoDB\BSON\Document — The MongoDB\BSON\Document class
    • MongoDB\BSON\Document::__construct — Construct a new BSON document (unused)
    • MongoDB\BSON\Document::fromBSON — Construct a new document instance from a BSON string
    • MongoDB\BSON\Document::fromJSON — Construct a new document instance from a JSON string
    • MongoDB\BSON\Document::fromPHP — Construct a new document instance from PHP data
    • MongoDB\BSON\Document::get — Returns the value of a key in the document
    • MongoDB\BSON\Document::getIterator — Returns an iterator for the BSON document
    • MongoDB\BSON\Document::has — Returns whether a key is present in the document
    • MongoDB\BSON\Document::serialize — Serialize a Document
    • MongoDB\BSON\Document::toCanonicalExtendedJSON — Returns the Canonical Extended JSON representation of the BSON document
    • MongoDB\BSON\Document::toPHP — Returns the PHP representation of the BSON document
    • MongoDB\BSON\Document::toRelaxedExtendedJSON — Returns the Relaxed Extended JSON representation of the BSON document
    • MongoDB\BSON\Document::__toString — Returns the string representation of this BSON Document
    • MongoDB\BSON\Document::unserialize — Unserialize a BSON document
  • MongoDB\BSON\PackedArray — The MongoDB\BSON\PackedArray class
    • MongoDB\BSON\PackedArray::__construct — Construct a new BSON array (unused)
    • MongoDB\BSON\PackedArray::fromPHP — Construct a new BSON array instance from PHP data
    • MongoDB\BSON\PackedArray::get — Returns the value of an index in the array
    • MongoDB\BSON\PackedArray::getIterator — Returns an iterator for the BSON array
    • MongoDB\BSON\PackedArray::has — Returns whether a index is present in the array
    • MongoDB\BSON\PackedArray::serialize — Serialize a BSON array
    • MongoDB\BSON\PackedArray::toPHP — Returns the PHP representation of the BSON array
    • MongoDB\BSON\PackedArray::__toString — Returns the string representation of this BSON array
    • MongoDB\BSON\PackedArray::unserialize — Unserialize a BSON array
  • MongoDB\BSON\Iterator — The MongoDB\BSON\Iterator class
    • MongoDB\BSON\Iterator::__construct — Construct a new BSON iterator (unused)
    • MongoDB\BSON\Iterator::current — Returns the current element
    • MongoDB\BSON\Iterator::key — Returns the key of the current element
    • MongoDB\BSON\Iterator::next — Advances the iterator to next element
    • MongoDB\BSON\Iterator::rewind — Rewinds the Iterator to the first element
    • MongoDB\BSON\Iterator::valid — Checks if current position is valid
  • MongoDB\BSON\Binary — La classe MongoDB\BSON\Binary
    • MongoDB\BSON\Binary::__construct — Construit un nouveau binaire
    • MongoDB\BSON\Binary::getData — Retourne les données de Binary
    • MongoDB\BSON\Binary::getType — Retourne le type de Binary
    • MongoDB\BSON\Binary::jsonSerialize — Retourne une représentation qui peut être convertie en JSON
    • MongoDB\BSON\Binary::serialize — Sérialise un Binary
    • MongoDB\BSON\Binary::__toString — Retourne les données de Binary
    • MongoDB\BSON\Binary::unserialize — Désérialise un Binary
  • MongoDB\BSON\Decimal128 — The MongoDB\BSON\Decimal128 class
    • MongoDB\BSON\Decimal128::__construct — Construit un nouveau Decimal128
    • MongoDB\BSON\Decimal128::jsonSerialize — Retourne une représentation qui peut être convertie en JSON
    • MongoDB\BSON\Decimal128::serialize — Sérialise un Decimal128
    • MongoDB\BSON\Decimal128::__toString — Retourne la représentation sous forme de chaîne de caractère de Decimal128
    • MongoDB\BSON\Decimal128::unserialize — Désérialisé un Decimal128
  • MongoDB\BSON\Javascript — La classe MongoDB\BSON\Javascript
    • MongoDB\BSON\Javascript::__construct — Construit un nouvel objet Javascript
    • MongoDB\BSON\Javascript::getCode — Retourne le code Javascript
    • MongoDB\BSON\Javascript::getScope — Retourne le document de portée de Javascript
    • MongoDB\BSON\Javascript::jsonSerialize — Retourne une représentation qui peut être convertie en JSON
    • MongoDB\BSON\Javascript::serialize — Sérialise un Javascript
    • MongoDB\BSON\Javascript::__toString — Retourne le code Javascript
    • MongoDB\BSON\Javascript::unserialize — Désérialisé un Javascript
  • MongoDB\BSON\MaxKey — La classe MongoDB\BSON\MaxKey
    • MongoDB\BSON\MaxKey::__construct — Construit un nouveau MaxKey
    • MongoDB\BSON\MaxKey::jsonSerialize — Retourne une représentation qui peut être convertie en JSON
    • MongoDB\BSON\MaxKey::serialize — Sérialise un MaxKey
    • MongoDB\BSON\MaxKey::unserialize — Désérialisé un MaxKey
  • MongoDB\BSON\MinKey — La classe MongoDB\BSON\MinKey
    • MongoDB\BSON\MinKey::__construct — Construit un nouveau MinKey
    • MongoDB\BSON\MinKey::jsonSerialize — Retourne une représentation qui peut être convertie en JSON
    • MongoDB\BSON\MinKey::serialize — Sérialise un MinKey
    • MongoDB\BSON\MinKey::unserialize — Désérialisé un MinKey
  • MongoDB\BSON\ObjectId — The MongoDB\BSON\ObjectId class
    • MongoDB\BSON\ObjectId::__construct — Construit un nouvel ObjectId
    • MongoDB\BSON\ObjectId::getTimestamp — Retourne le composant d'horodatage de ObjectId
    • MongoDB\BSON\ObjectId::jsonSerialize — Retourne une représentation qui peut être convertie en JSON
    • MongoDB\BSON\ObjectId::serialize — Sérialise un ObjectId
    • MongoDB\BSON\ObjectId::__toString — Retourne la représentation hexadécimale de cet ObjectId
    • MongoDB\BSON\ObjectId::unserialize — Désérialisé un 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::jsonSerialize — Retourne une représentation qui peut être convertie en JSON
    • MongoDB\BSON\Regex::serialize — Sérialise un Regex
    • MongoDB\BSON\Regex::__toString — Retourne la chaîne représentant cette REGEX
    • MongoDB\BSON\Regex::unserialize — Désérialisé un Regex
  • MongoDB\BSON\Timestamp — La classe MongoDB\BSON\Timestamp
    • MongoDB\BSON\Timestamp::__construct — Contruit un nouveau Timestamp
    • MongoDB\BSON\Timestamp::getIncrement — Retourne le composant d'incrémentation de ce Timestamp
    • MongoDB\BSON\Timestamp::getTimestamp — Retourne le composant d'horodatage de Timestamp
    • MongoDB\BSON\Timestamp::jsonSerialize — Retourne une représentation qui peut être convertie en JSON
    • MongoDB\BSON\Timestamp::serialize — Sérialise un Timestamp
    • MongoDB\BSON\Timestamp::__toString — Retourne la représentation sous forme de chaîne de cet horodatage
    • MongoDB\BSON\Timestamp::unserialize — Désérialisé un Timestamp
  • MongoDB\BSON\UTCDatetime — La classe MongoDB\BSON\UTCDatetime
    • MongoDB\BSON\UTCDateTime::__construct — Construit un nouveau UTCDateTime
    • MongoDB\BSON\UTCDateTime::jsonSerialize — Retourne une représentation qui peut être convertie en JSON
    • MongoDB\BSON\UTCDateTime::serialize — Sérialise un UTCDateTime
    • MongoDB\BSON\UTCDateTime::toDateTime — Retourne la représentation DateTime de ce UTCDateTime
    • MongoDB\BSON\UTCDateTime::__toString — Retourne la représentation sous forme de chaîne de ce UTCDateTime
    • MongoDB\BSON\UTCDateTime::unserialize — Désérialisé un UTCDateTime
  • MongoDB\BSON\Type — L'interface MongoDB\BSON\Type
  • MongoDB\BSON\Persistable — La classe MongoDB\BSON\Persistable
    • MongoDB\BSON\Persistable::bsonSerialize — Provides an array or document to serialize as BSON
  • MongoDB\BSON\Serializable — La classe MongoDB\BSON\Serializable
    • MongoDB\BSON\Serializable::bsonSerialize — Fournit un tableau ou un document à sérialiser en tant que BSON
  • MongoDB\BSON\Unserializable — L'interface MongoDB\BSON\Unserializable
    • MongoDB\BSON\Unserializable::bsonUnserialize — Construit l'objet à partir d'un tableau ou d'un document BSON
  • MongoDB\BSON\BinaryInterface — The MongoDB\BSON\BinaryInterface interface
    • MongoDB\BSON\BinaryInterface::getData — Retourne les données de BinaryInterface
    • MongoDB\BSON\BinaryInterface::getType — Retourne le type de BinaryInterface
    • MongoDB\BSON\BinaryInterface::__toString — Retourne les données de BinaryInterface
  • MongoDB\BSON\Decimal128Interface — The MongoDB\BSON\Decimal128Interface interface
    • MongoDB\BSON\Decimal128Interface::__toString — Retourne une représentation sous chaîne de caractères de Decimal128Interface
  • MongoDB\BSON\JavascriptInterface — The MongoDB\BSON\JavascriptInterface interface
    • MongoDB\BSON\JavascriptInterface::getCode — Retourne le code de JavascriptInterface
    • MongoDB\BSON\JavascriptInterface::getScope — Retourne le document de portée de JavascriptInterface
    • MongoDB\BSON\JavascriptInterface::__toString — Retourne le code de JavascriptInterface
  • MongoDB\BSON\MaxKeyInterface — The MongoDB\BSON\MaxKeyInterface interface
  • MongoDB\BSON\MinKeyInterface — The MongoDB\BSON\MinKeyInterface interface
  • MongoDB\BSON\ObjectIdInterface — The MongoDB\BSON\ObjectIdInterface interface
    • MongoDB\BSON\ObjectIdInterface::getTimestamp — Retourne le composant d'horodatage de ObjectIdInterface
    • MongoDB\BSON\ObjectIdInterface::__toString — Retourne la représentation hexadécimale de ObjectIdInterface
  • MongoDB\BSON\RegexInterface — The MongoDB\BSON\RegexInterface interface
    • MongoDB\BSON\RegexInterface::getFlags — Retourne les drapeaux de RegexInterface
    • MongoDB\BSON\RegexInterface::getPattern — Retourne le masque de RegexInterface
    • MongoDB\BSON\RegexInterface::__toString — Retourne la représentation sous forme de chaîne de caractère de cette RegexInterface
  • MongoDB\BSON\TimestampInterface — The MongoDB\BSON\TimestampInterface interface
    • MongoDB\BSON\TimestampInterface::getIncrement — Retourne le composant d'incrémentation de ce TimestampInterface
    • MongoDB\BSON\TimestampInterface::getTimestamp — Retourne le composant d'horodatage de TimestampInterface
    • MongoDB\BSON\TimestampInterface::__toString — Retourne la représentation sous forme de chaîne de caractère de TimestampInterface
  • MongoDB\BSON\UTCDateTimeInterface — The MongoDB\BSON\UTCDateTimeInterface interface
    • MongoDB\BSON\UTCDateTimeInterface::toDateTime — Retourne la représentation DateTime de UTCDateTimeInterface
    • MongoDB\BSON\UTCDateTimeInterface::__toString — Retourne la représentation sous forme de chaîne de caractère de UTCDateTimeInterface
  • MongoDB\BSON\DBPointer — The MongoDB\BSON\DBPointer class (deprecated)
    • MongoDB\BSON\DBPointer::__construct — Construit un nouveau DBPointer (inutilisé)
    • MongoDB\BSON\DBPointer::jsonSerialize — Retourne une représentation qui peut être convertie en JSON
    • MongoDB\BSON\DBPointer::serialize — Sérialise un DBPointer
    • MongoDB\BSON\DBPointer::__toString — Retourne une chaîne vide
    • MongoDB\BSON\DBPointer::unserialize — Désérialisé un DBPointer
  • MongoDB\BSON\Int64 — The MongoDB\BSON\Int64 class
    • MongoDB\BSON\Int64::__construct — Construit un nouveau Int64
    • MongoDB\BSON\Int64::jsonSerialize — Retourne une représentation qui peut être convertie en JSON
    • MongoDB\BSON\Int64::serialize — Sérialise un Int64
    • MongoDB\BSON\Int64::__toString — Retourne la représentation sous forme de chaîne de caractère de Int64
    • MongoDB\BSON\Int64::unserialize — Désérialisé un Int64
  • MongoDB\BSON\Symbol — The MongoDB\BSON\Symbol class (deprecated)
    • MongoDB\BSON\Symbol::__construct — Construit un nouveau Symbol (inutilisé)
    • MongoDB\BSON\Symbol::jsonSerialize — Retourne une représentation qui peut être convertie en JSON
    • MongoDB\BSON\Symbol::serialize — Sérialise un Symbol
    • MongoDB\BSON\Symbol::__toString — Retourne la représentation sous forme de chaîne de caractère de Symbol
    • MongoDB\BSON\Symbol::unserialize — Désérialisé un Symbol
  • MongoDB\BSON\Undefined — The MongoDB\BSON\Undefined class (deprecated)
    • MongoDB\BSON\Undefined::__construct — Construit un nouveau Undefined (inutilisé)
    • MongoDB\BSON\Undefined::jsonSerialize — Retourne une représentation qui peut être convertie en JSON
    • MongoDB\BSON\Undefined::serialize — Sérialise un Undefined
    • MongoDB\BSON\Undefined::__toString — Retourne une chaîne vide
    • MongoDB\BSON\Undefined::unserialize — Désérialisé un Undefined


Fonctions

Sommaire

  • MongoDB\BSON\fromJSON — Retourne la représentation BSON d'une valeur JSON
  • MongoDB\BSON\fromPHP — Retourne la représentation BSON d'une valeur PHP
  • MongoDB\BSON\toCanonicalExtendedJSON — Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toJSON — Retourne la représentation JSON étendue héritée d'une valeur BSON
  • MongoDB\BSON\toPHP — Returns the PHP representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON — Returns the Relaxed Extended JSON representation of a BSON value


Retourne la représentation BSON d'une valeur JSON

  • « Fonctions
  • MongoDB\BSON\fromPHP »
  • PHP Manual
  • Fonctions
  • Retourne la représentation BSON d'une valeur JSON

MongoDB\BSON\fromJSON

(mongodb >=1.0.0)

MongoDB\BSON\fromJSON — Retourne la représentation BSON d'une valeur JSON

Description

MongoDB\BSON\fromJSON(string $json): string

Convertit une chaine » JSON étendu en sa représentation BSON..

Liste de paramètres

json (string)

Valeur JSON à convertir.

Valeurs de retour

Le document sérialisé BSON en tant que chaîne binaire.

Erreurs / Exceptions

  • Lève une exception MongoDB\Driver\Exception\UnexpectedValueException si la valeur JSON ne peut pas être convertie en BSON (par exemple en raison d'une erreur de syntaxe).

Exemples

Exemple #1 Exemple avec MongoDB\BSON\fromJSON()

<?php

$json = '{ "_id": { "$oid": "563143b280d2387c91807965" } }';
$bson = MongoDB\BSON\fromJSON($json);
$value = MongoDB\BSON\toPHP($bson);
var_dump($value);

?>

L'exemple ci-dessus va afficher :

object(stdClass)#2 (1) {
  ["_id"]=>
  object(MongoDB\BSON\ObjectId)#1 (1) {
    ["oid"]=>
    string(24) "563143b280d2387c91807965"
  }
}

Voir aussi

  • MongoDB\BSON\Document::fromJSON() - Construct a new document instance from a JSON string
  • MongoDB\BSON\toJSON() - Retourne la représentation JSON étendue héritée d'une valeur BSON
  • » MongoDB JSON étendu
  • » MongoDB BSON


Retourne la représentation BSON d'une valeur PHP

  • « MongoDB\BSON\fromJSON
  • MongoDB\BSON\toCanonicalExtendedJSON »
  • PHP Manual
  • Fonctions
  • Retourne la représentation BSON d'une valeur PHP

MongoDB\BSON\fromPHP

(mongodb >=1.0.0)

MongoDB\BSON\fromPHP — Retourne la représentation BSON d'une valeur PHP

Description

MongoDB\BSON\fromPHP(array|object $value): string

Sérialise un tableau ou objet PHP (par exemple document) en sa représentation » BSON. La chaîne binaire retourné décrira un document BSON.

Liste de paramètres

value (array|object)

La valeur PHP à sérialiser.

Valeurs de retour

Le document BSON sérialisé en tant que chaîne binaire.

Erreurs / Exceptions

  • Lance MongoDB\Driver\Exception\UnexpectedValueException si la valeur PHP ne peut pas être convertie en BSON. Les raisons possibles incluent, mais sans s'y limiter à, rencontrer une instance inattendue de MongoDB\BSON\Type ou MongoDB\BSON\Serializable::bsonSerialize() échouant de retourner un tableau ou une stdClass.

Exemples

Exemple #1 Exemple avec MongoDB\BSON\fromPHP()

<?php

$bson = MongoDB\BSON\fromPHP(['foo' => 1]);
echo bin2hex($bson), "\n";

?>

L'exemple ci-dessus va afficher :

0e00000010666f6f000100000000cat

Voir aussi

  • MongoDB\BSON\Document::fromPHP() - Construct a new document instance from PHP data
  • MongoDB\BSON\toPHP() - Returns the PHP representation of a BSON value
  • » MongoDB BSON
  • Persisting Data


Returns the Canonical Extended JSON representation of a BSON value

  • « MongoDB\BSON\fromPHP
  • MongoDB\BSON\toJSON »
  • PHP Manual
  • Fonctions
  • Returns the Canonical Extended JSON representation of a BSON value

MongoDB\BSON\toCanonicalExtendedJSON

(mongodb >=1.3.0)

MongoDB\BSON\toCanonicalExtendedJSON — Returns the Canonical Extended JSON representation of a BSON value

Description

MongoDB\BSON\toCanonicalExtendedJSON(string $bson): string

Converts a BSON string to its » Canonical Extended JSON representation. The canonical format prefers type fidelity at the expense of concise output and is most suited for producing output that can be converted back to BSON without any loss of type information (e.g. numeric types will remain differentiated).

Liste de paramètres

bson (string)

BSON value to be converted.

Valeurs de retour

The converted JSON value.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\Exception\UnexpectedValueException si l'entrée ne contient pas exactement un document BSON. Les raisons possibles comprennent, mais ne sont pas limitées à, BSON invalide, des données supplémentaires (après avoir lu un document BSON), ou une erreur imprévu de » libbson.

Exemples

Exemple #1 MongoDB\BSON\toCanonicalExtendedJSON() example

<?php

$documents = [
[ 'null' => null ],
[ 'boolean' => true ],
[ 'string' => 'foo' ],
[ 'int32' => 123 ],
[ 'int64' => 4294967295 ],
[ 'double' => 1.0, ],
[ 'nan' => NAN ],
[ 'pos_inf' => INF ],
[ 'neg_inf' => -INF ],
[ 'array' => [ 'foo', 'bar' ]],
[ 'document' => [ 'foo' => 'bar' ]],
[ 'oid' => new MongoDB\BSON\ObjectId('56315a7c6118fd1b920270b1') ],
[ 'dec128' => new MongoDB\BSON\Decimal128('1234.5678') ],
[ 'binary' => new MongoDB\BSON\Binary('foo', MongoDB\BSON\Binary::TYPE_GENERIC) ],
[ 'date' => new MongoDB\BSON\UTCDateTime(1445990400000) ],
[ 'timestamp' => new MongoDB\BSON\Timestamp(1234, 5678) ],
[ 'regex' => new MongoDB\BSON\Regex('pattern', 'i') ],
[ 'code' => new MongoDB\BSON\Javascript('function() { return 1; }') ],
[ 'code_ws' => new MongoDB\BSON\Javascript('function() { return a; }', ['a' => 1]) ],
[ 'minkey' => new MongoDB\BSON\MinKey ],
[ 'maxkey' => new MongoDB\BSON\MaxKey ],
];

foreach ($documents as $document) {
$bson = MongoDB\BSON\fromPHP($document);
echo MongoDB\BSON\toCanonicalExtendedJSON($bson), "\n";
}

?>

L'exemple ci-dessus va afficher :

{ "null" : null }
{ "boolean" : true }
{ "string" : "foo" }
{ "int32" : { "$numberInt" : "123" } }
{ "int64" : { "$numberLong" : "4294967295"} }
{ "double" : { "$numberDouble" : "1.0" } }
{ "nan" : { "$numberDouble" : "NaN" } }
{ "pos_inf" : { "$numberDouble" : "Infinity" } }
{ "neg_inf" : { "$numberDouble" : "-Infinity" } }
{ "array" : [ "foo", "bar" ] }
{ "document" : { "foo" : "bar" } }
{ "oid" : { "$oid" : "56315a7c6118fd1b920270b1" } }
{ "dec128" : { "$numberDecimal" : "1234.5678" } }
{ "binary" : { "$binary" : { "base64": "Zm9v", "subType" : "00" } } }
{ "date" : { "$date" : { "$numberLong" : "1445990400000" } } }
{ "timestamp" : { "$timestamp" : { "t" : 5678, "i" : 1234 } } }
{ "regex" : { "$regularExpression" : { "pattern" : "pattern", "options" : "i" } } }
{ "code" : { "$code" : "function() { return 1; }" } }
{ "code_ws" : { "$code" : "function() { return a; }", "$scope" : { "a" : { "$numberInt" : "1" } } } }
{ "minkey" : { "$minKey" : 1 } }
{ "maxkey" : { "$maxKey" : 1 } }

Voir aussi

  • MongoDB\BSON\Document::fromJSON() - Construct a new document instance from a JSON string
  • MongoDB\BSON\Document::toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of the BSON document
  • MongoDB\BSON\fromJSON() - Retourne la représentation BSON d'une valeur JSON
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » Extended JSON Specification
  • » MongoDB BSON


Retourne la représentation JSON étendue héritée d'une valeur BSON

  • « MongoDB\BSON\toCanonicalExtendedJSON
  • MongoDB\BSON\toPHP »
  • PHP Manual
  • Fonctions
  • Retourne la représentation JSON étendue héritée d'une valeur BSON

MongoDB\BSON\toJSON

(mongodb >=1.0.0)

MongoDB\BSON\toJSON — Retourne la représentation JSON étendue héritée d'une valeur BSON

Description

MongoDB\BSON\toJSON(string $bson): string

Convertit une chaîne BSON en sa » représentation JSON étendue héritée.

Note: Il existe plusieurs formats JSON pour représenter BSON. Cette fonction implémente le "strict mode" défini dans » MongoDB Extended JSON, qui a été remplacé par les formats canoniques et étendues définis dans la » spécification JSON étendue et implémenté par MongoDB\BSON\toCanonicalExtendedJSON() et MongoDB\BSON\toRelaxedExtendedJSON(), respectivement.

Avertissement

» JSON ne prend pas en charge NAN et INF et le format JSON étendu de MongoDB ne définit pas une autre représentation pour ces valeurs (» libbson va produire nan et inf littérallement, qui ne peuvent pas être analysés comme JSON valide). Si vous travaillez avec BSON qui peut contenir des nombres non finis, utilisez svp MongoDB\BSON\toCanonicalExtendedJSON() ou MongoDB\BSON\toRelaxedExtendedJSON().

Liste de paramètres

bson (string)

Valeur BSON à convertir.

Valeurs de retour

La valeur JSON convertie.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\Exception\UnexpectedValueException si l'entrée ne contient pas exactement un document BSON. Les raisons possibles comprennent, mais ne sont pas limitées à, BSON invalide, des données supplémentaires (après avoir lu un document BSON), ou une erreur imprévu de » libbson.

Exemples

Exemple #1 Exemple avec MongoDB\BSON\toJSON()

<?php

$documents = [
[ 'null' => null ],
[ 'boolean' => true ],
[ 'string' => 'foo' ],
[ 'int32' => 123 ],
[ 'int64' => 4294967295 ],
[ 'double' => 1.0, ],
[ 'nan' => NAN ],
[ 'pos_inf' => INF ],
[ 'neg_inf' => -INF ],
[ 'array' => [ 'foo', 'bar' ]],
[ 'document' => [ 'foo' => 'bar' ]],
[ 'oid' => new MongoDB\BSON\ObjectId('56315a7c6118fd1b920270b1') ],
[ 'dec128' => new MongoDB\BSON\Decimal128('1234.5678') ],
[ 'binary' => new MongoDB\BSON\Binary('foo', MongoDB\BSON\Binary::TYPE_GENERIC) ],
[ 'date' => new MongoDB\BSON\UTCDateTime(1445990400000) ],
[ 'timestamp' => new MongoDB\BSON\Timestamp(1234, 5678) ],
[ 'regex' => new MongoDB\BSON\Regex('pattern', 'i') ],
[ 'code' => new MongoDB\BSON\Javascript('function() { return 1; }') ],
[ 'code_ws' => new MongoDB\BSON\Javascript('function() { return a; }', ['a' => 1]) ],
[ 'minkey' => new MongoDB\BSON\MinKey ],
[ 'maxkey' => new MongoDB\BSON\MaxKey ],
];

foreach ($documents as $document) {
$bson = MongoDB\BSON\fromPHP($document);
echo MongoDB\BSON\toJSON($bson), "\n";
}

?>

L'exemple ci-dessus va afficher :

{ "null" : null }
{ "boolean" : true }
{ "string" : "foo" }
{ "int32" : 123 }
{ "int64" : 4294967295 }
{ "double" : 1.0 }
{ "nan" : nan }
{ "pos_inf" : inf }
{ "neg_inf" : -inf }
{ "array" : [ "foo", "bar" ] }
{ "document" : { "foo" : "bar" } }
{ "oid" : { "$oid" : "56315a7c6118fd1b920270b1" } }
{ "dec128" : { "$numberDecimal" : "1234.5678" } }
{ "binary" : { "$binary" : "Zm9v", "$type" : "00" } }
{ "date" : { "$date" : 1445990400000 } }
{ "timestamp" : { "$timestamp" : { "t" : 5678, "i" : 1234 } } }
{ "regex" : { "$regex" : "pattern", "$options" : "i" } }
{ "code" : { "$code" : "function() { return 1; }" } }
{ "code_ws" : { "$code" : "function() { return a; }", "$scope" : { "a" : 1 } } }
{ "minkey" : { "$minKey" : 1 } }
{ "maxkey" : { "$maxKey" : 1 } }

Voir aussi

  • MongoDB\BSON\fromJSON() - Retourne la représentation BSON d'une valeur JSON
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB JSON Etendu
  • » MongoDB BSON


Returns the PHP representation of a BSON value

  • « MongoDB\BSON\toJSON
  • MongoDB\BSON\toRelaxedExtendedJSON »
  • 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

MongoDB\BSON\toPHP(string $bson, array $typeMap = array()): array|object

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).

Avertissement

Les documents BSON peuvent techniquement contenir des clés dupliquées car les documents sont stockés en tant qu'une liste de paire clé-valeur ; cependant, les applications devrait s'abstenir de générer des documents avec des clés dupliquées car le comportement du serveur et du pilote peut être indéfinie. Puisque les objets et tableaux PHP ne peuvent pas avoir de clés dupliquées, les données pourraient aussi être perdu lors du décodage d'un document BSON avec des clés dupliquées.

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.
  • Lance une exception MongoDB\Driver\Exception\UnexpectedValueException si l'entrée ne contient pas exactement un document BSON. Les raisons possibles comprennent, mais ne sont pas limitées à, BSON invalide, des données supplémentaires (après avoir lu un document BSON), ou une erreur imprévu de » libbson.

Historique

Version | Description
PECL mongodb 1.4.0 | If the input contains an unsupported, deprecated BSON type, the driver will now no longer log a warning to the debug log, but instead will create an object representing this type.
PECL mongodb 1.3.2 | MongoDB\Driver\Exception\UnexpectedValueException is no longer thrown if the input contains an unsupported, deprecated BSON type. Such types will be ignored (as they were in versions before 1.3.0), although the driver will now log a warning to the debug log (see: mongodb.debug).
PECL mongodb 1.3.0 | MongoDB\Driver\Exception\UnexpectedValueException is thrown if the input contains an unsupported, deprecated BSON type. Previously, such types were ignored.

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\Document::toPHP() - Returns the PHP representation of the BSON document
  • MongoDB\BSON\fromPHP() - Retourne la représentation BSON d'une valeur PHP
  • » MongoDB BSON
  • Persisting Data


Returns the Relaxed Extended JSON representation of a BSON value

  • « MongoDB\BSON\toPHP
  • MongoDB\BSON\Document »
  • PHP Manual
  • Fonctions
  • Returns the Relaxed Extended JSON representation of a BSON value

MongoDB\BSON\toRelaxedExtendedJSON

(mongodb >=1.3.0)

MongoDB\BSON\toRelaxedExtendedJSON — Returns the Relaxed Extended JSON representation of a BSON value

Description

MongoDB\BSON\toRelaxedExtendedJSON(string $bson): string

Converts a BSON string to its » Relaxed Extended JSON representation. The relaxed format prefers use of JSON type primitives at the expense of type fidelity and is most suited for producing output that can be easily consumed by web APIs and humans.

Liste de paramètres

bson (string)

BSON value to be converted.

Valeurs de retour

The converted JSON value.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\Exception\UnexpectedValueException si l'entrée ne contient pas exactement un document BSON. Les raisons possibles comprennent, mais ne sont pas limitées à, BSON invalide, des données supplémentaires (après avoir lu un document BSON), ou une erreur imprévu de » libbson.

Exemples

Exemple #1 MongoDB\BSON\toRelaxedExtendedJSON() example

<?php

$documents = [
[ 'null' => null ],
[ 'boolean' => true ],
[ 'string' => 'foo' ],
[ 'int32' => 123 ],
[ 'int64' => 4294967295 ],
[ 'double' => 1.0, ],
[ 'nan' => NAN ],
[ 'pos_inf' => INF ],
[ 'neg_inf' => -INF ],
[ 'array' => [ 'foo', 'bar' ]],
[ 'document' => [ 'foo' => 'bar' ]],
[ 'oid' => new MongoDB\BSON\ObjectId('56315a7c6118fd1b920270b1') ],
[ 'dec128' => new MongoDB\BSON\Decimal128('1234.5678') ],
[ 'binary' => new MongoDB\BSON\Binary('foo', MongoDB\BSON\Binary::TYPE_GENERIC) ],
[ 'date' => new MongoDB\BSON\UTCDateTime(1445990400000) ],
[ 'timestamp' => new MongoDB\BSON\Timestamp(1234, 5678) ],
[ 'regex' => new MongoDB\BSON\Regex('pattern', 'i') ],
[ 'code' => new MongoDB\BSON\Javascript('function() { return 1; }') ],
[ 'code_ws' => new MongoDB\BSON\Javascript('function() { return a; }', ['a' => 1]) ],
[ 'minkey' => new MongoDB\BSON\MinKey ],
[ 'maxkey' => new MongoDB\BSON\MaxKey ],
];

foreach ($documents as $document) {
$bson = MongoDB\BSON\fromPHP($document);
echo MongoDB\BSON\toRelaxedExtendedJSON($bson), "\n";
}

?>

L'exemple ci-dessus va afficher :

{ "null" : null }
{ "boolean" : true }
{ "string" : "foo" }
{ "int32" : 123 }
{ "int64" : 4294967295 }
{ "double" : 1.0 }
{ "nan" : { "$numberDouble" : "NaN" } }
{ "pos_inf" : { "$numberDouble" : "Infinity" } }
{ "neg_inf" : { "$numberDouble" : "-Infinity" } }
{ "array" : [ "foo", "bar" ] }
{ "document" : { "foo" : "bar" } }
{ "oid" : { "$oid" : "56315a7c6118fd1b920270b1" } }
{ "dec128" : { "$numberDecimal" : "1234.5678" } }
{ "binary" : { "$binary" : { "base64": "Zm9v", "subType" : "00" } } }
{ "date" : { "$date" : "2015-10-28T00:00:00Z" } }
{ "timestamp" : { "$timestamp" : { "t" : 5678, "i" : 1234 } } }
{ "regex" : { "$regularExpression" : { "pattern" : "pattern", "options" : "i" } } }
{ "code" : { "$code" : "function() { return 1; }" } }
{ "code_ws" : { "$code" : "function() { return a; }", "$scope" : { "a" : 1 } } }
{ "minkey" : { "$minKey" : 1 } }
{ "maxkey" : { "$maxKey" : 1 } }

Voir aussi

  • MongoDB\BSON\Document::fromJSON() - Construct a new document instance from a JSON string
  • MongoDB\BSON\Document::toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of the BSON document
  • MongoDB\BSON\fromJSON() - Retourne la représentation BSON d'une valeur JSON
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • » Extended JSON
  • » MongoDB BSON


The MongoDB\BSON\Document class

(mongodb >=1.16.0)

Introduction

Represents a BSON document. This class is used when reading data as raw BSON and cannot be modified.

Synopsis de la classe

final class MongoDB\BSON\Document implements MongoDB\BSON\Type, IteratorAggregate, Serializable {
/* Méthodes */
final private __construct()
final static public fromBSON(string $bson): MongoDB\BSON\Document
final static public fromJSON(string $json): MongoDB\BSON\Document
final static public fromPHP(object|array $value): MongoDB\BSON\Document
final public get(string $key): mixed
final public getIterator(): MongoDB\BSON\Iterator
final public has(string $key): bool
final public serialize(): string
final public toCanonicalExtendedJSON(): string
final public toPHP(?array $typeMap = null): array|object
final public toRelaxedExtendedJSON(): string
final public __toString(): string
final public unserialize(string $data): void
}

Historique

Version | Description
PECL mongodb 1.17.0 | Implements MongoDB\BSON\Type.

Sommaire

  • MongoDB\BSON\Document::__construct — Construct a new BSON document (unused)
  • MongoDB\BSON\Document::fromBSON — Construct a new document instance from a BSON string
  • MongoDB\BSON\Document::fromJSON — Construct a new document instance from a JSON string
  • MongoDB\BSON\Document::fromPHP — Construct a new document instance from PHP data
  • MongoDB\BSON\Document::get — Returns the value of a key in the document
  • MongoDB\BSON\Document::getIterator — Returns an iterator for the BSON document
  • MongoDB\BSON\Document::has — Returns whether a key is present in the document
  • MongoDB\BSON\Document::serialize — Serialize a Document
  • MongoDB\BSON\Document::toCanonicalExtendedJSON — Returns the Canonical Extended JSON representation of the BSON document
  • MongoDB\BSON\Document::toPHP — Returns the PHP representation of the BSON document
  • MongoDB\BSON\Document::toRelaxedExtendedJSON — Returns the Relaxed Extended JSON representation of the BSON document
  • MongoDB\BSON\Document::__toString — Returns the string representation of this BSON Document
  • MongoDB\BSON\Document::unserialize — Unserialize a BSON document


Construct a new BSON document (unused)

  • « MongoDB\BSON\Document
  • MongoDB\BSON\Document::fromBSON »
  • PHP Manual
  • MongoDB\BSON\Document
  • Construct a new BSON document (unused)

MongoDB\BSON\Document::__construct

(mongodb >=1.16.0)

MongoDB\BSON\Document::__construct — Construct a new BSON document (unused)

Description

final private MongoDB\BSON\Document::__construct()

MongoDB\BSON\Document objects are created through static factory methods and cannot be instantiated directly.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Voir aussi

  • MongoDB\BSON\Document::fromPHP() - Construct a new document instance from PHP data
  • MongoDB\BSON\Document::fromBSON() - Construct a new document instance from a BSON string
  • MongoDB\BSON\Document::fromJSON() - Construct a new document instance from a JSON string
  • » BSON Types


Construct a new document instance from a BSON string

  • « MongoDB\BSON\Document::__construct
  • MongoDB\BSON\Document::fromJSON »
  • PHP Manual
  • MongoDB\BSON\Document
  • Construct a new document instance from a BSON string

MongoDB\BSON\Document::fromBSON

(mongodb >=1.16.0)

MongoDB\BSON\Document::fromBSON — Construct a new document instance from a BSON string

Description

final static public MongoDB\BSON\Document::fromBSON(string $bson): MongoDB\BSON\Document

Liste de paramètres

bson (string)

A string containing a document in BSON format.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if bson is an invalid BSON string or contains more than a single document.

Voir aussi

  • MongoDB\BSON\Document::fromPHP() - Construct a new document instance from PHP data
  • MongoDB\BSON\Document::fromJSON() - Construct a new document instance from a JSON string
  • » BSON Types


Construct a new document instance from a JSON string

  • « MongoDB\BSON\Document::fromBSON
  • MongoDB\BSON\Document::fromPHP »
  • PHP Manual
  • MongoDB\BSON\Document
  • Construct a new document instance from a JSON string

MongoDB\BSON\Document::fromJSON

(mongodb >=1.16.0)

MongoDB\BSON\Document::fromJSON — Construct a new document instance from a JSON string

Description

final static public MongoDB\BSON\Document::fromJSON(string $json): MongoDB\BSON\Document

Converts an » extended JSON string to its BSON representation.

Liste de paramètres

json (string)

JSON value to be converted.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if json is not a valid document.

Voir aussi

  • MongoDB\BSON\Document::fromPHP() - Construct a new document instance from PHP data
  • MongoDB\BSON\Document::fromBSON() - Construct a new document instance from a BSON string
  • MongoDB\BSON\fromJSON() - Retourne la représentation BSON d'une valeur JSON
  • » MongoDB Extended JSON
  • » BSON Types


Construct a new document instance from PHP data

  • « MongoDB\BSON\Document::fromJSON
  • MongoDB\BSON\Document::get »
  • PHP Manual
  • MongoDB\BSON\Document
  • Construct a new document instance from PHP data

MongoDB\BSON\Document::fromPHP

(mongodb >=1.16.0)

MongoDB\BSON\Document::fromPHP — Construct a new document instance from PHP data

Description

final static public MongoDB\BSON\Document::fromPHP(object|array $value): MongoDB\BSON\Document

Liste de paramètres

value (object|array)

A PHP object or array containing the document. When passing an array with numeric keys, the numeric values are converted to strings and used as document keys.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\BSON\Document::fromBSON() - Construct a new document instance from a BSON string
  • MongoDB\BSON\Document::fromJSON() - Construct a new document instance from a JSON string
  • MongoDB\BSON\fromPHP() - Retourne la représentation BSON d'une valeur PHP
  • » BSON Types


Returns the value of a key in the document

  • « MongoDB\BSON\Document::fromPHP
  • MongoDB\BSON\Document::getIterator »
  • PHP Manual
  • MongoDB\BSON\Document
  • Returns the value of a key in the document

MongoDB\BSON\Document::get

(mongodb >=1.16.0)

MongoDB\BSON\Document::get — Returns the value of a key in the document

Description

final public MongoDB\BSON\Document::get(string $key): mixed

Liste de paramètres

key (string)

The key to retrieve from the document.

Valeurs de retour

Returns the value associated with the given key. If the key is not present in the document, an exception is thrown.

Note: When encountering a value encoded as 64-bit integer in the BSON document, the return value of this method will be a MongoDB\BSON\Int64 instance.

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 key is not present in the document.

Voir aussi

  • MongoDB\BSON\Document::has() - Returns whether a key is present in the document
  • » BSON Types


Returns an iterator for the BSON document

  • « MongoDB\BSON\Document::get
  • MongoDB\BSON\Document::has »
  • PHP Manual
  • MongoDB\BSON\Document
  • Returns an iterator for the BSON document

MongoDB\BSON\Document::getIterator

(mongodb >=1.16.0)

MongoDB\BSON\Document::getIterator — Returns an iterator for the BSON document

Description

final public MongoDB\BSON\Document::getIterator(): MongoDB\BSON\Iterator

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a MongoDB\BSON\Iterator instance that can be used to iterate over all keys in the document.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the BSON iterator could not be initialized.

Voir aussi

  • » BSON Types


Returns whether a key is present in the document

  • « MongoDB\BSON\Document::getIterator
  • MongoDB\BSON\Document::serialize »
  • PHP Manual
  • MongoDB\BSON\Document
  • Returns whether a key is present in the document

MongoDB\BSON\Document::has

(mongodb >=1.16.0)

MongoDB\BSON\Document::has — Returns whether a key is present in the document

Description

final public MongoDB\BSON\Document::has(string $key): bool

Liste de paramètres

key (string)

The key to look for in the document.

Valeurs de retour

Returns true if the key is present in the document 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\BSON\Document::get() - Returns the value of a key in the document
  • » BSON Types


Serialize a Document

  • « MongoDB\BSON\Document::has
  • MongoDB\BSON\Document::toCanonicalExtendedJSON »
  • PHP Manual
  • MongoDB\BSON\Document
  • Serialize a Document

MongoDB\BSON\Document::serialize

(mongodb >=1.16.0)

MongoDB\BSON\Document::serialize — Serialize a Document

Description

final public MongoDB\BSON\Document::serialize(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the serialized representation of the MongoDB\BSON\Document.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\BSON\Document::unserialize() - Unserialize a BSON document
  • serialize() - Génère une représentation stockable d'une valeur
  • Serializing Objects


Returns the Canonical Extended JSON representation of the BSON document

  • « MongoDB\BSON\Document::serialize
  • MongoDB\BSON\Document::toPHP »
  • PHP Manual
  • MongoDB\BSON\Document
  • Returns the Canonical Extended JSON representation of the BSON document

MongoDB\BSON\Document::toCanonicalExtendedJSON

(mongodb >=1.16.0)

MongoDB\BSON\Document::toCanonicalExtendedJSON — Returns the Canonical Extended JSON representation of the BSON document

Description

final public MongoDB\BSON\Document::toCanonicalExtendedJSON(): string

Converts the BSON document to its » Canonical Extended JSON representation. The canonical format prefers type fidelity at the expense of concise output and is most suited for producing output that can be converted back to BSON without any loss of type information (e.g. numeric types will remain differentiated).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Exemples

Exemple #1 MongoDB\BSON\Document::toCanonicalExtendedJSON() example

<?php

$documents = [
[ 'null' => null ],
[ 'boolean' => true ],
[ 'string' => 'foo' ],
[ 'int32' => 123 ],
[ 'int64' => 4294967295 ],
[ 'double' => 1.0, ],
[ 'nan' => NAN ],
[ 'pos_inf' => INF ],
[ 'neg_inf' => -INF ],
[ 'array' => [ 'foo', 'bar' ]],
[ 'document' => [ 'foo' => 'bar' ]],
[ 'oid' => new MongoDB\BSON\ObjectId('56315a7c6118fd1b920270b1') ],
[ 'dec128' => new MongoDB\BSON\Decimal128('1234.5678') ],
[ 'binary' => new MongoDB\BSON\Binary('foo', MongoDB\BSON\Binary::TYPE_GENERIC) ],
[ 'date' => new MongoDB\BSON\UTCDateTime(1445990400000) ],
[ 'timestamp' => new MongoDB\BSON\Timestamp(1234, 5678) ],
[ 'regex' => new MongoDB\BSON\Regex('pattern', 'i') ],
[ 'code' => new MongoDB\BSON\Javascript('function() { return 1; }') ],
[ 'code_ws' => new MongoDB\BSON\Javascript('function() { return a; }', ['a' => 1]) ],
[ 'minkey' => new MongoDB\BSON\MinKey ],
[ 'maxkey' => new MongoDB\BSON\MaxKey ],
];

foreach ($documents as $document) {
$bson = MongoDB\BSON\Document::fromPHP($document);
echo $bson->toCanonicalExtendedJSON(), "\n";
}

?>

L'exemple ci-dessus va afficher :

{ "null" : null }
{ "boolean" : true }
{ "string" : "foo" }
{ "int32" : { "$numberInt" : "123" } }
{ "int64" : { "$numberLong" : "4294967295"} }
{ "double" : { "$numberDouble" : "1.0" } }
{ "nan" : { "$numberDouble" : "NaN" } }
{ "pos_inf" : { "$numberDouble" : "Infinity" } }
{ "neg_inf" : { "$numberDouble" : "-Infinity" } }
{ "array" : [ "foo", "bar" ] }
{ "document" : { "foo" : "bar" } }
{ "oid" : { "$oid" : "56315a7c6118fd1b920270b1" } }
{ "dec128" : { "$numberDecimal" : "1234.5678" } }
{ "binary" : { "$binary" : { "base64": "Zm9v", "subType" : "00" } } }
{ "date" : { "$date" : { "$numberLong" : "1445990400000" } } }
{ "timestamp" : { "$timestamp" : { "t" : 5678, "i" : 1234 } } }
{ "regex" : { "$regularExpression" : { "pattern" : "pattern", "options" : "i" } } }
{ "code" : { "$code" : "function() { return 1; }" } }
{ "code_ws" : { "$code" : "function() { return a; }", "$scope" : { "a" : { "$numberInt" : "1" } } } }
{ "minkey" : { "$minKey" : 1 } }
{ "maxkey" : { "$maxKey" : 1 } }

Voir aussi

  • MongoDB\BSON\Document::fromJSON() - Construct a new document instance from a JSON string
  • MongoDB\BSON\Document::toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of the BSON document
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • » Extended JSON Specification
  • » BSON Types


Returns the PHP representation of the BSON document

  • « MongoDB\BSON\Document::toCanonicalExtendedJSON
  • MongoDB\BSON\Document::toRelaxedExtendedJSON »
  • PHP Manual
  • MongoDB\BSON\Document
  • Returns the PHP representation of the BSON document

MongoDB\BSON\Document::toPHP

(mongodb >=1.16.0)

MongoDB\BSON\Document::toPHP — Returns the PHP representation of the BSON document

Description

final public MongoDB\BSON\Document::toPHP(?array $typeMap = null): array|object

Unserializes the BSON document 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).

Avertissement

Les documents BSON peuvent techniquement contenir des clés dupliquées car les documents sont stockés en tant qu'une liste de paire clé-valeur ; cependant, les applications devrait s'abstenir de générer des documents avec des clés dupliquées car le comportement du serveur et du pilote peut être indéfinie. Puisque les objets et tableaux PHP ne peuvent pas avoir de clés dupliquées, les données pourraient aussi être perdu lors du décodage d'un document BSON avec des clés dupliquées.

Liste de paramètres

typeMap (array)

Configuration du type de carte.

Valeurs de retour

The decoded PHP value.

Note: When encountering a value encoded as 64-bit integer in the BSON document, the return value of this method will be a MongoDB\BSON\Int64 instance.

Erreurs / Exceptions

  • Throws MongoDB\Driver\Exception\InvalidArgumentException if a class in the type map cannot be instantiated or does not implement MongoDB\BSON\Unserializable.

Voir aussi

  • MongoDB\BSON\toPHP() - Returns the PHP representation of a BSON value
  • » BSON Types


Returns the Relaxed Extended JSON representation of the BSON document

  • « MongoDB\BSON\Document::toPHP
  • MongoDB\BSON\Document::__toString »
  • PHP Manual
  • MongoDB\BSON\Document
  • Returns the Relaxed Extended JSON representation of the BSON document

MongoDB\BSON\Document::toRelaxedExtendedJSON

(mongodb >=1.16.0)

MongoDB\BSON\Document::toRelaxedExtendedJSON — Returns the Relaxed Extended JSON representation of the BSON document

Description

final public MongoDB\BSON\Document::toRelaxedExtendedJSON(): string

Converts the BSON document to its » Relaxed Extended JSON representation. The relaxed format prefers use of JSON type primitives at the expense of type fidelity and is most suited for producing output that can be easily consumed by web APIs and humans.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Exemples

Exemple #1 MongoDB\BSON\Document::toRelaxedExtendedJSON() example

<?php

$documents = [
[ 'null' => null ],
[ 'boolean' => true ],
[ 'string' => 'foo' ],
[ 'int32' => 123 ],
[ 'int64' => 4294967295 ],
[ 'double' => 1.0, ],
[ 'nan' => NAN ],
[ 'pos_inf' => INF ],
[ 'neg_inf' => -INF ],
[ 'array' => [ 'foo', 'bar' ]],
[ 'document' => [ 'foo' => 'bar' ]],
[ 'oid' => new MongoDB\BSON\ObjectId('56315a7c6118fd1b920270b1') ],
[ 'dec128' => new MongoDB\BSON\Decimal128('1234.5678') ],
[ 'binary' => new MongoDB\BSON\Binary('foo', MongoDB\BSON\Binary::TYPE_GENERIC) ],
[ 'date' => new MongoDB\BSON\UTCDateTime(1445990400000) ],
[ 'timestamp' => new MongoDB\BSON\Timestamp(1234, 5678) ],
[ 'regex' => new MongoDB\BSON\Regex('pattern', 'i') ],
[ 'code' => new MongoDB\BSON\Javascript('function() { return 1; }') ],
[ 'code_ws' => new MongoDB\BSON\Javascript('function() { return a; }', ['a' => 1]) ],
[ 'minkey' => new MongoDB\BSON\MinKey ],
[ 'maxkey' => new MongoDB\BSON\MaxKey ],
];

foreach ($documents as $document) {
$bson = MongoDB\BSON\Document::fromPHP($document);
echo $bson->toRelaxedExtendedJSON(), "\n";
}

?>

L'exemple ci-dessus va afficher :

{ "null" : null }
{ "boolean" : true }
{ "string" : "foo" }
{ "int32" : 123 }
{ "int64" : 4294967295 }
{ "double" : 1.0 }
{ "nan" : { "$numberDouble" : "NaN" } }
{ "pos_inf" : { "$numberDouble" : "Infinity" } }
{ "neg_inf" : { "$numberDouble" : "-Infinity" } }
{ "array" : [ "foo", "bar" ] }
{ "document" : { "foo" : "bar" } }
{ "oid" : { "$oid" : "56315a7c6118fd1b920270b1" } }
{ "dec128" : { "$numberDecimal" : "1234.5678" } }
{ "binary" : { "$binary" : { "base64": "Zm9v", "subType" : "00" } } }
{ "date" : { "$date" : "2015-10-28T00:00:00Z" } }
{ "timestamp" : { "$timestamp" : { "t" : 5678, "i" : 1234 } } }
{ "regex" : { "$regularExpression" : { "pattern" : "pattern", "options" : "i" } } }
{ "code" : { "$code" : "function() { return 1; }" } }
{ "code_ws" : { "$code" : "function() { return a; }", "$scope" : { "a" : 1 } } }
{ "minkey" : { "$minKey" : 1 } }
{ "maxkey" : { "$maxKey" : 1 } }

Voir aussi

  • MongoDB\BSON\Document::fromJSON() - Construct a new document instance from a JSON string
  • MongoDB\BSON\Document::toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of the BSON document
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » Extended JSON Specification
  • » BSON Types


Returns the string representation of this BSON Document

  • « MongoDB\BSON\Document::toRelaxedExtendedJSON
  • MongoDB\BSON\Document::unserialize »
  • PHP Manual
  • MongoDB\BSON\Document
  • Returns the string representation of this BSON Document

MongoDB\BSON\Document::__toString

(mongodb >=1.16.0)

MongoDB\BSON\Document::__toString — Returns the string representation of this BSON Document

Description

final public MongoDB\BSON\Document::__toString(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the string representation of this document as BSON.

Voir aussi

  • » BSON Types


Unserialize a BSON document

  • « MongoDB\BSON\Document::__toString
  • MongoDB\BSON\PackedArray »
  • PHP Manual
  • MongoDB\BSON\Document
  • Unserialize a BSON document

MongoDB\BSON\Document::unserialize

(mongodb >=1.16.0)

MongoDB\BSON\Document::unserialize — Unserialize a BSON document

Description

final public MongoDB\BSON\Document::unserialize(string $data): void

Liste de paramètres

data

The serialized MongoDB\BSON\Document.

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.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. data was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Voir aussi

  • MongoDB\BSON\Document::serialize() - Serialize a Document
  • unserialize() - Crée une variable PHP à partir d'une valeur sérialisée
  • Serializing Objects


The MongoDB\BSON\PackedArray class

(mongodb >=1.16.0)

Introduction

Represents a BSON array. This class is used when reading data as raw BSON and cannot be modified.

Synopsis de la classe

final class MongoDB\BSON\PackedArray implements MongoDB\BSON\Type, IteratorAggregate, Serializable {
/* Méthodes */
final private __construct()
final static public fromPHP(array $value): MongoDB\BSON\PackedArray
final public get(int $key): mixed
final public getIterator(): MongoDB\BSON\Iterator
final public has(int $index): bool
final public serialize(): string
final public toPHP(?array $typeMap = null): array|object
final public __toString(): string
final public unserialize(string $data): void
}

Historique

Version | Description
PECL mongodb 1.17.0 | Implements MongoDB\BSON\Type.
PECL mongodb 1.17.0 | MongoDB\BSON\PackedArray cannot be serialized in contexts where a BSON document is expected. In earlier versions, the BSON array would have been converted to a document.

Sommaire

  • MongoDB\BSON\PackedArray::__construct — Construct a new BSON array (unused)
  • MongoDB\BSON\PackedArray::fromPHP — Construct a new BSON array instance from PHP data
  • MongoDB\BSON\PackedArray::get — Returns the value of an index in the array
  • MongoDB\BSON\PackedArray::getIterator — Returns an iterator for the BSON array
  • MongoDB\BSON\PackedArray::has — Returns whether a index is present in the array
  • MongoDB\BSON\PackedArray::serialize — Serialize a BSON array
  • MongoDB\BSON\PackedArray::toPHP — Returns the PHP representation of the BSON array
  • MongoDB\BSON\PackedArray::__toString — Returns the string representation of this BSON array
  • MongoDB\BSON\PackedArray::unserialize — Unserialize a BSON array


Construct a new BSON array (unused)

  • « MongoDB\BSON\PackedArray
  • MongoDB\BSON\PackedArray::fromPHP »
  • PHP Manual
  • MongoDB\BSON\PackedArray
  • Construct a new BSON array (unused)

MongoDB\BSON\PackedArray::__construct

(mongodb >=1.16.0)

MongoDB\BSON\PackedArray::__construct — Construct a new BSON array (unused)

Description

final private MongoDB\BSON\PackedArray::__construct()

MongoDB\BSON\PackedArray objects are created through static factory methods and cannot be instantiated directly.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Voir aussi

  • MongoDB\BSON\PackedArray::fromPHP() - Construct a new BSON array instance from PHP data
  • » BSON Types


Construct a new BSON array instance from PHP data

  • « MongoDB\BSON\PackedArray::__construct
  • MongoDB\BSON\PackedArray::get »
  • PHP Manual
  • MongoDB\BSON\PackedArray
  • Construct a new BSON array instance from PHP data

MongoDB\BSON\PackedArray::fromPHP

(mongodb >=1.16.0)

MongoDB\BSON\PackedArray::fromPHP — Construct a new BSON array instance from PHP data

Description

final static public MongoDB\BSON\PackedArray::fromPHP(array $value): MongoDB\BSON\PackedArray

Liste de paramètres

value (array)

The PHP array to convert to a BSON array. The array must be a list (i.e. have sequential numeric keys starting with 0).

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 the given array is not a list (i.e. has sequential numeric keys starting with 0).

Voir aussi

  • MongoDB\BSON\fromPHP() - Retourne la représentation BSON d'une valeur PHP
  • » BSON Types


Returns the value of an index in the array

  • « MongoDB\BSON\PackedArray::fromPHP
  • MongoDB\BSON\PackedArray::getIterator »
  • PHP Manual
  • MongoDB\BSON\PackedArray
  • Returns the value of an index in the array

MongoDB\BSON\PackedArray::get

(mongodb >=1.16.0)

MongoDB\BSON\PackedArray::get — Returns the value of an index in the array

Description

final public MongoDB\BSON\PackedArray::get(int $key): mixed

Liste de paramètres

key (int)

The index to retrieve from the array.

Valeurs de retour

Returns the value associated with the given index. If the index is not present in the document, an exception is thrown.

Note: When encountering a value encoded as 64-bit integer in the BSON array, the return value of this method will be a MongoDB\BSON\Int64 instance.

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 index is not present in the array.

Voir aussi

  • MongoDB\BSON\PackedArray::has() - Returns whether a index is present in the array
  • » BSON Types


Returns an iterator for the BSON array

  • « MongoDB\BSON\PackedArray::get
  • MongoDB\BSON\PackedArray::has »
  • PHP Manual
  • MongoDB\BSON\PackedArray
  • Returns an iterator for the BSON array

MongoDB\BSON\PackedArray::getIterator

(mongodb >=1.16.0)

MongoDB\BSON\PackedArray::getIterator — Returns an iterator for the BSON array

Description

final public MongoDB\BSON\PackedArray::getIterator(): MongoDB\BSON\Iterator

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a MongoDB\BSON\Iterator instance that can be used to iterate over all indexes in the array.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the BSON iterator could not be initialized.

Voir aussi

  • » BSON Types


Returns whether a index is present in the array

  • « MongoDB\BSON\PackedArray::getIterator
  • MongoDB\BSON\PackedArray::serialize »
  • PHP Manual
  • MongoDB\BSON\PackedArray
  • Returns whether a index is present in the array

MongoDB\BSON\PackedArray::has

(mongodb >=1.16.0)

MongoDB\BSON\PackedArray::has — Returns whether a index is present in the array

Description

final public MongoDB\BSON\PackedArray::has(int $index): bool

Liste de paramètres

index (int)

The index to look for in the array.

Valeurs de retour

Returns true if the index is present in the array 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\BSON\PackedArray::get() - Returns the value of an index in the array
  • » BSON Types


Serialize a BSON array

  • « MongoDB\BSON\PackedArray::has
  • MongoDB\BSON\PackedArray::toPHP »
  • PHP Manual
  • MongoDB\BSON\PackedArray
  • Serialize a BSON array

MongoDB\BSON\PackedArray::serialize

(mongodb >=1.16.0)

MongoDB\BSON\PackedArray::serialize — Serialize a BSON array

Description

final public MongoDB\BSON\PackedArray::serialize(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the serialized representation of the MongoDB\BSON\PackedArray.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\BSON\PackedArray::unserialize() - Unserialize a BSON array
  • serialize() - Génère une représentation stockable d'une valeur
  • Serializing Objects


Returns the PHP representation of the BSON array

  • « MongoDB\BSON\PackedArray::serialize
  • MongoDB\BSON\PackedArray::__toString »
  • PHP Manual
  • MongoDB\BSON\PackedArray
  • Returns the PHP representation of the BSON array

MongoDB\BSON\PackedArray::toPHP

(mongodb >=1.16.0)

MongoDB\BSON\PackedArray::toPHP — Returns the PHP representation of the BSON array

Description

final public MongoDB\BSON\PackedArray::toPHP(?array $typeMap = null): array|object

Liste de paramètres

typeMap (array)

Configuration du type de carte.

Valeurs de retour

The decoded PHP value.

Note: When encountering a value encoded as 64-bit integer in the BSON array, the return value of this method will be a MongoDB\BSON\Int64 instance.

Erreurs / Exceptions

  • Throws MongoDB\Driver\Exception\InvalidArgumentException if a class in the type map cannot be instantiated or does not implement MongoDB\BSON\Unserializable.

Voir aussi

  • MongoDB\BSON\toPHP() - Returns the PHP representation of a BSON value
  • » BSON Types


Returns the string representation of this BSON array

  • « MongoDB\BSON\PackedArray::toPHP
  • MongoDB\BSON\PackedArray::unserialize »
  • PHP Manual
  • MongoDB\BSON\PackedArray
  • Returns the string representation of this BSON array

MongoDB\BSON\PackedArray::__toString

(mongodb >=1.16.0)

MongoDB\BSON\PackedArray::__toString — Returns the string representation of this BSON array

Description

final public MongoDB\BSON\PackedArray::__toString(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the string representation of this array as BSON.

Voir aussi

  • » BSON Types


Unserialize a BSON array

  • « MongoDB\BSON\PackedArray::__toString
  • MongoDB\BSON\Iterator »
  • PHP Manual
  • MongoDB\BSON\PackedArray
  • Unserialize a BSON array

MongoDB\BSON\PackedArray::unserialize

(mongodb >=1.16.0)

MongoDB\BSON\PackedArray::unserialize — Unserialize a BSON array

Description

final public MongoDB\BSON\PackedArray::unserialize(string $data): void

Liste de paramètres

data

The serialized MongoDB\BSON\PackedArray.

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.
  • Throws MongoDB\Driver\Exception\UnexpectedValueException if the properties cannot be unserialized (i.e. data was malformed).
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if the properties are invalid (e.g. missing fields or invalid values).

Voir aussi

  • MongoDB\BSON\PackedArray::serialize() - Serialize a BSON array
  • unserialize() - Crée une variable PHP à partir d'une valeur sérialisée
  • Serializing Objects


The MongoDB\BSON\Iterator class

(mongodb >=1.16.0)

Introduction

Iterator used to iterate a BSON document or array.

Synopsis de la classe

final class MongoDB\BSON\Iterator implements Iterator {
/* Méthodes */
final private __construct()
public current(): mixed
public key(): string|int
public next(): void
public rewind(): void
public valid(): bool
}

Sommaire

  • MongoDB\BSON\Iterator::__construct — Construct a new BSON iterator (unused)
  • MongoDB\BSON\Iterator::current — Returns the current element
  • MongoDB\BSON\Iterator::key — Returns the key of the current element
  • MongoDB\BSON\Iterator::next — Advances the iterator to next element
  • MongoDB\BSON\Iterator::rewind — Rewinds the Iterator to the first element
  • MongoDB\BSON\Iterator::valid — Checks if current position is valid


Construct a new BSON iterator (unused)

  • « MongoDB\BSON\Iterator
  • MongoDB\BSON\Iterator::current »
  • PHP Manual
  • MongoDB\BSON\Iterator
  • Construct a new BSON iterator (unused)

MongoDB\BSON\Iterator::__construct

(No version information available, might only be in Git)

MongoDB\BSON\Iterator::__construct — Construct a new BSON iterator (unused)

Description

final private MongoDB\BSON\Iterator::__construct()

MongoDB\BSON\Iterator objects are created by calling MongoDB\BSON\Document::getIterator() or MongoDB\BSON\PackedArray::getIterator() and cannot be instantiated directly.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Voir aussi

  • MongoDB\BSON\Document::getIterator() - Returns an iterator for the BSON document
  • MongoDB\BSON\PackedArray::getIterator() - Returns an iterator for the BSON array
  • » BSON Types


Returns the current element

  • « MongoDB\BSON\Iterator::__construct
  • MongoDB\BSON\Iterator::key »
  • PHP Manual
  • MongoDB\BSON\Iterator
  • Returns the current element

MongoDB\BSON\Iterator::current

(mongodb >=1.16.0)

MongoDB\BSON\Iterator::current — Returns the current element

Description

public MongoDB\BSON\Iterator::current(): mixed

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the value of the current element.

Note: When encountering a value encoded as 64-bit integer in the BSON structure, the return value of this method will be a MongoDB\BSON\Int64 instance.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.
  • Throws MongoDB\Driver\Exception\LogicException if the iterator is not valid.

Voir aussi

  • Iterator::current() - Retourne l'élément courant


Returns the key of the current element

  • « MongoDB\BSON\Iterator::current
  • MongoDB\BSON\Iterator::next »
  • PHP Manual
  • MongoDB\BSON\Iterator
  • Returns the key of the current element

MongoDB\BSON\Iterator::key

(mongodb >=1.16.0)

MongoDB\BSON\Iterator::key — Returns the key of the current element

Description

public MongoDB\BSON\Iterator::key(): string|int

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the key of the current element. When iterating a BSON document, the key will always be a string. When iterating a BSON array, the key will be an int.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.
  • Throws MongoDB\Driver\Exception\LogicException if the iterator is not valid.

Voir aussi

  • Iterator::key() - Retourne la clé de l'élément courant


Advances the iterator to next element

  • « MongoDB\BSON\Iterator::key
  • MongoDB\BSON\Iterator::rewind »
  • PHP Manual
  • MongoDB\BSON\Iterator
  • Advances the iterator to next element

MongoDB\BSON\Iterator::next

(mongodb >=1.16.0)

MongoDB\BSON\Iterator::next — Advances the iterator to next element

Description

public MongoDB\BSON\Iterator::next(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Voir aussi

  • Iterator::next() - Se déplace sur l'élément suivant


Rewinds the Iterator to the first element

  • « MongoDB\BSON\Iterator::next
  • MongoDB\BSON\Iterator::valid »
  • PHP Manual
  • MongoDB\BSON\Iterator
  • Rewinds the Iterator to the first element

MongoDB\BSON\Iterator::rewind

(mongodb >=1.16.0)

MongoDB\BSON\Iterator::rewind — Rewinds the Iterator to the first element

Description

public MongoDB\BSON\Iterator::rewind(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Voir aussi

  • Iterator::rewind() - Replace l'itérateur sur le premier élément


Checks if current position is valid

  • « MongoDB\BSON\Iterator::rewind
  • MongoDB\BSON\Binary »
  • PHP Manual
  • MongoDB\BSON\Iterator
  • Checks if current position is valid

MongoDB\BSON\Iterator::valid

(mongodb >=1.16.0)

MongoDB\BSON\Iterator::valid — Checks if current position is valid

Description

public MongoDB\BSON\Iterator::valid(): bool

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns true if the current iterator position is valid, false otherwise.

Voir aussi

  • Iterator::valid() - Vérifie si la position courante est valide


La classe MongoDB\BSON\Binary

(mongodb >=1.0.0)

Introduction

Type BSON pour les données binaires (i.e. tableau d'octets). Les valeurs binaires ont également un sous-type, qui est utilisé pour indiquer quel type de données se trouve dans le tableau d'octets. Les sous-types de zéro à 127 sont prédéfinis ou réservés. Les sous-types de 128-255 sont définis par l'utilisateur.

Synopsis de la classe

final class MongoDB\BSON\Binary implements MongoDB\BSON\BinaryInterface, MongoDB\BSON\Type, Serializable, JsonSerializable, Stringable {
/* Constantes */
const int TYPE_GENERIC = 0;
const int TYPE_FUNCTION = 1;
const int TYPE_OLD_BINARY = 2;
const int TYPE_OLD_UUID = 3;
const int TYPE_UUID = 4;
const int TYPE_MD5 = 5;
const int TYPE_ENCRYPTED = 6;
const int TYPE_COLUMN = 7;
const int TYPE_SENSITIVE = 8;
const int TYPE_USER_DEFINED = 128;
/* Méthodes */
final public __construct(string $data, int $type = MongoDB\BSON\Binary::TYPE_GENERIC)
final public getData(): string
final public getType(): int
final public jsonSerialize(): mixed
final public serialize(): string
final public __toString(): string
final public unserialize(string $data): void
}

Constantes pré-définies

MongoDB\BSON\Binary::TYPE_GENERIC

Données binaires génériques.

MongoDB\BSON\Binary::TYPE_FUNCTION

Fonction.

MongoDB\BSON\Binary::TYPE_OLD_BINARY

Données binaires génériques (déconseillées en faveur de MongoDB\BSON\Binary::TYPE_GENERIC).

MongoDB\BSON\Binary::TYPE_OLD_UUID

Identificateur universellement unique (déconseillé en faveur de MongoDB\BSON\Binary::TYPE_UUID). Lors de l'utilisation de ce type, les données du binaire doivent être de 16 octets de longueur.

Historiquement, d'autres pilotes encodent des valeurs avec ce type en fonction de leurs conventions linguistiques (par exemple, variable indianness), ce qui le rend non-portable. Le pilote PHP n'applique aucune manipulation spéciale pour coder ou décoder des données avec ce type.

MongoDB\BSON\Binary::TYPE_UUID

Identificateur universellement unique. Lors de l'utilisation de ce type, les données du binaire doivent être de 16 octets de longueur et encodées selon » RFC 4122.

MongoDB\BSON\Binary::TYPE_MD5

Hachage MD5. Lors de l'utilisation de ce type, les données du binaire doivent être de 16 octets de longueur.

MongoDB\BSON\Binary::TYPE_ENCRYPTED

Valeur chiffrée. Ce sous type est utilisé pour le chiffrement côté client.

MongoDB\BSON\Binary::TYPE_COLUMN

Donnée de colonne. Ce sous type est utilisé pour les collections de série temporelle.

MongoDB\BSON\Binary::TYPE_SENSITIVE

Données sensible. Ce sous type est utilisé pour les données sensibles qui devraient être exclue des journaux d'évènements côté serveur si possible.

MongoDB\BSON\Binary::TYPE_USER_DEFINED

Type défini par l'utilisateur. Alors que les types entre 0 et 127 sont prédéfinis ou réservés, les types entre 128 et 255 sont définis par l'utilisateur et peuvent être utilisés pour n'importe quoi.

Historique

Version | Description
PECL mongodb 1.17.0 | Ajout de MongoDB\BSON\Binary::TYPE_SENSITIVE.
PECL mongodb 1.12.0 | Implémente Stringable pour PHP 8.0+. Ajout de MongoDB\BSON\Binary::TYPE_COLUMN.
PECL mongodb 1.7.0 | Ajout de MongoDB\BSON\Binary::TYPE_ENCRYPTED.
PECL mongodb 1.3.0 | Implémente MongoDB\BSON\BinaryInterface.
PECL mongodb 1.2.0 | Implémente Serializable et JsonSerializable.

Sommaire

  • MongoDB\BSON\Binary::__construct — Construit un nouveau binaire
  • MongoDB\BSON\Binary::getData — Retourne les données de Binary
  • MongoDB\BSON\Binary::getType — Retourne le type de Binary
  • MongoDB\BSON\Binary::jsonSerialize — Retourne une représentation qui peut être convertie en JSON
  • MongoDB\BSON\Binary::serialize — Sérialise un Binary
  • MongoDB\BSON\Binary::__toString — Retourne les données de Binary
  • MongoDB\BSON\Binary::unserialize — Désérialise un Binary


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, int $type = MongoDB\BSON\Binary::TYPE_GENERIC)

Liste de paramètres

data (string)

Les données binaires.

type (int)

Entier 8 bits non signé indiquant le type de données. Par défaut, la valeur est MongoDB\BSON\Binary::TYPE_GENERIC si elle n'est pas spécifiée.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.
  • Lève une exception MongoDB\Driver\Exception\InvalidArgumentException si type n'est pas un entier non signé de 8 bits.
  • Lève une exception MongoDB\Driver\Exception\InvalidArgumentException si type est MongoDB\BSON\Binary::TYPE_UUID ou MongoDB\BSON\Binary::TYPE_OLD_UUID et data n'a pas exactement 16 octets de longueur.

Historique

Version | Description
PECL mongodb 1.15.0 | Le paramètre type est désormais facultatif et a pour valeur par défaut MongoDB\BSON\Binary::TYPE_GENERIC s'il n'est pas spécifié.
PECL mongodb 1.3.0 | MongoDB\Driver\Exception\InvalidArgumentException est levée si type est MongoDB\BSON\Binary::TYPE_UUID ou MongoDB\BSON\Binary::TYPE_OLD_UUID et data n'a pas exactement 16 octets de longueur.
PECL mongodb 1.1.3 | MongoDB\Driver\Exception\InvalidArgumentException est levée si type n'est pas un entier non signé de 8 bits.

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


Retourne les données de Binary

  • « MongoDB\BSON\Binary::__construct
  • MongoDB\BSON\Binary::getType »
  • PHP Manual
  • MongoDB\BSON\Binary
  • Retourne les données de Binary

MongoDB\BSON\Binary::getData

(mongodb >=1.0.0)

MongoDB\BSON\Binary::getData — Retourne les données de Binary

Description

final public MongoDB\BSON\Binary::getData(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne les données de Binary.

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::getData()

<?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

  • » Types BSON


Retourne le type de Binary

  • « MongoDB\BSON\Binary::getData
  • MongoDB\BSON\Binary::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\Binary
  • Retourne le type de Binary

MongoDB\BSON\Binary::getType

(mongodb >=1.0.0)

MongoDB\BSON\Binary::getType — Retourne le type de Binary

Description

final public MongoDB\BSON\Binary::getType(): int

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le type de Binary.

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::getType()

<?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

  • » Types BSON


Retourne une représentation qui peut être convertie en JSON

  • « MongoDB\BSON\Binary::getType
  • MongoDB\BSON\Binary::serialize »
  • PHP Manual
  • MongoDB\BSON\Binary
  • Retourne une représentation qui peut être convertie en JSON

MongoDB\BSON\Binary::jsonSerialize

(mongodb >=1.2.0)

MongoDB\BSON\Binary::jsonSerialize — Retourne une représentation qui peut être convertie en JSON

Description

final public MongoDB\BSON\Binary::jsonSerialize(): mixed

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne des données qui peuvent être sérialisées par json_encode() pour produire une représentation JSON étendue de MongoDB\BSON\Binary.

Note: La sortie est cohérente avec la fonction MongoDB\BSON\toJSON(), qui utilise le format JSON étendu spécifique au pilote. Cela ne correspond pas nécessairement aux représentations JSON étendues » décontractées ou » canoniques utilisées par MongoDB\BSON\toRelaxedExtendedJSON() et MongoDB\BSON\toCanonicalExtendedJSON(), respectivement.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • JsonSerializable::jsonSerialize() - Spécifie les données qui doivent être sérialisées en JSON
  • json_encode() - Retourne la représentation JSON d'une valeur
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB JSON Étendue


Sérialise un Binary

  • « MongoDB\BSON\Binary::jsonSerialize
  • MongoDB\BSON\Binary::__toString »
  • PHP Manual
  • MongoDB\BSON\Binary
  • Sérialise un Binary

MongoDB\BSON\Binary::serialize

(mongodb >=1.2.0)

MongoDB\BSON\Binary::serialize — Sérialise un Binary

Description

final public MongoDB\BSON\Binary::serialize(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la représentation sérialisée de MongoDB\BSON\Binary.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\BSON\Binary::unserialize() - Désérialise un Binary
  • serialize() - Génère une représentation stockable d'une valeur
  • Sérialisation d'Objets


Retourne les données de Binary

  • « MongoDB\BSON\Binary::serialize
  • MongoDB\BSON\Binary::unserialize »
  • PHP Manual
  • MongoDB\BSON\Binary
  • Retourne les données de Binary

MongoDB\BSON\Binary::__toString

(mongodb >=1.2.0)

MongoDB\BSON\Binary::__toString — Retourne les données de Binary

Description

final public MongoDB\BSON\Binary::__toString(): string

Cette méthode est un alias de: MongoDB\BSON\Binary::getData().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne les données de Binary.

Exemples

Exemple #1 Exemple avec MongoDB\BSON\Binary::__toString()

<?php

var_dump((string) new MongoDB\BSON\Binary('foo', MongoDB\BSON\Binary::TYPE_GENERIC));

?>

L'exemple ci-dessus va afficher :

string(3) "foo"

Voir aussi

  • MongoDB\BSON\Binary::getData() - Retourne les données de Binary
  • » Types BSON


Désérialise un Binary

  • « MongoDB\BSON\Binary::__toString
  • MongoDB\BSON\Decimal128 »
  • PHP Manual
  • MongoDB\BSON\Binary
  • Désérialise un Binary

MongoDB\BSON\Binary::unserialize

(mongodb >=1.2.0)

MongoDB\BSON\Binary::unserialize — Désérialise un Binary

Description

final public MongoDB\BSON\Binary::unserialize(string $data): void

Liste de paramètres

data

Le MongoDB\BSON\Binary sérialisé.

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.
  • Lance MongoDB\Driver\Exception\UnexpectedValueException si les propriétés ne peuvent pas être désérialisées (par exemple si serialized a été mal formé).
  • Lance MongoDB\Driver\Exception\InvalidArgumentException si les propriétés sont incorrectes (par exemple des champs manquant ou des valeurs incorrectes).

Voir aussi

  • MongoDB\BSON\Binary::serialize() - Sérialise un Binary
  • unserialize() - Crée une variable PHP à partir d'une valeur sérialisée
  • Sérialisation d'Objets


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

final class MongoDB\BSON\Decimal128 implements MongoDB\BSON\Decimal128Interface, MongoDB\BSON\Type, Serializable, JsonSerializable, Stringable {
/* Méthodes */
final public __construct(string $value)
final public jsonSerialize(): mixed
final public serialize(): string
final public __toString(): string
final public unserialize(string $data): void
}

Historique

Version | Description
PECL mongodb 1.12.0 | Implements Stringable for PHP 8.0+.
PECL mongodb 1.3.0 | Implements MongoDB\BSON\Decimal128Interface.
PECL mongodb 1.2.0 | Implements Serializable and JsonSerializable.

Sommaire

  • MongoDB\BSON\Decimal128::__construct — Construit un nouveau Decimal128
  • MongoDB\BSON\Decimal128::jsonSerialize — Retourne une représentation qui peut être convertie en JSON
  • MongoDB\BSON\Decimal128::serialize — Sérialise un Decimal128
  • MongoDB\BSON\Decimal128::__toString — Retourne la représentation sous forme de chaîne de caractère de Decimal128
  • MongoDB\BSON\Decimal128::unserialize — Désérialisé un Decimal128


Construit un nouveau Decimal128

  • « MongoDB\BSON\Decimal128
  • MongoDB\BSON\Decimal128::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\Decimal128
  • Construit un nouveau Decimal128

MongoDB\BSON\Decimal128::__construct

(mongodb >=1.2.0)

MongoDB\BSON\Decimal128::__construct — Construit un nouveau 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 (chaîne de caractères)

Une chaîne décimale

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.
  • Lance MongoDB\Driver\Exception\InvalidArgumentException sit value n'est pas une chaîne décimale valide.

Exemples

Exemple #1 Exemple avec MongoDB\BSON\Decimal128::__construct()

<?php

var_dump(new MongoDB\BSON\Decimal128(1234.5678));
var_dump(new MongoDB\BSON\Decimal128(NAN));
var_dump(new MongoDB\BSON\Decimal128(INF));

?>

Résultat de l'exemple ci-dessus est 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

  • » Format de virgule flottante Decimal128
  • » Types BSON


Retourne une représentation qui peut être convertie en JSON

  • « MongoDB\BSON\Decimal128::__construct
  • MongoDB\BSON\Decimal128::serialize »
  • PHP Manual
  • MongoDB\BSON\Decimal128
  • Retourne une représentation qui peut être convertie en JSON

MongoDB\BSON\Decimal128::jsonSerialize

(mongodb >=1.2.0)

MongoDB\BSON\Decimal128::jsonSerialize — Retourne une représentation qui peut être convertie en JSON

Description

final public MongoDB\BSON\Decimal128::jsonSerialize(): mixed

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne des données qui peuvent être sérialisées par json_encode() pour produire une représentation JSON étendue de MongoDB\BSON\Decimal128.

Note: La sortie est cohérente avec la fonction MongoDB\BSON\toJSON(), qui utilise le format JSON étendu spécifique au pilote. Cela ne correspond pas nécessairement aux représentations JSON étendues » décontractées ou » canoniques utilisées par MongoDB\BSON\toRelaxedExtendedJSON() et MongoDB\BSON\toCanonicalExtendedJSON(), respectivement.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • JsonSerializable::jsonSerialize() - Spécifie les données qui doivent être sérialisées en JSON
  • json_encode() - Retourne la représentation JSON d'une valeur
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB JSON Étendue


Sérialise un Decimal128

  • « MongoDB\BSON\Decimal128::jsonSerialize
  • MongoDB\BSON\Decimal128::__toString »
  • PHP Manual
  • MongoDB\BSON\Decimal128
  • Sérialise un Decimal128

MongoDB\BSON\Decimal128::serialize

(mongodb >=1.2.0)

MongoDB\BSON\Decimal128::serialize — Sérialise un Decimal128

Description

final public MongoDB\BSON\Decimal128::serialize(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la représentation sérialisée de MongoDB\BSON\Decimal128.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\BSON\Decimal128::unserialize() - Désérialisé un Decimal128
  • serialize() - Génère une représentation stockable d'une valeur
  • Sérialisation d'Objets


Retourne la représentation sous forme de chaîne de caractère de Decimal128

  • « MongoDB\BSON\Decimal128::serialize
  • MongoDB\BSON\Decimal128::unserialize »
  • PHP Manual
  • MongoDB\BSON\Decimal128
  • Retourne la représentation sous forme de chaîne de caractère de Decimal128

MongoDB\BSON\Decimal128::__toString

(mongodb >=1.2.0)

MongoDB\BSON\Decimal128::__toString — Retourne la représentation sous forme de chaîne de caractère de Decimal128

Description

final public MongoDB\BSON\Decimal128::__toString(): string

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ère de Decimal128.

Exemples

Exemple #1 Exemple avec MongoDB\BSON\Decimal128::__toString()

<?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));

?>

Résultat de l'exemple ci-dessus est similaire à :

string(9) "1234.5678"
string(3) "NaN"
string(8) "Infinity"

Voir aussi

  • » Format de virgule flottante Decimal128
  • » Types BSON


Désérialisé un Decimal128

  • « MongoDB\BSON\Decimal128::__toString
  • MongoDB\BSON\Javascript »
  • PHP Manual
  • MongoDB\BSON\Decimal128
  • Désérialisé un Decimal128

MongoDB\BSON\Decimal128::unserialize

(mongodb >=1.2.0)

MongoDB\BSON\Decimal128::unserialize — Désérialisé un Decimal128

Description

final public MongoDB\BSON\Decimal128::unserialize(string $data): void

Liste de paramètres

data

Le MongoDB\BSON\Decimal128 sérialisé.

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.
  • Lance MongoDB\Driver\Exception\UnexpectedValueException si les propriétés ne peuvent pas être désérialisées (par exemple si serialized a été mal formé).
  • Lance MongoDB\Driver\Exception\InvalidArgumentException si les propriétés sont incorrectes (par exemple des champs manquant ou des valeurs incorrectes).

Voir aussi

  • MongoDB\BSON\Decimal128::serialize() - Sérialise un Decimal128
  • unserialize() - Crée une variable PHP à partir d'une valeur sérialisée
  • Sérialisation d'Objets


La classe MongoDB\BSON\Javascript

(mongodb >=1.0.0)

Introduction

Type BSON pour le code JavaScript. Un document d'étendue optionnel peut être spécifié qui mappe les identificateurs aux valeurs et définit l'étendue dans laquelle le code doit être évalué par le serveur.

Note: Ce type BSON est principalement utilisé lors de l'exécution de commandes de base de données qui prennent une fonction JavaScript comme paramètre, tel que » mapReduce.

Synopsis de la classe

final class MongoDB\BSON\Javascript implements MongoDB\BSON\JavascriptInterface, MongoDB\BSON\Type, Serializable, JsonSerializable, Stringable {
/* Méthodes */
final public __construct(string $code, array|object|null $scope = null)
final public getCode(): string
final public getScope(): ?object
final public jsonSerialize(): mixed
final public serialize(): string
final public __toString(): string
final public unserialize(string $data): void
}

Historique

Version | Description
PECL mongodb 1.12.0 | Implémente Stringable pour PHP 8.0+.
PECL mongodb 1.3.0 | Implémente MongoDB\BSON\JavascriptInterface.
PECL mongodb 1.2.0 | Implémente Serializable et JsonSerializable.

Sommaire

  • MongoDB\BSON\Javascript::__construct — Construit un nouvel objet Javascript
  • MongoDB\BSON\Javascript::getCode — Retourne le code Javascript
  • MongoDB\BSON\Javascript::getScope — Retourne le document de portée de Javascript
  • MongoDB\BSON\Javascript::jsonSerialize — Retourne une représentation qui peut être convertie en JSON
  • MongoDB\BSON\Javascript::serialize — Sérialise un Javascript
  • MongoDB\BSON\Javascript::__toString — Retourne le code Javascript
  • MongoDB\BSON\Javascript::unserialize — Désérialisé un Javascript


Construit un nouvel objet Javascript

  • « MongoDB\BSON\Javascript
  • MongoDB\BSON\Javascript::getCode »
  • PHP Manual
  • MongoDB\BSON\Javascript
  • Construit un nouvel objet Javascript

MongoDB\BSON\Javascript::__construct

(mongodb >=1.0.0)

MongoDB\BSON\Javascript::__construct — Construit un nouvel objet Javascript

Description

final public MongoDB\BSON\Javascript::__construct(string $code, array|object|null $scope = null)

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.
  • Lève MongoDB\Driver\Exception\InvalidArgumentException si code contient un octet nul.

Historique

Version | Description
PECL mongodb 1.2.0 | MongoDB\Driver\Exception\InvalidArgumentException est levée si code contient un octet nul. Auparavant, les valeurs étaient tronquées au premier octet nul.

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


Retourne le code Javascript

  • « MongoDB\BSON\Javascript::__construct
  • MongoDB\BSON\Javascript::getScope »
  • PHP Manual
  • MongoDB\BSON\Javascript
  • Retourne le code Javascript

MongoDB\BSON\Javascript::getCode

(mongodb >=1.2.0)

MongoDB\BSON\Javascript::getCode — Retourne le code Javascript

Description

final public MongoDB\BSON\Javascript::getCode(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le code Javascript.

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\Javascript::getCode()

<?php

$js = new MongoDB\BSON\Javascript('function foo(bar) { return bar; }');
var_dump($js->getCode());

?>

L'exemple ci-dessus va afficher :

string(33) "function foo(bar) { return bar; }"

Voir aussi

  • » Types BSON


Retourne le document de portée de Javascript

  • « MongoDB\BSON\Javascript::getCode
  • MongoDB\BSON\Javascript::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\Javascript
  • Retourne le document de portée de Javascript

MongoDB\BSON\Javascript::getScope

(mongodb >=1.2.0)

MongoDB\BSON\Javascript::getScope — Retourne le document de portée de Javascript

Description

final public MongoDB\BSON\Javascript::getScope(): ?object

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le document de portée de Javascript, ou null s'il n'a pas de porté.

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\Javascript::getScope()

<?php

$js = new MongoDB\BSON\Javascript('function foo(bar) { return bar; }');
var_dump($js->getScope());

$js = new MongoDB\BSON\Javascript('function foo() { return foo; }', ['foo' => 42]);
var_dump($js->getScope());

?>

L'exemple ci-dessus va afficher :

NULL
object(stdClass)#1 (1) {
  ["foo"]=>
  int(42)
}

Voir aussi

  • » Types BSON


Retourne une représentation qui peut être convertie en JSON

  • « MongoDB\BSON\Javascript::getScope
  • MongoDB\BSON\Javascript::serialize »
  • PHP Manual
  • MongoDB\BSON\Javascript
  • Retourne une représentation qui peut être convertie en JSON

MongoDB\BSON\Javascript::jsonSerialize

(mongodb >=1.2.0)

MongoDB\BSON\Javascript::jsonSerialize — Retourne une représentation qui peut être convertie en JSON

Description

final public MongoDB\BSON\Javascript::jsonSerialize(): mixed

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne des données qui peuvent être sérialisées par json_encode() pour produire une représentation JSON étendue de MongoDB\BSON\Javascript.

Note: La sortie est cohérente avec la fonction MongoDB\BSON\toJSON(), qui utilise le format JSON étendu spécifique au pilote. Cela ne correspond pas nécessairement aux représentations JSON étendues » décontractées ou » canoniques utilisées par MongoDB\BSON\toRelaxedExtendedJSON() et MongoDB\BSON\toCanonicalExtendedJSON(), respectivement.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • JsonSerializable::jsonSerialize() - Spécifie les données qui doivent être sérialisées en JSON
  • json_encode() - Retourne la représentation JSON d'une valeur
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB JSON Étendue


Sérialise un Javascript

  • « MongoDB\BSON\Javascript::jsonSerialize
  • MongoDB\BSON\Javascript::__toString »
  • PHP Manual
  • MongoDB\BSON\Javascript
  • Sérialise un Javascript

MongoDB\BSON\Javascript::serialize

(mongodb >=1.2.0)

MongoDB\BSON\Javascript::serialize — Sérialise un Javascript

Description

final public MongoDB\BSON\Javascript::serialize(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la représentation sérialisée de MongoDB\BSON\Javascript.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\BSON\Javascript::unserialize() - Désérialisé un Javascript
  • serialize() - Génère une représentation stockable d'une valeur
  • Sérialisation d'Objets


Retourne le code Javascript

  • « MongoDB\BSON\Javascript::serialize
  • MongoDB\BSON\Javascript::unserialize »
  • PHP Manual
  • MongoDB\BSON\Javascript
  • Retourne le code Javascript

MongoDB\BSON\Javascript::__toString

(mongodb >=1.2.0)

MongoDB\BSON\Javascript::__toString — Retourne le code Javascript

Description

final public MongoDB\BSON\Javascript::__toString(): string

Cette méthode est un alias de: MongoDB\BSON\Javascript::getCode().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le code Javascript.

Exemples

Exemple #1 Exemple avec MongoDB\BSON\Javascript::__toString()

<?php

var_dump((string) new MongoDB\BSON\Javascript('function foo(bar) { return bar; }'));

?>

L'exemple ci-dessus va afficher :

string(33) "function foo(bar) { return bar; }"

Voir aussi

  • MongoDB\BSON\Javascript::getCode() - Retourne le code Javascript
  • » Types BSON


Désérialisé un Javascript

  • « MongoDB\BSON\Javascript::__toString
  • MongoDB\BSON\MaxKey »
  • PHP Manual
  • MongoDB\BSON\Javascript
  • Désérialisé un Javascript

MongoDB\BSON\Javascript::unserialize

(mongodb >=1.2.0)

MongoDB\BSON\Javascript::unserialize — Désérialisé un Javascript

Description

final public MongoDB\BSON\Javascript::unserialize(string $data): void

Liste de paramètres

data

Le MongoDB\BSON\Javascript sérialisé.

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.
  • Lance MongoDB\Driver\Exception\UnexpectedValueException si les propriétés ne peuvent pas être désérialisées (par exemple si serialized a été mal formé).
  • Lance MongoDB\Driver\Exception\InvalidArgumentException si les propriétés sont incorrectes (par exemple des champs manquant ou des valeurs incorrectes).

Voir aussi

  • MongoDB\BSON\Javascript::serialize() - Sérialise un Javascript
  • unserialize() - Crée une variable PHP à partir d'une valeur sérialisée
  • Sérialisation d'Objets


La classe MongoDB\BSON\MaxKey

(mongodb >=1.0.0)

Introduction

Type BSON spécial qui compare la plus grande valeur possible de toutes les autres valeurs d'éléments BSON possibles.

Note: Il s'agit d'un type interne de MongoDB utilisé pour l'indexation et la défragmentation.

Synopsis de la classe

final class MongoDB\BSON\MaxKey implements MongoDB\BSON\MaxKeyInterface, MongoDB\BSON\Type, Serializable, JsonSerializable {
/* Méthodes */
final public __construct()
final public jsonSerialize(): mixed
final public serialize(): string
final public unserialize(string $data): void
}

Historique

Version | Description
PECL mongodb 1.3.0 | Implémente MongoDB\BSON\MaxKeyInterface.
PECL mongodb 1.2.0 | Implémente Serializable et JsonSerializable.

Sommaire

  • MongoDB\BSON\MaxKey::__construct — Construit un nouveau MaxKey
  • MongoDB\BSON\MaxKey::jsonSerialize — Retourne une représentation qui peut être convertie en JSON
  • MongoDB\BSON\MaxKey::serialize — Sérialise un MaxKey
  • MongoDB\BSON\MaxKey::unserialize — Désérialisé un MaxKey


Construit un nouveau MaxKey

  • « MongoDB\BSON\MaxKey
  • MongoDB\BSON\MaxKey::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\MaxKey
  • Construit un nouveau MaxKey

MongoDB\BSON\MaxKey::__construct

(mongodb >=1.0.0)

MongoDB\BSON\MaxKey::__construct — Construit un nouveau MaxKey

Description

final public MongoDB\BSON\MaxKey::__construct()

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 Exemple avec MongoDB\BSON\MaxKey::__construct()

<?php

var_dump(new MongoDB\BSON\MaxKey());

?>

L'exemple ci-dessus va afficher :

object(MongoDB\BSON\MaxKey)#1 (0) {
}

Voir aussi

  • » Types BSON


Retourne une représentation qui peut être convertie en JSON

  • « MongoDB\BSON\MaxKey::__construct
  • MongoDB\BSON\MaxKey::serialize »
  • PHP Manual
  • MongoDB\BSON\MaxKey
  • Retourne une représentation qui peut être convertie en JSON

MongoDB\BSON\MaxKey::jsonSerialize

(mongodb >=1.2.0)

MongoDB\BSON\MaxKey::jsonSerialize — Retourne une représentation qui peut être convertie en JSON

Description

final public MongoDB\BSON\MaxKey::jsonSerialize(): mixed

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne des données qui peuvent être sérialisées par json_encode() pour produire une représentation JSON étendue de MongoDB\BSON\MaxKey.

Note: La sortie est cohérente avec la fonction MongoDB\BSON\toJSON(), qui utilise le format JSON étendu spécifique au pilote. Cela ne correspond pas nécessairement aux représentations JSON étendues » décontractées ou » canoniques utilisées par MongoDB\BSON\toRelaxedExtendedJSON() et MongoDB\BSON\toCanonicalExtendedJSON(), respectivement.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • JsonSerializable::jsonSerialize() - Spécifie les données qui doivent être sérialisées en JSON
  • json_encode() - Retourne la représentation JSON d'une valeur
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB JSON Étendue


Sérialise un MaxKey

  • « MongoDB\BSON\MaxKey::jsonSerialize
  • MongoDB\BSON\MaxKey::unserialize »
  • PHP Manual
  • MongoDB\BSON\MaxKey
  • Sérialise un MaxKey

MongoDB\BSON\MaxKey::serialize

(mongodb >=1.2.0)

MongoDB\BSON\MaxKey::serialize — Sérialise un MaxKey

Description

final public MongoDB\BSON\MaxKey::serialize(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la représentation sérialisée de MongoDB\BSON\MaxKey.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\BSON\MaxKey::unserialize() - Désérialisé un MaxKey
  • serialize() - Génère une représentation stockable d'une valeur
  • Sérialisation d'Objets


Désérialisé un MaxKey

  • « MongoDB\BSON\MaxKey::serialize
  • MongoDB\BSON\MinKey »
  • PHP Manual
  • MongoDB\BSON\MaxKey
  • Désérialisé un MaxKey

MongoDB\BSON\MaxKey::unserialize

(mongodb >=1.2.0)

MongoDB\BSON\MaxKey::unserialize — Désérialisé un MaxKey

Description

final public MongoDB\BSON\MaxKey::unserialize(string $data): void

Liste de paramètres

data

Le MongoDB\BSON\MaxKey sérialisé.

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.

Voir aussi

  • MongoDB\BSON\MaxKey::serialize() - Sérialise un MaxKey
  • unserialize() - Crée une variable PHP à partir d'une valeur sérialisée
  • Sérialisation d'Objets


La classe MongoDB\BSON\MinKey

(mongodb >=1.0.0)

Introduction

Type BSON spécial qui compare la plus petite valeur possible de toutes les autres valeurs d'éléments BSON possibles.

Note: Il s'agit d'un type interne de MongoDB utilisé pour l'indexation et la défragmentation.

Synopsis de la classe

final class MongoDB\BSON\MinKey implements MongoDB\BSON\MinKeyInterface, MongoDB\BSON\Type, Serializable, JsonSerializable {
/* Méthodes */
final public __construct()
final public jsonSerialize(): mixed
final public serialize(): string
final public unserialize(string $data): void
}

Historique

Version | Description
PECL mongodb 1.3.0 | Implémente MongoDB\BSON\MinKeyInterface.
PECL mongodb 1.2.0 | Implémente Serializable et JsonSerializable.

Sommaire

  • MongoDB\BSON\MinKey::__construct — Construit un nouveau MinKey
  • MongoDB\BSON\MinKey::jsonSerialize — Retourne une représentation qui peut être convertie en JSON
  • MongoDB\BSON\MinKey::serialize — Sérialise un MinKey
  • MongoDB\BSON\MinKey::unserialize — Désérialisé un MinKey


Construit un nouveau MinKey

  • « MongoDB\BSON\MinKey
  • MongoDB\BSON\MinKey::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\MinKey
  • Construit un nouveau MinKey

MongoDB\BSON\MinKey::__construct

(mongodb >=1.0.0)

MongoDB\BSON\MinKey::__construct — Construit un nouveau MinKey

Description

final public MongoDB\BSON\MinKey::__construct()

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 Exemple avec MongoDB\BSON\MinKey::__construct()

<?php

var_dump(new MongoDB\BSON\MinKey());

?>

L'exemple ci-dessus va afficher :

object(MongoDB\BSON\MinKey)#1 (0) {
}

Voir aussi

  • » Types BSON


Retourne une représentation qui peut être convertie en JSON

  • « MongoDB\BSON\MinKey::__construct
  • MongoDB\BSON\MinKey::serialize »
  • PHP Manual
  • MongoDB\BSON\MinKey
  • Retourne une représentation qui peut être convertie en JSON

MongoDB\BSON\MinKey::jsonSerialize

(mongodb >=1.2.0)

MongoDB\BSON\MinKey::jsonSerialize — Retourne une représentation qui peut être convertie en JSON

Description

final public MongoDB\BSON\MinKey::jsonSerialize(): mixed

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne des données qui peuvent être sérialisées par json_encode() pour produire une représentation JSON étendue de MongoDB\BSON\MinKey.

Note: La sortie est cohérente avec la fonction MongoDB\BSON\toJSON(), qui utilise le format JSON étendu spécifique au pilote. Cela ne correspond pas nécessairement aux représentations JSON étendues » décontractées ou » canoniques utilisées par MongoDB\BSON\toRelaxedExtendedJSON() et MongoDB\BSON\toCanonicalExtendedJSON(), respectivement.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • JsonSerializable::jsonSerialize() - Spécifie les données qui doivent être sérialisées en JSON
  • json_encode() - Retourne la représentation JSON d'une valeur
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB JSON Étendue


Sérialise un MinKey

  • « MongoDB\BSON\MinKey::jsonSerialize
  • MongoDB\BSON\MinKey::unserialize »
  • PHP Manual
  • MongoDB\BSON\MinKey
  • Sérialise un MinKey

MongoDB\BSON\MinKey::serialize

(mongodb >=1.2.0)

MongoDB\BSON\MinKey::serialize — Sérialise un MinKey

Description

final public MongoDB\BSON\MinKey::serialize(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la représentation sérialisée de MongoDB\BSON\MinKey.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\BSON\MinKey::unserialize() - Désérialisé un MinKey
  • serialize() - Génère une représentation stockable d'une valeur
  • Sérialisation d'Objets


Désérialisé un MinKey

  • « MongoDB\BSON\MinKey::serialize
  • MongoDB\BSON\ObjectId »
  • PHP Manual
  • MongoDB\BSON\MinKey
  • Désérialisé un MinKey

MongoDB\BSON\MinKey::unserialize

(mongodb >=1.2.0)

MongoDB\BSON\MinKey::unserialize — Désérialisé un MinKey

Description

final public MongoDB\BSON\MinKey::unserialize(string $data): void

Liste de paramètres

data

Le MongoDB\BSON\MinKey sérialisé.

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.

Voir aussi

  • MongoDB\BSON\MinKey::serialize() - Sérialise un MinKey
  • unserialize() - Crée une variable PHP à partir d'une valeur sérialisée
  • Sérialisation d'Objets


The MongoDB\BSON\ObjectId class

(mongodb >=1.0.0)

Introduction

Type BSON pour un » ObjectId. La valeur se compose de 12 octets, où les quatre premiers octets sont un timestamp qui reflètent la création de l'ObjectId. Plus précisément, la valeur se compose de :

  • une valeur de 4 octets représentant les secondes depuis l'époque UNIX,
  • un nombre aléatoire de 5 octets unique à une machine et un processus, et
  • un compteur de 3 octets, commençant par une valeur aléatoire.

Dans MongoDB, chaque document stocké dans une collection requiert un champ _id unique qui agit comme clé primaire. Si un document inséré omet le champ _id, le pilote génère automatiquement un ObjectId pour le champ _id.

L'utilisation d'ObjectId pour le champ _id fournit les avantages supplémentaires suivants:

  • L'heure de création de l'ObjectId peut être accédée à l'aide de la méthode MongoDB\BSON\ObjectId::getTimestamp().
  • Le tri sur un champ _id qui stocke des valeurs ObjectId équivaut à peu près au tri par date de création.

Synopsis de la classe

final class MongoDB\BSON\ObjectId implements MongoDB\BSON\ObjectIdInterface, MongoDB\BSON\Type, Serializable, JsonSerializable, Stringable {
/* Méthodes */
final public __construct(?string $id = null)
final public getTimestamp(): int
final public jsonSerialize(): mixed
final public serialize(): string
final public __toString(): string
final public unserialize(string $data): void
}

Historique

Version | Description
PECL mongodb 1.12.0 | Implémente Stringable pour PHP 8.0+.
PECL mongodb 1.3.0 | Renommé de MongoDB\BSON\ObjectID vers MongoDB\BSON\ObjectId. Implémente MongoDB\BSON\ObjectIdInterface.
PECL mongodb 1.2.0 | Implémente Serializable et JsonSerializable.

Sommaire

  • MongoDB\BSON\ObjectId::__construct — Construit un nouvel ObjectId
  • MongoDB\BSON\ObjectId::getTimestamp — Retourne le composant d'horodatage de ObjectId
  • MongoDB\BSON\ObjectId::jsonSerialize — Retourne une représentation qui peut être convertie en JSON
  • MongoDB\BSON\ObjectId::serialize — Sérialise un ObjectId
  • MongoDB\BSON\ObjectId::__toString — Retourne la représentation hexadécimale de cet ObjectId
  • MongoDB\BSON\ObjectId::unserialize — Désérialisé un ObjectId


Construit un nouvel ObjectId

  • « MongoDB\BSON\ObjectId
  • MongoDB\BSON\ObjectId::getTimestamp »
  • 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 = null)

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'));

?>

Résultat de l'exemple ci-dessus est 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 le composant d'horodatage de ObjectId

  • « MongoDB\BSON\ObjectId::__construct
  • MongoDB\BSON\ObjectId::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\ObjectId
  • Retourne le composant d'horodatage de ObjectId

MongoDB\BSON\ObjectId::getTimestamp

(mongodb >=1.2.0)

MongoDB\BSON\ObjectId::getTimestamp — Retourne le composant d'horodatage de ObjectId

Description

final public MongoDB\BSON\ObjectId::getTimestamp(): int

Le composand d'horodatage d'un ObjectId est ses 32 bits les plus significatifs, qui dénote le nombre de secondes depuis l'epoch Unix. Cette valeur est lu comme un entier 32-bit non signé avec un ordre d'octets big-endian.

Note: Étant donné que le type entier de PHP est signé, certaines valeurs retournées par cette méthode peuvent apparaître sous forme d'entiers négatifs sur les plates-formes 32 bits. Le formateur "%u" de sprintf() peut être utilisé pour obtenir une représentation sous forme de chaîne de la valeur décimale non signée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le composant d'horodatage de 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::getTimestamp()

<?php

var_dump((new MongoDB\BSON\ObjectId())->getTimestamp());

var_dump((new MongoDB\BSON\ObjectId('0000002a0000000000000000'))->getTimestamp());

?>

Résultat de l'exemple ci-dessus est similaire à :

integer(1484854719)
integer(42)

Voir aussi

  • » Référence ObjectId
  • » Types BSON : ObjectId


Retourne une représentation qui peut être convertie en JSON

  • « MongoDB\BSON\ObjectId::getTimestamp
  • MongoDB\BSON\ObjectId::serialize »
  • PHP Manual
  • MongoDB\BSON\ObjectId
  • Retourne une représentation qui peut être convertie en JSON

MongoDB\BSON\ObjectId::jsonSerialize

(mongodb >=1.2.0)

MongoDB\BSON\ObjectId::jsonSerialize — Retourne une représentation qui peut être convertie en JSON

Description

final public MongoDB\BSON\ObjectId::jsonSerialize(): mixed

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne des données qui peuvent être sérialisées par json_encode() pour produire une représentation JSON étendue de MongoDB\BSON\ObjectId.

Note: La sortie est cohérente avec la fonction MongoDB\BSON\toJSON(), qui utilise le format JSON étendu spécifique au pilote. Cela ne correspond pas nécessairement aux représentations JSON étendues » décontractées ou » canoniques utilisées par MongoDB\BSON\toRelaxedExtendedJSON() et MongoDB\BSON\toCanonicalExtendedJSON(), respectivement.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • JsonSerializable::jsonSerialize() - Spécifie les données qui doivent être sérialisées en JSON
  • json_encode() - Retourne la représentation JSON d'une valeur
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB JSON Étendue


Sérialise un ObjectId

  • « MongoDB\BSON\ObjectId::jsonSerialize
  • MongoDB\BSON\ObjectId::__toString »
  • PHP Manual
  • MongoDB\BSON\ObjectId
  • Sérialise un ObjectId

MongoDB\BSON\ObjectId::serialize

(mongodb >=1.2.0)

MongoDB\BSON\ObjectId::serialize — Sérialise un ObjectId

Description

final public MongoDB\BSON\ObjectId::serialize(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la représentation sérialisée de MongoDB\BSON\ObjectId.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\BSON\ObjectId::unserialize() - Désérialisé un ObjectId
  • serialize() - Génère une représentation stockable d'une valeur
  • Sérialisation d'Objets


Retourne la représentation hexadécimale de cet ObjectId

  • « MongoDB\BSON\ObjectId::serialize
  • MongoDB\BSON\ObjectId::unserialize »
  • 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 MongoDB\BSON\ObjectId::__toString(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la représentation hexadécimale de cet ObjectId.

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'));

?>

Résultat de l'exemple ci-dessus est similaire à :

string(24) "56731b49da14d8747d701211"
string(24) "000000000000000000000001"

Voir aussi

  • » La référence ObjectId
  • » Le type BSON : ObjectId


Désérialisé un ObjectId

  • « MongoDB\BSON\ObjectId::__toString
  • MongoDB\BSON\Regex »
  • PHP Manual
  • MongoDB\BSON\ObjectId
  • Désérialisé un ObjectId

MongoDB\BSON\ObjectId::unserialize

(mongodb >=1.2.0)

MongoDB\BSON\ObjectId::unserialize — Désérialisé un ObjectId

Description

final public MongoDB\BSON\ObjectId::unserialize(string $data): void

Liste de paramètres

data

Le MongoDB\BSON\ObjectId sérialisé.

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.
  • Lance MongoDB\Driver\Exception\UnexpectedValueException si les propriétés ne peuvent pas être désérialisées (par exemple si serialized a été mal formé).
  • Lance MongoDB\Driver\Exception\InvalidArgumentException si les propriétés sont incorrectes (par exemple des champs manquant ou des valeurs incorrectes).

Voir aussi

  • MongoDB\BSON\ObjectId::serialize() - Sérialise un ObjectId
  • unserialize() - Crée une variable PHP à partir d'une valeur sérialisée
  • Sérialisation d'Objets


La classe MongoDB\BSON\Regex

(mongodb >=1.0.0)

Introduction

Type BSON pour un modèle d'expression régulière et » flags facultatif.

Note: Ce type BSON est principalement utilisé lors de l'interrogation de la base de données. Alternativement, l'opérateur de requête » $regex peut être utilisé.

Synopsis de la classe

final class MongoDB\BSON\Regex implements MongoDB\BSON\RegexInterface, MongoDB\BSON\Type, Serializable, JsonSerializable, Stringable {
/* Méthodes */
final public __construct(string $pattern, string $flags = "")
final public getFlags(): string
final public getPattern(): string
final public jsonSerialize(): mixed
final public serialize(): string
final public __toString(): string
final public unserialize(string $data): void
}

Historique

Version | Description
PECL mongodb 1.12.0 | Implémente Stringable pour PHP 8.0+.
PECL mongodb 1.3.0 | Implémente MongoDB\BSON\RegexInterface.
PECL mongodb 1.2.0 | Implémente Serializable et JsonSerializable.

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::jsonSerialize — Retourne une représentation qui peut être convertie en JSON
  • MongoDB\BSON\Regex::serialize — Sérialise un Regex
  • MongoDB\BSON\Regex::__toString — Retourne la chaîne représentant cette REGEX
  • MongoDB\BSON\Regex::unserialize — Désérialisé un 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.
  • Lève une exception MongoDB\Driver\Exception\InvalidArgumentException si pattern ou flags contient un octet nul.

Historique

Version Description
PECL mongodb 1.2.0

L'arguement flags est optionnel et la valeur par défaut est une chaîne vide.

Les caractères dans l'argument flags seront triés par ordre alphabétique lorsqu'une Regex est construite. Auparavant, les caractères étaient stockés dans l'ordre fourni.

MongoDB\Driver\Exception\InvalidArgumentException est livé si pattern ou flags contient un octet nul. Auparavant, les valeurs étaient tronquées au premier octet nul.

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 MongoDB\BSON\Regex::getFlags(): string

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());

?>

Résultat de l'exemple ci-dessus est 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::jsonSerialize »
  • 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 MongoDB\BSON\Regex::getPattern(): string

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());

?>

Résultat de l'exemple ci-dessus est similaire à :

string(5) "regex"

Voir aussi

  • » Les types BSON


Retourne une représentation qui peut être convertie en JSON

  • « MongoDB\BSON\Regex::getPattern
  • MongoDB\BSON\Regex::serialize »
  • PHP Manual
  • MongoDB\BSON\Regex
  • Retourne une représentation qui peut être convertie en JSON

MongoDB\BSON\Regex::jsonSerialize

(mongodb >=1.2.0)

MongoDB\BSON\Regex::jsonSerialize — Retourne une représentation qui peut être convertie en JSON

Description

final public MongoDB\BSON\Regex::jsonSerialize(): mixed

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne des données qui peuvent être sérialisées par json_encode() pour produire une représentation JSON étendue de MongoDB\BSON\Regex.

Note: La sortie est cohérente avec la fonction MongoDB\BSON\toJSON(), qui utilise le format JSON étendu spécifique au pilote. Cela ne correspond pas nécessairement aux représentations JSON étendues » décontractées ou » canoniques utilisées par MongoDB\BSON\toRelaxedExtendedJSON() et MongoDB\BSON\toCanonicalExtendedJSON(), respectivement.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • JsonSerializable::jsonSerialize() - Spécifie les données qui doivent être sérialisées en JSON
  • json_encode() - Retourne la représentation JSON d'une valeur
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB JSON Étendue


Sérialise un Regex

  • « MongoDB\BSON\Regex::jsonSerialize
  • MongoDB\BSON\Regex::__toString »
  • PHP Manual
  • MongoDB\BSON\Regex
  • Sérialise un Regex

MongoDB\BSON\Regex::serialize

(mongodb >=1.2.0)

MongoDB\BSON\Regex::serialize — Sérialise un Regex

Description

final public MongoDB\BSON\Regex::serialize(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la représentation sérialisée de MongoDB\BSON\Regex.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\BSON\Regex::unserialize() - Désérialisé un Regex
  • serialize() - Génère une représentation stockable d'une valeur
  • Sérialisation d'Objets


Retourne la chaîne représentant cette REGEX

  • « MongoDB\BSON\Regex::serialize
  • MongoDB\BSON\Regex::unserialize »
  • 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 MongoDB\BSON\Regex::__toString(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la chaîne représentant cette REGEX.

Exemples

Exemple #1 Exemple avec BSON\Regex::__toString()

<?php

$regex = new MongoDB\BSON\Regex('regex', 'i');
var_dump((string) $regex);

?>

Résultat de l'exemple ci-dessus est similaire à :

string(8) "/regex/i"

Voir aussi

  • » Les types BSON


Désérialisé un Regex

  • « MongoDB\BSON\Regex::__toString
  • MongoDB\BSON\Timestamp »
  • PHP Manual
  • MongoDB\BSON\Regex
  • Désérialisé un Regex

MongoDB\BSON\Regex::unserialize

(mongodb >=1.2.0)

MongoDB\BSON\Regex::unserialize — Désérialisé un Regex

Description

final public MongoDB\BSON\Regex::unserialize(string $data): void

Liste de paramètres

data

Le MongoDB\BSON\Regex sérialisé.

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.
  • Lance MongoDB\Driver\Exception\UnexpectedValueException si les propriétés ne peuvent pas être désérialisées (par exemple si serialized a été mal formé).
  • Lance MongoDB\Driver\Exception\InvalidArgumentException si les propriétés sont incorrectes (par exemple des champs manquant ou des valeurs incorrectes).

Voir aussi

  • MongoDB\BSON\Regex::serialize() - Sérialise un Regex
  • unserialize() - Crée une variable PHP à partir d'une valeur sérialisée
  • Sérialisation d'Objets


La classe MongoDB\BSON\Timestamp

(mongodb >=1.0.0)

Introduction

Représente un » horodatage BSON, la valeur se compose d'un horodatage de 4 octets (i.e. secondes depuis l'époque) et d'une incrémentation de 4 octets.

Note: Il s'agit d'un type MongoDB interne utilisé pour la réplication et la fragmentation. Il n'est pas prévu pour le stockage de date générale (MongoDB\BSON\UTCDateTime doit être utilisé à la place).

Synopsis de la classe

final class MongoDB\BSON\Timestamp implements MongoDB\BSON\TimestampInterface, MongoDB\BSON\Type, Serializable, JsonSerializable, Stringable {
/* Méthodes */
final public __construct(int $increment, int $timestamp)
final public getIncrement(): int
final public getTimestamp(): int
final public jsonSerialize(): mixed
final public serialize(): string
final public BSON\Timestamp::__toString(): ReturnType
final public unserialize(string $data): void
}

Historique

Version | Description
PECL mongodb 1.12.0 | Implémente Stringable pour PHP 8.0+.
PECL mongodb 1.3.0 | Implémente MongoDB\BSON\TimestampInterface.
PECL mongodb 1.2.0 | Implémente Serializable et JsonSerializable.

Sommaire

  • MongoDB\BSON\Timestamp::__construct — Contruit un nouveau Timestamp
  • MongoDB\BSON\Timestamp::getIncrement — Retourne le composant d'incrémentation de ce Timestamp
  • MongoDB\BSON\Timestamp::getTimestamp — Retourne le composant d'horodatage de Timestamp
  • MongoDB\BSON\Timestamp::jsonSerialize — Retourne une représentation qui peut être convertie en JSON
  • MongoDB\BSON\Timestamp::serialize — Sérialise un Timestamp
  • MongoDB\BSON\Timestamp::__toString — Retourne la représentation sous forme de chaîne de cet horodatage
  • MongoDB\BSON\Timestamp::unserialize — Désérialisé un Timestamp


Contruit un nouveau Timestamp

  • « MongoDB\BSON\Timestamp
  • MongoDB\BSON\Timestamp::getIncrement »
  • PHP Manual
  • MongoDB\BSON\Timestamp
  • Contruit un nouveau Timestamp

MongoDB\BSON\Timestamp::__construct

(mongodb >=1.0.0)

MongoDB\BSON\Timestamp::__construct — Contruit un nouveau Timestamp

Description

final public MongoDB\BSON\Timestamp::__construct(int $increment, int $timestamp)

Liste de paramètres

increment (int)

Entier de 32-bit qui indique l'ordinal incrémentiel pour les opérations dans une seconde donnée.

timestamp (int)

Entier de 32-bit indiquant des secondes depuis l'époque UNIX.

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\Timestamp::__construct()

<?php

$timestamp = new MongoDB\BSON\Timestamp(1234, 5678);

?>

Résultat de l'exemple ci-dessus est similaire à :

object(MongoDB\BSON\Timestamp)#1 (2) {
  ["increment"]=>
  int(1234)
  ["timestamp"]=>
  int(5678)
}

Voir aussi

  • » Le type BSON : Timestamps


Retourne le composant d'incrémentation de ce Timestamp

  • « MongoDB\BSON\Timestamp::__construct
  • MongoDB\BSON\Timestamp::getTimestamp »
  • PHP Manual
  • MongoDB\BSON\Timestamp
  • Retourne le composant d'incrémentation de ce Timestamp

MongoDB\BSON\Timestamp::getIncrement

(mongodb >=1.3.0)

MongoDB\BSON\Timestamp::getIncrement — Retourne le composant d'incrémentation de ce Timestamp

Description

final public MongoDB\BSON\Timestamp::getIncrement(): int

Le composant d'incrémentation d'un Timestamp sont ses 32bits les moins significatifs, qui désigne l'ordinal incrémentant pour les opérations pour une seconde donnée. Cette valeur est lu comme un entier 32-bits non signé avec un ordre d'octet big-endian.

Note: Étant donné que le type entier de PHP est signé, certaines valeurs retournées par cette méthode peuvent apparaître sous forme d'entiers négatifs sur les plates-formes 32 bits. Le formateur "%u" de sprintf() peut être utilisé pour obtenir une représentation sous forme de chaîne de la valeur décimale non signée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le composant d'incrémentation de ce Timestamp.

Avertissement

Sur les systèmes 32 bits cette méthode peut retourner un nombre négatif. Bien que les parties d'incrémentation et d'horodatages du type BSON timestamp consiste de deux valeurs 32-bits non signé, PHP ne peut les représentrer sur les platformes 32-bit.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • » Types BSON : Timestamps


Retourne le composant d'horodatage de Timestamp

  • « MongoDB\BSON\Timestamp::getIncrement
  • MongoDB\BSON\Timestamp::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\Timestamp
  • Retourne le composant d'horodatage de Timestamp

MongoDB\BSON\Timestamp::getTimestamp

(mongodb >=1.3.0)

MongoDB\BSON\Timestamp::getTimestamp — Retourne le composant d'horodatage de Timestamp

Description

final public MongoDB\BSON\Timestamp::getTimestamp(): int

Le composand d'horodatage d'un Timestamp est ses 32 bits les plus significatifs, qui dénote le nombre de secondes depuis l'epoch Unix. Cette valeur est lu comme un entier 32-bit non signé avec un ordre d'octets big-endian.

Note: Étant donné que le type entier de PHP est signé, certaines valeurs retournées par cette méthode peuvent apparaître sous forme d'entiers négatifs sur les plates-formes 32 bits. Le formateur "%u" de sprintf() peut être utilisé pour obtenir une représentation sous forme de chaîne de la valeur décimale non signée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le composant d'horodatage de Timestamp.

Avertissement

Sur les systèmes 32-bits cette méthode peut retourner un nombre négatif. Bien que les parties d'incrémentation et d'horodatage du type timestamp BSON consiste de deux valeur 32-bits non signé, PHP ne peut pas les représenter sur les platformes 32-bits.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • » Types BSON : Timestamps


Retourne une représentation qui peut être convertie en JSON

  • « MongoDB\BSON\Timestamp::getTimestamp
  • MongoDB\BSON\Timestamp::serialize »
  • PHP Manual
  • MongoDB\BSON\Timestamp
  • Retourne une représentation qui peut être convertie en JSON

MongoDB\BSON\Timestamp::jsonSerialize

(mongodb >=1.2.0)

MongoDB\BSON\Timestamp::jsonSerialize — Retourne une représentation qui peut être convertie en JSON

Description

final public MongoDB\BSON\Timestamp::jsonSerialize(): mixed

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne des données qui peuvent être sérialisées par json_encode() pour produire une représentation JSON étendue de MongoDB\BSON\Timestamp.

Note: La sortie est cohérente avec la fonction MongoDB\BSON\toJSON(), qui utilise le format JSON étendu spécifique au pilote. Cela ne correspond pas nécessairement aux représentations JSON étendues » décontractées ou » canoniques utilisées par MongoDB\BSON\toRelaxedExtendedJSON() et MongoDB\BSON\toCanonicalExtendedJSON(), respectivement.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • JsonSerializable::jsonSerialize() - Spécifie les données qui doivent être sérialisées en JSON
  • json_encode() - Retourne la représentation JSON d'une valeur
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB JSON Étendue


Sérialise un Timestamp

  • « MongoDB\BSON\Timestamp::jsonSerialize
  • MongoDB\BSON\Timestamp::__toString »
  • PHP Manual
  • MongoDB\BSON\Timestamp
  • Sérialise un Timestamp

MongoDB\BSON\Timestamp::serialize

(mongodb >=1.2.0)

MongoDB\BSON\Timestamp::serialize — Sérialise un Timestamp

Description

final public MongoDB\BSON\Timestamp::serialize(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la représentation sérialisée de MongoDB\BSON\Timestamp.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\BSON\Timestamp::unserialize() - Désérialisé un Timestamp
  • serialize() - Génère une représentation stockable d'une valeur
  • Sérialisation d'Objets


Retourne la représentation sous forme de chaîne de cet horodatage

  • « MongoDB\BSON\Timestamp::serialize
  • MongoDB\BSON\Timestamp::unserialize »
  • PHP Manual
  • MongoDB\BSON\Timestamp
  • Retourne la représentation sous forme de chaîne de cet horodatage

MongoDB\BSON\Timestamp::__toString

(mongodb >=1.0.0)

MongoDB\BSON\Timestamp::__toString — Retourne la représentation sous forme de chaîne de cet horodatage

Description

final public BSON\Timestamp::__toString(): ReturnType

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la représentation sous forme de chaîne de cet horodatage

Exemples

Exemple #1 Exemple avec MongoDB\BSON\Timestamp::__toString()

<?php

$timestamp = new MongoDB\BSON\Timestamp(1234, 5678);
var_dump((string) $timestamp);

?>

Résultat de l'exemple ci-dessus est similaire à :

string(11) "[1234:5678]"

Voir aussi

  • » Le type BSON : Timestamps


Désérialisé un Timestamp

  • « MongoDB\BSON\Timestamp::__toString
  • MongoDB\BSON\UTCDatetime »
  • PHP Manual
  • MongoDB\BSON\Timestamp
  • Désérialisé un Timestamp

MongoDB\BSON\Timestamp::unserialize

(mongodb >=1.2.0)

MongoDB\BSON\Timestamp::unserialize — Désérialisé un Timestamp

Description

final public MongoDB\BSON\Timestamp::unserialize(string $data): void

Liste de paramètres

data

Le MongoDB\BSON\Timestamp sérialisé.

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.
  • Lance MongoDB\Driver\Exception\UnexpectedValueException si les propriétés ne peuvent pas être désérialisées (par exemple si serialized a été mal formé).
  • Lance MongoDB\Driver\Exception\InvalidArgumentException si les propriétés sont incorrectes (par exemple des champs manquant ou des valeurs incorrectes).

Voir aussi

  • MongoDB\BSON\Timestamp::serialize() - Sérialise un Timestamp
  • unserialize() - Crée une variable PHP à partir d'une valeur sérialisée
  • Sérialisation d'Objets


La classe MongoDB\BSON\UTCDatetime

(mongodb >=1.0.0)

Introduction

Représente une » date BSON. La valeur est un entier de 64 bits qui représente le nombre de millisecondes depuis l'époque UNIX (1 janvier 1970). Les valeurs négatives représentent des dates avant le 1970.

Synopsis de la classe

final class MongoDB\BSON\UTCDateTime implements MongoDB\BSON\UTCDateTimeInterface, MongoDB\BSON\Type, Serializable, JsonSerializable, Stringable {
/* Méthodes */
final public __construct(int|float|string|DateTimeInterface|null $milliseconds = null)
final public jsonSerialize(): mixed
final public serialize(): string
final public MongoDB\BSON\UTCDatetime::toDateTime(): DateTime
final public __toString(): string
final public unserialize(string $data): void
}

Historique

Version | Description
PECL mongodb 1.12.0 | Implémente Stringable pour PHP 8.0+.
PECL mongodb 1.3.0 | Implémente MongoDB\BSON\UTCDateTimeInterface.
PECL mongodb 1.2.0 | Implémente Serializable et JsonSerializable.

Sommaire

  • MongoDB\BSON\UTCDateTime::__construct — Construit un nouveau UTCDateTime
  • MongoDB\BSON\UTCDateTime::jsonSerialize — Retourne une représentation qui peut être convertie en JSON
  • MongoDB\BSON\UTCDateTime::serialize — Sérialise un UTCDateTime
  • MongoDB\BSON\UTCDateTime::toDateTime — Retourne la représentation DateTime de ce UTCDateTime
  • MongoDB\BSON\UTCDateTime::__toString — Retourne la représentation sous forme de chaîne de ce UTCDateTime
  • MongoDB\BSON\UTCDateTime::unserialize — Désérialisé un UTCDateTime


Construit un nouveau UTCDateTime

  • « MongoDB\BSON\UTCDatetime
  • MongoDB\BSON\UTCDateTime::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\UTCDatetime
  • Construit un nouveau UTCDateTime

MongoDB\BSON\UTCDateTime::__construct

(mongodb >=1.0.0)

MongoDB\BSON\UTCDateTime::__construct — Construit un nouveau UTCDateTime

Description

final public MongoDB\BSON\UTCDateTime::__construct(int|float|string|DateTimeInterface|null $milliseconds = null)

Liste de paramètres

milliseconds (int|float|string|DateTimeInterface|null)

Nombre de millisecondes depuis l'époque UNIX (1 janvier 1970). Les valeurs négatives représentent des dates avant le 1970. Cette valeur peut être fournie en tant qu'entier 64 bits. Pour la compatibilité sur les systèmes 32 bits, ce paramètre peut également être fourni comme un nombre décimal ou une chaîne de caractères.

Si l'argument est un DateTimeInterface, le nombre de millisecondes depuis l'époque UNIX sera dérivé de cette valeur.

Si cet arguement est null, la l'heure actuelle sera utilisée par défaut.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Historique

Version | Description
PECL mongodb 1.2.0 | L'argument milliseconds est facultatif et par défaut à null (c'est-à-dire l'heure actuelle). L'argument accepte également un DateTimeInterface, qui peut être utilisé pour calculer le nombre de millisecondes depuis l'époque UNIX. Auparavant, seuls les types entier, nombre décimal et chaîne de caractères étaient acceptés.

Exemples

Exemple #1 Exemple avec MongoDB\BSON\UTCDatetime::__construct()

<?php

var_dump(new MongoDB\BSON\UTCDateTime);

var_dump(new MongoDB\BSON\UTCDateTime(new DateTime));

var_dump(new MongoDB\BSON\UTCDateTime(1416445411987));

?>

Résultat de l'exemple ci-dessus est similaire à :

object(MongoDB\BSON\UTCDateTime)#1 (1) {
  ["milliseconds"]=>
  string(13) "1484852905560"
}
object(MongoDB\BSON\UTCDateTime)#1 (1) {
  ["milliseconds"]=>
  string(13) "1484852905560"
}
object(MongoDB\BSON\UTCDateTime)#1 (1) {
  ["milliseconds"]=>
  string(13) "1416445411987"
}

Voir aussi

  • » BSON Types: Date


Retourne une représentation qui peut être convertie en JSON

  • « MongoDB\BSON\UTCDateTime::__construct
  • MongoDB\BSON\UTCDateTime::serialize »
  • PHP Manual
  • MongoDB\BSON\UTCDatetime
  • Retourne une représentation qui peut être convertie en JSON

MongoDB\BSON\UTCDateTime::jsonSerialize

(mongodb >=1.2.0)

MongoDB\BSON\UTCDateTime::jsonSerialize — Retourne une représentation qui peut être convertie en JSON

Description

final public MongoDB\BSON\UTCDateTime::jsonSerialize(): mixed

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne des données qui peuvent être sérialisées par json_encode() pour produire une représentation JSON étendue de MongoDB\BSON\UTCDateTime.

Note: La sortie est cohérente avec la fonction MongoDB\BSON\toJSON(), qui utilise le format JSON étendu spécifique au pilote. Cela ne correspond pas nécessairement aux représentations JSON étendues » décontractées ou » canoniques utilisées par MongoDB\BSON\toRelaxedExtendedJSON() et MongoDB\BSON\toCanonicalExtendedJSON(), respectivement.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • JsonSerializable::jsonSerialize() - Spécifie les données qui doivent être sérialisées en JSON
  • json_encode() - Retourne la représentation JSON d'une valeur
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB JSON Étendue


Sérialise un UTCDateTime

  • « MongoDB\BSON\UTCDateTime::jsonSerialize
  • MongoDB\BSON\UTCDateTime::toDateTime »
  • PHP Manual
  • MongoDB\BSON\UTCDatetime
  • Sérialise un UTCDateTime

MongoDB\BSON\UTCDateTime::serialize

(mongodb >=1.2.0)

MongoDB\BSON\UTCDateTime::serialize — Sérialise un UTCDateTime

Description

final public MongoDB\BSON\UTCDateTime::serialize(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la représentation sérialisée de MongoDB\BSON\UTCDateTime.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\BSON\UTCDateTime::unserialize() - Désérialisé un UTCDateTime
  • serialize() - Génère une représentation stockable d'une valeur
  • Sérialisation d'Objets


Retourne la représentation DateTime de ce UTCDateTime

  • « MongoDB\BSON\UTCDateTime::serialize
  • MongoDB\BSON\UTCDateTime::__toString »
  • PHP Manual
  • MongoDB\BSON\UTCDatetime
  • Retourne la représentation DateTime de ce UTCDateTime

MongoDB\BSON\UTCDateTime::toDateTime

(mongodb >=1.0.0)

MongoDB\BSON\UTCDateTime::toDateTime — Retourne la représentation DateTime de ce UTCDateTime

Description

final public MongoDB\BSON\UTCDatetime::toDateTime(): DateTime

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la représentation DateTime de ce UTCDateTime. Le DateTime retourné utilisera le fuseau horaire UTC.

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\UTCDatetime::toDateTime()

<?php

$utcdatetime = new MongoDB\BSON\UTCDateTime(1416445411987);
$datetime = $utcdatetime->toDateTime();
var_dump($datetime->format('r'));
var_dump($datetime->format('U.u'));
var_dump($datetime->getTimezone());

?>

Résultat de l'exemple ci-dessus est similaire à :

string(31) "Thu, 20 Nov 2014 01:03:31 +0000"
string(17) "1416445411.987000"
object(DateTimeZone)#3 (2) {
  ["timezone_type"]=>
  int(1)
  ["timezone"]=>
  string(6) "+00:00"
}

Voir aussi

  • » Le type BSON : Date


Retourne la représentation sous forme de chaîne de ce UTCDateTime

  • « MongoDB\BSON\UTCDateTime::toDateTime
  • MongoDB\BSON\UTCDateTime::unserialize »
  • PHP Manual
  • MongoDB\BSON\UTCDatetime
  • Retourne la représentation sous forme de chaîne de ce UTCDateTime

MongoDB\BSON\UTCDateTime::__toString

(mongodb >=1.0.0)

MongoDB\BSON\UTCDateTime::__toString — Retourne la représentation sous forme de chaîne de ce UTCDateTime

Description

final public MongoDB\BSON\UTCDateTime::__toString(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la représentation sous forme de chaîne de ce UTCDateTime.

Exemples

Exemple #1 Exemple avec MongoDB\BSON\UTCDatetime::__toString()

<?php

$utcdatetime = new MongoDB\BSON\UTCDateTime(1416445411987);
var_dump((string) $utcdatetime);

?>

L'exemple ci-dessus va afficher :

string(13) "1416445411987"

Voir aussi

  • » BSON Types: Date


Désérialisé un UTCDateTime

  • « MongoDB\BSON\UTCDateTime::__toString
  • MongoDB\BSON\Type »
  • PHP Manual
  • MongoDB\BSON\UTCDatetime
  • Désérialisé un UTCDateTime

MongoDB\BSON\UTCDateTime::unserialize

(mongodb >=1.2.0)

MongoDB\BSON\UTCDateTime::unserialize — Désérialisé un UTCDateTime

Description

final public MongoDB\BSON\UTCDateTime::unserialize(string $data): void

Liste de paramètres

data

Le MongoDB\BSON\UTCDateTime sérialisé.

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.
  • Lance MongoDB\Driver\Exception\UnexpectedValueException si les propriétés ne peuvent pas être désérialisées (par exemple si serialized a été mal formé).
  • Lance MongoDB\Driver\Exception\InvalidArgumentException si les propriétés sont incorrectes (par exemple des champs manquant ou des valeurs incorrectes).

Voir aussi

  • MongoDB\BSON\UTCDateTime::serialize() - Sérialise un UTCDateTime
  • unserialize() - Crée une variable PHP à partir d'une valeur sérialisée
  • Sérialisation d'Objets


L'interface MongoDB\BSON\Type

(mongodb >=1.0.0)

Introduction

Interface de base abstraite qui ne doit pas être implémentée directement.

Sommaire de l'Interface

class MongoDB\BSON\Type {
}

Cette interface n'a pas de méthodes. Son seul but est d'être l'interface de base pour toutes les classes de type BSON.


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 sérialisation, 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ésérialisation, 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 sérialisé comme document BSON.

Sommaire de l'Interface

class MongoDB\BSON\Persistable implements MongoDB\BSON\Unserializable, MongoDB\BSON\Serializable {
/* Méthodes */
abstract public bsonSerialize(): array|stdClass|MongoDB\BSON\Document
/* Méthodes héritées */
abstract public MongoDB\BSON\Serializable::bsonSerialize(): array|stdClass|MongoDB\BSON\Document|MongoDB\BSON\PackedArray
abstract public MongoDB\BSON\Unserializable::bsonUnserialize(array $data): void
}

Sommaire

  • MongoDB\BSON\Persistable::bsonSerialize — Provides an array or document to serialize as BSON


Provides an array or document to serialize as BSON

  • « MongoDB\BSON\Persistable
  • MongoDB\BSON\Serializable »
  • PHP Manual
  • MongoDB\BSON\Persistable
  • Provides an array or document to serialize as BSON

MongoDB\BSON\Persistable::bsonSerialize

(mongodb >=1.0.0)

MongoDB\BSON\Persistable::bsonSerialize — Provides an array or document to serialize as BSON

Description

abstract public MongoDB\BSON\Persistable::bsonSerialize(): array|stdClass|MongoDB\BSON\Document

Called during serialization of the object to BSON. The method must return an array, stdClass, or MongoDB\BSON\Document.

The return value will always be serialized as a BSON document. The serialized document will include a field containing the class name of the object. For this reason, it is not possible to return a MongoDB\BSON\PackedArray instance in this method.

Users are encouraged to include an _id property (e.g. a MongoDB\BSON\ObjectId initialized in your constructor) when returning data for a BSON root document; otherwise, the driver or database will need to generate a MongoDB\BSON\ObjectId when inserting or upserting the document, respectively.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

An array, stdClass, or MongoDB\BSON\Document to be serialized as a BSON document.

Historique

Version | Description
PECL mongodb 1.17.0 | This method may now also return MongoDB\BSON\Document instances in addition to array and stdClass.

Voir aussi

  • MongoDB\BSON\Serializable::bsonSerialize() - Fournit un tableau ou un document à sérialiser en tant que BSON
  • MongoDB\BSON\Unserializable::bsonUnserialize() - Construit l'objet à partir d'un tableau ou d'un document BSON
  • MongoDB\BSON\Persistable
  • Persisting Data


La classe MongoDB\BSON\Serializable

(mongodb >=1.0.0)

Introduction

Les classes qui implémentent cette interface peuvent retourner des données à sérialiser comme un tableau BSON, ou un document comme propriétés publiques d'objets.

Sommaire de l'Interface

class MongoDB\BSON\Serializable implements MongoDB\BSON\Type {
/* Méthodes */
abstract public bsonSerialize(): array|stdClass|MongoDB\BSON\Document|MongoDB\BSON\PackedArray
}

Historique

Version | Description
PECL mongodb 1.15.0 | Les types de retours des méthodes sont déclarés comme provisoires en PHP 8.0 et ultérieur, ce qui déclenche des avis de dépréciation dans le code qui implémente cette interface sans déclarer les types de retours appropriés. L'attribut #[ReturnTypeWillChange] peut être ajouté pour ignorer la notice de dépréciation.

Sommaire

  • MongoDB\BSON\Serializable::bsonSerialize — Fournit un tableau ou un document à sérialiser en tant que BSON


Fournit un tableau ou un document à sérialiser en tant que BSON

  • « MongoDB\BSON\Serializable
  • MongoDB\BSON\Unserializable »
  • PHP Manual
  • MongoDB\BSON\Serializable
  • Fournit un tableau ou un document à sérialiser en tant que BSON

MongoDB\BSON\Serializable::bsonSerialize

(mongodb >=1.0.0)

MongoDB\BSON\Serializable::bsonSerialize — Fournit un tableau ou un document à sérialiser en tant que BSON

Description

abstract public MongoDB\BSON\Serializable::bsonSerialize(): array|stdClass|MongoDB\BSON\Document|MongoDB\BSON\PackedArray

Appelé pendant la sérialisation de l'objet à BSON. La méthode doit retourner un tableau, stdClass, MongoDB\BSON\Document ou MongoDB\BSON\PackedArray.

Les documents racine (par exemple, un MongoDB\BSON\Serializable passé à MongoDB\BSON\fromPHP()) seront toujours sérialisés en tant que document BSON. Pour les valeurs de champ, les tableaux associatifs et les instances stdClass seront sérialisés en tant que document BSON et les tableaux séquentiels (c'est-à-dire les index numériques séquentiels commençant à 0) seront sérialisés en tant que tableau BSON.

Les utilisateurs sont encouragés à inclure une propriété _id (par exemple un MongoDB\BSON\ObjectId initialisé dans votre constructeur) lors du renvoi de données pour un document racine BSON; sinon, le pilote ou la base de données devra générer un MongoDB\BSON\ObjectId lors de l'insertion ou de la upserting du document, respectivement.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

tableau, stdClass, MongoDB\BSON\Document, or MongoDB\BSON\PackedArray à sérialiser en tant que tableau ou document BSON.

Historique

Version Description
PECL mongodb 1.17.0

Le type de retour n'est plus array|object. Plutôt qu'un object, le type de retour spécifie désormais stdClass. Les classes implémentant cette interface doivent être modifiées pour ne plus utiliser le type de retour object. Le type de retour étant prévisionnel, un avertissement de dépréciation est émis en PHP 8.1 ou ultérieur si les implémentations n'utilisent pas le bon type de retour.

Additionnellement aux changements ci-dessus, le pilote supporte désormais de retourner des instances de MongoDB\BSON\Document et MongoDB\BSON\PackedArray. À noter que toute instance de MongoDB\BSON\PackedArray sera silencieusement convertie en objet lorsque stocké comme document racine. Ces instances sont stockés sous forme de tableaux lorsqu'elles sont utilisés comme valeur de champ intégrée.

Exemples

Exemple #1 MongoDB\BSON\Serializable::bsonSerialize() renvoyant un tableau associatif pour le document racine

<?php

class MyDocument implements MongoDB\BSON\Serializable
{
private $id;

function __construct()
{
$this->id = new MongoDB\BSON\ObjectId;
}

function bsonSerialize(): array
{
return ['_id' => $this->id, 'foo' => 'bar'];
}
}

$bson = MongoDB\BSON\fromPHP(new MyDocument);
echo MongoDB\BSON\toJSON($bson), "\n";

?>

Résultat de l'exemple ci-dessus est similaire à :

{ "_id" : { "$oid" : "56cccdcada14d8755a58c591" }, "foo" : "bar" }

Exemple #2 MongoDB\BSON\Serializable::bsonSerialize() renvoyant un tableau séquentiel pour le document racine

<?php

class MyArray implements MongoDB\BSON\Serializable
{
function bsonSerialize(): array
{
return [1, 2, 3];
}
}

$bson = MongoDB\BSON\fromPHP(new MyArray);
echo MongoDB\BSON\toJSON($bson), "\n";

?>

L'exemple ci-dessus va afficher :

{ "0" : 1, "1" : 2, "2" : 3 }

Exemple #3 MongoDB\BSON\Serializable::bsonSerialize() renvoyant un tableau associatif pour le champ de document

<?php

class MyDocument implements MongoDB\BSON\Serializable
{
function bsonSerialize(): array
{
return ['foo' => 'bar'];
}
}

$value = ['document' => new MyDocument];
$bson = MongoDB\BSON\fromPHP($value);
echo MongoDB\BSON\toJSON($bson), "\n";

?>

L'exemple ci-dessus va afficher :

{ "document" : { "foo" : "bar" } }

Exemple #4 MongoDB\BSON\Serializable::bsonSerialize() renvoyant un tableau séquentiel pour le champ de document

<?php

class MyArray implements MongoDB\BSON\Serializable
{
function bsonSerialize(): array
{
return [1, 2, 3];
}
}

$value = ['array' => new MyArray];
$bson = MongoDB\BSON\fromPHP($value);
echo MongoDB\BSON\toJSON($bson), "\n";

?>

L'exemple ci-dessus va afficher :

{ "array" : [ 1, 2, 3 ] }

Voir aussi

  • MongoDB\BSON\Unserializable::bsonUnserialize() - Construit l'objet à partir d'un tableau ou d'un document BSON
  • MongoDB\BSON\Persistable
  • Persisting Data


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ésérialisés (à la fois racine et embarqué).

Sommaire de l'Interface

class MongoDB\BSON\Unserializable {
/* Méthodes */
abstract public bsonUnserialize(array $data): void
}

Historique

Version | Description
PECL mongodb 1.15.0 | Les types de retours des méthodes sont déclarés comme provisoires en PHP 8.0 et ultérieur, ce qui déclenche des avis de dépréciation dans le code qui implémente cette interface sans déclarer les types de retours appropriés. L'attribut #[ReturnTypeWillChange] peut être ajouté pour ignorer la notice de dépréciation.

Sommaire

  • MongoDB\BSON\Unserializable::bsonUnserialize — Construit l'objet à partir d'un tableau ou d'un document BSON


Construit l'objet à partir d'un tableau ou d'un document BSON

  • « MongoDB\BSON\Unserializable
  • MongoDB\BSON\BinaryInterface »
  • PHP Manual
  • MongoDB\BSON\Unserializable
  • Construit l'objet à partir d'un tableau ou d'un document BSON

MongoDB\BSON\Unserializable::bsonUnserialize

(mongodb >=1.0.0)

MongoDB\BSON\Unserializable::bsonUnserialize — Construit l'objet à partir d'un tableau ou d'un document BSON

Description

abstract public MongoDB\BSON\Unserializable::bsonUnserialize(array $data): void

Appelé lors de la désérialisation de l'objet à partir de BSON. Les propriétés du tableau ou du document BSON seront transmises à la méthode sous la forme d'un tableau.

N'oubliez pas de rechercher une propriété _id lors de la gestion des données à partir d'un document BSON.

Note: Cette méthode agit comme le constructeur de l'objet. La méthode __construct() ne sera pas appelée après cette méthode.

Liste de paramètres

data (array)

Propriétés ayant le tableau ou le document BSON.

Valeurs de retour

La valeur de retour de cette méthode est ignorée.

Exemples

Exemple #1 Exemple avec MongoDB\BSON\Unserializable::bsonUnserialize()

<?php

class MyDocument implements MongoDB\BSON\Unserializable
{
private $data = [];

function bsonUnserialize(array $data): void
{
$this->data = $data;
}
}

$bson = MongoDB\BSON\fromJSON('{ "foo": "bar" }');
$value = MongoDB\BSON\toPHP($bson, ['root' => 'MyDocument']);
var_dump($value);

?>

Résultat de l'exemple ci-dessus est similaire à :

object(MyDocument)#1 (1) {
  ["data":"MyDocument":private]=>
  array(1) {
    ["foo"]=>
    string(3) "bar"
  }
}

Voir aussi

  • MongoDB\BSON\Serializable::bsonSerialize() - Fournit un tableau ou un document à sérialiser en tant que BSON
  • MongoDB\BSON\Persistable
  • Persisting Data


The MongoDB\BSON\BinaryInterface interface

(mongodb >=1.3.0)

Introduction

This interface is implemented by MongoDB\BSON\Binary to be used as a parameter, return, or property type in userland classes.

Synopsis de la classe

class MongoDB\BSON\BinaryInterface {
/* Méthodes */
abstract public getData(): string
abstract public getType(): int
abstract public __toString(): string
}

Historique

Version | Description
PECL mongodb 1.15.0 | Les types de retours des méthodes sont déclarés comme provisoires en PHP 8.0 et ultérieur, ce qui déclenche des avis de dépréciation dans le code qui implémente cette interface sans déclarer les types de retours appropriés. L'attribut #[ReturnTypeWillChange] peut être ajouté pour ignorer la notice de dépréciation.

Sommaire

  • MongoDB\BSON\BinaryInterface::getData — Retourne les données de BinaryInterface
  • MongoDB\BSON\BinaryInterface::getType — Retourne le type de BinaryInterface
  • MongoDB\BSON\BinaryInterface::__toString — Retourne les données de BinaryInterface


Retourne les données de BinaryInterface

  • « MongoDB\BSON\BinaryInterface
  • MongoDB\BSON\BinaryInterface::getType »
  • PHP Manual
  • MongoDB\BSON\BinaryInterface
  • Retourne les données de BinaryInterface

MongoDB\BSON\BinaryInterface::getData

(mongodb >=1.3.0)

MongoDB\BSON\BinaryInterface::getData — Retourne les données de BinaryInterface

Description

abstract public MongoDB\BSON\BinaryInterface::getData(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne les données de BinaryInterface.

Voir aussi

  • MongoDB\BSON\Binary::getData() - Retourne les données de Binary


Retourne le type de BinaryInterface

  • « MongoDB\BSON\BinaryInterface::getData
  • MongoDB\BSON\BinaryInterface::__toString »
  • PHP Manual
  • MongoDB\BSON\BinaryInterface
  • Retourne le type de BinaryInterface

MongoDB\BSON\BinaryInterface::getType

(mongodb >=1.3.0)

MongoDB\BSON\BinaryInterface::getType — Retourne le type de BinaryInterface

Description

abstract public MongoDB\BSON\BinaryInterface::getType(): int

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le type de BinaryInterface.

Voir aussi

  • MongoDB\BSON\Binary::getType() - Retourne le type de Binary


Retourne les données de BinaryInterface

  • « MongoDB\BSON\BinaryInterface::getType
  • MongoDB\BSON\Decimal128Interface »
  • PHP Manual
  • MongoDB\BSON\BinaryInterface
  • Retourne les données de BinaryInterface

MongoDB\BSON\BinaryInterface::__toString

(mongodb >=1.3.0)

MongoDB\BSON\BinaryInterface::__toString — Retourne les données de BinaryInterface

Description

abstract public MongoDB\BSON\BinaryInterface::__toString(): string

Cette méthode est un alias de: MongoDB\BSON\BinaryInterface::getData().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne les données de BinaryInterface.

Voir aussi

  • MongoDB\BSON\BinaryInterface::getData() - Retourne les données de BinaryInterface
  • MongoDB\BSON\Binary::__toString() - Retourne les données de Binary


The MongoDB\BSON\Decimal128Interface interface

(mongodb >=1.3.0)

Introduction

This interface is implemented by MongoDB\BSON\Decimal128 to be used as a parameter, return, or property type in userland classes.

Synopsis de la classe

class MongoDB\BSON\Decimal128Interface {
/* Méthodes */
abstract public __toString(): string
}

Historique

Version | Description
PECL mongodb 1.15.0 | Les types de retours des méthodes sont déclarés comme provisoires en PHP 8.0 et ultérieur, ce qui déclenche des avis de dépréciation dans le code qui implémente cette interface sans déclarer les types de retours appropriés. L'attribut #[ReturnTypeWillChange] peut être ajouté pour ignorer la notice de dépréciation.

Sommaire

  • MongoDB\BSON\Decimal128Interface::__toString — Retourne une représentation sous chaîne de caractères de Decimal128Interface


Retourne une représentation sous chaîne de caractères de Decimal128Interface

  • « MongoDB\BSON\Decimal128Interface
  • MongoDB\BSON\JavascriptInterface »
  • PHP Manual
  • MongoDB\BSON\Decimal128Interface
  • Retourne une représentation sous chaîne de caractères de Decimal128Interface

MongoDB\BSON\Decimal128Interface::__toString

(mongodb >=1.3.0)

MongoDB\BSON\Decimal128Interface::__toString — Retourne une représentation sous chaîne de caractères de Decimal128Interface

Description

abstract public MongoDB\BSON\Decimal128Interface::__toString(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une représentation sous chaîne de caractères de Decimal128Interface.

Voir aussi

  • MongoDB\BSON\Decimal128::__toString() - Retourne la représentation sous forme de chaîne de caractère de Decimal128


The MongoDB\BSON\JavascriptInterface interface

(mongodb >=1.3.0)

Introduction

This interface is implemented by MongoDB\BSON\Javascript to be used as a parameter, return, or property type in userland classes.

Synopsis de la classe

class MongoDB\BSON\JavascriptInterface {
/* Méthodes */
abstract public getCode(): string
abstract public getScope(): ?object
abstract public __toString(): string
}

Historique

Version | Description
PECL mongodb 1.15.0 | Les types de retours des méthodes sont déclarés comme provisoires en PHP 8.0 et ultérieur, ce qui déclenche des avis de dépréciation dans le code qui implémente cette interface sans déclarer les types de retours appropriés. L'attribut #[ReturnTypeWillChange] peut être ajouté pour ignorer la notice de dépréciation.

Sommaire

  • MongoDB\BSON\JavascriptInterface::getCode — Retourne le code de JavascriptInterface
  • MongoDB\BSON\JavascriptInterface::getScope — Retourne le document de portée de JavascriptInterface
  • MongoDB\BSON\JavascriptInterface::__toString — Retourne le code de JavascriptInterface


Retourne le code de JavascriptInterface

  • « MongoDB\BSON\JavascriptInterface
  • MongoDB\BSON\JavascriptInterface::getScope »
  • PHP Manual
  • MongoDB\BSON\JavascriptInterface
  • Retourne le code de JavascriptInterface

MongoDB\BSON\JavascriptInterface::getCode

(mongodb >=1.3.0)

MongoDB\BSON\JavascriptInterface::getCode — Retourne le code de JavascriptInterface

Description

abstract public MongoDB\BSON\JavascriptInterface::getCode(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le code de JavascriptInterface.

Voir aussi

  • MongoDB\BSON\Javascript::getCode() - Retourne le code Javascript


Retourne le document de portée de JavascriptInterface

  • « MongoDB\BSON\JavascriptInterface::getCode
  • MongoDB\BSON\JavascriptInterface::__toString »
  • PHP Manual
  • MongoDB\BSON\JavascriptInterface
  • Retourne le document de portée de JavascriptInterface

MongoDB\BSON\JavascriptInterface::getScope

(mongodb >=1.3.0)

MongoDB\BSON\JavascriptInterface::getScope — Retourne le document de portée de JavascriptInterface

Description

abstract public MongoDB\BSON\JavascriptInterface::getScope(): ?object

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le document de portée de JavascriptInterface.

Voir aussi

  • MongoDB\BSON\Javascript::getScope() - Retourne le document de portée de Javascript


Retourne le code de JavascriptInterface

  • « MongoDB\BSON\JavascriptInterface::getScope
  • MongoDB\BSON\MaxKeyInterface »
  • PHP Manual
  • MongoDB\BSON\JavascriptInterface
  • Retourne le code de JavascriptInterface

MongoDB\BSON\JavascriptInterface::__toString

(mongodb >=1.3.0)

MongoDB\BSON\JavascriptInterface::__toString — Retourne le code de JavascriptInterface

Description

abstract public MongoDB\BSON\JavascriptInterface::__toString(): string

Cette méthode est un alias de: MongoDB\BSON\JavascriptInterface::getCode().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le code de JavascriptInterface.

Voir aussi

  • MongoDB\BSON\JavascriptInterface::getCode() - Retourne le code de JavascriptInterface
  • MongoDB\BSON\Javascript::__toString() - Retourne le code Javascript


The MongoDB\BSON\MaxKeyInterface interface

(mongodb >=1.3.0)

Introduction

This interface is implemented by MongoDB\BSON\MaxKey to be used as a parameter, return, or property type in userland classes.

Synopsis de la classe

class MongoDB\BSON\MaxKeyInterface {
}

This interface has no methods.


The MongoDB\BSON\MinKeyInterface interface

(mongodb >=1.3.0)

Introduction

This interface is implemented by MongoDB\BSON\MinKey to be used as a parameter, return, or property type in userland classes.

Synopsis de la classe

class MongoDB\BSON\MinKeyInterface {
}

This interface has no methods.


The MongoDB\BSON\ObjectIdInterface interface

(mongodb >=1.3.0)

Introduction

This interface is implemented by MongoDB\BSON\ObjectId to be used as a parameter, return, or property type in userland classes.

Synopsis de la classe

class MongoDB\BSON\ObjectIdInterface {
/* Méthodes */
abstract public getTimestamp(): int
abstract public __toString(): string
}

Historique

Version | Description
PECL mongodb 1.15.0 | Les types de retours des méthodes sont déclarés comme provisoires en PHP 8.0 et ultérieur, ce qui déclenche des avis de dépréciation dans le code qui implémente cette interface sans déclarer les types de retours appropriés. L'attribut #[ReturnTypeWillChange] peut être ajouté pour ignorer la notice de dépréciation.

Sommaire

  • MongoDB\BSON\ObjectIdInterface::getTimestamp — Retourne le composant d'horodatage de ObjectIdInterface
  • MongoDB\BSON\ObjectIdInterface::__toString — Retourne la représentation hexadécimale de ObjectIdInterface


Retourne le composant d'horodatage de ObjectIdInterface

  • « MongoDB\BSON\ObjectIdInterface
  • MongoDB\BSON\ObjectIdInterface::__toString »
  • PHP Manual
  • MongoDB\BSON\ObjectIdInterface
  • Retourne le composant d'horodatage de ObjectIdInterface

MongoDB\BSON\ObjectIdInterface::getTimestamp

(mongodb >=1.3.0)

MongoDB\BSON\ObjectIdInterface::getTimestamp — Retourne le composant d'horodatage de ObjectIdInterface

Description

abstract public MongoDB\BSON\ObjectIdInterface::getTimestamp(): int

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le composant d'horodatage de ObjectIdInterface.

Voir aussi

  • MongoDB\BSON\ObjectId::getTimestamp() - Retourne le composant d'horodatage de ObjectId


Retourne la représentation hexadécimale de ObjectIdInterface

  • « MongoDB\BSON\ObjectIdInterface::getTimestamp
  • MongoDB\BSON\RegexInterface »
  • PHP Manual
  • MongoDB\BSON\ObjectIdInterface
  • Retourne la représentation hexadécimale de ObjectIdInterface

MongoDB\BSON\ObjectIdInterface::__toString

(mongodb >=1.3.0)

MongoDB\BSON\ObjectIdInterface::__toString — Retourne la représentation hexadécimale de ObjectIdInterface

Description

abstract public MongoDB\BSON\ObjectIdInterface::__toString(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la représentation hexadécimale de ObjectIdInterface.

Voir aussi

  • MongoDB\BSON\ObjectId::__toString() - Retourne la représentation hexadécimale de cet ObjectId


The MongoDB\BSON\RegexInterface interface

(mongodb >=1.3.0)

Introduction

This interface is implemented by MongoDB\BSON\Regex to be used as a parameter, return, or property type in userland classes.

Synopsis de la classe

class MongoDB\BSON\RegexInterface {
/* Méthodes */
abstract public getFlags(): string
abstract public getPattern(): string
abstract public __toString(): string
}

Historique

Version | Description
PECL mongodb 1.15.0 | Les types de retours des méthodes sont déclarés comme provisoires en PHP 8.0 et ultérieur, ce qui déclenche des avis de dépréciation dans le code qui implémente cette interface sans déclarer les types de retours appropriés. L'attribut #[ReturnTypeWillChange] peut être ajouté pour ignorer la notice de dépréciation.

Sommaire

  • MongoDB\BSON\RegexInterface::getFlags — Retourne les drapeaux de RegexInterface
  • MongoDB\BSON\RegexInterface::getPattern — Retourne le masque de RegexInterface
  • MongoDB\BSON\RegexInterface::__toString — Retourne la représentation sous forme de chaîne de caractère de cette RegexInterface


Retourne les drapeaux de RegexInterface

  • « MongoDB\BSON\RegexInterface
  • MongoDB\BSON\RegexInterface::getPattern »
  • PHP Manual
  • MongoDB\BSON\RegexInterface
  • Retourne les drapeaux de RegexInterface

MongoDB\BSON\RegexInterface::getFlags

(mongodb >=1.3.0)

MongoDB\BSON\RegexInterface::getFlags — Retourne les drapeaux de RegexInterface

Description

abstract public MongoDB\BSON\RegexInterface::getFlags(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne les drapeaux de RegexInterface.

Voir aussi

  • MongoDB\BSON\Regex::getFlags() - Retourne les drapeux de la REGEX


Retourne le masque de RegexInterface

  • « MongoDB\BSON\RegexInterface::getFlags
  • MongoDB\BSON\RegexInterface::__toString »
  • PHP Manual
  • MongoDB\BSON\RegexInterface
  • Retourne le masque de RegexInterface

MongoDB\BSON\RegexInterface::getPattern

(mongodb >=1.3.0)

MongoDB\BSON\RegexInterface::getPattern — Retourne le masque de RegexInterface

Description

abstract public MongoDB\BSON\RegexInterface::getPattern(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le masque de RegexInterface.

Voir aussi

  • MongoDB\BSON\Regex::getPattern() - Retourne le masque du REGEX


Retourne la représentation sous forme de chaîne de caractère de cette RegexInterface

  • « MongoDB\BSON\RegexInterface::getPattern
  • MongoDB\BSON\TimestampInterface »
  • PHP Manual
  • MongoDB\BSON\RegexInterface
  • Retourne la représentation sous forme de chaîne de caractère de cette RegexInterface

MongoDB\BSON\RegexInterface::__toString

(mongodb >=1.3.0)

MongoDB\BSON\RegexInterface::__toString — Retourne la représentation sous forme de chaîne de caractère de cette RegexInterface

Description

abstract public MongoDB\BSON\RegexInterface::__toString(): string

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 cette RegexInterface.

Voir aussi

  • MongoDB\BSON\Regex::__toString() - Retourne la chaîne représentant cette REGEX


The MongoDB\BSON\TimestampInterface interface

(mongodb >=1.3.0)

Introduction

This interface is implemented by MongoDB\BSON\Timestamp to be used as a parameter, return, or property type in userland classes.

Synopsis de la classe

class MongoDB\BSON\TimestampInterface {
/* Méthodes */
abstract public getIncrement(): int
abstract public getTimestamp(): int
abstract public __toString(): string
}

Historique

Version | Description
PECL mongodb 1.15.0 | Les types de retours des méthodes sont déclarés comme provisoires en PHP 8.0 et ultérieur, ce qui déclenche des avis de dépréciation dans le code qui implémente cette interface sans déclarer les types de retours appropriés. L'attribut #[ReturnTypeWillChange] peut être ajouté pour ignorer la notice de dépréciation.

Sommaire

  • MongoDB\BSON\TimestampInterface::getIncrement — Retourne le composant d'incrémentation de ce TimestampInterface
  • MongoDB\BSON\TimestampInterface::getTimestamp — Retourne le composant d'horodatage de TimestampInterface
  • MongoDB\BSON\TimestampInterface::__toString — Retourne la représentation sous forme de chaîne de caractère de TimestampInterface


Retourne le composant d'incrémentation de ce TimestampInterface

  • « MongoDB\BSON\TimestampInterface
  • MongoDB\BSON\TimestampInterface::getTimestamp »
  • PHP Manual
  • MongoDB\BSON\TimestampInterface
  • Retourne le composant d'incrémentation de ce TimestampInterface

MongoDB\BSON\TimestampInterface::getIncrement

(mongodb >=1.3.0)

MongoDB\BSON\TimestampInterface::getIncrement — Retourne le composant d'incrémentation de ce TimestampInterface

Description

abstract public MongoDB\BSON\TimestampInterface::getIncrement(): int

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le composant d'incrémentation de ce TimestampInterface.

Avertissement

Sur les systèmes 32 bits cette méthode peut retourner un nombre négatif. Bien que les parties d'incrémentation et d'horodatages du type BSON timestamp consiste de deux valeurs 32-bits non signé, PHP ne peut les représentrer sur les platformes 32-bit.

Voir aussi

  • MongoDB\BSON\Timestamp::getIncrement() - Retourne le composant d'incrémentation de ce Timestamp


Retourne le composant d'horodatage de TimestampInterface

  • « MongoDB\BSON\TimestampInterface::getIncrement
  • MongoDB\BSON\TimestampInterface::__toString »
  • PHP Manual
  • MongoDB\BSON\TimestampInterface
  • Retourne le composant d'horodatage de TimestampInterface

MongoDB\BSON\TimestampInterface::getTimestamp

(mongodb >=1.3.0)

MongoDB\BSON\TimestampInterface::getTimestamp — Retourne le composant d'horodatage de TimestampInterface

Description

abstract public MongoDB\BSON\TimestampInterface::getTimestamp(): int

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le composant d'horodatage de TimestampInterface.

Avertissement

Sur les systèmes 32-bits cette méthode peut retourner un nombre négatif. Bien que les parties d'incrémentation et d'horodatage du type timestamp BSON consiste de deux valeur 32-bits non signé, PHP ne peut pas les représenter sur les platformes 32-bits.

Voir aussi

  • MongoDB\BSON\Timestamp::getTimestamp() - Retourne le composant d'horodatage de Timestamp


Retourne la représentation sous forme de chaîne de caractère de TimestampInterface

  • « MongoDB\BSON\TimestampInterface::getTimestamp
  • MongoDB\BSON\UTCDateTimeInterface »
  • PHP Manual
  • MongoDB\BSON\TimestampInterface
  • Retourne la représentation sous forme de chaîne de caractère de TimestampInterface

MongoDB\BSON\TimestampInterface::__toString

(mongodb >=1.3.0)

MongoDB\BSON\TimestampInterface::__toString — Retourne la représentation sous forme de chaîne de caractère de TimestampInterface

Description

abstract public MongoDB\BSON\TimestampInterface::__toString(): string

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ère de TimestampInterface.

Voir aussi

  • MongoDB\BSON\Timestamp::__toString() - Retourne la représentation sous forme de chaîne de cet horodatage


The MongoDB\BSON\UTCDateTimeInterface interface

(mongodb >=1.3.0)

Introduction

This interface is implemented by MongoDB\BSON\UTCDateTime to be used as a parameter, return, or property type in userland classes.

Synopsis de la classe

class MongoDB\BSON\UTCDateTimeInterface {
/* Méthodes */
abstract public toDateTime(): DateTime
abstract public __toString(): string
}

Historique

Version | Description
PECL mongodb 1.15.0 | Les types de retours des méthodes sont déclarés comme provisoires en PHP 8.0 et ultérieur, ce qui déclenche des avis de dépréciation dans le code qui implémente cette interface sans déclarer les types de retours appropriés. L'attribut #[ReturnTypeWillChange] peut être ajouté pour ignorer la notice de dépréciation.

Sommaire

  • MongoDB\BSON\UTCDateTimeInterface::toDateTime — Retourne la représentation DateTime de UTCDateTimeInterface
  • MongoDB\BSON\UTCDateTimeInterface::__toString — Retourne la représentation sous forme de chaîne de caractère de UTCDateTimeInterface


Retourne la représentation DateTime de UTCDateTimeInterface

  • « MongoDB\BSON\UTCDateTimeInterface
  • MongoDB\BSON\UTCDateTimeInterface::__toString »
  • PHP Manual
  • MongoDB\BSON\UTCDateTimeInterface
  • Retourne la représentation DateTime de UTCDateTimeInterface

MongoDB\BSON\UTCDateTimeInterface::toDateTime

(mongodb >=1.3.0)

MongoDB\BSON\UTCDateTimeInterface::toDateTime — Retourne la représentation DateTime de UTCDateTimeInterface

Description

abstract public MongoDB\BSON\UTCDateTimeInterface::toDateTime(): DateTime

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la représentation DateTime de cette UTCDateTimeInterface. Le DateTime devrait utiliser le fuseau horaire UTC.

Voir aussi

  • MongoDB\BSON\UTCDateTime::toDateTime() - Retourne la représentation DateTime de ce UTCDateTime


Retourne la représentation sous forme de chaîne de caractère de UTCDateTimeInterface

  • « MongoDB\BSON\UTCDateTimeInterface::toDateTime
  • MongoDB\BSON\DBPointer »
  • PHP Manual
  • MongoDB\BSON\UTCDateTimeInterface
  • Retourne la représentation sous forme de chaîne de caractère de UTCDateTimeInterface

MongoDB\BSON\UTCDateTimeInterface::__toString

(mongodb >=1.3.0)

MongoDB\BSON\UTCDateTimeInterface::__toString — Retourne la représentation sous forme de chaîne de caractère de UTCDateTimeInterface

Description

abstract public MongoDB\BSON\UTCDateTimeInterface::__toString(): string

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ère de UTCDateTimeInterface.

Voir aussi

  • MongoDB\BSON\UTCDateTime::__toString() - Retourne la représentation sous forme de chaîne de ce UTCDateTime


The MongoDB\BSON\DBPointer class (deprecated)

(mongodb >=1.4.0)

Introduction

BSON type for the "DBPointer" type. This BSON type is deprecated, and this class can not be instantiated. It will be created from a BSON DBPointer type while converting BSON to PHP, and can also be converted back into BSON while storing documents in the database.

Synopsis de la classe

final class MongoDB\BSON\DBPointer implements MongoDB\BSON\Type, Serializable, JsonSerializable, Stringable {
/* Méthodes */
final private __construct()
final public jsonSerialize(): mixed
final public serialize(): string
final public __toString(): string
final public unserialize(string $data): void
}

Historique

Version | Description
PECL mongodb 1.12.0 | Implements Stringable for PHP 8.0+.

Sommaire

  • MongoDB\BSON\DBPointer::__construct — Construit un nouveau DBPointer (inutilisé)
  • MongoDB\BSON\DBPointer::jsonSerialize — Retourne une représentation qui peut être convertie en JSON
  • MongoDB\BSON\DBPointer::serialize — Sérialise un DBPointer
  • MongoDB\BSON\DBPointer::__toString — Retourne une chaîne vide
  • MongoDB\BSON\DBPointer::unserialize — Désérialisé un DBPointer


Construit un nouveau DBPointer (inutilisé)

  • « MongoDB\BSON\DBPointer
  • MongoDB\BSON\DBPointer::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\DBPointer
  • Construit un nouveau DBPointer (inutilisé)

MongoDB\BSON\DBPointer::__construct

(mongodb >=1.4.0)

MongoDB\BSON\DBPointer::__construct — Construit un nouveau DBPointer (inutilisé)

Description

final private MongoDB\BSON\DBPointer::__construct()

Les objets MongoDB\BSON\DBPointer sont crées à travers une conversion depuis un type BSON obsolète et ne peuvent pas être construit directement.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Voir aussi

  • » Types BSON


Retourne une représentation qui peut être convertie en JSON

  • « MongoDB\BSON\DBPointer::__construct
  • MongoDB\BSON\DBPointer::serialize »
  • PHP Manual
  • MongoDB\BSON\DBPointer
  • Retourne une représentation qui peut être convertie en JSON

MongoDB\BSON\DBPointer::jsonSerialize

(mongodb >=1.4.0)

MongoDB\BSON\DBPointer::jsonSerialize — Retourne une représentation qui peut être convertie en JSON

Description

final public MongoDB\BSON\DBPointer::jsonSerialize(): mixed

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne des données qui peuvent être sérialisées par json_encode() pour produire une représentation JSON étendue de MongoDB\BSON\DBPointer.

Note: La sortie est cohérente avec la fonction MongoDB\BSON\toJSON(), qui utilise le format JSON étendu spécifique au pilote. Cela ne correspond pas nécessairement aux représentations JSON étendues » décontractées ou » canoniques utilisées par MongoDB\BSON\toRelaxedExtendedJSON() et MongoDB\BSON\toCanonicalExtendedJSON(), respectivement.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • JsonSerializable::jsonSerialize() - Spécifie les données qui doivent être sérialisées en JSON
  • json_encode() - Retourne la représentation JSON d'une valeur
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB JSON Étendue


Sérialise un DBPointer

  • « MongoDB\BSON\DBPointer::jsonSerialize
  • MongoDB\BSON\DBPointer::__toString »
  • PHP Manual
  • MongoDB\BSON\DBPointer
  • Sérialise un DBPointer

MongoDB\BSON\DBPointer::serialize

(mongodb >=1.4.0)

MongoDB\BSON\DBPointer::serialize — Sérialise un DBPointer

Description

final public MongoDB\BSON\DBPointer::serialize(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la représentation sérialisée de MongoDB\BSON\DBPointer.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\BSON\DBPointer::unserialize() - Désérialisé un DBPointer
  • serialize() - Génère une représentation stockable d'une valeur
  • Sérialisation d'Objets


Retourne une chaîne vide

  • « MongoDB\BSON\DBPointer::serialize
  • MongoDB\BSON\DBPointer::unserialize »
  • PHP Manual
  • MongoDB\BSON\DBPointer
  • Retourne une chaîne vide

MongoDB\BSON\DBPointer::__toString

(mongodb >=1.4.0)

MongoDB\BSON\DBPointer::__toString — Retourne une chaîne vide

Description

final public MongoDB\BSON\DBPointer::__toString(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne vide.

Voir aussi

  • » Types BSON


Désérialisé un DBPointer

  • « MongoDB\BSON\DBPointer::__toString
  • MongoDB\BSON\Int64 »
  • PHP Manual
  • MongoDB\BSON\DBPointer
  • Désérialisé un DBPointer

MongoDB\BSON\DBPointer::unserialize

(mongodb >=1.4.0)

MongoDB\BSON\DBPointer::unserialize — Désérialisé un DBPointer

Description

final public MongoDB\BSON\DBPointer::unserialize(string $data): void

Liste de paramètres

data

Le MongoDB\BSON\DBPointer sérialisé.

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.

Voir aussi

  • MongoDB\BSON\DBPointer::serialize() - Sérialise un DBPointer
  • unserialize() - Crée une variable PHP à partir d'une valeur sérialisée
  • Sérialisation d'Objets


The MongoDB\BSON\Int64 class

(mongodb >=1.5.0)

Introduction

BSON type for a 64-bit integer. When decoding BSON to PHP data, this class is used when a 64-bit integer cannot be represented as a PHP integer on 32-bit platforms. These objects support overloaded arithmetic, bitwise, and comparison operators.

When working with raw BSON data through the MongoDB\BSON\Document, MongoDB\BSON\PackedArray, and MongoDB\BSON\Iterator classes, any 64-bit integer will be returned as an instance of this class, regardless of platform and whether the value can be represented as a PHP integer. This ensures that values can be roundtripped without changing the type.

During BSON encoding, objects of this class will convert back to a 64-bit integer type, even when the value would fit in a 32-bit integer. This allows explicitly storing values as 64-bit integers in BSON.

Synopsis de la classe

final class MongoDB\BSON\Int64 implements MongoDB\BSON\Type, Serializable, JsonSerializable, Stringable {
/* Méthodes */
final public __construct(int|string $value)
final public jsonSerialize(): mixed
final public serialize(): string
final public __toString(): string
final public unserialize(string $data): void
}

Historique

Version | Description
PECL mongodb 1.16.0 | The class can now be instantiated on all platforms. Added support for overloaded arithmetic, bitwise, and comparison operators.
PECL mongodb 1.12.0 | Implements Stringable for PHP 8.0+.

Sommaire

  • MongoDB\BSON\Int64::__construct — Construit un nouveau Int64
  • MongoDB\BSON\Int64::jsonSerialize — Retourne une représentation qui peut être convertie en JSON
  • MongoDB\BSON\Int64::serialize — Sérialise un Int64
  • MongoDB\BSON\Int64::__toString — Retourne la représentation sous forme de chaîne de caractère de Int64
  • MongoDB\BSON\Int64::unserialize — Désérialisé un Int64


Construit un nouveau Int64

  • « MongoDB\BSON\Int64
  • MongoDB\BSON\Int64::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\Int64
  • Construit un nouveau Int64

MongoDB\BSON\Int64::__construct

(mongodb >=1.5.0)

MongoDB\BSON\Int64::__construct — Construit un nouveau Int64

Description

final public MongoDB\BSON\Int64::__construct(int|string $value)

Crée une nouvelle instance de MongoDB\BSON\Int64 pour la valeur entière donnée.

Liste de paramètres

value (int|string)

La valeur à assigner à l'instance de Int64. Cette valeur peut être fournie en tant que int ou string, ce dernier étant requis sur les plateformes 32 bits pour représenter les valeurs 64 bits.

Historique

Version | Description
PECL mongodb 1.16.0 | Cette méthode a été rendue publique pour prendre en charge la création d'instances Int64 lors de la manipulation de BSON brut.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.
  • Lance une MongoDB\Driver\Exception\InvalidArgumentException si la chaîne value ne peut pas être analysée en tant qu'un entier 64 bits.

Voir aussi

  • » Types BSON


Retourne une représentation qui peut être convertie en JSON

  • « MongoDB\BSON\Int64::__construct
  • MongoDB\BSON\Int64::serialize »
  • PHP Manual
  • MongoDB\BSON\Int64
  • Retourne une représentation qui peut être convertie en JSON

MongoDB\BSON\Int64::jsonSerialize

(mongodb >=1.5.0)

MongoDB\BSON\Int64::jsonSerialize — Retourne une représentation qui peut être convertie en JSON

Description

final public MongoDB\BSON\Int64::jsonSerialize(): mixed

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne des données qui peuvent être sérialisées par json_encode() pour produire une représentation JSON étendue de MongoDB\BSON\Int64.

Note: La sortie est concordant avec la fonction MongoDB\BSON\toCanonicalExtendedJSON(), qui utilise le format JSON étendue » canonical. Ceci différe des autres classes BDON, qui utilisent le format JSON étendue hérité du pilote spécifique (MongoDB\BSON\toJSON()), afin de s'assurer que les valeurs entieres 64-bit soit correctement représenté sur les platformes 32-bits.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • JsonSerializable::jsonSerialize() - Spécifie les données qui doivent être sérialisées en JSON
  • json_encode() - Retourne la représentation JSON d'une valeur
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB JSON Étendue


Sérialise un Int64

  • « MongoDB\BSON\Int64::jsonSerialize
  • MongoDB\BSON\Int64::__toString »
  • PHP Manual
  • MongoDB\BSON\Int64
  • Sérialise un Int64

MongoDB\BSON\Int64::serialize

(mongodb >=1.5.0)

MongoDB\BSON\Int64::serialize — Sérialise un Int64

Description

final public MongoDB\BSON\Int64::serialize(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la représentation sérialisée de MongoDB\BSON\Int64.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\BSON\Int64::unserialize() - Désérialisé un Int64
  • serialize() - Génère une représentation stockable d'une valeur
  • Sérialisation d'Objets


Retourne la représentation sous forme de chaîne de caractère de Int64

  • « MongoDB\BSON\Int64::serialize
  • MongoDB\BSON\Int64::unserialize »
  • PHP Manual
  • MongoDB\BSON\Int64
  • Retourne la représentation sous forme de chaîne de caractère de Int64

MongoDB\BSON\Int64::__toString

(mongodb >=1.5.0)

MongoDB\BSON\Int64::__toString — Retourne la représentation sous forme de chaîne de caractère de Int64

Description

final public MongoDB\BSON\Int64::__toString(): string

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ère de Int64.

Exemples

Exemple #1 Exemple avec MongoDB\BSON\Int64::__toString()

<?php

$int64 = new MongoDB\BSON\Int64('9223372036854775807');

var_dump((string) $int64);

?>

Résultat de l'exemple ci-dessus est similaire à :

string(19) "9223372036854775807"

Voir aussi

  • » Types BSON


Désérialisé un Int64

  • « MongoDB\BSON\Int64::__toString
  • MongoDB\BSON\Symbol »
  • PHP Manual
  • MongoDB\BSON\Int64
  • Désérialisé un Int64

MongoDB\BSON\Int64::unserialize

(mongodb >=1.5.0)

MongoDB\BSON\Int64::unserialize — Désérialisé un Int64

Description

final public MongoDB\BSON\Int64::unserialize(string $data): void

Liste de paramètres

data

Le MongoDB\BSON\Int64 sérialisé.

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.
  • Lance MongoDB\Driver\Exception\UnexpectedValueException si les propriétés ne peuvent pas être désérialisées (par exemple si serialized a été mal formé).
  • Lance MongoDB\Driver\Exception\InvalidArgumentException si les propriétés sont incorrectes (par exemple des champs manquant ou des valeurs incorrectes).

Voir aussi

  • MongoDB\BSON\Int64::serialize() - Sérialise un Int64
  • unserialize() - Crée une variable PHP à partir d'une valeur sérialisée
  • Sérialisation d'Objets


The MongoDB\BSON\Symbol class (deprecated)

(mongodb >=1.4.0)

Introduction

BSON type for the "Symbol" type. This BSON type is deprecated, and this class can not be instantiated. It will be created from a BSON symbol type while converting BSON to PHP, and can also be converted back into BSON while storing documents in the database.

Synopsis de la classe

final class MongoDB\BSON\Symbol implements MongoDB\BSON\Type, Serializable, JsonSerializable, Stringable {
/* Méthodes */
final private __construct()
final public jsonSerialize(): mixed
final public serialize(): string
final public __toString(): string
final public unserialize(string $data): void
}

Historique

Version | Description
PECL mongodb 1.12.0 | Implements Stringable for PHP 8.0+.

Sommaire

  • MongoDB\BSON\Symbol::__construct — Construit un nouveau Symbol (inutilisé)
  • MongoDB\BSON\Symbol::jsonSerialize — Retourne une représentation qui peut être convertie en JSON
  • MongoDB\BSON\Symbol::serialize — Sérialise un Symbol
  • MongoDB\BSON\Symbol::__toString — Retourne la représentation sous forme de chaîne de caractère de Symbol
  • MongoDB\BSON\Symbol::unserialize — Désérialisé un Symbol


Construit un nouveau Symbol (inutilisé)

  • « MongoDB\BSON\Symbol
  • MongoDB\BSON\Symbol::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\Symbol
  • Construit un nouveau Symbol (inutilisé)

MongoDB\BSON\Symbol::__construct

(mongodb >=1.4.0)

MongoDB\BSON\Symbol::__construct — Construit un nouveau Symbol (inutilisé)

Description

final private MongoDB\BSON\Symbol::__construct()

Les objets MongoDB\BSON\Symbol sont crées à travers une conversion depuis un type BSON obsolète et ne peuvent pas être construit directement.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Voir aussi

  • » Types BSON


Retourne une représentation qui peut être convertie en JSON

  • « MongoDB\BSON\Symbol::__construct
  • MongoDB\BSON\Symbol::serialize »
  • PHP Manual
  • MongoDB\BSON\Symbol
  • Retourne une représentation qui peut être convertie en JSON

MongoDB\BSON\Symbol::jsonSerialize

(mongodb >=1.4.0)

MongoDB\BSON\Symbol::jsonSerialize — Retourne une représentation qui peut être convertie en JSON

Description

final public MongoDB\BSON\Symbol::jsonSerialize(): mixed

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne des données qui peuvent être sérialisées par json_encode() pour produire une représentation JSON étendue de MongoDB\BSON\Symbol.

Note: La sortie est cohérente avec la fonction MongoDB\BSON\toJSON(), qui utilise le format JSON étendu spécifique au pilote. Cela ne correspond pas nécessairement aux représentations JSON étendues » décontractées ou » canoniques utilisées par MongoDB\BSON\toRelaxedExtendedJSON() et MongoDB\BSON\toCanonicalExtendedJSON(), respectivement.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • JsonSerializable::jsonSerialize() - Spécifie les données qui doivent être sérialisées en JSON
  • json_encode() - Retourne la représentation JSON d'une valeur
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB JSON Étendue


Sérialise un Symbol

  • « MongoDB\BSON\Symbol::jsonSerialize
  • MongoDB\BSON\Symbol::__toString »
  • PHP Manual
  • MongoDB\BSON\Symbol
  • Sérialise un Symbol

MongoDB\BSON\Symbol::serialize

(mongodb >=1.4.0)

MongoDB\BSON\Symbol::serialize — Sérialise un Symbol

Description

final public MongoDB\BSON\Symbol::serialize(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la représentation sérialisée de MongoDB\BSON\Symbol.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\BSON\Symbol::unserialize() - Désérialisé un Symbol
  • serialize() - Génère une représentation stockable d'une valeur
  • Sérialisation d'Objets


Retourne la représentation sous forme de chaîne de caractère de Symbol

  • « MongoDB\BSON\Symbol::serialize
  • MongoDB\BSON\Symbol::unserialize »
  • PHP Manual
  • MongoDB\BSON\Symbol
  • Retourne la représentation sous forme de chaîne de caractère de Symbol

MongoDB\BSON\Symbol::__toString

(mongodb >=1.4.0)

MongoDB\BSON\Symbol::__toString — Retourne la représentation sous forme de chaîne de caractère de Symbol

Description

final public MongoDB\BSON\Symbol::__toString(): string

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ère de Symbol.

Voir aussi

  • » Types BSON


Désérialisé un Symbol

  • « MongoDB\BSON\Symbol::__toString
  • MongoDB\BSON\Undefined »
  • PHP Manual
  • MongoDB\BSON\Symbol
  • Désérialisé un Symbol

MongoDB\BSON\Symbol::unserialize

(mongodb >=1.4.0)

MongoDB\BSON\Symbol::unserialize — Désérialisé un Symbol

Description

final public MongoDB\BSON\Symbol::unserialize(string $data): void

Liste de paramètres

data

Le MongoDB\BSON\Symbol sérialisé.

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.

Voir aussi

  • MongoDB\BSON\Symbol::serialize() - Sérialise un Symbol
  • unserialize() - Crée une variable PHP à partir d'une valeur sérialisée
  • Sérialisation d'Objets


The MongoDB\BSON\Undefined class (deprecated)

(mongodb >=1.4.0)

Introduction

BSON type for the "Undefined" type. This BSON type is deprecated, and this class can not be instantiated. It will be created from a BSON undefined type while converting BSON to PHP, and can also be converted back into BSON while storing documents in the database.

Synopsis de la classe

final class MongoDB\BSON\Undefined implements MongoDB\BSON\Type, Serializable, JsonSerializable, Stringable {
/* Méthodes */
final private __construct()
final public jsonSerialize(): mixed
final public serialize(): string
final public __toString(): string
final public unserialize(string $data): void
}

Historique

Version | Description
PECL mongodb 1.12.0 | Implements Stringable for PHP 8.0+.

Sommaire

  • MongoDB\BSON\Undefined::__construct — Construit un nouveau Undefined (inutilisé)
  • MongoDB\BSON\Undefined::jsonSerialize — Retourne une représentation qui peut être convertie en JSON
  • MongoDB\BSON\Undefined::serialize — Sérialise un Undefined
  • MongoDB\BSON\Undefined::__toString — Retourne une chaîne vide
  • MongoDB\BSON\Undefined::unserialize — Désérialisé un Undefined


Construit un nouveau Undefined (inutilisé)

  • « MongoDB\BSON\Undefined
  • MongoDB\BSON\Undefined::jsonSerialize »
  • PHP Manual
  • MongoDB\BSON\Undefined
  • Construit un nouveau Undefined (inutilisé)

MongoDB\BSON\Undefined::__construct

(mongodb >=1.4.0)

MongoDB\BSON\Undefined::__construct — Construit un nouveau Undefined (inutilisé)

Description

final private MongoDB\BSON\Undefined::__construct()

Les objets MongoDB\BSON\Undefined sont crées à travers une conversion depuis un type BSON obsolète et ne peuvent pas être construit directement.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Voir aussi

  • » Types BSON


Retourne une représentation qui peut être convertie en JSON

  • « MongoDB\BSON\Undefined::__construct
  • MongoDB\BSON\Undefined::serialize »
  • PHP Manual
  • MongoDB\BSON\Undefined
  • Retourne une représentation qui peut être convertie en JSON

MongoDB\BSON\Undefined::jsonSerialize

(mongodb >=1.4.0)

MongoDB\BSON\Undefined::jsonSerialize — Retourne une représentation qui peut être convertie en JSON

Description

final public MongoDB\BSON\Undefined::jsonSerialize(): mixed

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne des données qui peuvent être sérialisées par json_encode() pour produire une représentation JSON étendue de MongoDB\BSON\Undefined.

Note: La sortie est cohérente avec la fonction MongoDB\BSON\toJSON(), qui utilise le format JSON étendu spécifique au pilote. Cela ne correspond pas nécessairement aux représentations JSON étendues » décontractées ou » canoniques utilisées par MongoDB\BSON\toRelaxedExtendedJSON() et MongoDB\BSON\toCanonicalExtendedJSON(), respectivement.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • JsonSerializable::jsonSerialize() - Spécifie les données qui doivent être sérialisées en JSON
  • json_encode() - Retourne la représentation JSON d'une valeur
  • MongoDB\BSON\toCanonicalExtendedJSON() - Returns the Canonical Extended JSON representation of a BSON value
  • MongoDB\BSON\toRelaxedExtendedJSON() - Returns the Relaxed Extended JSON representation of a BSON value
  • » MongoDB JSON Étendue


Sérialise un Undefined

  • « MongoDB\BSON\Undefined::jsonSerialize
  • MongoDB\BSON\Undefined::__toString »
  • PHP Manual
  • MongoDB\BSON\Undefined
  • Sérialise un Undefined

MongoDB\BSON\Undefined::serialize

(mongodb >=1.4.0)

MongoDB\BSON\Undefined::serialize — Sérialise un Undefined

Description

final public MongoDB\BSON\Undefined::serialize(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la représentation sérialisée de MongoDB\BSON\Undefined.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\BSON\Undefined::unserialize() - Désérialisé un Undefined
  • serialize() - Génère une représentation stockable d'une valeur
  • Sérialisation d'Objets


Retourne une chaîne vide

  • « MongoDB\BSON\Undefined::serialize
  • MongoDB\BSON\Undefined::unserialize »
  • PHP Manual
  • MongoDB\BSON\Undefined
  • Retourne une chaîne vide

MongoDB\BSON\Undefined::__toString

(mongodb >=1.4.0)

MongoDB\BSON\Undefined::__toString — Retourne une chaîne vide

Description

final public MongoDB\BSON\Undefined::__toString(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne vide.

Voir aussi

  • » Types BSON


Désérialisé un Undefined

  • « MongoDB\BSON\Undefined::__toString
  • MongoDB\Driver\Monitoring »
  • PHP Manual
  • MongoDB\BSON\Undefined
  • Désérialisé un Undefined

MongoDB\BSON\Undefined::unserialize

(mongodb >=1.4.0)

MongoDB\BSON\Undefined::unserialize — Désérialisé un Undefined

Description

final public MongoDB\BSON\Undefined::unserialize(string $data): void

Liste de paramètres

data

Le MongoDB\BSON\Undefined sérialisé.

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.

Voir aussi

  • MongoDB\BSON\Undefined::serialize() - Sérialise un Undefined
  • unserialize() - Crée une variable PHP à partir d'une valeur sérialisée
  • Sérialisation d'Objets


Monitoring classes and subscriber functions

  • Fonctions
    • MongoDB\Driver\Monitoring\addSubscriber — Enregistre un abonnement de surveillance d'événement
    • MongoDB\Driver\Monitoring\removeSubscriber — Retire un abonnement de surveillance d'événement global
  • MongoDB\Driver\Monitoring\CommandFailedEvent — La classe MongoDB\Driver\Monitoring\CommandFailedEvent
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getCommandName — Returns the command name
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros — Returns the command's duration in microseconds
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getError — Returns the Exception associated with the failed command
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId — Returns the command's operation ID
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getReply — Returns the command reply document
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId — Returns the command's request ID
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getServer — Returns the Server on which the command was executed
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getServerConnectionId — Returns the server connection ID for the command
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getServiceId — Returns the load balancer service ID for the command
  • MongoDB\Driver\Monitoring\CommandStartedEvent — La classe MongoDB\Driver\Monitoring\CommandStartedEvent
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getCommand — Returns the command document
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getCommandName — Returns the command name
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName — Returns the database on which the command was executed
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId — Returns the command's operation ID
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId — Returns the command's request ID
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getServer — Returns the Server on which the command was executed
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getServerConnectionId — Returns the server connection ID for the command
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getServiceId — Returns the load balancer service ID for the command
  • MongoDB\Driver\Monitoring\CommandSucceededEvent — The MongoDB\Driver\Monitoring\CommandSucceededEvent class
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getCommandName — Returns the command name
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getDurationMicros — Returns the command's duration in microseconds
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId — Returns the command's operation ID
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getReply — Returns the command reply document
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId — Returns the command's request ID
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer — Returns the Server on which the command was executed
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServerConnectionId — Returns the server connection ID for the command
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServiceId — Returns the load balancer service ID for the command
  • MongoDB\Driver\Monitoring\ServerChangedEvent — The MongoDB\Driver\Monitoring\ServerChangedEvent class
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getHost — Returns the hostname of the server
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getNewDescription — Returns the new description for the server
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getPort — Returns the port on which this server is listening
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getPreviousDescription — Returns the previous description for the server
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getTopologyId — Returns the topology ID associated with this server
  • MongoDB\Driver\Monitoring\ServerClosedEvent — The MongoDB\Driver\Monitoring\ServerClosedEvent class
    • MongoDB\Driver\Monitoring\ServerClosedEvent::getHost — Returns the hostname of the server
    • MongoDB\Driver\Monitoring\ServerClosedEvent::getPort — Returns the port on which this server is listening
    • MongoDB\Driver\Monitoring\ServerClosedEvent::getTopologyId — Returns the topology ID associated with this server
  • MongoDB\Driver\Monitoring\ServerOpeningEvent — The MongoDB\Driver\Monitoring\ServerOpeningEvent class
    • MongoDB\Driver\Monitoring\ServerOpeningEvent::getHost — Returns the hostname of the server
    • MongoDB\Driver\Monitoring\ServerOpeningEvent::getPort — Returns the port on which this server is listening
    • MongoDB\Driver\Monitoring\ServerOpeningEvent::getTopologyId — Returns the topology ID associated with this server
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent — The MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent class
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getDurationMicros — Returns the heartbeat's duration in microseconds
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getError — Returns the Exception associated with the failed heartbeat
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getHost — Returns the hostname of the server
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getPort — Returns the port on which this server is listening
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::isAwaited — Returns whether the heartbeat used a streaming protocol
  • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent — The MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent class
    • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getHost — Returns the hostname of the server
    • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getPort — Returns the port on which this server is listening
    • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::isAwaited — Returns whether the heartbeat used a streaming protocol
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent — The MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent class
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getDurationMicros — Returns the heartbeat's duration in microseconds
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getHost — Returns the hostname of the server
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getPort — Returns the port on which this server is listening
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getReply — Returns the heartbeat reply document
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::isAwaited — Returns whether the heartbeat used a streaming protocol
  • MongoDB\Driver\Monitoring\TopologyChangedEvent — The MongoDB\Driver\Monitoring\TopologyChangedEvent class
    • MongoDB\Driver\Monitoring\TopologyChangedEvent::getNewDescription — Returns the new description for the topology
    • MongoDB\Driver\Monitoring\TopologyChangedEvent::getPreviousDescription — Returns the previous description for the topology
    • MongoDB\Driver\Monitoring\TopologyChangedEvent::getTopologyId — Returns the topology ID
  • MongoDB\Driver\Monitoring\TopologyClosedEvent — The MongoDB\Driver\Monitoring\TopologyClosedEvent class
    • MongoDB\Driver\Monitoring\TopologyClosedEvent::getTopologyId — Returns the topology ID
  • MongoDB\Driver\Monitoring\TopologyOpeningEvent — The MongoDB\Driver\Monitoring\TopologyOpeningEvent class
    • MongoDB\Driver\Monitoring\TopologyOpeningEvent::getTopologyId — Returns the topology ID
  • MongoDB\Driver\Monitoring\CommandSubscriber — The MongoDB\Driver\Monitoring\CommandSubscriber interface
    • MongoDB\Driver\Monitoring\CommandSubscriber::commandFailed — Notification method for a failed command
    • MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted — Notification method for a started command
    • MongoDB\Driver\Monitoring\CommandSubscriber::commandSucceeded — Notification method for a successful command
  • MongoDB\Driver\Monitoring\LogSubscriber — The MongoDB\Driver\Monitoring\LogSubscriber interface
    • MongoDB\Driver\Monitoring\LogSubscriber::log — Notification method for a log message
  • MongoDB\Driver\Monitoring\SDAMSubscriber — The MongoDB\Driver\Monitoring\SDAMSubscriber interface
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverChanged — Notification method for a server description change
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverClosed — Notification method for closing a server
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatFailed — Notification method for a failed server heartbeat
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatStarted — Notification method for a started server heartbeat
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatSucceeded — Notification method for a successful server heartbeat
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverOpening — Notification method for opening a server
    • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyChanged — Notification method for a topology description change
    • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyClosed — Notification method for closing the topology
    • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyOpening — Notification method for opening the topology
  • MongoDB\Driver\Monitoring\Subscriber — The MongoDB\Driver\Monitoring\Subscriber interface


Fonctions

Sommaire

  • MongoDB\Driver\Monitoring\addSubscriber — Enregistre un abonnement de surveillance d'événement
  • MongoDB\Driver\Monitoring\removeSubscriber — Retire un abonnement de surveillance d'événement global


Enregistre un abonnement de surveillance d'événement

  • « Fonctions
  • MongoDB\Driver\Monitoring\removeSubscriber »
  • PHP Manual
  • Fonctions
  • Enregistre un abonnement de surveillance d'événement

MongoDB\Driver\Monitoring\addSubscriber

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\addSubscriber — Enregistre un abonnement de surveillance d'événement

Description

MongoDB\Driver\Monitoring\addSubscriber(MongoDB\Driver\Monitoring\Subscriber $subscriber): void

Enregistre un abonnement de surveillance d'événement global. Les abonnés seront notifiés de tous les événements dans le pilote pour tout type de Manager.

Note: If subscriber est déjà enregistré globalement, cette fonction est un no-op. Si subscriber est aussi enregistré pour un ou plusieurs Managers, il seront toujours notifié qu'une seule fois par événement pour chaque Manager.

Liste de paramètres

subscriber (MongoDB\Driver\Monitoring\Subscriber)

Un objet d'abonnement de surveillance d'événement à enregistrer globalement.

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.

Voir aussi

  • MongoDB\Driver\Monitoring\removeSubscriber() - Retire un abonnement de surveillance d'événement global
  • MongoDB\Driver\Monitoring\Subscriber
  • MongoDB\Driver\Monitoring\CommandSubscriber
  • MongoDB\Driver\Manager::addSubscriber() - Registers a monitoring event subscriber with this Manager
  • Application Performance Monitoring (APM)


Retire un abonnement de surveillance d'événement global

  • « MongoDB\Driver\Monitoring\addSubscriber
  • MongoDB\Driver\Monitoring\CommandFailedEvent »
  • PHP Manual
  • Fonctions
  • Retire un abonnement de surveillance d'événement global

MongoDB\Driver\Monitoring\removeSubscriber

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\removeSubscriber — Retire un abonnement de surveillance d'événement global

Description

MongoDB\Driver\Monitoring\removeSubscriber(MongoDB\Driver\Monitoring\Subscriber $subscriber): void

Retire un abonnement de surveillance d'événement global.

Note: Si subscriber n'est déjà pas enregistré, cette fonction est un no-op.

Liste de paramètres

subscriber (MongoDB\Driver\Monitoring\Subscriber)

Un abonnement de surveillance d'événement à retirer globalement.

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.

Voir aussi

  • MongoDB\Driver\Monitoring\addSubscriber() - Enregistre un abonnement de surveillance d'événement
  • MongoDB\Driver\Monitoring\Subscriber
  • MongoDB\Driver\Monitoring\CommandSubscriber
  • MongoDB\Driver\Manager::removeSubscriber() - Unregisters a monitoring event subscriber with this Manager
  • Application Performance Monitoring (APM)


La classe MongoDB\Driver\Monitoring\CommandFailedEvent

(mongodb >=1.3.0)

Introduction

La classe MongoDB\Driver\Monitoring\CommandFailedEvent contient les informatons sur une commande ayant échouée.

Synopsis de la classe

final class MongoDB\Driver\Monitoring\CommandFailedEvent {
/* Méthodes */
final public getCommandName(): string
final public getDurationMicros(): int
final public getError(): Exception
final public getOperationId(): string
final public getReply(): object
final public getRequestId(): string
final public getServer(): MongoDB\Driver\Server
final public getServerConnectionId(): ?int
final public getServiceId(): ?MongoDB\BSON\ObjectId
}

Sommaire

  • MongoDB\Driver\Monitoring\CommandFailedEvent::getCommandName — Returns the command name
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros — Returns the command's duration in microseconds
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getError — Returns the Exception associated with the failed command
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId — Returns the command's operation ID
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getReply — Returns the command reply document
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId — Returns the command's request ID
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getServer — Returns the Server on which the command was executed
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getServerConnectionId — Returns the server connection ID for the command
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getServiceId — Returns the load balancer service ID for the command


Returns the command name

  • « MongoDB\Driver\Monitoring\CommandFailedEvent
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • Returns the command name

MongoDB\Driver\Monitoring\CommandFailedEvent::getCommandName

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandFailedEvent::getCommandName — Returns the command name

Description

final public MongoDB\Driver\Monitoring\CommandFailedEvent::getCommandName(): string

Returns the command name (e.g. "find", "aggregate").

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the command name.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • Application Performance Monitoring (APM)


Returns the command's duration in microseconds

  • « MongoDB\Driver\Monitoring\CommandFailedEvent::getCommandName
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getError »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • Returns the command's duration in microseconds

MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros — Returns the command's duration in microseconds

Description

final public MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros(): int

The command's duration is a calculated value that includes the time to send the message and receive the reply from the server.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the command's duration in microseconds.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • Application Performance Monitoring (APM)


Returns the Exception associated with the failed command

  • « MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • Returns the Exception associated with the failed command

MongoDB\Driver\Monitoring\CommandFailedEvent::getError

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandFailedEvent::getError — Returns the Exception associated with the failed command

Description

final public MongoDB\Driver\Monitoring\CommandFailedEvent::getError(): Exception

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the Exception associated with the failed command.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • Application Performance Monitoring (APM)


Returns the command's operation ID

  • « MongoDB\Driver\Monitoring\CommandFailedEvent::getError
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getReply »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • Returns the command's operation ID

MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId — Returns the command's operation ID

Description

final public MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId(): string

The operation ID is generated by the driver and may be used to link events together such as bulk write operations, which may have been split across several commands at the protocol level.

Note: Since multiple commands may share the same operation ID, it is not reliable to use this value to associate event objects with each other. The request ID returned by MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId() should be used instead.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the command's operation ID.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId() - Returns the command's operation ID
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId() - Returns the command's request ID
  • Application Performance Monitoring (APM)


Returns the command reply document

  • « MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • Returns the command reply document

MongoDB\Driver\Monitoring\CommandFailedEvent::getReply

(mongodb >=1.5.0)

MongoDB\Driver\Monitoring\CommandFailedEvent::getReply — Returns the command reply document

Description

final public MongoDB\Driver\Monitoring\CommandFailedEvent::getReply(): object

The reply document will be converted from BSON to PHP using the default deserialization rules (e.g. BSON documents will be converted to stdClass).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the command reply document as a stdClass object.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • Application Performance Monitoring (APM)
  • Persisting Data


Returns the command's request ID

  • « MongoDB\Driver\Monitoring\CommandFailedEvent::getReply
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getServer »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • Returns the command's request ID

MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId — Returns the command's request ID

Description

final public MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId(): string

The request ID is generated by the driver and may be used to associate this MongoDB\Driver\Monitoring\CommandFailedEvent with a previous MongoDB\Driver\Monitoring\CommandStartedEvent.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the command's request ID.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId() - Returns the command's request ID
  • Application Performance Monitoring (APM)


Returns the Server on which the command was executed

  • « MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getServerConnectionId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • Returns the Server on which the command was executed

MongoDB\Driver\Monitoring\CommandFailedEvent::getServer

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandFailedEvent::getServer — Returns the Server on which the command was executed

Description

final public MongoDB\Driver\Monitoring\CommandFailedEvent::getServer(): MongoDB\Driver\Server

Returns the MongoDB\Driver\Server on which the command was executed.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the MongoDB\Driver\Server on which the command was executed.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\Driver\Monitoring\CommandStartedEvent::getServer() - Returns the Server on which the command was executed
  • Application Performance Monitoring (APM)


Returns the server connection ID for the command

  • « MongoDB\Driver\Monitoring\CommandFailedEvent::getServer
  • MongoDB\Driver\Monitoring\CommandFailedEvent::getServiceId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • Returns the server connection ID for the command

MongoDB\Driver\Monitoring\CommandFailedEvent::getServerConnectionId

(mongodb >=1.14.0)

MongoDB\Driver\Monitoring\CommandFailedEvent::getServerConnectionId — Returns the server connection ID for the command

Description

final public MongoDB\Driver\Monitoring\CommandFailedEvent::getServerConnectionId(): ?int

Returns the server connection ID for the command. The server connection ID is distinct from server (i.e. MongoDB\Driver\Monitoring\CommandFailedEvent::getServer()) and is returned in the "connectionId" field of a hello command response MongoDB 4.2+.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the server connection ID, or null if it is not available.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


Returns the load balancer service ID for the command

  • « MongoDB\Driver\Monitoring\CommandFailedEvent::getServerConnectionId
  • MongoDB\Driver\Monitoring\CommandStartedEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • Returns the load balancer service ID for the command

MongoDB\Driver\Monitoring\CommandFailedEvent::getServiceId

(mongodb >=1.11.0)

MongoDB\Driver\Monitoring\CommandFailedEvent::getServiceId — Returns the load balancer service ID for the command

Description

final public MongoDB\Driver\Monitoring\CommandFailedEvent::getServiceId(): ?MongoDB\BSON\ObjectId

When the driver is connected to a MongoDB cluster through a load balancer, the service ID corresponds to the serviceId field in the hello command response.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the load balancer service ID, or null if the driver is not connected to a load balancer.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


La classe MongoDB\Driver\Monitoring\CommandStartedEvent

(mongodb >=1.3.0)

Introduction

La classe MongoDB\Driver\Monitoring\CommandStartedEvent contient les informations sur une commande ayant démarée.

Synopsis de la classe

final class MongoDB\Driver\Monitoring\CommandStartedEvent {
/* Méthodes */
final public getCommand(): object
final public getCommandName(): string
final public getDatabaseName(): string
final public getOperationId(): string
final public getRequestId(): string
final public getServer(): MongoDB\Driver\Server
final public getServerConnectionId(): ?int
final public getServiceId(): ?MongoDB\BSON\ObjectId
}

Sommaire

  • MongoDB\Driver\Monitoring\CommandStartedEvent::getCommand — Returns the command document
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getCommandName — Returns the command name
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName — Returns the database on which the command was executed
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId — Returns the command's operation ID
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId — Returns the command's request ID
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getServer — Returns the Server on which the command was executed
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getServerConnectionId — Returns the server connection ID for the command
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getServiceId — Returns the load balancer service ID for the command


Returns the command document

  • « MongoDB\Driver\Monitoring\CommandStartedEvent
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getCommandName »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandStartedEvent
  • Returns the command document

MongoDB\Driver\Monitoring\CommandStartedEvent::getCommand

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandStartedEvent::getCommand — Returns the command document

Description

final public MongoDB\Driver\Monitoring\CommandStartedEvent::getCommand(): object

The reply document will be converted from BSON to PHP using the default deserialization rules (e.g. BSON documents will be converted to stdClass).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the command document as a stdClass object.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • Application Performance Monitoring (APM)
  • Persisting Data


Returns the command name

  • « MongoDB\Driver\Monitoring\CommandStartedEvent::getCommand
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandStartedEvent
  • Returns the command name

MongoDB\Driver\Monitoring\CommandStartedEvent::getCommandName

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandStartedEvent::getCommandName — Returns the command name

Description

final public MongoDB\Driver\Monitoring\CommandStartedEvent::getCommandName(): string

Returns the command name (e.g. "find", "aggregate").

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the command name.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • Application Performance Monitoring (APM)


Returns the database on which the command was executed

  • « MongoDB\Driver\Monitoring\CommandStartedEvent::getCommandName
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandStartedEvent
  • Returns the database on which the command was executed

MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName — Returns the database on which the command was executed

Description

final public MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the database on which the command was executed.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • Application Performance Monitoring (APM)


Returns the command's operation ID

  • « MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandStartedEvent
  • Returns the command's operation ID

MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId — Returns the command's operation ID

Description

final public MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId(): string

The operation ID is generated by the driver and may be used to link events together such as bulk write operations, which may have been split across several commands at the protocol level.

Note: Since multiple commands may share the same operation ID, it is not reliable to use this value to associate event objects with each other. The request ID returned by MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId() should be used instead.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the command's operation ID.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId() - Returns the command's operation ID
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId() - Returns the command's operation ID
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId() - Returns the command's request ID
  • Application Performance Monitoring (APM)


Returns the command's request ID

  • « MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getServer »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandStartedEvent
  • Returns the command's request ID

MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId — Returns the command's request ID

Description

final public MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId(): string

The request ID is generated by the driver and may be used to associate this MongoDB\Driver\Monitoring\CommandStartedEvent with a later MongoDB\Driver\Monitoring\CommandFailedEvent or MongoDB\Driver\Monitoring\CommandSucceededEvent.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the command's request ID.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId() - Returns the command's request ID
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId() - Returns the command's request ID
  • Application Performance Monitoring (APM)


Returns the Server on which the command was executed

  • « MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getServerConnectionId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandStartedEvent
  • Returns the Server on which the command was executed

MongoDB\Driver\Monitoring\CommandStartedEvent::getServer

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandStartedEvent::getServer — Returns the Server on which the command was executed

Description

final public MongoDB\Driver\Monitoring\CommandStartedEvent::getServer(): MongoDB\Driver\Server

Returns the MongoDB\Driver\Server on which the command was executed.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the MongoDB\Driver\Server on which the command was executed.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\Driver\Monitoring\CommandFailedEvent::getServer() - Returns the Server on which the command was executed
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer() - Returns the Server on which the command was executed
  • Application Performance Monitoring (APM)


Returns the server connection ID for the command

  • « MongoDB\Driver\Monitoring\CommandStartedEvent::getServer
  • MongoDB\Driver\Monitoring\CommandStartedEvent::getServiceId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandStartedEvent
  • Returns the server connection ID for the command

MongoDB\Driver\Monitoring\CommandStartedEvent::getServerConnectionId

(mongodb >=1.14.0)

MongoDB\Driver\Monitoring\CommandStartedEvent::getServerConnectionId — Returns the server connection ID for the command

Description

final public MongoDB\Driver\Monitoring\CommandStartedEvent::getServerConnectionId(): ?int

Returns the server connection ID for the command. The server connection ID is distinct from server (i.e. MongoDB\Driver\Monitoring\CommandStartedEvent::getServer()) and is returned in the "connectionId" field of a hello command response MongoDB 4.2+.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the server connection ID, or null if it is not available.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


Returns the load balancer service ID for the command

  • « MongoDB\Driver\Monitoring\CommandStartedEvent::getServerConnectionId
  • MongoDB\Driver\Monitoring\CommandSucceededEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandStartedEvent
  • Returns the load balancer service ID for the command

MongoDB\Driver\Monitoring\CommandStartedEvent::getServiceId

(mongodb >=1.11.0)

MongoDB\Driver\Monitoring\CommandStartedEvent::getServiceId — Returns the load balancer service ID for the command

Description

final public MongoDB\Driver\Monitoring\CommandStartedEvent::getServiceId(): ?MongoDB\BSON\ObjectId

When the driver is connected to a MongoDB cluster through a load balancer, the service ID corresponds to the serviceId field in the hello command response.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the load balancer service ID, or null if the driver is not connected to a load balancer.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


The MongoDB\Driver\Monitoring\CommandSucceededEvent class

(mongodb >=1.3.0)

Introduction

The MongoDB\Driver\Monitoring\CommandSucceededEvent class encapsulates information about a successful command.

Synopsis de la classe

final class MongoDB\Driver\Monitoring\CommandSucceededEvent {
/* Méthodes */
final public getCommandName(): string
final public getDurationMicros(): int
final public getOperationId(): string
final public getReply(): object
final public getRequestId(): string
final public getServer(): MongoDB\Driver\Server
final public getServerConnectionId(): ?int
final public getServiceId(): ?MongoDB\BSON\ObjectId
}

Sommaire

  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getCommandName — Returns the command name
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getDurationMicros — Returns the command's duration in microseconds
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId — Returns the command's operation ID
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getReply — Returns the command reply document
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId — Returns the command's request ID
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer — Returns the Server on which the command was executed
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServerConnectionId — Returns the server connection ID for the command
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServiceId — Returns the load balancer service ID for the command


Returns the command name

  • « MongoDB\Driver\Monitoring\CommandSucceededEvent
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getDurationMicros »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSucceededEvent
  • Returns the command name

MongoDB\Driver\Monitoring\CommandSucceededEvent::getCommandName

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandSucceededEvent::getCommandName — Returns the command name

Description

final public MongoDB\Driver\Monitoring\CommandSucceededEvent::getCommandName(): string

Returns the command name (e.g. "find", "aggregate").

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the command name.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • Application Performance Monitoring (APM)


Returns the command's duration in microseconds

  • « MongoDB\Driver\Monitoring\CommandSucceededEvent::getCommandName
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSucceededEvent
  • Returns the command's duration in microseconds

MongoDB\Driver\Monitoring\CommandSucceededEvent::getDurationMicros

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandSucceededEvent::getDurationMicros — Returns the command's duration in microseconds

Description

final public MongoDB\Driver\Monitoring\CommandSucceededEvent::getDurationMicros(): int

The command's duration is a calculated value that includes the time to send the message and receive the reply from the server.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the command's duration in microseconds.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • Application Performance Monitoring (APM)


Returns the command's operation ID

  • « MongoDB\Driver\Monitoring\CommandSucceededEvent::getDurationMicros
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getReply »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSucceededEvent
  • Returns the command's operation ID

MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId — Returns the command's operation ID

Description

final public MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId(): string

The operation ID is generated by the driver and may be used to link events together such as bulk write operations, which may have been split across several commands at the protocol level.

Note: Since multiple commands may share the same operation ID, it is not reliable to use this value to associate event objects with each other. The request ID returned by MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId() should be used instead.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the command's operation ID.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId() - Returns the command's operation ID
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId() - Returns the command's request ID
  • Application Performance Monitoring (APM)


Returns the command reply document

  • « MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSucceededEvent
  • Returns the command reply document

MongoDB\Driver\Monitoring\CommandSucceededEvent::getReply

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandSucceededEvent::getReply — Returns the command reply document

Description

final public MongoDB\Driver\Monitoring\CommandSucceededEvent::getReply(): object

The reply document will be converted from BSON to PHP using the default deserialization rules (e.g. BSON documents will be converted to stdClass).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the command reply document as a stdClass object.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • Application Performance Monitoring (APM)
  • Persisting Data


Returns the command's request ID

  • « MongoDB\Driver\Monitoring\CommandSucceededEvent::getReply
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSucceededEvent
  • Returns the command's request ID

MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId — Returns the command's request ID

Description

final public MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId(): string

The request ID is generated by the driver and may be used to associate this MongoDB\Driver\Monitoring\CommandSucceededEvent with a previous MongoDB\Driver\Monitoring\CommandStartedEvent.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the command's request ID.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId() - Returns the command's request ID
  • Application Performance Monitoring (APM)


Returns the Server on which the command was executed

  • « MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServerConnectionId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSucceededEvent
  • Returns the Server on which the command was executed

MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer — Returns the Server on which the command was executed

Description

final public MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer(): MongoDB\Driver\Server

Returns the MongoDB\Driver\Server on which the command was executed.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the MongoDB\Driver\Server on which the command was executed.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • MongoDB\Driver\Monitoring\CommandStartedEvent::getServer() - Returns the Server on which the command was executed
  • MongoDB\Driver\Cursor::getServer() - Retourne le serveur associé à ce curseur
  • MongoDB\Driver\WriteResult::getServer() - Retourne le serveur associé à ce résultat d'écriture
  • Application Performance Monitoring (APM)


Returns the server connection ID for the command

  • « MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer
  • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServiceId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSucceededEvent
  • Returns the server connection ID for the command

MongoDB\Driver\Monitoring\CommandSucceededEvent::getServerConnectionId

(mongodb >=1.14.0)

MongoDB\Driver\Monitoring\CommandSucceededEvent::getServerConnectionId — Returns the server connection ID for the command

Description

final public MongoDB\Driver\Monitoring\CommandSucceededEvent::getServerConnectionId(): ?int

Returns the server connection ID for the command. The server connection ID is distinct from server (i.e. MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer()) and is returned in the "connectionId" field of a hello command response MongoDB 4.2+.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the server connection ID, or null if it is not available.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


Returns the load balancer service ID for the command

  • « MongoDB\Driver\Monitoring\CommandSucceededEvent::getServerConnectionId
  • MongoDB\Driver\Monitoring\ServerChangedEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSucceededEvent
  • Returns the load balancer service ID for the command

MongoDB\Driver\Monitoring\CommandSucceededEvent::getServiceId

(mongodb >=1.11.0)

MongoDB\Driver\Monitoring\CommandSucceededEvent::getServiceId — Returns the load balancer service ID for the command

Description

final public MongoDB\Driver\Monitoring\CommandSucceededEvent::getServiceId(): ?MongoDB\BSON\ObjectId

When the driver is connected to a MongoDB cluster through a load balancer, the service ID corresponds to the serviceId field in the hello command response.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the load balancer service ID, or null if the driver is not connected to a load balancer.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


The MongoDB\Driver\Monitoring\ServerChangedEvent class

(mongodb >=1.13.0)

Introduction

The MongoDB\Driver\Monitoring\ServerChangedEvent class encapsulates information about a changed server description.

Synopsis de la classe

final class MongoDB\Driver\Monitoring\ServerChangedEvent {
/* Méthodes */
final public getHost(): string
final public getNewDescription(): MongoDB\Driver\ServerDescription
final public getPort(): int
final public getPreviousDescription(): MongoDB\Driver\ServerDescription
final public getTopologyId(): MongoDB\BSON\ObjectId
}

Sommaire

  • MongoDB\Driver\Monitoring\ServerChangedEvent::getHost — Returns the hostname of the server
  • MongoDB\Driver\Monitoring\ServerChangedEvent::getNewDescription — Returns the new description for the server
  • MongoDB\Driver\Monitoring\ServerChangedEvent::getPort — Returns the port on which this server is listening
  • MongoDB\Driver\Monitoring\ServerChangedEvent::getPreviousDescription — Returns the previous description for the server
  • MongoDB\Driver\Monitoring\ServerChangedEvent::getTopologyId — Returns the topology ID associated with this server


Returns the hostname of the server

  • « MongoDB\Driver\Monitoring\ServerChangedEvent
  • MongoDB\Driver\Monitoring\ServerChangedEvent::getNewDescription »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerChangedEvent
  • Returns the hostname of the server

MongoDB\Driver\Monitoring\ServerChangedEvent::getHost

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerChangedEvent::getHost — Returns the hostname of the server

Description

final public MongoDB\Driver\Monitoring\ServerChangedEvent::getHost(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the hostname of the server.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


Returns the new description for the server

  • « MongoDB\Driver\Monitoring\ServerChangedEvent::getHost
  • MongoDB\Driver\Monitoring\ServerChangedEvent::getPort »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerChangedEvent
  • Returns the new description for the server

MongoDB\Driver\Monitoring\ServerChangedEvent::getNewDescription

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerChangedEvent::getNewDescription — Returns the new description for the server

Description

final public MongoDB\Driver\Monitoring\ServerChangedEvent::getNewDescription(): MongoDB\Driver\ServerDescription

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the new MongoDB\Driver\ServerDescription for the server.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


Returns the port on which this server is listening

  • « MongoDB\Driver\Monitoring\ServerChangedEvent::getNewDescription
  • MongoDB\Driver\Monitoring\ServerChangedEvent::getPreviousDescription »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerChangedEvent
  • Returns the port on which this server is listening

MongoDB\Driver\Monitoring\ServerChangedEvent::getPort

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerChangedEvent::getPort — Returns the port on which this server is listening

Description

final public MongoDB\Driver\Monitoring\ServerChangedEvent::getPort(): int

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the port on which this server is listening.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


Returns the previous description for the server

  • « MongoDB\Driver\Monitoring\ServerChangedEvent::getPort
  • MongoDB\Driver\Monitoring\ServerChangedEvent::getTopologyId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerChangedEvent
  • Returns the previous description for the server

MongoDB\Driver\Monitoring\ServerChangedEvent::getPreviousDescription

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerChangedEvent::getPreviousDescription — Returns the previous description for the server

Description

final public MongoDB\Driver\Monitoring\ServerChangedEvent::getPreviousDescription(): MongoDB\Driver\ServerDescription

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the previous MongoDB\Driver\ServerDescription for the server.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


Returns the topology ID associated with this server

  • « MongoDB\Driver\Monitoring\ServerChangedEvent::getPreviousDescription
  • MongoDB\Driver\Monitoring\ServerClosedEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerChangedEvent
  • Returns the topology ID associated with this server

MongoDB\Driver\Monitoring\ServerChangedEvent::getTopologyId

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerChangedEvent::getTopologyId — Returns the topology ID associated with this server

Description

final public MongoDB\Driver\Monitoring\ServerChangedEvent::getTopologyId(): MongoDB\BSON\ObjectId

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the topology ID.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


The MongoDB\Driver\Monitoring\ServerClosedEvent class

(mongodb >=1.13.0)

Introduction

The MongoDB\Driver\Monitoring\ServerClosedEvent class encapsulates information about a closed server.

Synopsis de la classe

final class MongoDB\Driver\Monitoring\ServerClosedEvent {
/* Méthodes */
final public getHost(): string
final public getPort(): int
final public getTopologyId(): MongoDB\BSON\ObjectId
}

Sommaire

  • MongoDB\Driver\Monitoring\ServerClosedEvent::getHost — Returns the hostname of the server
  • MongoDB\Driver\Monitoring\ServerClosedEvent::getPort — Returns the port on which this server is listening
  • MongoDB\Driver\Monitoring\ServerClosedEvent::getTopologyId — Returns the topology ID associated with this server


Returns the hostname of the server

  • « MongoDB\Driver\Monitoring\ServerClosedEvent
  • MongoDB\Driver\Monitoring\ServerClosedEvent::getPort »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerClosedEvent
  • Returns the hostname of the server

MongoDB\Driver\Monitoring\ServerClosedEvent::getHost

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerClosedEvent::getHost — Returns the hostname of the server

Description

final public MongoDB\Driver\Monitoring\ServerClosedEvent::getHost(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the hostname of the server.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


Returns the port on which this server is listening

  • « MongoDB\Driver\Monitoring\ServerClosedEvent::getHost
  • MongoDB\Driver\Monitoring\ServerClosedEvent::getTopologyId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerClosedEvent
  • Returns the port on which this server is listening

MongoDB\Driver\Monitoring\ServerClosedEvent::getPort

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerClosedEvent::getPort — Returns the port on which this server is listening

Description

final public MongoDB\Driver\Monitoring\ServerClosedEvent::getPort(): int

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the port on which this server is listening.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


Returns the topology ID associated with this server

  • « MongoDB\Driver\Monitoring\ServerClosedEvent::getPort
  • MongoDB\Driver\Monitoring\ServerOpeningEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerClosedEvent
  • Returns the topology ID associated with this server

MongoDB\Driver\Monitoring\ServerClosedEvent::getTopologyId

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerClosedEvent::getTopologyId — Returns the topology ID associated with this server

Description

final public MongoDB\Driver\Monitoring\ServerClosedEvent::getTopologyId(): MongoDB\BSON\ObjectId

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the topology ID.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


The MongoDB\Driver\Monitoring\ServerOpeningEvent class

(mongodb >=1.13.0)

Introduction

The MongoDB\Driver\Monitoring\ServerOpeningEvent class encapsulates information about an opened server.

Synopsis de la classe

final class MongoDB\Driver\Monitoring\ServerOpeningEvent {
/* Méthodes */
final public getHost(): string
final public getPort(): int
final public getTopologyId(): MongoDB\BSON\ObjectId
}

Sommaire

  • MongoDB\Driver\Monitoring\ServerOpeningEvent::getHost — Returns the hostname of the server
  • MongoDB\Driver\Monitoring\ServerOpeningEvent::getPort — Returns the port on which this server is listening
  • MongoDB\Driver\Monitoring\ServerOpeningEvent::getTopologyId — Returns the topology ID associated with this server


Returns the hostname of the server

  • « MongoDB\Driver\Monitoring\ServerOpeningEvent
  • MongoDB\Driver\Monitoring\ServerOpeningEvent::getPort »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerOpeningEvent
  • Returns the hostname of the server

MongoDB\Driver\Monitoring\ServerOpeningEvent::getHost

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerOpeningEvent::getHost — Returns the hostname of the server

Description

final public MongoDB\Driver\Monitoring\ServerOpeningEvent::getHost(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the hostname of the server.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


Returns the port on which this server is listening

  • « MongoDB\Driver\Monitoring\ServerOpeningEvent::getHost
  • MongoDB\Driver\Monitoring\ServerOpeningEvent::getTopologyId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerOpeningEvent
  • Returns the port on which this server is listening

MongoDB\Driver\Monitoring\ServerOpeningEvent::getPort

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerOpeningEvent::getPort — Returns the port on which this server is listening

Description

final public MongoDB\Driver\Monitoring\ServerOpeningEvent::getPort(): int

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the port on which this server is listening.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


Returns the topology ID associated with this server

  • « MongoDB\Driver\Monitoring\ServerOpeningEvent::getPort
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerOpeningEvent
  • Returns the topology ID associated with this server

MongoDB\Driver\Monitoring\ServerOpeningEvent::getTopologyId

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerOpeningEvent::getTopologyId — Returns the topology ID associated with this server

Description

final public MongoDB\Driver\Monitoring\ServerOpeningEvent::getTopologyId(): MongoDB\BSON\ObjectId

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the topology ID.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


The MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent class

(mongodb >=1.13.0)

Introduction

The MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent class encapsulates information about a failed server heartbeat.

Synopsis de la classe

final class MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent {
/* Méthodes */
final public getDurationMicros(): int
final public getError(): Exception
final public getHost(): string
final public getPort(): int
final public isAwaited(): bool
}

Sommaire

  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getDurationMicros — Returns the heartbeat's duration in microseconds
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getError — Returns the Exception associated with the failed heartbeat
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getHost — Returns the hostname of the server
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getPort — Returns the port on which this server is listening
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::isAwaited — Returns whether the heartbeat used a streaming protocol


Returns the heartbeat's duration in microseconds

  • « MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getError »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent
  • Returns the heartbeat's duration in microseconds

MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getDurationMicros

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getDurationMicros — Returns the heartbeat's duration in microseconds

Description

final public MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getDurationMicros(): int

The heartbeat's duration is a calculated value that includes the time to send the message and receive the reply from the server.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the heartbeat's duration in microseconds.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


Returns the Exception associated with the failed heartbeat

  • « MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getDurationMicros
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getHost »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent
  • Returns the Exception associated with the failed heartbeat

MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getError

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getError — Returns the Exception associated with the failed heartbeat

Description

final public MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getError(): Exception

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the Exception associated with the failed heartbeat.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


Returns the hostname of the server

  • « MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getError
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getPort »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent
  • Returns the hostname of the server

MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getHost

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getHost — Returns the hostname of the server

Description

final public MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getHost(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the hostname of the server.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


Returns the port on which this server is listening

  • « MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getHost
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::isAwaited »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent
  • Returns the port on which this server is listening

MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getPort

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getPort — Returns the port on which this server is listening

Description

final public MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getPort(): int

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the port on which this server is listening.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


Returns whether the heartbeat used a streaming protocol

  • « MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getPort
  • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent
  • Returns whether the heartbeat used a streaming protocol

MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::isAwaited

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::isAwaited — Returns whether the heartbeat used a streaming protocol

Description

final public MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::isAwaited(): bool

Returns whether the heartbeat used a streaming protocol. The PHP driver does not use the streaming protocol for monitoring, so this method will always return false.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns false.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


The MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent class

(mongodb >=1.13.0)

Introduction

The MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent class encapsulates information about a started server heartbeat.

Synopsis de la classe

final class MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent {
/* Méthodes */
final public getHost(): string
final public getPort(): int
final public isAwaited(): bool
}

Sommaire

  • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getHost — Returns the hostname of the server
  • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getPort — Returns the port on which this server is listening
  • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::isAwaited — Returns whether the heartbeat used a streaming protocol


Returns the hostname of the server

  • « MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent
  • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getPort »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent
  • Returns the hostname of the server

MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getHost

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getHost — Returns the hostname of the server

Description

final public MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getHost(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the hostname of the server.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


Returns the port on which this server is listening

  • « MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getHost
  • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::isAwaited »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent
  • Returns the port on which this server is listening

MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getPort

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getPort — Returns the port on which this server is listening

Description

final public MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getPort(): int

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the port on which this server is listening.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


Returns whether the heartbeat used a streaming protocol

  • « MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getPort
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent
  • Returns whether the heartbeat used a streaming protocol

MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::isAwaited

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::isAwaited — Returns whether the heartbeat used a streaming protocol

Description

final public MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::isAwaited(): bool

Returns whether the heartbeat used a streaming protocol. The PHP driver does not use the streaming protocol for monitoring, so this method will always return false.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns false.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


The MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent class

(mongodb >=1.13.0)

Introduction

The MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent class encapsulates information about a successful server heartbeat.

Synopsis de la classe

final class MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent {
/* Méthodes */
final public getDurationMicros(): int
final public getHost(): string
final public getPort(): int
final public getReply(): object
final public isAwaited(): bool
}

Sommaire

  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getDurationMicros — Returns the heartbeat's duration in microseconds
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getHost — Returns the hostname of the server
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getPort — Returns the port on which this server is listening
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getReply — Returns the heartbeat reply document
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::isAwaited — Returns whether the heartbeat used a streaming protocol


Returns the heartbeat's duration in microseconds

  • « MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getHost »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent
  • Returns the heartbeat's duration in microseconds

MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getDurationMicros

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getDurationMicros — Returns the heartbeat's duration in microseconds

Description

final public MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getDurationMicros(): int

The heartbeat's duration is a calculated value that includes the time to send the message and receive the reply from the server.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the heartbeat's duration in microseconds.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


Returns the hostname of the server

  • « MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getDurationMicros
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getPort »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent
  • Returns the hostname of the server

MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getHost

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getHost — Returns the hostname of the server

Description

final public MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getHost(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the hostname of the server.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


Returns the port on which this server is listening

  • « MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getHost
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getReply »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent
  • Returns the port on which this server is listening

MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getPort

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getPort — Returns the port on which this server is listening

Description

final public MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getPort(): int

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the port on which this server is listening.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


Returns the heartbeat reply document

  • « MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getPort
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::isAwaited »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent
  • Returns the heartbeat reply document

MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getReply

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getReply — Returns the heartbeat reply document

Description

final public MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getReply(): object

The reply document will be converted from BSON to PHP using the default deserialization rules (e.g. BSON documents will be converted to stdClass).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the heartbeat reply document as a stdClass object.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Voir aussi

  • Application Performance Monitoring (APM)
  • Persisting Data


Returns whether the heartbeat used a streaming protocol

  • « MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getReply
  • MongoDB\Driver\Monitoring\TopologyChangedEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent
  • Returns whether the heartbeat used a streaming protocol

MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::isAwaited

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::isAwaited — Returns whether the heartbeat used a streaming protocol

Description

final public MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::isAwaited(): bool

Returns whether the heartbeat used a streaming protocol. The PHP driver does not use the streaming protocol for monitoring, so this method will always return false.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns false.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


The MongoDB\Driver\Monitoring\TopologyChangedEvent class

(mongodb >=1.13.0)

Introduction

The MongoDB\Driver\Monitoring\TopologyChangedEvent class encapsulates information about a changed topology description.

Synopsis de la classe

final class MongoDB\Driver\Monitoring\TopologyChangedEvent {
/* Méthodes */
final public getNewDescription(): MongoDB\Driver\TopologyDescription
final public getPreviousDescription(): MongoDB\Driver\TopologyDescription
final public getTopologyId(): MongoDB\BSON\ObjectId
}

Sommaire

  • MongoDB\Driver\Monitoring\TopologyChangedEvent::getNewDescription — Returns the new description for the topology
  • MongoDB\Driver\Monitoring\TopologyChangedEvent::getPreviousDescription — Returns the previous description for the topology
  • MongoDB\Driver\Monitoring\TopologyChangedEvent::getTopologyId — Returns the topology ID


Returns the new description for the topology

  • « MongoDB\Driver\Monitoring\TopologyChangedEvent
  • MongoDB\Driver\Monitoring\TopologyChangedEvent::getPreviousDescription »
  • PHP Manual
  • MongoDB\Driver\Monitoring\TopologyChangedEvent
  • Returns the new description for the topology

MongoDB\Driver\Monitoring\TopologyChangedEvent::getNewDescription

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\TopologyChangedEvent::getNewDescription — Returns the new description for the topology

Description

final public MongoDB\Driver\Monitoring\TopologyChangedEvent::getNewDescription(): MongoDB\Driver\TopologyDescription

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the new MongoDB\Driver\TopologyDescription for the topology.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


Returns the previous description for the topology

  • « MongoDB\Driver\Monitoring\TopologyChangedEvent::getNewDescription
  • MongoDB\Driver\Monitoring\TopologyChangedEvent::getTopologyId »
  • PHP Manual
  • MongoDB\Driver\Monitoring\TopologyChangedEvent
  • Returns the previous description for the topology

MongoDB\Driver\Monitoring\TopologyChangedEvent::getPreviousDescription

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\TopologyChangedEvent::getPreviousDescription — Returns the previous description for the topology

Description

final public MongoDB\Driver\Monitoring\TopologyChangedEvent::getPreviousDescription(): MongoDB\Driver\TopologyDescription

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the previous MongoDB\Driver\TopologyDescription for the topology.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


Returns the topology ID

  • « MongoDB\Driver\Monitoring\TopologyChangedEvent::getPreviousDescription
  • MongoDB\Driver\Monitoring\TopologyClosedEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\TopologyChangedEvent
  • Returns the topology ID

MongoDB\Driver\Monitoring\TopologyChangedEvent::getTopologyId

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\TopologyChangedEvent::getTopologyId — Returns the topology ID

Description

final public MongoDB\Driver\Monitoring\TopologyChangedEvent::getTopologyId(): MongoDB\BSON\ObjectId

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the topology ID.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


The MongoDB\Driver\Monitoring\TopologyClosedEvent class

(mongodb >=1.13.0)

Introduction

The MongoDB\Driver\Monitoring\TopologyClosedEvent class encapsulates information about a closed topology.

Synopsis de la classe

final class MongoDB\Driver\Monitoring\TopologyClosedEvent {
/* Méthodes */
final public getTopologyId(): MongoDB\BSON\ObjectId
}

Sommaire

  • MongoDB\Driver\Monitoring\TopologyClosedEvent::getTopologyId — Returns the topology ID


Returns the topology ID

  • « MongoDB\Driver\Monitoring\TopologyClosedEvent
  • MongoDB\Driver\Monitoring\TopologyOpeningEvent »
  • PHP Manual
  • MongoDB\Driver\Monitoring\TopologyClosedEvent
  • Returns the topology ID

MongoDB\Driver\Monitoring\TopologyClosedEvent::getTopologyId

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\TopologyClosedEvent::getTopologyId — Returns the topology ID

Description

final public MongoDB\Driver\Monitoring\TopologyClosedEvent::getTopologyId(): MongoDB\BSON\ObjectId

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the topology ID.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


The MongoDB\Driver\Monitoring\TopologyOpeningEvent class

(mongodb >=1.13.0)

Introduction

The MongoDB\Driver\Monitoring\TopologyOpeningEvent class encapsulates information about an opened topology.

Synopsis de la classe

final class MongoDB\Driver\Monitoring\TopologyOpeningEvent {
/* Méthodes */
final public getTopologyId(): MongoDB\BSON\ObjectId
}

Sommaire

  • MongoDB\Driver\Monitoring\TopologyOpeningEvent::getTopologyId — Returns the topology ID


Returns the topology ID

  • « MongoDB\Driver\Monitoring\TopologyOpeningEvent
  • MongoDB\Driver\Monitoring\CommandSubscriber »
  • PHP Manual
  • MongoDB\Driver\Monitoring\TopologyOpeningEvent
  • Returns the topology ID

MongoDB\Driver\Monitoring\TopologyOpeningEvent::getTopologyId

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\TopologyOpeningEvent::getTopologyId — Returns the topology ID

Description

final public MongoDB\Driver\Monitoring\TopologyOpeningEvent::getTopologyId(): MongoDB\BSON\ObjectId

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the topology ID.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.


The MongoDB\Driver\Monitoring\CommandSubscriber interface

(mongodb >=1.3.0)

Introduction

Classes may implement this interface to register an event subscriber that is notified for each started, successful, and failed command event. See Application Performance Monitoring (APM) for additional information.

Sommaire de l'Interface

class MongoDB\Driver\Monitoring\CommandSubscriber implements MongoDB\Driver\Monitoring\Subscriber {
/* Méthodes */
abstract public commandFailed(MongoDB\Driver\Monitoring\CommandFailedEvent $event): void
abstract public commandStarted(MongoDB\Driver\Monitoring\CommandStartedEvent $event): void
abstract public commandSucceeded(MongoDB\Driver\Monitoring\CommandSucceededEvent $event): void
}

Historique

Version | Description
PECL mongodb 1.15.0 | Les types de retours des méthodes sont déclarés comme provisoires en PHP 8.0 et ultérieur, ce qui déclenche des avis de dépréciation dans le code qui implémente cette interface sans déclarer les types de retours appropriés. L'attribut #[ReturnTypeWillChange] peut être ajouté pour ignorer la notice de dépréciation.

Sommaire

  • MongoDB\Driver\Monitoring\CommandSubscriber::commandFailed — Notification method for a failed command
  • MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted — Notification method for a started command
  • MongoDB\Driver\Monitoring\CommandSubscriber::commandSucceeded — Notification method for a successful command


Notification method for a failed command

  • « MongoDB\Driver\Monitoring\CommandSubscriber
  • MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSubscriber
  • Notification method for a failed command

MongoDB\Driver\Monitoring\CommandSubscriber::commandFailed

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandSubscriber::commandFailed — Notification method for a failed command

Description

abstract public MongoDB\Driver\Monitoring\CommandSubscriber::commandFailed(MongoDB\Driver\Monitoring\CommandFailedEvent $event): void

If the subscriber has been registered, the driver will call this method when a command has failed.

Liste de paramètres

event (MongoDB\Driver\Monitoring\CommandFailedEvent)

An event object encapsulating information about the failed command.

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.

Voir aussi

  • MongoDB\Driver\Monitoring\CommandFailedEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Enregistre un abonnement de surveillance d'événement
  • MongoDB\Driver\Manager::addSubscriber() - Registers a monitoring event subscriber with this Manager
  • Application Performance Monitoring (APM)


Notification method for a started command

  • « MongoDB\Driver\Monitoring\CommandSubscriber::commandFailed
  • MongoDB\Driver\Monitoring\CommandSubscriber::commandSucceeded »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSubscriber
  • Notification method for a started command

MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted — Notification method for a started command

Description

abstract public MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted(MongoDB\Driver\Monitoring\CommandStartedEvent $event): void

If the subscriber has been registered, the driver will call this method when a command has started.

Liste de paramètres

event (MongoDB\Driver\Monitoring\CommandStartedEvent)

An event object encapsulating information about the started command.

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.

Voir aussi

  • MongoDB\Driver\Monitoring\CommandStartedEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Enregistre un abonnement de surveillance d'événement
  • MongoDB\Driver\Manager::addSubscriber() - Registers a monitoring event subscriber with this Manager
  • Application Performance Monitoring (APM)


Notification method for a successful command

  • « MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted
  • MongoDB\Driver\Monitoring\LogSubscriber »
  • PHP Manual
  • MongoDB\Driver\Monitoring\CommandSubscriber
  • Notification method for a successful command

MongoDB\Driver\Monitoring\CommandSubscriber::commandSucceeded

(mongodb >=1.3.0)

MongoDB\Driver\Monitoring\CommandSubscriber::commandSucceeded — Notification method for a successful command

Description

abstract public MongoDB\Driver\Monitoring\CommandSubscriber::commandSucceeded(MongoDB\Driver\Monitoring\CommandSucceededEvent $event): void

If the subscriber has been registered, the driver will call this method when a command has succeeded.

Liste de paramètres

event (MongoDB\Driver\Monitoring\CommandSucceededEvent)

An event object encapsulating information about the successful command.

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.

Voir aussi

  • MongoDB\Driver\Monitoring\CommandSucceededEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Enregistre un abonnement de surveillance d'événement
  • MongoDB\Driver\Manager::addSubscriber() - Registers a monitoring event subscriber with this Manager
  • Application Performance Monitoring (APM)


The MongoDB\Driver\Monitoring\LogSubscriber interface

(mongodb >=1.17.0)

Introduction

Classes implementing this interface may be registered as a subscriber and receive log messages from the driver. This is similar to stream-based debug logging (i.e. mongodb.debug) except that trace-level log messages are not received.

As with stream-based logging, it is only possible to register a logger globally using MongoDB\Driver\Monitoring\addSubscriber(). The driver is not able to distinguish log messages for individual MongoDB\Driver\Manager objects.

Sommaire de l'Interface

class MongoDB\Driver\Monitoring\LogSubscriber implements MongoDB\Driver\Monitoring\Subscriber {
/* Constantes */
const int LEVEL_ERROR = 0;
const int LEVEL_CRITICAL = 1;
const int LEVEL_WARNING = 2;
const int LEVEL_MESSAGE = 3;
const int LEVEL_INFO = 4;
const int LEVEL_DEBUG = 5;
/* Méthodes */
abstract public log(int $level, string $domain, string $message): void
}

Constantes pré-définies

MongoDB\Driver\Monitoring\LogSubscriber::LEVEL_ERROR

Error log level. An error condition that the driver is unable to report through its API. This is the most severe log level in the driver.

MongoDB\Driver\Monitoring\LogSubscriber::LEVEL_CRITICAL

Critical log level. An error condition with slightly less severity. This constant exists for consistency with libmongoc; however, the driver is unlikely to use it in practice.

MongoDB\Driver\Monitoring\LogSubscriber::LEVEL_WARNING

Warning log level. Indicates a situation where undesirable application behavior may occur.

MongoDB\Driver\Monitoring\LogSubscriber::LEVEL_MESSAGE

Message or notice log level. Indicates an event that is unusual but not problematic.

MongoDB\Driver\Monitoring\LogSubscriber::LEVEL_INFO

Info log level. High-level information about normal driver behavior.

MongoDB\Driver\Monitoring\LogSubscriber::LEVEL_DEBUG

Debug log level. Detailed information that may be helpful when debugging an application.

Sommaire

  • MongoDB\Driver\Monitoring\LogSubscriber::log — Notification method for a log message


Notification method for a log message

  • « MongoDB\Driver\Monitoring\LogSubscriber
  • MongoDB\Driver\Monitoring\SDAMSubscriber »
  • PHP Manual
  • MongoDB\Driver\Monitoring\LogSubscriber
  • Notification method for a log message

MongoDB\Driver\Monitoring\LogSubscriber::log

(mongodb >=1.17.0)

MongoDB\Driver\Monitoring\LogSubscriber::log — Notification method for a log message

Description

abstract public MongoDB\Driver\Monitoring\LogSubscriber::log(int $level, string $domain, string $message): void

If the subscriber has been registered, the driver will call this method for each logged message.

Liste de paramètres

level

The severity level. This will be one of the interface constants.

domain

The name of the driver component that emitted the log message.

message

The log message.

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.

Voir aussi

  • MongoDB\Driver\Monitoring\addSubscriber() - Enregistre un abonnement de surveillance d'événement


The MongoDB\Driver\Monitoring\SDAMSubscriber interface

(mongodb >=1.13.0)

Introduction

Classes may implement this interface to register an event subscriber that is notified for various SDAM events. See the » Server Discovery and Monitoring and » SDAM Monitoring specifications for additional information.

Sommaire de l'Interface

class MongoDB\Driver\Monitoring\SDAMSubscriber implements MongoDB\Driver\Monitoring\Subscriber {
/* Méthodes */
abstract public serverChanged(MongoDB\Driver\Monitoring\ServerChangedEvent $event): void
abstract public serverClosed(MongoDB\Driver\Monitoring\ServerClosedEvent $event): void
abstract public serverHeartbeatFailed(MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent $event): void
abstract public serverHeartbeatStarted(MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent $event): void
abstract public serverHeartbeatSucceeded(MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent $event): void
abstract public serverOpening(MongoDB\Driver\Monitoring\ServerOpeningEvent $event): void
abstract public topologyChanged(MongoDB\Driver\Monitoring\TopologyChangedEvent $event): void
abstract public topologyClosed(MongoDB\Driver\Monitoring\TopologyClosedEvent $event): void
abstract public topologyOpening(MongoDB\Driver\Monitoring\TopologyOpeningEvent $event): void
}

Historique

Version | Description
PECL mongodb 1.15.0 | Les types de retours des méthodes sont déclarés comme provisoires en PHP 8.0 et ultérieur, ce qui déclenche des avis de dépréciation dans le code qui implémente cette interface sans déclarer les types de retours appropriés. L'attribut #[ReturnTypeWillChange] peut être ajouté pour ignorer la notice de dépréciation.

Sommaire

  • MongoDB\Driver\Monitoring\SDAMSubscriber::serverChanged — Notification method for a server description change
  • MongoDB\Driver\Monitoring\SDAMSubscriber::serverClosed — Notification method for closing a server
  • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatFailed — Notification method for a failed server heartbeat
  • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatStarted — Notification method for a started server heartbeat
  • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatSucceeded — Notification method for a successful server heartbeat
  • MongoDB\Driver\Monitoring\SDAMSubscriber::serverOpening — Notification method for opening a server
  • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyChanged — Notification method for a topology description change
  • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyClosed — Notification method for closing the topology
  • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyOpening — Notification method for opening the topology


Notification method for a server description change

  • « MongoDB\Driver\Monitoring\SDAMSubscriber
  • MongoDB\Driver\Monitoring\SDAMSubscriber::serverClosed »
  • PHP Manual
  • MongoDB\Driver\Monitoring\SDAMSubscriber
  • Notification method for a server description change

MongoDB\Driver\Monitoring\SDAMSubscriber::serverChanged

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\SDAMSubscriber::serverChanged — Notification method for a server description change

Description

abstract public MongoDB\Driver\Monitoring\SDAMSubscriber::serverChanged(MongoDB\Driver\Monitoring\ServerChangedEvent $event): void

If the subscriber has been registered, the driver will call this method when a server's description has changed.

Liste de paramètres

event (MongoDB\Driver\Monitoring\ServerChangedEvent)

An event object encapsulating information about the changed server description.

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.

Voir aussi

  • MongoDB\Driver\Monitoring\ServerChangedEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Enregistre un abonnement de surveillance d'événement
  • MongoDB\Driver\Manager::addSubscriber() - Registers a monitoring event subscriber with this Manager


Notification method for closing a server

  • « MongoDB\Driver\Monitoring\SDAMSubscriber::serverChanged
  • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatFailed »
  • PHP Manual
  • MongoDB\Driver\Monitoring\SDAMSubscriber
  • Notification method for closing a server

MongoDB\Driver\Monitoring\SDAMSubscriber::serverClosed

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\SDAMSubscriber::serverClosed — Notification method for closing a server

Description

abstract public MongoDB\Driver\Monitoring\SDAMSubscriber::serverClosed(MongoDB\Driver\Monitoring\ServerClosedEvent $event): void

If the subscriber has been registered, the driver will call this method when a server is closed.

Liste de paramètres

event (MongoDB\Driver\Monitoring\ServerClosedEvent)

An event object encapsulating information about the closed server.

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.

Voir aussi

  • MongoDB\Driver\Monitoring\ServerClosedEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Enregistre un abonnement de surveillance d'événement
  • MongoDB\Driver\Manager::addSubscriber() - Registers a monitoring event subscriber with this Manager


Notification method for a failed server heartbeat

  • « MongoDB\Driver\Monitoring\SDAMSubscriber::serverClosed
  • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatStarted »
  • PHP Manual
  • MongoDB\Driver\Monitoring\SDAMSubscriber
  • Notification method for a failed server heartbeat

MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatFailed

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatFailed — Notification method for a failed server heartbeat

Description

abstract public MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatFailed(MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent $event): void

If the subscriber has been registered, the driver will call this method when a server heartbeat (i.e. » hello command issued through » server monitoring) has failed.

Liste de paramètres

event (MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent)

An event object encapsulating information about the failed server heartbeat.

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.

Voir aussi

  • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Enregistre un abonnement de surveillance d'événement
  • MongoDB\Driver\Manager::addSubscriber() - Registers a monitoring event subscriber with this Manager


Notification method for a started server heartbeat

  • « MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatFailed
  • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatSucceeded »
  • PHP Manual
  • MongoDB\Driver\Monitoring\SDAMSubscriber
  • Notification method for a started server heartbeat

MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatStarted

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatStarted — Notification method for a started server heartbeat

Description

abstract public MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatStarted(MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent $event): void

If the subscriber has been registered, the driver will call this method when a server heartbeat (i.e. » hello command issued through » server monitoring) has started.

Liste de paramètres

event (MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent)

An event object encapsulating information about the started server heartbeat.

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.

Voir aussi

  • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Enregistre un abonnement de surveillance d'événement
  • MongoDB\Driver\Manager::addSubscriber() - Registers a monitoring event subscriber with this Manager


Notification method for a successful server heartbeat

  • « MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatStarted
  • MongoDB\Driver\Monitoring\SDAMSubscriber::serverOpening »
  • PHP Manual
  • MongoDB\Driver\Monitoring\SDAMSubscriber
  • Notification method for a successful server heartbeat

MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatSucceeded

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatSucceeded — Notification method for a successful server heartbeat

Description

abstract public MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatSucceeded(MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent $event): void

If the subscriber has been registered, the driver will call this method when a server heartbeat (i.e. » hello command issued through » server monitoring) has succeeded.

Liste de paramètres

event (MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent)

An event object encapsulating information about the successful server heartbeat.

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.

Voir aussi

  • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Enregistre un abonnement de surveillance d'événement
  • MongoDB\Driver\Manager::addSubscriber() - Registers a monitoring event subscriber with this Manager


Notification method for opening a server

  • « MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatSucceeded
  • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyChanged »
  • PHP Manual
  • MongoDB\Driver\Monitoring\SDAMSubscriber
  • Notification method for opening a server

MongoDB\Driver\Monitoring\SDAMSubscriber::serverOpening

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\SDAMSubscriber::serverOpening — Notification method for opening a server

Description

abstract public MongoDB\Driver\Monitoring\SDAMSubscriber::serverOpening(MongoDB\Driver\Monitoring\ServerOpeningEvent $event): void

If the subscriber has been registered, the driver will call this method when a server is opened.

Liste de paramètres

event (MongoDB\Driver\Monitoring\ServerOpeningEvent)

An event object encapsulating information about the opened server.

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.

Voir aussi

  • MongoDB\Driver\Monitoring\ServerOpeningEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Enregistre un abonnement de surveillance d'événement
  • MongoDB\Driver\Manager::addSubscriber() - Registers a monitoring event subscriber with this Manager


Notification method for a topology description change

  • « MongoDB\Driver\Monitoring\SDAMSubscriber::serverOpening
  • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyClosed »
  • PHP Manual
  • MongoDB\Driver\Monitoring\SDAMSubscriber
  • Notification method for a topology description change

MongoDB\Driver\Monitoring\SDAMSubscriber::topologyChanged

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\SDAMSubscriber::topologyChanged — Notification method for a topology description change

Description

abstract public MongoDB\Driver\Monitoring\SDAMSubscriber::topologyChanged(MongoDB\Driver\Monitoring\TopologyChangedEvent $event): void

If the subscriber has been registered, the driver will call this method when the topology's description has changed.

Liste de paramètres

event (MongoDB\Driver\Monitoring\TopologyChangedEvent)

An event object encapsulating information about the changed topology description.

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.

Voir aussi

  • MongoDB\Driver\Monitoring\TopologyChangedEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Enregistre un abonnement de surveillance d'événement
  • MongoDB\Driver\Manager::addSubscriber() - Registers a monitoring event subscriber with this Manager


Notification method for closing the topology

  • « MongoDB\Driver\Monitoring\SDAMSubscriber::topologyChanged
  • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyOpening »
  • PHP Manual
  • MongoDB\Driver\Monitoring\SDAMSubscriber
  • Notification method for closing the topology

MongoDB\Driver\Monitoring\SDAMSubscriber::topologyClosed

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\SDAMSubscriber::topologyClosed — Notification method for closing the topology

Description

abstract public MongoDB\Driver\Monitoring\SDAMSubscriber::topologyClosed(MongoDB\Driver\Monitoring\TopologyClosedEvent $event): void

If the subscriber has been registered, the driver will call this method when the topology is closed.

Liste de paramètres

event (MongoDB\Driver\Monitoring\TopologyClosedEvent)

An event object encapsulating information about the closed topology.

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.

Voir aussi

  • MongoDB\Driver\Monitoring\TopologyClosedEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Enregistre un abonnement de surveillance d'événement
  • MongoDB\Driver\Manager::addSubscriber() - Registers a monitoring event subscriber with this Manager


Notification method for opening the topology

  • « MongoDB\Driver\Monitoring\SDAMSubscriber::topologyClosed
  • MongoDB\Driver\Monitoring\Subscriber »
  • PHP Manual
  • MongoDB\Driver\Monitoring\SDAMSubscriber
  • Notification method for opening the topology

MongoDB\Driver\Monitoring\SDAMSubscriber::topologyOpening

(mongodb >=1.13.0)

MongoDB\Driver\Monitoring\SDAMSubscriber::topologyOpening — Notification method for opening the topology

Description

abstract public MongoDB\Driver\Monitoring\SDAMSubscriber::topologyOpening(MongoDB\Driver\Monitoring\TopologyOpeningEvent $event): void

If the subscriber has been registered, the driver will call this method when the topology is opened.

Liste de paramètres

event (MongoDB\Driver\Monitoring\TopologyOpeningEvent)

An event object encapsulating information about the opened topology.

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.

Voir aussi

  • MongoDB\Driver\Monitoring\TopologyOpeningEvent
  • MongoDB\Driver\Monitoring\addSubscriber() - Enregistre un abonnement de surveillance d'événement
  • MongoDB\Driver\Manager::addSubscriber() - Registers a monitoring event subscriber with this Manager


The MongoDB\Driver\Monitoring\Subscriber interface

(mongodb >=1.3.0)

Introduction

Base interface for event subscribers. This is used as a parameter type in the functions MongoDB\Driver\Monitoring\addSubscriber() and MongoDB\Driver\Monitoring\removeSubscriber() and should not be implemented directly.

Sommaire de l'Interface

class MongoDB\Driver\Monitoring\Subscriber {
}

This interface has no methods. Its only purpose is to be the base interface for all event subscribers.


Exception classes

  • MongoDB\Driver\Exception\AuthenticationException — La classe MongoDB\Driver\Exception\AuthenticationException
  • MongoDB\Driver\Exception\BulkWriteException — La classe MongoDB\Driver\Exception\BulkWriteException
  • MongoDB\Driver\Exception\CommandException — The MongoDB\Driver\Exception\CommandException class
    • MongoDB\Driver\Exception\CommandException::getResultDocument — Retourne le document résultant pour la commande échoué
  • MongoDB\Driver\Exception\ConnectionException — La classe MongoDB\Driver\Exception\ConnectionException
  • MongoDB\Driver\Exception\ConnectionTimeoutException — The MongoDB\Driver\Exception\ConnectionTimeoutException class
  • MongoDB\Driver\Exception\EncryptionException — The MongoDB\Driver\Exception\EncryptionException class
  • MongoDB\Driver\Exception\Exception — La classe MongoDB\Driver\Exception\Exception
  • MongoDB\Driver\Exception\ExecutionTimeoutException — The MongoDB\Driver\Exception\ExecutionTimeoutException class
  • MongoDB\Driver\Exception\InvalidArgumentException — La classe MongoDB\Driver\Exception\InvalidArgumentException
  • MongoDB\Driver\Exception\LogicException — The MongoDB\Driver\Exception\LogicException class
  • MongoDB\Driver\Exception\RuntimeException — La classe MongoDB\Driver\Exception\RuntimeException
    • MongoDB\Driver\Exception\RuntimeException::hasErrorLabel — Retourne si un label d'erreur est associé avec une exception
  • MongoDB\Driver\Exception\ServerException — The MongoDB\Driver\Exception\ServerException class
  • MongoDB\Driver\Exception\SSLConnectionException — La classe MongoDB\Driver\Exception\SSLConnectionException
  • MongoDB\Driver\Exception\UnexpectedValueException — The MongoDB\Driver\Exception\UnexpectedValueException class
  • MongoDB\Driver\Exception\WriteException — La classe MongoDB\Driver\Exception\WriteException
    • MongoDB\Driver\Exception\WriteException::getWriteResult — Retourne le WriteResult pour l'opération d'écriture qui a échoué
  • Class Tree — MongoDB Exception Class Tree


La classe MongoDB\Driver\Exception\AuthenticationException

(mongodb >= 1.0.0)

Introduction

Levée lorsque le pilote ne parvient pas à s'authentifier auprès du serveur.

Synopsis de la classe

class MongoDB\Driver\Exception\AuthenticationException extends MongoDB\Driver\Exception\ConnectionException implements MongoDB\Driver\Exception\Exception {
/* Propriétés héritées */
protected ?array $errorLabels;
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel(string $errorLabel): bool
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


La classe MongoDB\Driver\Exception\BulkWriteException

(mongodb >= 1.0.0)

Introduction

Levée lorsqu'une opération d'écriture en bloc échoue.

Synopsis de la classe

final class 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 ?array $errorLabels;
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
final public MongoDB\Driver\Exception\WriteException::getWriteResult(): MongoDB\Driver\WriteResult
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel(string $errorLabel): bool
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The MongoDB\Driver\Exception\CommandException class

(mongodb >= 1.5.0)

Introduction

Thrown when a command fails.

Synopsis de la classe

class MongoDB\Driver\Exception\CommandException extends MongoDB\Driver\Exception\ServerException implements MongoDB\Driver\Exception\Exception {
/* Propriétés */
protected object $resultDocument;
/* Propriétés héritées */
protected ?array $errorLabels;
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes */
final public getResultDocument(): object
/* Méthodes héritées */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel(string $errorLabel): bool
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Propriétés

resultDocument

The result document associated with the failed command.

Sommaire

  • MongoDB\Driver\Exception\CommandException::getResultDocument — Retourne le document résultant pour la commande échoué


Retourne le document résultant pour la commande échoué

  • « MongoDB\Driver\Exception\CommandException
  • MongoDB\Driver\Exception\ConnectionException »
  • PHP Manual
  • MongoDB\Driver\Exception\CommandException
  • Retourne le document résultant pour la commande échoué

MongoDB\Driver\Exception\CommandException::getResultDocument

(mongodb >= 1.5.0)

MongoDB\Driver\Exception\CommandException::getResultDocument — Retourne le document résultant pour la commande échoué

Description

final public MongoDB\Driver\Exception\CommandException::getResultDocument(): object

Retourne le document résultant pour la commande échoué.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le document résultant pour la commande échoué.

Voir aussi

  • MongoDB\Driver\Manager::executeCommand() - Execute a database command


La classe MongoDB\Driver\Exception\ConnectionException

(mongodb >= 1.0.0)

Introduction

Classe de base pour les exceptions levées lorsque le pilote ne parvient pas à établir une connexion de base de données.

Synopsis de la classe

class MongoDB\Driver\Exception\ConnectionException extends MongoDB\Driver\Exception\RuntimeException implements MongoDB\Driver\Exception\Exception {
/* Propriétés héritées */
protected ?array $errorLabels;
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel(string $errorLabel): bool
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private 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 (connectTimeoutMS) or server selection fails (serverSelectionTimeoutMS).

Synopsis de la classe

final class MongoDB\Driver\Exception\ConnectionTimeoutException extends MongoDB\Driver\Exception\ConnectionException implements MongoDB\Driver\Exception\Exception {
/* Propriétés héritées */
protected ?array $errorLabels;
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel(string $errorLabel): bool
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The MongoDB\Driver\Exception\EncryptionException class

(mongodb >= 1.7.0)

Introduction

Base class for exceptions thrown during client-side encryption.

Synopsis de la classe

class MongoDB\Driver\Exception\EncryptionException extends MongoDB\Driver\Exception\RuntimeException implements MongoDB\Driver\Exception\Exception {
/* Propriétés héritées */
protected ?array $errorLabels;
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel(string $errorLabel): bool
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


La classe MongoDB\Driver\Exception\Exception

(mongodb >= 1.0.0)

Introduction

Interface commune pour toutes les exceptions du pilote. Cela peut être utilisé pour intercepter uniquement les exceptions provenant du pilote lui-même.

Synopsis de la classe

class 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

final class MongoDB\Driver\Exception\ExecutionTimeoutException extends MongoDB\Driver\Exception\ServerException implements MongoDB\Driver\Exception\Exception {
/* Propriétés héritées */
protected ?array $errorLabels;
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel(string $errorLabel): bool
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Historique

Version | Description
PECL mongodb 1.5.0 | This class now extends MongoDB\Driver\Exception\ServerException instead of MongoDB\Driver\Exception\RuntimeException.


La classe MongoDB\Driver\Exception\InvalidArgumentException

(mongodb >= 1.0.0)

Introduction

Levée lorsqu'une méthode de pilote reçoit des arguments non valides (par exemple, des types d'options non valides).

Synopsis de la classe

class MongoDB\Driver\Exception\InvalidArgumentException extends InvalidArgumentException implements MongoDB\Driver\Exception\Exception {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private 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

class MongoDB\Driver\Exception\LogicException extends LogicException implements MongoDB\Driver\Exception\Exception {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


La classe MongoDB\Driver\Exception\RuntimeException

(mongodb >= 1.0.0)

Introduction

Levée lorsque le pilote rencontre une erreur d'exécution (par exemple, erreur interne de » libmongoc).

Synopsis de la classe

class MongoDB\Driver\Exception\RuntimeException extends RuntimeException implements MongoDB\Driver\Exception\Exception {
/* Propriétés */
protected ?array $errorLabels;
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes */
final public hasErrorLabel(string $errorLabel): bool
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Propriétés

errorLabels

Contient un tableau d'étiquettes d'erreur à parcourir avec une exception. Par exemple, les étiquettes d'erreur peuvent être utilisées pour détecter si une transaction peut être réessayée en toute sécurité si l'étiquette TransientTransactionError est présente. L'existence d'une étiquette d'erreur spécifique doit être testée avec MongoDB\Driver\Exception\RuntimeException::hasErrorLabel(), au lieu d'interpréter manuellement la propriété errorLabels.

Historique

Version | Description
PECL mongodb 1.6.0 | La méthode MongoDB\Driver\Exception\RuntimeException::hasErrorLabel() et la propriété MongoDB\Driver\Exception\RuntimeException::errorLabels ont été ajoutées.

Sommaire

  • MongoDB\Driver\Exception\RuntimeException::hasErrorLabel — Retourne si un label d'erreur est associé avec une exception


Retourne si un label d'erreur est associé avec une exception

  • « MongoDB\Driver\Exception\RuntimeException
  • MongoDB\Driver\Exception\ServerException »
  • PHP Manual
  • MongoDB\Driver\Exception\RuntimeException
  • Retourne si un label d'erreur est associé avec une exception

MongoDB\Driver\Exception\RuntimeException::hasErrorLabel

(mongodb >= 1.6.0)

MongoDB\Driver\Exception\RuntimeException::hasErrorLabel — Retourne si un label d'erreur est associé avec une exception

Description

final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel(string $errorLabel): bool

Retourne si le errorLabel a été définit pour cette exception. Les labels d'erreurs sont définit soit par le serveur soit par le pilote pour indiquer des situations spécifiques où vous voudriez décider comment vous gérerez une exception spécifique. Une situation commune serait de déterminer si vous pouvez relancer une transaction qui a échoué à cause d'une erreur passagère (tel qu'une erreur de réseau, ou un conflit de transaction) sans encombre. Des exemples de labels d'erreurs sont TransientTransactionError et UnknownTransactionCommitResult.

Liste de paramètres

errorLabel

Le nom de l'errorLabel à vérifier.

Valeurs de retour

Si le errorLabel fournit est associé avec cette exception.

Voir aussi

  • MongoDB\Driver\Session::commitTransaction() - Commits a transaction
  • » Documentation MongoDB sur les transactions


The MongoDB\Driver\Exception\ServerException class

(mongodb >= 1.5.0)

Introduction

Base class for exceptions thrown by the server. The code of this exception and its subclasses will correspond to the original error code from the server.

Synopsis de la classe

class MongoDB\Driver\Exception\ServerException extends MongoDB\Driver\Exception\RuntimeException implements MongoDB\Driver\Exception\Exception {
/* Propriétés héritées */
protected ?array $errorLabels;
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel(string $errorLabel): bool
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


La classe MongoDB\Driver\Exception\SSLConnectionException

(mongodb >= 1.0.0)

Avertissement

Cette classe d'exception est obsolète et peut être supprimée dans une version majeure future. Le pilote n'a jamais levé cette exception.

Introduction

Levée lorsque le pilote ne parvient pas à établir une connexion SSL avec le serveur.

Synopsis de la classe

final class MongoDB\Driver\Exception\SSLConnectionException extends MongoDB\Driver\Exception\ConnectionException implements MongoDB\Driver\Exception\Exception {
/* Propriétés héritées */
protected ?array $errorLabels;
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel(string $errorLabel): bool
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private 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

class MongoDB\Driver\Exception\UnexpectedValueException extends UnexpectedValueException implements MongoDB\Driver\Exception\Exception {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


La classe MongoDB\Driver\Exception\WriteException

(mongodb >= 1.0.0)

Introduction

Classe de base pour les exceptions levées par une opération d'écriture défaillante. L'exception encapsule un objet MongoDB\Driver\WriteResult .

Synopsis de la classe

class MongoDB\Driver\Exception\WriteException extends MongoDB\Driver\Exception\ServerException implements MongoDB\Driver\Exception\Exception {
/* Propriétés */
protected MongoDB\Driver\WriteResult $writeResult;
/* Propriétés héritées */
protected ?array $errorLabels;
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes */
final public getWriteResult(): MongoDB\Driver\WriteResult
/* Méthodes héritées */
final public MongoDB\Driver\Exception\RuntimeException::hasErrorLabel(string $errorLabel): bool
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Propriétés

writeResult

MongoDB\Driver\WriteResult associé à l'opération d'écriture défaillante.

Historique

Version | Description
PECL mongodb 1.5.0 | Cette classe s'étend maintenant MongoDB\Driver\Exception\ServerException à la place de MongoDB\Driver\Exception\RuntimeException.

Sommaire

  • MongoDB\Driver\Exception\WriteException::getWriteResult — Retourne le WriteResult pour l'opération d'écriture qui a échoué


Retourne le WriteResult pour l'opération d'écriture qui a échoué

  • « MongoDB\Driver\Exception\WriteException
  • Class Tree »
  • PHP Manual
  • MongoDB\Driver\Exception\WriteException
  • Retourne le WriteResult pour l'opération d'écriture qui a échoué

MongoDB\Driver\Exception\WriteException::getWriteResult

(mongodb >= 1.0.0)

MongoDB\Driver\Exception\WriteException::getWriteResult — Retourne le WriteResult pour l'opération d'écriture qui a échoué

Description

final public MongoDB\Driver\Exception\WriteException::getWriteResult(): MongoDB\Driver\WriteResult

Retourne le MongoDB\Driver\WriteResult pour l'opération d'écriture qui a échoué. Les méthodes MongoDB\Driver\WriteResult::getWriteErrors() et MongoDB\Driver\WriteResult::getWriteConcernError() peuvent être utilisé pour récupérer plus de détails à propos de l'échec.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le MongoDB\Driver\WriteResult pour l'opération d'écriture qui a échoué.

Exemples

Exemple #1 Exemple avec MongoDB\Driver\Exception\WriteException::getWriteResult()

<?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);
}
}

?>

Résultat de l'exemple ci-dessus est 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


MongoDB Exception Class Tree

The class hierarchy for MongoDB exceptions is modeled after that of the SPL Exceptions. Base classes extend their SPL counterpart and all exception classes in the extension implement the MongoDB\Driver\Exception\Exception interface.

  • MongoDB\Driver\Exception\LogicException (extends LogicException)
  • MongoDB\Driver\Exception\InvalidArgumentException (extends InvalidArgumentException)
  • MongoDB\Driver\Exception\UnexpectedValueException (extends UnexpectedValueException)
  • MongoDB\Driver\Exception\RuntimeException (extends RuntimeException)
    • MongoDB\Driver\Exception\ConnectionException
      • MongoDB\Driver\Exception\AuthenticationException
      • MongoDB\Driver\Exception\ConnectionTimeoutException
      • MongoDB\Driver\Exception\SSLConnectionException (deprecated)
    • MongoDB\Driver\Exception\EncryptionException
    • MongoDB\Driver\Exception\ServerException
      • MongoDB\Driver\Exception\CommandException
      • MongoDB\Driver\Exception\ExecutionTimeoutException
      • MongoDB\Driver\Exception\WriteException
        • MongoDB\Driver\Exception\BulkWriteException


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
    • Introduction
    • Aperçu de la terminologie
    • Choisir une API
    • Choisir une bibliothèque
    • Concepts
  • MySQLi — Extension mysqli
    • Introduction
    • Introduction
    • Guide de démarrage rapide
    • Installation/Configuration
    • L'extension mysqli et les connexions persistantes
    • Constantes pré-définies
    • Notes
    • 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
  • Mysql_xdevapi
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Historique des modifications
    • Exemples
    • Fonctions Mysql_xdevapi
    • mysql_xdevapi\BaseResult — Interface BaseResult
    • mysql_xdevapi\Client — Client class
    • mysql_xdevapi\Collection — Classe Collection
    • mysql_xdevapi\CollectionAdd — Classe CollectionAdd
    • mysql_xdevapi\CollectionFind — Classe CollectionFind
    • mysql_xdevapi\CollectionModify — Classe CollectionModify
    • mysql_xdevapi\CollectionRemove — Classe CollectionRemove
    • mysql_xdevapi\ColumnResult — Classe ColumnResult
    • mysql_xdevapi\CrudOperationBindable — Interface CrudOperationBindable
    • mysql_xdevapi\CrudOperationLimitable — Interface CrudOperationLimitable
    • mysql_xdevapi\CrudOperationSkippable — Interface CrudOperationSkippable
    • mysql_xdevapi\CrudOperationSortable — Interface CrudOperationSortable
    • mysql_xdevapi\DatabaseObject — Interface DatabaseObject
    • mysql_xdevapi\DocResult — Classe DocResult
    • mysql_xdevapi\Exception — Classe Exception
    • mysql_xdevapi\Executable — Interface Executable
    • mysql_xdevapi\ExecutionStatus — Classe ExecutionStatus
    • mysql_xdevapi\Expression — Classe Expression
    • mysql_xdevapi\Result — Classe Result
    • mysql_xdevapi\RowResult — Classe RowResult
    • mysql_xdevapi\Schema — Classe Schema
    • mysql_xdevapi\SchemaObject — Interface SchemaObject
    • mysql_xdevapi\Session — Classe Session
    • mysql_xdevapi\SqlStatement — Classe SqlStatement
    • mysql_xdevapi\SqlStatementResult — Classe SqlStatementResult
    • mysql_xdevapi\Statement — Classe Statement
    • mysql_xdevapi\Table — Classe Table
    • mysql_xdevapi\TableDelete — Classe TableDelete
    • mysql_xdevapi\TableInsert — Classe TableInsert
    • mysql_xdevapi\TableSelect — Classe TableSelect
    • mysql_xdevapi\TableUpdate — Classe TableUpdate
    • mysql_xdevapi\Warning — Classe Warning
  • MySQL (Original) — API MySQL originale
    • Introduction
    • Installation/Configuration
    • Historique des modifications
    • Constantes pré-définies
    • Exemples
    • Fonctions MySQL
  • 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


Aperçu des drivers PHP MySQL

  • Introduction
  • 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


Introduction

Il y a plusieurs APIs PHP pour accéder à une base de données MySQL. Les utilisateurs peuvent choisir entre les extensions mysqli ou PDO_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 à utiliser avec l'API.


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 cœur, avec des extensions optionnelles permettant d'étendre les fonctionnalités du cœur. Les extensions PHP relatives aux bases de données, comme l'extension mysqli qui est implémentée 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 des APIs différentes pour se connecter à MySQL. Ci-dessous, vous trouverez les APIs fournies par les extensions 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 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']);

Comparaison des fonctionnalités

La performance globale des deux 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. Souvent, l'impact est inférieur à 0.1%.

 | ext/mysqli | PDO_MySQL
Introduite en PHP version | 5.0 | 5.1
Inclus avec PHP 7.x et 8.x | Oui | Oui
Statut du développement | Active | Active
Cycle de vie | Active | Active
Recommandé pour de nouveaux projets | Oui | Oui
Interface orientée objet | Oui | Oui
Interface procédurale | Oui | Non
L'API supporte les requêtes non-bloquantes, asynchrones avec mysqlnd | Oui | Non
Connexions persistantes disponibles | Oui | Oui
L'API supporte les jeux de caractères | Oui | Oui
L'API supporte les requêtes préparées côté serveur | Oui | Oui
L'API supporte les requêtes préparées côté client | Non | Oui
L'API supporte les procédures stockées | Oui | Oui
L'API supporte les requêtes multiples | Oui | La plupart
L'API supporte les transactions | Oui | Oui
Les transactions peuvent être contrôlées avec SQL | Oui | Oui
Supporte toutes les fonctionnalités de MySQL 5.1+ | Oui | La plupart


Choisir une bibliothèque

Les extensions PHP mysqli et PDO_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. 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

// Alternativement recommandé, compilation avec mysqlnd
$ ./configure --with-mysqli --with-pdo-mysql

// Non recommandé, compilation avec libmysqlclient
$ ./configure --with-mysqli=/path/to/mysql_config --with-pdo-mysql=/path/to/mysql_config

Exemple #2 Comparaison des instructions préparées

<?php
// mysqli
$mysqli = new mysqli("example.com", "utilisateur", "motdepasse", "base de données");
$statement = $mysqli->prepare("SELECT District FROM City WHERE Name=?");
$statement->execute(["Amersfoort"]);
$result = $statement->get_result();
$row = $result->fetch_assoc();
echo htmlentities($row['District']);

// PDO
$pdo = new PDO('mysql:host=example.com;dbname=base de données', 'utilisateur', 'motdepasse');
$statement = $pdo->prepare("SELECT District FROM City WHERE Name=?");
$statement->execute(["Amersfoort"]);
$row = $statement->fetch(PDO::FETCH_ASSOC);
echo htmlentities($row['District']);

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 (pour toutes les extensions MySQL) | Oui | Non
Support du protocole de compression | Oui | Oui
Support de SSL | Oui | Oui
Support des pipes nommés | Oui | 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é
Reconnexion automatique | Non | Optionnel


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 sont ensuite 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 puis attendent que les données du serveur MySQL soient 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". Une fois que toutes les lignes de l'ensemble de résultats ont été récupérées, l'ensemble de résultats disparaît et il n'est plus possible de le parcourir à nouveau.

Suivant ces caractéristiques, Les requêtes non mises en mémoire tampon doivent être utilisées uniquement lorsqu'on s'attend à obtenir un grand ensemble de résultats qui sera traité séquentiellement. Les requêtes non mises en mémoire tampon présentent plusieurs pièges qui les rendent plus difficiles à utiliser, par exemple le nombre de lignes dans l'ensemble de résultats n'est pas connu avant que la dernière ligne ne soit récupérée.

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");
$unbufferedResult = $mysqli->query("SELECT Name FROM City", MYSQLI_USE_RESULT);

foreach ($unbufferedResult as $row) {
echo $row['Name'] . PHP_EOL;
}
?>

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_password');
$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);

$unbufferedResult = $pdo->query("SELECT Name FROM City");
foreach ($unbufferedResult as $row) {
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, 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 utf8mb4");

// N'affectera PAS $mysqli->real_escape_string();
$mysqli->query("SET CHARACTER SET utf8mb4");

// Mais, ceci affectera $mysqli->real_escape_string();
$mysqli->set_charset('utf8mb4');

// Mais, ceci NE l'affectera PAS (UTF-8 par rapport à utf8mb4) -- n'utilisez pas les tirets ici
$mysqli->set_charset('UTF-8');
?>

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.

Note: Confusion possible avec UTF-8

Du au fait que les noms des jeux de caractères dans MySQL ne contiennent pas de tiret, la chaîne "utf8" est correcte dans MySQL et définira le jeu de caractère en UTF-8. La chaîne "UTF-8" n'est pas correcte, et utiliser "utf-8" échouera à modifier le jeu de caractère.

Exemple #2 Exemple de définition du jeu de caractères : mysqli

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

echo 'Jeu de caractère initial : ' . $mysqli->character_set_name() . "\n";

if (!$mysqli->set_charset('utf8mb4')) {
printf("Erreur lors du chargement du jeu de caractères utf8mb4 : %s\n", $mysqli->error);
exit;
}

echo 'Votre jeu de caractère actuel est : ' . $mysqli->character_set_name() . "\n";
?>

Exemple #3 Exemple de définition du jeu de caractères : pdo_mysql

<?php
$pdo = new PDO("mysql:host=localhost;dbname=world;charset=utf8mb4", 'my_user', 'my_pass');
?>


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
  • 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::close — Ferme une connexion
    • mysqli::commit — Valide la transaction courante
    • mysqli::$connect_errno — Retourne le code d'erreur du dernier appel de connexion
    • mysqli::$connect_error — Retourne une description de la dernière erreur de connexion
    • mysqli::__construct — Ouvre une connexion à un serveur MySQL
    • mysqli::debug — Effectue des actions de débogage
    • mysqli::dump_debug_info — Écrit les informations de débogage 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::execute_query — Prepares, binds parameters, and executes SQL statement
    • 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::$client_info — Récupère des informations sur le client MySQL
    • mysqli::$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 un objet à utiliser avec mysqli_real_connect()
    • mysqli::$insert_id — Retourne la valeur généré pour une colonne AUTO_INCREMENT 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 ou plusieurs requêtes sur la base de donnée
    • 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::savepoint — Définit 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::set_charset — Définit le jeu de caractères du client
    • 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 insérées, ou correspondant 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 — Ajuste le pointeur de résultat vers une ligne arbitraire dans le résultat mis en mémoire tampon.
    • 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 colonnes 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 en tant qu'objet mysqli_result
    • 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 extraites du serveur
    • mysqli_stmt::$param_count — Retourne le nombre de paramètres 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 ensemble de résultats dans un tampon interne
  • mysqli_result — La classe mysqli_result
    • mysqli_result::__construct — Constructs a mysqli_result object
    • 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 — Récupère toutes les lignes de résultats dans un tableau associatif, numérique, ou les deux
    • mysqli_result::fetch_array — Récupère la ligne suivante d'un ensemble de résultats sous forme de tableau associatif, numérique ou les deux
    • mysqli_result::fetch_assoc — Récupère la ligne suivante d'un ensemble de résultats sous forme de tableau associatif
    • mysqli_result::fetch_column — Fetch a single column from the next row of a result set
    • 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 suivante d'un ensemble de résultats 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 l'ensemble de résultats
    • 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::getIterator — Retrieve an external iterator
    • 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 le jeu de résultats
  • 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 — Définit le mode du rapport d'erreur mysqli
  • mysqli_warning — La classe mysqli_warning
    • mysqli_warning::__construct — Private constructor to disallow direct instantiation
    • mysqli_warning::next — Récupère le prochain avertissement
  • mysqli_sql_exception — La classe mysqli_sql_exception
    • mysqli_sql_exception::getSqlState — Returns the SQLSTATE error code
  • Fonctions mysqli obsolètes et alias
    • mysqli_connect — Alias de mysqli::__construct
    • mysqli::escape_string — Alias de mysqli_real_escape_string
    • mysqli_execute — Alias de mysqli_stmt_execute
    • mysqli_get_client_stats — Retourne les statistiques client par processus
    • mysqli_get_links_stats — Retourne des informations sur les liens ouverts et mis en cache
    • mysqli_report — Alias de mysqli_driver->report_mode
    • mysqli::set_opt — Alias de mysqli_options
  • 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é inclus 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 cœur, avec des extensions optionnelles. Les extensions lié à MySQL de PHP, telles que l'extension mysqli et l'extension de pilote PDO MySQL, sont implémentées en utilisant le framework d'extension PHP.

Une extension expose typiquement une API à un développeur 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 développeur 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 développeur PHP.

Quelles sont les API PHP pour MySQL ?

Il y a deux API principales pour se connecter à 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 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

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 développeur 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 développeur PHP.

Pour plus de détails sur le pilote PDO de MySQL, voyez MySQL (PDO).

Qu'est-ce que le pilote natif MySQL de PHP ?

Pour communiquer avec le serveur MySQL, l'extension 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.

L'extension mysqli et le pilote MySQL natif peuvent tout deux être configuré individuellement pour utiliser soit libmysqlclient soit 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.

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 développeur PHP.

Comparaison des fonctionnalités

La table suivante compare les fonctionnalités des 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)
Version d'introduction en PHP | 5.0 | 5.0
Statut de développement MySQL | Développement actif | Développement actif
L'API supporte les jeux de caractères | Oui | Oui
L'API supporte les commandes préparées | Oui | Oui
L'API supporte les commandes préparées coté client | Non | Oui
L'API supporte les procédures stockées | Oui | Oui
L'API supporte les commandes multiples | Oui | La plupart
Toutes toutes les fonctionnalités MySQL 4.1 et plus récent | Oui | La plupart


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 prenait 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");
$result = mysqli_query($mysqli, "SELECT 'Please do not use the deprecated mysql extension for new development. ' AS _msg FROM DUAL");
$row = mysqli_fetch_assoc($result);
echo $row['_msg'];

$mysql = mysql_connect("example.com", "user", "password");
mysql_select_db("test");
$result = mysql_query("SELECT 'Use the mysqli extension instead.' AS _msg FROM DUAL", $mysql);
$row = mysql_fetch_assoc($result);
echo $row['_msg'];

L'exemple ci-dessus va afficher :

Please do not use the deprecated mysql extension for new development. Use the mysqli extension instead.

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");
$result = mysqli_query($mysqli, "SELECT 'A world full of ' AS _msg FROM DUAL");
$row = mysqli_fetch_assoc($result);
echo $row['_msg'];

$mysqli = new mysqli("example.com", "user", "password", "database");
$result = $mysqli->query("SELECT 'choices to please everybody.' AS _msg FROM DUAL");
$row = $result->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 clarté et de style de codage.

Exemple #3 Mauvais style de codage

<?php

$mysqli = new mysqli("example.com", "user", "password", "database");
$result = mysqli_query($mysqli, "SELECT 'Possible but bad style.' AS _msg FROM DUAL");

if ($row = $result->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. Pour ouvrir une connexion TCP/IP sur l'hôte local, 127.0.0.1 doit être utilisé au lieu de localhost.

Exemple #1 Signification spéciale de localhost

<?php

$mysqli = new mysqli("localhost", "user", "password", "database");

echo $mysqli->host_info . "\n";

$mysqli = new mysqli("127.0.0.1", "user", "password", "database", 3306);

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 demander 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() ou mysqli::__construct(), définition 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 persistantes 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 persistante. 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 persistantes

Si une connexion persistante 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 persistantes 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 persistantes 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 persistantes 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 persistante : statut persistant, et un statut réinitialisé avant ré-utilisation. Par défaut, il sera réinitialisé. Avant qu'une connexion persistante ne soit réutilisée, l'extension mysqli appelle implicitement la fonction mysqli::change_user() pour réinitialiser le statut. La connexion persistante 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_init()
  • mysqli::__construct()
  • mysqli::options()
  • mysqli::real_connect()
  • mysqli::change_user()
  • $mysqli::host_info
  • Les options de configuration MySQLi
  • Les connexions persistantes 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 requête 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 Exécution des requêtes

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");

Jeux de résultats en mémoire tampon

Après exécution de la requête, les résultats peuvent être intégralement récupérés en une fois 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_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

$result = $mysqli->query("SELECT id FROM test ORDER BY id ASC");

echo "Ordre inversé...\n";
for ($row_no = $result->num_rows - 1; $row_no >= 0; $row_no--) {
$result->data_seek($row_no);
$row = $result->fetch_assoc();
echo " id = " . $row['id'] . "\n";
}

echo "Ordre du jeu de résultats...\n";
foreach ($result as $row) {
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");
$result = $mysqli->use_result();

echo "Ordre du jeu de résultats...\n";
foreach ($result as $row) {
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_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$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')");

$result = $mysqli->query("SELECT id, label FROM test WHERE id = 1");
$row = $result->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_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$mysqli = new mysqli();
$mysqli->options(MYSQLI_OPT_INT_AND_FLOAT_NATIVE, 1);
$mysqli->real_connect("example.com", "user", "password", "database");

$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')");

$result = $mysqli->query("SELECT id, label FROM test WHERE id = 1");
$row = $result->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::options()
  • mysqli::real_connect()
  • mysqli::query()
  • mysqli::multi_query()
  • mysqli::use_result()
  • mysqli::store_result()


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é et protège des injections SQL.

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 ?.

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 exécute l'instruction avec les valeurs liées en utilisant les ressources internes précédemment créées.

Exemple #1 Première étape : la préparation

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

// Requête non préparée
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT, label TEXT)");

// Requête préparée, étape 1 : préparation
$stmt = $mysqli->prepare("INSERT INTO test(id, label) VALUES (?, ?)");

// Requête préparée, étape 2 : lie les valeurs et exécute la requête
$id = 1;
$label = 'PHP';
$stmt->bind_param("is", $id, $label); // "is" means that $id is bound as an integer and $label as a string

$stmt->execute();

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 #2 Requête de type INSERT préparée une seule fois, et exécutée plusieurs fois

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

// Requête non préparée
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT, label TEXT)");

// Requête préparée, étape 1 : la préparation
if (!($stmt = $mysqli->prepare("INSERT INTO test(id) VALUES (?)"))) {
echo "Échec 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;
$stmt->bind_param("is", $id, $label); // "is" means that $id is bound as an integer and $label as a string

$data = [
1 => 'PHP',
2 => 'Java',
3 => 'C++'
];

foreach ($data as $id => $label) {
$stmt->execute();
}

$result = $mysqli->query('SELECT id, label FROM test');
var_dump($result->fetch_all(MYSQLI_ASSOC));

L'exemple ci-dessus va afficher :

array(3) {
  array(2) {
    ["id"]=>
    string(1) "1"
    ["label"]=>
    string(3) "PHP"
  }
  [1]=>
  array(2) {
    ["id"]=>
    string(1) "2"
    ["label"]=>
    string(4) "Java"
  }
  [2]=>
  array(2) {
    ["id"]=>
    string(1) "3"
    ["label"]=>
    string(3) "C++"
  }
}

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-INSERTs requièrent moins d'aller-retour client-serveur que la requête préparée vue dans l'exemple ci-dessus.

Exemple #3 Moins d'aller-retour en utilisant les multi-INSERTs SQL

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");

$values = [1, 2, 3, 4];

$stmt = $mysqli->prepare("INSERT INTO test(id) VALUES (?), (?), (?), (?)");
$stmt->bind_param('iiii', ...$values);
$stmt->execute();

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 sérialisés en chaînes de caractères avant envoi. La bibliothèque cliente reçoit des données binaires et tente de convertir les valeurs en 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 #4 Types de données natifs

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

// Requête non préparée
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT, label TEXT)");
$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'PHP')");

$stmt = $mysqli->prepare("SELECT id, label FROM test WHERE id = 1");
$stmt->execute();
$result = $stmt->get_result();
$row = $result->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 = PHP (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 #5 Liage des variables de sortie

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

// Requête non préparée
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT, label TEXT)");
$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'PHP')");

$stmt = $mysqli->prepare("SELECT id, label FROM test WHERE id = 1");
$stmt->execute();

$stmt->bind_result($out_id, $out_label);

$out_id = NULL;
$out_label = NULL;
if (!$stmt->bind_result($out_id, $out_label)) {
echo "Échec 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 #6 Utilisation de mysqli_result pour récupérer les résultats

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

// Requête non préparée
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT, label TEXT)");
$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'PHP')");

$stmt = $mysqli->prepare("SELECT id, label FROM test WHERE id = 1");
$stmt->execute();

$result = $stmt->get_result();

var_dump($result->fetch_all(MYSQLI_ASSOC));

L'exemple ci-dessus va afficher :

array(1) {
  [0]=>
  array(2) {
    ["id"]=>
    int(1)
    ["label"]=>
    string(3) "PHP"
  }
}

L'utilisation de l'interface mysqli_result offre d'autres avantages d'un point de vue flexibilité dans la navigation dans le jeu de résultats côté client.

Exemple #7 Jeu de résultats mis en mémoire tampon pour plus de flexibilité dans la lecture

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

// Requête non préparée
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT, label TEXT)");
$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'PHP'), (2, 'Java'), (3, 'C++')");

$stmt = $mysqli->prepare("SELECT id, label FROM test");
$stmt->execute();

$result = $stmt->get_result();

for ($row_no = $result->num_rows - 1; $row_no >= 0; $row_no--) {
$result->data_seek($row_no);
var_dump($result->fetch_assoc());
}

L'exemple ci-dessus va afficher :

array(2) {
  ["id"]=>
  int(3)
  ["label"]=>
  string(1) "C++"
}
array(2) {
  ["id"]=>
  int(2)
  ["label"]=>
  string(1) "Java"
}
array(2) {
  ["id"]=>
  int(1)
  ["label"]=>
  string(1) "PHP"
}

Échappement 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 fonctionnalité 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.

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ée.

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_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");

$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;");

$mysqli->query("CALL p(1)");

$result = $mysqli->query("SELECT id FROM test");

var_dump($result->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_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$mysqli->query("DROP PROCEDURE IF EXISTS p");
$mysqli->query('CREATE PROCEDURE p(OUT msg VARCHAR(50)) BEGIN SELECT "Hi!" INTO msg; END;');

$mysqli->query("SET @msg = ''");
$mysqli->query("CALL p(@msg)");

$result = $mysqli->query("SELECT @msg as _p_out");

$row = $result->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 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_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

$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;');

$mysqli->multi_query("CALL p()");

do {
if ($res = $mysqli->store_result()) {
var_dump($result->fetch_all());
$result->free();
}
} while ($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_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
echo "Échec lors de la connexion à MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

$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;');

$stmt = $mysqli->prepare("CALL p()");

if (!$stmt->execute()) {
echo "Échec lors de l'exécution : (" . $stmt->errno . ") " . $stmt->error;
}

do {
if ($result = $stmt->get_result()) {
var_dump($result->fetch_all());
$result->free();
}
} while ($stmt->next_results());

L'exemple ci-dessus va afficher :

---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    int(1)
  }
  [1]=>
  array(1) {
    [0]=>
    int(2)
  }
  [2]=>
  array(1) {
    [0]=>
    int(3)
  }
}
---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    int(2)
  }
  [1]=>
  array(1) {
    [0]=>
    int(3)
  }
  [2]=>
  array(1) {
    [0]=>
    int(4)
  }
}

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

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

$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;');

$stmt = $mysqli->prepare("CALL p()");

$stmt->execute();

do {
if ($stmt->store_result()) {
$stmt->bind_result($id_out);
while ($stmt->fetch()) {
echo "id = $id_out\n";
}
}
} while ($stmt->next_result());

L'exemple ci-dessus va afficher :

id = 1
id = 2
id = 3
id = 2
id = 3
id = 4

Voir aussi

  • mysqli::query()
  • mysqli::multi_query()
  • mysqli::next_result()
  • mysqli::more_results()


Requêtes multiples

MySQL autorise optionnellement le fait d'avoir plusieurs requêtes dans une seule chaîne de requête mais nécessite une gestion spéciale.

Les requêtes multiples ou multirequê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_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");

$sql = "SELECT COUNT(*) AS _num FROM test;
INSERT INTO test(id) VALUES (1);
SELECT COUNT(*) AS _num FROM test; ";

$mysqli->multi_query($sql);

do {
if ($result = $mysqli->store_result()) {
var_dump($result->fetch_all(MYSQLI_ASSOC));
$result->free();
}
} while ($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 multirequêtes sur le serveur. Un appel supplémentaire à l'API est utilisé pour les multirequê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_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");
$result = $mysqli->query("SELECT 1; DROP TABLE mysql.user");

L'exemple ci-dessus va afficher :

PHP Fatal error:  Uncaught mysqli_sql_exception: 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 autocommit et pour valider et annuler les transactions.

Exemple #1 Définir le mode autocommit via SQL ou via l'API

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

// 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
$mysqli->query('SET AUTOCOMMIT = 0');

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 autocommit, pour valider ou annuler une transaction.

Exemple #2 Validation et annulation d'une transaction

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$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::begin_transaction()
  • mysqli::commit()
  • mysqli::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 "Échec 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

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("example.com", "user", "password", "database");

$stmt = $mysqli->prepare("SELECT 1 AS _one, 'Hello' AS _two FROM DUAL");
$stmt->execute();

$result = $stmt->result_metadata();
var_dump($result->fetch_fields());

Voir aussi

  • mysqli::query()
  • mysqli_result::fetch_fields()


Pré-requis

Pour que ces fonctions soient disponibles, vous devez compiler PHP avec le support de l'extension mysqli.

MySQL 8

Si PHP est utilisé antérieur à sa version 7.1.16, ou PHP 7.2 antérieur à 7.2.4, le plugin de mot de passe doit être définit à mysql_native_password pour MySQL 8 Server car sinon des erreurs similaire à The server requested authentication method unknown to the client [caching_sha2_password] peuvent apparaitre même si caching_sha2_password n'est pas utilisé.

Ceci est due au fait que MySQL 8 utilise par défaut caching_sha2_password, un plugin qui n'est pas reconnu par les anciennes versions de PHP (mysqlnd). À la place il faut modifier le paramètre default_authentication_plugin=mysql_native_password dans my.cnf. Le plugin caching_sha2_password est pleinement supporté à partir de PHP 7.4.4. Pour les versions antérieures, l'extension mysql_xdevapi le supporte.


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, les bibliothèques clientes doivent souvent être installées au moyen d'un paquet additionnel. Voyez si c'est le cas pour votre distribution.

Par exemple, sur Ubuntu le package php5-mysql installe les extensions PHP ext/mysql, ext/mysqli, et pdo_mysqls. Sur CentOS, le package php-mysql installe aussi ces trois extensions PHP.

Alternativement, vous pouvez compiler cette extension vous-même. Construire PHP depuis les sources permet de préciser les extensions MySQL à embarquer, mais aussi les bibliothèques clientes de chaque extension.

Le driver natif MySQL est la bibliothèque client 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.4.x et ultérieur | mysqlnd | --with-mysqli | --with-mysqli=/path/to/mysql_config | mysqlnd par défaut
5.3.x | libmysqlclient | --with-mysqli=mysqlnd | --with-mysqli=/path/to/mysql_config | mysqlnd est supporté
5.0.x, 5.1.x, 5.2.x | libmysqlclient | Indisponible | --with-mysqli=/path/to/mysql_config | mysqlnd n'est pas supporté

Il est à noter qu'il est possible de mélanger 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.

Installation sur les systèmes Windows

Sur Windows, la DLL php_mysqli.dll doit être activée dans le fichier php.ini.

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.


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 | "0" | INI_SYSTEM | Antérieur à PHP 7.2.16 et 7.3.3 la valeur par défaut était "1".
mysqli.local_infile_directory |  | INI_SYSTEM | Disponible à partir de PHP 8.1.0.
mysqli.allow_persistent | "1" | INI_SYSTEM |
mysqli.max_persistent | "-1" | INI_SYSTEM |
mysqli.max_links | "-1" | INI_SYSTEM |
mysqli.default_port | "3306" | INI_ALL |
mysqli.default_socket | NULL | INI_ALL |
mysqli.default_host | NULL | INI_ALL |
mysqli.default_user | NULL | INI_ALL |
mysqli.default_pw | NULL | INI_ALL |
mysqli.reconnect | "0" | INI_SYSTEM | Supprimée à partir de PHP 8.2.0
mysqli.rollback_on_cached_plink | "0" | INI_SYSTEM |
Pour plus de détails sur les modes INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Pour plus de détails et de définitions concernant les constantes 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 int

Autorise l'accès, depuis PHP, aux fichiers locaux chargés avec LOAD DATA

mysqli.local_infile_directory string

Autorise un chargement restreint LOCAL DATA vers des fichiers se trouvant dans le dossier désigné.

mysqli.allow_persistent int

Active la possibilité de créer des connexions persistantes en utilisant la fonction mysqli_connect().

mysqli.max_persistent int

Nombre maximal de connexions persistantes pouvant être réalisé. Définir à 0 pour "illimité".

mysqli.max_links int

Le nombre maximal de connexions MySQL par processus, incluant les connexions persistantes.

mysqli.default_port int

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.

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.

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.

mysqli.reconnect int

Reconnexion automatique si la connexion est interrompue.

Note: Cette directive php.ini avait été ignorée par le pilote mysqlnd et a été supprimée à partir de PHP 8.2.0.

mysqli.rollback_on_cached_plink bool

Si cette option est activée, la fermeture d'une connexion permanente annule toutes les transactions en attente de cette connexion avant d'être replacée dans le pool de connexions persistantes. Sinon, les transactions en attente seront restaurées uniquement lorsque la connexion est réutilisée ou lorsqu'elle est réellement fermée.

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

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 (int)

Lit les options dans le groupe my.cnf ou dans le fichier spécifié par MYSQLI_READ_DEFAULT_FILE

MYSQLI_READ_DEFAULT_FILE (int)

Lit les options dans le fichier spécifié, plutôt que dans my.cnf

MYSQLI_OPT_CONNECT_TIMEOUT (int)

Durée d'expiration de la connexion, en secondes

MYSQLI_OPT_READ_TIMEOUT (int)

Résultat d'exécution durée d'expiration d'une commande en secondes. Disponible à partir de PHP 7.2.0.

MYSQLI_OPT_LOCAL_INFILE (int)

Active la commande LOAD LOCAL INFILE

MYSQLI_OPT_INT_AND_FLOAT_NATIVE (int)

Convertie les colonnes de type entier et nombre à virgule flottante en nombres PHP. Seulement valide pour mysqlnd.

MYSQLI_OPT_NET_CMD_BUFFER_SIZE (int)

La taille du buffer interne command/network. Seulement valide pour mysqlnd.

MYSQLI_OPT_NET_READ_BUFFER_SIZE (int)

Taille en octets de la portion maximale à lire, lors de la lecture du corps d'un packet de commande MySQL. Seulement valide pour mysqlnd.

MYSQLI_OPT_SSL_VERIFY_SERVER_CERT (int)

Requiert MySQL 5.1.10 ou ultérieur.

MYSQLI_INIT_COMMAND (int)

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 (int)

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 (int)

Utilise le protocole compressé

MYSQLI_CLIENT_INTERACTIVE (int)

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 (int)

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 (int)

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 (int)

Pour les résultats mis en tampon. Elle a une valeur de 0.

MYSQLI_USE_RESULT (int)

Pour les résultats non-mis en tampon. Elle a une valeur de 1.

MYSQLI_ASSOC (int)

Les colonnes sont retournées dans le tableau, avec leurs noms comme index.

MYSQLI_NUM (int)

Les colonnes sont retournées dans le tableau, avec leurs numéros comme index.

MYSQLI_BOTH (int)

Les colonnes sont retournées dans le tableau, avec leurs noms et leurs numéros comme index.

MYSQLI_NOT_NULL_FLAG (int)

Indique qu'un champ est défini comme NOT NULL

MYSQLI_PRI_KEY_FLAG (int)

Le champ est une clé primaire

MYSQLI_UNIQUE_KEY_FLAG (int)

Le champ est un index unique

MYSQLI_MULTIPLE_KEY_FLAG (int)

Le champ fait partie d'un index

MYSQLI_BLOB_FLAG (int)

Le champ est de type BLOB

MYSQLI_UNSIGNED_FLAG (int)

Le champ est de type UNSIGNED

MYSQLI_ZEROFILL_FLAG (int)

Le champ est de type ZEROFILL

MYSQLI_AUTO_INCREMENT_FLAG (int)

Le champ est de type AUTO_INCREMENT

MYSQLI_TIMESTAMP_FLAG (int)

Le champ est de type TIMESTAMP

MYSQLI_SET_FLAG (int)

Le champ est de type SET

MYSQLI_NUM_FLAG (int)

Le champ est de type NUMERIC

MYSQLI_PART_KEY_FLAG (int)

Le champ fait partie d'un index multiple

MYSQLI_GROUP_FLAG (int)

Le champ fait partie de la clause GROUP BY

MYSQLI_TYPE_DECIMAL (int)

Le champ est de type DECIMAL

MYSQLI_TYPE_NEWDECIMAL (int)

Le champ est de type DECIMAL ou NUMERIC (MySQL 5.0.3 et supérieur)

MYSQLI_TYPE_BIT (int)

Le champ est de type BIT (MySQL 5.0.3 et supérieur)

MYSQLI_TYPE_TINY (int)

Le champ est de type TINYINT

MYSQLI_TYPE_SHORT (int)

Le champ est de type SMALLINT

MYSQLI_TYPE_LONG (int)

Le champ est de type INT

MYSQLI_TYPE_FLOAT (int)

Le champ est de type FLOAT

MYSQLI_TYPE_DOUBLE (int)

Le champ est de type DOUBLE

MYSQLI_TYPE_NULL (int)

Le champ est de type DEFAULT NULL

MYSQLI_TYPE_TIMESTAMP (int)

Le champ est de type TIMESTAMP

MYSQLI_TYPE_LONGLONG (int)

Le champ est de type BIGINT

MYSQLI_TYPE_INT24 (int)

Le champ est de type MEDIUMINT

MYSQLI_TYPE_DATE (int)

Le champ est de type DATE

MYSQLI_TYPE_TIME (int)

Le champ est de type TIME

MYSQLI_TYPE_DATETIME (int)

Le champ est de type DATETIME

MYSQLI_TYPE_YEAR (int)

Le champ est de type YEAR

MYSQLI_TYPE_NEWDATE (int)

Le champ est de type DATE

MYSQLI_TYPE_INTERVAL (int)

Le champ est de type INTERVAL

MYSQLI_TYPE_ENUM (int)

Le champ est de type ENUM

MYSQLI_TYPE_SET (int)

Le champ est de type SET

MYSQLI_TYPE_TINY_BLOB (int)

Le champ est de type TINYBLOB

MYSQLI_TYPE_MEDIUM_BLOB (int)

Le champ est de type MEDIUMBLOB

MYSQLI_TYPE_LONG_BLOB (int)

Le champ est de type LONGBLOB

MYSQLI_TYPE_BLOB (int)

Le champ est de type BLOB

MYSQLI_TYPE_VAR_STRING (int)

Le champ est de type VARCHAR

MYSQLI_TYPE_STRING (int)

Le champ est de type STRING ou BINARY

MYSQLI_TYPE_CHAR (int)

Le champ est de type TINYINT. Pour CHAR, voir MYSQLI_TYPE_STRING

MYSQLI_TYPE_GEOMETRY (int)

Le champ est de type GEOMETRY

MYSQLI_TYPE_JSON (int)

Le champ est de type JSON. Uniquement valide pour mysqlnd et MySQL 5.7.8 et ultérieur.

MYSQLI_NEED_DATA

Il reste des variables à relier

MYSQLI_NO_DATA (int)

Il n'y a plus de variables à relier

MYSQLI_DATA_TRUNCATED (int)

Les données ont été tronquées. Disponible à partir de MySQL 5.0.5.

MYSQLI_ENUM_FLAG (int)

Le champ est défini comme ENUM.

MYSQLI_BINARY_FLAG (int)

Le champ est défini comme BINARY.

MYSQLI_CURSOR_TYPE_FOR_UPDATE (int)

MYSQLI_CURSOR_TYPE_NO_CURSOR (int)

MYSQLI_CURSOR_TYPE_READ_ONLY (int)

MYSQLI_CURSOR_TYPE_SCROLLABLE (int)

MYSQLI_STMT_ATTR_CURSOR_TYPE (int)

MYSQLI_STMT_ATTR_PREFETCH_ROWS (int)

MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH (int)

MYSQLI_SET_CHARSET_NAME (int)

MYSQLI_REPORT_INDEX (int)

Rapporte si un mauvais index ou aucun index n'est utilisé dans une requête.

MYSQLI_REPORT_ERROR (int)

Rapporte les erreurs depuis des appels aux fonctions mysqli.

MYSQLI_REPORT_STRICT (int)

Lance une exception mysqli_sql_exception pour les erreurs au lieu d'alertes.

MYSQLI_REPORT_ALL (int)

Active toutes les options.

MYSQLI_REPORT_OFF (int)

Désactive toutes les options.

MYSQLI_DEBUG_TRACE_ENABLED (int)

Définit à 1 si la fonctionnalité mysqli_debug() est désactivée.

MYSQLI_SERVER_QUERY_NO_GOOD_INDEX_USED (int)

MYSQLI_SERVER_QUERY_NO_INDEX_USED (int)

MYSQLI_SERVER_PUBLIC_KEY (int)

MYSQLI_REFRESH_GRANT (int)

Rafraîchie les tables GRANT.

MYSQLI_REFRESH_LOG (int)

Vide les logs, identique à exécuter la requête SQL FLUSH LOGS.

MYSQLI_REFRESH_TABLES (int)

Vide le cache des tables, identique à exécuter la requête SQL FLUSH TABLES.

MYSQLI_REFRESH_HOSTS (int)

Vide le cache des hôtes, identique à exécuter la requête SQL FLUSH HOSTS.

MYSQLI_REFRESH_REPLICA (int)

Alias de la constante MYSQLI_REFRESH_SLAVE. Disponible à partir de PHP 8.1.0.

MYSQLI_REFRESH_STATUS (int)

Réinitialise le statut des variables, identique à exécuter la requête SQL FLUSH STATUS.

MYSQLI_REFRESH_THREADS (int)

Vide le cache des threads.

MYSQLI_REFRESH_SLAVE (int)

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 (int)

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 (int)

Ajout de "AND CHAIN" à mysqli_commit() ou mysqli_rollback().

MYSQLI_TRANS_COR_AND_NO_CHAIN (int)

Ajout de "AND NO CHAIN" à mysqli_commit() ou mysqli_rollback().

MYSQLI_TRANS_COR_RELEASE (int)

Ajout de "RELEASE" à mysqli_commit() ou mysqli_rollback().

MYSQLI_TRANS_COR_NO_RELEASE (int)

Ajout de "NO RELEASE" à mysqli_commit() ou mysqli_rollback().

MYSQLI_TRANS_START_READ_ONLY (int)

Débute la transaction en tant que "START TRANSACTION READ ONLY" avec mysqli_begin_transaction().

MYSQLI_TRANS_START_READ_WRITE (int)

Débute la transaction en tant que "START TRANSACTION READ WRITE" avec mysqli_begin_transaction().

MYSQLI_TRANS_START_CONSISTENT_SNAPSHOT

Débute la transaction en tant que "START TRANSACTION WITH CONSISTENT SNAPSHOT" avec mysqli_begin_transaction().

MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT (int)

Requiert MySQL 5.6.5 ou ultérieur.

MYSQLI_IS_MARIADB (bool)

Si l'extension mysqli a été construite contre une bibliothèque client MariaDB. Disponible à partir de PHP 8.1.2.


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.


  • « Notes
  • mysqli »
  • PHP Manual
  • 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_character_set_name() | N/A() | 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
N/A | mysqli_get_client_stats() | N/A | Retourne les statistiques du client MySQL. Disponible uniquement avec mysqlnd.
mysqli::get_server_info() | mysqli_get_server_info() | N/A | Retourne une chaîne représentant la version du serveur MySQL sur laquelle l'extension MySQLi est connectée
mysqli::get_warnings() | mysqli_get_warnings() | N/A | Non documenté
mysqli::init() | mysqli_init() | N/A | Initialise MySQLi et retourne un objet à 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::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() | N/A | 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() | N/A | Lie des variables à une requête MySQL
mysqli_stmt::bind_result() | mysqli_stmt_bind_result() | N/A | 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() | N/A | 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 | Vérifie s'il y a plus de résultats de requête à partir d'une requête multiple
mysqli_stmt::next_result() | mysqli_stmt_next_result() | N/A | Lit le résultat suivant à partir d'une requête multiple
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() | N/A | Retourne les métadonnées de préparation de requête MySQL
mysqli_stmt::send_long_data() | mysqli_stmt_send_long_data() | N/A | 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_column() | mysqli_fetch_column() | N/A | Récupère une seule colonne de la ligne suivante d'un ensemble de résultats
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 champ 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
$mysqli_driver::mysqli_report | mysqli_report() | N/A | Définit le mode du rapport d'erreur de mysqli
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 fournis pour assurer la compatibilité ascendante. Ne les utilisez pas dans de nouveaux projets.


La classe mysqli

(PHP 5, PHP 7, PHP 8)

Introduction

Représente une connexion entre PHP et une base de données MySQL.

Synopsis de la classe

class mysqli {
/* Propriétés */
public readonly int|string $affected_rows;
public readonly string $client_info;
public readonly int $client_version;
public readonly int $connect_errno;
public readonly ?string $connect_error;
public readonly int $errno;
public readonly string $error;
public readonly array $error_list;
public readonly int $field_count;
public readonly string $host_info;
public readonly ?string $info;
public readonly int|string $insert_id;
public readonly string $server_info;
public readonly int $server_version;
public readonly string $sqlstate;
public readonly int $protocol_version;
public readonly int $thread_id;
public readonly int $warning_count;
/* Méthodes */
public __construct(
?string $hostname = null,
?string $username = null,
?string $password = null,
?string $database = null,
?int $port = null,
?string $socket = null
)
public autocommit(bool $enable): bool
public begin_transaction(int $flags = 0, ?string $name = null): bool
public change_user(string $username, string $password, ?string $database): bool
public character_set_name(): string
public close(): true
public commit(int $flags = 0, ?string $name = null): bool
public connect(
?string $hostname = null,
?string $username = null,
?string $password = null,
?string $database = null,
?int $port = null,
?string $socket = null
): bool
public debug(string $options): true
public dump_debug_info(): bool
public execute_query(string $query, ?array $params = null): mysqli_result|bool
public get_charset(): ?object
public get_client_info(): string
public get_connection_stats(): array
public get_server_info(): string
public get_warnings(): mysqli_warning|false
public init(): ?bool
public kill(int $process_id): bool
public more_results(): bool
public multi_query(string $query): bool
next_result(): bool
public options(int $option, string|int $value): bool
public ping(): bool
public static poll(
?array &$read,
?array &$error,
array &$reject,
int $seconds,
int $microseconds = 0
): int|false
public prepare(string $query): mysqli_stmt|false
public query(string $query, int $result_mode = MYSQLI_STORE_RESULT): mysqli_result|bool
public real_connect(
?string $hostname = null,
?string $username = null,
?string $password = null,
?string $database = null,
?int $port = null,
?string $socket = null,
int $flags = 0
): bool
public real_escape_string(string $string): string
public real_query(string $query): bool
public reap_async_query(): mysqli_result|bool
public refresh(int $flags): bool
public release_savepoint(string $name): bool
public rollback(int $flags = 0, ?string $name = null): bool
public savepoint(string $name): bool
public select_db(string $database): bool
public set_charset(string $charset): bool
public ssl_set(
?string $key,
?string $certificate,
?string $ca_certificate,
?string $ca_path,
?string $cipher_algos
): true
public stat(): string|false
public stmt_init(): mysqli_stmt|false
public store_result(int $mode = 0): mysqli_result|false
public thread_safe(): bool
public use_result(): mysqli_result|false
}

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::close — Ferme une connexion
  • mysqli::commit — Valide la transaction courante
  • mysqli::$connect_errno — Retourne le code d'erreur du dernier appel de connexion
  • mysqli::$connect_error — Retourne une description de la dernière erreur de connexion
  • mysqli::__construct — Ouvre une connexion à un serveur MySQL
  • mysqli::debug — Effectue des actions de débogage
  • mysqli::dump_debug_info — Écrit les informations de débogage 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::execute_query — Prepares, binds parameters, and executes SQL statement
  • 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::$client_info — Récupère des informations sur le client MySQL
  • mysqli::$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 un objet à utiliser avec mysqli_real_connect()
  • mysqli::$insert_id — Retourne la valeur généré pour une colonne AUTO_INCREMENT 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 ou plusieurs requêtes sur la base de donnée
  • 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::savepoint — Définit 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::set_charset — Définit le jeu de caractères du client
  • 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, PHP 8)

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|string $mysqli->affected_rows;

Style procédural

mysqli_affected_rows(mysqli $mysql): int|string

Retourne le nombre de lignes affectées par la dernière requête INSERT, UPDATE, REPLACE ou DELETE associée au paramètre link.

Fonctionne comme mysqli_num_rows() pour les requêtes SELECT.

Liste de paramètres

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou 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 ou que mysqli_affected_rows() a été appelé sur une requête SELECT non-tampon.

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_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* 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);

/* Delete table Language */
$mysqli->query("DROP TABLE Language");
?>

Style procédural

<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* 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));

/* Effacement de la table "language" */
mysqli_query($link, "DROP TABLE Language");
?>

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 le jeu de résultats
  • 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, PHP 8)

mysqli::autocommit -- mysqli_autocommit — Active ou désactive le mode auto-commit

Description

Style orienté objet

public mysqli::autocommit(bool $enable): bool

Style procédural

mysqli_autocommit(mysqli $mysql, bool $enable): bool

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

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou mysqli_init().

enable

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.

Erreurs / Exceptions

Si le rapport d'erreurs mysqli est activé (MYSQLI_REPORT_ERROR) et que l'opération demandée échoue, un avertissement est généré. Si, en plus, le mode est défini sur MYSQLI_REPORT_STRICT, une mysqli_sql_exception est lancée à la place.

Exemples

Exemple #1 Exemple avec mysqli::autocommit()

Style orienté objet

<?php

/* Demande à mysqli de lancer une exception si une erreur survient */
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Le moteur de table supporte les transactions */
$mysqli->query("CREATE TABLE IF NOT EXISTS language (
Code text NOT NULL,
Speakers int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;");

/* Désactive l'autocommit */
$mysqli->autocommit(false);

$result = $mysqli->query("SELECT @@autocommit");
$row = $result->fetch_row();
printf("L'Autocommit vaut %s\n", $row[0]);

try {
/* Prépare une requête d'insertion */
$stmt = $mysqli->prepare('INSERT INTO language(Code, Speakers) VALUES (?,?)');
$stmt->bind_param('ss', $language_code, $native_speakers);

/* Insère plusieurs valeurs */
$language_code = 'DE';
$native_speakers = 50_123_456;
$stmt->execute();
$language_code = 'FR';
$native_speakers = 40_546_321;
$stmt->execute();

/* Commit les données dans la base de données. Ceci n'active pas l'autocommit */
$mysqli->commit();
print "Validation de 2 lignes dans la base de données\n";

$result = $mysqli->query("SELECT @@autocommit");
$row = $result->fetch_row();
printf("L'autocommit vaut %s\n", $row[0]);

/* Tente d'insérer plusieurs valeurs */
$language_code = 'PL';
$native_speakers = 30_555_444;
$stmt->execute();
$language_code = 'DK';
$native_speakers = 5_222_444;
$stmt->execute();

/* Le fait de définir autocommit=true va déclencher le commit */
$mysqli->autocommit(true);

print "Validation de 2 lignes dans la base de données\n";
} catch (mysqli_sql_exception $exception) {
$mysqli->rollback();

throw $exception;
}

Style procédural

<?php

/* Demande à mysqli de lancer une exception si une erreur survient */
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Le moteur de table supporte les transactions */
mysqli_query($mysqli, "CREATE TABLE IF NOT EXISTS language (
Code text NOT NULL,
Speakers int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;");

/* Désactive l'autocommit */
mysqli_autocommit($mysqli, false);

$result = mysqli_query($mysqli, "SELECT @@autocommit");
$row = mysqli_fetch_row($result);
printf("L'Autocommit vaut %s\n", $row[0]);

try {
/* Prépare une requête d'insertion */
$stmt = mysqli_prepare($mysqli, 'INSERT INTO language(Code, Speakers) VALUES (?,?)');
mysqli_stmt_bind_param($stmt, 'ss', $language_code, $native_speakers);

/* Insère plusieurs valeurs */
$language_code = 'DE';
$native_speakers = 50_123_456;
mysqli_stmt_execute($stmt);
$language_code = 'FR';
$native_speakers = 40_546_321;
mysqli_stmt_execute($stmt);

/* Commit les données dans la base de données. Ceci n'active pas l'autocommit */
mysqli_commit($mysqli);
print "Validation de 2 lignes dans la base de données\n";

$result = mysqli_query($mysqli, "SELECT @@autocommit");
$row = mysqli_fetch_row($result);
printf("L'autocommit vaut %s\n", $row[0]);

/* Tente d'insérer plusieurs valeurs */
$language_code = 'PL';
$native_speakers = 30_555_444;
mysqli_stmt_execute($stmt);
$language_code = 'DK';
$native_speakers = 5_222_444;
mysqli_stmt_execute($stmt);

/* Le fait de définir autocommit=true va déclencher le commit */
mysqli_autocommit($mysqli, true);

print "Validation de 2 lignes dans la base de données\n";
} catch (mysqli_sql_exception $exception) {
mysqli_rollback($mysqli);

throw $exception;
}

Les exemples ci-dessus vont afficher :

L'autocommit vaut 0
Validation de 2 lignes dans la base de données
L'autocommit vaut 0
Validation de 2 lignes dans la base de données
L'autocommit vaut 0
Validation de 2 lignes dans la base de données
L'autocommit vaut 0
Validation de 2 lignes dans la base de données

Notes

Note:

Cette fonction ne fonctionne pas avec les types de tables non transactionnelles, comme MyISAM ou ISAM.

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, PHP 8)

mysqli::begin_transaction -- mysqli_begin_transaction — Démarre une transaction

Description

Style orienté objet

public mysqli::begin_transaction(int $flags = 0, ?string $name = null): bool

Style procédural:

mysqli_begin_transaction(mysqli $mysql, int $flags = 0, ?string $name = null): bool

Commence une transaction. Nécessite 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

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou mysqli_init().

flags

Les drapeaux valides sont :

  • MYSQLI_TRANS_START_READ_ONLY : Commence la transaction comme "START TRANSACTION READ ONLY". Nécessite MySQL 5.6 ou supérieur.

  • MYSQLI_TRANS_START_READ_WRITE : Commence la transaction comme "START TRANSACTION READ WRITE". Nécessite MySQL 5.6 et supérieur.

  • 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.

Historique

Version | Description
8.0.0 | name est désormais nullable.

Exemples

Exemple #1 Exemple avec mysqli::begin_transaction()

Style orienté objet

<?php

/* Demande à mysqli de lancer une exception si une erreur survient */
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Le moteur de table supporte les transactions */
$mysqli->query("CREATE TABLE IF NOT EXISTS language (
Code text NOT NULL,
Speakers int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;");

/* Démarre la transaction */
$mysqli->begin_transaction();

try {
/* Insère plusieurs valeurs */
$mysqli->query("INSERT INTO language(Code, Speakers) VALUES ('DE', 42000123)");

/* Tente d'insérer de mauvaises valeurs */
$language_code = 'FR';
$native_speakers = 'Unknown';
$stmt = $mysqli->prepare('INSERT INTO language(Code, Speakers) VALUES (?,?)');
$stmt->bind_param('ss', $language_code, $native_speakers);
$stmt->execute();

/* Si le code arrive à ce point sans erreur, alors on commit les données dans
la base de données */
$mysqli->commit();
} catch (mysqli_sql_exception $exception) {
$mysqli->rollback();

throw $exception;
}

Style procédural

<?php

/* Demande à mysqli de lancer une exception si une erreur survient */
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Le moteur de table supporte les transactions */
mysqli_query($mysqli, "CREATE TABLE IF NOT EXISTS language (
Code text NOT NULL,
Speakers int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;");

/* Commence la transaction */
mysqli_begin_transaction($mysqli);

try {
/* Insère plusieurs valeurs */
mysqli_query($mysqli, "INSERT INTO language(Code, Speakers) VALUES ('DE', 42000123)");

/* Tente d'insérer de mauvaises valeurs */
$language_code = 'FR';
$native_speakers = 'Unknown';
$stmt = mysqli_prepare($mysqli, 'INSERT INTO language(Code, Speakers) VALUES (?,?)');
mysqli_stmt_bind_param($stmt, 'ss', $language_code, $native_speakers);
mysqli_stmt_execute($stmt);

/* Si le code arrive à ce point sans erreur, alors on commit les données dans
la base de données */
mysqli_commit($mysqli);
} catch (mysqli_sql_exception $exception) {
mysqli_rollback($mysqli);

throw $exception;
}

Notes

Note:

Cette fonction ne fonctionne pas avec les types de table non transactionnelle (comme MyISAM ou ISAM).

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, PHP 8)

mysqli::change_user -- mysqli_change_user — Change l'utilisateur de la connexion spécifiée

Description

Style orienté objet

public mysqli::change_user(string $username, string $password, ?string $database): bool

Style procédural

mysqli_change_user(
mysqli $mysql,
string $username,
string $password,
?string $database
): bool

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

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou mysqli_init().

username

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.

Erreurs / Exceptions

Si le rapport d'erreurs mysqli est activé (MYSQLI_REPORT_ERROR) et que l'opération demandée échoue, un avertissement est généré. Si, en plus, le mode est défini sur MYSQLI_REPORT_STRICT, une mysqli_sql_exception est lancée à la place.

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

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.

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::close »
  • 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, PHP 8)

mysqli::character_set_name -- mysqli_character_set_name — Retourne le jeu de caractères courant pour la connexion

Description

Style orienté objet

public mysqli::character_set_name(): string

Style procédural

mysqli_character_set_name(mysqli $mysql): string

Retourne le jeu de caractères courant pour la connexion spécifiée par le paramètre link.

Liste de paramètres

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou mysqli_init().

Valeurs de retour

Le jeu de caractères courant pour la connexion courante.

Exemples

Exemple #1 mysqli::character_set_name() example

Style orienté objet

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Set the default character set */
$mysqli->set_charset('utf8mb4');

/* Print current character set */
$charset = $mysqli->character_set_name();
printf("Current character set is %s\n", $charset);

Style procédural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Set the default character set */
mysqli_set_charset($mysqli, 'utf8mb4');

/* Print current character set */
$charset = mysqli_character_set_name($mysqli);
printf("Current character set is %s\n", $charset);

Les exemples ci-dessus vont afficher :

Current character set is utf8mb4

Voir aussi

  • mysqli_set_charset() - Définit le jeu de caractères du client
  • 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


Ferme une connexion

  • « mysqli::character_set_name
  • mysqli::commit »
  • PHP Manual
  • mysqli
  • Ferme une connexion

mysqli::close

mysqli_close

(PHP 5, PHP 7, PHP 8)

mysqli::close -- mysqli_close — Ferme une connexion

Description

Style orienté objet

public mysqli::close(): true

Style procédural

mysqli_close(mysqli $mysql): true

Ferme la connexion spécifiée par le paramètre link.

Les connexions MySQL non-persistantes et les jeux de résultats seront automatiquement fermé quand leurs objets sont détruit. Explicitement fermer les connexions ouvertes et libérer les jeux de résultats est optionnel. Cependant, c'est une bonne idée de fermer la connexion dès que le script termine de performer toutes ses opérations de base de données, si il a encore beaucoup de traitement à faire après avoir récupéré les résultats.

Liste de paramètres

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou mysqli_init().

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.0.0 | Cette fonction retourne désormais toujours true. Auparavant, elle retourne false en cas d'échec.

Exemples

Exemple #1 mysqli::close() example

Style orienté objet

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$result = $mysqli->query("SELECT Name, CountryCode FROM City ORDER BY ID LIMIT 3");

/* Close the connection as soon as it's no longer needed */
$mysqli->close();

foreach ($result as $row) {
/* Processing of the data retrieved from the database */
}

Style procédural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

$result = mysqli_query($mysqli, "SELECT Name, CountryCode FROM City ORDER BY ID LIMIT 3");

/* Close the connection as soon as it's no longer needed */
mysqli_close($mysqli);

foreach ($result as $row) {
/* Processing of the data retrieved from the database */
}

Notes

Note:

mysqli_close() ne ferme pas les connexions persistantes. Pour plus de détails, voir la page du manuel sur les connexions persistantes.

Voir aussi

  • mysqli::__construct() - Ouvre une connexion à un serveur MySQL
  • mysqli_init() - Initialise MySQLi et retourne un objet à 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, PHP 8)

mysqli::commit -- mysqli_commit — Valide la transaction courante

Description

Style orienté objet

public mysqli::commit(int $flags = 0, ?string $name = null): bool

Style procédural

mysqli_commit(mysqli $mysql, int $flags = 0, ?string $name = null): bool

Valide la transaction courante pour la base de données spécifiée par le paramètre link.

Liste de paramètres

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou 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.

Erreurs / Exceptions

Si le rapport d'erreurs mysqli est activé (MYSQLI_REPORT_ERROR) et que l'opération demandée échoue, un avertissement est généré. Si, en plus, le mode est défini sur MYSQLI_REPORT_STRICT, une mysqli_sql_exception est lancée à la place.

Historique

Version | Description
8.0.0 | name est désormais nullable.

Exemples

Voir l'exemple se trouvant dans la documentation de la méthode mysqli::begin_transaction().

Notes

Note:

Cette fonction ne fonctionne pas avec les types de table non transactionnelle (comme MyISAM ou ISAM).

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éfinit un point de sauvegarde nommé de la transaction


Retourne le code d'erreur du dernier appel de connexion

  • « mysqli::commit
  • mysqli::$connect_error »
  • PHP Manual
  • mysqli
  • Retourne le code d'erreur du dernier appel de connexion

mysqli::$connect_errno

mysqli_connect_errno

(PHP 5, PHP 7, PHP 8)

mysqli::$connect_errno -- mysqli_connect_errno — Retourne le code d'erreur du dernier appel de connexion

Description

Style orienté objet

int $mysqli->connect_errno;

Style procédural

mysqli_connect_errno(): int

Retourne le code d'erreur de la dernière tentative de connexion.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un code d'erreur pour la dernière tentative de connexion, si elle échoue. Zéro signifie qu'aucune erreur n'est survenue.

Exemples

Exemple #1 Exemple avec $mysqli->connect_errno

Style orienté objet

<?php

mysqli_report(MYSQLI_REPORT_OFF);

/* @ est utilisé pour supprimer les avertissements */
$mysqli = @new mysqli('localhost', 'fake_user', 'wrong_password', 'does_not_exist');

if ($mysqli->connect_errno) {
/* Use your preferred error logging method here */
error_log('Connection error: ' . $mysqli->connect_errno);
}

Style procédural

<?php

mysqli_report(MYSQLI_REPORT_OFF);

/* @ est utilisé pour supprimer les avertissements */
$link = @mysqli_connect('localhost', 'fake_user', 'wrong_password', 'does_not_exist');

if (!$link) {
/* Use your preferred error logging method here */
error_log('Connection error: ' . mysqli_connect_errno());
}

Voir aussi

  • mysqli_connect() - Alias de mysqli::__construct
  • mysqli_connect_error() - Retourne une description de la dernière erreur de connexion
  • 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 une description de la dernière erreur de connexion

  • « mysqli::$connect_errno
  • mysqli::__construct »
  • PHP Manual
  • mysqli
  • Retourne une description de la dernière erreur de connexion

mysqli::$connect_error

mysqli_connect_error

(PHP 5, PHP 7, PHP 8)

mysqli::$connect_error -- mysqli_connect_error — Retourne une description de la dernière erreur de connexion

Description

Style orienté objet

?string $mysqli->connect_error;

Style procédural

mysqli_connect_error(): ?string

Retourne le message d'erreur de la dernière tentative de connexion.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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_report(MYSQLI_REPORT_OFF);

/* @ est utilisé pour supprimer les avertissements */
$mysqli = @new mysqli('localhost', 'fake_user', 'wrong_password', 'does_not_exist');

if ($mysqli->connect_error) {
/* Use your preferred error logging method here */
error_log('Connection error: ' . $mysqli->connect_error);
}

Style procédural

<?php

mysqli_report(MYSQLI_REPORT_OFF);

/* @ est utilisé pour supprimer les avertissements */
$link = @mysqli_connect('localhost', 'fake_user', 'wrong_password', 'does_not_exist');

if (!$link) {
/* Use your preferred error logging method here */
error_log('Connection error: ' . mysqli_connect_error());
}

Voir aussi

  • mysqli_connect() - Alias de mysqli::__construct
  • mysqli_connect_errno() - Retourne le code d'erreur du dernier appel de connexion
  • 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

mysqli_connect

(PHP 5, PHP 7, PHP 8)

mysqli::__construct -- mysqli::connect -- mysqli_connect — Ouvre une connexion à un serveur MySQL

Description

Style orienté objet

public mysqli::__construct(
?string $hostname = null,
?string $username = null,
?string $password = null,
?string $database = null,
?int $port = null,
?string $socket = null
)
public mysqli::connect(
?string $hostname = null,
?string $username = null,
?string $password = null,
?string $database = null,
?int $port = null,
?string $socket = null
): bool

Style procédural

mysqli_connect(
?string $hostname = null,
?string $username = null,
?string $password = null,
?string $database = null,
?int $port = null,
?string $socket = null
): mysqli|false

Ouvre une connexion au serveur MySQL.

Liste de paramètres

hostname

Peut être un nom d'hôte ou une adresse IP. Lorsqu'on passe null, la valeur est récupérée depuis mysqli.default_host. Si possible, les pipes seront utilisé à la place du protocole TCP/IP. Le protocol TCP/IP est utilisé si un nom d'hôte et numéro de port sont fournis ensemble, par exemple localhost:3308.

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 ou null pour supposer le nom d'utilisateur en fonction de l'option ini mysqli.default_user.

password

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 qu'un mot de passe est fournit ou non).

database

La base de données par défaut à utiliser lors de l'exécution de requêtes ou null.

port

Le numéro de port auquel tenter de se connecter au serveur MySQL ou null pour supposer le port en fonction de l'option ini mysqli.default_port.

socket

Le socket ou le pipe nommé qui doit être utilisé, ou null pour supposer le socket en fonction de l'option ini mysqli.default_socket.

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 hostname.

Valeurs de retour

mysqli_connect() retourne un objet qui représente la connexion au serveur MySQL, ou false si une erreur survient.

mysqli::connect() renvoie true en cas de succès ou false si une erreur survient. Antérieur à PHP 8.1.0, renvoie null en cas de succès.

Erreurs / Exceptions

Si le rapport d'erreurs mysqli est activé (MYSQLI_REPORT_ERROR) et que l'opération demandée échoue, un avertissement est généré. Si, en plus, le mode est défini sur MYSQLI_REPORT_STRICT, une mysqli_sql_exception est lancée à la place.

Historique

Version | Description
8.1.0 | mysqli::connect() retourne désormais true au lieu de null en cas de succès.
7.4.0 | Tous les paramètres sont désormais nullable.

Exemples

Exemple #1 Exemple mysqli::__construct()

Style orienté objet

<?php
/* Vous devriez toujours activer le rapport d'erreur pour mysqli avant une tentative de connexion */
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
/* Définir le jeu de caractère désiré après avoir établie une connexion */
$mysqli->set_charset('utf8mb4');
printf("Success... %s\n", $mysqli->host_info);

Style procédural

<?php
/* Vous devriez toujours activer le rapport d'erreur pour mysqli avant une tentative de connexion */
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');
/* Définir le jeu de caractère désiré après avoir établie une connexion */
mysqli_set_charset($mysqli, 'utf8mb4');
printf("Success... %s\n", mysqli_get_host_info($mysqli));

Les exemples ci-dessus vont afficher quelque chose de similaire à :

Success... localhost via TCP/IP

Exemple #2 Étendre la classe mysqli

<?php
class FooMysqli extends mysqli {
public function __construct($host, $user, $pass, $db, $port, $socket, $charset) {
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
parent::__construct($host, $user, $pass, $db, $port, $socket);
$this->set_charset($charset);
}
}
$db = new FooMysqli('localhost', 'my_user', 'my_password', 'my_db', 3306, null, 'utf8mb4');

Exemple #3 Gestion d'erreur manuelle

Si le rapport d'erreur est désactivé, le développeur est responsable pour vérifier et gérer les échecs

Style orienté objet

<?php
error_reporting(0);
mysqli_report(MYSQLI_REPORT_OFF);
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
if ($mysqli->connect_errno) {
throw new RuntimeException('mysqli connection error: ' . $mysqli->connect_error);
}
/* Définir le jeu de caractère désiré après avoir établie une connexion */
$mysqli->set_charset('utf8mb4');
if ($mysqli->errno) {
throw new RuntimeException('mysqli error: ' . $mysqli->error);
}

Style procédural

<?php
error_reporting(0);
mysqli_report(MYSQLI_REPORT_OFF);
$mysqli = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');
if (mysqli_connect_errno()) {
throw new RuntimeException('mysqli connection error: ' . mysqli_connect_error());
}
/* Définir le jeu de caractère désiré après avoir établie une connexion */
mysqli_set_charset($mysqli, 'utf8mb4');
if (mysqli_errno($mysqli)) {
throw new RuntimeException('mysqli error: ' . mysqli_error($mysqli));
}

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:

Style orienté objet uniquement : si la connexion a échoué, un objet est quand même retourné. Pour vérifier si la connexion a échoué, utilisez soit 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 du dernier appel de connexion
  • mysqli_connect_error() - Retourne une description de la dernière erreur de connexion
  • mysqli_close() - Ferme une connexion


Effectue des actions de débogage

  • « mysqli::__construct
  • mysqli::dump_debug_info »
  • PHP Manual
  • mysqli
  • Effectue des actions de débogage

mysqli::debug

mysqli_debug

(PHP 5, PHP 7, PHP 8)

mysqli::debug -- mysqli_debug — Effectue des actions de débogage

Description

Style orienté objet

public mysqli::debug(string $options): true

Style procédural

mysqli_debug(string $options): true

Effectue des actions de débogage en utilisant la bibliothèque de débogage Fred Fish.

Liste de paramètres

options

Une chaîne de caractères représentant l'opération de débogage à effectuer.

La chaîne de contrôle de débogage est une séquence de champs séparés par deux points, comme suit :

<field_1>:<field_2>:<field_N>
Chaque champ se compose d'un caractère d'indicateur obligatoire suivi d'un , facultatif et d'une liste de modificateurs séparés par des virgules : flag[,modifier,modifier,...,modifier]

Caractères de drapeau reconnus
options caractère | Description
O | MYSQLND_DEBUG_FLUSH
A/a | MYSQLND_DEBUG_APPEND
F | MYSQLND_DEBUG_DUMP_FILE
i | MYSQLND_DEBUG_DUMP_PID
L | MYSQLND_DEBUG_DUMP_LINE
m | MYSQLND_DEBUG_TRACE_MEMORY_CALLS
n | MYSQLND_DEBUG_DUMP_LEVEL
o | output to file
T | MYSQLND_DEBUG_DUMP_TIME
t | MYSQLND_DEBUG_DUMP_TRACE
x | MYSQLND_DEBUG_PROFILE_CALLS

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.0.0 | Cette fonction retourne désormais toujours true. Auparavant, elle retourne false en cas d'échec.

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");

?>

Notes

Note:

Pour utiliser la fonction mysqli_debug(), vous devez compiler la bibliothèque cliente MySQL avec le support du débogage.

Voir aussi

  • mysqli_dump_debug_info() - Écrit les informations de débogage dans les logs
  • mysqli_report() - Alias de mysqli_driver->report_mode


Écrit les informations de débogage dans les logs

  • « mysqli::debug
  • mysqli::$errno »
  • PHP Manual
  • mysqli
  • Écrit les informations de débogage dans les logs

mysqli::dump_debug_info

mysqli_dump_debug_info

(PHP 5, PHP 7, PHP 8)

mysqli::dump_debug_info -- mysqli_dump_debug_info — Écrit les informations de débogage dans les logs

Description

Style orienté objet

public mysqli::dump_debug_info(): bool

Style procédural

mysqli_dump_debug_info(mysqli $mysql): bool

Cette fonction est à utiliser par un utilisateur possédant le privilège SUPER et est utilisée pour écrire quelques informations de débogage dans le journal pour le serveur MySQL relatif à la connexion spécifiée par le paramètre link.

Liste de paramètres

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou 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ébogage


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, PHP 8)

mysqli::$errno -- mysqli_errno — Retourne le dernier code d'erreur produit

Description

Style orienté objet

int $mysqli->errno;

Style procédural

mysqli_errno(mysqli $mysql): int

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.

Liste de paramètres

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou 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("Échec 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 du dernier appel de connexion
  • mysqli_connect_error() - Retourne une description de la dernière erreur de connexion
  • 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, PHP 8)

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

mysqli_error_list(mysqli $mysql): array

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

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou 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 du dernier appel de connexion
  • mysqli_connect_error() - Retourne une description de la dernière erreur de connexion
  • 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::execute_query »
  • PHP Manual
  • mysqli
  • Retourne une chaîne décrivant la dernière erreur

mysqli::$error

mysqli_error

(PHP 5, PHP 7, PHP 8)

mysqli::$error -- mysqli_error — Retourne une chaîne décrivant la dernière erreur

Description

Style orienté objet

string $mysqli->error;

Style procédural

mysqli_error(mysqli $mysql): string

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

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou 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("Échec 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 du dernier appel de connexion
  • mysqli_connect_error() - Retourne une description de la dernière erreur de connexion
  • mysqli_errno() - Retourne le dernier code d'erreur produit
  • mysqli_sqlstate() - Retourne l'erreur SQLSTATE de la dernière opération MySQL


Prepares, binds parameters, and executes SQL statement

  • « mysqli::$error
  • mysqli::$field_count »
  • PHP Manual
  • mysqli
  • Prepares, binds parameters, and executes SQL statement

mysqli::execute_query

mysqli_execute_query

(PHP 8 >= 8.2.0)

mysqli::execute_query -- mysqli_execute_query — Prepares, binds parameters, and executes SQL statement

Description

Style orienté objet

public mysqli::execute_query(string $query, ?array $params = null): mysqli_result|bool

Style procédural

mysqli_execute_query(mysqli $mysql, string $query, ?array $params = null): mysqli_result|bool

Prepares the SQL query, binds parameters, and executes it.
The mysqli::execute_query() method is a shortcut for
mysqli::prepare(),
mysqli_stmt::bind_param(),
mysqli_stmt::execute(),
and mysqli_stmt::get_result().

The statement template can contain zero or more question mark (?) parameter markers?—also called placeholders. The parameter values must be provided as an tableau using params parameter.

A prepared statement is created under the hood but it's never exposed outside of the function. It's impossible to access properties of the statement as one would do with the mysqli_stmt object. Due to this limitation, the status information is copied to the mysqli object and is available using its methods, e.g. mysqli_affected_rows() or mysqli_error().

Note:

In the case where a statement is passed to mysqli_execute_query() that is longer than max_allowed_packet of the server, the returned error codes are different depending on the operating system. The behavior is as follows:

  • On Linux returns an error code of 1153. The error message means got a packet bigger than max_allowed_packet bytes.

  • On Windows returns an error code 2006. This error message means server has gone away.

Liste de paramètres

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou mysqli_init().

query

The query, as a string. It must consist of a single SQL statement.

The SQL statement may contain zero or more parameter markers represented by question mark (?) characters at the appropriate positions.

Note:

The markers are legal only in certain places in SQL statements. For example, they are permitted in the VALUES() list of an INSERT statement (to specify column values for a row), or in a comparison with a column in a WHERE clause to specify a comparison value. However, they are not permitted for identifiers (such as table or column names).

params

An optional list tableau with as many elements as there are bound parameters in the SQL statement being executed. Each value is treated as a chaîne de caractères.

Valeurs de retour

Returns false on failure. For successful queries which produce a result set, such as SELECT, SHOW, DESCRIBE or EXPLAIN, returns a mysqli_result object. For other successful queries, returns true.

Exemples

Exemple #1 mysqli::execute_query() example

Style orienté objet

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');

$query = 'SELECT Name, District FROM City WHERE CountryCode=? ORDER BY Name LIMIT 5';
$result = $mysqli->execute_query($query, ['DEU']);
foreach ($result as $row) {
printf("%s (%s)\n", $row["Name"], $row["District"]);
}

Style procédural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = 'SELECT Name, District FROM City WHERE CountryCode=? ORDER BY Name LIMIT 5';
$result = mysqli_execute_query($link, $query, ['DEU']);
foreach ($result as $row) {
printf("%s (%s)\n", $row["Name"], $row["District"]);
}

Les exemples ci-dessus vont afficher quelque chose de similaire à :

Aachen (Nordrhein-Westfalen)
Augsburg (Baijeri)
Bergisch Gladbach (Nordrhein-Westfalen)
Berlin (Berliini)
Bielefeld (Nordrhein-Westfalen)

Voir aussi

  • mysqli_prepare() - Prépare une requête SQL pour l'exécution
  • mysqli_stmt_execute() - Exécute une requête préparée
  • 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 en tant qu'objet mysqli_result


Retourne le nombre de colonnes pour la dernière requête

  • « mysqli::execute_query
  • 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, PHP 8)

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

mysqli_field_count(mysqli $mysql): int

Retourne le nombre de colonnes pour la dernière requête sur la connexion spécifiée par le paramètre mysql. 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

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou 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::$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, PHP 8)

mysqli::get_charset -- mysqli_get_charset — Retourne un objet représentant le jeu de caractères

Description

Style orienté objet

public mysqli::get_charset(): ?object

Style procédural

mysqli_get_charset(mysqli $mysql): ?object

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

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou 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 du client


Récupère des informations sur le client MySQL

  • « mysqli::get_charset
  • mysqli::$client_version »
  • PHP Manual
  • mysqli
  • Récupère des informations sur le client MySQL

mysqli::$client_info

mysqli::get_client_info

mysqli_get_client_info

(PHP 5, PHP 7, PHP 8)

mysqli::$client_info -- mysqli::get_client_info -- mysqli_get_client_info — Récupère des informations sur le client MySQL

Description

Style orienté objet

string $mysqli->client_info;
public mysqli::get_client_info(): string

Style procédural

mysqli_get_client_info(?mysqli $mysql = null): string

Retourne une chaîne de caractères qui représente la version de la librairie cliente MySQL.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une chaîne de caractères représentant la version du client utilisé par l'extension MySQL.

Historique

Version | Description
8.1.0 | L'appel de la mysqli_get_client_info() avec l'argument mysql a été déprécié. Cette fonction n'a jamais exigé un paramètre, mais l'a autorisé de manière incorrecte comme paramètre facultatif.
8.1.0 | Le style orienté objet mysqli::get_client_info() a été déprécié.

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


Retourne la version du client MySQL sous forme d'un entier

  • « mysqli::$client_info
  • mysqli::get_connection_stats »
  • PHP Manual
  • mysqli
  • Retourne la version du client MySQL sous forme d'un entier

mysqli::$client_version

mysqli_get_client_version

(PHP 5, PHP 7, PHP 8)

mysqli::$client_version -- mysqli_get_client_version — Retourne la version du client MySQL sous forme d'un entier

Description

Style orienté objet

int $mysqli->client_version;

Style procédural

mysqli_get_client_version(): int

Retourne la version du client MySQL sous la forme d'un entier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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 pour savoir si des fonctionnalités spécifiques existent.

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::$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, PHP 8)

mysqli::get_connection_stats -- mysqli_get_connection_stats — Retourne des statistiques sur la connexion

Description

Style orienté objet

public mysqli::get_connection_stats(): array

Style procédural

mysqli_get_connection_stats(mysqli $mysql): array

Retourne des statistiques sur la connexion du client.

Note:

Disponible uniquement avec mysqlnd.

Liste de paramètres

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou mysqli_init().

Valeurs de retour

Retourne un tableau avec les statistiques de connexion.

Exemples

Exemple #1 Exemple avec mysqli_get_connection_stats()

<?php
$link = mysqli_connect();
print_r(mysqli_get_connection_stats($link));
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

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

mysqli_get_host_info(mysqli $mysql): string

mysqli_get_host_info() retourne une chaîne de caractères décrivant la connexion représentée par le paramètre mysql (incluant le nom d'hôte du serveur).

Liste de paramètres

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou 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_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Affichage des informations sur l'hôte */
printf("Informations sur l'hôte : %s\n", $mysqli->host_info);

Style procédural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Affichage des informations sur l'hôte */
printf("Informations sur l'hôte : %s\n", mysqli_get_host_info($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, PHP 8)

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

mysqli_get_proto_info(mysqli $mysql): int

Retourne un entier représentant la version du protocole MySQL utilisé par la connexion représentée par le paramètre mysql.

Liste de paramètres

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou 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_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* Affichage de la version du protocole */
printf("Version du protocole : %d\n", $mysqli->protocol_version);

Style procédural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password");

/* Affichage de la version du protocole */
printf("Version du protocole : %d\n", mysqli_get_proto_info($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

mysqli_get_server_info

(PHP 5, PHP 7, PHP 8)

mysqli::$server_info -- mysqli::get_server_info -- mysqli_get_server_info — Retourne la version du serveur MySQL

Description

Style orienté objet

string $mysqli->server_info;
public mysqli::get_server_info(): string

Style procédural

mysqli_get_server_info(mysqli $mysql): string

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

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou 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_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* Affichage de la version du serveur */
printf("Version du serveur : %s\n", $mysqli->server_info);

Style procédural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password");

/* Affichage de la version du serveur */
printf("Version du serveur : %s\n", mysqli_get_server_info($link));

Les exemples ci-dessus vont afficher quelque chose de similaire à :

Version du serveur : 8.0.21

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, PHP 8)

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

mysqli_get_server_version(mysqli $mysql): int

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 mysql).

Liste de paramètres

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou 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_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* Affichage de la version du serveur */
printf("Version du serveur : %d\n", $mysqli->server_version);

Style procédural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password");

/* Affichage de la version du serveur */
printf("Version du serveur : %d\n", mysqli_get_server_version($link));

Les exemples ci-dessus vont afficher quelque chose de similaire à :

Version du serveur : 80021

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, PHP 8)

mysqli::get_warnings -- mysqli_get_warnings — Lit le résultat de SHOW WARNINGS

Description

Style orienté objet

public mysqli::get_warnings(): mysqli_warning|false

Style procédural

mysqli_get_warnings(mysqli $mysql): mysqli_warning|false
Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

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

mysqli_info(mysqli $mysql): ?string

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

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou 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_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$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);

Style procédural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

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));

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 le jeu de résultats


Initialise MySQLi et retourne un objet à utiliser avec mysqli_real_connect()

  • « mysqli::$info
  • mysqli::$insert_id »
  • PHP Manual
  • mysqli
  • Initialise MySQLi et retourne un objet à utiliser avec mysqli_real_connect()

mysqli::init

mysqli_init

(PHP 5, PHP 7, PHP 8)

mysqli::init -- mysqli_init — Initialise MySQLi et retourne un objet à utiliser avec mysqli_real_connect()

Description

Style orienté objet

public mysqli::init(): ?bool

Style procédural

mysqli_init(): mysqli|false

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 de mysqli_options() et mysqli_ssl_set()) échoueront en attendant que la fonction mysqli_real_connect() soit appelée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

mysqli::init() retourne null en cas de succès, ou false si une erreur survient. mysqli_init() renvoie un objet en cas de succès, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | La méthode mysqli::init() de style orienté objet a été dépréciée. Remplacez les appels à parent::init() par parent::__construct().

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 la valeur généré pour une colonne AUTO_INCREMENT par la dernière requête

  • « mysqli::init
  • mysqli::kill »
  • PHP Manual
  • mysqli
  • Retourne la valeur généré pour une colonne AUTO_INCREMENT par la dernière requête

mysqli::$insert_id

mysqli_insert_id

(PHP 5, PHP 7, PHP 8)

mysqli::$insert_id -- mysqli_insert_id — Retourne la valeur généré pour une colonne AUTO_INCREMENT par la dernière requête

Description

Style orienté objet

int|string $mysqli->insert_id;

Style procédural

mysqli_insert_id(mysqli $mysql): int|string

Retourne l'ID généré par une requête INSERT ou UPDATE sur une table avec une colonne ayant l'attribut AUTO_INCREMENT. Dans le cas des requêtes multilignes INSERT, ceci retourne la première valeur automatiquement généré qui a été inséré avec succès.

Exécuter une requête INSERT ou UPDATE utilisant la fonction MySQL LAST_INSERT_ID() modifiera aussi la valeur retourné par mysqli_insert_id(). Si LAST_INSERT_ID(expr) a été utilisé pour générer la valeur de AUTO_INCREMENT, ceci retourne la valeur de la dernière expr à la place de la valeur généré de AUTO_INCREMENT.

Retourne 0 si la requête précédente n'a pas changé la valeur de AUTO_INCREMENT. mysqli_insert_id() doit être appelé immédiatement après que la requête ait généré la valeur.

Liste de paramètres

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou 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.

Seul les requêtes émises par la connexion courante affecte la valeur de retour. La valeur n'est pas affecté par les requêtes utilisant d'autres connexions ou clients.

Note:

Si le nombre est plus grand que la valeur maximale d'un entier, elle sera retourné sous une chaîne de caractères

Exemples

Exemple #1 Exemple avec $mysqli->insert_id

Style orienté objet

<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$mysqli->query("CREATE TABLE myCity LIKE City");

$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
$mysqli->query($query);

printf("New record has ID %d.\n", $mysqli->insert_id);

/* drop table */
$mysqli->query("DROP TABLE myCity");
?>

Style procédural

<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

mysqli_query($link, "CREATE TABLE myCity LIKE City");

$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
mysqli_query($link, $query);

printf("New record has ID %d.\n", mysqli_insert_id($link));

/* drop table */
mysqli_query($link, "DROP TABLE myCity");
?>

Les exemples ci-dessus vont afficher :

New record has 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, PHP 8)

mysqli::kill -- mysqli_kill — Demande au serveur de terminer un thread MySQL

Description

Style orienté objet

public mysqli::kill(int $process_id): bool

Style procédural

mysqli_kill(mysqli $mysql, int $process_id): bool

mysqli_kill() est utilisée pour demander au serveur de terminer un thread MySQL spécifié par le paramètre process_id. 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 process_id.

Liste de paramètres

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou mysqli_init().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Erreurs / Exceptions

Si le rapport d'erreurs mysqli est activé (MYSQLI_REPORT_ERROR) et que l'opération demandée échoue, un avertissement est généré. Si, en plus, le mode est défini sur MYSQLI_REPORT_STRICT, une mysqli_sql_exception est lancée à la place.

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, PHP 8)

mysqli::more_results -- mysqli_more_results — Vérifie s'il y a d'autres jeux de résultats MySQL disponibles

Description

Style orienté objet

public mysqli::more_results(): bool

Style procédural

mysqli_more_results(mysqli $mysql): bool

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

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou mysqli_init().

Valeurs de retour

Retourne true si un ou plusieurs jeux de résultats (incluant les erreurs) sont disponibles à partir d'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 ou plusieurs requêtes sur la base de donnée
  • 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 ou plusieurs requêtes sur la base de donnée

  • « mysqli::more_results
  • mysqli::next_result »
  • PHP Manual
  • mysqli
  • Exécute une ou plusieurs requêtes sur la base de donnée

mysqli::multi_query

mysqli_multi_query

(PHP 5, PHP 7, PHP 8)

mysqli::multi_query -- mysqli_multi_query — Exécute une ou plusieurs requêtes sur la base de donnée

Description

Style orienté objet

public mysqli::multi_query(string $query): bool

Style procédural

mysqli_multi_query(mysqli $mysql, string $query): bool

Exécute une ou plusieurs requêtes, rassemblées dans le paramètre query par des points-virgules.

Avertissement

Avertissement de Sécurité : injection SQL

Si la requête contiens des variables d'entrées alors des déclarations préparées paramétrisées devrait être utilisé à la place. Alternativement, les données doivent être correctement formatées et toutes les chaînes de caractères doivent être échappées en utilisant la fonction mysqli_real_escape_string().

Les requêtes sont envoyées de manière asynchrone dans un seul appel à la base de données, mais la base de données les traitent de manière séquentielle. mysqli_multi_query() attend pour la première requête de compléter avant de retourner le contrôle à PHP. Le serveur MySQL traitera alors la prochaine requête dans la suite. Une fois que le résultat est prêt, MySQL attendra pour la prochaine exécution de mysqli_next_result() depuis PHP.

Il est recommandé d'utiliser une do-while pour traiter plusieurs requêtes. La connexion sera occupé jusqu'à ce que toutes les requêtes soit complété et que leur résultat soit récupéré par PHP. Aucune autre requête ne peut être émise sur la même connexion, jusqu'à ce que toutes les requêtes soit traitées. Pour traiter la prochaine requête dans la suite, utiliser mysqli_next_result(). Si le prochain résultat n'est pas encore prêt mysqli attendra pour la réponse depuis le serveur MySQL. Pour vérifier s'il y a plus de résultats, utiliser mysqli_more_results().

Pour les requêtes qui produisent un jeu de résultat, tel que SELECT, SHOW, DESCRIBE ou EXPLAIN, mysqli_use_result() ou mysqli_store_result() peut être utilisé pour récupérer le jeu de résultat. Pour les requêtes qui ne produisent pas de jeu de résultat, les mêmes fonctions peuvent être utilisé pour récupérer les informations tel que le nombre de ligne affectés.

Astuce

Exécuter une requête CALL pour les procédures stocké peut produire plusieurs jeux de résultats. Si la procédure stocké contient des requêtes SELECT, les jeux de résultats sont retournés dans l'ordre dans lequel ils sont produit par l'exécution de la procédure. En général, l'appeleur ne peut pas savoir combien de jeux de résultats une procédure retournera et doit être préparé à récupérer plusieurs résultats. Le résultat final de la procédure est un résultat de statut qui n'inclus pas de jeu de résultat. Le statut indique si la procédure a succédé ou si une erreur c'est produit.

Liste de paramètres

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou mysqli_init().

query

Une chaîne de caractères contenant les requêtes à exécuter. Plusieurs requêtes doivent être séparé par un point-virgule.

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().

Erreurs / Exceptions

Si le rapport d'erreurs mysqli est activé (MYSQLI_REPORT_ERROR) et que l'opération demandée échoue, un avertissement est généré. Si, en plus, le mode est défini sur MYSQLI_REPORT_STRICT, une mysqli_sql_exception est lancée à la place.

Exemples

Exemple #1 Exemple avec mysqli::multi_query()

Style orienté objet

<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* Exécution d'une requête multiple */
$mysqli->multi_query($query);
do {
/* store the result set in PHP */
if ($result = $mysqli->store_result()) {
while ($row = $result->fetch_row()) {
printf("%s\n", $row[0]);
}
}
/* print divider */
if ($mysqli->more_results()) {
printf("-----------------\n");
}
} while ($mysqli->next_result());
?>

Style procédural

<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* Exécution d'une requête multiple */
mysqli_multi_query($link, $query);
do {
/* store the result set in PHP */
if ($result = mysqli_store_result($link)) {
while ($row = mysqli_fetch_row($result)) {
printf("%s\n", $row[0]);
}
/* Affichage d'une séparation */
if (mysqli_more_results($link)) {
printf("-----------------\n");
}
}
/* print divider */
if (mysqli_more_results($link)) {
printf("-----------------\n");
}
} while (mysqli_next_result($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, PHP 8)

mysqli::next_result -- mysqli_next_result — Prépare le prochain résultat d'une requête multiple

Description

Style orienté objet

mysqli::next_result(): bool

Style procédural

mysqli_next_result(mysqli $mysql): bool

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

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou mysqli_init().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient. Retourne aussi false si la prochaine déclaration résulte en une erreur, pas comme mysqli_more_results().

Exemples

Voir mysqli_multi_query().

Erreurs / Exceptions

Si le rapport d'erreurs mysqli est activé (MYSQLI_REPORT_ERROR) et que l'opération demandée échoue, un avertissement est généré. Si, en plus, le mode est défini sur MYSQLI_REPORT_STRICT, une mysqli_sql_exception est lancée à la place.

Voir aussi

  • mysqli_multi_query() - Exécute une ou plusieurs requêtes sur la base de donnée
  • 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, PHP 8)

mysqli::options -- mysqli_options — Définit les options

Description

Style orienté objet

public mysqli::options(int $option, string|int $value): bool

Style procédural

mysqli_options(mysqli $mysql, int $option, string|int $value): bool

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

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou 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
MYSQLI_OPT_READ_TIMEOUT | Résultat d'execution durée d'expiration d'une commande en secondes. Disponible à partir de PHP 7.2.0.
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_SET_CHARSET_NAME | Le jeu de caractère à définir par défaut.
MYSQLI_READ_DEFAULT_FILE | Lit les options depuis le nom de l'option plutôt que du fichier my.cnf Pas supporté par mysqlnd
MYSQLI_READ_DEFAULT_GROUP | Lit les options du groupe depuis my.cnf ou depuis le fichier spécifié avec MYSQL_READ_DEFAULT_FILE. Pas supporté par mysqlnd
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 nombres PHP lors de l'utilisation de déclarations non préparées. Valable uniquement pour mysqlnd.
MYSQLI_OPT_SSL_VERIFY_SERVER_CERT | Si le certificat de serveur doit être vérifier ou non.

value

La valeur pour l'option.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Erreurs / Exceptions

Si le rapport d'erreurs mysqli est activé (MYSQLI_REPORT_ERROR) et que l'opération demandée échoue, un avertissement est généré. Si, en plus, le mode est défini sur MYSQLI_REPORT_STRICT, une mysqli_sql_exception est lancée à la place.

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 un objet à 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, PHP 8)

mysqli::ping -- mysqli_ping — Ping la connexion au serveur et reconnecte si elle n'existe plus

Description

Style orienté objet

public mysqli::ping(): bool

Style procédural

mysqli_ping(mysqli $mysql): bool

Vérifie si la connexion au serveur fonctionne correctement. Si elle a été refermée et que l'option globale mysqli.reconnect est activée, une reconnexion automatique est tentée.

Note: Le paramètre php.ini mysqli.reconnect est ignoré par le pilote mysqlnd, donc les reconnexions automatique ne sont jamais tentées.

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

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou mysqli_init().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Erreurs / Exceptions

Si le rapport d'erreurs mysqli est activé (MYSQLI_REPORT_ERROR) et que l'opération demandée échoue, un avertissement est généré. Si, en plus, le mode est défini sur MYSQLI_REPORT_STRICT, une mysqli_sql_exception est lancée à la place.

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, PHP 8)

mysqli::poll -- mysqli_poll — Vérifie l'état de la connexion

Description

Style orienté objet

public static mysqli::poll(
?array &$read,
?array &$error,
array &$reject,
int $seconds,
int $microseconds = 0
): int|false

Style procédural

mysqli_poll(
?array &$read,
?array &$error,
array &$reject,
int $seconds,
int $microseconds = 0
): int|false

Vérifie l'état de la connexion. La méthode peut être utilisée comme statique.

Note:

Disponible uniquement avec mysqlnd.

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.

seconds

Nombre de secondes d'attente maximale, doit être positif.

microseconds

Nombre de micro-secondes d'attente maximale, doit être positif.

Valeurs de retour

Retourne le nombre de connexions disponibles en cas de succès, false sinon.

Erreurs / Exceptions

Une ValueError est lancée lorsque ni l'argument read ni l'argument error ne sont transmis.

Historique

Version | Description
8.3.0 | Lance désormais une exception ValueError lorsque ni l'argument read ni l'argument error ne sont transmis.

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, PHP 8)

mysqli::prepare -- mysqli_prepare — Prépare une requête SQL pour l'exécution

Description

Style orienté objet

public mysqli::prepare(string $query): mysqli_stmt|false

Style procédural

mysqli_prepare(mysqli $mysql, string $query): mysqli_stmt|false

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

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou mysqli_init().

query

La requête, sous la forme d'une chaîne de caractères.

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 certains 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 (de tables ou de colonnes).

Valeurs de retour

mysqli_prepare() retourne un objet de traitement ou false si une erreur survient.

Erreurs / Exceptions

Si le rapport d'erreurs mysqli est activé (MYSQLI_REPORT_ERROR) et que l'opération demandée échoue, un avertissement est généré. Si, en plus, le mode est défini sur MYSQLI_REPORT_STRICT, une mysqli_sql_exception est lancée à la place.

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_get_result() - Récupère un jeu de résultats depuis une requête préparée en tant qu'objet mysqli_result
  • 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, PHP 8)

mysqli::query -- mysqli_query — Exécute une requête sur la base de données

Description

Style orienté objet

public mysqli::query(string $query, int $result_mode = MYSQLI_STORE_RESULT): mysqli_result|bool

Style procédural

mysqli_query(mysqli $mysql, string $query, int $result_mode = MYSQLI_STORE_RESULT): mysqli_result|bool

Exécute une requête sur la base de données.

Avertissement

Avertissement de Sécurité : injection SQL

Si la requête contiens des variables d'entrées alors des déclarations préparées paramétrisées devrait être utilisé à la place. Alternativement, les données doivent être correctement formatées et toutes les chaînes de caractères doivent être échappées en utilisant la fonction mysqli_real_escape_string().

Pour les requêtes non-DML (qui n'est pas un INSERT, un UPDATE ou un DELETE),
cette fonction est similaire à 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

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou mysqli_init().

query

La requête, sous la forme d'une chaîne de caractères.

result_mode

Le mode de résultat peut être l'une des 3 constantes indiquant comment le résultat sera retourné par le serveur MySQL.

MYSQLI_STORE_RESULT (par défaut) - renvoie un objet mysqli_result avec un ensemble de résultats mis en mémoire tampon.

MYSQLI_USE_RESULT - renvoie un objet mysqli_result avec un ensemble de résultats non tamponnés. Tant qu'il y a des enregistrements en attente d'être récupérés, la ligne de connexion sera occupée et tous les appels suivants renverront l'erreur Commands out of sync. Pour éviter l'erreur, tous les enregistrements doivent être récupérés du serveur ou l'ensemble de résultats doit être écarté en appelant la mysqli_free_result().

MYSQLI_ASYNC (disponible avec mysqlnd) - la requête est exécutée de manière asynchrone et aucun ensemble de résultats n'est immédiatement renvoyé. mysqli_poll() est alors utilisée pour obtenir les résultats de telles requêtes. Utilisée en combinaison avec la constante MYSQLI_STORE_RESULT ou MYSQLI_USE_RESULT.

Valeurs de retour

Retourne false en cas d'échec. Pour des requêtes réussites qui produisent un jeu de résultat tel que SELECT, SHOW, DESCRIBE ou EXPLAIN, mysqli_query() retournera un objet mysqli_result. Pour les autres types de requêtes ayant réussi, mysqli_query() retournera true.

Erreurs / Exceptions

Si le rapport d'erreurs mysqli est activé (MYSQLI_REPORT_ERROR) et que l'opération demandée échoue, un avertissement est généré. Si, en plus, le mode est défini sur MYSQLI_REPORT_STRICT, une mysqli_sql_exception est lancée à la place.

Exemples

Exemple #1 Exemple avec mysqli::query()

Style orienté objet

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* "Create table" ne retournera aucun jeu de résultats */
$mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City");
printf("Table myCity créée avec succès.\n");

/* Requête "Select" retourne un jeu de résultats */
$result = $mysqli->query("SELECT Name FROM City LIMIT 10");
printf("Select a retourné %d lignes.\n", $result->num_rows);

/* Si nous avons à récupérer beaucoup de données, nous utilisons MYSQLI_USE_RESULT */
$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' */
$mysqli->query("SET @a:='this will not work'");

Style procédural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* "Create table" ne retournera aucun jeu de résultats */
mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City");
printf("Table myCity créée avec succès.\n");

/* Requête "Select" retourne un jeu de résultats */
$result = mysqli_query($link, "SELECT Name FROM City LIMIT 10");
printf("Select a retourné %d lignes.\n", mysqli_num_rows($result));

/* Si nous avons à récupérer beaucoup de données, nous utilisons MYSQLI_USE_RESULT */
$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' */
mysqli_query($link, "SET @a:='this will not work'");

Les exemples ci-dessus vont afficher :

Table myCity créée avec succès.
Select a retourné 10 lignes.
Fatal error: Uncaught mysqli_sql_exception: Commands out of sync; you can't run this command now in...

Voir aussi

  • mysqli_execute_query() - Prepares, binds parameters, and executes SQL statement
  • mysqli_real_query() - Exécute une requête SQL
  • mysqli_multi_query() - Exécute une ou plusieurs requêtes sur la base de donnée
  • 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


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, PHP 8)

mysqli::real_connect -- mysqli_real_connect — Ouvre une connexion à un serveur MySQL

Description

Style orienté objet

public mysqli::real_connect(
?string $hostname = null,
?string $username = null,
?string $password = null,
?string $database = null,
?int $port = null,
?string $socket = null,
int $flags = 0
): bool

Style procédural

mysqli_real_connect(
mysqli $mysql,
?string $hostname = null,
?string $username = null,
?string $password = null,
?string $database = null,
?int $port = null,
?string $socket = null,
int $flags = 0
): bool

mysqli_real_connect() établit une connexion avec un serveur MySQL.

Cette fonction diffère de mysqli_connect() :

  • mysqli_real_connect() nécessite un objet valide qui doit être créé par la fonction 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

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou mysqli_init().

hostname

Peut-être un nom d'hôte ou une adresse IP. Lorsqu'on passe null, la valeur est récupérée depuis mysqli.default_host. Si possible, des pipes seront utilisés au lieu du protocole TCP/IP. Le protocole TCP/IP est utilisé si un nom d'hôte et un numéro de port sont fournis ensemble, par exemple localhost:3308.

username

Le nom d'utilisateur MySQL ou null pour supposer le nom d'utilisateur en fonction de l'option ini mysqli.default_user.

password

Le mot de passe MySQL ou null pour supposer le mot de passe en fonction de l'option ini mysqli.default_pw.

database

La base de données par défaut à utiliser lors de l'exécution de requêtes ou null.

port

Le numéro de port auquel tenter de se connecter au serveur MySQL ou null pour supposer le port en fonction de l'option ini mysqli.default_port.

socket

Le socket ou le pipe nommé qui devrait être utilisé, ou null pour supposer le socket en fonction de l'option ini mysqli.default_socket.

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 hostname.

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().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Erreurs / Exceptions

Si le rapport d'erreurs mysqli est activé (MYSQLI_REPORT_ERROR) et que l'opération demandée échoue, un avertissement est généré. Si, en plus, le mode est défini sur MYSQLI_REPORT_STRICT, une mysqli_sql_exception est lancée à la place.

Historique

Version | Description
7.4.0 | Tous les paramètres sont désormais nullable.

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::__construct();

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 un objet à 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, PHP 8)

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

public mysqli::real_escape_string(string $string): string

Style procédural

mysqli_real_escape_string(mysqli $mysql, string $string): string

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 string est encodée pour produire une chaîne SQL échappée, en tenant compte du jeu de caractères courant de la connexion.

Attention

Sécurité : 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

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou mysqli_init().

string

La chaîne de caractères à échapper.

Les caractères encodés sont NUL (ASCII 0), \n, \r, \, ', ", et CTRL+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_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$city = "'s-Hertogenbosch";

/* this query with escaped $city will work */
$query = sprintf("SELECT CountryCode FROM City WHERE name='%s'",
$mysqli->real_escape_string($city));
$result = $mysqli->query($query);
printf("Select returned %d rows.\n", $result->num_rows);

/* this query will fail, because we didn't escape $city */
$query = sprintf("SELECT CountryCode FROM City WHERE name='%s'", $city);
$result = $mysqli->query($query);

Style procédural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

$city = "'s-Hertogenbosch";

/* this query with escaped $city will work */
$query = sprintf("SELECT CountryCode FROM City WHERE name='%s'",
mysqli_real_escape_string($mysqli, $city));
$result = mysqli_query($mysqli, $query);
printf("Select returned %d rows.\n", mysqli_num_rows($result));

/* this query will fail, because we didn't escape $city */
$query = sprintf("SELECT CountryCode FROM City WHERE name='%s'", $city);
$result = mysqli_query($mysqli, $query);

Les exemples ci-dessus vont afficher quelque chose de similaire à :

Select returned 1 rows.

Fatal error: Uncaught mysqli_sql_exception: 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 's-Hertogenbosch'' at line 1 in...

Voir aussi

  • mysqli_set_charset() - Définit le jeu de caractères du client


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, PHP 8)

mysqli::real_query -- mysqli_real_query — Exécute une requête SQL

Description

Style orienté objet

public mysqli::real_query(string $query): bool

Style procédural

mysqli_real_query(mysqli $mysql, string $query): bool

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().

Avertissement

Avertissement de Sécurité : injection SQL

Si la requête contiens des variables d'entrées alors des déclarations préparées paramétrisées devrait être utilisé à la place. Alternativement, les données doivent être correctement formatées et toutes les chaînes de caractères doivent être échappées en utilisant la fonction mysqli_real_escape_string().

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

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou mysqli_init().

query

La requête 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

Si le rapport d'erreurs mysqli est activé (MYSQLI_REPORT_ERROR) et que l'opération demandée échoue, un avertissement est généré. Si, en plus, le mode est défini sur MYSQLI_REPORT_STRICT, une mysqli_sql_exception est lancée à la place.

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, PHP 8)

mysqli::reap_async_query -- mysqli_reap_async_query — Lit un résultat pour une requête asynchrone

Description

Style orienté objet

public mysqli::reap_async_query(): mysqli_result|bool

Style procédural

mysqli_reap_async_query(mysqli $mysql): mysqli_result|bool

Lit le résultat pour une requête asynchrone.

Note:

Disponible uniquement avec mysqlnd.

Liste de paramètres

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou mysqli_init().

Valeurs de retour

Retourne false en cas d'échec. Pour des requêtes réussites qui produisent un jeu de résultat tel que SELECT, SHOW, DESCRIBE ou EXPLAIN, mysqli_reap_async_query() retournera un objet mysqli_result. Pour les autres types de requêtes ayant réussi, mysqli_reap_async_query() retournera true.

Erreurs / Exceptions

Si le rapport d'erreurs mysqli est activé (MYSQLI_REPORT_ERROR) et que l'opération demandée échoue, un avertissement est généré. Si, en plus, le mode est défini sur MYSQLI_REPORT_STRICT, une mysqli_sql_exception est lancée à la place.

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, PHP 7, PHP 8)

mysqli::refresh -- mysqli_refresh — Rafraîchie

Description

Style orienté objet

public mysqli::refresh(int $flags): bool

Style procédural

mysqli_refresh(mysqli $mysql, int $flags): bool

Rafraîchie les tables ou les caches, ou ré-initialise les informations du serveur de réplication.

Liste de paramètres

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou mysqli_init().

flags

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, PHP 8)

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

public mysqli::release_savepoint(string $name): bool

Style procédural:

mysqli_release_savepoint(mysqli $mysql, string $name): bool

Cette fonction équivaut à exécuter $mysqli->query("RELEASE SAVEPOINT `$name`");. Cette fonction ne va pas déclencher un commit ou un rollback.

Liste de paramètres

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou mysqli_init().

name

L'identifiant du point de sauvegarde.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Voir aussi

  • mysqli_savepoint() - Définit un point de sauvegarde nommé de la transaction


Annule la transaction courante

  • « mysqli::release_savepoint
  • mysqli::savepoint »
  • PHP Manual
  • mysqli
  • Annule la transaction courante

mysqli::rollback

mysqli_rollback

(PHP 5, PHP 7, PHP 8)

mysqli::rollback -- mysqli_rollback — Annule la transaction courante

Description

Style orienté objet

public mysqli::rollback(int $flags = 0, ?string $name = null): bool

Style procédural

mysqli_rollback(mysqli $mysql, int $flags = 0, ?string $name = null): bool

Annule la transaction courante pour la base de données.

Liste de paramètres

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou 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.

Erreurs / Exceptions

Si le rapport d'erreurs mysqli est activé (MYSQLI_REPORT_ERROR) et que l'opération demandée échoue, un avertissement est généré. Si, en plus, le mode est défini sur MYSQLI_REPORT_STRICT, une mysqli_sql_exception est lancée à la place.

Historique

Version | Description
8.0.0 | name est désormais nullable.

Exemples

Voir l'exemple se trouvant dans la documentation de la méthode mysqli::begin_transaction().

Notes

Note:

Cette fonction ne fonctionne pas avec les types de table non transactionnelle (comme MyISAM ou ISAM).

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


Définit un point de sauvegarde nommé de la transaction

  • « mysqli::rollback
  • mysqli::select_db »
  • PHP Manual
  • mysqli
  • Définit un point de sauvegarde nommé de la transaction

mysqli::savepoint

mysqli_savepoint

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

mysqli::savepoint -- mysqli_savepoint — Définit un point de sauvegarde nommé de la transaction

Description

Style orienté objet

public mysqli::savepoint(string $name): bool

Style procédural:

mysqli_savepoint(mysqli $mysql, string $name): bool

Cette fonction équivaut à exécuter $mysqli->query("SAVEPOINT `$name`");

Liste de paramètres

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou mysqli_init().

name

L'identifiant du point de sauvegarde

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Voir aussi

  • mysqli_release_savepoint() - Supprime le point de sauvegardé nommé du jeu des points de sauvegarde de la transaction courante


Sélectionne une base de données par défaut pour les requêtes

  • « mysqli::savepoint
  • mysqli::set_charset »
  • 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, PHP 8)

mysqli::select_db -- mysqli_select_db — Sélectionne une base de données par défaut pour les requêtes

Description

Style orienté objet

public mysqli::select_db(string $database): bool

Style procédural

mysqli_select_db(mysqli $mysql, string $database): bool

Sélectionne la base de données par défaut (spécifiée par le paramètre database) pour être utilisée lors de l'exécution de requêtes sur la connexion représentée par le paramètre mysql.

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

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou mysqli_init().

database

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.

Erreurs / Exceptions

Si le rapport d'erreurs mysqli est activé (MYSQLI_REPORT_ERROR) et que l'opération demandée échoue, un avertissement est généré. Si, en plus, le mode est défini sur MYSQLI_REPORT_STRICT, une mysqli_sql_exception est lancée à la place.

Exemples

Exemple #1 Exemple avec mysqli::select_db()

Style orienté objet

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

/* get the name of the current default database */
$result = $mysqli->query("SELECT DATABASE()");
$row = $result->fetch_row();
printf("Default database is %s.\n", $row[0]);

/* change default database to "world" */
$mysqli->select_db("world");

/* get the name of the current default database */
$result = $mysqli->query("SELECT DATABASE()");
$row = $result->fetch_row();
printf("Default database is %s.\n", $row[0]);

Style procédural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

/* get the name of the current default database */
$result = mysqli_query($link, "SELECT DATABASE()");
$row = mysqli_fetch_row($result);
printf("Default database is %s.\n", $row[0]);

/* change default database to "world" */
mysqli_select_db($link, "world");

/* get the name of the current default database */
$result = mysqli_query($link, "SELECT DATABASE()");
$row = mysqli_fetch_row($result);
printf("Default database is %s.\n", $row[0]);

Les exemples ci-dessus vont afficher :

Default database is test.
Default database is world.

Voir aussi

  • mysqli_connect() - Alias de mysqli::__construct
  • mysqli_real_connect() - Ouvre une connexion à un serveur MySQL


Définit le jeu de caractères du client

  • « mysqli::select_db
  • mysqli::$sqlstate »
  • PHP Manual
  • mysqli
  • Définit le jeu de caractères du client

mysqli::set_charset

mysqli_set_charset

(PHP 5 >= 5.0.5, PHP 7, PHP 8)

mysqli::set_charset -- mysqli_set_charset — Définit le jeu de caractères du client

Description

Style orienté objet

public mysqli::set_charset(string $charset): bool

Style procédural

mysqli_set_charset(mysqli $mysql, string $charset): bool

Définit le jeu de caractères à utiliser lors de l'envoi de données depuis et vers le serveur de base de données.

Liste de paramètres

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou 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.

Erreurs / Exceptions

Si le rapport d'erreurs mysqli est activé (MYSQLI_REPORT_ERROR) et que l'opération demandée échoue, un avertissement est généré. Si, en plus, le mode est défini sur MYSQLI_REPORT_STRICT, une mysqli_sql_exception est lancée à la place.

Exemples

Exemple #1 Exemple avec mysqli::set_charset()

Style orienté objet

<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

printf("Jeu de caractère initial : %s\n", $mysqli->character_set_name());

/* Modification du jeu de résultats en utf8mb4 */
$mysqli->set_charset("utf8mb4");

printf("Jeu de caractères courant : %s\n", $mysqli->character_set_name());
?>

Style procédural

<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'test');

printf("Jeu de caractère initial : %s\n", mysqli_character_set_name($link));

/* Modification du jeu de résultats en utf8mb4 */
mysqli_set_charset($link, "utf8mb4");

printf("Jeu de caractères courant : %s\n", mysqli_character_set_name($link));
?>

Les exemples ci-dessus vont afficher quelque chose de similaire à :

Jeu de caractère initial : latin1
Jeu de caractères courant : utf8mb4

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.

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


Retourne l'erreur SQLSTATE de la dernière opération MySQL

  • « mysqli::set_charset
  • 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, PHP 8)

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

mysqli_sqlstate(mysqli $mysql): string

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

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou 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_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* La table Ville existe déjà, nous devrions avoir une erreur */
try {
$mysqli->query("CREATE TABLE City (ID INT, Name VARCHAR(30))");
} catch (mysqli_sql_exception) {
printf("Erreur - SQLSTATE %s.\n", $mysqli->sqlstate);
}

Style procédural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* La table Ville existe déjà, nous devrions avoir une erreur */
try {
mysqli_query($link, "CREATE TABLE City (ID INT, Name VARCHAR(30))");
} catch (mysqli_sql_exception) {
printf("Erreur - SQLSTATE %s.\n", mysqli_sqlstate($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, PHP 8)

mysqli::ssl_set -- mysqli_ssl_set — Utilisée pour établir une connexion sécurisée avec SSL

Description

Style orienté objet

public mysqli::ssl_set(
?string $key,
?string $certificate,
?string $ca_certificate,
?string $ca_path,
?string $cipher_algos
): true

Style procédural

mysqli_ssl_set(
mysqli $mysql,
?string $key,
?string $certificate,
?string $ca_certificate,
?string $ca_path,
?string $cipher_algos
): true

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é.

Liste de paramètres

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou mysqli_init().

key

Le chemin vers le fichier contenant la clé.

certificate

Le chemin vers le fichier contenant le certificat.

ca_certificate

Le chemin vers le fichier contenant l'autorité du certificat.

ca_path

Le chemin vers le dossier contenant les certificats SSL CA au format PEM.

cipher_algos

La liste des chiffres autorisés à être utilisés pour le chiffrage SSL.

Valeurs de retour

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, PHP 8)

mysqli::stat -- mysqli_stat — Obtient le statut courant du système

Description

Style orienté objet

public mysqli::stat(): string|false

Style procédural

mysqli_stat(mysqli $mysql): string|false

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

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou 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_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

printf ("Statut du système : %s\n", $mysqli->stat());

Style procédural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

printf("Statut du système : %s\n", mysqli_stat($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, PHP 8)

mysqli::stmt_init -- mysqli_stmt_init — Initialise une commande MySQL

Description

Style orienté objet

public mysqli::stmt_init(): mysqli_stmt|false

Style procédural

mysqli_stmt_init(mysqli $mysql): mysqli_stmt|false

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

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou 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, PHP 8)

mysqli::store_result -- mysqli_store_result — Transfère un jeu de résultats à partir de la dernière requête

Description

Style orienté objet

public mysqli::store_result(int $mode = 0): mysqli_result|false

Style procédural

mysqli_store_result(mysqli $mysql, int $mode = 0): mysqli_result|false

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 mysql pour une utilisation avec mysqli_data_seek().

Liste de paramètres

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou mysqli_init().

mode

L'option que vous souhaitez définir. À partir de PHP 8.1, ce paramètre n'a aucun effet. 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)

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.

Erreurs / Exceptions

Si le rapport d'erreurs mysqli est activé (MYSQLI_REPORT_ERROR) et que l'opération demandée échoue, un avertissement est généré. Si, en plus, le mode est défini sur MYSQLI_REPORT_STRICT, une mysqli_sql_exception est lancée à la place.

Exemples

Voir la fonction mysqli_multi_query().

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.

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, PHP 8)

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

mysqli_thread_id(mysqli $mysql): int

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

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou 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, PHP 8)

mysqli::thread_safe -- mysqli_thread_safe — Indique si le support des threads est activé ou pas

Description

Style orienté objet

public mysqli::thread_safe(): bool

Style procédural

mysqli_thread_safe(): bool

Indique si la bibliothèque cliente est compilée avec la sécurité thread.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

mysqli::use_result -- mysqli_use_result — Initialise la récupération d'un jeu de résultats

Description

Style orienté objet

public mysqli::use_result(): mysqli_result|false

Style procédural

mysqli_use_result(mysqli $mysql): mysqli_result|false

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().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet de résultats non stockés ou false si une erreur survient.

Erreurs / Exceptions

Si le rapport d'erreurs mysqli est activé (MYSQLI_REPORT_ERROR) et que l'opération demandée échoue, un avertissement est généré. Si, en plus, le mode est défini sur MYSQLI_REPORT_STRICT, une mysqli_sql_exception est lancée à la place.

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, PHP 8)

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

mysqli_warning_count(mysqli $mysql): int

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

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou 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, PHP 8)

Introduction

Représente une requête préparée.

Synopsis de la classe

class mysqli_stmt {
/* Propriétés */
public readonly int|string $affected_rows;
public readonly int|string $insert_id;
public readonly int|string $num_rows;
public readonly int $param_count;
public readonly int $field_count;
public readonly int $errno;
public readonly string $error;
public readonly array $error_list;
public readonly string $sqlstate;
public int $id;
/* Méthodes */
public __construct(mysqli $mysql, ?string $query = null)
public attr_get(int $attribute): int
public attr_set(int $attribute, int $value): bool
public bind_param(string $types, mixed &$var, mixed &...$vars): bool
public bind_result(mixed &$var, mixed &...$vars): bool
public close(): true
public data_seek(int $offset): void
public execute(?array $params = null): bool
public fetch(): ?bool
public free_result(): void
public get_result(): mysqli_result|false
public get_warnings(): mysqli_warning|false
public more_results(): bool
public next_result(): bool
public num_rows(): int|string
public prepare(string $query): mixed
public reset(): bool
public result_metadata(): mysqli_result|false
public send_long_data(int $param_num, string $data): bool
public store_result(): bool
}

Propriétés

id

Enregistre l'ID du relevé.

Sommaire

  • mysqli_stmt::$affected_rows — Retourne le nombre total de lignes modifiées, effacées insérées, ou correspondant 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 — Ajuste le pointeur de résultat vers une ligne arbitraire dans le résultat mis en mémoire tampon.
  • 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 colonnes 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 en tant qu'objet mysqli_result
  • 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 extraites du serveur
  • mysqli_stmt::$param_count — Retourne le nombre de paramètres 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 ensemble de résultats dans un tampon interne


Retourne le nombre total de lignes modifiées, effacées insérées, ou correspondant 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 insérées, ou correspondant par la dernière requête

mysqli_stmt::$affected_rows

mysqli_stmt_affected_rows

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::$affected_rows -- mysqli_stmt_affected_rows — Retourne le nombre total de lignes modifiées, effacées insérées, ou correspondant par la dernière requête

Description

Style orienté objet

int|string $mysqli_stmt->affected_rows;

Style procédural

mysqli_stmt_affected_rows(mysqli_stmt $statement): int|string

Retourne le nombre de lignes affectées par une requête INSERT, UPDATE ou DELETE.

Fonctionne comme mysqli_stmt_num_rows() pour les requêtes SELECT.

Liste de paramètres

statement

Style procédural uniquement : Un objet mysqli_stmt retourné par la fonction mysqli_stmt_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 ou que, pour une requête SELECT, mysqli_stmt_affected_rows() a été appelé avant d'appeler mysqli_stmt_store_result().

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 de mysqli_stmt_affected_rows()

Style orienté objet

<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* 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 */
$stmt = $mysqli->prepare($query);

/* Lie une variable à un paramètre fictif */
$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);
?>

Style procédural

<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* 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 */
$stmt = mysqli_prepare($link, $query);

/* Lie une variable à un paramètre fictif */
$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));
?>

L'exemple ci-dessus va afficher :

Lignes insérées : 17

Voir aussi

  • mysqli_stmt_num_rows() - Retourne le nombre de lignes extraites du serveur
  • mysqli_stmt_store_result() - Stocke un ensemble de résultats dans un tampon interne


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, PHP 8)

mysqli_stmt::attr_get -- mysqli_stmt_attr_get — Récupère la valeur courante d'un attribut de requête

Description

Style orienté objet

public mysqli_stmt::attr_get(int $attribute): int

Style procédural

mysqli_stmt_attr_get(mysqli_stmt $statement, int $attribute): int

Récupère la valeur courante d'un attribut de requête.

Liste de paramètres

statement

Style procédural uniquement : Un objet mysqli_stmt retourné par la fonction mysqli_stmt_init().

attribute

L'attribut que vous voulez récupérer.

Valeurs de retour

Retourne la valeur de l'attribut.


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, PHP 8)

mysqli_stmt::attr_set -- mysqli_stmt_attr_set — Modifie le comportement d'une requête préparée

Description

Style orienté objet

public mysqli_stmt::attr_set(int $attribute, int $value): bool

Style procédural

mysqli_stmt_attr_set(mysqli_stmt $statement, int $attribute, int $value): bool

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

statement

Style procédural uniquement : Un objet mysqli_stmt retourné par la fonction mysqli_stmt_init().

attribute

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. value 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. value 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.

value

La valeur à assigner à l'attribut.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Erreurs / Exceptions

Si le rapport d'erreurs mysqli est activé (MYSQLI_REPORT_ERROR) et que l'opération demandée échoue, un avertissement est généré. Si, en plus, le mode est défini sur MYSQLI_REPORT_STRICT, une mysqli_sql_exception est lancée à la place.

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, PHP 8)

mysqli_stmt::bind_param -- mysqli_stmt_bind_param — Lie des variables à une requête MySQL

Description

Style orienté objet

public mysqli_stmt::bind_param(string $types, mixed &$var, mixed &...$vars): bool

Style procédural

mysqli_stmt_bind_param(
mysqli_stmt $statement,
string $types,
mixed &$var,
mixed &...$vars
): bool

Lie les variables pour les marqueurs de paramètre dans la requête préparé par mysqli_prepare() ou mysqli_stmt_prepare().

Note:

Si la taille des données dépasse la taille maximale 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

statement

Style procédural uniquement : Un objet mysqli_stmt 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 int
d | correspond à une variable de type float
s | correspond à une variable de type string
b | correspond à une variable de type BLOB, qui sera envoyé par paquets

var
vars

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.

Erreurs / Exceptions

Si le rapport d'erreurs mysqli est activé (MYSQLI_REPORT_ERROR) et que l'opération demandée échoue, un avertissement est généré. Si, en plus, le mode est défini sur MYSQLI_REPORT_STRICT, une mysqli_sql_exception est lancée à la place.

Exemples

Exemple #1 Exemple avec mysqli_stmt::bind_param()

Style orienté objet

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');

$stmt = $mysqli->prepare("INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
$stmt->bind_param('sssd', $code, $language, $official, $percent);

$code = 'DEU';
$language = 'Bavarian';
$official = "F";
$percent = 11.2;

$stmt->execute();

printf("%d row inserted.\n", $stmt->affected_rows);

/* Clean up table CountryLanguage */
$mysqli->query("DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("%d row deleted.\n", $mysqli->affected_rows);

Style procédural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'world');

$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;

mysqli_stmt_execute($stmt);

printf("%d row inserted.\n", mysqli_stmt_affected_rows($stmt));

/* Clean up table CountryLanguage */
mysqli_query($link, "DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("%d row deleted.\n", mysqli_affected_rows($link));

Les exemples ci-dessus vont afficher :

1 row inserted.
1 row deleted.

Exemple #2 Using ... to provide arguments

The ... operator can be used to provide variable-length argument list, e.g. in a WHERE IN clause.

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');

$stmt = $mysqli->prepare("SELECT Language FROM CountryLanguage WHERE CountryCode IN (?, ?)");
/* Using ... to provide arguments */
$stmt->bind_param('ss', ...['DEU', 'POL']);
$stmt->execute();
$stmt->store_result();

printf("%d rows found.\n", $stmt->num_rows());

Les exemples ci-dessus vont afficher :

10 rows found.

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, PHP 8)

mysqli_stmt::bind_result -- mysqli_stmt_bind_result — Lie des variables à un jeu de résultats

Description

Style orienté objet

public mysqli_stmt::bind_result(mixed &$var, mixed &...$vars): bool

Style procédural

mysqli_stmt_bind_result(mysqli_stmt $statement, mixed &$var, mixed &...$vars): bool

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 var/vars.

Une colonne peut être liée ou reliée à tout moment, même après qu'un jeu de résultats ait été partiellement récupéré. La nouvelle liaison prend effet la prochaine fois que la mysqli_stmt_fetch() est appelée.

Note:

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é.

Note:

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().

Astuce

Cette fonction est utile pour les résultats basiques. Pour récupérer un ensemble de résultats itérable, ou récupérer chaque ligne sous forme de tableau ou d'objet, utilisez la mysqli_stmt_get_result().

Liste de paramètres

statement

Style procédural uniquement : Un objet mysqli_stmt retourné par la fonction mysqli_stmt_init().

var

La première variable à lier.

vars

Variables supplémentaire à 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_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Préparation de la requête */
$stmt = $mysqli->prepare("SELECT Code, Name FROM Country ORDER BY Name LIMIT 5");
$stmt->execute();

/* Lier des variables à une déclaration préparée */
$stmt->bind_result($col1, $col2);

/* Récupération des valeurs */
while ($stmt->fetch()) {
printf("%s %s\n", $col1, $col2);
}
?>

Exemple #2 Style procédural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Préparation de la requête */
$stmt = mysqli_prepare($link, "SELECT Code, Name FROM Country ORDER BY Name LIMIT 5");
mysqli_stmt_execute($stmt);

/* Lier des variables à une déclaration préparée */
mysqli_stmt_bind_result($stmt, $col1, $col2);

/* Récupération des valeurs */
while (mysqli_stmt_fetch($stmt)) {
printf("%s %s\n", $col1, $col2);
}
?>

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 en tant qu'objet mysqli_result
  • 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


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, PHP 8)

mysqli_stmt::close -- mysqli_stmt_close — Termine une requête préparée

Description

Style orienté objet

public mysqli_stmt::close(): true

Style procédural

mysqli_stmt_close(mysqli_stmt $statement): true

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

statement

Style procédural uniquement : Un objet mysqli_stmt retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.0.0 | Cette fonction retourne désormais toujours true. Auparavant, elle retourne false en cas d'échec.

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, PHP 8)

mysqli_stmt::__construct — Construit un nouvel objet mysqli_stmt

Description

public mysqli_stmt::__construct(mysqli $mysql, ?string $query = null)

Cette méthode construit un nouvel objet mysqli_stmt.

Liste de paramètres

link

Un objet mysqli valide.

query

La requête, sous la forme d'une chaîne de caractères. Si ce paramètre est null, alors le constructeur se comporte comme la fonction mysqli_stmt_init() ; sinon il se comportera comme la fonction mysqli_prepare().

Erreurs / Exceptions

Si le rapport d'erreurs mysqli est activé (MYSQLI_REPORT_ERROR) et que l'opération demandée échoue, un avertissement est généré. Si, en plus, le mode est défini sur MYSQLI_REPORT_STRICT, une mysqli_sql_exception est lancée à la place.

Historique

Version | Description
8.0.0 | query est désormais nullable.

Voir aussi

  • mysqli_prepare() - Prépare une requête SQL pour l'exécution
  • mysqli_stmt_init() - Initialise une commande MySQL


Ajuste le pointeur de résultat vers une ligne arbitraire dans le résultat mis en mémoire tampon.

  • « mysqli_stmt::__construct
  • mysqli_stmt::$errno »
  • PHP Manual
  • mysqli_stmt
  • Ajuste le pointeur de résultat vers une ligne arbitraire dans le résultat mis en mémoire tampon.

mysqli_stmt::data_seek

mysqli_stmt_data_seek

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::data_seek -- mysqli_stmt_data_seek — Ajuste le pointeur de résultat vers une ligne arbitraire dans le résultat mis en mémoire tampon.

Description

Style orienté objet

public mysqli_stmt::data_seek(int $offset): void

Style procédural

mysqli_stmt_data_seek(mysqli_stmt $statement, int $offset): void

Cette fonction déplace le pointeur du jeu de résultats mis en mémoire tampon vers une ligne arbitraire spécifiée par le paramètre offset.

Cette fonction ne fonctionne que sur le jeu de résultats interne mis en mémoire tampon. mysqli_stmt_store_result() doit être appelée avant la fonction mysqli_stmt_data_seek().

Liste de paramètres

statement

Style procédural uniquement : Un objet mysqli_stmt 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
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
$stmt = $mysqli->prepare($query);
$stmt->execute();

/* 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);

$stmt->bind_result($name, $code);

$stmt->store_result();

/* Lit la ligne n°400 */
$stmt->data_seek(399);

/* Ferme la commande */
mysqli_stmt_close($stmt);
}

printf("Ville: %s Code Pays : %s\n", $name, $code);
?>

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, PHP 8)

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

mysqli_stmt_errno(mysqli_stmt $statement): int

Retourne le code erreur pour la dernière requête appelée dans le traitement qui a réussi ou échoué.

Liste de paramètres

statement

Style procédural uniquement : Un objet mysqli_stmt 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, PHP 8)

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

mysqli_stmt_error_list(mysqli_stmt $statement): array

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

statement

Style procédural uniquement : Un objet mysqli_stmt 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 :

Error:
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, PHP 8)

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

mysqli_stmt_error(mysqli_stmt $statement): string

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

statement

Style procédural uniquement : Un objet mysqli_stmt 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, PHP 8)

mysqli_stmt::execute -- mysqli_stmt_execute — Exécute une requête préparée

Description

Style orienté objet

public mysqli_stmt::execute(?array $params = null): bool

Style procédural

mysqli_stmt_execute(mysqli_stmt $statement, ?array $params = null): bool

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(). Si la requête produit un ensemble de résultats, il peut être récupéré à l'aide de la fonction mysqli_stmt_get_result() ou en le récupérant ligne par ligne directement à partir de l'instruction à l'aide de la fonction mysqli_stmt_fetch().

Liste de paramètres

statement

Style procédural uniquement : Un objet mysqli_stmt retourné par la fonction mysqli_stmt_init().

params

Une liste facultative, en tant que tableau, avec autant d'éléments qu'il y a de paramètres liés dans l'instruction SQL en cours d'exécution. Chaque valeur est traitée 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.

Erreurs / Exceptions

Si le rapport d'erreurs mysqli est activé (MYSQLI_REPORT_ERROR) et que l'opération demandée échoue, un avertissement est généré. Si, en plus, le mode est défini sur MYSQLI_REPORT_STRICT, une mysqli_sql_exception est lancée à la place.

Historique

Version | Description
8.1.0 | Le paramètre facultatif params a été ajouté.

Exemples

Exemple #1 Exécuter une instruction préparée avec des variables liées

Style orienté objet

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City");

/* Préparation de la requête */
$stmt = $mysqli->prepare("INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)");

/* Lier les variables aux paramètres */
$stmt->bind_param("sss", $val1, $val2, $val3);
$val1 = 'Stuttgart';
$val2 = 'DEU';
$val3 = 'Baden-Wuerttemberg';

/* Exécuter l'instruction */
$stmt->execute();
$val1 = 'Bordeaux';
$val2 = 'FRA';
$val3 = 'Aquitaine';

/* Exécuter l'instruction */
$stmt->execute();

/* Récupération de toutes les lignes de myCity */
$query = "SELECT Name, CountryCode, District FROM myCity";
$result = $mysqli->query($query);
while ($row = $result->fetch_row()) {
printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
}

Style procédural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City");

/* Préparation de la requête */
$stmt = mysqli_prepare($link, "INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)");

/* Lier les variables aux paramètres */
mysqli_stmt_bind_param($stmt, "sss", $val1, $val2, $val3);
$val1 = 'Stuttgart';
$val2 = 'DEU';
$val3 = 'Baden-Wuerttemberg';

/* Exécuter l'instruction */
mysqli_stmt_execute($stmt);
$val1 = 'Bordeaux';
$val2 = 'FRA';
$val3 = 'Aquitaine';

/* Exécuter l'instruction */
mysqli_stmt_execute($stmt);

/* Récupération de toutes les lignes de myCity */
$query = "SELECT Name, CountryCode, District FROM myCity";
$result = mysqli_query($link, $query);
while ($row = mysqli_fetch_row($result)) {
printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
}

Les exemples ci-dessus vont afficher :

Stuttgart (DEU,Baden-Wuerttemberg)
Bordeaux (FRA,Aquitaine)

Exemple #2 Exécuter une instruction préparée avec un tableau de valeurs

Style orienté objet

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');

$mysqli->query('CREATE TEMPORARY TABLE myCity LIKE City');

/* Préparation de la requête */
$stmt = $mysqli->prepare('INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)');

/* Exécuter l'instruction */
$stmt->execute(['Stuttgart', 'DEU', 'Baden-Wuerttemberg']);

/* Récupération de toutes les lignes de myCity */
$query = 'SELECT Name, CountryCode, District FROM myCity';
$result = $mysqli->query($query);
while ($row = $result->fetch_row()) {
printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
}

Style procédural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'world');

mysqli_query($link, 'CREATE TEMPORARY TABLE myCity LIKE City');

/* Préparation de la requête */
$stmt = mysqli_prepare($link, 'INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)');

/* Exécuter l'instruction */
mysqli_stmt_execute($stmt, ['Stuttgart', 'DEU', 'Baden-Wuerttemberg']);

/* Récupération de toutes les lignes de myCity */
$query = 'SELECT Name, CountryCode, District FROM myCity';
$result = mysqli_query($link, $query);
while ($row = mysqli_fetch_row($result)) {
printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
}

Les exemples ci-dessus vont afficher :

Stuttgart (DEU,Baden-Wuerttemberg)

Voir aussi

  • mysqli_execute_query() - Prepares, binds parameters, and executes SQL statement
  • 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 en tant qu'objet mysqli_result


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, PHP 8)

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

public mysqli_stmt::fetch(): ?bool

Style procédural

mysqli_stmt_fetch(mysqli_stmt $statement): ?bool

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

statement

Style procédural uniquement : Un objet mysqli_stmt 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.

Erreurs / Exceptions

Si le rapport d'erreurs mysqli est activé (MYSQLI_REPORT_ERROR) et que l'opération demandée échoue, un avertissement est généré. Si, en plus, le mode est défini sur MYSQLI_REPORT_STRICT, une mysqli_sql_exception est lancée à la place.

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 colonnes dans la requête donnée

  • « mysqli_stmt::fetch
  • mysqli_stmt::free_result »
  • PHP Manual
  • mysqli_stmt
  • Retourne le nombre de colonnes dans la requête donnée

mysqli_stmt::$field_count

mysqli_stmt_field_count

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::$field_count -- mysqli_stmt_field_count — Retourne le nombre de colonnes dans la requête donnée

Description

Style orienté objet

int $mysqli_stmt->field_count;

Style procédural

mysqli_stmt_field_count(mysqli_stmt $statement): int

Retourne le nombre de colonnes dans la déclaration préparée.

Liste de paramètres

statement

Style procédural uniquement : Un objet mysqli_stmt retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Retourne un entier représentant le nombre de colonnes.

Exemples

Exemple #1 Style orienté objet

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$code = 'FR';

$stmt = $mysqli->prepare("SELECT Name FROM Country WHERE Code=?");
$stmt->bind_param('s', $code);
$stmt->execute();
$row = $stmt->get_result()->fetch_row();
for ($i = 0; $i < $stmt->field_count; $i++) {
printf("Value of column number %d is %s", $i, $row[$i]);
}

Exemple #2 Style procédural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

$code = 'FR';

$stmt = mysqli_prepare($mysqli, "SELECT Name FROM Country WHERE Code=?");
mysqli_stmt_bind_param($stmt, 's', $code);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
$row = mysqli_fetch_row($result);
for ($i = 0; $i < mysqli_stmt_field_count($stmt); $i++) {
printf("Value of column number %d is %s", $i, $row[$i]);
}

Les exemples ci-dessus vont afficher quelque chose de similaire à :

Value of column number 0 is France

Voir aussi

  • mysqli_stmt_num_rows() - Retourne le nombre de lignes extraites du serveur


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, PHP 8)

mysqli_stmt::free_result -- mysqli_stmt_free_result — Libère le résultat MySQL de la mémoire

Description

Style orienté objet

public mysqli_stmt::free_result(): void

Style procédural

mysqli_stmt_free_result(mysqli_stmt $statement): void

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

statement

Style procédural uniquement : Un objet mysqli_stmt retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • mysqli_stmt_store_result() - Stocke un ensemble de résultats dans un tampon interne


Récupère un jeu de résultats depuis une requête préparée en tant qu'objet mysqli_result

  • « 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 en tant qu'objet mysqli_result

mysqli_stmt::get_result

mysqli_stmt_get_result

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

mysqli_stmt::get_result -- mysqli_stmt_get_result — Récupère un jeu de résultats depuis une requête préparée en tant qu'objet mysqli_result

Description

Style orienté objet

public mysqli_stmt::get_result(): mysqli_result|false

Style procédural

mysqli_stmt_get_result(mysqli_stmt $statement): mysqli_result|false

Récupère un jeu de résultats d'une déclaration préparée sous la forme d'un objet mysqli_result. Les données seront récupérées depuis le serveur MySQL vers PHP. Cette méthode ne doit être appelée que pour les requêtes qui produisent un ensemble de résultats.

Note:

Disponible uniquement avec mysqlnd.

Note:

Cette fonction ne peut pas être utilisée conjointement avec la mysqli_stmt_store_result(). Ces deux fonctions récupèrent le jeu de résultats complet du serveur MySQL.

Liste de paramètres

statement

Style procédural uniquement : Un objet mysqli_stmt retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Retourne un jeu de résultats pour les requêtes SELECT réussies, ou false pour d'autres requêtes DML ou en cas d'échec. La fonction mysqli_errno() peut être utilisé pour distinguer entre ces deux types d'erreurs. Retourne false en cas d'échec. Pour des requêtes réussites qui produisent un jeu de résultat tel que SELECT, SHOW, DESCRIBE ou EXPLAIN, mysqli_stmt_get_result() retournera un objet mysqli_result. Pour les autres types de requêtes ayant réussi, mysqli_stmt_get_result() retournera false. La fonction mysqli_stmt_errno() peut être utilisé pour distinguer entre les deux raisons pour false ; à cause d'un bogue, antérieur à PHP 7.4.13, mysqli_errno() devait être utilisé pour déterminer ceci.

Erreurs / Exceptions

Si le rapport d'erreurs mysqli est activé (MYSQLI_REPORT_ERROR) et que l'opération demandée échoue, un avertissement est généré. Si, en plus, le mode est défini sur MYSQLI_REPORT_STRICT, une mysqli_sql_exception est lancée à la place.

Exemples

Exemple #1 Style orienté objet

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, Population, Continent FROM Country WHERE Continent=? ORDER BY Name LIMIT 1";

$stmt = $mysqli->prepare($query);
$stmt->bind_param("s", $continent);

$continentList = array('Europe', 'Africa', 'Asia', 'North America');

foreach ($continentList as $continent) {
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_array(MYSQLI_NUM)) {
foreach ($row as $r) {
print "$r ";
}
print "\n";
}
}
?>

Exemple #2 Style procédural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, Population, Continent FROM Country WHERE Continent=? ORDER BY Name LIMIT 1";

$stmt = mysqli_prepare($link, $query);
mysqli_stmt_bind_param($stmt, "s", $continent);

$continentList= array('Europe', 'Africa', 'Asia', 'North America');

foreach ($continentList 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";
}
}
?>

Les exemples ci-dessus vont afficher quelque chose de similaire à :

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() - Récupère la ligne suivante d'un ensemble de résultats sous forme de tableau associatif, numérique ou les deux
  • mysqli_stmt_store_result() - Stocke un ensemble de résultats dans un tampon interne


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, PHP 8)

mysqli_stmt::get_warnings -- mysqli_stmt_get_warnings — Récupère le résultat de SHOW WARNINGS

Description

Style orienté objet

public mysqli_stmt::get_warnings(): mysqli_warning|false

Style procédural

mysqli_stmt_get_warnings(mysqli_stmt $statement): mysqli_warning|false
Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

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|string $mysqli_stmt->insert_id;

Style procédural

mysqli_stmt_insert_id(mysqli_stmt $statement): int|string
Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

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

public mysqli_stmt::more_results(): bool

Style procédural:

mysqli_stmt_more_results(mysql_stmt $statement): bool

Vérifie s'il y a encore des résultats depuis une requête multiple.

Note:

Disponible uniquement avec mysqlnd.

Liste de paramètres

statement

Style procédural uniquement : Un objet mysqli_stmt retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Retourne true s'il y a encore des résultat, false sinon.

Voir aussi

  • mysqli_stmt::next_result() - Lit le résultat suivant depuis une requête multiple
  • mysqli::multi_query() - Exécute une ou plusieurs requêtes sur la base de donnée


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, PHP 8)

mysqli_stmt::next_result -- mysqli_stmt_next_result — Lit le résultat suivant depuis une requête multiple

Description

Style orienté objet

public mysqli_stmt::next_result(): bool

Style procédural:

mysqli_stmt_next_result(mysql_stmt $statement): bool

Lit le résultat suivant depuis une requête multiple.

Note:

Antérieur PHP 8.1.0, disponible uniquement avec mysqlnd.

Liste de paramètres

statement

Style procédural uniquement : Un objet mysqli_stmt 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

Si le rapport d'erreurs mysqli est activé (MYSQLI_REPORT_ERROR) et que l'opération demandée échoue, un avertissement est généré. Si, en plus, le mode est défini sur MYSQLI_REPORT_STRICT, une mysqli_sql_exception est lancée à la place.

Historique

Version | Description
8.1.0 | Désormais aussi disponible lors de la liaison avec libmysqlclient.

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 ou plusieurs requêtes sur la base de donnée


Retourne le nombre de lignes extraites du serveur

  • « mysqli_stmt::next_result
  • mysqli_stmt::$param_count »
  • PHP Manual
  • mysqli_stmt
  • Retourne le nombre de lignes extraites du serveur

mysqli_stmt::$num_rows

mysqli_stmt::num_rows

mysqli_stmt_num_rows

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::$num_rows -- mysqli_stmt::num_rows -- mysqli_stmt_num_rows — Retourne le nombre de lignes extraites du serveur

Description

Style orienté objet

int|string $mysqli_stmt->num_rows;
public mysqli_stmt::num_rows(): int|string

Style procédural

mysqli_stmt_num_rows(mysqli_stmt $statement): int|string

Retourne le nombre de lignes mises en mémoire tampon dans l'instruction. Cette fonction ne fonctionnera qu'après l'appel de mysqli_stmt_store_result() pour mettre en mémoire tampon l'ensemble des résultats dans le handle de l'instruction.

Cette fonction retourne 0 à moins que toutes les lignes aient été récupérées du serveur.

Liste de paramètres

statement

Style procédural uniquement : Un objet mysqli_stmt retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Un entier représentant le nombre de lignes mises en mémoire tampon. Retourne 0 en mode non tamponné, sauf si toutes les lignes ont été récupérées du serveur.

Note:

Si le nombre de ligne est supérieur à PHP_INT_MAX, le nombre sera retourné en tant que chaîne de caractères.

Exemples

Exemple #1 Style orienté objet

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";

$stmt = $mysqli->prepare($query);
$stmt->execute();

/* Stocker le résultat dans un tampon interne */
$stmt->store_result();

printf("Nombre de lignes : %d.\n", $stmt->num_rows);
?>

Exemple #2 Style procédural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";

$stmt = mysqli_prepare($link, $query);
mysqli_stmt_execute($stmt);

/* Stocker le résultat dans un tampon interne */
mysqli_stmt_store_result($stmt);

printf("Nombre de lignes : %d.\n", mysqli_stmt_num_rows($stmt));
?>

Les exemples ci-dessus vont afficher :

Nombre de lignes : 20.

Voir aussi

  • mysqli_stmt_store_result() - Stocke un ensemble de résultats dans un tampon interne
  • mysqli_stmt_affected_rows() - Retourne le nombre total de lignes modifiées, effacées insérées, ou correspondant par la dernière requête
  • mysqli_prepare() - Prépare une requête SQL pour l'exécution


Retourne le nombre de paramètres d'une commande SQL

  • « mysqli_stmt::$num_rows
  • mysqli_stmt::prepare »
  • PHP Manual
  • mysqli_stmt
  • Retourne le nombre de paramètres d'une commande SQL

mysqli_stmt::$param_count

mysqli_stmt_param_count

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::$param_count -- mysqli_stmt_param_count — Retourne le nombre de paramètres d'une commande SQL

Description

Style orienté objet

int $mysqli_stmt->param_count;

Style procédural

mysqli_stmt_param_count(mysqli_stmt $statement): int

Retourne le nombre de variables attendues par la commande préparée stmt.

Liste de paramètres

statement

Style procédural uniquement : Un objet mysqli_stmt 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, PHP 8)

mysqli_stmt::prepare -- mysqli_stmt_prepare — Prépare une requête SQL pour l'exécution

Description

Style orienté objet

public mysqli_stmt::prepare(string $query): mixed

Style procédural

mysqli_stmt_prepare(mysqli_stmt $statement, string $query): bool

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

statement

Style procédural uniquement : Un objet mysqli_stmt 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:

Les marques sont autorisées uniquement dans certains 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 (de tables ou de colonnes).

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Erreurs / Exceptions

Si le rapport d'erreurs mysqli est activé (MYSQLI_REPORT_ERROR) et que l'opération demandée échoue, un avertissement est généré. Si, en plus, le mode est défini sur MYSQLI_REPORT_STRICT, une mysqli_sql_exception est lancée à la place.

Exemples

Exemple #1 Exemple pour mysqli_stmt::prepare()

Style orienté objet

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$city = "Amersfoort";

/* create a prepared statement */
$stmt = $mysqli->stmt_init();
$stmt->prepare("SELECT District FROM City WHERE Name=?");

/* bind parameters for markers */
$stmt->bind_param("s", $city);

/* execute query */
$stmt->execute();

/* bind result variables */
$stmt->bind_result($district);

/* fetch value */
$stmt->fetch();

printf("%s is in district %s\n", $city, $district);

Style procédural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$city = "Amersfoort";

/* create a prepared statement */
$stmt = mysqli_stmt_init($link);
mysqli_stmt_prepare($stmt, "SELECT District FROM City WHERE Name=?");

/* bind parameters for markers */
mysqli_stmt_bind_param($stmt, "s", $city);

/* execute query */
mysqli_stmt_execute($stmt);

/* bind result variables */
mysqli_stmt_bind_result($stmt, $district);

/* fetch value */
mysqli_stmt_fetch($stmt);

printf("%s is in district %s\n", $city, $district);

Les exemples ci-dessus vont afficher :

Amersfoort is in district 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 en tant qu'objet mysqli_result
  • 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, PHP 8)

mysqli_stmt::reset -- mysqli_stmt_reset — Annule une requête préparée

Description

Style orienté objet

public mysqli_stmt::reset(): bool

Style procédural

mysqli_stmt_reset(mysqli_stmt $statement): bool

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

statement

Style procédural uniquement : Un objet mysqli_stmt 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, PHP 8)

mysqli_stmt::result_metadata -- mysqli_stmt_result_metadata — Retourne les métadonnées de préparation de requête MySQL

Description

Style orienté objet

public mysqli_stmt::result_metadata(): mysqli_result|false

Style procédural

mysqli_stmt_result_metadata(mysqli_stmt $statement): mysqli_result|false

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

statement

Style procédural uniquement : Un objet mysqli_stmt retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Retourne un objet de résultats, ou false si une erreur survient.

Erreurs / Exceptions

Si le rapport d'erreurs mysqli est activé (MYSQLI_REPORT_ERROR) et que l'opération demandée échoue, un avertissement est généré. Si, en plus, le mode est défini sur MYSQLI_REPORT_STRICT, une mysqli_sql_exception est lancée à la place.

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, PHP 8)

mysqli_stmt::send_long_data -- mysqli_stmt_send_long_data — Envoie des données MySQL par paquets

Description

Style orienté objet

public mysqli_stmt::send_long_data(int $param_num, string $data): bool

Style procédural

mysqli_stmt_send_long_data(mysqli_stmt $statement, int $param_num, string $data): bool

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

statement

Style procédural uniquement : Un objet mysqli_stmt retourné par la fonction mysqli_stmt_init().

param_num

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, PHP 8)

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

mysqli_stmt_sqlstate(mysqli_stmt $statement): string

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

statement

Style procédural uniquement : Un objet mysqli_stmt 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.

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.

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.

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 ensemble de résultats dans un tampon interne

  • « mysqli_stmt::$sqlstate
  • mysqli_result »
  • PHP Manual
  • mysqli_stmt
  • Stocke un ensemble de résultats dans un tampon interne

mysqli_stmt::store_result

mysqli_stmt_store_result

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::store_result -- mysqli_stmt_store_result — Stocke un ensemble de résultats dans un tampon interne

Description

Style orienté objet

public mysqli_stmt::store_result(): bool

Style procédural

mysqli_stmt_store_result(mysqli_stmt $statement): bool

Cette fonction devrait être appelé pour les requêtes qui succèdent à produire un jeu de résultats (e.g. SELECT, SHOW, DESCRIBE, EXPLAIN) seulement si le jeu de résultats complet doit être mit en tampon par PHP. Chaque appel successif à mysqli_stmt_fetch() retournera les données mise en tampon.

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 false.

Liste de paramètres

statement

Style procédural uniquement : Un objet mysqli_stmt 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

Si le rapport d'erreurs mysqli est activé (MYSQLI_REPORT_ERROR) et que l'opération demandée échoue, un avertissement est généré. Si, en plus, le mode est défini sur MYSQLI_REPORT_STRICT, une mysqli_sql_exception est lancée à la place.

Exemples

Exemple #1 Style orienté objet

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
$stmt = $mysqli->prepare($query);
$stmt->execute();

/* Stocker le résultat dans un tampon interne */
$stmt->store_result();

printf("Nombre de lignes : %d.\n", $stmt->num_rows);

Exemple #2 Style procédural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
$stmt = mysqli_prepare($link, $query);
mysqli_stmt_execute($stmt);

/* Stocker le résultat dans un tampon interne */
mysqli_stmt_store_result($stmt);

printf("Nombre de lignes : %d.\n", mysqli_stmt_num_rows($stmt));

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, PHP 8)

Introduction

Représente le jeu de résultats obtenu depuis une requête.

Synopsis de la classe

class mysqli_result implements IteratorAggregate {
/* Propriétés */
public readonly int $current_field;
public readonly int $field_count;
public readonly ?array $lengths;
public readonly int|string $num_rows;
public int $type;
/* Méthodes */
public __construct(mysqli $mysql, int $result_mode = MYSQLI_STORE_RESULT)
public data_seek(int $offset): bool
public fetch_all(int $mode = MYSQLI_NUM): array
public fetch_array(int $mode = MYSQLI_BOTH): array|null|false
public fetch_assoc(): array|null|false
public fetch_column(int $column = 0): null|int|float|string|false
public fetch_field_direct(int $index): object|false
public fetch_field(): object|false
public fetch_fields(): array
public fetch_object(string $class = "stdClass", array $constructor_args = []): object|null|false
public fetch_row(): array|null|false
public field_seek(int $index): true
public free(): void
public close(): void
public free_result(): void
public getIterator(): Iterator
}

Propriétés

type

Enregistre le fait que le résultat soit mis en mémoire tampon ou non sous la forme d'un entier (MYSQLI_STORE_RESULT ou MYSQLI_USE_RESULT, respectivement).

Historique

Version | Description
8.0.0 | La classe mysqli_result implémente désormais IteratorAggregate. Auparavant, seule Traversable était implémentée.

Sommaire

  • mysqli_result::__construct — Constructs a mysqli_result object
  • 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 — Récupère toutes les lignes de résultats dans un tableau associatif, numérique, ou les deux
  • mysqli_result::fetch_array — Récupère la ligne suivante d'un ensemble de résultats sous forme de tableau associatif, numérique ou les deux
  • mysqli_result::fetch_assoc — Récupère la ligne suivante d'un ensemble de résultats sous forme de tableau associatif
  • mysqli_result::fetch_column — Fetch a single column from the next row of a result set
  • 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 suivante d'un ensemble de résultats 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 l'ensemble de résultats
  • 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::getIterator — Retrieve an external iterator
  • 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 le jeu de résultats


Constructs a mysqli_result object

  • « mysqli_result
  • mysqli_result::$current_field »
  • PHP Manual
  • mysqli_result
  • Constructs a mysqli_result object

mysqli_result::__construct

(PHP 5, PHP 7, PHP 8)

mysqli_result::__construct — Constructs a mysqli_result object

Description

public mysqli_result::__construct(mysqli $mysql, int $result_mode = MYSQLI_STORE_RESULT)

This method constructs a new mysqli_result object.

It can be used to create the mysqli_result object after calling the mysqli_real_query() or mysqli_multi_query() function. Constructing the object manually is equivalent to calling the mysqli_store_result() or mysqli_use_result() function.

Liste de paramètres

mysql

Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou mysqli_init().

result_mode

The result mode can be one of 2 constants indicating how the result will be returned from the MySQL server.

MYSQLI_STORE_RESULT (default) - creates a mysqli_result object with buffered result set.

MYSQLI_USE_RESULT - creates a mysqli_result object with unbuffered result set. As long as there are pending records waiting to be fetched, the connection line will be busy and all subsequent calls will return error Commands out of sync. To avoid the error all records must be fetched from the server or the result set must be discarded by calling mysqli_free_result(). The connection must remain open for the rows to be fetched.

Erreurs / Exceptions

Si le rapport d'erreurs mysqli est activé (MYSQLI_REPORT_ERROR) et que l'opération demandée échoue, un avertissement est généré. Si, en plus, le mode est défini sur MYSQLI_REPORT_STRICT, une mysqli_sql_exception est lancée à la place.

Exemples

Exemple #1 Creation of a mysqli_result object

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Select queries return a result set */
$mysqli->real_query("SELECT Name FROM City LIMIT 10");

$result = new mysqli_result($mysqli);
printf("Select returned %d rows.\n", $result->num_rows);

Les exemples ci-dessus vont afficher quelque chose de similaire à :

Select returned 10 rows.

Voir aussi

  • mysqli_multi_query() - Exécute une ou plusieurs requêtes sur la base de donnée
  • 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
  • mysqli_use_result() - Initialise la récupération d'un jeu de résultats


Récupère la position courante d'un champ dans un pointeur de résultat

  • « mysqli_result::__construct
  • 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, PHP 8)

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

mysqli_field_tell(mysqli_result $result): int

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 objet mysqli_result
retourné par mysqli_query(),
mysqli_store_result(), mysqli_use_result(),
ou mysqli_stmt_get_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, PHP 8)

mysqli_result::data_seek -- mysqli_data_seek — Déplace le pointeur interne de résultat

Description

Style orienté objet

public mysqli_result::data_seek(int $offset): bool

Style procédural

mysqli_data_seek(mysqli_result $result, int $offset): bool

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 objet mysqli_result
retourné par mysqli_query(),
mysqli_store_result(), mysqli_use_result(),
ou mysqli_stmt_get_result().

offset

Le décalage de la ligne. 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.

Exemples

Exemple #1 Exemple avec mysqli::data_seek()

Style orienté objet

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
$result = $mysqli->query($query);

/* Recherche la ligne 401 */
$result->data_seek(400);

/* Récupération de cette ligne */
$row = $result->fetch_row();
printf("Ville: %s Code Pays: %s\n", $row[0], $row[1]);
?>

Style procédural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
$result = mysqli_query($link, $query);

/* Recherché la ligne 401 */
mysqli_data_seek($result, 400);

/* Récupération de cette ligne */
$row = mysqli_fetch_row($result);
printf("Ville: %s Code Pays: %s\n", $row[0], $row[1]);

Les exemples ci-dessus vont afficher :

Ville: Benin City  Code Pays: NGA

Exemple #2 Ajustement du pointeur de résultat lors de l'itération

Cette fonction peut être utile lors de l'itération sur l'ensemble des résultats pour imposer un ordre personnalisé ou pour rembobiner l'ensemble des résultats lors d'itérations multiples.

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 15,4";
$result = $mysqli->query($query);

/* Interroger l'ensemble des résultats dans l'ordre inverse */
for ($row_no = $result->num_rows - 1; $row_no >= 0; $row_no--) {
$result->data_seek($row_no);

/* Récupération de cette ligne */
$row = $result->fetch_row();
printf("Ville: %s Code Pays: %s\n", $row[0], $row[1]);
}

/* Remise à zéro du pointeur au début de l'ensemble de résultats */
$result->data_seek(0);
print "\n";

/* Interroger à nouveau le même ensemble de résultats */
while ($row = $result->fetch_row()) {
printf("Ville: %s Code Pays: %s\n", $row[0], $row[1]);
}

Les exemples ci-dessus vont afficher :

Ville: Acmbaro  Code Pays: MEX
Ville: Abuja  Code Pays: NGA
Ville: Abu Dhabi  Code Pays: ARE
Ville: Abottabad  Code Pays: PAK
Ville: Abottabad  Code Pays: PAK
Ville: Abu Dhabi  Code Pays: ARE
Ville: Abuja  Code Pays: NGA
Ville: Acmbaro  Code Pays: MEX

Notes

Note:

Cette fonction ne peut être utilisée qu'avec des résultats obtenus avec la fonction mysqli_store_result(), mysqli_query() ou mysqli_stmt_get_result().

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() - Récupère la ligne suivante d'un ensemble de résultats sous forme de tableau associatif, numérique ou les deux
  • mysqli_fetch_assoc() - Récupère la ligne suivante d'un ensemble de résultats sous forme de tableau associatif
  • mysqli_fetch_object() - Retourne la ligne suivante d'un ensemble de résultats 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 le jeu de résultats


Récupère toutes les lignes de résultats dans un tableau associatif, numérique, ou les deux

  • « mysqli_result::data_seek
  • mysqli_result::fetch_array »
  • PHP Manual
  • mysqli_result
  • Récupère toutes les lignes de résultats dans un tableau associatif, numérique, ou les deux

mysqli_result::fetch_all

mysqli_fetch_all

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

mysqli_result::fetch_all -- mysqli_fetch_all — Récupère toutes les lignes de résultats dans un tableau associatif, numérique, ou les deux

Description

Style orienté objet

public mysqli_result::fetch_all(int $mode = MYSQLI_NUM): array

Style procédural

mysqli_fetch_all(mysqli_result $result, int $mode = MYSQLI_NUM): array

Retourne un tableau deux dimensionnel de tous les résultats sous forme d'un tableau associatif, numérique, ou les deux.

Note:

Antérieur à PHP 8.1.0, disponible uniquement avec mysqlnd.

Liste de paramètres

result

Style procédural uniquement : Un objet mysqli_result
retourné par mysqli_query(),
mysqli_store_result(), mysqli_use_result(),
ou mysqli_stmt_get_result().

mode

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.

Historique

Version | Description
8.1.0 | Désormais aussi disponible lors de la liaison avec libmysqlclient.

Exemples

Exemple #1 mysqli_result::fetch_all() example

Style orienté objet

<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$result = $mysqli->query("SELECT Name, CountryCode FROM City ORDER BY ID LIMIT 3");
$rows = $result->fetch_all(MYSQLI_ASSOC);
foreach ($rows as $row) {
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}

Style procédural

<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");
$result = mysqli_query($mysqli, "SELECT Name, CountryCode FROM City ORDER BY ID LIMIT 3");
$rows = mysqli_fetch_all($result, MYSQLI_ASSOC);
foreach ($rows as $row) {
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}

Les exemples ci-dessus vont afficher :

Kabul (AFG)
Qandahar (AFG)
Herat (AFG)

Voir aussi

  • mysqli_fetch_array() - Récupère la ligne suivante d'un ensemble de résultats sous forme de tableau associatif, numérique ou les deux
  • mysqli_fetch_column() - Fetch a single column from the next row of a result set
  • mysqli_query() - Exécute une requête sur la base de données


Récupère la ligne suivante d'un ensemble de résultats sous forme de tableau associatif, numérique ou les deux

  • « mysqli_result::fetch_all
  • mysqli_result::fetch_assoc »
  • PHP Manual
  • mysqli_result
  • Récupère la ligne suivante d'un ensemble de résultats sous forme de tableau associatif, numérique ou les deux

mysqli_result::fetch_array

mysqli_fetch_array

(PHP 5, PHP 7, PHP 8)

mysqli_result::fetch_array -- mysqli_fetch_array — Récupère la ligne suivante d'un ensemble de résultats sous forme de tableau associatif, numérique ou les deux

Description

Style orienté objet

public mysqli_result::fetch_array(int $mode = MYSQLI_BOTH): array|null|false

Style procédural

mysqli_fetch_array(mysqli_result $result, int $mode = MYSQLI_BOTH): array|null|false

Retourne une ligne de données de l'ensemble de résultats et la renvoie sous forme de tableau. Chaque appel ultérieur à cette fonction renverra la ligne suivante dans l'ensemble de résultats, ou null s'il n'y a plus de lignes.

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.

Si deux ou plusieurs colonnes du résultat ont le même nom, la dernière colonne sera prioritaire et écrasera toutes les données précédentes. Pour accéder aux autres colonnes du même nom, vous devez utiliser l'index numérique, ou faire un alias pour chaque colonne.

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 objet mysqli_result
retourné par mysqli_query(),
mysqli_store_result(), mysqli_use_result(),
ou mysqli_stmt_get_result().

mode

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 représentant la ligne récupérée, null s'il n'y a plus de lignes dans le jeu de résultats, ou false si une erreur survient.

Exemples

Exemple #1 mysqli_result::fetch_array() example

Style orienté objet

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$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"]);

Style procédural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";
$result = mysqli_query($mysqli, $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"]);

Les exemples ci-dessus vont afficher quelque chose de similaire à :

Kabul (AFG)
Qandahar (AFG)
Herat (AFG)

Voir aussi

  • mysqli_fetch_assoc() - Récupère la ligne suivante d'un ensemble de résultats sous forme de tableau associatif
  • mysqli_fetch_column() - Fetch a single column from the next row of a result set
  • mysqli_fetch_row() - Récupère une ligne de résultat sous forme de tableau indexé
  • mysqli_fetch_object() - Retourne la ligne suivante d'un ensemble de résultats 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 la ligne suivante d'un ensemble de résultats sous forme de tableau associatif

  • « mysqli_result::fetch_array
  • mysqli_result::fetch_column »
  • PHP Manual
  • mysqli_result
  • Récupère la ligne suivante d'un ensemble de résultats sous forme de tableau associatif

mysqli_result::fetch_assoc

mysqli_fetch_assoc

(PHP 5, PHP 7, PHP 8)

mysqli_result::fetch_assoc -- mysqli_fetch_assoc — Récupère la ligne suivante d'un ensemble de résultats sous forme de tableau associatif

Description

Style orienté objet

public mysqli_result::fetch_assoc(): array|null|false

Style procédural

mysqli_fetch_assoc(mysqli_result $result): array|null|false

Retourne une ligne de données de l'ensemble de résultats et la renvoie sous forme de tableau associatif. Chaque appel ultérieur à cette fonction renverra la ligne suivante dans l'ensemble de résultats, ou null s'il n'y a plus de lignes.

Si deux ou plusieurs colonnes du résultat ont le même nom, la dernière colonne sera prioritaire et écrasera toutes les données précédentes. Pour accéder à plusieurs colonnes portant le même nom, la mysqli_fetch_row() peut être utilisée pour récupérer le tableau indexé numériquement ou des alias peuvent être utilisés dans la liste de sélection de la requête SQL pour donner des noms différents aux colonnes.

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 objet mysqli_result
retourné par mysqli_query(),
mysqli_store_result(), mysqli_use_result(),
ou mysqli_stmt_get_result().

Valeurs de retour

Renvoie un tableau associatif représentant la ligne extraite, où chaque clé du tableau représente le nom d'une des colonnes du jeu de résultats, null s'il n'y a plus de lignes dans le jeu de résultats, ou false si une erreur survient.

Exemples

Exemple #1 Exemple mysqli_result::fetch_assoc()

Style orienté objet

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";

$result = $mysqli->query($query);

/* fetch associative array */
while ($row = $result->fetch_assoc()) {
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}

Style procédural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";

$result = mysqli_query($mysqli, $query);

/* fetch associative array */
while ($row = mysqli_fetch_assoc($result)) {
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}

Les exemples ci-dessus vont afficher quelque chose de similaire à :

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Exemple #2 Comparaison de l'usage de mysqli_result iterator et mysqli_result::fetch_assoc()

mysqli_result peut être itéré en utilisant un foreach. Le jeu de résultats sera toujours itéré à partir de la première ligne, quel que soit la position actuelle.

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = 'SELECT Name, CountryCode FROM City ORDER BY ID DESC';

// Utilise un itérateur
$result = $mysqli->query($query);
foreach ($result as $row) {
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}

echo "\n==================\n";

// N'utilise pas d'itérateur
$result = $mysqli->query($query);
while ($row = $result->fetch_assoc()) {
printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}

Résultat de l'exemple ci-dessus est similaire à :

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

==================
Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Voir aussi

  • mysqli_fetch_array() - Récupère la ligne suivante d'un ensemble de résultats sous forme de tableau associatif, numérique ou les deux
  • mysqli_fetch_column() - Fetch a single column from the next row of a result set
  • mysqli_fetch_row() - Récupère une ligne de résultat sous forme de tableau indexé
  • mysqli_fetch_object() - Retourne la ligne suivante d'un ensemble de résultats 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


Fetch a single column from the next row of a result set

  • « mysqli_result::fetch_assoc
  • mysqli_result::fetch_field_direct »
  • PHP Manual
  • mysqli_result
  • Fetch a single column from the next row of a result set

mysqli_result::fetch_column

mysqli_fetch_column

(PHP 8 >= 8.1.0)

mysqli_result::fetch_column -- mysqli_fetch_column — Fetch a single column from the next row of a result set

Description

Style orienté objet

public mysqli_result::fetch_column(int $column = 0): null|int|float|string|false

Style procédural

mysqli_fetch_column(mysqli_result $result, int $column = 0): null|int|float|string|false

Fetches one row of data from the result set and returns the 0-indexed column. Each subsequent call to this function will return the value from the next row within the result set, or false if there are no more rows.

Note: Cette fonction définit les champs NULL à la valeur PHP null.

Liste de paramètres

result

Style procédural uniquement : Un objet mysqli_result
retourné par mysqli_query(),
mysqli_store_result(), mysqli_use_result(),
ou mysqli_stmt_get_result().

column

0-indexed number of the column you wish to retrieve from the row. If no value is supplied, the first column will be returned.

Valeurs de retour

Returns a single column from the next row of a result set or false if there are no more rows.

Avertissement

There is no way to return another column from the same row if you use this function to retrieve data.

Exemples

Exemple #1 mysqli_result::fetch_column() example

Style orienté objet

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT CountryCode, Name FROM City ORDER BY ID DESC LIMIT 5";

$result = $mysqli->query($query);

/* fetch a single value from the second column */
while ($Name = $result->fetch_column(1)) {
printf("%s\n", $Name);
}

Style procédural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT CountryCode, Name FROM City ORDER BY ID DESC LIMIT 5";

$result = mysqli_query($mysqli, $query);

/* fetch a single value from the second column */
while ($Name = mysqli_fetch_column($result, 1)) {
printf("%s\n", $Name);
}

Les exemples ci-dessus vont afficher quelque chose de similaire à :

Rafah
Nablus
Jabaliya
Hebron
Khan Yunis

Voir aussi

  • mysqli_fetch_all() - Récupère toutes les lignes de résultats dans un tableau associatif, numérique, ou les deux
  • mysqli_fetch_array() - Récupère la ligne suivante d'un ensemble de résultats sous forme de tableau associatif, numérique ou les deux
  • mysqli_fetch_assoc() - Récupère la ligne suivante d'un ensemble de résultats sous forme de tableau associatif
  • mysqli_fetch_object() - Retourne la ligne suivante d'un ensemble de résultats sous forme d'objet
  • mysqli_fetch_row() - Récupère une ligne de résultat sous forme de tableau indexé
  • 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_column
  • 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, PHP 8)

mysqli_result::fetch_field_direct -- mysqli_fetch_field_direct — Récupère les métadonnées d'un champ unique

Description

Style orienté objet

public mysqli_result::fetch_field_direct(int $index): object|false

Style procédural

mysqli_fetch_field_direct(mysqli_result $result, int $index): object|false

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 objet mysqli_result
retourné par mysqli_query(),
mysqli_store_result(), mysqli_use_result(),
ou mysqli_stmt_get_result().

index

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 index.

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é
def | Inutilisé. Toujours une chaîne vide
db | Le nom de la base de données
catalog | Inutilisé. Toujours "def"
max_length | La longueur maximale du champ pour le jeu de résultats. À partir de PHP 8.1, cette valeur est toujours 0.
length | La largeur du champ en octets. Pour les colonnes de type chaîne de caractères, la valeur de longueur varie en fonction du jeu de caractères de la connexion. Par exemple, si le jeu de caractères est latin1, un jeu de caractères mono-octet, la valeur de longueur pour une requête SELECT 'abc' est 3. Si le jeu de caractères est utf8mb4, un jeu de caractères multioctets dans lequel les caractères occupent jusqu'à 4 octets, la valeur de longueur est 12.
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 pour les champs numériques et la précision des secondes fractionnaires pour les champs temporels.

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 l'ensemble de résultats
  • 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, PHP 8)

mysqli_result::fetch_field -- mysqli_fetch_field — Retourne le prochain champs dans le jeu de résultats

Description

Style orienté objet

public mysqli_result::fetch_field(): object|false

Style procédural

mysqli_fetch_field(mysqli_result $result): object|false

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 objet mysqli_result
retourné par mysqli_query(),
mysqli_store_result(), mysqli_use_result(),
ou mysqli_stmt_get_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 champ appartient (s'il n'a pas été calculé)
orgtable | Le nom original de la table si un alias a été spécifié
def | Inutilisé. Toujours une chaîne vide
db | Le nom de la base de données
catalog | Inutilisé. Toujours "def"
max_length | La longueur maximale du champ pour le jeu de résultats. À partir de PHP 8.1, cette valeur est toujours 0.
length | La largeur du champ en octets. Pour les colonnes de type chaîne de caractères, la valeur de longueur varie en fonction du jeu de caractères de la connexion. Par exemple, si le jeu de caractères est latin1, un jeu de caractères mono-octet, la valeur de longueur pour une requête SELECT 'abc' est 3. Si le jeu de caractères est utf8mb4, un jeu de caractères multioctets dans lequel les caractères occupent jusqu'à 4 octets, la valeur de longueur est 12.
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 pour les champs numériques et la précision des secondes fractionnaires pour les champs temporels.

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 l'ensemble de résultats
  • 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, PHP 8)

mysqli_result::fetch_fields -- mysqli_fetch_fields — Retourne un tableau d'objets représentant les champs dans le résultat

Description

Style orienté objet

public mysqli_result::fetch_fields(): array

Style procédural

mysqli_fetch_fields(mysqli_result $result): array

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 objet mysqli_result
retourné par mysqli_query(),
mysqli_store_result(), mysqli_use_result(),
ou mysqli_stmt_get_result().

Valeurs de retour

Renvoie un tableau d'objets contenant des informations sur la définition des 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 champ appartient (s'il n'a pas été calculé)
orgtable | Le nom original de la table si un alias a été spécifié
def | Inutilisé. Toujours une chaîne vide
db | Le nom de la base de données
catalog | Inutilisé. Toujours "def"
max_length | La longueur maximale du champ pour le jeu de résultats. À partir de PHP 8.1, cette valeur est toujours 0.
length | La largeur du champ en octets. Pour les colonnes de type chaîne de caractères, la valeur de longueur varie en fonction du jeu de caractères de la connexion. Par exemple, si le jeu de caractères est latin1, un jeu de caractères mono-octet, la valeur de longueur pour une requête SELECT 'abc' est 3. Si le jeu de caractères est utf8mb4, un jeu de caractères multioctets dans lequel les caractères occupent jusqu'à 4 octets, la valeur de longueur est 12.
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 pour les champs numériques et la précision des secondes fractionnaires pour les champs temporels.

Exemples

Exemple #1 Style orienté objet

<?php
$mysqli = new mysqli("127.0.0.1", "root", "foofoo", "sakila");

/* vérification de la connexion */
if ($mysqli->connect_errno) {
printf("Échec de la connexion : %s\n", $mysqli->connect_error);
exit();
}

foreach (array('latin1', 'utf8') as $charset) {

// Définir le jeu de caractère, pour montrer son impact sur certaines valeurs (par exemple, longueurs en octets)
$mysqli->set_charset($charset);

$query = "SELECT actor_id, last_name from actor ORDER BY actor_id";

echo "============================\n";
echo "Jeu de caractères : $charset\n";
echo "============================\n";

if ($result = $mysqli->query($query)) {

/* Récupère les informations des champs 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("Length: %d\n", $val->length);
printf("charsetnr: %d\n", $val->charsetnr);
printf("Flags: %d\n", $val->flags);
printf("Type: %d\n\n", $val->type);
}
$result->free();
}
}
$mysqli->close();
?>

Exemple #2 Style procédural

<?php
$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "sakila");

/* vérification de la connexion */
if (mysqli_connect_errno()) {
printf("Échec de la connexion : %s\n", mysqli_connect_error());
exit();
}

foreach (array('latin1', 'utf8') as $charset) {

// Définir le jeu de caractère, pour montrer son impact sur certaines valeurs (par exemple, longueurs en octets)
mysqli_set_charset($link, $charset);

$query = "SELECT actor_id, last_name from actor ORDER BY actor_id";

echo "============================\n";
echo "Jeu de caractères : $charset\n";
echo "============================\n";

if ($result = mysqli_query($link, $query)) {

/* Récupère les informations des champs 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("Length: %d\n", $val->length);
printf("charsetnr: %d\n", $val->charsetnr);
printf("Flags: %d\n", $val->flags);
printf("Type: %d\n\n", $val->type);
}
mysqli_free_result($result);
}
}

mysqli_close($link);
?>

Les exemples ci-dessus vont afficher :

============================
Jeu de caractères : latin1
============================
Name:      actor_id
Table:     actor
Max. Len:  3
Length:    5
charsetnr: 63
Flags:     49699
Type:      2

Name:      last_name
Table:     actor
Max. Len:  12
Length:    45
charsetnr: 8
Flags:     20489
Type:      253

============================
Jeu de caractères : utf8
============================
Name:      actor_id
Table:     actor
Max. Len:  3
Length:    5
charsetnr: 63
Flags:     49699
Type:      2

Name:      last_name
Table:     actor
Max. Len:  12
Length:    135
charsetnr: 33
Flags:     20489

Voir aussi

  • mysqli_num_fields() - Récupère le nombre de champs dans l'ensemble de résultats
  • 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 suivante d'un ensemble de résultats sous forme d'objet

  • « mysqli_result::fetch_fields
  • mysqli_result::fetch_row »
  • PHP Manual
  • mysqli_result
  • Retourne la ligne suivante d'un ensemble de résultats sous forme d'objet

mysqli_result::fetch_object

mysqli_fetch_object

(PHP 5, PHP 7, PHP 8)

mysqli_result::fetch_object -- mysqli_fetch_object — Retourne la ligne suivante d'un ensemble de résultats sous forme d'objet

Description

Style orienté objet

public mysqli_result::fetch_object(string $class = "stdClass", array $constructor_args = []): object|null|false

Style procédural

mysqli_fetch_object(mysqli_result $result, string $class = "stdClass", array $constructor_args = []): object|null|false

Retourne une ligne de données dans le jeu de résultats et la renvoie sous forme d'objet, où chaque propriété représente le nom de la colonne du jeu de résultats. Chaque appel ultérieur à cette fonction renverra la ligne suivante dans l'ensemble de résultats, ou null s'il n'y a plus de lignes.

Si deux ou plusieurs colonnes du résultat ont le même nom, la dernière colonne sera prioritaire et écrasera toutes les données précédentes. Pour accéder à plusieurs colonnes portant le même nom, la mysqli_fetch_row() peut être utilisée pour récupérer le tableau indexé numériquement ou des alias peuvent être utilisés dans la liste de sélection de la requête SQL pour donner des noms différents aux colonnes.

Note: Cette fonction affecte les propriétés de l'objet avant d'en appeler le constructeur.

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 objet mysqli_result
retourné par mysqli_query(),
mysqli_store_result(), mysqli_use_result(),
ou mysqli_stmt_get_result().

class

Le nom de la classe à instancier. Si non fourni, un objet stdClass sera retourné.

constructor_args

Un tableau de paramètres (optionnel) à passer au constructeur de l'objet class.

Valeurs de retour

Retourne un objet représentant la ligne récupérée, où chaque propriété représente le nom de la colonne du jeu de résultats, null s'il n'y a plus de lignes dans le jeu de résultats, ou false si une erreur survient.

Erreurs / Exceptions

Une ValueError est lancée quand constructor_args n'est pas vide et que la classe n'a pas de constructeur.

Historique

Version | Description
8.3.0 | Lance désormais une exception ValueError quand constructor_args n'est pas vide et que la classe n'a pas de constructeur ; précédemment, une exception Exception était déclenchée.
8.0.0 | constructor_args accepte désormais [] pour les constructeurs avec 0 paramètre ; auparavant une exception était lancé.

Exemples

Exemple #1 Exemple mysqli_result::fetch_object()

Style orienté objet

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";

$result = $mysqli->query($query);

while ($obj = $result->fetch_object()) {
printf("%s (%s)\n", $obj->Name, $obj->CountryCode);
}

Style procédural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";

$result = mysqli_query($link, $query);

while ($obj = mysqli_fetch_object($result)) {
printf("%s (%s)\n", $obj->Name, $obj->CountryCode);
}

Les exemples ci-dessus vont afficher quelque chose de similaire à :

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Voir aussi

  • mysqli_fetch_array() - Récupère la ligne suivante d'un ensemble de résultats sous forme de tableau associatif, numérique ou les deux
  • mysqli_fetch_assoc() - Récupère la ligne suivante d'un ensemble de résultats sous forme de tableau associatif
  • mysqli_fetch_column() - Fetch a single column from the next row of a result set
  • 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, PHP 8)

mysqli_result::fetch_row -- mysqli_fetch_row — Récupère une ligne de résultat sous forme de tableau indexé

Description

Style orienté objet

public mysqli_result::fetch_row(): array|null|false

Style procédural

mysqli_fetch_row(mysqli_result $result): array|null|false

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.

Note: Cette fonction définit les champs NULL à la valeur PHP null.

Liste de paramètres

result

Style procédural uniquement : Un objet mysqli_result
retourné par mysqli_query(),
mysqli_store_result(), mysqli_use_result(),
ou mysqli_stmt_get_result().

Valeurs de retour

Retourne un tableau énuméré représentant la ligne récupérée, null s'il n'y a plus de lignes dans le jeu de résultats, ou false si une erreur survient.

Exemples

Exemple #1 Exemple mysqli_result::fetch_row()

Style orienté objet

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";

$result = $mysqli->query($query);

/* Récupère un tableau d'objets */
while ($row = $result->fetch_row()) {
printf("%s (%s)\n", $row[0], $row[1]);
}

Style procédural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";

$result = mysqli_query($mysqli, $query);

/* Récupère un tableau associatif */
while ($row = mysqli_fetch_row($result)) {
printf("%s (%s)\n", $row[0], $row[1]);
}

Les exemples ci-dessus vont afficher quelque chose de similaire à :

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Voir aussi

  • mysqli_fetch_array() - Récupère la ligne suivante d'un ensemble de résultats sous forme de tableau associatif, numérique ou les deux
  • mysqli_fetch_assoc() - Récupère la ligne suivante d'un ensemble de résultats sous forme de tableau associatif
  • mysqli_fetch_column() - Fetch a single column from the next row of a result set
  • mysqli_fetch_object() - Retourne la ligne suivante d'un ensemble de résultats 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 l'ensemble de résultats

  • « mysqli_result::fetch_row
  • mysqli_result::field_seek »
  • PHP Manual
  • mysqli_result
  • Récupère le nombre de champs dans l'ensemble de résultats

mysqli_result::$field_count

mysqli_num_fields

(PHP 5, PHP 7, PHP 8)

mysqli_result::$field_count -- mysqli_num_fields — Récupère le nombre de champs dans l'ensemble de résultats

Description

Style orienté objet

int $mysqli_result->field_count;

Style procédural

mysqli_num_fields(mysqli_result $result): int

Retourne le nombre de champs dans l'ensemble de résultats.

Liste de paramètres

result

Style procédural uniquement : Un objet mysqli_result
retourné par mysqli_query(),
mysqli_store_result(), mysqli_use_result(),
ou mysqli_stmt_get_result().

Valeurs de retour

Un int représentant le nombre de champs.

Exemples

Exemple #1 Style orienté objet

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$result = $mysqli->query("SELECT Name, CountryCode, District, Population 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);
?>

Exemple #2 Style procédural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$result = mysqli_query($link, "SELECT Name, CountryCode, District, Population 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);
?>

Les exemples ci-dessus vont afficher :

Le résultat a 4 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, PHP 8)

mysqli_result::field_seek -- mysqli_field_seek — Déplace le pointeur de résultat sur le champ spécifié

Description

Style orienté objet

public mysqli_result::field_seek(int $index): true

Style procédural

mysqli_field_seek(mysqli_result $result, int $index): true

Place le curseur sur le champ spécifié par le numéro index. 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 objet mysqli_result
retourné par mysqli_query(),
mysqli_store_result(), mysqli_use_result(),
ou mysqli_stmt_get_result().

index

Le numéro du champ. Cette valeur doit être dans l'intervalle 0 à nombre de champs - 1.

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.0.0 | Cette fonction retourne désormais toujours true. Auparavant, elle renvoyait false en cas d'échec.

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::getIterator »
  • PHP Manual
  • mysqli_result
  • Libère la mémoire associée à un résultat

mysqli_result::free

mysqli_result::close

mysqli_result::free_result

mysqli_free_result

(PHP 5, PHP 7, PHP 8)

mysqli_result::free -- mysqli_result::close -- mysqli_result::free_result -- mysqli_free_result — Libère la mémoire associée à un résultat

Description

Style orienté objet

public mysqli_result::free(): void
public mysqli_result::close(): void
public mysqli_result::free_result(): void

Style procédural

mysqli_free_result(mysqli_result $result): void

Libère la mémoire associée à un résultat.

Liste de paramètres

result

Style procédural uniquement : Un objet mysqli_result
retourné par mysqli_query(),
mysqli_store_result(), mysqli_use_result(),
ou mysqli_stmt_get_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_get_result() - Récupère un jeu de résultats depuis une requête préparée en tant qu'objet mysqli_result
  • 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


Retrieve an external iterator

  • « mysqli_result::free
  • mysqli_result::$lengths »
  • PHP Manual
  • mysqli_result
  • Retrieve an external iterator

mysqli_result::getIterator

(PHP 8)

mysqli_result::getIterator — Retrieve an external iterator

Description

public mysqli_result::getIterator(): Iterator

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Retourne la longueur des colonnes de la ligne courante du jeu de résultats

  • « mysqli_result::getIterator
  • 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, PHP 8)

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

mysqli_fetch_lengths(mysqli_result $result): array|false

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 objet mysqli_result
retourné par mysqli_query(),
mysqli_store_result(), mysqli_use_result(),
ou mysqli_stmt_get_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 le jeu de résultats

  • « mysqli_result::$lengths
  • mysqli_driver »
  • PHP Manual
  • mysqli_result
  • Retourne le nombre de lignes dans le jeu de résultats

mysqli_result::$num_rows

mysqli_num_rows

(PHP 5, PHP 7, PHP 8)

mysqli_result::$num_rows -- mysqli_num_rows — Retourne le nombre de lignes dans le jeu de résultats

Description

Style orienté objet

int|string $mysqli_result->num_rows;

Style procédural

mysqli_num_rows(mysqli_result $result): int|string

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. Cette fonction renvoie 0 pour les ensembles de résultats non tamponnés, sauf si toutes les lignes ont été récupérées du serveur.

Liste de paramètres

result

Style procédural uniquement : Un objet mysqli_result
retourné par mysqli_query(),
mysqli_store_result(), mysqli_use_result(),
ou mysqli_stmt_get_result().

Valeurs de retour

Un entier représentant le nombre de lignes récupérées. Retourne 0 en mode non tamponné, sauf si toutes les lignes ont été récupérées depuis le serveur.

Note:

Si le nombre de ligne est supérieur à PHP_INT_MAX, le nombre sera retourné en tant que chaîne de caractères.

Exemples

Exemple #1 Style orienté objet

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$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);

Exemple #2 Style procédural

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$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);
?>

Les exemples ci-dessus vont afficher :

Le jeu de résultats a 239 lignes.

Notes

Note:

Contrairement à la fonction mysqli_stmt_num_rows(), cette fonction n'a pas de variante de méthode orientée objet. Dans le style orienté objet, utilisez le getter de la propriété.

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
  • mysqli_stmt_num_rows() - Retourne le nombre de lignes extraites du serveur


La classe mysqli_driver

(PHP 5, PHP 7, PHP 8)

Introduction

La classe mysqli_driver est une instance du pattern monostate, c.à.d. il n'y a qu'un seul pilote qui peut accéder à travers un nombre arbitraire d'instance mysqli_driver.

Synopsis de la classe

final class mysqli_driver {
/* Propriétés */
public readonly string $client_info;
public readonly int $client_version;
public readonly int $driver_version;
public int $report_mode;
}

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

Avertissement

Cette propriété est obsolète à partir de PHP 8.1.0. Il est fortement déconseillé de s'appuyer sur cette propriété.

embedded

Si le support "MySQLi Embedded" est activé

Avertissement

Cette propriété a été supprimée à partir de PHP 8.0.0.

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 index). 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 — Définit le mode du rapport d'erreur mysqli


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 >= 5.1.0, PHP 7 < 7.4.0)

mysqli_driver::embedded_server_end -- mysqli_embedded_server_end — Arrête le serveur embarqué

Avertissement

Cette fonction est a été SUPPRIMÉE à partir de PHP 7.4.0.

Description

Style orienté objet

public mysqli_driver::embedded_server_end(): void

Style procédural

mysqli_embedded_server_end(): void
Avertissement

Cette fonction est actuellement non documentée ; 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 >= 5.1.0, PHP 7 < 7.4.0)

mysqli_driver::embedded_server_start -- mysqli_embedded_server_start — Initialise et démarre le serveur embarqué

Avertissement

Cette fonction est a été SUPPRIMÉE à partir de PHP 7.4.0.

Description

Style orienté objet

public mysqli_driver::embedded_server_start(int $start, array $arguments, array $groups): bool

Style procédural

mysqli_embedded_server_start(int $start, array $arguments, array $groups): bool
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.


Définit le mode du rapport d'erreur mysqli

  • « mysqli_driver::embedded_server_start
  • mysqli_warning »
  • PHP Manual
  • mysqli_driver
  • Définit le mode du rapport d'erreur mysqli

mysqli_driver::$report_mode

mysqli_report

(PHP 5, PHP 7, PHP 8)

mysqli_driver::$report_mode -- mysqli_report — Définit le mode du rapport d'erreur mysqli

Description

Style orienté objet

int $mysqli_driver->report_mode;

Style procédural

mysqli_report(int $flags): bool

En fonction des drapeaux, ceci définit le mode du rapport d'erreur de mysqli à exception, avertissement, ou aucun. Quand définit à MYSQLI_REPORT_ALL ou MYSQLI_REPORT_INDEX ceci va aussi informer à propos des requêtes qui n'utilisent pas d'index (ou un mauvais index).

À partir de PHP 8.1.0, la valeur par défaut est MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT. Auparavant, il était MYSQLI_REPORT_OFF.

Liste de paramètres

flags

Drapeaux supportés
Nom | Description
MYSQLI_REPORT_OFF | Désactive les rapports (valeur par défaut)
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

Retourne true.

Historique

Version | Description
8.1.0 | La valeur par défaut est désormais MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT. Auparavant, elle était MYSQLI_REPORT_OFF.

Exemples

Exemple #1 Style orienté objet

<?php

/* Activation du rapport d'erreur */
$driver = new mysqli_driver();
$driver->report_mode = MYSQLI_REPORT_ALL;

try {
/* si la connexion échoue, une mysqli_sql_exception sera lancé */
$mysqli = new mysqli("localhost", "my_user", "my_password", "my_db");

/* 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, si la colonne population n'a pas d'index */
$result = $mysqli->query("SELECT Name FROM City WHERE population > 50000");
} catch (mysqli_sql_exception $e) {
error_log($e->__toString());
}

Exemple #2 Style procédural

<?php

/* Activation du rapport d'erreur */
mysqli_report(MYSQLI_REPORT_ALL);

try {
/* si la connexion échoue, une exception mysqli_sql_exception sera lancée */
$link = mysqli_connect("localhost", "my_user", "my_password", "my_db");

/* cette requête devrait rapporter une erreur */
$result = mysqli_query($link, "SELECT Name FROM Nonexistingtable WHERE population > 50000");

/* cette requête devrait rapporter un mauvais index, si la colonne population n'a pas d'index */
$result = mysqli_query($link, "SELECT Name FROM City WHERE population > 50000");
} catch (mysqli_sql_exception $e) {
error_log($e->__toString());
}

Exemple #3 Rapport d'erreur à l'exception des erreurs de mauvais index

<?php

/* Activation du rapport d'erreur */
$driver = new mysqli_driver();
$driver->report_mode = MYSQLI_REPORT_ALL;

try {
/* si la connexion échoue, une mysqli_sql_exception sera lancé */
$mysqli = new mysqli("localhost", "my_user", "my_password", "my_db");

/* cette requête devrait rapporter une erreur */
$result = $mysqli->query("SELECT Name FROM Nonexistingtable WHERE population > 50000");

/* ceci n'émettra PAS d'erreur même si aucun index est disponible */
$result = $mysqli->query("SELECT Name FROM City WHERE population > 50000");
} catch (mysqli_sql_exception $e) {
error_log($e->__toString());
}

Voir aussi

  • 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, PHP 8)

Introduction

Représente une alerte MySQL.

Synopsis de la classe

final class mysqli_warning {
/* Propriétés */
public string $message;
public string $sqlstate;
public int $errno;
/* Méthodes */
private __construct()
public next(): bool
}

Propriétés

message

Le message

sqlstate

Le statut SQL

errno

Le numéro de l'erreur

Sommaire

  • mysqli_warning::__construct — Private constructor to disallow direct instantiation
  • mysqli_warning::next — Récupère le prochain avertissement


Private constructor to disallow direct instantiation

  • « mysqli_warning
  • mysqli_warning::next »
  • PHP Manual
  • mysqli_warning
  • Private constructor to disallow direct instantiation

mysqli_warning::__construct

(PHP 5, PHP 7, PHP 8)

mysqli_warning::__construct — Private constructor to disallow direct instantiation

Description

private mysqli_warning::__construct()

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Récupère le prochain avertissement

  • « mysqli_warning::__construct
  • mysqli_sql_exception »
  • PHP Manual
  • mysqli_warning
  • Récupère le prochain avertissement

mysqli_warning::next

(PHP 5, PHP 7, PHP 8)

mysqli_warning::next — Récupère le prochain avertissement

Description

public mysqli_warning::next(): bool

Modifie les informations d'avertissement au prochain avertissement si possible.

Une fois que l'avertissement a été défini au prochain avertissement, de nouvelle valeurs pour les propriétés de message, sqlstate et errno de mysqli_warning sont disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true si le prochain avertissement a été récupéré avec succès. S'il n'y a plus d'avertissement, retournera false


La classe mysqli_sql_exception

(PHP 5, PHP 7, PHP 8)

Introduction

La classe de gestion des exceptions mysqli.

Synopsis de la classe

final class mysqli_sql_exception extends RuntimeException {
/* Propriétés */
protected string $sqlstate = "00000";
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes */
public getSqlState(): string
/* Méthodes héritées */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Propriétés

sqlstate

Le statut SQL avec l'erreur.

Sommaire

  • mysqli_sql_exception::getSqlState — Returns the SQLSTATE error code


Returns the SQLSTATE error code

  • « mysqli_sql_exception
  • Fonctions mysqli obsolètes et alias »
  • PHP Manual
  • mysqli_sql_exception
  • Returns the SQLSTATE error code

mysqli_sql_exception::getSqlState

(PHP 8 >= 8.1.2)

mysqli_sql_exception::getSqlState — Returns the SQLSTATE error code

Description

public mysqli_sql_exception::getSqlState(): string

Returns a string containing the SQLSTATE error code for the last error. The error code consists of five characters. The values are specified by ANSI SQL and ODBC. For a list of possible values, see » http://dev.mysql.com/doc/mysql/en/error-handling.html.

Note:

Note that not all MySQL errors are yet mapped to SQLSTATE's. The value HY000 (general error) is used for unmapped errors.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a string containing the SQLSTATE error code for the last error. The error code consists of five characters.


Fonctions mysqli obsolètes et alias

Sommaire

  • mysqli_connect — Alias de mysqli::__construct
  • mysqli::escape_string — Alias de mysqli_real_escape_string
  • mysqli_execute — Alias de mysqli_stmt_execute
  • mysqli_get_client_stats — Retourne les statistiques client par processus
  • mysqli_get_links_stats — Retourne des informations sur les liens ouverts et mis en cache
  • mysqli_report — Alias de mysqli_driver->report_mode
  • mysqli::set_opt — Alias de mysqli_options


Alias de mysqli::__construct

  • « Fonctions mysqli obsolètes et alias
  • mysqli::escape_string »
  • PHP Manual
  • Fonctions mysqli obsolètes et alias
  • Alias de mysqli::__construct

mysqli_connect

(PHP 5, PHP 7, PHP 8)

mysqli_connect — Alias de mysqli::__construct()

Description

Cette fonction est un alias de : mysqli::__construct()

Note:

Si le mode d'exception mysqli n'est pas activé et qu'une connexion échoue, alors mysqli_connect() retourne false au lieu d'un objet. La fonction mysqli_connect_error() peut être utilisé pour récupérer l'erreur de connexion.


Alias de mysqli_real_escape_string

  • « mysqli_connect
  • mysqli_execute »
  • PHP Manual
  • Fonctions mysqli obsolètes et alias
  • Alias de mysqli_real_escape_string

mysqli::escape_string

mysqli_escape_string

(PHP 5, PHP 7, PHP 8)

mysqli::escape_string -- 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_get_client_stats »
  • PHP Manual
  • Fonctions mysqli obsolètes et alias
  • Alias de mysqli_stmt_execute

mysqli_execute

(PHP 5, PHP 7, PHP 8)

mysqli_execute — Alias de mysqli_stmt_execute()

Description

Cette fonction est un alias de : 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


Retourne les statistiques client par processus

  • « mysqli_execute
  • mysqli_get_links_stats »
  • PHP Manual
  • Fonctions mysqli obsolètes et alias
  • Retourne les statistiques client par processus

mysqli_get_client_stats

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

mysqli_get_client_stats — Retourne les statistiques client par processus

Description

mysqli_get_client_stats(): array

Retourne les statistiques client par processus.

Note:

Disponible uniquement avec mysqlnd.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau avec les statistiques client.

Exemples

Exemple #1 Un exemple avec mysqli_get_client_stats()

<?php
$link = mysqli_connect();
print_r(mysqli_get_client_stats());
?>

Résultat de l'exemple ci-dessus est 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_client_stats
  • mysqli_report »
  • 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, PHP 8)

mysqli_get_links_stats — Retourne des informations sur les liens ouverts et mis en cache

Description

mysqli_get_links_stats(): array

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_driver->report_mode

  • « mysqli_get_links_stats
  • mysqli::set_opt »
  • PHP Manual
  • Fonctions mysqli obsolètes et alias
  • Alias de mysqli_driver->report_mode

mysqli_report

(PHP 5, PHP 7, PHP 8)

mysqli_report — Alias de mysqli_driver->report_mode

Description

Cette fonction est un alias de : mysqli_driver->report_mode


Alias de mysqli_options

  • « mysqli_report
  • Historique des modifications »
  • PHP Manual
  • Fonctions mysqli obsolètes et alias
  • Alias de mysqli_options

mysqli::set_opt

mysqli_set_opt

(PHP 5, PHP 7, PHP 8)

mysqli::set_opt -- mysqli_set_opt — Alias de mysqli_options()

Description

Cette fonction est un alias de : mysqli_options().


Historique des modifications

Les modifications suivantes ont été apportées aux classes/fonctions/méthodes de cette extension.

Version Fonction Description


Mysql_xdevapi

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Building / Compiling From Source
  • Constantes pré-définies
  • Historique des modifications
  • Exemples
  • Fonctions Mysql_xdevapi
    • expression — Bind prepared statement variables as parameters
    • getSession — Connect to a MySQL server
  • mysql_xdevapi\BaseResult — Interface BaseResult
    • BaseResult::getWarnings — Fetch warnings from last operation
    • BaseResult::getWarningsCount — Fetch warning count from last operation
  • mysql_xdevapi\Client — Client class
    • mysql_xdevapi\Client::close — Close client
    • Client::__construct — Client constructor
    • Client::getClient — Get client session
  • mysql_xdevapi\Collection — Classe Collection
    • Collection::add — Add collection document
    • Collection::addOrReplaceOne — Add or replace collection document
    • Collection::__construct — Collection constructor
    • Collection::count — Get document count
    • Collection::createIndex — Create collection index
    • Collection::dropIndex — Drop collection index
    • Collection::existsInDatabase — Check if collection exists in database
    • Collection::find — Search for document
    • Collection::getName — Get collection name
    • Collection::getOne — Get one document
    • Collection::getSchema — Get schema object
    • Collection::getSession — Get session object
    • Collection::modify — Modify collection documents
    • Collection::remove — Remove collection documents
    • Collection::removeOne — Remove one collection document
    • Collection::replaceOne — Replace one collection document
  • mysql_xdevapi\CollectionAdd — Classe CollectionAdd
    • CollectionAdd::__construct — CollectionAdd constructor
    • CollectionAdd::execute — Execute the statement
  • mysql_xdevapi\CollectionFind — Classe CollectionFind
    • CollectionFind::bind — Bind value to query placeholder
    • CollectionFind::__construct — CollectionFind constructor
    • CollectionFind::execute — Execute the statement
    • CollectionFind::fields — Set document field filter
    • CollectionFind::groupBy — Set grouping criteria
    • CollectionFind::having — Set condition for aggregate functions
    • CollectionFind::limit — Limit number of returned documents
    • CollectionFind::lockExclusive — Execute operation with EXCLUSIVE LOCK
    • CollectionFind::lockShared — Execute operation with SHARED LOCK
    • CollectionFind::offset — Skip given number of elements to be returned
    • CollectionFind::sort — Set the sorting criteria
  • mysql_xdevapi\CollectionModify — Classe CollectionModify
    • CollectionModify::arrayAppend — Append element to an array field
    • CollectionModify::arrayInsert — Insert element into an array field
    • CollectionModify::bind — Bind value to query placeholder
    • CollectionModify::__construct — CollectionModify constructor
    • CollectionModify::execute — Execute modify operation
    • CollectionModify::limit — Limit number of modified documents
    • CollectionModify::patch — Patch document
    • CollectionModify::replace — Replace document field
    • CollectionModify::set — Set document attribute
    • CollectionModify::skip — Skip elements
    • CollectionModify::sort — Set the sorting criteria
    • CollectionModify::unset — Unset the value of document fields
  • mysql_xdevapi\CollectionRemove — Classe CollectionRemove
    • CollectionRemove::bind — Bind value to placeholder
    • CollectionRemove::__construct — CollectionRemove constructor
    • CollectionRemove::execute — Execute remove operation
    • CollectionRemove::limit — Limit number of documents to remove
    • CollectionRemove::sort — Set the sorting criteria
  • mysql_xdevapi\ColumnResult — Classe ColumnResult
    • ColumnResult::__construct — ColumnResult constructor
    • ColumnResult::getCharacterSetName — Get character set
    • ColumnResult::getCollationName — Get collation name
    • ColumnResult::getColumnLabel — Get column label
    • ColumnResult::getColumnName — Get column name
    • ColumnResult::getFractionalDigits — Get fractional digit length
    • ColumnResult::getLength — Get column field length
    • ColumnResult::getSchemaName — Get schema name
    • ColumnResult::getTableLabel — Get table label
    • ColumnResult::getTableName — Get table name
    • ColumnResult::getType — Get column type
    • ColumnResult::isNumberSigned — Check if signed type
    • ColumnResult::isPadded — Check if padded
  • mysql_xdevapi\CrudOperationBindable — Interface CrudOperationBindable
    • CrudOperationBindable::bind — Bind value to placeholder
  • mysql_xdevapi\CrudOperationLimitable — Interface CrudOperationLimitable
    • CrudOperationLimitable::limit — Set result limit
  • mysql_xdevapi\CrudOperationSkippable — Interface CrudOperationSkippable
    • CrudOperationSkippable::skip — Number of operations to skip
  • mysql_xdevapi\CrudOperationSortable — Interface CrudOperationSortable
    • CrudOperationSortable::sort — Sort results
  • mysql_xdevapi\DatabaseObject — Interface DatabaseObject
    • DatabaseObject::existsInDatabase — Check if object exists in database
    • DatabaseObject::getName — Get object name
    • DatabaseObject::getSession — Get session name
  • mysql_xdevapi\DocResult — Classe DocResult
    • DocResult::__construct — DocResult constructor
    • DocResult::fetchAll — Get all rows
    • DocResult::fetchOne — Get one row
    • DocResult::getWarnings — Get warnings from last operation
    • DocResult::getWarningsCount — Get warning count from last operation
  • mysql_xdevapi\Exception — Classe Exception
  • mysql_xdevapi\Executable — Interface Executable
    • Executable::execute — Execute statement
  • mysql_xdevapi\ExecutionStatus — Classe ExecutionStatus
    • ExecutionStatus::__construct — ExecutionStatus constructor
  • mysql_xdevapi\Expression — Classe Expression
    • Expression::__construct — Expression constructor
  • mysql_xdevapi\Result — Classe Result
    • Result::__construct — Result constructor
    • Result::getAffectedItemsCount — Get affected row count
    • Result::getAutoIncrementValue — Get autoincremented value
    • Result::getGeneratedIds — Get generated ids
    • Result::getWarnings — Get warnings from last operation
    • Result::getWarningsCount — Get warning count from last operation
  • mysql_xdevapi\RowResult — Classe RowResult
    • RowResult::__construct — RowResult constructor
    • RowResult::fetchAll — Get all rows from result
    • RowResult::fetchOne — Get row from result
    • RowResult::getColumnsCount — Get column count
    • RowResult::getColumnNames — Get all column names
    • RowResult::getColumns — Get column metadata
    • RowResult::getWarnings — Get warnings from last operation
    • RowResult::getWarningsCount — Get warning count from last operation
  • mysql_xdevapi\Schema — Classe Schema
    • Schema::__construct — Schema constructor
    • Schema::createCollection — Add collection to schema
    • Schema::dropCollection — Drop collection from schema
    • Schema::existsInDatabase — Check if exists in database
    • Schema::getCollection — Get collection from schema
    • Schema::getCollectionAsTable — Get collection as a Table object
    • Schema::getCollections — Get all schema collections
    • Schema::getName — Get schema name
    • Schema::getSession — Get schema session
    • Schema::getTable — Get schema table
    • Schema::getTables — Get schema tables
  • mysql_xdevapi\SchemaObject — Interface SchemaObject
    • SchemaObject::getSchema — Get schema object
  • mysql_xdevapi\Session — Classe Session
    • Session::close — Close session
    • Session::commit — Commit transaction
    • Session::__construct — Description constructor
    • Session::createSchema — Create new schema
    • Session::dropSchema — Drop a schema
    • Session::generateUUID — Get new UUID
    • Session::getDefaultSchema — Get default schema name
    • Session::getSchema — Get a new schema object
    • Session::getSchemas — Get the schemas
    • Session::getServerVersion — Get server version
    • Session::listClients — Get client list
    • Session::quoteName — Add quotes
    • Session::releaseSavepoint — Release set savepoint
    • Session::rollback — Rollback transaction
    • Session::rollbackTo — Rollback transaction to savepoint
    • Session::setSavepoint — Create savepoint
    • Session::sql — Create SQL query
    • Session::startTransaction — Start transaction
  • mysql_xdevapi\SqlStatement — Classe SqlStatement
    • SqlStatement::bind — Bind statement parameters
    • SqlStatement::__construct — Description constructor
    • SqlStatement::execute — Execute the operation
    • SqlStatement::getNextResult — Get next result
    • SqlStatement::getResult — Get result
    • SqlStatement::hasMoreResults — Check for more results
  • mysql_xdevapi\SqlStatementResult — Classe SqlStatementResult
    • SqlStatementResult::__construct — Description constructor
    • SqlStatementResult::fetchAll — Get all rows from result
    • SqlStatementResult::fetchOne — Get single row
    • SqlStatementResult::getAffectedItemsCount — Get affected row count
    • SqlStatementResult::getColumnsCount — Get column count
    • SqlStatementResult::getColumnNames — Get column names
    • SqlStatementResult::getColumns — Get columns
    • SqlStatementResult::getGeneratedIds — Get generated ids
    • SqlStatementResult::getLastInsertId — Get last insert id
    • SqlStatementResult::getWarnings — Get warnings from last operation
    • SqlStatementResult::getWarningsCount — Get warning count from last operation
    • SqlStatementResult::hasData — Check if result has data
    • SqlStatementResult::nextResult — Get next result
  • mysql_xdevapi\Statement — Classe Statement
    • Statement::__construct — Description constructor
    • Statement::getNextResult — Get next result
    • Statement::getResult — Get result
    • Statement::hasMoreResults — Check if more results
  • mysql_xdevapi\Table — Classe Table
    • Table::__construct — Table constructor
    • Table::count — Get row count
    • Table::delete — Delete rows from table
    • Table::existsInDatabase — Check if table exists in database
    • Table::getName — Get table name
    • Table::getSchema — Get table schema
    • Table::getSession — Get table session
    • Table::insert — Insert table rows
    • Table::isView — Check if table is view
    • Table::select — Select rows from table
    • Table::update — Update rows in table
  • mysql_xdevapi\TableDelete — Classe TableDelete
    • TableDelete::bind — Bind delete query parameters
    • TableDelete::__construct — TableDelete constructor
    • TableDelete::execute — Execute delete query
    • TableDelete::limit — Limit deleted rows
    • TableDelete::orderby — Set delete sort criteria
    • TableDelete::where — Set delete search condition
  • mysql_xdevapi\TableInsert — Classe TableInsert
    • TableInsert::__construct — TableInsert constructor
    • TableInsert::execute — Execute insert query
    • TableInsert::values — Add insert row values
  • mysql_xdevapi\TableSelect — Classe TableSelect
    • TableSelect::bind — Bind select query parameters
    • TableSelect::__construct — TableSelect constructor
    • TableSelect::execute — Execute select statement
    • TableSelect::groupBy — Set select grouping criteria
    • TableSelect::having — Set select having condition
    • TableSelect::limit — Limit selected rows
    • TableSelect::lockExclusive — Execute EXCLUSIVE LOCK
    • TableSelect::lockShared — Execute SHARED LOCK
    • TableSelect::offset — Set limit offset
    • TableSelect::orderby — Set select sort criteria
    • TableSelect::where — Set select search condition
  • mysql_xdevapi\TableUpdate — Classe TableUpdate
    • TableUpdate::bind — Bind update query parameters
    • TableUpdate::__construct — TableUpdate constructor
    • TableUpdate::execute — Execute update query
    • TableUpdate::limit — Limit update row count
    • TableUpdate::orderby — Set sorting criteria
    • TableUpdate::set — Add field to be updated
    • TableUpdate::where — Set search filter
  • mysql_xdevapi\Warning — Classe Warning
    • Warning::__construct — Warning constructor


Introduction

Cette extension fournit un accès au Document Store de MySQL à travers la DevAPI X. La DevAPI X est une API commune fournit par plusieurs MySQL Connectors fournissant un accès facile aux tables relationelles aussi bien qu'aux collections de documents, qui sont représentés en JSON, depuis une API avec des opérations de style CRUD.

La DevAPI de X utilise le protocole X, le protocole nouvelle génération client-serveur de MySQL serveur 8.0.

Pour des informations générales sur MySQL Document Store, référez-vous au chapitre » MySQL Document Store du manuel MySQL.


Installation/Configuration

Sommaire

  • Pré-requis
  • Installation
  • Configuration à l'exécution
  • Building / Compiling From Source


Pré-requis

This extension requires a MySQL 8+ server with the X plugin enabled (default).

Prerequisite libraries for compiling this extension are: Boost (1.53.0 or higher), OpenSSL, and Protobuf.


Installation

Cette extension » PECL n'est pas intégrée à PHP.

An example installation procedure on Ubuntu 18.04 with PHP 7.2:

// Dependencies
$ apt install build-essential libprotobuf-dev libboost-dev openssl protobuf-compiler liblz4-tool zstd

// PHP with the desired extensions; php7.2-dev is required to compile
$ apt install php7.2-cli php7.2-dev php7.2-mysql php7.2-pdo php7.2-xml

// Compile the extension
$ pecl install mysql_xdevapi

The pecl install command does not enable PHP extensions (by default) and enabling PHP extensions can be done in several ways. Another PHP 7.2 on Ubuntu 18.04 example:

// Create its own ini file
$ echo "extension=mysql_xdevapi.so" > /etc/php/7.2/mods-available/mysql_xdevapi.ini

// Use the 'phpenmod' command (note: it's Debian/Ubuntu specific)
$ phpenmod -v 7.2 -s ALL mysql_xdevapi

// A 'phpenmod' alternative is to manually symlink it
// $ ln -s /etc/php/7.2/mods-available/mysql_xdevapi.ini /etc/php/7.2/cli/conf.d/20-mysql_xdevapi.ini

// Let's see which MySQL extensions are enabled now
$ php -m |grep mysql

mysql_xdevapi
mysqli
mysqlnd
pdo_mysql

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 : » https://pecl.php.net/package/mysql_xdevapi.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration Mysql_xdevapi
Nom | Défaut | Modifiable | Historique
xmysqlnd.collect_memory_statistics | 0 | INI_SYSTEM |
xmysqlnd.collect_statistics | 1 | INI_ALL |
xmysqlnd.debug |  | INI_SYSTEM |
xmysqlnd.mempool_default_size | 16000 | INI_ALL |
xmysqlnd.net_read_timeout | 31536000 | INI_SYSTEM |
xmysqlnd.trace_alloc |  | INI_SYSTEM |

Voici un éclaircissement sur l'utilisation des directives de configuration.

xmysqlnd.collect_memory_statistics int

xmysqlnd.collect_statistics int

xmysqlnd.debug string

xmysqlnd.mempool_default_size int

xmysqlnd.net_read_timeout int

xmysqlnd.trace_alloc string


Building / Compiling From Source

Considerations for compiling this extension from source.

  • The extension name is 'mysql_xdevapi', so use --enable-mysql-xdevapi.

  • Boost: required, optionally use the --with-boost=DIR configure option or set the MYSQL_XDEVAPI_BOOST_ROOT environment variable. Only the boost header files are required; not the binaries.

  • Google Protocol Buffers (protobuf): required, optionally use the --with-protobuf=DIR configure option or set the MYSQL_XDEVAPI_PROTOBUF_ROOT environment variable.

    Optionally use make protobufs to generate protobuf files (*.pb.cc/.h), and make clean-protobufs to delete generate protobuf files.

    Windows specific protobuf note: depending on your environment, the static library with a multi-threaded DLL runtime may be needed. To prepare, use the following options: -Dprotobuf_MSVC_STATIC_RUNTIME=OFF -Dprotobuf_BUILD_SHARED_LIBS=OFF

  • Google Protocol Buffers / protocol compiler (protoc): required, ensure that proper 'protoc' is available in the PATH while building. It is especially important as Windows PHP SDK batch scripts may overwrite the environment.

  • Bison: required, and available from the PATH.

    Windows specific bison note: we strongly recommended that bison delivered with the chosen PHP SDKis used else an error similar to "zend_globals_macros.h(39): error C2375: 'zendparse': redefinition; different linkage Zend/zend_language_parser.h(214): note: see declaration of 'zendparse'" may be the result. Also, Windows PHP SDK batch scripts may overwrite the environment.

  • Windows Specific Notes: To prepare the environment, see the official Windows build documentation for » the current SDK.

    We recommend using the backslash '\\' instead of a slash '/' for all paths.


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.

MYSQLX_CLIENT_SSL (int)
MYSQLX_TYPE_DECIMAL (int)
MYSQLX_TYPE_TINY (int)
MYSQLX_TYPE_SHORT (int)
MYSQLX_TYPE_SMALLINT (int)
MYSQLX_TYPE_MEDIUMINT (int)
MYSQLX_TYPE_INT (int)
MYSQLX_TYPE_BIGINT (int)
MYSQLX_TYPE_LONG (int)
MYSQLX_TYPE_FLOAT (int)
MYSQLX_TYPE_DOUBLE (int)
MYSQLX_TYPE_NULL (int)
MYSQLX_TYPE_TIMESTAMP (int)
MYSQLX_TYPE_LONGLONG (int)
MYSQLX_TYPE_INT24 (int)
MYSQLX_TYPE_DATE (int)
MYSQLX_TYPE_TIME (int)
MYSQLX_TYPE_DATETIME (int)
MYSQLX_TYPE_YEAR (int)
MYSQLX_TYPE_NEWDATE (int)
MYSQLX_TYPE_ENUM (int)
MYSQLX_TYPE_SET (int)
MYSQLX_TYPE_TINY_BLOB (int)
MYSQLX_TYPE_MEDIUM_BLOB (int)
MYSQLX_TYPE_LONG_BLOB (int)
MYSQLX_TYPE_BLOB (int)
MYSQLX_TYPE_VAR_STRING (int)
MYSQLX_TYPE_STRING (int)
MYSQLX_TYPE_CHAR (int)
MYSQLX_TYPE_BYTES (int)
MYSQLX_TYPE_INTERVAL (int)
MYSQLX_TYPE_GEOMETRY (int)
MYSQLX_TYPE_JSON (int)
MYSQLX_TYPE_NEWDECIMAL (int)
MYSQLX_TYPE_BIT (int)
MYSQLX_LOCK_DEFAULT (int)
MYSQLX_LOCK_NOWAIT (int)
MYSQLX_LOCK_SKIP_LOCKED (int)


Historique des modifications

Les modifications suivantes ont été apportées aux classes/fonctions/méthodes de cette extension.

General Changelog for the ext/mysql_xdevapi extension

This changelog references the ext/mysql_xdevapi extension.

Global ext/mysql_xdevapi changes

Version | Description
8.0.28 | Removed TLSv1 and TLSv1.1 support. The values "TLSv1", "TLSv1.0", and "TLSv1.1" are now considered invalid for the "tls-versions" connection attribute.
8.0.26 | Deprecated TLSv1 and TLSv1.1 support.


Exemples

The central entry point to the X DevAPI is the mysql_xdevapi\getSession() function, which receives a URI to a MySQL 8.0 Server and returns a mysql_xdevap\Session object.

Exemple #1 Connecting to a MySQL Server

<?php
try {
$session = mysql_xdevapi\getSession("mysqlx://user:password@host");
} catch(Exception $e) {
die("Connection could not be established: " . $e->getMessage());
}

// ... use $session
?>

The session provides full access to the API. For a new MySQL Server installation, the first step is to create a database schema with a collection to store data:

Exemple #2 Creating a Schema and Collection on the MySQL Server

<?php
$schema = $session->createSchema("test");
$collection = $schema->createCollection("example");
?>

When storing data, typically json_encode() is used to encode the data into JSON, which can then be stored inside a collection.

The following example stores data into the collection we created earlier, and then retrieve parts of it again.

Exemple #3 Storing and Retrieving Data

<?php
$marco = [
"name" => "Marco",
"age" => 19,
"job" => "Programmer"
];
$mike = [
"name" => "Mike",
"age" => 39,
"job" => "Manager"
];

$schema = $session->getSchema("test");
$collection = $schema->getCollection("example");

$collection->add($marco, $mike)->execute();

var_dump($collection->find("name = 'Mike'")->execute()->fetchOne());
?>

Résultat de l'exemple ci-dessus est similaire à :

array(4) {
  ["_id"]=>
  string(28) "00005ad66aaf0000000000000003"
  ["age"]=>
  int(39)
  ["job"]=>
  string(7) "Manager"
  ["name"]=>
  string(4) "Mike"
}

The example demonstrates that the MySQL Server adds an extra field named _id, which serves as primary key to the document.

The example also demonstrates that retrieved data is sorted alphabetically. That specific order comes from the efficient binary storage inside the MySQL server, but it should not be relied upon. Refer to the MySQL JSON datatype documentation for details.

Optionally use PHP's iterators to fetch multiple documents:

Exemple #4 Fetching and Iterating Multiple Documents

<?php
$result = $collection->find()->execute();
foreach ($result as $doc) {
echo "{$doc["name"]} is a {$doc["job"]}.\n";
}
?>

Résultat de l'exemple ci-dessus est similaire à :

Marco is a Programmer.
Mike is a Manager.


Fonctions Mysql_xdevapi

Sommaire

  • expression — Bind prepared statement variables as parameters
  • getSession — Connect to a MySQL server


Bind prepared statement variables as parameters

  • « Fonctions Mysql_xdevapi
  • getSession »
  • PHP Manual
  • Fonctions Mysql_xdevapi
  • Bind prepared statement variables as parameters

expression

(No version information available, might only be in Git)

expression — Bind prepared statement variables as parameters

Description

mysql_xdevapi\expression(string $expression): object

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

expression

Valeurs de retour

Exemples

Exemple #1 mysql_xdevapi\Expression() example

<?php
$expression = mysql_xdevapi\Expression("[age,job]");

$res = $coll->find("age > 30")->fields($expression)->limit(3)->execute();
$data = $res->fetchAll();

print_r($data);
?>

Résultat de l'exemple ci-dessus est similaire à :

<?php


Connect to a MySQL server

  • « expression
  • mysql_xdevapi\BaseResult »
  • PHP Manual
  • Fonctions Mysql_xdevapi
  • Connect to a MySQL server

getSession

(No version information available, might only be in Git)

getSession — Connect to a MySQL server

Description

mysql_xdevapi\getSession(string $uri): mysql_xdevapi\Session

Connects to the MySQL server.

Liste de paramètres

uri

The URI to the MySQL server, such as mysqlx://user:password@host.

URI format:

scheme://[user[:[password]]@]target[:port][?attribute1=value1&attribute2=value2...

  • scheme: required, the connection protocol

    In mysql_xdevapi it is always 'mysqlx' (for X Protocol)

  • user: optional, the MySQL user account for authentication

  • password: optional, the MySQL user's password for authentication

  • target: required, the server instance the connection refers to:

    * TCP connection (host name, IPv4 address, or IPv6 address)

    * Unix socket path (local file path)

    * Windows named-pipe (local file path)

  • port: optional, network port of MySQL server.

    by default port for X Protocol is 33060

  • ?attribute=value: this element is optional and specifies a data dictionary that contains different options, including:

    • The auth (authentication mechanism) attribute as it relates to encrypted connections. For additional information, see » Command Options for Encrypted Connections. The following 'auth' values are supported: plain, mysql41, external, and sha256_mem.

    • The connect-timeout attribute affects the connection and not subsequent operations. It is set per connection whether on a single or multiple hosts.

      Pass in a positive integer to define the connection timeout in seconds, or pass in 0 (zero) to disable the timeout (infinite). Not defining connect-timeout uses the default value of 10.

      Related, the MYSQLX_CONNECTION_TIMEOUT (timeout in seconds) and MYSQLX_TEST_CONNECTION_TIMEOUT (used while running tests) environment variables can be set and used instead of connect-timeout in the URI. The connect-timeout URI option has precedence over these environment variables.

    • The optional compression attribute accepts these values: preferred (client negotiates with server to find a supported algorithm; connection is uncompressed if a mutually supported algorithm is not found), required (like "preferred", but connection is terminated if a mutually supported algorithm is not found), or disabled (connection is uncompressed). Defaults to preferred.

      This option was added in version 8.0.20.

    • The optional compression-algorithms attribute defines the desired compression algorithms (and their preferred usage order): zstd_stream (alias: zstd), lz4_message (alias: lz4), or deflate_stream (aliases: deflate or zlib). By default, the order used (depending on system availability) is lz4_message, zstd_stream, then deflate_stream. For example, passing in compression-algorithms=[lz4,zstd_stream] uses lz4 if it's available, otherwise zstd_stream is used. If both are unavailable then behavior depends on the compression value e.g., if compression=required then it'll fail with an error.

      This option was added in version 8.0.22.

Exemple #1 URI examples

mysqlx://foobar
mysqlx://root@localhost?socket=%2Ftmp%2Fmysqld.sock%2F
mysqlx://foo:bar@localhost:33060
mysqlx://foo:bar@localhost:33160?ssl-mode=disabled
mysqlx://foo:bar@localhost:33260?ssl-mode=required
mysqlx://foo:bar@localhost:33360?ssl-mode=required&auth=mysql41
mysqlx://foo:bar@(/path/to/socket)
mysqlx://foo:bar@(/path/to/socket)?auth=sha256_mem
mysqlx://foo:bar@[localhost:33060, 127.0.0.1:33061]
mysqlx://foobar?ssl-ca=(/path/to/ca.pem)&ssl-crl=(/path/to/crl.pem)
mysqlx://foo:bar@[localhost:33060, 127.0.0.1:33061]?ssl-mode=disabled
mysqlx://foo:bar@localhost:33160/?connect-timeout=0
mysqlx://foo:bar@localhost:33160/?connect-timeout=10&compression=required
mysqlx://foo:bar@localhost:33160/?connect-timeout=10&compression=required&compression-algorithms=[lz4,zstd_stream]

For related information, see MySQL Shell's » Connecting using a URI String.

Valeurs de retour

A Session object.

Erreurs / Exceptions

A connection failure throws an Exception.

Exemples

Exemple #2 mysql_xdevapi\getSession() example

<?php
try {
$session = mysql_xdevapi\getSession("mysqlx://user:password@host");
} catch(Exception $e) {
die("Connection could not be established: " . $e->getMessage());
}

$schemas = $session->getSchemas();
print_r($schemas);

$mysql_version = $session->getServerVersion();
print_r($mysql_version);

var_dump($collection->find("name = 'Alfred'")->execute()->fetchOne());
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => mysql_xdevapi\Schema Object
        (
            [name] => helloworld
        )
    [1] => mysql_xdevapi\Schema Object
        (
            [name] => information_schema
        )
    [2] => mysql_xdevapi\Schema Object
        (
            [name] => mysql
        )
    [3] => mysql_xdevapi\Schema Object
        (
            [name] => performance_schema
        )
    [4] => mysql_xdevapi\Schema Object
        (
            [name] => sys
        )
)

80012

array(4) {
  ["_id"]=>
  string(28) "00005ad66abf0001000400000003"
  ["age"]=>
  int(42)
  ["job"]=>
  string(7) "Butler"
  ["name"]=>
  string(4) "Alfred"
}


Interface BaseResult

(PECL mysql-xdevapi >= 8.0.11)

Introduction

Synopsis de la classe

class mysql_xdevapi\BaseResult {
/* Méthodes */
abstract public getWarnings(): array
abstract public getWarningsCount(): int
}

Sommaire

  • BaseResult::getWarnings — Fetch warnings from last operation
  • BaseResult::getWarningsCount — Fetch warning count from last operation


Fetch warnings from last operation

  • « mysql_xdevapi\BaseResult
  • BaseResult::getWarningsCount »
  • PHP Manual
  • mysql_xdevapi\BaseResult
  • Fetch warnings from last operation

BaseResult::getWarnings

(No version information available, might only be in Git)

BaseResult::getWarnings — Fetch warnings from last operation

Description

abstract public mysql_xdevapi\BaseResult::getWarnings(): array

Fetches warnings generated by MySQL server's last operation.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

An array of Warning objects from the last operation. Each object defines an error 'message', error 'level', and error 'code'. An empty array is returned if no errors are present.

Exemples

Exemple #1 mysql_xdevapi\RowResult::getWarnings() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("CREATE DATABASE foo")->execute();
$session->sql("CREATE TABLE foo.test_table(x int)")->execute();

$schema = $session->getSchema("foo");
$table = $schema->getTable("test_table");

$table->insert(['x'])->values([1])->values([2])->execute();

$res = $table->select(['x/0 as bad_x'])->execute();
$warnings = $res->getWarnings();

print_r($warnings);
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => mysql_xdevapi\Warning Object
        (
            [message] => Division by 0
            [level] => 2
            [code] => 1365
        )
    [1] => mysql_xdevapi\Warning Object
        (
            [message] => Division by 0
            [level] => 2
            [code] => 1365
        )
)


Fetch warning count from last operation

  • « BaseResult::getWarnings
  • mysql_xdevapi\Client »
  • PHP Manual
  • mysql_xdevapi\BaseResult
  • Fetch warning count from last operation

BaseResult::getWarningsCount

(No version information available, might only be in Git)

BaseResult::getWarningsCount — Fetch warning count from last operation

Description

abstract public mysql_xdevapi\BaseResult::getWarningsCount(): int

Returns the number of warnings raised by the last operation. Specifically, these warnings are raised by the MySQL server.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The number of warnings from the last operation.

Exemples

Exemple #1 mysql_xdevapi\RowResult::getWarningsCount() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS foo")->execute();
$session->sql("CREATE DATABASE foo")->execute();
$session->sql("CREATE TABLE foo.test_table(x int)")->execute();

$schema = $session->getSchema("foo");
$table = $schema->getTable("test_table");

$table->insert(['x'])->values([1])->values([2])->execute();

$res = $table->select(['x/0 as bad_x'])->execute();

echo $res->getWarningsCount();
?>

Résultat de l'exemple ci-dessus est similaire à :

2


Client class

(No version information available, might only be in Git)

Introduction

Provides access to the connection pool.

Synopsis de la classe

class mysql_xdevapi\Client {
/* Méthodes */
public close(): bool
public getSession(): mysql_xdevapi\Session
}

Sommaire

  • mysql_xdevapi\Client::close — Close client
  • Client::__construct — Client constructor
  • Client::getClient — Get client session


Close client

  • « mysql_xdevapi\Client
  • Client::__construct »
  • PHP Manual
  • mysql_xdevapi\Client
  • Close client

mysql_xdevapi\Client::close

(No version information available, might only be in Git)

mysql_xdevapi\Client::close — Close client

Description

public mysql_xdevapi\Client::close(): bool

Close all client connections with the server.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

true if connections are closed.


Client constructor

  • « mysql_xdevapi\Client::close
  • Client::getClient »
  • PHP Manual
  • mysql_xdevapi\Client
  • Client constructor

Client::__construct

(No version information available, might only be in Git)

Client::__construct — Client constructor

Description

private mysql_xdevapi\Client::__construct()

Construct a client object.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Exemples

Exemple #1 mysql_xdevapi\Client::__construct() example

<?php
$pooling_options = '{
"enabled": true,
"maxSize": 10,
"maxIdleTime": 3600,
"queueTimeOut": 1000
}';
$client = mysql_xdevapi\getClient($connection_uri, $pooling_options);
$session = $client->getSession();


Get client session

  • « Client::__construct
  • mysql_xdevapi\Collection »
  • PHP Manual
  • mysql_xdevapi\Client
  • Get client session

Client::getClient

(No version information available, might only be in Git)

Client::getClient — Get client session

Description

public mysql_xdevapi\Client::getSession(): mysql_xdevapi\Session

Get session associated with the client.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A Session object.


Classe Collection

(PECL mysql-xdevapi >= 8.0.11)

Introduction

Synopsis de la classe

class mysql_xdevapi\Collection implements mysql_xdevapi\SchemaObject {
/* Propriétés */
public $name;
/* Méthodes */
public add(mixed $document): mysql_xdevapi\CollectionAdd
public addOrReplaceOne(string $id, string $doc): mysql_xdevapi\Result
public count(): int
public createIndex(string $index_name, string $index_desc_json): void
public dropIndex(string $index_name): bool
public existsInDatabase(): bool
public find(string $search_condition = ?): mysql_xdevapi\CollectionFind
public getName(): string
public getOne(string $id): Document
public getSchema(): Schema Object
public getSession(): Session
public modify(string $search_condition): mysql_xdevapi\CollectionModify
public remove(string $search_condition): mysql_xdevapi\CollectionRemove
public removeOne(string $id): mysql_xdevapi\Result
public replaceOne(string $id, string $doc): mysql_xdevapi\Result
}

Propriétés

name

Sommaire

  • Collection::add — Add collection document
  • Collection::addOrReplaceOne — Add or replace collection document
  • Collection::__construct — Collection constructor
  • Collection::count — Get document count
  • Collection::createIndex — Create collection index
  • Collection::dropIndex — Drop collection index
  • Collection::existsInDatabase — Check if collection exists in database
  • Collection::find — Search for document
  • Collection::getName — Get collection name
  • Collection::getOne — Get one document
  • Collection::getSchema — Get schema object
  • Collection::getSession — Get session object
  • Collection::modify — Modify collection documents
  • Collection::remove — Remove collection documents
  • Collection::removeOne — Remove one collection document
  • Collection::replaceOne — Replace one collection document


Add collection document

  • « mysql_xdevapi\Collection
  • Collection::addOrReplaceOne »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Add collection document

Collection::add

(No version information available, might only be in Git)

Collection::add — Add collection document

Description

public mysql_xdevapi\Collection::add(mixed $document): mysql_xdevapi\CollectionAdd

Triggers the insertion of the given document(s) into the collection, and multiple variants of this method are supported. Options include:

  1. Add a single document as a JSON string.

  2. Add a single document as an array as: [ 'field' => 'value', 'field2' => 'value2' ... ]

  3. A mix of both, and multiple documents can be added in the same operation.

Liste de paramètres

document

One or multiple documents, and this can be either JSON or an array of fields with their associated values. This cannot be an empty array.

The MySQL server automatically generates unique _id values for each document (recommended), although this can be manually added as well. This value must be unique as otherwise the add operation will fail.

Valeurs de retour

A CollectionAdd object. Use execute() to return a Result that can be used to query the number of affected items, the number warnings generated by the operation, or to fetch a list of generated IDs for the inserted documents.

Exemples

Exemple #1 mysql_xdevapi\Collection::add() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$collection = $schema->getCollection("people");

// Add two documents
$collection->add('{"name": "Fred", "age": 21, "job": "Construction"}')->execute();
$collection->add('{"name": "Wilma", "age": 23, "job": "Teacher"}')->execute();

// Add two documents using a single JSON object
$result = $collection->add(
'{"name": "Bernie",
"jobs": [{"title":"Cat Herder","Salary":42000}, {"title":"Father","Salary":0}],
"hobbies": ["Sports","Making cupcakes"]}',
'{"name": "Jane",
"jobs": [{"title":"Scientist","Salary":18000}, {"title":"Mother","Salary":0}],
"hobbies": ["Walking","Making pies"]}')->execute();

// Fetch a list of generated ID's from the last add()
$ids = $result->getGeneratedIds();
print_r($ids);
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => 00005b6b53610000000000000056
    [1] => 00005b6b53610000000000000057
)

Notes

Note:

A unique _id is generated by MySQL Server 8.0 or higher, as demonstrated in the example. The _id field must be manually defined if using MySQL Server 5.7.


Add or replace collection document

  • « Collection::add
  • Collection::__construct »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Add or replace collection document

Collection::addOrReplaceOne

(No version information available, might only be in Git)

Collection::addOrReplaceOne — Add or replace collection document

Description

public mysql_xdevapi\Collection::addOrReplaceOne(string $id, string $doc): mysql_xdevapi\Result

Add a new document, or replace a document if it already exists.

Here are several scenarios for this method:

  • If neither the id or any unique key values conflict with any document in the collection, then the document is added.

  • If the id does not match any document but one or more unique key values conflict with a document in the collection, then an error is raised.

  • If id matches an existing document and no unique keys are defined for the collection, then the document is replaced.

  • If id matches an existing document, and either all unique keys in the replacement document match that same document or they don't conflict with any other documents in the collection, then the document is replaced.

  • If id matches an existing document and one or more unique keys match a different document from the collection, then an error is raised.

Liste de paramètres

id

This is the filter id. If this id or any other field that has a unique index already exists in the collection, then it will update the matching document instead.

By default, this id is automatically generated by MySQL Server when the record was added, and is referenced as a field named '_id'.

doc

This is the document to add or replace, which is a JSON string.

Valeurs de retour

A Result object.

Exemples

Exemple #1 mysql_xdevapi\Collection::addOrReplaceOne() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$collection = $schema->getCollection("people");

// Using add()
$result = $collection->add('{"name": "Wilma", "age": 23, "job": "Teacher"}')->execute();

// Using addOrReplaceOne()
// Note: we're passing in a known _id value here
$result = $collection->addOrReplaceOne('00005b6b53610000000000000056', '{"name": "Fred", "age": 21, "job": "Construction"}');

?>


Collection constructor

  • « Collection::addOrReplaceOne
  • Collection::count »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Collection constructor

Collection::__construct

(No version information available, might only be in Git)

Collection::__construct — Collection constructor

Description

private mysql_xdevapi\Collection::__construct()

Construct a Collection object.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Exemples

Exemple #1 mysql_xdevapi\Collection::getOne() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection->add('{"name": "Alfred", "age": 42, "job": "Butler"}')->execute();

// A unique _id is (by default, and recommended) generated by MySQL Server
// This retrieves the generated _id's; only one in this example, so $ids[0]
$ids = $result->getGeneratedIds();
$alfreds_id = $ids[0];

// ...

print_r($alfreds_id);
print_r($collection->getOne($alfreds_id));
?>

Résultat de l'exemple ci-dessus est similaire à :

00005b6b536100000000000000b1

Array
(
    [_id] => 00005b6b536100000000000000b1
    [age] => 42
    [job] => Butler
    [name] => Alfred
)


Get document count

  • « Collection::__construct
  • Collection::createIndex »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Get document count

Collection::count

(No version information available, might only be in Git)

Collection::count — Get document count

Description

public mysql_xdevapi\Collection::count(): int

This functionality is similar to a SELECT COUNT(*) SQL operation against the MySQL server for the current schema and collection. In other words, it counts the number of documents in the collection.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The number of documents in the collection.

Exemples

Exemple #1 mysql_xdevapi\Collection::count() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$collection = $schema->getCollection("people");

$result = $collection
->add(
'{"name": "Bernie",
"jobs": [
{"title":"Cat Herder","Salary":42000},
{"title":"Father","Salary":0}
],
"hobbies": ["Sports","Making cupcakes"]}',
'{"name": "Jane",
"jobs": [
{"title":"Scientist","Salary":18000},
{"title":"Mother","Salary":0}
],
"hobbies": ["Walking","Making pies"]}')
->execute();

var_dump($collection->count());
?>

L'exemple ci-dessus va afficher :

int(2)


Create collection index

  • « Collection::count
  • Collection::dropIndex »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Create collection index

Collection::createIndex

(No version information available, might only be in Git)

Collection::createIndex — Create collection index

Description

public mysql_xdevapi\Collection::createIndex(string $index_name, string $index_desc_json): void

Creates an index on the collection.

An exception is thrown if an index with the same name already exists, or if index definition is not correctly formed.

Liste de paramètres

index_name

The name of the index that to create. This name must be a valid index name as accepted by the CREATE INDEX SQL query.

index_desc_json

Definition of the index to create. It contains an array of IndexField objects, and each object describes a single document member to include in the index, and an optional string for the type of index that might be INDEX (default) or SPATIAL.

A single IndexField description consists of the following fields:

  • field: string, the full document path to the document member or field to be indexed.

  • type: string, one of the supported SQL column types to map the field into. For numeric types, the optional UNSIGNED keyword may follow. For the TEXT type, the length to consider for indexing may be added.

  • required: bool, (optional) true if the field is required to exist in the document. Defaults to false, except for GEOJSON where it defaults to true.

  • options: integer, (optional) special option flags for use when decoding GEOJSON data.

  • srid: integer, (optional) srid value for use when decoding GEOJSON data.

It is an error to include other fields not described above in IndexDefinition or IndexField documents.

Valeurs de retour

Exemples

Exemple #1 mysql_xdevapi\Collection::createIndex() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

// Creating a text index
$collection->createIndex(
'myindex1',
'{"fields": [{
"field": "$.name",
"type": "TEXT(25)",
"required": true}],
"unique": false}'
);

// A spatial index
$collection->createIndex(
'myindex2',
'{"fields": [{
"field": "$.home",
"type": "GEOJSON",
"required": true}],
"type": "SPATIAL"}'
);

// Index with multiple fields
$collection->createIndex(
'myindex3',
'{"fields": [
{
"field": "$.name",
"type": "TEXT(20)",
"required": true
},
{
"field": "$.age",
"type": "INTEGER"
},
{
"field": "$.job",
"type": "TEXT(30)",
"required": false
}
],
"unique": true
}'
);


Drop collection index

  • « Collection::createIndex
  • Collection::existsInDatabase »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Drop collection index

Collection::dropIndex

(No version information available, might only be in Git)

Collection::dropIndex — Drop collection index

Description

public mysql_xdevapi\Collection::dropIndex(string $index_name): bool

Drop a collection index.

This operation does not yield an error if the index does not exist, but false is returned in that case.

Liste de paramètres

index_name

Name of collection index to drop.

Valeurs de retour

true if the DROP INDEX operation succeeded, otherwise false.

Exemples

Exemple #1 mysql_xdevapi\Collection::dropIndex() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

// ...

$collection = $schema->getCollection("people");

$collection->createIndex(
'myindex',
'{"fields": [{"field": "$.name", "type": "TEXT(25)", "required": true}], "unique": false}'
);

// ...

if ($collection->dropIndex('myindex')) {
echo "An index named 'myindex' was found, and dropped.";
}
?>

L'exemple ci-dessus va afficher :

An index named 'myindex' was found, and dropped.


Check if collection exists in database

  • « Collection::dropIndex
  • Collection::find »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Check if collection exists in database

Collection::existsInDatabase

(No version information available, might only be in Git)

Collection::existsInDatabase — Check if collection exists in database

Description

public mysql_xdevapi\Collection::existsInDatabase(): bool

Checks if the Collection object refers to a collection in the database (schema).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns true if collection exists in the database, else false if it does not.

A table defined with two columns (doc and _id) is considered a collection, and a third _json_schema column as of MySQL 8.0.21. Adding an additional column means existsInDatabase() will no longer see it as a collection.

Exemples

Exemple #1 mysql_xdevapi\Collection::existsInDatabase() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

// ...

$collection = $schema->getCollection("people");

// ...

if (!$collection->existsInDatabase()) {
echo "The collection no longer exists in the database named addressbook. What happened?";
}
?>


Search for document

  • « Collection::existsInDatabase
  • Collection::getName »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Search for document

Collection::find

(No version information available, might only be in Git)

Collection::find — Search for document

Description

public mysql_xdevapi\Collection::find(string $search_condition = ?): mysql_xdevapi\CollectionFind

Search a database collection for a document or set of documents. The found documents are returned as a CollectionFind object is to further modify or fetch results from.

Liste de paramètres

search_condition

Although optional, normally a condition is defined to limit the results to a subset of documents.

Multiple elements might build the condition and the syntax supports parameter binding. The expression used as search condition must be a valid SQL expression. If no search condition is provided (field empty) then find('true') is assumed.

Valeurs de retour

A CollectionFind object to verify the operation, or fetch the found documents.

Exemples

Exemple #1 mysql_xdevapi\Collection::find() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$collection->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();
$collection->add('{"name": "Bob", "age": 19, "job": "Swimmer"}')->execute();
$collection->add('{"name": "Fred", "age": 20, "job": "Construction"}')->execute();
$collection->add('{"name": "Wilma", "age": 21, "job": "Teacher"}')->execute();
$collection->add('{"name": "Suki", "age": 22, "job": "Teacher"}')->execute();

$find = $collection->find('job LIKE :job AND age > :age');
$result = $find
->bind(['job' => 'Teacher', 'age' => 20])
->sort('age DESC')
->limit(2)
->execute();

print_r($result->fetchAll());
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Array
        (
            [_id] => 00005b6b536100000000000000a8
            [age] => 22
            [job] => Teacher
            [name] => Suki
        )
    [1] => Array
        (
            [_id] => 00005b6b536100000000000000a7
            [age] => 21
            [job] => Teacher
            [name] => Wilma
        )
)


Get collection name

  • « Collection::find
  • Collection::getOne »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Get collection name

Collection::getName

(No version information available, might only be in Git)

Collection::getName — Get collection name

Description

public mysql_xdevapi\Collection::getName(): string

Retrieve the collection's name.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The collection name, as a string.

Exemples

Exemple #1 mysql_xdevapi\Collection::getName() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

// ...

var_dump($collection->getName());
?>

Résultat de l'exemple ci-dessus est similaire à :

string(6) "people"


Get one document

  • « Collection::getName
  • Collection::getSchema »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Get one document

Collection::getOne

(No version information available, might only be in Git)

Collection::getOne — Get one document

Description

public mysql_xdevapi\Collection::getOne(string $id): Document

Fetches one document from the collection.

This is a shortcut for: Collection.find("_id = :id").bind("id", id).execute().fetchOne();

Liste de paramètres

id

The document _id in the collection.

Valeurs de retour

The collection object, or null if the _id does not match a document.

Exemples

Exemple #1 mysql_xdevapi\Collection::getOne() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection->add('{"name": "Alfred", "age": 42, "job": "Butler"}')->execute();

// A unique _id is (by default, and recommended) generated by MySQL Server
// This retrieves the generated _id's; only one in this example, so $ids[0]
$ids = $result->getGeneratedIds();
$alfreds_id = $ids[0];

// ...

print_r($alfreds_id);
print_r($collection->getOne($alfreds_id));
?>

Résultat de l'exemple ci-dessus est similaire à :

00005b6b536100000000000000b1

Array
(
    [_id] => 00005b6b536100000000000000b1
    [age] => 42
    [job] => Butler
    [name] => Alfred
)


Get schema object

  • « Collection::getOne
  • Collection::getSession »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Get schema object

Collection::getSchema

(No version information available, might only be in Git)

Collection::getSchema — Get schema object

Description

public mysql_xdevapi\Collection::getSchema(): Schema Object

Retrieve the schema object that contains the collection.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The schema object on success, or null if the object cannot be retrieved for the given collection.

Exemples

Exemple #1 mysql_xdevapi\Collection::getSchema() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

var_dump($collection->getSchema());
?>

Résultat de l'exemple ci-dessus est similaire à :

object(mysql_xdevapi\Schema)#9 (1) {
  ["name"]=>
  string(11) "addressbook"
}


Get session object

  • « Collection::getSchema
  • Collection::modify »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Get session object

Collection::getSession

(No version information available, might only be in Git)

Collection::getSession — Get session object

Description

public mysql_xdevapi\Collection::getSession(): Session

Get a new Session object from the Collection object.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A Session object.

Exemples

Exemple #1 mysql_xdevapi\Collection::getSession() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

// ...

$newsession = $collection->getSession();

var_dump($session);
var_dump($newsession);
?>

Résultat de l'exemple ci-dessus est similaire à :

object(mysql_xdevapi\Session)#1 (0) {
}
object(mysql_xdevapi\Session)#4 (0) {
}


Modify collection documents

  • « Collection::getSession
  • Collection::remove »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Modify collection documents

Collection::modify

(No version information available, might only be in Git)

Collection::modify — Modify collection documents

Description

public mysql_xdevapi\Collection::modify(string $search_condition): mysql_xdevapi\CollectionModify

Modify the documents of a collection that meet specific search conditions. Multiple operations are allowed, and parameter binding is supported.

Liste de paramètres

search_condition

Must be a valid SQL expression used to match the documents to modify. This expression might be as simple as true, which matches all documents, or it might use functions and operators such as 'CAST(_id AS SIGNED) >= 10', 'age MOD 2 = 0 OR age MOD 3 = 0', or '_id IN ["2","5","7","10"]'.

Valeurs de retour

If the operation is not executed, then the function will return a Modify object that can be used to add additional modify operations.

If the modify operation is executed, then the returned object will contain the result of the operation.

Exemples

Exemple #1 mysql_xdevapi\Collection::modify() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$collection->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();
$collection->add('{"name": "Bob", "age": 19, "job": "Painter"}')->execute();

// Add two new jobs for all Painters: Artist and Crafter
$collection
->modify("job in ('Butler', 'Painter')")
->arrayAppend('job', 'Artist')
->arrayAppend('job', 'Crafter')
->execute();

// Remove the 'beer' field from all documents with the age 21
$collection
->modify('age < 21')
->unset(['beer'])
->execute();
?>


Remove collection documents

  • « Collection::modify
  • Collection::removeOne »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Remove collection documents

Collection::remove

(No version information available, might only be in Git)

Collection::remove — Remove collection documents

Description

public mysql_xdevapi\Collection::remove(string $search_condition): mysql_xdevapi\CollectionRemove

Removes documents of a collection that meet specific search conditions. Multiple operations are allowed, and parameter binding is supported.

Liste de paramètres

search_condition

Must be a valid SQL expression used to match the documents to remove. This expression might be as simple as true, which matches all documents, or it might use functions and operators such as 'CAST(_id AS SIGNED) >= 10', 'age MOD 2 = 0 OR age MOD 3 = 0', or '_id IN ["2","5","7","10"]'.

Valeurs de retour

If the operation is not executed, then the function will return a Remove object that can be used to add additional remove operations.

If the remove operation is executed, then the returned object will contain the result of the operation.

Exemples

Exemple #1 mysql_xdevapi\Collection::remove() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$collection->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();
$collection->add('{"name": "Bob", "age": 19, "job": "Painter"}')->execute();

// Remove all painters
$collection
->remove("job in ('Painter')")
->execute();

// Remove the oldest butler
$collection
->remove("job in ('Butler')")
->sort('age desc')
->limit(1)
->execute();

// Remove record with lowest age
$collection
->remove('true')
->sort('age desc')
->limit(1)
->execute();
?>


Remove one collection document

  • « Collection::remove
  • Collection::replaceOne »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Remove one collection document

Collection::removeOne

(No version information available, might only be in Git)

Collection::removeOne — Remove one collection document

Description

public mysql_xdevapi\Collection::removeOne(string $id): mysql_xdevapi\Result

Remove one document from the collection with the correspending ID. This is a shortcut for Collection.remove("_id = :id").bind("id", id).execute().

Liste de paramètres

id

The ID of the collection document to remove. Typically this is the _id that was generated by MySQL Server when the record was added.

Valeurs de retour

A Result object that can be used to query the number of affected items or the number warnings generated by the operation.

Exemples

Exemple #1 mysql_xdevapi\Collection::removeOne() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();

// Normally the _id is known by other means,
// but for this example let's fetch the generated id and use it
$ids = $result->getGeneratedIds();
$alfred_id = $ids[0];

$result = $collection->removeOne($alfred_id);

if(!$result->getAffectedItemsCount()) {
echo "Alfred with id $alfred_id was not removed.";
} else {
echo "Goodbye, Alfred, you can take _id $alfred_id with you.";
}
?>

Résultat de l'exemple ci-dessus est similaire à :

Goodbye, Alfred, you can take _id 00005b6b536100000000000000cb with you.


Replace one collection document

  • « Collection::removeOne
  • mysql_xdevapi\CollectionAdd »
  • PHP Manual
  • mysql_xdevapi\Collection
  • Replace one collection document

Collection::replaceOne

(No version information available, might only be in Git)

Collection::replaceOne — Replace one collection document

Description

public mysql_xdevapi\Collection::replaceOne(string $id, string $doc): mysql_xdevapi\Result

Updates (or replaces) the document identified by ID, if it exists.

Liste de paramètres

id

ID of the document to replace or update. Typically this is the _id that was generated by MySQL Server when the record was added.

doc

Collection document to update or replace the document matching the id parameter.

This document can be either a document object or a valid JSON string describing the new document.

Valeurs de retour

A Result object that can be used to query the number of affected items and the number warnings generated by the operation.

Exemples

Exemple #1 mysql_xdevapi\Collection::replaceOne() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();

// Normally the _id is known by other means,
// but for this example let's fetch the generated id and use it
$ids = $result->getGeneratedIds();
$alfred_id = $ids[0];

// ...

$alfred = $collection->getOne($alfred_id);
$alfred['age'] = 81;
$alfred['job'] = 'Guru';

$collection->replaceOne($alfred_id, $alfred);

?>


Classe CollectionAdd

(PECL mysql-xdevapi >= 8.0.11)

Introduction

Synopsis de la classe

class mysql_xdevapi\CollectionAdd implements mysql_xdevapi\Executable {
/* Méthodes */
public execute(): mysql_xdevapi\Result
}

Sommaire

  • CollectionAdd::__construct — CollectionAdd constructor
  • CollectionAdd::execute — Execute the statement


CollectionAdd constructor

  • « mysql_xdevapi\CollectionAdd
  • CollectionAdd::execute »
  • PHP Manual
  • mysql_xdevapi\CollectionAdd
  • CollectionAdd constructor

CollectionAdd::__construct

(No version information available, might only be in Git)

CollectionAdd::__construct — CollectionAdd constructor

Description

private mysql_xdevapi\CollectionAdd::__construct()

Use to add a document to a collection; called from a Collection object.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Exemples

Exemple #1 mysql_xdevapi\CollectionAdd::__construct() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$collection = $schema->getCollection("people");

// Add two documents
$collection
->add('{"name": "Fred", "age": 21, "job": "Construction"}')
->execute();

$collection
->add('{"name": "Wilma", "age": 23, "job": "Teacher"}')
->execute();

// Add two documents using a single JSON object
$result = $collection
->add(
'{"name": "Bernie",
"jobs": [{"title":"Cat Herder","Salary":42000}, {"title":"Father","Salary":0}],
"hobbies": ["Sports","Making cupcakes"]}',
'{"name": "Jane",
"jobs": [{"title":"Scientist","Salary":18000}, {"title":"Mother","Salary":0}],
"hobbies": ["Walking","Making pies"]}')
->execute();

// Fetch a list of generated ID's from the last add()
$ids = $result->getGeneratedIds();
print_r($ids);

?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => 00005b6b53610000000000000056
    [1] => 00005b6b53610000000000000057
)

Notes

Note:

A unique _id is generated by MySQL Server 8.0 or higher, as demonstrated in the example. The _id field must be manually defined if using MySQL Server 5.7.


Execute the statement

  • « CollectionAdd::__construct
  • mysql_xdevapi\CollectionFind »
  • PHP Manual
  • mysql_xdevapi\CollectionAdd
  • Execute the statement

CollectionAdd::execute

(No version information available, might only be in Git)

CollectionAdd::execute — Execute the statement

Description

public mysql_xdevapi\CollectionAdd::execute(): mysql_xdevapi\Result

The execute method is required to send the CRUD operation request to the MySQL server.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A Result object that can be used to verify the status of the operation, such as the number of affected rows.

Exemples

Exemple #1 mysql_xdevapi\CollectionAdd::execute() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$collection = $schema->getCollection("people");

// Add two documents
$collection
->add('{"name": "Fred", "age": 21, "job": "Construction"}')
->execute();

$collection
->add('{"name": "Wilma", "age": 23, "job": "Teacher"}')
->execute();

// Add two documents using a single JSON object
$result = $collection
->add(
'{"name": "Bernie",
"jobs": [{"title":"Cat Herder","Salary":42000}, {"title":"Father","Salary":0}],
"hobbies": ["Sports","Making cupcakes"]}',
'{"name": "Jane",
"jobs": [{"title":"Scientist","Salary":18000}, {"title":"Mother","Salary":0}],
"hobbies": ["Walking","Making pies"]}')
->execute();

// Fetch a list of generated ID's from the last add()
$ids = $result->getGeneratedIds();
print_r($ids);
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => 00005b6b53610000000000000056
    [1] => 00005b6b53610000000000000057
)


Classe CollectionFind

(PECL mysql-xdevapi >= 8.0.11)

Introduction

Synopsis de la classe

class mysql_xdevapi\CollectionFind implements mysql_xdevapi\Executable, mysql_xdevapi\CrudOperationBindable, mysql_xdevapi\CrudOperationLimitable, mysql_xdevapi\CrudOperationSortable {
/* Méthodes */
public bind(array $placeholder_values): mysql_xdevapi\CollectionFind
public execute(): mysql_xdevapi\DocResult
public fields(string $projection): mysql_xdevapi\CollectionFind
public groupBy(string $sort_expr): mysql_xdevapi\CollectionFind
public having(string $sort_expr): mysql_xdevapi\CollectionFind
public limit(int $rows): mysql_xdevapi\CollectionFind
public lockExclusive(int $lock_waiting_option = ?): mysql_xdevapi\CollectionFind
public lockShared(int $lock_waiting_option = ?): mysql_xdevapi\CollectionFind
public offset(int $position): mysql_xdevapi\CollectionFind
public sort(string $sort_expr): mysql_xdevapi\CollectionFind
}

Sommaire

  • CollectionFind::bind — Bind value to query placeholder
  • CollectionFind::__construct — CollectionFind constructor
  • CollectionFind::execute — Execute the statement
  • CollectionFind::fields — Set document field filter
  • CollectionFind::groupBy — Set grouping criteria
  • CollectionFind::having — Set condition for aggregate functions
  • CollectionFind::limit — Limit number of returned documents
  • CollectionFind::lockExclusive — Execute operation with EXCLUSIVE LOCK
  • CollectionFind::lockShared — Execute operation with SHARED LOCK
  • CollectionFind::offset — Skip given number of elements to be returned
  • CollectionFind::sort — Set the sorting criteria


Bind value to query placeholder

  • « mysql_xdevapi\CollectionFind
  • CollectionFind::__construct »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Bind value to query placeholder

CollectionFind::bind

(No version information available, might only be in Git)

CollectionFind::bind — Bind value to query placeholder

Description

public mysql_xdevapi\CollectionFind::bind(array $placeholder_values): mysql_xdevapi\CollectionFind

It allows the user to bind a parameter to the placeholder in the search condition of the find operation. The placeholder has the form of :NAME where ':' is a common prefix that must always exists before any NAME, NAME is the actual name of the placeholder. The bind function accepts a list of placeholders if multiple entities have to be substituted in the search condition.

Liste de paramètres

placeholder_values

Values to substitute in the search condition; multiple values are allowed and are passed as an array where "PLACEHOLDER_NAME => PLACEHOLDER_VALUE".

Valeurs de retour

A CollectionFind object, or chain with execute() to return a Result object.

Exemples

Exemple #1 mysql_xdevapi\CollectionFind::bind() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");
$result = $create
->add('{"name": "Alfred", "age": 18, "job": "Butler"}')
->execute();

// ...

$collection = $schema->getCollection("people");

$result = $collection
->find('job like :job and age > :age')
->bind(['job' => 'Butler', 'age' => 16])
->execute();

var_dump($result->fetchAll());
?>

Résultat de l'exemple ci-dessus est similaire à :

array(1) {
  [0]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b536100000000000000cf"
    ["age"]=>
    int(18)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(6) "Alfred"
  }
}


CollectionFind constructor

  • « CollectionFind::bind
  • CollectionFind::execute »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • CollectionFind constructor

CollectionFind::__construct

(No version information available, might only be in Git)

CollectionFind::__construct — CollectionFind constructor

Description

private mysql_xdevapi\CollectionFind::__construct()

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Exemples

Exemple #1 CollectionFind example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");
$result = $create
->add('{"name": "Alfred", "age": 18, "job": "Butler"}')
->execute();

// ...

$collection = $schema->getCollection("people");

$result = $collection
->find('job like :job and age > :age')
->bind(['job' => 'Butler', 'age' => 16])
->execute();

var_dump($result->fetchAll());
?>

Résultat de l'exemple ci-dessus est similaire à :

array(1) {
  [0]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b536100000000000000cf"
    ["age"]=>
    int(18)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(6) "Alfred"
  }
}


Execute the statement

  • « CollectionFind::__construct
  • CollectionFind::fields »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Execute the statement

CollectionFind::execute

(No version information available, might only be in Git)

CollectionFind::execute — Execute the statement

Description

public mysql_xdevapi\CollectionFind::execute(): mysql_xdevapi\DocResult

Execute the find operation; this functionality allows for method chaining.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A mysql_xdevapi\DocResult object that can be used to either fetch results from, or to query the status of the operation.

Exemples

Exemple #1 CollectionFind example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$create
->add('{"name": "Alfred", "age": 18, "job": "Butler"}')
->execute();

// ...

$collection = $schema->getCollection("people");

$result = $collection
->find('job like :job and age > :age')
->bind(['job' => 'Butler', 'age' => 16])
->execute();

var_dump($result->fetchAll());
?>

Résultat de l'exemple ci-dessus est similaire à :

array(1) {
  [0]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b536100000000000000cf"
    ["age"]=>
    int(18)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(6) "Alfred"
  }
}


Set document field filter

  • « CollectionFind::execute
  • CollectionFind::groupBy »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Set document field filter

CollectionFind::fields

(No version information available, might only be in Git)

CollectionFind::fields — Set document field filter

Description

public mysql_xdevapi\CollectionFind::fields(string $projection): mysql_xdevapi\CollectionFind

Defines the columns for the query to return. If not defined, all columns are used.

Liste de paramètres

projection

Can either be a single string or an array of strings identifying the columns to be returned for each document that match the search condition.

Valeurs de retour

A CollectionFind object that can be used for further processing.

Exemples

Exemple #1 mysql_xdevapi\CollectionFind::fields() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$create
->add('{"name": "Alfred", "age": 18, "job": "Butler"}')
->execute();

// ...

$collection = $schema->getCollection("people");

$result = $collection
->find('job like :job and age > :age')
->bind(['job' => 'Butler', 'age' => 16])
->fields('name')
->execute();

var_dump($result->fetchAll());
?>

Résultat de l'exemple ci-dessus est similaire à :

array(1) {
  [0]=>
  array(1) {
    ["name"]=>
    string(6) "Alfred"
  }
}


Set grouping criteria

  • « CollectionFind::fields
  • CollectionFind::having »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Set grouping criteria

CollectionFind::groupBy

(No version information available, might only be in Git)

CollectionFind::groupBy — Set grouping criteria

Description

public mysql_xdevapi\CollectionFind::groupBy(string $sort_expr): mysql_xdevapi\CollectionFind

This function can be used to group the result set by one or more columns. It is often used with aggregate functions such as COUNT, MAX, MIN, SUM etc.

Liste de paramètres

sort_expr

The column or columns that have to be used for the group operation, this can either be a single string or an array of string arguments, one for each column.

Valeurs de retour

A CollectionFind object that can be used for further processing.

Exemples

Exemple #1 mysql_xdevapi\CollectionFind::groupBy() example

<?php

// Assuming $coll is a valid Collection object

// Extract all the documents from the Collection and group the results by the 'name' field
$res = $coll->find()->groupBy('name')->execute();

?>


Set condition for aggregate functions

  • « CollectionFind::groupBy
  • CollectionFind::limit »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Set condition for aggregate functions

CollectionFind::having

(No version information available, might only be in Git)

CollectionFind::having — Set condition for aggregate functions

Description

public mysql_xdevapi\CollectionFind::having(string $sort_expr): mysql_xdevapi\CollectionFind

This function can be used after the 'field' operation in order to make a selection on the documents to extract.

Liste de paramètres

sort_expr

This must be a valid SQL expression, the use of aggreate functions is allowed

Valeurs de retour

CollectionFind object that can be used for further processing

Exemples

Exemple #1 mysql_xdevapi\CollectionFind::having() example

<?php

//Assuming $coll is a valid Collection object

//Find all the documents for which the 'age' is greather than 40,
//Only the columns 'name' and 'age' are returned in the Result object
$res = $coll->find()->fields(['name','age'])->having('age > 40')->execute();

?>


Limit number of returned documents

  • « CollectionFind::having
  • CollectionFind::lockExclusive »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Limit number of returned documents

CollectionFind::limit

(No version information available, might only be in Git)

CollectionFind::limit — Limit number of returned documents

Description

public mysql_xdevapi\CollectionFind::limit(int $rows): mysql_xdevapi\CollectionFind

Set the maximum number of documents to return.

Liste de paramètres

rows

Maximum number of documents.

Valeurs de retour

A CollectionFind object that can be used for additional processing; chain with the execute() method to return a DocResult object.

Exemples

Exemple #1 mysql_xdevapi\CollectionFind::limit() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");
$create
->add('{"name": "Alfred", "age": 18, "job": "Butler"}')
->execute();
$create
->add('{"name": "Reginald", "age": 42, "job": "Butler"}')
->execute();

// ...

$collection = $schema->getCollection("people");

$result = $collection
->find('job like :job and age > :age')
->bind(['job' => 'Butler', 'age' => 16])
->sort('age desc')
->limit(1)
->execute();

var_dump($result->fetchAll());
?>

Résultat de l'exemple ci-dessus est similaire à :

array(1) {
  [0]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b536100000000000000f3"
    ["age"]=>
    int(42)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(8) "Reginald"
  }
}


Execute operation with EXCLUSIVE LOCK

  • « CollectionFind::limit
  • CollectionFind::lockShared »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Execute operation with EXCLUSIVE LOCK

CollectionFind::lockExclusive

(No version information available, might only be in Git)

CollectionFind::lockExclusive — Execute operation with EXCLUSIVE LOCK

Description

public mysql_xdevapi\CollectionFind::lockExclusive(int $lock_waiting_option = ?): mysql_xdevapi\CollectionFind

Locks the document exclusively. As long as the document is locked, other transactions can't update the document, use SELECT ... LOCK IN SHARE MODE, or read the data in certain transaction isolation levels. Consistent reads ignore any locks set on the records that exist in the read view.

To avoid concurrency problems, it makes sense to use this function with the mysql_xdevapi\Collection::modify() method. Essentially, this function uses row locks to serialise access to rows.

Liste de paramètres

lock_waiting_option

Optional waiting option. By default it is MYSQLX_LOCK_DEFAULT. Valid values are these constants:

  • MYSQLX_LOCK_DEFAULT

  • MYSQLX_LOCK_NOWAIT

  • MYSQLX_LOCK_SKIP_LOCKED

Valeurs de retour

Returns a CollectionFind object that can be used for further processing.

Exemples

Exemple #1 mysql_xdevapi\CollectionFind::lockExclusive() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$session->startTransaction();

$result = $collection
->find("age > 50")
->lockExclusive()
->execute();

// ... do an operation on the object

// Complete the transaction and unlock the document
$session->commit();
?>


Execute operation with SHARED LOCK

  • « CollectionFind::lockExclusive
  • CollectionFind::offset »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Execute operation with SHARED LOCK

CollectionFind::lockShared

(No version information available, might only be in Git)

CollectionFind::lockShared — Execute operation with SHARED LOCK

Description

public mysql_xdevapi\CollectionFind::lockShared(int $lock_waiting_option = ?): mysql_xdevapi\CollectionFind

Allows to share the documents between multiple transactions which are locking in shared mode.

Other sessions can read the rows, but cannot modify them until your transaction commits.

If any of these rows were changed by another transaction that hasn't been committed, the query will wait until that transaction has ended to be able to use the latest values.

Liste de paramètres

lock_waiting_option

Optional waiting option. By default it is MYSQLX_LOCK_DEFAULT. Valid values are these constants:

  • MYSQLX_LOCK_DEFAULT

  • MYSQLX_LOCK_NOWAIT

  • MYSQLX_LOCK_SKIP_LOCKED

Valeurs de retour

A CollectionFind object that can be used for further processing

Exemples

Exemple #1 mysql_xdevapi\CollectionFind::lockShared() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$session->startTransaction();

$result = $collection
->find("age > 50")
->lockShared()
->execute();

// ... read the object in shared mode

// Complete the transaction and unlock the document
$session->commit();
?>


Skip given number of elements to be returned

  • « CollectionFind::lockShared
  • CollectionFind::sort »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Skip given number of elements to be returned

CollectionFind::offset

(No version information available, might only be in Git)

CollectionFind::offset — Skip given number of elements to be returned

Description

public mysql_xdevapi\CollectionFind::offset(int $position): mysql_xdevapi\CollectionFind

Skip (offset) these number of elements that otherwise would be returned by the find operation. Use with the limit() method.

Defining an offset larger than the result set size results in an empty set.

Liste de paramètres

position

Number of elements to skip for the limit() operation.

Valeurs de retour

A CollectionFind object that can be used for additional processing.

Exemples

Exemple #1 mysql_xdevapi\CollectionFind::offset() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");
$create
->add('{"name": "Alfred", "age": 18, "job": "Butler"}')
->execute();
$create
->add('{"name": "Reginald", "age": 42, "job": "Butler"}')
->execute();

// ...

$collection = $schema->getCollection("people");

$result = $collection
->find()
->sort('age asc')
->offset(1)
->limit(1)
->execute();

var_dump($result->fetchAll());
?>

Résultat de l'exemple ci-dessus est similaire à :

array(1) {
  [0]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b536100000000000000f3"
    ["age"]=>
    int(42)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(8) "Reginald"
  }
}


Set the sorting criteria

  • « CollectionFind::offset
  • mysql_xdevapi\CollectionModify »
  • PHP Manual
  • mysql_xdevapi\CollectionFind
  • Set the sorting criteria

CollectionFind::sort

(No version information available, might only be in Git)

CollectionFind::sort — Set the sorting criteria

Description

public mysql_xdevapi\CollectionFind::sort(string $sort_expr): mysql_xdevapi\CollectionFind

Sort the result set by the field selected in the sort_expr argument. The allowed orders are ASC (Ascending) or DESC (Descending). This operation is equivalent to the 'ORDER BY' SQL operation and it follows the same set of rules.

Liste de paramètres

sort_expr

One or more sorting expressions can be provided. The evaluation is from left to right, and each expression is separated by a comma.

Valeurs de retour

A CollectionFind object that can be used to execute the command, or to add additional operations.

Exemples

Exemple #1 mysql_xdevapi\CollectionFind::sort() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");
$create
->add('{"name": "Alfred", "age": 18, "job": "Butler"}')
->execute();
$create
->add('{"name": "Reginald", "age": 42, "job": "Butler"}')
->execute();

// ...

$collection = $schema->getCollection("people");

$result = $collection
->find()
->sort('job desc', 'age asc')
->execute();

var_dump($result->fetchAll());
?>

Résultat de l'exemple ci-dessus est similaire à :

array(2) {
  [0]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b53610000000000000106"
    ["age"]=>
    int(18)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(6) "Alfred"
  }
  [1]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b53610000000000000107"
    ["age"]=>
    int(42)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(8) "Reginald"
  }
}


Classe CollectionModify

(PECL mysql-xdevapi >= 8.0.11)

Introduction

Synopsis de la classe

class mysql_xdevapi\CollectionModify implements mysql_xdevapi\Executable, mysql_xdevapi\CrudOperationBindable, mysql_xdevapi\CrudOperationLimitable, mysql_xdevapi\CrudOperationSkippable, mysql_xdevapi\CrudOperationSortable {
/* Méthodes */
public arrayAppend(string $collection_field, string $expression_or_literal): mysql_xdevapi\CollectionModify
public arrayInsert(string $collection_field, string $expression_or_literal): mysql_xdevapi\CollectionModify
public bind(array $placeholder_values): mysql_xdevapi\CollectionModify
public execute(): mysql_xdevapi\Result
public limit(int $rows): mysql_xdevapi\CollectionModify
public patch(string $document): mysql_xdevapi\CollectionModify
public replace(string $collection_field, string $expression_or_literal): mysql_xdevapi\CollectionModify
public set(string $collection_field, string $expression_or_literal): mysql_xdevapi\CollectionModify
public skip(int $position): mysql_xdevapi\CollectionModify
public sort(string $sort_expr): mysql_xdevapi\CollectionModify
public unset(array $fields): mysql_xdevapi\CollectionModify
}

Sommaire

  • CollectionModify::arrayAppend — Append element to an array field
  • CollectionModify::arrayInsert — Insert element into an array field
  • CollectionModify::bind — Bind value to query placeholder
  • CollectionModify::__construct — CollectionModify constructor
  • CollectionModify::execute — Execute modify operation
  • CollectionModify::limit — Limit number of modified documents
  • CollectionModify::patch — Patch document
  • CollectionModify::replace — Replace document field
  • CollectionModify::set — Set document attribute
  • CollectionModify::skip — Skip elements
  • CollectionModify::sort — Set the sorting criteria
  • CollectionModify::unset — Unset the value of document fields


Append element to an array field

  • « mysql_xdevapi\CollectionModify
  • CollectionModify::arrayInsert »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Append element to an array field

CollectionModify::arrayAppend

(No version information available, might only be in Git)

CollectionModify::arrayAppend — Append element to an array field

Description

public mysql_xdevapi\CollectionModify::arrayAppend(string $collection_field, string $expression_or_literal): mysql_xdevapi\CollectionModify

Add an element to a document's field, as multiple elements of a field are represented as an array. Unlike arrayInsert(), arrayAppend() always appends the new element at the end of the array, whereas arrayInsert() can define the location.

Liste de paramètres

collection_field

The identifier of the field where the new element is inserted.

expression_or_literal

The new element to insert at the end of the document field array.

Valeurs de retour

A CollectionModify object that can be used to execute the command, or to add additional operations.

Exemples

Exemple #1 mysql_xdevapi\CollectionModify::arrayAppend() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection
->add(
'{"name": "Bernie",
"traits": ["Friend", "Brother", "Human"]}')
->execute();

$collection
->modify("name in ('Bernie', 'Jane')")
->arrayAppend('traits', 'Happy')
->execute();

$result = $collection
->find()
->execute();

print_r($result->fetchAll());
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => Array
        (
            [_id] => 00005b6b5361000000000000010c
            [name] => Bernie
            [traits] => Array
                (
                    [0] => Friend
                    [1] => Brother
                    [2] => Human
                    [3] => Happy
                )
        )
)


Insert element into an array field

  • « CollectionModify::arrayAppend
  • CollectionModify::bind »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Insert element into an array field

CollectionModify::arrayInsert

(No version information available, might only be in Git)

CollectionModify::arrayInsert — Insert element into an array field

Description

public mysql_xdevapi\CollectionModify::arrayInsert(string $collection_field, string $expression_or_literal): mysql_xdevapi\CollectionModify

Adds an element to a document's field, as multiple elements of a field are represented as an array. Unlike mysql_xdevapi\CollectionModify::arrayAppend() this method allows to specify where the new element is inserted by defining which item it is after, whereas mysql_xdevapi\CollectionModify::arrayAppend() always appends the new element at the end of the array.

Liste de paramètres

collection_field

Identifies the item in the array after which the new element will be inserted. The format of this parameter is FIELD_NAME[ INDEX ] where FIELD_NAME is the name of the document field to add the element to, and INDEX is the INDEX of the element within the field.

The INDEX field is zero based, so the first item of the array has an index of 0.

expression_or_literal

The new element to insert after FIELD_NAME[ INDEX ]

Valeurs de retour

A CollectionModify object that can be used to execute the command, or to add additional operations

Exemples

Exemple #1 mysql_xdevapi\CollectionModify::arrayInsert() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection
->add(
'{"name": "Bernie",
"traits": ["Friend", "Brother", "Human"]}')
->execute();

$collection
->modify("name in ('Bernie', 'Jane')")
->arrayInsert('traits[1]', 'Happy')
->execute();

$result = $collection
->find()
->execute();

print_r($result->fetchAll());
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => Array
        (
            [_id] => 00005b6b5361000000000000010d
            [name] => Bernie
            [traits] => Array
                (
                    [0] => Friend
                    [1] => Happy
                    [2] => Brother
                    [3] => Human
                )
        )
)


Bind value to query placeholder

  • « CollectionModify::arrayInsert
  • CollectionModify::__construct »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Bind value to query placeholder

CollectionModify::bind

(No version information available, might only be in Git)

CollectionModify::bind — Bind value to query placeholder

Description

public mysql_xdevapi\CollectionModify::bind(array $placeholder_values): mysql_xdevapi\CollectionModify

Bind a parameter to the placeholder in the search condition of the modify operation.

The placeholder has the form of :NAME where ':' is a common prefix that must always exists before any NAME where NAME is the name of the placeholder. The bind method accepts a list of placeholders if multiple entities have to be substituted in the search condition of the modify operation.

Liste de paramètres

placeholder_values

Placeholder values to substitute in the search condition. Multiple values are allowed and have to be passed as an array of mappings PLACEHOLDER_NAME->PLACEHOLDER_VALUE.

Valeurs de retour

A CollectionModify object that can be used to execute the command, or to add additional operations.

Exemples

Exemple #1 mysql_xdevapi\CollectionModify::bind() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection
->add(
'{"name": "Bernie",
"traits": ["Friend", "Brother", "Human"]}')
->execute();

$collection
->modify("name = :name")
->bind(['name' => 'Bernie'])
->arrayAppend('traits', 'Happy')
->execute();

$result = $collection
->find()
->execute();

print_r($result->fetchAll());
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => Array
        (
            [_id] => 00005b6b53610000000000000110
            [name] => Bernie
            [traits] => Array
                (
                    [0] => Friend
                    [1] => Brother
                    [2] => Human
                    [3] => Happy
                )
        )
)


CollectionModify constructor

  • « CollectionModify::bind
  • CollectionModify::execute »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • CollectionModify constructor

CollectionModify::__construct

(No version information available, might only be in Git)

CollectionModify::__construct — CollectionModify constructor

Description

private mysql_xdevapi\CollectionModify::__construct()

Modifies (updates) a collection and is instantiated by the mysql_xdevapi\Collection::modify() method.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Exemples

Exemple #1 mysql_xdevapi\CollectionModify::__construct() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection
->add(
'{"name": "Bernie",
"traits": ["Friend", "Brother", "Human"]}')
->execute();

$collection
->modify("name in ('Bernie', 'Jane')")
->arrayAppend('traits', 'Happy')
->execute();

$result = $collection
->find()
->execute();

print_r($result->fetchAll());
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => Array
        (
            [_id] => 00005b6b5361000000000000010c
            [name] => Bernie
            [traits] => Array
                (
                    [0] => Friend
                    [1] => Brother
                    [2] => Human
                    [3] => Happy
                )
        )
)


Execute modify operation

  • « CollectionModify::__construct
  • CollectionModify::limit »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Execute modify operation

CollectionModify::execute

(No version information available, might only be in Git)

CollectionModify::execute — Execute modify operation

Description

public mysql_xdevapi\CollectionModify::execute(): mysql_xdevapi\Result

The execute method is required to send the CRUD operation request to the MySQL server.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A Result object that can be used to verify the status of the operation, such as the number of affected rows.

Exemples

Exemple #1 mysql_xdevapi\CollectionModify::execute() example

<?php

/* ... */

?>


Limit number of modified documents

  • « CollectionModify::execute
  • CollectionModify::patch »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Limit number of modified documents

CollectionModify::limit

(No version information available, might only be in Git)

CollectionModify::limit — Limit number of modified documents

Description

public mysql_xdevapi\CollectionModify::limit(int $rows): mysql_xdevapi\CollectionModify

Limit the number of documents modified by this operation. Optionally combine with skip() to define an offset value.

Liste de paramètres

rows

The maximum number of documents to modify.

Valeurs de retour

A CollectionModify object.

Exemples

Exemple #1 mysql_xdevapi\CollectionModify::limit() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$collection->add('{"name": "Fred", "age": 21, "job": "Construction"}')->execute();
$collection->add('{"name": "Wilma", "age": 23, "job": "Teacher"}')->execute();
$collection->add('{"name": "Betty", "age": 24, "job": "Teacher"}')->execute();

$collection
->modify("job = :job")
->bind(['job' => 'Teacher'])
->set('job', 'Principal')
->limit(1)
->execute();

$result = $collection
->find()
->execute();

print_r($result->fetchAll());
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => Array
        (
            [_id] => 00005b6b53610000000000000118
            [age] => 21
            [job] => Construction
            [name] => Fred
        )
    [1] => Array
        (
            [_id] => 00005b6b53610000000000000119
            [age] => 23
            [job] => Principal
            [name] => Wilma
        )
    [2] => Array
        (
            [_id] => 00005b6b5361000000000000011a
            [age] => 24
            [job] => Teacher
            [name] => Betty
        )
)


Patch document

  • « CollectionModify::limit
  • CollectionModify::replace »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Patch document

CollectionModify::patch

(No version information available, might only be in Git)

CollectionModify::patch — Patch document

Description

public mysql_xdevapi\CollectionModify::patch(string $document): mysql_xdevapi\CollectionModify

Takes a patch object and applies it on one or more documents, and can update multiple document properties.

Liste de paramètres

document

A document with the properties to apply to the matching documents.

Valeurs de retour

A CollectionModify object.

Exemples

Exemple #1 mysql_xdevapi\CollectionModify::patch() example

<?php

$res = $coll->modify('"Programmatore" IN job')->patch('{"Hobby" : "Programmare"}')->execute();

?>


Replace document field

  • « CollectionModify::patch
  • CollectionModify::set »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Replace document field

CollectionModify::replace

(No version information available, might only be in Git)

CollectionModify::replace — Replace document field

Description

public mysql_xdevapi\CollectionModify::replace(string $collection_field, string $expression_or_literal): mysql_xdevapi\CollectionModify

Replace (update) a given field value with a new one.

Liste de paramètres

collection_field

The document path of the item to set.

expression_or_literal

The value to set on the specified attribute.

Valeurs de retour

A CollectionModify object.

Exemples

Exemple #1 mysql_xdevapi\CollectionModify::replace() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection
->add(
'{"name": "Bernie",
"traits": ["Friend", "Brother", "Human"]}')
->execute();

$collection
->modify("name = :name")
->bind(['name' => 'Bernie'])
->replace("name", "Bern")
->execute();

$result = $collection
->find()
->execute();

print_r($result->fetchAll());
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => Array
        (
            [_id] => 00005b6b5361000000000000011b
            [name] => Bern
            [traits] => Array
                (
                    [0] => Friend
                    [1] => Brother
                    [2] => Human
                )
        )
)


Set document attribute

  • « CollectionModify::replace
  • CollectionModify::skip »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Set document attribute

CollectionModify::set

(No version information available, might only be in Git)

CollectionModify::set — Set document attribute

Description

public mysql_xdevapi\CollectionModify::set(string $collection_field, string $expression_or_literal): mysql_xdevapi\CollectionModify

Sets or updates attributes on documents in a collection.

Liste de paramètres

collection_field

The document path (name) of the item to set.

expression_or_literal

The value to set it to.

Valeurs de retour

A CollectionModify object.

Exemples

Exemple #1 mysql_xdevapi\CollectionModify::set() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$result = $collection
->add(
'{"name": "Bernie",
"traits": ["Friend", "Brother", "Human"]}')
->execute();

$collection
->modify("name = :name")
->bind(['name' => 'Bernie'])
->set("name", "Bern")
->execute();

$result = $collection
->find()
->execute();

print_r($result->fetchAll());
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => Array
        (
            [_id] => 00005b6b53610000000000000111
            [name] => Bern
            [traits] => Array
                (
                    [0] => Friend
                    [1] => Brother
                    [2] => Human
                )
        )
)


Skip elements

  • « CollectionModify::set
  • CollectionModify::sort »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Skip elements

CollectionModify::skip

(No version information available, might only be in Git)

CollectionModify::skip — Skip elements

Description

public mysql_xdevapi\CollectionModify::skip(int $position): mysql_xdevapi\CollectionModify

Skips the first N elements that would otherwise be returned by a find operation. If the number of elements skipped is larger than the size of the result set, then the find operation returns an empty set.

Liste de paramètres

position

Number of elements to skip.

Valeurs de retour

A CollectionModify object to use for further processing.

Exemples

Exemple #1 mysql_xdevapi\CollectionModify::skip() example

<?php

$coll->modify('age > :age')->sort('age desc')->unset(['age'])->bind(['age' => 20])->limit(4)->skip(1)->execute();

?>


Set the sorting criteria

  • « CollectionModify::skip
  • CollectionModify::unset »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Set the sorting criteria

CollectionModify::sort

(No version information available, might only be in Git)

CollectionModify::sort — Set the sorting criteria

Description

public mysql_xdevapi\CollectionModify::sort(string $sort_expr): mysql_xdevapi\CollectionModify

Sorts the result set by the field selected in the sort_expr argument. The allowed orders are ASC (Ascending) or DESC (Descending). This operation is equivalent to the 'ORDER BY' SQL operation and it follows the same set of rules.

Liste de paramètres

sort_expr

One or more sort expressions can be provided. The evaluation is from left to right and each expression must be separated by a comma.

Valeurs de retour

CollectionModify object that can be used for further processing.

Exemples

Exemple #1 mysql_xdevapi\CollectionModify::sort() example

<?php

$res = $coll->modify('true')->sort('name desc', 'age asc')->limit(4)->set('Married', 'NO')->execute();

?>


Unset the value of document fields

  • « CollectionModify::sort
  • mysql_xdevapi\CollectionRemove »
  • PHP Manual
  • mysql_xdevapi\CollectionModify
  • Unset the value of document fields

CollectionModify::unset

(No version information available, might only be in Git)

CollectionModify::unset — Unset the value of document fields

Description

public mysql_xdevapi\CollectionModify::unset(array $fields): mysql_xdevapi\CollectionModify

Removes attributes from documents in a collection.

Liste de paramètres

fields

The attributes to remove from documents in a collection.

Valeurs de retour

CollectionModify object that can be used for further processing.

Exemples

Exemple #1 mysql_xdevapi\CollectionModify::unset() example

<?php

$res = $coll->modify('job like :job_name')->unset(["age", "name"])->bind(['job_name' => 'Plumber'])->execute();

?>


Classe CollectionRemove

(PECL mysql-xdevapi >= 8.0.11)

Introduction

Synopsis de la classe

class mysql_xdevapi\CollectionRemove implements mysql_xdevapi\Executable, mysql_xdevapi\CrudOperationBindable, mysql_xdevapi\CrudOperationLimitable, mysql_xdevapi\CrudOperationSortable {
/* Méthodes */
public bind(array $placeholder_values): mysql_xdevapi\CollectionRemove
public execute(): mysql_xdevapi\Result
public limit(int $rows): mysql_xdevapi\CollectionRemove
public sort(string $sort_expr): mysql_xdevapi\CollectionRemove
}

Sommaire

  • CollectionRemove::bind — Bind value to placeholder
  • CollectionRemove::__construct — CollectionRemove constructor
  • CollectionRemove::execute — Execute remove operation
  • CollectionRemove::limit — Limit number of documents to remove
  • CollectionRemove::sort — Set the sorting criteria


Bind value to placeholder

  • « mysql_xdevapi\CollectionRemove
  • CollectionRemove::__construct »
  • PHP Manual
  • mysql_xdevapi\CollectionRemove
  • Bind value to placeholder

CollectionRemove::bind

(No version information available, might only be in Git)

CollectionRemove::bind — Bind value to placeholder

Description

public mysql_xdevapi\CollectionRemove::bind(array $placeholder_values): mysql_xdevapi\CollectionRemove

Bind a parameter to the placeholder in the search condition of the remove operation.

The placeholder has the form of :NAME where ':' is a common prefix that must always exists before any NAME where NAME is the name of the placeholder. The bind method accepts a list of placeholders if multiple entities have to be substituted in the search condition of the remove operation.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

placeholder_values

Placeholder values to substitute in the search condition. Multiple values are allowed and have to be passed as an array of mappings PLACEHOLDER_NAME->PLACEHOLDER_VALUE.

Valeurs de retour

A CollectionRemove object that can be used to execute the command, or to add additional operations.

Exemples

Exemple #1 mysql_xdevapi\CollectionRemove::bind() example

<?php

$res = $coll->remove('age > :age_from and age < :age_to')->bind(['age_from' => 20, 'age_to' => 50])->limit(7)->execute();

?>


CollectionRemove constructor

  • « CollectionRemove::bind
  • CollectionRemove::execute »
  • PHP Manual
  • mysql_xdevapi\CollectionRemove
  • CollectionRemove constructor

CollectionRemove::__construct

(No version information available, might only be in Git)

CollectionRemove::__construct — CollectionRemove constructor

Description

private mysql_xdevapi\CollectionRemove::__construct()

Removes collection documents and is instantiated by the mysql_xdevapi\Collection::remove() method.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Exemples

Exemple #1 mysql_xdevapi\Collection::remove() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");

$collection->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();
$collection->add('{"name": "Bob", "age": 19, "job": "Painter"}')->execute();

// Remove all painters
$collection
->remove("job in ('Painter')")
->execute();

// Remove the oldest butler
$collection
->remove("job in ('Butler')")
->sort('age desc')
->limit(1)
->execute();

// Remove record with lowest age
$collection
->remove('true')
->sort('age desc')
->limit(1)
->execute();
?>


Execute remove operation

  • « CollectionRemove::__construct
  • CollectionRemove::limit »
  • PHP Manual
  • mysql_xdevapi\CollectionRemove
  • Execute remove operation

CollectionRemove::execute

(No version information available, might only be in Git)

CollectionRemove::execute — Execute remove operation

Description

public mysql_xdevapi\CollectionRemove::execute(): mysql_xdevapi\Result

The execute function needs to be invoked in order to trigger the client to send the CRUD operation request to the server.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Result object.

Exemples

Exemple #1 mysql_xdevapi\CollectionRemove::execute() example

<?php

$res = $coll->remove('true')->sort('age desc')->limit(2)->execute();

?>


Limit number of documents to remove

  • « CollectionRemove::execute
  • CollectionRemove::sort »
  • PHP Manual
  • mysql_xdevapi\CollectionRemove
  • Limit number of documents to remove

CollectionRemove::limit

(No version information available, might only be in Git)

CollectionRemove::limit — Limit number of documents to remove

Description

public mysql_xdevapi\CollectionRemove::limit(int $rows): mysql_xdevapi\CollectionRemove

Sets the maximum number of documents to remove.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

rows

The maximum number of documents to remove.

Valeurs de retour

Returns a CollectionRemove object that can be used to execute the command, or to add additional operations.

Exemples

Exemple #1 mysql_xdevapi\CollectionRemove::limit() example

<?php

$res = $coll->remove('job in (\'Barista\', \'Programmatore\', \'Ballerino\', \'Programmatrice\')')->limit(5)->sort(['age desc', 'name asc'])->execute();

?>


Set the sorting criteria

  • « CollectionRemove::limit
  • mysql_xdevapi\ColumnResult »
  • PHP Manual
  • mysql_xdevapi\CollectionRemove
  • Set the sorting criteria

CollectionRemove::sort

(No version information available, might only be in Git)

CollectionRemove::sort — Set the sorting criteria

Description

public mysql_xdevapi\CollectionRemove::sort(string $sort_expr): mysql_xdevapi\CollectionRemove

Sort the result set by the field selected in the sort_expr argument. The allowed orders are ASC (Ascending) or DESC (Descending). This operation is equivalent to the 'ORDER BY' SQL operation and it follows the same set of rules.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

sort_expr

One or more sorting expressions can be provided. The evaluation is from left to right, and each expression is separated by a comma.

Valeurs de retour

A CollectionRemove object that can be used to execute the command, or to add additional operations.

Exemples

Exemple #1 mysql_xdevapi\CollectionRemove::sort() example

<?php

$res = $coll->remove('true')->sort('age desc')->limit(2)->execute();

?>


Classe ColumnResult

(PECL mysql-xdevapi >= 8.0.11)

Introduction

Synopsis de la classe

class mysql_xdevapi\ColumnResult {
/* Méthodes */
public getCharacterSetName(): string
public getCollationName(): string
public getColumnLabel(): string
public getColumnName(): string
public getFractionalDigits(): int
public getLength(): int
public getSchemaName(): string
public getTableLabel(): string
public getTableName(): string
public getType(): int
public isNumberSigned(): int
public isPadded(): int
}

Sommaire

  • ColumnResult::__construct — ColumnResult constructor
  • ColumnResult::getCharacterSetName — Get character set
  • ColumnResult::getCollationName — Get collation name
  • ColumnResult::getColumnLabel — Get column label
  • ColumnResult::getColumnName — Get column name
  • ColumnResult::getFractionalDigits — Get fractional digit length
  • ColumnResult::getLength — Get column field length
  • ColumnResult::getSchemaName — Get schema name
  • ColumnResult::getTableLabel — Get table label
  • ColumnResult::getTableName — Get table name
  • ColumnResult::getType — Get column type
  • ColumnResult::isNumberSigned — Check if signed type
  • ColumnResult::isPadded — Check if padded


ColumnResult constructor

  • « mysql_xdevapi\ColumnResult
  • ColumnResult::getCharacterSetName »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • ColumnResult constructor

ColumnResult::__construct

(No version information available, might only be in Git)

ColumnResult::__construct — ColumnResult constructor

Description

private mysql_xdevapi\ColumnResult::__construct()

Retrieves column metadata, such as its character set; this is instantiated by the mysql_xdevapi\RowResult::getColumns() method.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Exemples

Exemple #1 mysql_xdevapi\ColumnResult::__construct() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS nonsense")->execute();
$session->sql("CREATE DATABASE nonsense")->execute();
$session->sql("CREATE TABLE nonsense.numbers (hello int, world float unsigned)")->execute();
$session->sql("INSERT INTO nonsense.numbers values (42, 42)")->execute();

$schema = $session->getSchema("nonsense");
$table = $schema->getTable("numbers");

$result1 = $table->select('hello','world')->execute();

// Returns an array of ColumnResult objects
$columns = $result1->getColumns();

foreach ($columns as $column) {
echo "\nColumn label " , $column->getColumnLabel();
echo " is type " , $column->getType();
echo " and is ", ($column->isNumberSigned() === 0) ? "unsigned." : "signed.";
}

// Alternatively
$result2 = $session->sql("SELECT * FROM nonsense.numbers")->execute();

// Returns an array of FieldMetadata objects
print_r($result2->getColumns());

Résultat de l'exemple ci-dessus est similaire à :

Column label hello is type 19 and is signed.
Column label world is type 4  and is unsigned.

Array
(
    [0] => mysql_xdevapi\FieldMetadata Object
        (
            [type] => 1
            [type_name] => SINT
            [name] => hello
            [original_name] => hello
            [table] => numbers
            [original_table] => numbers
            [schema] => nonsense
            [catalog] => def
            [collation] => 0
            [fractional_digits] => 0
            [length] => 11
            [flags] => 0
            [content_type] => 0
        )
    [1] => mysql_xdevapi\FieldMetadata Object
        (
            [type] => 6
            [type_name] => FLOAT
            [name] => world
            [original_name] => world
            [table] => numbers
            [original_table] => numbers
            [schema] => nonsense
            [catalog] => def
            [collation] => 0
            [fractional_digits] => 31
            [length] => 12
            [flags] => 1
            [content_type] => 0
        )
)


Get character set

  • « ColumnResult::__construct
  • ColumnResult::getCollationName »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Get character set

ColumnResult::getCharacterSetName

(No version information available, might only be in Git)

ColumnResult::getCharacterSetName — Get character set

Description

public mysql_xdevapi\ColumnResult::getCharacterSetName(): string

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 mysql_xdevapi\ColumnResult::getCharacterSetName() example

<?php

/* ... */

?>


Get collation name

  • « ColumnResult::getCharacterSetName
  • ColumnResult::getColumnLabel »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Get collation name

ColumnResult::getCollationName

(No version information available, might only be in Git)

ColumnResult::getCollationName — Get collation name

Description

public mysql_xdevapi\ColumnResult::getCollationName(): string

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 mysql_xdevapi\ColumnResult::getCollationName() example

<?php

/* ... */

?>


Get column label

  • « ColumnResult::getCollationName
  • ColumnResult::getColumnName »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Get column label

ColumnResult::getColumnLabel

(No version information available, might only be in Git)

ColumnResult::getColumnLabel — Get column label

Description

public mysql_xdevapi\ColumnResult::getColumnLabel(): string

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 mysql_xdevapi\ColumnResult::getColumnLabel() example

<?php

/* ... */

?>


Get column name

  • « ColumnResult::getColumnLabel
  • ColumnResult::getFractionalDigits »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Get column name

ColumnResult::getColumnName

(No version information available, might only be in Git)

ColumnResult::getColumnName — Get column name

Description

public mysql_xdevapi\ColumnResult::getColumnName(): string

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 mysql_xdevapi\ColumnResult::getColumnName() example

<?php

/* ... */

?>


Get fractional digit length

  • « ColumnResult::getColumnName
  • ColumnResult::getLength »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Get fractional digit length

ColumnResult::getFractionalDigits

(No version information available, might only be in Git)

ColumnResult::getFractionalDigits — Get fractional digit length

Description

public mysql_xdevapi\ColumnResult::getFractionalDigits(): int

Fetch the number of fractional digits for column.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 mysql_xdevapi\ColumnResult::getFractionalDigits() example

<?php

/* ... */

?>


Get column field length

  • « ColumnResult::getFractionalDigits
  • ColumnResult::getSchemaName »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Get column field length

ColumnResult::getLength

(No version information available, might only be in Git)

ColumnResult::getLength — Get column field length

Description

public mysql_xdevapi\ColumnResult::getLength(): int

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 mysql_xdevapi\ColumnResult::getLength() example

<?php

/* ... */

?>


Get schema name

  • « ColumnResult::getLength
  • ColumnResult::getTableLabel »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Get schema name

ColumnResult::getSchemaName

(No version information available, might only be in Git)

ColumnResult::getSchemaName — Get schema name

Description

public mysql_xdevapi\ColumnResult::getSchemaName(): string

Fetch the schema name where the column is stored.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 mysql_xdevapi\ColumnResult::getSchemaName() example

<?php

/* ... */

?>


Get table label

  • « ColumnResult::getSchemaName
  • ColumnResult::getTableName »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Get table label

ColumnResult::getTableLabel

(No version information available, might only be in Git)

ColumnResult::getTableLabel — Get table label

Description

public mysql_xdevapi\ColumnResult::getTableLabel(): string

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 mysql_xdevapi\ColumnResult::getTableLabel() example

<?php

/* ... */

?>


Get table name

  • « ColumnResult::getTableLabel
  • ColumnResult::getType »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Get table name

ColumnResult::getTableName

(No version information available, might only be in Git)

ColumnResult::getTableName — Get table name

Description

public mysql_xdevapi\ColumnResult::getTableName(): string

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Name of the table for the column.

Exemples

Exemple #1 mysql_xdevapi\ColumnResult::getTableName() example

<?php

/* ... */

?>


Get column type

  • « ColumnResult::getTableName
  • ColumnResult::isNumberSigned »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Get column type

ColumnResult::getType

(No version information available, might only be in Git)

ColumnResult::getType — Get column type

Description

public mysql_xdevapi\ColumnResult::getType(): int

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 mysql_xdevapi\ColumnResult::getType() example

<?php

/* ... */

?>


Check if signed type

  • « ColumnResult::getType
  • ColumnResult::isPadded »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Check if signed type

ColumnResult::isNumberSigned

(No version information available, might only be in Git)

ColumnResult::isNumberSigned — Check if signed type

Description

public mysql_xdevapi\ColumnResult::isNumberSigned(): int

Retrieves a table's column information and is instantiated by the mysql_xdevapi\RowResult::getColumns() method.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

true if a given column as a signed type.

Exemples

Exemple #1 mysql_xdevapi\ColumnResult::isNumberSigned() example

<?php

/* ... */

?>


Check if padded

  • « ColumnResult::isNumberSigned
  • mysql_xdevapi\CrudOperationBindable »
  • PHP Manual
  • mysql_xdevapi\ColumnResult
  • Check if padded

ColumnResult::isPadded

(No version information available, might only be in Git)

ColumnResult::isPadded — Check if padded

Description

public mysql_xdevapi\ColumnResult::isPadded(): int

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

true if a given column is padded.

Exemples

Exemple #1 mysql_xdevapi\ColumnResult::isPadded() example

<?php

/* ... */

?>


Interface CrudOperationBindable

(PECL mysql-xdevapi >= 8.0.11)

Introduction

Synopsis de la classe

class mysql_xdevapi\CrudOperationBindable {
/* Méthodes */
abstract public bind(array $placeholder_values): mysql_xdevapi\CrudOperationBindable
}

Sommaire

  • CrudOperationBindable::bind — Bind value to placeholder


Bind value to placeholder

  • « mysql_xdevapi\CrudOperationBindable
  • mysql_xdevapi\CrudOperationLimitable »
  • PHP Manual
  • mysql_xdevapi\CrudOperationBindable
  • Bind value to placeholder

CrudOperationBindable::bind

(No version information available, might only be in Git)

CrudOperationBindable::bind — Bind value to placeholder

Description

abstract public mysql_xdevapi\CrudOperationBindable::bind(array $placeholder_values): mysql_xdevapi\CrudOperationBindable

Binds a value to a specific placeholder.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

placeholder_values

The name of the placeholders and the values to bind.

Valeurs de retour

A CrudOperationBindable object.

Exemples

Exemple #1 mysql_xdevapi\CrudOperationBindable::bind() example

<?php

$res = $coll->modify('name like :name')->arrayInsert('job[0]', 'Calciatore')->bind(['name' => 'ENTITY'])->execute();
$res = $table->delete()->orderby('age desc')->where('age < 20 and age > 12 and name != :name')->bind(['name' => 'Tierney'])->limit(2)->execute();

?>


Interface CrudOperationLimitable

(PECL mysql-xdevapi >= 8.0.11)

Introduction

Synopsis de la classe

class mysql_xdevapi\CrudOperationLimitable {
/* Méthodes */
abstract public limit(int $rows): mysql_xdevapi\CrudOperationLimitable
}

Sommaire

  • CrudOperationLimitable::limit — Set result limit


Set result limit

  • « mysql_xdevapi\CrudOperationLimitable
  • mysql_xdevapi\CrudOperationSkippable »
  • PHP Manual
  • mysql_xdevapi\CrudOperationLimitable
  • Set result limit

CrudOperationLimitable::limit

(No version information available, might only be in Git)

CrudOperationLimitable::limit — Set result limit

Description

abstract public mysql_xdevapi\CrudOperationLimitable::limit(int $rows): mysql_xdevapi\CrudOperationLimitable

Sets the maximum number of records or documents to return.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

rows

The maximum number of records or documents.

Valeurs de retour

A CrudOperationLimitable object.

Exemples

Exemple #1 mysql_xdevapi\CrudOperationLimitable::limit() example

<?php

$res = $coll->find()->fields(['name as n','age as a','job as j'])->groupBy('j')->limit(11)->execute();
$res = $table->update()->set('age',69)->where('age > 15 and age < 22')->limit(4)->orderby(['age asc','name desc'])->execute();

?>


Interface CrudOperationSkippable

(PECL mysql-xdevapi >= 8.0.11)

Introduction

Synopsis de la classe

class mysql_xdevapi\CrudOperationSkippable {
/* Méthodes */
abstract public skip(int $skip): mysql_xdevapi\CrudOperationSkippable
}

Sommaire

  • CrudOperationSkippable::skip — Number of operations to skip


Number of operations to skip

  • « mysql_xdevapi\CrudOperationSkippable
  • mysql_xdevapi\CrudOperationSortable »
  • PHP Manual
  • mysql_xdevapi\CrudOperationSkippable
  • Number of operations to skip

CrudOperationSkippable::skip

(No version information available, might only be in Git)

CrudOperationSkippable::skip — Number of operations to skip

Description

abstract public mysql_xdevapi\CrudOperationSkippable::skip(int $skip): mysql_xdevapi\CrudOperationSkippable

Skip this number of records in the returned operation.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

skip

Number of elements to skip.

Valeurs de retour

A CrudOperationSkippable object.

Exemples

Exemple #1 mysql_xdevapi\CrudOperationSkippable::skip() example

<?php

$res = $coll->find('job like \'Programmatore\'')->limit(1)->skip(3)->sort('age asc')->execute();

?>


Interface CrudOperationSortable

(PECL mysql-xdevapi >= 8.0.11)

Introduction

Synopsis de la classe

class mysql_xdevapi\CrudOperationSortable {
/* Méthodes */
abstract public sort(string $sort_expr): mysql_xdevapi\CrudOperationSortable
}

Sommaire

  • CrudOperationSortable::sort — Sort results


Sort results

  • « mysql_xdevapi\CrudOperationSortable
  • mysql_xdevapi\DatabaseObject »
  • PHP Manual
  • mysql_xdevapi\CrudOperationSortable
  • Sort results

CrudOperationSortable::sort

(No version information available, might only be in Git)

CrudOperationSortable::sort — Sort results

Description

abstract public mysql_xdevapi\CrudOperationSortable::sort(string $sort_expr): mysql_xdevapi\CrudOperationSortable

Sort the result set by the field selected in the sort_expr argument. The allowed orders are ASC (Ascending) or DESC (Descending). This operation is equivalent to the 'ORDER BY' SQL operation and it follows the same set of rules.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

sort_expr

One or more sorting expressions can be provided. The evaluation is from left to right, and each expression is separated by a comma.

Valeurs de retour

A CrudOperationSortable object.

Exemples

Exemple #1 mysql_xdevapi\CrudOperationSortable::sort() example

<?php

$res = $coll->find('job like \'Cavia\'')->sort('age desc', '_id desc')->execute();

?>


Interface DatabaseObject

(PECL mysql-xdevapi >= 8.0.11)

Introduction

Synopsis de la classe

class mysql_xdevapi\DatabaseObject {
/* Méthodes */
abstract public existsInDatabase(): bool
abstract public getName(): string
abstract public getSession(): mysql_xdevapi\Session
}

Sommaire

  • DatabaseObject::existsInDatabase — Check if object exists in database
  • DatabaseObject::getName — Get object name
  • DatabaseObject::getSession — Get session name


Check if object exists in database

  • « mysql_xdevapi\DatabaseObject
  • DatabaseObject::getName »
  • PHP Manual
  • mysql_xdevapi\DatabaseObject
  • Check if object exists in database

DatabaseObject::existsInDatabase

(No version information available, might only be in Git)

DatabaseObject::existsInDatabase — Check if object exists in database

Description

abstract public mysql_xdevapi\DatabaseObject::existsInDatabase(): bool

Verifies if the database object refers to an object that exists in the database.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns true if object exists in the database, else false if it does not.

Exemples

Exemple #1 mysql_xdevapi\DatabaseObject::existsInDatabase() example

<?php

$existInDb = $dbObj->existsInDatabase();

?>


Get object name

  • « DatabaseObject::existsInDatabase
  • DatabaseObject::getSession »
  • PHP Manual
  • mysql_xdevapi\DatabaseObject
  • Get object name

DatabaseObject::getName

(No version information available, might only be in Git)

DatabaseObject::getName — Get object name

Description

abstract public mysql_xdevapi\DatabaseObject::getName(): string

Fetch name of this database object.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The name of this database object.

Exemples

Exemple #1 mysql_xdevapi\DatabaseObject::getName() example

<?php

$dbObjName = $dbObj->getName();

?>


Get session name

  • « DatabaseObject::getName
  • mysql_xdevapi\DocResult »
  • PHP Manual
  • mysql_xdevapi\DatabaseObject
  • Get session name

DatabaseObject::getSession

(No version information available, might only be in Git)

DatabaseObject::getSession — Get session name

Description

abstract public mysql_xdevapi\DatabaseObject::getSession(): mysql_xdevapi\Session

Fetch session associated to the database object.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The Session object.

Exemples

Exemple #1 mysql_xdevapi\DatabaseObject::getSession() example

<?php

$session = $dbObj->getSession();

?>


Classe DocResult

(PECL mysql-xdevapi >= 8.0.11)

Introduction

Synopsis de la classe

class mysql_xdevapi\DocResult implements mysql_xdevapi\BaseResult, Traversable {
/* Méthodes */
public fetchAll(): array
public fetchOne(): array
public getWarnings(): Array
public getWarningsCount(): int
}

Sommaire

  • DocResult::__construct — DocResult constructor
  • DocResult::fetchAll — Get all rows
  • DocResult::fetchOne — Get one row
  • DocResult::getWarnings — Get warnings from last operation
  • DocResult::getWarningsCount — Get warning count from last operation


DocResult constructor

  • « mysql_xdevapi\DocResult
  • DocResult::fetchAll »
  • PHP Manual
  • mysql_xdevapi\DocResult
  • DocResult constructor

DocResult::__construct

(No version information available, might only be in Git)

DocResult::__construct — DocResult constructor

Description

private mysql_xdevapi\DocResult::__construct()

Fetch document results and warnings, and is instantiated by CollectionFind.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Exemples

Exemple #1 A DocResult example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$create->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();
$create->add('{"name": "Reginald", "age": 42, "job": "Butler"}')->execute();

// ...

$collection = $schema->getCollection("people");

// Yields a DocResult object
$result = $collection
->find('job like :job and age > :age')
->bind(['job' => 'Butler', 'age' => 16])
->sort('age desc')
->limit(1)
->execute();

var_dump($result->fetchAll());
?>

Résultat de l'exemple ci-dessus est similaire à :

array(1) {
  [0]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b536100000000000000f3"
    ["age"]=>
    int(42)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(8) "Reginald"
  }
}


Get all rows

  • « DocResult::__construct
  • DocResult::fetchOne »
  • PHP Manual
  • mysql_xdevapi\DocResult
  • Get all rows

DocResult::fetchAll

(No version information available, might only be in Git)

DocResult::fetchAll — Get all rows

Description

public mysql_xdevapi\DocResult::fetchAll(): array

Fetch all results from a result set.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A numerical array with all results from the query; each result is an associative array. An empty array is returned if no rows are present.

Exemples

Exemple #1 mysql_xdevapi\DocResult::fetchAll() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$create->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();
$create->add('{"name": "Reginald", "age": 42, "job": "Butler"}')->execute();

// ...

$collection = $schema->getCollection("people");

// Yields a DocResult object
$result = $collection
->find('job like :job and age > :age')
->bind(['job' => 'Butler', 'age' => 16])
->sort('age desc')
->execute();

var_dump($result->fetchAll());
?>

Résultat de l'exemple ci-dessus est similaire à :

array(2) {

  [0]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b53610000000000000123"
    ["age"]=>
    int(42)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(8) "Reginald"
  }

  [1]=>
  array(4) {
    ["_id"]=>
    string(28) "00005b6b53610000000000000122"
    ["age"]=>
    int(18)
    ["job"]=>
    string(6) "Butler"
    ["name"]=>
    string(6) "Alfred"
  }

}


Get one row

  • « DocResult::fetchAll
  • DocResult::getWarnings »
  • PHP Manual
  • mysql_xdevapi\DocResult
  • Get one row

DocResult::fetchOne

(No version information available, might only be in Git)

DocResult::fetchOne — Get one row

Description

public mysql_xdevapi\DocResult::fetchOne(): array

Fetch one result from a result set.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The result, as an associative array or null if no results are present.

Exemples

Exemple #1 mysql_xdevapi\DocResult::fetchOne() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$create->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();
$create->add('{"name": "Reginald", "age": 42, "job": "Butler"}')->execute();

// ...

$collection = $schema->getCollection("people");

// Yields a DocResult object
$result = $collection
->find('job like :job and age > :age')
->bind(['job' => 'Butler', 'age' => 16])
->sort('age desc')
->execute();

var_dump($result->fetchOne());
?>

Résultat de l'exemple ci-dessus est similaire à :

array(4) {
  ["_id"]=>
  string(28) "00005b6b53610000000000000125"
  ["age"]=>
  int(42)
  ["job"]=>
  string(6) "Butler"
  ["name"]=>
  string(8) "Reginald"
}


Get warnings from last operation

  • « DocResult::fetchOne
  • DocResult::getWarningsCount »
  • PHP Manual
  • mysql_xdevapi\DocResult
  • Get warnings from last operation

DocResult::getWarnings

(No version information available, might only be in Git)

DocResult::getWarnings — Get warnings from last operation

Description

public mysql_xdevapi\DocResult::getWarnings(): Array

Fetches warnings generated by MySQL server's last operation.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

An array of Warning objects from the last operation. Each object defines an error 'message', error 'level', and error 'code'. An empty array is returned if no errors are present.

Exemples

Exemple #1 mysql_xdevapi\DocResult::getWarnings() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$create->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();
$create->add('{"name": "Reginald", "age": 42, "job": "Butler"}')->execute();

// ...

$collection = $schema->getCollection("people");

// Yields a DocResult object
$result = $collection
->find('job like :job and age > :age')
->bind(['job' => 'Butler', 'age' => 16])
->sort('age desc')
->execute();

if (!$result->getWarningsCount()) {
echo "There was an error:\n";
print_r($result->getWarnings());
exit;
}

var_dump($result->fetchOne());
?>

Résultat de l'exemple ci-dessus est similaire à :

There was an error:

Array
(
    [0] => mysql_xdevapi\Warning Object
        (
            [message] => Something bad and so on
            [level] => 2
            [code] => 1365
        )
    [1] => mysql_xdevapi\Warning Object
        (
            [message] => Something bad and so on
            [level] => 2
            [code] => 1365
        )
)


Get warning count from last operation

  • « DocResult::getWarnings
  • mysql_xdevapi\Exception »
  • PHP Manual
  • mysql_xdevapi\DocResult
  • Get warning count from last operation

DocResult::getWarningsCount

(No version information available, might only be in Git)

DocResult::getWarningsCount — Get warning count from last operation

Description

public mysql_xdevapi\DocResult::getWarningsCount(): int

Returns the number of warnings raised by the last operation. Specifically, these warnings are raised by the MySQL server.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The number of warnings from the last operation.

Exemples

Exemple #1 mysql_xdevapi\DocResult::getWarningsCount() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$create->add('{"name": "Alfred", "age": 18, "job": "Butler"}')->execute();
$create->add('{"name": "Reginald", "age": 42, "job": "Butler"}')->execute();

// ...

$collection = $schema->getCollection("people");

// Yields a DocResult object
$result = $collection
->find('job like :job and age > :age')
->bind(['job' => 'Butler', 'age' => 16])
->sort('age desc')
->execute();

if (!$result->getWarningsCount()) {
echo "There was an error:\n";
print_r($result->getWarnings());
exit;
}

var_dump($result->fetchOne());
?>

Résultat de l'exemple ci-dessus est similaire à :

array(4) {
  ["_id"]=>
  string(28) "00005b6b53610000000000000135"
  ["age"]=>
  int(42)
  ["job"]=>
  string(6) "Butler"
  ["name"]=>
  string(8) "Reginald"
}


Classe Exception

(PECL mysql-xdevapi >= 8.0.11)

Introduction

Synopsis de la classe

class mysql_xdevapi\Exception extends RuntimeException implements Throwable {
}


Interface Executable

(PECL mysql-xdevapi >= 8.0.11)

Introduction

Synopsis de la classe

class mysql_xdevapi\Executable {
/* Méthodes */
abstract public execute(): mysql_xdevapi\Result
}

Sommaire

  • Executable::execute — Execute statement


Execute statement

  • « mysql_xdevapi\Executable
  • mysql_xdevapi\ExecutionStatus »
  • PHP Manual
  • mysql_xdevapi\Executable
  • Execute statement

Executable::execute

(No version information available, might only be in Git)

Executable::execute — Execute statement

Description

abstract public mysql_xdevapi\Executable::execute(): mysql_xdevapi\Result

Execute the statement from either a collection operation or a table query; this functionality allows for method chaining.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

One of the Result objects, such as Result or SqlStatementResult.

Exemples

Exemple #1 execute() examples

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$result_sql = $session->sql("CREATE DATABASE addressbook")->execute();

var_dump($result_sql);

$schema = $session->getSchema("addressbook");
$collection = $schema->createCollection("humans");

$result_collection = $collection->add(
'{"name": "Jane",
"jobs": [{"title":"Scientist","Salary":18000}, {"title":"Mother","Salary":0}],
"hobbies": ["Walking","Making pies"]}');

$result_collection_executed = $result_collection->execute();

var_dump($result_collection);
var_dump($result_collection_executed);
?>

Résultat de l'exemple ci-dessus est similaire à :

object(mysql_xdevapi\SqlStatementResult)#3 (0) {
}

object(mysql_xdevapi\CollectionAdd)#5 (0) {
}

object(mysql_xdevapi\Result)#7 (0) {
}


Classe ExecutionStatus

(PECL mysql-xdevapi >= 8.0.11)

Introduction

Synopsis de la classe

class mysql_xdevapi\ExecutionStatus {
/* Propriétés */
public $affectedItems;
public $matchedItems;
public $foundItems;
public $lastInsertId;
public $lastDocumentId;
/* Constructor */
private __construct()
}

Propriétés

affectedItems

matchedItems

foundItems

lastInsertId

lastDocumentId

Sommaire

  • ExecutionStatus::__construct — ExecutionStatus constructor


ExecutionStatus constructor

  • « mysql_xdevapi\ExecutionStatus
  • mysql_xdevapi\Expression »
  • PHP Manual
  • mysql_xdevapi\ExecutionStatus
  • ExecutionStatus constructor

ExecutionStatus::__construct

(No version information available, might only be in Git)

ExecutionStatus::__construct — ExecutionStatus constructor

Description

private mysql_xdevapi\ExecutionStatus::__construct()

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Exemples

Exemple #1 mysql_xdevapi\ExecutionStatus::__construct() example

<?php

/* ... */

?>


Classe Expression

(PECL mysql-xdevapi >= 8.0.11)

Introduction

Synopsis de la classe

class mysql_xdevapi\Expression {
/* Propriétés */
public $name;
/* Constructor */
public __construct(string $expression)
}

Propriétés

name

Sommaire

  • Expression::__construct — Expression constructor


Expression constructor

  • « mysql_xdevapi\Expression
  • mysql_xdevapi\Result »
  • PHP Manual
  • mysql_xdevapi\Expression
  • Expression constructor

Expression::__construct

(No version information available, might only be in Git)

Expression::__construct — Expression constructor

Description

public mysql_xdevapi\Expression::__construct(string $expression)

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

expression

Exemples

Exemple #1 mysql_xdevapi\Expression::__construct() example

<?php

/* ... */

?>


Classe Result

(PECL mysql-xdevapi >= 8.0.11)

Introduction

Synopsis de la classe

class mysql_xdevapi\Result implements mysql_xdevapi\BaseResult, Traversable {
/* Méthodes */
public getAffectedItemsCount(): int
public getAutoIncrementValue(): int
public getGeneratedIds(): array
public getWarnings(): array
public getWarningsCount(): int
}

Sommaire

  • Result::__construct — Result constructor
  • Result::getAffectedItemsCount — Get affected row count
  • Result::getAutoIncrementValue — Get autoincremented value
  • Result::getGeneratedIds — Get generated ids
  • Result::getWarnings — Get warnings from last operation
  • Result::getWarningsCount — Get warning count from last operation


Result constructor

  • « mysql_xdevapi\Result
  • Result::getAffectedItemsCount »
  • PHP Manual
  • mysql_xdevapi\Result
  • Result constructor

Result::__construct

(No version information available, might only be in Git)

Result::__construct — Result constructor

Description

private mysql_xdevapi\Result::__construct()

An object that retrieves generated IDs, AUTO_INCREMENT values, and warnings, for a Result set.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Exemples

Exemple #1 mysql_xdevapi\Result::__construct() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("
CREATE TABLE addressbook.names
(id INT NOT NULL AUTO_INCREMENT, name VARCHAR(30), age INT, PRIMARY KEY (id))
")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$result = $table->insert("name", "age")->values(["Suzanne", 31],["Julie", 43])->execute();
$result = $table->insert("name", "age")->values(["Suki", 34])->execute();

$ai = $result->getAutoIncrementValue();
var_dump($ai);
?>

L'exemple ci-dessus va afficher :

int(3)


Get affected row count

  • « Result::__construct
  • Result::getAutoIncrementValue »
  • PHP Manual
  • mysql_xdevapi\Result
  • Get affected row count

Result::getAffectedItemsCount

(No version information available, might only be in Git)

Result::getAffectedItemsCount — Get affected row count

Description

public mysql_xdevapi\Result::getAffectedItemsCount(): int

Get the number of affected rows by the previous operation.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The number (as an integer) of affected rows.

Exemples

Exemple #1 mysql_xdevapi\Result::getAffectedItemsCount() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$collection = $schema->getCollection("people");

$result = $collection->add('{"name": "Wilma", "age": 23, "job": "Teacher"}')->execute();

var_dump( $res->getAffectedItemsCount() );
?>

L'exemple ci-dessus va afficher :

int(1)


Get autoincremented value

  • « Result::getAffectedItemsCount
  • Result::getGeneratedIds »
  • PHP Manual
  • mysql_xdevapi\Result
  • Get autoincremented value

Result::getAutoIncrementValue

(No version information available, might only be in Git)

Result::getAutoIncrementValue — Get autoincremented value

Description

public mysql_xdevapi\Result::getAutoIncrementValue(): int

Get the last AUTO_INCREMENT value (last insert id).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The last AUTO_INCREMENT value.

Exemples

Exemple #1 mysql_xdevapi\Result::getAutoIncrementValue() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("
CREATE TABLE addressbook.names
(id INT NOT NULL AUTO_INCREMENT, name VARCHAR(30), age INT, PRIMARY KEY (id))
")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$result = $table->insert("name", "age")->values(["Suzanne", 31],["Julie", 43])->execute();
$result = $table->insert("name", "age")->values(["Suki", 34])->execute();

$ai = $result->getAutoIncrementValue();
var_dump($ai);
?>

L'exemple ci-dessus va afficher :

int(3)


Get generated ids

  • « Result::getAutoIncrementValue
  • Result::getWarnings »
  • PHP Manual
  • mysql_xdevapi\Result
  • Get generated ids

Result::getGeneratedIds

(No version information available, might only be in Git)

Result::getGeneratedIds — Get generated ids

Description

public mysql_xdevapi\Result::getGeneratedIds(): array

Fetch the generated _id values from the last operation. The unique _id field is generated by the MySQL server.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

An array of generated _id's from the last operation, or an empty array if there are none.

Exemples

Exemple #1 mysql_xdevapi\Result::getGeneratedIds() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$create = $schema->createCollection("people");

$collection = $schema->getCollection("people");

$result = $collection->add(
'{"name": "Bernie",
"jobs": [{"title":"Cat Herder","Salary":42000}, {"title":"Father","Salary":0}],
"hobbies": ["Sports","Making cupcakes"]}',
'{"name": "Jane",
"jobs": [{"title":"Scientist","Salary":18000}, {"title":"Mother","Salary":0}],
"hobbies": ["Walking","Making pies"]}')->execute();

$ids = $result->getGeneratedIds();
var_dump($ids);
?>

Résultat de l'exemple ci-dessus est similaire à :

array(2) {
  [0]=>
  string(28) "00005b6b53610000000000000064"
  [1]=>
  string(28) "00005b6b53610000000000000065"
}


Get warnings from last operation

  • « Result::getGeneratedIds
  • Result::getWarningsCount »
  • PHP Manual
  • mysql_xdevapi\Result
  • Get warnings from last operation

Result::getWarnings

(No version information available, might only be in Git)

Result::getWarnings — Get warnings from last operation

Description

public mysql_xdevapi\Result::getWarnings(): array

Retrieve warnings from the last Result operation.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

An array of Warning objects from the last operation. Each object defines an error 'message', error 'level', and error 'code'. An empty array is returned if no errors are present.

Exemples

Exemple #1 mysql_xdevapi\RowResult::getWarnings() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("CREATE DATABASE foo")->execute();
$session->sql("CREATE TABLE foo.test_table(x int)")->execute();

$schema = $session->getSchema("foo");
$table = $schema->getTable("test_table");

$table->insert(['x'])->values([1])->values([2])->execute();

$res = $table->select(['x/0 as bad_x'])->execute();
$warnings = $res->getWarnings();

print_r($warnings);
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => mysql_xdevapi\Warning Object
        (
            [message] => Division by 0
            [level] => 2
            [code] => 1365
        )
    [1] => mysql_xdevapi\Warning Object
        (
            [message] => Division by 0
            [level] => 2
            [code] => 1365
        )
)


Get warning count from last operation

  • « Result::getWarnings
  • mysql_xdevapi\RowResult »
  • PHP Manual
  • mysql_xdevapi\Result
  • Get warning count from last operation

Result::getWarningsCount

(No version information available, might only be in Git)

Result::getWarningsCount — Get warning count from last operation

Description

public mysql_xdevapi\Result::getWarningsCount(): int

Retrieve the number of warnings from the last Result operation.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The number of warnings generated by the last operation.

Exemples

Exemple #1 mysql_xdevapi\RowResult::getWarningsCount() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS foo")->execute();
$session->sql("CREATE DATABASE foo")->execute();
$session->sql("CREATE TABLE foo.test_table(x int)")->execute();

$schema = $session->getSchema("foo");
$table = $schema->getTable("test_table");

$table->insert(['x'])->values([1])->values([2])->execute();

$res = $table->select(['x/0 as bad_x'])->execute();

echo $res->getWarningsCount();
?>

Résultat de l'exemple ci-dessus est similaire à :

2


Classe RowResult

(PECL mysql-xdevapi >= 8.0.11)

Introduction

Synopsis de la classe

class mysql_xdevapi\RowResult implements mysql_xdevapi\BaseResult, Traversable {
/* Méthodes */
public fetchAll(): array
public fetchOne(): array
public getColumnsCount(): int
public getColumnNames(): array
public getColumns(): array
public getWarnings(): array
public getWarningsCount(): int
}

Sommaire

  • RowResult::__construct — RowResult constructor
  • RowResult::fetchAll — Get all rows from result
  • RowResult::fetchOne — Get row from result
  • RowResult::getColumnsCount — Get column count
  • RowResult::getColumnNames — Get all column names
  • RowResult::getColumns — Get column metadata
  • RowResult::getWarnings — Get warnings from last operation
  • RowResult::getWarningsCount — Get warning count from last operation


RowResult constructor

  • « mysql_xdevapi\RowResult
  • RowResult::fetchAll »
  • PHP Manual
  • mysql_xdevapi\RowResult
  • RowResult constructor

RowResult::__construct

(No version information available, might only be in Git)

RowResult::__construct — RowResult constructor

Description

private mysql_xdevapi\RowResult::__construct()

Represents the result set obtained from querying the database.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Exemples

Exemple #1 mysql_xdevapi\RowResult::__construct() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$row = $table->select('name', 'age')->where('age > 18')->execute()->fetchAll();

print_r($row);

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
    [1] => Array
        (
            [name] => Sam
            [age] => 33
        )
)


Get all rows from result

  • « RowResult::__construct
  • RowResult::fetchOne »
  • PHP Manual
  • mysql_xdevapi\RowResult
  • Get all rows from result

RowResult::fetchAll

(No version information available, might only be in Git)

RowResult::fetchAll — Get all rows from result

Description

public mysql_xdevapi\RowResult::fetchAll(): array

Fetch all the rows from the result set.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A numerical array with all results from the query; each result is an associative array. An empty array is returned if no rows are present.

Exemples

Exemple #1 mysql_xdevapi\RowResult::fetchAll() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$row = $table->select('name', 'age')->execute()->fetchAll();

print_r($row);

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
    [1] => Array
        (
            [name] => Sam
            [age] => 33
        )
)


Get row from result

  • « RowResult::fetchAll
  • RowResult::getColumnsCount »
  • PHP Manual
  • mysql_xdevapi\RowResult
  • Get row from result

RowResult::fetchOne

(No version information available, might only be in Git)

RowResult::fetchOne — Get row from result

Description

public mysql_xdevapi\RowResult::fetchOne(): array

Fetch one result from the result set.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The result, as an associative array or null if no results are present.

Exemples

Exemple #1 mysql_xdevapi\RowResult::fetchOne() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$row = $table->select('name', 'age')->where('age < 40')->execute()->fetchOne();

print_r($row);

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [name] => Sam
    [age] => 33
)


Get column count

  • « RowResult::fetchOne
  • RowResult::getColumnNames »
  • PHP Manual
  • mysql_xdevapi\RowResult
  • Get column count

RowResult::getColumnsCount

(No version information available, might only be in Git)

RowResult::getColumnsCount — Get column count

Description

public mysql_xdevapi\RowResult::getColumnsCount(): int

Retrieve the column count for columns present in the result set.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The number of columns; 0 if there are none.

Historique

Version | Description
8.0.14 | Method renamed from getColumnCount() to getColumnsCount().

Exemples

Exemple #1 mysql_xdevapi\RowResult::getColumnsCount() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE addressbook")->execute();
$session->sql("CREATE DATABASE foo")->execute();
$session->sql("CREATE TABLE foo.test_table(x int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$sql = $session->sql("SELECT * from addressbook.names")->execute();

echo $sql->getColumnsCount();

Résultat de l'exemple ci-dessus est similaire à :

2


Get all column names

  • « RowResult::getColumnsCount
  • RowResult::getColumns »
  • PHP Manual
  • mysql_xdevapi\RowResult
  • Get all column names

RowResult::getColumnNames

(No version information available, might only be in Git)

RowResult::getColumnNames — Get all column names

Description

public mysql_xdevapi\RowResult::getColumnNames(): array

Retrieve column names for columns present in the result set.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A numerical array of table columns names, or an empty array if the result set is empty.

Exemples

Exemple #1 mysql_xdevapi\RowResult::getColumnNames() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE addressbook")->execute();
$session->sql("CREATE DATABASE foo")->execute();
$session->sql("CREATE TABLE foo.test_table(x int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$sql = $session->sql("SELECT * from addressbook.names")->execute();

$colnames = $sql->getColumnNames();

print_r($colnames);

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => name
    [1] => age
)


Get column metadata

  • « RowResult::getColumnNames
  • RowResult::getWarnings »
  • PHP Manual
  • mysql_xdevapi\RowResult
  • Get column metadata

RowResult::getColumns

(No version information available, might only be in Git)

RowResult::getColumns — Get column metadata

Description

public mysql_xdevapi\RowResult::getColumns(): array

Retrieve column metadata for columns present in the result set.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

An array of FieldMetadata objects representing the columns in the result, or an empty array if the result set is empty.

Exemples

Exemple #1 mysql_xdevapi\RowResult::getColumns() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE addressbook")->execute();
$session->sql("CREATE DATABASE foo")->execute();
$session->sql("CREATE TABLE foo.test_table(x int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$sql = $session->sql("SELECT * from addressbook.names")->execute();

$cols = $sql->getColumns();

print_r($cols);

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => mysql_xdevapi\FieldMetadata Object
        (
            [type] => 7
            [type_name] => BYTES
            [name] => name
            [original_name] => name
            [table] => names
            [original_table] => names
            [schema] => addressbook
            [catalog] => def
            [collation] => 255
            [fractional_digits] => 0
            [length] => 65535
            [flags] => 0
            [content_type] => 0
        )
    [1] => mysql_xdevapi\FieldMetadata Object
        (
            [type] => 1
            [type_name] => SINT
            [name] => age
            [original_name] => age
            [table] => names
            [original_table] => names
            [schema] => addressbook
            [catalog] => def
            [collation] => 0
            [fractional_digits] => 0
            [length] => 11
            [flags] => 0
            [content_type] => 0
        )
)


Get warnings from last operation

  • « RowResult::getColumns
  • RowResult::getWarningsCount »
  • PHP Manual
  • mysql_xdevapi\RowResult
  • Get warnings from last operation

RowResult::getWarnings

(No version information available, might only be in Git)

RowResult::getWarnings — Get warnings from last operation

Description

public mysql_xdevapi\RowResult::getWarnings(): array

Retrieve warnings from the last RowResult operation.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

An array of Warning objects from the last operation. Each object defines an error 'message', error 'level', and error 'code'. An empty array is returned if no errors are present.

Exemples

Exemple #1 mysql_xdevapi\RowResult::getWarnings() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("CREATE DATABASE foo")->execute();
$session->sql("CREATE TABLE foo.test_table(x int)")->execute();

$schema = $session->getSchema("foo");
$table = $schema->getTable("test_table");

$table->insert(['x'])->values([1])->values([2])->execute();

$res = $table->select(['x/0 as bad_x'])->execute();
$warnings = $res->getWarnings();

print_r($warnings);
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => mysql_xdevapi\Warning Object
        (
            [message] => Division by 0
            [level] => 2
            [code] => 1365
        )
    [1] => mysql_xdevapi\Warning Object
        (
            [message] => Division by 0
            [level] => 2
            [code] => 1365
        )
)


Get warning count from last operation

  • « RowResult::getWarnings
  • mysql_xdevapi\Schema »
  • PHP Manual
  • mysql_xdevapi\RowResult
  • Get warning count from last operation

RowResult::getWarningsCount

(No version information available, might only be in Git)

RowResult::getWarningsCount — Get warning count from last operation

Description

public mysql_xdevapi\RowResult::getWarningsCount(): int

Retrieve the number of warnings from the last RowResult operation.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The number of warnings generated by the last operation.

Exemples

Exemple #1 mysql_xdevapi\RowResult::getWarningsCount() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS foo")->execute();
$session->sql("CREATE DATABASE foo")->execute();
$session->sql("CREATE TABLE foo.test_table(x int)")->execute();

$schema = $session->getSchema("foo");
$table = $schema->getTable("test_table");

$table->insert(['x'])->values([1])->values([2])->execute();

$res = $table->select(['x/0 as bad_x'])->execute();

echo $res->getWarningsCount();
?>

Résultat de l'exemple ci-dessus est similaire à :

2


Classe Schema

(PECL mysql-xdevapi >= 8.0.11)

Introduction

Synopsis de la classe

class mysql_xdevapi\Schema implements mysql_xdevapi\DatabaseObject {
/* Propriétés */
public $name;
/* Méthodes */
public createCollection(string $name, string $validate = ?): mysql_xdevapi\Collection
public dropCollection(string $collection_name): bool
public existsInDatabase(): bool
public getCollection(string $name): mysql_xdevapi\Collection
public getCollectionAsTable(string $name): mysql_xdevapi\Table
public getCollections(): array
public getName(): string
public getSession(): mysql_xdevapi\Session
public getTable(string $name): mysql_xdevapi\Table
public getTables(): array
}

Propriétés

name

Sommaire

  • Schema::__construct — Schema constructor
  • Schema::createCollection — Add collection to schema
  • Schema::dropCollection — Drop collection from schema
  • Schema::existsInDatabase — Check if exists in database
  • Schema::getCollection — Get collection from schema
  • Schema::getCollectionAsTable — Get collection as a Table object
  • Schema::getCollections — Get all schema collections
  • Schema::getName — Get schema name
  • Schema::getSession — Get schema session
  • Schema::getTable — Get schema table
  • Schema::getTables — Get schema tables


Schema constructor

  • « mysql_xdevapi\Schema
  • Schema::createCollection »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Schema constructor

Schema::__construct

(No version information available, might only be in Git)

Schema::__construct — Schema constructor

Description

private mysql_xdevapi\Schema::__construct()

The Schema object provides full access to the schema (database).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Exemples

Exemple #1 mysql_xdevapi\Schema::__construct() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS food")->execute();
$session->sql("CREATE DATABASE food")->execute();
$session->sql("CREATE TABLE food.fruit(name text, rating text)")->execute();

$schema = $session->getSchema("food");
$schema->createCollection("trees");

print_r($schema->gettables());
print_r($schema->getcollections());

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [fruit] => mysql_xdevapi\Table Object
        (
            [name] => fruit
        )
)
Array
(
    [trees] => mysql_xdevapi\Collection Object
        (
            [name] => trees
        )
)


Add collection to schema

  • « Schema::__construct
  • Schema::dropCollection »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Add collection to schema

Schema::createCollection

(No version information available, might only be in Git)

Schema::createCollection — Add collection to schema

Description

public mysql_xdevapi\Schema::createCollection(string $name, string $validate = ?): mysql_xdevapi\Collection

Create a collection within the schema.

Liste de paramètres

name

Collection name.

validate

Validation definition, as a JSON object.

Valeurs de retour

The Collection object.

Historique

Version | Description
8.0.20 | Added the optional validate parameter.

Exemples

Exemple #1 mysql_xdevapi\Schema::createCollection() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS food")->execute();
$session->sql("CREATE DATABASE food")->execute();
$session->sql("CREATE TABLE food.fruit(name text, rating text)")->execute();

$schema = $session->getSchema("food");
$schema->createCollection("trees");

print_r($schema->gettables());
print_r($schema->getcollections());

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [fruit] => mysql_xdevapi\Table Object
        (
            [name] => fruit
        )
)
Array
(
    [trees] => mysql_xdevapi\Collection Object
        (
            [name] => trees
        )
)

Exemple #2 mysql_xdevapi\Schema::createCollection() example

<?php
$collection = $schema->createCollection("mycollection", '{
"validation": {
"level": "strict",
"schema": {
"id": "http://json-schema.org/geo",
"description": "A geographical coordinate",
"type": "object",
"properties": {
"latitude": {
"type": "number"
},
"longitude": {
"type": "number"
}
},
"required": ["latitude", "longitude"]
}
}
}');
// Succeeds
$collection->add('{"latitude": 10, "longitude": 20}')->execute();

// Fails, invalid types (not numbers)
$collection->add('{"latitude": "lat", "longitude": "long"}')->execute();


Drop collection from schema

  • « Schema::createCollection
  • Schema::existsInDatabase »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Drop collection from schema

Schema::dropCollection

(No version information available, might only be in Git)

Schema::dropCollection — Drop collection from schema

Description

public mysql_xdevapi\Schema::dropCollection(string $collection_name): bool

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

collection_name

Valeurs de retour

Exemples

Exemple #1 mysql_xdevapi\Schema::dropCollection() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS food")->execute();
$session->sql("CREATE DATABASE food")->execute();
$session->sql("CREATE TABLE food.fruit(name text, rating text)")->execute();

$schema = $session->getSchema("food");

$schema->createCollection("trees");
$schema->dropCollection("trees");
$schema->createCollection("buildings");

print_r($schema->gettables());
print_r($schema->getcollections());

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [fruit] => mysql_xdevapi\Table Object
        (
            [name] => fruit
        )
)
Array
(
    [buildings] => mysql_xdevapi\Collection Object
        (
            [name] => buildings
        )
)


Check if exists in database

  • « Schema::dropCollection
  • Schema::getCollection »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Check if exists in database

Schema::existsInDatabase

(No version information available, might only be in Git)

Schema::existsInDatabase — Check if exists in database

Description

public mysql_xdevapi\Schema::existsInDatabase(): bool

Checks if the current object (schema, table, collection, or view) exists in the schema object.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

true if the schema, table, collection, or view still exists in the schema, else false.

Exemples

Exemple #1 mysql_xdevapi\Schema::existsInDatabase() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS food")->execute();
$session->sql("CREATE DATABASE food")->execute();
$session->sql("CREATE TABLE food.fruit(name text, rating text)")->execute();

$schema = $session->getSchema("food");
$schema->createCollection("trees");

// ...

$trees = $schema->getCollection("trees");

// ...

// Is this collection still in the database (schema)?
if ($trees->existsInDatabase()) {
echo "Yes, the 'trees' collection is still present.";
}

Résultat de l'exemple ci-dessus est similaire à :

Yes, the 'trees' collection is still present.


Get collection from schema

  • « Schema::existsInDatabase
  • Schema::getCollectionAsTable »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Get collection from schema

Schema::getCollection

(No version information available, might only be in Git)

Schema::getCollection — Get collection from schema

Description

public mysql_xdevapi\Schema::getCollection(string $name): mysql_xdevapi\Collection

Get a collection from the schema.

Liste de paramètres

name

Collection name to retrieve.

Valeurs de retour

The Collection object for the selected collection.

Exemples

Exemple #1 mysql_xdevapi\Schema::getCollection() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS food")->execute();
$session->sql("CREATE DATABASE food")->execute();

$schema = $session->getSchema("food");
$schema->createCollection("trees");

// ...

$trees = $schema->getCollection("trees");

var_dump($trees);

Résultat de l'exemple ci-dessus est similaire à :

object(mysql_xdevapi\Collection)#3 (1) {
  ["name"]=>
  string(5) "trees"
}


Get collection as a Table object

  • « Schema::getCollection
  • Schema::getCollections »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Get collection as a Table object

Schema::getCollectionAsTable

(No version information available, might only be in Git)

Schema::getCollectionAsTable — Get collection as a Table object

Description

public mysql_xdevapi\Schema::getCollectionAsTable(string $name): mysql_xdevapi\Table

Get a collection, but as a Table object instead of a Collection object.

Liste de paramètres

name

Name of the collection to instantiate a Table object from.

Valeurs de retour

A mysql_xdevapi\Table object for the collection.

Exemples

Exemple #1 mysql_xdevapi\Schema::getCollectionAsTable() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collect = $schema->createCollection("people");
$collect->add('{"name": "Fred", "age": 21, "job": "Construction"}')->execute();
$collect->add('{"name": "Wilma", "age": 23, "job": "Teacher"}')->execute();

$table = $schema->getCollectionAsTable("people");
$collection = $schema->getCollection("people");

var_dump($table);
var_dump($collection);

Résultat de l'exemple ci-dessus est similaire à :

object(mysql_xdevapi\Table)#4 (1) {
  ["name"]=>
  string(6) "people"
}

object(mysql_xdevapi\Collection)#5 (1) {
  ["name"]=>
  string(6) "people"
}


Get all schema collections

  • « Schema::getCollectionAsTable
  • Schema::getName »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Get all schema collections

Schema::getCollections

(No version information available, might only be in Git)

Schema::getCollections — Get all schema collections

Description

public mysql_xdevapi\Schema::getCollections(): array

Fetch a list of collections for this schema.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Array of all collections in this schema, where each array element value is a Collection object with the collection name as the key.

Exemples

Exemple #1 mysql_xdevapi\Schema::getCollections() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");
$collect = $schema->createCollection("people");
$collect->add('{"name": "Fred", "age": 21, "job": "Construction"}')->execute();
$collect->add('{"name": "Wilma", "age": 23, "job": "Teacher"}')->execute();

$collections = $schema->getCollections();
var_dump($collections);
?>

Résultat de l'exemple ci-dessus est similaire à :

array(1) {
  ["people"]=>
  object(mysql_xdevapi\Collection)#4 (1) {
    ["name"]=>
    string(6) "people"
  }
}


Get schema name

  • « Schema::getCollections
  • Schema::getSession »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Get schema name

Schema::getName

(No version information available, might only be in Git)

Schema::getName — Get schema name

Description

public mysql_xdevapi\Schema::getName(): string

Get the name of the schema.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The name of the schema connected to the schema object, as a string.

Exemples

Exemple #1 mysql_xdevapi\Schema::getName() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");

// ...

var_dump($schema->getName());
?>

Résultat de l'exemple ci-dessus est similaire à :

string(11) "addressbook"


Get schema session

  • « Schema::getName
  • Schema::getTable »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Get schema session

Schema::getSession

(No version information available, might only be in Git)

Schema::getSession — Get schema session

Description

public mysql_xdevapi\Schema::getSession(): mysql_xdevapi\Session

Get a new Session object from the Schema object.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A Session object.

Exemples

Exemple #1 mysql_xdevapi\Schema::getSession() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$schema = $session->getSchema("addressbook");

// ...

$newsession = $schema->getSession();

var_dump($session);
var_dump($newsession);
?>

Résultat de l'exemple ci-dessus est similaire à :

object(mysql_xdevapi\Session)#1 (0) {
}

object(mysql_xdevapi\Session)#3 (0) {
}


Get schema table

  • « Schema::getSession
  • Schema::getTables »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Get schema table

Schema::getTable

(No version information available, might only be in Git)

Schema::getTable — Get schema table

Description

public mysql_xdevapi\Schema::getTable(string $name): mysql_xdevapi\Table

Fetch a Table object for the provided table in the schema.

Liste de paramètres

name

Name of the table.

Valeurs de retour

A Table object.

Exemples

Exemple #1 mysql_xdevapi\Schema::getTable() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$row = $table->select('name', 'age')->execute()->fetchAll();

print_r($row);
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
    [1] => Array
        (
            [name] => Sam
            [age] => 33
        )
)


Get schema tables

  • « Schema::getTable
  • mysql_xdevapi\SchemaObject »
  • PHP Manual
  • mysql_xdevapi\Schema
  • Get schema tables

Schema::getTables

(No version information available, might only be in Git)

Schema::getTables — Get schema tables

Description

public mysql_xdevapi\Schema::getTables(): array

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Array of all tables in this schema, where each array element value is a Table object with the table name as the key.

Exemples

Exemple #1 mysql_xdevapi\Schema::getTables() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();

$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$session->sql("CREATE TABLE addressbook.cities(name text, population int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('Portland', 639863), ('Seattle', 704352)")->execute();

$schema = $session->getSchema("addressbook");
$tables = $schema->getTables();

var_dump($tables);
?>

Résultat de l'exemple ci-dessus est similaire à :

array(2) {
  ["cities"]=>
  object(mysql_xdevapi\Table)#3 (1) {
    ["name"]=>
    string(6) "cities"
  }

  ["names"]=>
  object(mysql_xdevapi\Table)#4 (1) {
    ["name"]=>
    string(5) "names"
  }
}


Interface SchemaObject

(PECL mysql-xdevapi >= 8.0.11)

Introduction

Synopsis de la classe

class mysql_xdevapi\SchemaObject implements mysql_xdevapi\DatabaseObject {
/* Méthodes */
abstract getSchema(): mysql_xdevapi\Schema
}

Sommaire

  • SchemaObject::getSchema — Get schema object


Get schema object

  • « mysql_xdevapi\SchemaObject
  • mysql_xdevapi\Session »
  • PHP Manual
  • mysql_xdevapi\SchemaObject
  • Get schema object

SchemaObject::getSchema

(No version information available, might only be in Git)

SchemaObject::getSchema — Get schema object

Description

abstract mysql_xdevapi\SchemaObject::getSchema(): mysql_xdevapi\Schema

Used by other objects to retrieve a schema object.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The current Schema object.

Exemples

Exemple #1 mysql_xdevapi\Session::getSchema() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$schema = $session->getSchema("addressbook");

print_r($schema);

Résultat de l'exemple ci-dessus est similaire à :

mysql_xdevapi\Schema Object
(
    [name] => addressbook
)


Classe Session

(PECL mysql-xdevapi >= 8.0.11)

Introduction

Synopsis de la classe

class mysql_xdevapi\Session {
/* Méthodes */
public close(): bool
public commit(): Object
public createSchema(string $schema_name): mysql_xdevapi\Schema
public dropSchema(string $schema_name): bool
public generateUUID(): string
public getDefaultSchema(): string
public getSchema(string $schema_name): mysql_xdevapi\Schema
public getSchemas(): array
public getServerVersion(): int
public listClients(): array
public quoteName(string $name): string
public releaseSavepoint(string $name): void
public rollback(): void
public rollbackTo(string $name): void
public setSavepoint(string $name = ?): string
public sql(string $query): mysql_xdevapi\SqlStatement
public startTransaction(): void
}

Sommaire

  • Session::close — Close session
  • Session::commit — Commit transaction
  • Session::__construct — Description constructor
  • Session::createSchema — Create new schema
  • Session::dropSchema — Drop a schema
  • Session::generateUUID — Get new UUID
  • Session::getDefaultSchema — Get default schema name
  • Session::getSchema — Get a new schema object
  • Session::getSchemas — Get the schemas
  • Session::getServerVersion — Get server version
  • Session::listClients — Get client list
  • Session::quoteName — Add quotes
  • Session::releaseSavepoint — Release set savepoint
  • Session::rollback — Rollback transaction
  • Session::rollbackTo — Rollback transaction to savepoint
  • Session::setSavepoint — Create savepoint
  • Session::sql — Create SQL query
  • Session::startTransaction — Start transaction


Close session

  • « mysql_xdevapi\Session
  • Session::commit »
  • PHP Manual
  • mysql_xdevapi\Session
  • Close session

Session::close

(No version information available, might only be in Git)

Session::close — Close session

Description

public mysql_xdevapi\Session::close(): bool

Close the session with the server.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

true if the session closed.

Exemples

Exemple #1 mysql_xdevapi\Session::close() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$session->close();


Commit transaction

  • « Session::close
  • Session::__construct »
  • PHP Manual
  • mysql_xdevapi\Session
  • Commit transaction

Session::commit

(PHP 4 >= 4.4.0, PHP 5, PHP 7, PHP 8)

Session::commit — Commit transaction

Description

public mysql_xdevapi\Session::commit(): Object

Commit the transaction.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

An SqlStatementResult object.

Exemples

Exemple #1 mysql_xdevapi\Session::commit() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$collection = $session->getSchema("addressbook")->getCollection("friends");

$session->startTransaction();

$collection->add('{"John":42, "Sam":33}')->execute();
$savepoint = $session->setSavepoint();

$session->commit();
$session->close();


Description constructor

  • « Session::commit
  • Session::createSchema »
  • PHP Manual
  • mysql_xdevapi\Session
  • Description constructor

Session::__construct

(No version information available, might only be in Git)

Session::__construct — Description constructor

Description

private mysql_xdevapi\Session::__construct()

A Session object, as initiated by getSession().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Exemples

Exemple #1 mysql_xdevapi\Session::__construct() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->close();
?>


Create new schema

  • « Session::__construct
  • Session::dropSchema »
  • PHP Manual
  • mysql_xdevapi\Session
  • Create new schema

Session::createSchema

(No version information available, might only be in Git)

Session::createSchema — Create new schema

Description

public mysql_xdevapi\Session::createSchema(string $schema_name): mysql_xdevapi\Schema

Creates a new schema.

Liste de paramètres

schema_name

Name of the schema to create.

Valeurs de retour

A Schema object on success, and emits an exception on failure.

Exemples

Exemple #1 mysql_xdevapi\Session::createSchema() example

<?php
$uri = 'mysqlx://happyuser:password@127.0.0.1:33060/';
$sess = mysql_xdevapi\getSession($uri);

try {

if ($schema = $sess->createSchema('fruit')) {
echo "Info: I created a schema named 'fruit'\n";
}

} catch (Exception $e) {

echo $e->getMessage();

}
?>

Résultat de l'exemple ci-dessus est similaire à :

Info: I created a schema named 'fruit'


Drop a schema

  • « Session::createSchema
  • Session::generateUUID »
  • PHP Manual
  • mysql_xdevapi\Session
  • Drop a schema

Session::dropSchema

(No version information available, might only be in Git)

Session::dropSchema — Drop a schema

Description

public mysql_xdevapi\Session::dropSchema(string $schema_name): bool

Drop a schema (database).

Liste de paramètres

schema_name

Name of the schema to drop.

Valeurs de retour

true if the schema is dropped, or false if it does not exist or can't be dropped.

An E_WARNING level error is generated if the schema does not exist.

Exemples

Exemple #1 mysql_xdevapi\Session::dropSchema() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->dropSchema("addressbook");

$session->close();
?>


Get new UUID

  • « Session::dropSchema
  • Session::getDefaultSchema »
  • PHP Manual
  • mysql_xdevapi\Session
  • Get new UUID

Session::generateUUID

(No version information available, might only be in Git)

Session::generateUUID — Get new UUID

Description

public mysql_xdevapi\Session::generateUUID(): string

Generate a Universal Unique IDentifier (UUID) generated according to » RFC 4122.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The UUID; a string with a length of 32.

Exemples

Exemple #1 mysql_xdevapi\Session::generateUuid() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$uuid = $session->generateUuid();

var_dump($uuid);

Résultat de l'exemple ci-dessus est similaire à :

string(32) "484B18AC7980F8D4FE84613CDA5EE84B"


Get default schema name

  • « Session::generateUUID
  • Session::getSchema »
  • PHP Manual
  • mysql_xdevapi\Session
  • Get default schema name

Session::getDefaultSchema

(No version information available, might only be in Git)

Session::getDefaultSchema — Get default schema name

Description

public mysql_xdevapi\Session::getDefaultSchema(): string

Retrieve name of the default schema that's typically set in the connection URI.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Name of the default schema defined by the connection, or null if one was not set.

Exemples

Exemple #1 mysql_xdevapi\Session::getSchema() example

<?php
$uri = "mysqlx://testuser:testpasswd@localhost:33160/testx?ssl-mode=disabled";
$session = mysql_xdevapi\getSession($uri);

$schema = $session->getDefaultSchema();
echo $schema;
?>

L'exemple ci-dessus va afficher :

testx


Get a new schema object

  • « Session::getDefaultSchema
  • Session::getSchemas »
  • PHP Manual
  • mysql_xdevapi\Session
  • Get a new schema object

Session::getSchema

(No version information available, might only be in Git)

Session::getSchema — Get a new schema object

Description

public mysql_xdevapi\Session::getSchema(string $schema_name): mysql_xdevapi\Schema

A new Schema object for the provided schema name.

Liste de paramètres

schema_name

Name of the schema (database) to fetch a Schema object for.

Valeurs de retour

A Schema object.

Exemples

Exemple #1 mysql_xdevapi\Session::getSchema() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$schema = $session->getSchema("addressbook");

print_r($schema);

Résultat de l'exemple ci-dessus est similaire à :

mysql_xdevapi\Schema Object
(
    [name] => addressbook
)


Get the schemas

  • « Session::getSchema
  • Session::getServerVersion »
  • PHP Manual
  • mysql_xdevapi\Session
  • Get the schemas

Session::getSchemas

(No version information available, might only be in Git)

Session::getSchemas — Get the schemas

Description

public mysql_xdevapi\Session::getSchemas(): array

Get schema objects for all schemas available to the session.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

An array containing objects that represent all of the schemas available to the session.

Exemples

Exemple #1 mysql_xdevapi\Session::getSchemas() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$schemas = $session->getSchemas();

print_r($schemas);

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => mysql_xdevapi\Schema Object
        (
            [name] => addressbook
        )
    [1] => mysql_xdevapi\Schema Object
        (
            [name] => information_schema
        )
    ...


Get server version

  • « Session::getSchemas
  • Session::listClients »
  • PHP Manual
  • mysql_xdevapi\Session
  • Get server version

Session::getServerVersion

(No version information available, might only be in Git)

Session::getServerVersion — Get server version

Description

public mysql_xdevapi\Session::getServerVersion(): int

Retrieve the MySQL server version for the session.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The MySQL server version for the session, as an integer such as "80012".

Exemples

Exemple #1 mysql_xdevapi\Session::getServerVersion() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$version = $session->getServerVersion();

var_dump($version);

Résultat de l'exemple ci-dessus est similaire à :

int(80012)


Get client list

  • « Session::getServerVersion
  • Session::quoteName »
  • PHP Manual
  • mysql_xdevapi\Session
  • Get client list

Session::listClients

(No version information available, might only be in Git)

Session::listClients — Get client list

Description

public mysql_xdevapi\Session::listClients(): array

Get a list of client connections to the session's MySQL server.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

An array containing the currently logged clients. The array elements are "client_id", "user", "host", and "sql_session".

Exemples

Exemple #1 mysql_xdevapi\Session::listClients() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$ids = $session->listClients();

var_dump($ids);
?>

Résultat de l'exemple ci-dessus est similaire à :

array(1) {
  [0]=>
  array(4) {
    ["client_id"]=>
    int(61)
    ["user"]=>
    string(4) "root"
    ["host"]=>
    string(9) "localhost"
    ["sql_session"]=>
    int(72)
  }
}


Add quotes

  • « Session::listClients
  • Session::releaseSavepoint »
  • PHP Manual
  • mysql_xdevapi\Session
  • Add quotes

Session::quoteName

(No version information available, might only be in Git)

Session::quoteName — Add quotes

Description

public mysql_xdevapi\Session::quoteName(string $name): string

A quoting function to escape SQL names and identifiers. It escapes the identifier given in accordance to the settings of the current connection. This escape function should not be used to escape values.

Liste de paramètres

name

The string to quote.

Valeurs de retour

The quoted string.

Exemples

Exemple #1 mysql_xdevapi\Session::quoteName() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$first = "MySQL's test";
var_dump($first);
var_dump($session->quoteName($first));

$second = 'Another `test` "like" `this`';
var_dump($second);
var_dump($session->quoteName($second));
?>

Résultat de l'exemple ci-dessus est similaire à :

string(12) "MySQL's test"
string(14) "`MySQL's test`"

string(28) "Another `test` "like" `this`"
string(34) "`Another ``test`` "like" ``this```"


Release set savepoint

  • « Session::quoteName
  • Session::rollback »
  • PHP Manual
  • mysql_xdevapi\Session
  • Release set savepoint

Session::releaseSavepoint

(No version information available, might only be in Git)

Session::releaseSavepoint — Release set savepoint

Description

public mysql_xdevapi\Session::releaseSavepoint(string $name): void

Release a previously set savepoint.

Liste de paramètres

name

Name of the savepoint to release.

Valeurs de retour

An SqlStatementResult object.

Exemples

Exemple #1 mysql_xdevapi\Session::releaseSavepoint() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$collection = $session->getSchema("addressbook")->getCollection("friends");

$session->startTransaction();
$collection->add( '{"test1":1, "test2":2}' )->execute();

$savepoint = $session->setSavepoint();

$collection->add( '{"test3":3, "test4":4}' )->execute();

$session->releaseSavepoint($savepoint);
$session->rollback();
?>


Rollback transaction

  • « Session::releaseSavepoint
  • Session::rollbackTo »
  • PHP Manual
  • mysql_xdevapi\Session
  • Rollback transaction

Session::rollback

(No version information available, might only be in Git)

Session::rollback — Rollback transaction

Description

public mysql_xdevapi\Session::rollback(): void

Rollback the transaction.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

An SqlStatementResult object.

Exemples

Exemple #1 mysql_xdevapi\Session::rollback() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$collection = $session->getSchema("addressbook")->getCollection("names");

$session->startTransaction();
$collection->add( '{"test1":1, "test2":2}' )->execute();

$savepoint = $session->setSavepoint();

$collection->add( '{"test3":3, "test4":4}' )->execute();

$session->releaseSavepoint($savepoint);
$session->rollback();
?>


Rollback transaction to savepoint

  • « Session::rollback
  • Session::setSavepoint »
  • PHP Manual
  • mysql_xdevapi\Session
  • Rollback transaction to savepoint

Session::rollbackTo

(No version information available, might only be in Git)

Session::rollbackTo — Rollback transaction to savepoint

Description

public mysql_xdevapi\Session::rollbackTo(string $name): void

Rollback the transaction back to the savepoint.

Liste de paramètres

name

Name of the savepoint to rollback to; case-insensitive.

Valeurs de retour

An SqlStatementResult object.

Exemples

Exemple #1 mysql_xdevapi\Session::rollbackTo() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$collection = $session->getSchema("addressbook")->getCollection("names");

$session->startTransaction();
$collection->add( '{"test1":1, "test2":2}' )->execute();

$savepoint1 = $session->setSavepoint();

$collection->add( '{"test3":3, "test4":4}' )->execute();

$savepoint2 = $session->setSavepoint();

$session->rollbackTo($savepoint1);
?>


Create savepoint

  • « Session::rollbackTo
  • Session::sql »
  • PHP Manual
  • mysql_xdevapi\Session
  • Create savepoint

Session::setSavepoint

(No version information available, might only be in Git)

Session::setSavepoint — Create savepoint

Description

public mysql_xdevapi\Session::setSavepoint(string $name = ?): string

Create a new savepoint for the transaction.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

name

The name of the savepoint. The name is auto-generated if the optional name parameter is not defined as 'SAVEPOINT1', 'SAVEPOINT2', and so on.

Valeurs de retour

The name of the save point.

Exemples

Exemple #1 mysql_xdevapi\Session::setSavepoint() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$collection = $session->getSchema("addressbook")->getCollection("names");

$session->startTransaction();
$collection->add( '{"test1":1, "test2":2}' )->execute();

$savepoint = $session->setSavepoint();

$collection->add( '{"test3":3, "test4":4}' )->execute();

$session->releaseSavepoint($savepoint);
$session->rollback();
?>


Create SQL query

  • « Session::setSavepoint
  • Session::startTransaction »
  • PHP Manual
  • mysql_xdevapi\Session
  • Create SQL query

Session::sql

(No version information available, might only be in Git)

Session::sql — Create SQL query

Description

public mysql_xdevapi\Session::sql(string $query): mysql_xdevapi\SqlStatement

Create a native SQL statement. Placeholders are supported using the native "?" syntax. Use the execute method to execute the SQL statement.

Liste de paramètres

query

SQL statement to execute.

Valeurs de retour

An SqlStatement object.

Exemples

Exemple #1 mysql_xdevapi\Session::sql() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("CREATE DATABASE addressbook")->execute();
?>


Start transaction

  • « Session::sql
  • mysql_xdevapi\SqlStatement »
  • PHP Manual
  • mysql_xdevapi\Session
  • Start transaction

Session::startTransaction

(No version information available, might only be in Git)

Session::startTransaction — Start transaction

Description

public mysql_xdevapi\Session::startTransaction(): void

Start a new transaction.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

An SqlStatementResult object.

Exemples

Exemple #1 mysql_xdevapi\Session::startTransaction() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$collection = $session->getSchema("addressbook")->getCollection("friends");

$session->startTransaction();
$collection->add( '{"test1":1, "test2":2}' )->execute();

$savepoint = $session->setSavepoint();

$collection->add( '{"test3":3, "test4":4}' )->execute();

$session->releaseSavepoint($savepoint);
$session->rollback();
?>


Classe SqlStatement

(PECL mysql-xdevapi >= 8.0.11)

Introduction

Synopsis de la classe

class mysql_xdevapi\SqlStatement {
/* Constantes */
const int EXECUTE_ASYNC = 1;
const int BUFFERED = 2;
/* Propriétés */
public $statement;
/* Méthodes */
public bind(string $param): mysql_xdevapi\SqlStatement
public execute(): mysql_xdevapi\Result
public getNextResult(): mysql_xdevapi\Result
public getResult(): mysql_xdevapi\Result
public hasMoreResults(): bool
}

Propriétés

statement

Constantes pré-définies

mysql_xdevapi\SqlStatement::EXECUTE_ASYNC

mysql_xdevapi\SqlStatement::BUFFERED

Sommaire

  • SqlStatement::bind — Bind statement parameters
  • SqlStatement::__construct — Description constructor
  • SqlStatement::execute — Execute the operation
  • SqlStatement::getNextResult — Get next result
  • SqlStatement::getResult — Get result
  • SqlStatement::hasMoreResults — Check for more results


Bind statement parameters

  • « mysql_xdevapi\SqlStatement
  • SqlStatement::__construct »
  • PHP Manual
  • mysql_xdevapi\SqlStatement
  • Bind statement parameters

SqlStatement::bind

(No version information available, might only be in Git)

SqlStatement::bind — Bind statement parameters

Description

public mysql_xdevapi\SqlStatement::bind(string $param): mysql_xdevapi\SqlStatement

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

param

Valeurs de retour

Exemples

Exemple #1 mysql_xdevapi\SqlStatement::bind() example

<?php

/* ... */

?>


Description constructor

  • « SqlStatement::bind
  • SqlStatement::execute »
  • PHP Manual
  • mysql_xdevapi\SqlStatement
  • Description constructor

SqlStatement::__construct

(No version information available, might only be in Git)

SqlStatement::__construct — Description constructor

Description

private mysql_xdevapi\SqlStatement::__construct()

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Exemples

Exemple #1 mysql_xdevapi\SqlStatement::__construct() example

<?php

/* ... */

?>


Execute the operation

  • « SqlStatement::__construct
  • SqlStatement::getNextResult »
  • PHP Manual
  • mysql_xdevapi\SqlStatement
  • Execute the operation

SqlStatement::execute

(No version information available, might only be in Git)

SqlStatement::execute — Execute the operation

Description

public mysql_xdevapi\SqlStatement::execute(): mysql_xdevapi\Result

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 mysql_xdevapi\SqlStatement::execute() example

<?php

/* ... */

?>


Get next result

  • « SqlStatement::execute
  • SqlStatement::getResult »
  • PHP Manual
  • mysql_xdevapi\SqlStatement
  • Get next result

SqlStatement::getNextResult

(No version information available, might only be in Git)

SqlStatement::getNextResult — Get next result

Description

public mysql_xdevapi\SqlStatement::getNextResult(): mysql_xdevapi\Result

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 mysql_xdevapi\SqlStatement::getNextResult() example

<?php

/* ... */

?>


Get result

  • « SqlStatement::getNextResult
  • SqlStatement::hasMoreResults »
  • PHP Manual
  • mysql_xdevapi\SqlStatement
  • Get result

SqlStatement::getResult

(No version information available, might only be in Git)

SqlStatement::getResult — Get result

Description

public mysql_xdevapi\SqlStatement::getResult(): mysql_xdevapi\Result

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 mysql_xdevapi\SqlStatement::getResult() example

<?php

/* ... */

?>


Check for more results

  • « SqlStatement::getResult
  • mysql_xdevapi\SqlStatementResult »
  • PHP Manual
  • mysql_xdevapi\SqlStatement
  • Check for more results

SqlStatement::hasMoreResults

(No version information available, might only be in Git)

SqlStatement::hasMoreResults — Check for more results

Description

public mysql_xdevapi\SqlStatement::hasMoreResults(): bool

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

true if the result set has more objects to fetch.

Exemples

Exemple #1 mysql_xdevapi\SqlStatement::hasMoreResults() example

<?php

/* ... */

?>


Classe SqlStatementResult

(PECL mysql-xdevapi >= 8.0.11)

Introduction

Synopsis de la classe

class mysql_xdevapi\SqlStatementResult implements mysql_xdevapi\BaseResult, Traversable {
/* Méthodes */
public fetchAll(): array
public fetchOne(): array
public getAffectedItemsCount(): int
public getColumnsCount(): int
public getColumnNames(): array
public getColumns(): Array
public getGeneratedIds(): array
public getLastInsertId(): String
public getWarnings(): array
public getWarningCounts(): int
public hasData(): bool
public nextResult(): mysql_xdevapi\Result
}

Sommaire

  • SqlStatementResult::__construct — Description constructor
  • SqlStatementResult::fetchAll — Get all rows from result
  • SqlStatementResult::fetchOne — Get single row
  • SqlStatementResult::getAffectedItemsCount — Get affected row count
  • SqlStatementResult::getColumnsCount — Get column count
  • SqlStatementResult::getColumnNames — Get column names
  • SqlStatementResult::getColumns — Get columns
  • SqlStatementResult::getGeneratedIds — Get generated ids
  • SqlStatementResult::getLastInsertId — Get last insert id
  • SqlStatementResult::getWarnings — Get warnings from last operation
  • SqlStatementResult::getWarningsCount — Get warning count from last operation
  • SqlStatementResult::hasData — Check if result has data
  • SqlStatementResult::nextResult — Get next result


Description constructor

  • « mysql_xdevapi\SqlStatementResult
  • SqlStatementResult::fetchAll »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Description constructor

SqlStatementResult::__construct

(No version information available, might only be in Git)

SqlStatementResult::__construct — Description constructor

Description

private mysql_xdevapi\SqlStatementResult::__construct()

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Exemples

Exemple #1 mysql_xdevapi\SqlStatementResult::__construct() example

<?php

/* ... */

?>


Get all rows from result

  • « SqlStatementResult::__construct
  • SqlStatementResult::fetchOne »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Get all rows from result

SqlStatementResult::fetchAll

(No version information available, might only be in Git)

SqlStatementResult::fetchAll — Get all rows from result

Description

public mysql_xdevapi\SqlStatementResult::fetchAll(): array

Fetch all the rows from the result set.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A numerical array with all results from the query; each result is an associative array. An empty array is returned if no rows are present.

Exemples

Exemple #1 mysql_xdevapi\SqlStatementResult::fetchAll() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS dbtest")->execute();
$session->sql("CREATE DATABASE dbtest")->execute();
$session->sql("CREATE TABLE dbtest.workers(name text, age int, job text)")->execute();
$session->sql("INSERT INTO dbtest.workers values ('John', 42, 'bricklayer'), ('Sam', 33, 'carpenter')")->execute();

$schema = $session->getSchema("dbtest");
$table = $schema->getTable("workers");

$rows = $session->sql("SELECT * FROM dbtest.workers")->execute()->fetchAll();

print_r($rows);
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
    [1] => Array
        (
            [name] => Sam
            [age] => 33
        )
)


Get single row

  • « SqlStatementResult::fetchAll
  • SqlStatementResult::getAffectedItemsCount »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Get single row

SqlStatementResult::fetchOne

(No version information available, might only be in Git)

SqlStatementResult::fetchOne — Get single row

Description

public mysql_xdevapi\SqlStatementResult::fetchOne(): array

Fetch one row from the result set.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The result, as an associative array. In case there is not any result, null will be returned.

Exemples

Exemple #1 mysql_xdevapi\SqlStatementResult::fetchOne() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS dbtest")->execute();
$session->sql("CREATE DATABASE dbtest")->execute();
$session->sql("CREATE TABLE dbtest.workers(name text, age int, job text)")->execute();
$session->sql("INSERT INTO dbtest.workers values ('John', 42, 'bricklayer'), ('Sam', 33, 'carpenter')")->execute();

$schema = $session->getSchema("dbtest");
$table = $schema->getTable("workers");

$rows = $session->sql("SELECT * FROM dbtest.workers")->execute()->fetchOne();

print_r($rows);
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [name] => John
    [age] => 42
    [job] => bricklayer
)


Get affected row count

  • « SqlStatementResult::fetchOne
  • SqlStatementResult::getColumnsCount »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Get affected row count

SqlStatementResult::getAffectedItemsCount

(No version information available, might only be in Git)

SqlStatementResult::getAffectedItemsCount — Get affected row count

Description

public mysql_xdevapi\SqlStatementResult::getAffectedItemsCount(): int

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 mysql_xdevapi\SqlStatementResult::getAffectedItemsCount() example

<?php

/* ... */

?>


Get column count

  • « SqlStatementResult::getAffectedItemsCount
  • SqlStatementResult::getColumnNames »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Get column count

SqlStatementResult::getColumnsCount

(No version information available, might only be in Git)

SqlStatementResult::getColumnsCount — Get column count

Description

public mysql_xdevapi\SqlStatementResult::getColumnsCount(): int

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The number of columns; 0 if there are none.

Historique

Version | Description
8.0.14 | Method renamed from getColumnCount() to getColumnsCount().

Exemples

Exemple #1 mysql_xdevapi\SqlStatementResult::getColumnsCount() example

<?php

/* ... */

?>


Get column names

  • « SqlStatementResult::getColumnsCount
  • SqlStatementResult::getColumns »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Get column names

SqlStatementResult::getColumnNames

(No version information available, might only be in Git)

SqlStatementResult::getColumnNames — Get column names

Description

public mysql_xdevapi\SqlStatementResult::getColumnNames(): array

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 mysql_xdevapi\SqlStatementResult::getColumnNames() example

<?php

/* ... */

?>


Get columns

  • « SqlStatementResult::getColumnNames
  • SqlStatementResult::getGeneratedIds »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Get columns

SqlStatementResult::getColumns

(No version information available, might only be in Git)

SqlStatementResult::getColumns — Get columns

Description

public mysql_xdevapi\SqlStatementResult::getColumns(): Array

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 mysql_xdevapi\SqlStatementResult::getColumns() example

<?php

/* ... */

?>


Get generated ids

  • « SqlStatementResult::getColumns
  • SqlStatementResult::getLastInsertId »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Get generated ids

SqlStatementResult::getGeneratedIds

(No version information available, might only be in Git)

SqlStatementResult::getGeneratedIds — Get generated ids

Description

public mysql_xdevapi\SqlStatementResult::getGeneratedIds(): array

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

An array of generated _id's from the last operation, or an empty array if there are none.

Exemples

Exemple #1 mysql_xdevapi\SqlStatementResult::getGeneratedIds() example

<?php

/* ... */

?>


Get last insert id

  • « SqlStatementResult::getGeneratedIds
  • SqlStatementResult::getWarnings »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Get last insert id

SqlStatementResult::getLastInsertId

(No version information available, might only be in Git)

SqlStatementResult::getLastInsertId — Get last insert id

Description

public mysql_xdevapi\SqlStatementResult::getLastInsertId(): String

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The ID for the last insert operation.

Exemples

Exemple #1 mysql_xdevapi\SqlStatementResult::getLastInsertId() example

<?php

/* ... */

?>


Get warnings from last operation

  • « SqlStatementResult::getLastInsertId
  • SqlStatementResult::getWarningsCount »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Get warnings from last operation

SqlStatementResult::getWarnings

(No version information available, might only be in Git)

SqlStatementResult::getWarnings — Get warnings from last operation

Description

public mysql_xdevapi\SqlStatementResult::getWarnings(): array

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

An array of Warning objects from the last operation. Each object defines an error 'message', error 'level', and error 'code'. An empty array is returned if no errors are present.

Exemples

Exemple #1 mysql_xdevapi\SqlStatementResult::getWarnings() example

<?php

/* ... */

?>


Get warning count from last operation

  • « SqlStatementResult::getWarnings
  • SqlStatementResult::hasData »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Get warning count from last operation

SqlStatementResult::getWarningsCount

(No version information available, might only be in Git)

SqlStatementResult::getWarningsCount — Get warning count from last operation

Description

public mysql_xdevapi\SqlStatementResult::getWarningCounts(): int

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The number of warnings raised during the last CRUD operation.

Exemples

Exemple #1 mysql_xdevapi\SqlStatementResult::getWarningsCount() example

<?php

/* ... */

?>


Check if result has data

  • « SqlStatementResult::getWarningsCount
  • SqlStatementResult::nextResult »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Check if result has data

SqlStatementResult::hasData

(No version information available, might only be in Git)

SqlStatementResult::hasData — Check if result has data

Description

public mysql_xdevapi\SqlStatementResult::hasData(): bool

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

true if the result set has data.

Exemples

Exemple #1 mysql_xdevapi\SqlStatementResult::hasData() example

<?php

/* ... */

?>


Get next result

  • « SqlStatementResult::hasData
  • mysql_xdevapi\Statement »
  • PHP Manual
  • mysql_xdevapi\SqlStatementResult
  • Get next result

SqlStatementResult::nextResult

(No version information available, might only be in Git)

SqlStatementResult::nextResult — Get next result

Description

public mysql_xdevapi\SqlStatementResult::nextResult(): mysql_xdevapi\Result

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The next Result object from the result set.

Exemples

Exemple #1 mysql_xdevapi\SqlStatementResult::nextResult() example

<?php

/* ... */

?>


Classe Statement

(PECL mysql-xdevapi >= 8.0.11)

Introduction

Synopsis de la classe

class mysql_xdevapi\Statement {
/* Constantes */
const int EXECUTE_ASYNC = 1;
const int BUFFERED = 2;
/* Méthodes */
public getNextResult(): mysql_xdevapi\Result
public getResult(): mysql_xdevapi\Result
public hasMoreResults(): bool
}

Constantes pré-définies

mysql_xdevapi\Statement::EXECUTE_ASYNC

mysql_xdevapi\Statement::BUFFERED

Sommaire

  • Statement::__construct — Description constructor
  • Statement::getNextResult — Get next result
  • Statement::getResult — Get result
  • Statement::hasMoreResults — Check if more results


Description constructor

  • « mysql_xdevapi\Statement
  • Statement::getNextResult »
  • PHP Manual
  • mysql_xdevapi\Statement
  • Description constructor

Statement::__construct

(No version information available, might only be in Git)

Statement::__construct — Description constructor

Description

private mysql_xdevapi\Statement::__construct()

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Exemples

Exemple #1 mysql_xdevapi\Statement::__construct() example

<?php

/* ... */

?>


Get next result

  • « Statement::__construct
  • Statement::getResult »
  • PHP Manual
  • mysql_xdevapi\Statement
  • Get next result

Statement::getNextResult

(No version information available, might only be in Git)

Statement::getNextResult — Get next result

Description

public mysql_xdevapi\Statement::getNextResult(): mysql_xdevapi\Result

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 mysql_xdevapi\Statement::getNextResult() example

<?php

/* ... */

?>


Get result

  • « Statement::getNextResult
  • Statement::hasMoreResults »
  • PHP Manual
  • mysql_xdevapi\Statement
  • Get result

Statement::getResult

(No version information available, might only be in Git)

Statement::getResult — Get result

Description

public mysql_xdevapi\Statement::getResult(): mysql_xdevapi\Result

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 mysql_xdevapi\Statement::getResult() example

<?php

/* ... */

?>


Check if more results

  • « Statement::getResult
  • mysql_xdevapi\Table »
  • PHP Manual
  • mysql_xdevapi\Statement
  • Check if more results

Statement::hasMoreResults

(No version information available, might only be in Git)

Statement::hasMoreResults — Check if more results

Description

public mysql_xdevapi\Statement::hasMoreResults(): bool

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 mysql_xdevapi\Statement::hasMoreResults() example

<?php

/* ... */

?>


Classe Table

(PECL mysql-xdevapi >= 8.0.11)

Introduction

Fournie un accès à la table à travers des déclarations INSERT/SELECT/UPDATE/DELETE.

Synopsis de la classe

class mysql_xdevapi\Table implements mysql_xdevapi\SchemaObject {
/* Propriétés */
public $name;
/* Méthodes */
public count(): int
public delete(): mysql_xdevapi\TableDelete
public existsInDatabase(): bool
public getName(): string
public getSchema(): mysql_xdevapi\Schema
public getSession(): mysql_xdevapi\Session
public insert(mixed $columns, mixed ...$more_columns): mysql_xdevapi\TableInsert
public isView(): bool
public select(mixed $columns, mixed ...$more_columns): mysql_xdevapi\TableSelect
public update(): mysql_xdevapi\TableUpdate
}

Propriétés

name

Sommaire

  • Table::__construct — Table constructor
  • Table::count — Get row count
  • Table::delete — Delete rows from table
  • Table::existsInDatabase — Check if table exists in database
  • Table::getName — Get table name
  • Table::getSchema — Get table schema
  • Table::getSession — Get table session
  • Table::insert — Insert table rows
  • Table::isView — Check if table is view
  • Table::select — Select rows from table
  • Table::update — Update rows in table


Table constructor

  • « mysql_xdevapi\Table
  • Table::count »
  • PHP Manual
  • mysql_xdevapi\Table
  • Table constructor

Table::__construct

(No version information available, might only be in Git)

Table::__construct — Table constructor

Description

private mysql_xdevapi\Table::__construct()

Construct a table object.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Exemples

Exemple #1 mysql_xdevapi\Table::__construct() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");
?>


Get row count

  • « Table::__construct
  • Table::delete »
  • PHP Manual
  • mysql_xdevapi\Table
  • Get row count

Table::count

(No version information available, might only be in Git)

Table::count — Get row count

Description

public mysql_xdevapi\Table::count(): int

Fetch the number of rows in the table.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The total number of rows in the table.

Exemples

Exemple #1 mysql_xdevapi\Table::count() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

var_dump($table->count());
?>

L'exemple ci-dessus va afficher :

int(2)


Delete rows from table

  • « Table::count
  • Table::existsInDatabase »
  • PHP Manual
  • mysql_xdevapi\Table
  • Delete rows from table

Table::delete

(No version information available, might only be in Git)

Table::delete — Delete rows from table

Description

public mysql_xdevapi\Table::delete(): mysql_xdevapi\TableDelete

Deletes rows from a table.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A TableDelete object; use the execute() method to execute the delete query.

Exemples

Exemple #1 mysql_xdevapi\Table::delete() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$table->delete()->where("name = :name")->orderby("age DESC")->limit(1)->bind(['name' => 'John'])->execute();
?>


Check if table exists in database

  • « Table::delete
  • Table::getName »
  • PHP Manual
  • mysql_xdevapi\Table
  • Check if table exists in database

Table::existsInDatabase

(No version information available, might only be in Git)

Table::existsInDatabase — Check if table exists in database

Description

public mysql_xdevapi\Table::existsInDatabase(): bool

Verifies if this table exists in the database.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns true if table exists in the database, else false if it does not.

Exemples

Exemple #1 mysql_xdevapi\Table::existsInDatabase() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

if ($table->existsInDatabase()) {
echo "Yes, this table still exists in the session's schema.";
}
?>

Résultat de l'exemple ci-dessus est similaire à :

Yes, this table still exists in the session's schema.


Get table name

  • « Table::existsInDatabase
  • Table::getSchema »
  • PHP Manual
  • mysql_xdevapi\Table
  • Get table name

Table::getName

(No version information available, might only be in Git)

Table::getName — Get table name

Description

public mysql_xdevapi\Table::getName(): string

Returns the name of this database object.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The name of this database object.

Exemples

Exemple #1 mysql_xdevapi\Table::getName() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

var_dump($table->getName());
?>

Résultat de l'exemple ci-dessus est similaire à :

string(5) "names"


Get table schema

  • « Table::getName
  • Table::getSession »
  • PHP Manual
  • mysql_xdevapi\Table
  • Get table schema

Table::getSchema

(No version information available, might only be in Git)

Table::getSchema — Get table schema

Description

public mysql_xdevapi\Table::getSchema(): mysql_xdevapi\Schema

Fetch the schema associated with the table.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A Schema object.

Exemples

Exemple #1 mysql_xdevapi\Table::getSchema() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

var_dump($table->getSchema());
?>

Résultat de l'exemple ci-dessus est similaire à :

object(mysql_xdevapi\Schema)#9 (1) {
  ["name"]=>
  string(11) "addressbook"
}


Get table session

  • « Table::getSchema
  • Table::insert »
  • PHP Manual
  • mysql_xdevapi\Table
  • Get table session

Table::getSession

(No version information available, might only be in Git)

Table::getSession — Get table session

Description

public mysql_xdevapi\Table::getSession(): mysql_xdevapi\Session

Get session associated with the table.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A Session object.

Exemples

Exemple #1 mysql_xdevapi\Table::getSession() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

var_dump($table->getSession());
?>

Résultat de l'exemple ci-dessus est similaire à :

object(mysql_xdevapi\Session)#9 (0) {
}


Insert table rows

  • « Table::getSession
  • Table::isView »
  • PHP Manual
  • mysql_xdevapi\Table
  • Insert table rows

Table::insert

(No version information available, might only be in Git)

Table::insert — Insert table rows

Description

public mysql_xdevapi\Table::insert(mixed $columns, mixed ...$more_columns): mysql_xdevapi\TableInsert

Inserts rows into a table.

Liste de paramètres

columns

The columns to insert data into. Can be an array with one or more values, or a string.

more_columns

Additional columns definitions.

Valeurs de retour

A TableInsert object; use the execute() method to execute the insert statement.

Exemples

Exemple #1 mysql_xdevapi\Table::insert() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$table ->insert("name", "age")
->values(["Suzanne", 31],["Julie", 43])
->execute();
?>


Check if table is view

  • « Table::insert
  • Table::select »
  • PHP Manual
  • mysql_xdevapi\Table
  • Check if table is view

Table::isView

(No version information available, might only be in Git)

Table::isView — Check if table is view

Description

public mysql_xdevapi\Table::isView(): bool

Determine if the underlying object is a view or not.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

true if the underlying object is a view, otherwise false.

Exemples

Exemple #1 mysql_xdevapi\Table::isView() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

if ($table->isView()) {
echo "This is a view.";
} else {
echo "This is not a view.";
}
?>

L'exemple ci-dessus va afficher :

This is not a view.


Select rows from table

  • « Table::isView
  • Table::update »
  • PHP Manual
  • mysql_xdevapi\Table
  • Select rows from table

Table::select

(No version information available, might only be in Git)

Table::select — Select rows from table

Description

public mysql_xdevapi\Table::select(mixed $columns, mixed ...$more_columns): mysql_xdevapi\TableSelect

Fetches data from a table.

Liste de paramètres

columns

The columns to select data from. Can be an array with one or more values, or a string.

more_columns

Additional columns parameter definitions.

Valeurs de retour

A TableSelect object; use the execute() method to execute the select and return a RowResult object.

Exemples

Exemple #1 mysql_xdevapi\Table::count() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$row = $table->select('name', 'age')->execute()->fetchAll();

print_r($row);

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
    [1] => Array
        (
            [name] => Sam
            [age] => 33
        )
)


Update rows in table

  • « Table::select
  • mysql_xdevapi\TableDelete »
  • PHP Manual
  • mysql_xdevapi\Table
  • Update rows in table

Table::update

(No version information available, might only be in Git)

Table::update — Update rows in table

Description

public mysql_xdevapi\Table::update(): mysql_xdevapi\TableUpdate

Updates columns in a table.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A TableUpdate object; use the execute() method to execute the update statement.

Exemples

Exemple #1 mysql_xdevapi\Table::update() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$table->update()->set('age',34)->where('name = "Sam"')->limit(1)->execute();
?>


Classe TableDelete

(PECL mysql-xdevapi >= 8.0.11)

Introduction

Une déclaration pour des opérations de suppression sur une Table.

Synopsis de la classe

class mysql_xdevapi\TableDelete implements mysql_xdevapi\Executable {
/* Méthodes */
public bind(array $placeholder_values): mysql_xdevapi\TableDelete
public execute(): mysql_xdevapi\Result
public limit(int $rows): mysql_xdevapi\TableDelete
public orderby(string $orderby_expr): mysql_xdevapi\TableDelete
public where(string $where_expr): mysql_xdevapi\TableDelete
}

Sommaire

  • TableDelete::bind — Bind delete query parameters
  • TableDelete::__construct — TableDelete constructor
  • TableDelete::execute — Execute delete query
  • TableDelete::limit — Limit deleted rows
  • TableDelete::orderby — Set delete sort criteria
  • TableDelete::where — Set delete search condition


Bind delete query parameters

  • « mysql_xdevapi\TableDelete
  • TableDelete::__construct »
  • PHP Manual
  • mysql_xdevapi\TableDelete
  • Bind delete query parameters

TableDelete::bind

(No version information available, might only be in Git)

TableDelete::bind — Bind delete query parameters

Description

public mysql_xdevapi\TableDelete::bind(array $placeholder_values): mysql_xdevapi\TableDelete

Binds a value to a specific placeholder.

Liste de paramètres

placeholder_values

The name of the placeholder and the value to bind.

Valeurs de retour

A TableDelete object.

Exemples

Exemple #1 mysql_xdevapi\TableDelete::bind() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$table->delete()
->where("name = :name")
->bind(['name' => 'John'])
->orderby("age DESC")
->limit(1)
->execute();

?>


TableDelete constructor

  • « TableDelete::bind
  • TableDelete::execute »
  • PHP Manual
  • mysql_xdevapi\TableDelete
  • TableDelete constructor

TableDelete::__construct

(No version information available, might only be in Git)

TableDelete::__construct — TableDelete constructor

Description

private mysql_xdevapi\TableDelete::__construct()

Initiated by using the delete() method.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Exemples

Exemple #1 mysql_xdevapi\TableDelete::__construct() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$table->delete()
->where("name = :name")
->bind(['name' => 'John'])
->orderby("age DESC")
->limit(1)
->execute();

?>


Execute delete query

  • « TableDelete::__construct
  • TableDelete::limit »
  • PHP Manual
  • mysql_xdevapi\TableDelete
  • Execute delete query

TableDelete::execute

(No version information available, might only be in Git)

TableDelete::execute — Execute delete query

Description

public mysql_xdevapi\TableDelete::execute(): mysql_xdevapi\Result

Execute the delete query.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A Result object.

Exemples

Exemple #1 mysql_xdevapi\TableDelete::execute() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$table->delete()
->where("name = :name")
->bind(['name' => 'John'])
->orderby("age DESC")
->limit(1)
->execute();

?>


Limit deleted rows

  • « TableDelete::execute
  • TableDelete::orderby »
  • PHP Manual
  • mysql_xdevapi\TableDelete
  • Limit deleted rows

TableDelete::limit

(No version information available, might only be in Git)

TableDelete::limit — Limit deleted rows

Description

public mysql_xdevapi\TableDelete::limit(int $rows): mysql_xdevapi\TableDelete

Sets the maximum number of records or documents to delete.

Liste de paramètres

rows

The maximum number of records or documents to delete.

Valeurs de retour

TableDelete object.

Exemples

Exemple #1 mysql_xdevapi\TableDelete::limit() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$table->delete()
->where("name = :name")
->bind(['name' => 'John'])
->orderby("age DESC")
->limit(1)
->execute();

?>


Set delete sort criteria

  • « TableDelete::limit
  • TableDelete::where »
  • PHP Manual
  • mysql_xdevapi\TableDelete
  • Set delete sort criteria

TableDelete::orderby

(No version information available, might only be in Git)

TableDelete::orderby — Set delete sort criteria

Description

public mysql_xdevapi\TableDelete::orderby(string $orderby_expr): mysql_xdevapi\TableDelete

Set the order options for a result set.

Liste de paramètres

orderby_expr

The sort definition.

Valeurs de retour

A TableDelete object.

Exemples

Exemple #1 mysql_xdevapi\TableDelete::orderBy() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$table->delete()
->where("age = :age")
->bind(['age' => 42])
->orderby("name DESC")
->limit(1)
->execute();

?>


Set delete search condition

  • « TableDelete::orderby
  • mysql_xdevapi\TableInsert »
  • PHP Manual
  • mysql_xdevapi\TableDelete
  • Set delete search condition

TableDelete::where

(No version information available, might only be in Git)

TableDelete::where — Set delete search condition

Description

public mysql_xdevapi\TableDelete::where(string $where_expr): mysql_xdevapi\TableDelete

Sets the search condition to filter.

Liste de paramètres

where_expr

Define the search condition to filter documents or records.

Valeurs de retour

TableDelete object.

Exemples

Exemple #1 mysql_xdevapi\TableDelete::where() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$table->delete()
->where("id = :id")
->bind(['id' => 42])
->limit(1)
->execute();

?>


Classe TableInsert

(PECL mysql-xdevapi >= 8.0.11)

Introduction

Une déclaration pour des opérations d'insertion sur une Table.

Synopsis de la classe

class mysql_xdevapi\TableInsert implements mysql_xdevapi\Executable {
/* Méthodes */
public execute(): mysql_xdevapi\Result
public values(array $row_values): mysql_xdevapi\TableInsert
}

Sommaire

  • TableInsert::__construct — TableInsert constructor
  • TableInsert::execute — Execute insert query
  • TableInsert::values — Add insert row values


TableInsert constructor

  • « mysql_xdevapi\TableInsert
  • TableInsert::execute »
  • PHP Manual
  • mysql_xdevapi\TableInsert
  • TableInsert constructor

TableInsert::__construct

(No version information available, might only be in Git)

TableInsert::__construct — TableInsert constructor

Description

private mysql_xdevapi\TableInsert::__construct()

Initiated by using the insert() method.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Exemples

Exemple #1 mysql_xdevapi\TableInsert::__construct() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$table
->insert("name", "age")
->values(["Suzanne", 31],["Julie", 43])
->execute();
?>


Execute insert query

  • « TableInsert::__construct
  • TableInsert::values »
  • PHP Manual
  • mysql_xdevapi\TableInsert
  • Execute insert query

TableInsert::execute

(No version information available, might only be in Git)

TableInsert::execute — Execute insert query

Description

public mysql_xdevapi\TableInsert::execute(): mysql_xdevapi\Result

Execute the statement.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A Result object.

Exemples

Exemple #1 mysql_xdevapi\TableInsert::execute() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$table
->insert("name", "age")
->values(["Suzanne", 31],["Julie", 43])
->execute();
?>


Add insert row values

  • « TableInsert::execute
  • mysql_xdevapi\TableSelect »
  • PHP Manual
  • mysql_xdevapi\TableInsert
  • Add insert row values

TableInsert::values

(No version information available, might only be in Git)

TableInsert::values — Add insert row values

Description

public mysql_xdevapi\TableInsert::values(array $row_values): mysql_xdevapi\TableInsert

Set the values to be inserted.

Liste de paramètres

row_values

Values (an array) of columns to insert.

Valeurs de retour

A TableInsert object.

Exemples

Exemple #1 mysql_xdevapi\TableInsert::values() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$table
->insert("name", "age")
->values(["Suzanne", 31],["Julie", 43])
->execute();
?>


Classe TableSelect

(PECL mysql-xdevapi >= 8.0.11)

Introduction

Une déclaration pour des opérations de récupèration d'entrées sur une Table.

Synopsis de la classe

class mysql_xdevapi\TableSelect implements mysql_xdevapi\Executable {
/* Méthodes */
public bind(array $placeholder_values): mysql_xdevapi\TableSelect
public execute(): mysql_xdevapi\RowResult
public groupBy(mixed $sort_expr): mysql_xdevapi\TableSelect
public having(string $sort_expr): mysql_xdevapi\TableSelect
public limit(int $rows): mysql_xdevapi\TableSelect
public lockExclusive(int $lock_waiting_option = ?): mysql_xdevapi\TableSelect
public lockShared(int $lock_waiting_option = ?): mysql_xdevapi\TableSelect
public offset(int $position): mysql_xdevapi\TableSelect
public orderby(mixed $sort_expr, mixed ...$sort_exprs): mysql_xdevapi\TableSelect
public where(string $where_expr): mysql_xdevapi\TableSelect
}

Sommaire

  • TableSelect::bind — Bind select query parameters
  • TableSelect::__construct — TableSelect constructor
  • TableSelect::execute — Execute select statement
  • TableSelect::groupBy — Set select grouping criteria
  • TableSelect::having — Set select having condition
  • TableSelect::limit — Limit selected rows
  • TableSelect::lockExclusive — Execute EXCLUSIVE LOCK
  • TableSelect::lockShared — Execute SHARED LOCK
  • TableSelect::offset — Set limit offset
  • TableSelect::orderby — Set select sort criteria
  • TableSelect::where — Set select search condition


Bind select query parameters

  • « mysql_xdevapi\TableSelect
  • TableSelect::__construct »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Bind select query parameters

TableSelect::bind

(No version information available, might only be in Git)

TableSelect::bind — Bind select query parameters

Description

public mysql_xdevapi\TableSelect::bind(array $placeholder_values): mysql_xdevapi\TableSelect

Binds a value to a specific placeholder.

Liste de paramètres

placeholder_values

The name of the placeholder, and the value to bind.

Valeurs de retour

A TableSelect object.

Exemples

Exemple #1 mysql_xdevapi\TableSelect::bind() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$result = $table->select('name','age')
->where('name like :name and age > :age')
->bind(['name' => 'John', 'age' => 42])
->execute();

$row = $result->fetchAll();
print_r($row);
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
)


TableSelect constructor

  • « TableSelect::bind
  • TableSelect::execute »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • TableSelect constructor

TableSelect::__construct

(No version information available, might only be in Git)

TableSelect::__construct — TableSelect constructor

Description

private mysql_xdevapi\TableSelect::__construct()

An object returned by the select() method; use execute() to execute the query.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Exemples

Exemple #1 mysql_xdevapi\TableSelect::__construct() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 33)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$result = $table->select('name','age')
->where('name like :name and age > :age')
->bind(['name' => 'John', 'age' => 42])
->orderBy('age desc')
->execute();

$row = $result->fetchAll();
print_r($row);

?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
)


Execute select statement

  • « TableSelect::__construct
  • TableSelect::groupBy »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Execute select statement

TableSelect::execute

(No version information available, might only be in Git)

TableSelect::execute — Execute select statement

Description

public mysql_xdevapi\TableSelect::execute(): mysql_xdevapi\RowResult

Execute the select statement by chaining it with the execute() method.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A RowResult object.

Exemples

Exemple #1 mysql_xdevapi\TableSelect::execute() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$result = $table->select('name','age')
->where('name like :name and age > :age')
->bind(['name' => 'John', 'age' => 42])
->orderBy('age desc')
->execute();

$row = $result->fetchAll();
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
)


Set select grouping criteria

  • « TableSelect::execute
  • TableSelect::having »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Set select grouping criteria

TableSelect::groupBy

(No version information available, might only be in Git)

TableSelect::groupBy — Set select grouping criteria

Description

public mysql_xdevapi\TableSelect::groupBy(mixed $sort_expr): mysql_xdevapi\TableSelect

Sets a grouping criteria for the result set.

Liste de paramètres

sort_expr

The grouping criteria.

Valeurs de retour

A TableSelect object.

Exemples

Exemple #1 mysql_xdevapi\TableSelect::groupBy() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 42)")->execute();
$session->sql("INSERT INTO addressbook.names values ('Suki', 31)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$result = $table->select('count(*) as count', 'age')
->groupBy('age')->orderBy('age asc')
->execute();

$row = $result->fetchAll();
print_r($row);
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => Array
        (
            [count] => 1
            [age] => 31
        )
    [1] => Array
        (
            [count] => 2
            [age] => 42
        )
)


Set select having condition

  • « TableSelect::groupBy
  • TableSelect::limit »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Set select having condition

TableSelect::having

(No version information available, might only be in Git)

TableSelect::having — Set select having condition

Description

public mysql_xdevapi\TableSelect::having(string $sort_expr): mysql_xdevapi\TableSelect

Sets a condition for records to consider in aggregate function operations.

Liste de paramètres

sort_expr

A condition on the aggregate functions used on the grouping criteria.

Valeurs de retour

A TableSelect object.

Exemples

Exemple #1 mysql_xdevapi\TableSelect::having() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 42)")->execute();
$session->sql("INSERT INTO addressbook.names values ('Suki', 31)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$result = $table->select('count(*) as count', 'age')
->groupBy('age')->orderBy('age asc')
->having('count > 1')
->execute();

$row = $result->fetchAll();
print_r($row);
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => Array
        (
            [count] => 2
            [age] => 42
        )
)


Limit selected rows

  • « TableSelect::having
  • TableSelect::lockExclusive »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Limit selected rows

TableSelect::limit

(No version information available, might only be in Git)

TableSelect::limit — Limit selected rows

Description

public mysql_xdevapi\TableSelect::limit(int $rows): mysql_xdevapi\TableSelect

Sets the maximum number of records or documents to return.

Liste de paramètres

rows

The maximum number of records or documents.

Valeurs de retour

A TableSelect object.

Exemples

Exemple #1 mysql_xdevapi\TableSelect::limit() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$result = $table->select('name', 'age')
->limit(1)
->execute();

$row = $result->fetchAll();
print_r($row);
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
)


Execute EXCLUSIVE LOCK

  • « TableSelect::limit
  • TableSelect::lockShared »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Execute EXCLUSIVE LOCK

TableSelect::lockExclusive

(No version information available, might only be in Git)

TableSelect::lockExclusive — Execute EXCLUSIVE LOCK

Description

public mysql_xdevapi\TableSelect::lockExclusive(int $lock_waiting_option = ?): mysql_xdevapi\TableSelect

Execute a read operation with EXCLUSIVE LOCK. Only one lock can be active at a time.

Liste de paramètres

lock_waiting_option

The optional waiting option that defaults to MYSQLX_LOCK_DEFAULT. Valid values are:

  • MYSQLX_LOCK_DEFAULT

  • MYSQLX_LOCK_NOWAIT

  • MYSQLX_LOCK_SKIP_LOCKED

Valeurs de retour

TableSelect object.

Exemples

Exemple #1 mysql_xdevapi\TableSelect::lockExclusive() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$session->startTransaction();

$result = $table->select('name', 'age')
->lockExclusive(MYSQLX_LOCK_NOWAIT)
->execute();

$session->commit();

$row = $result->fetchAll();
print_r($row);
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
    [1] => Array
        (
            [name] => Sam
            [age] => 42
        )
)


Execute SHARED LOCK

  • « TableSelect::lockExclusive
  • TableSelect::offset »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Execute SHARED LOCK

TableSelect::lockShared

(No version information available, might only be in Git)

TableSelect::lockShared — Execute SHARED LOCK

Description

public mysql_xdevapi\TableSelect::lockShared(int $lock_waiting_option = ?): mysql_xdevapi\TableSelect

Execute a read operation with SHARED LOCK. Only one lock can be active at a time.

Liste de paramètres

lock_waiting_option

The optional waiting option that defaults to MYSQLX_LOCK_DEFAULT. Valid values are:

  • MYSQLX_LOCK_DEFAULT

  • MYSQLX_LOCK_NOWAIT

  • MYSQLX_LOCK_SKIP_LOCKED

Valeurs de retour

A TableSelect object.

Exemples

Exemple #1 mysql_xdevapi\TableSelect::lockShared() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$session->startTransaction();

$result = $table->select('name', 'age')
->lockShared(MYSQLX_LOCK_NOWAIT)
->execute();

$session->commit();

$row = $result->fetchAll();
print_r($row);
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
    [1] => Array
        (
            [name] => Sam
            [age] => 42
        )
)


Set limit offset

  • « TableSelect::lockShared
  • TableSelect::orderby »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Set limit offset

TableSelect::offset

(No version information available, might only be in Git)

TableSelect::offset — Set limit offset

Description

public mysql_xdevapi\TableSelect::offset(int $position): mysql_xdevapi\TableSelect

Skip given number of rows in result.

Liste de paramètres

position

The limit offset.

Valeurs de retour

A TableSelect object.

Exemples

Exemple #1 mysql_xdevapi\TableSelect::offset() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$session->sql("CREATE TABLE addressbook.names(name text, age int)")->execute();
$session->sql("INSERT INTO addressbook.names values ('John', 42), ('Sam', 42)")->execute();

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$result = $table->select('name', 'age')
->limit(1)
->offset(1)
->execute();

$row = $result->fetchAll();
print_r($row);
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => Array
        (
            [name] => Sam
            [age] => 42
        )
)


Set select sort criteria

  • « TableSelect::offset
  • TableSelect::where »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Set select sort criteria

TableSelect::orderby

(No version information available, might only be in Git)

TableSelect::orderby — Set select sort criteria

Description

public mysql_xdevapi\TableSelect::orderby(mixed $sort_expr, mixed ...$sort_exprs): mysql_xdevapi\TableSelect

Sets the order by criteria.

Liste de paramètres

sort_expr

The expressions that define the order by criteria. Can be an array with one or more expressions, or a string.

sort_exprs

Additional sort_expr parameters.

Valeurs de retour

A TableSelect object.

Exemples

Exemple #1 mysql_xdevapi\TableSelect::orderBy() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$result = $table->select('name', 'age')
->orderBy('name desc')
->execute();

$row = $result->fetchAll();
print_r($row);
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => Array
        (
            [name] => Sam
            [age] => 42
        )
    [1] => Array
        (
            [name] => John
            [age] => 42
        )
)


Set select search condition

  • « TableSelect::orderby
  • mysql_xdevapi\TableUpdate »
  • PHP Manual
  • mysql_xdevapi\TableSelect
  • Set select search condition

TableSelect::where

(No version information available, might only be in Git)

TableSelect::where — Set select search condition

Description

public mysql_xdevapi\TableSelect::where(string $where_expr): mysql_xdevapi\TableSelect

Sets the search condition to filter.

Liste de paramètres

where_expr

Define the search condition to filter documents or records.

Valeurs de retour

A TableSelect object.

Exemples

Exemple #1 mysql_xdevapi\TableSelect::where() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$result = $table->select('name','age')
->where('name like :name and age > :age')
->bind(['name' => 'John', 'age' => 42])
->execute();

$row = $result->fetchAll();
print_r($row);
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => Array
        (
            [name] => John
            [age] => 42
        )
)


Classe TableUpdate

(PECL mysql-xdevapi >= 8.0.11)

Introduction

Une déclaration pour des opérations de mises à jours sur une Table.

Synopsis de la classe

class mysql_xdevapi\TableUpdate implements mysql_xdevapi\Executable {
/* Méthodes */
public bind(array $placeholder_values): mysql_xdevapi\TableUpdate
public execute(): mysql_xdevapi\TableUpdate
public limit(int $rows): mysql_xdevapi\TableUpdate
public orderby(mixed $orderby_expr, mixed ...$orderby_exprs): mysql_xdevapi\TableUpdate
public set(string $table_field, string $expression_or_literal): mysql_xdevapi\TableUpdate
public where(string $where_expr): mysql_xdevapi\TableUpdate
}

Sommaire

  • TableUpdate::bind — Bind update query parameters
  • TableUpdate::__construct — TableUpdate constructor
  • TableUpdate::execute — Execute update query
  • TableUpdate::limit — Limit update row count
  • TableUpdate::orderby — Set sorting criteria
  • TableUpdate::set — Add field to be updated
  • TableUpdate::where — Set search filter


Bind update query parameters

  • « mysql_xdevapi\TableUpdate
  • TableUpdate::__construct »
  • PHP Manual
  • mysql_xdevapi\TableUpdate
  • Bind update query parameters

TableUpdate::bind

(No version information available, might only be in Git)

TableUpdate::bind — Bind update query parameters

Description

public mysql_xdevapi\TableUpdate::bind(array $placeholder_values): mysql_xdevapi\TableUpdate

Binds a value to a specific placeholder.

Liste de paramètres

placeholder_values

The name of the placeholder, and the value to bind, defined as a JSON array.

Valeurs de retour

A TableUpdate object.

Exemples

Exemple #1 mysql_xdevapi\TableUpdate::bind() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$table->update()
->set('status', 'admin')
->where('name = :name and age > :age')
->bind(['name' => 'Bernie', 'age' => 2000])
->execute();

?>


TableUpdate constructor

  • « TableUpdate::bind
  • TableUpdate::execute »
  • PHP Manual
  • mysql_xdevapi\TableUpdate
  • TableUpdate constructor

TableUpdate::__construct

(No version information available, might only be in Git)

TableUpdate::__construct — TableUpdate constructor

Description

private mysql_xdevapi\TableUpdate::__construct()

Initiated by using the update() method.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Exemples

Exemple #1 mysql_xdevapi\TableUpdate::__construct() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$res = $table->update()
->set('level', 3)
->where('age > 15 and age < 22')
->limit(4)
->orderby(['age asc','name desc'])
->execute();

?>


Execute update query

  • « TableUpdate::__construct
  • TableUpdate::limit »
  • PHP Manual
  • mysql_xdevapi\TableUpdate
  • Execute update query

TableUpdate::execute

(No version information available, might only be in Git)

TableUpdate::execute — Execute update query

Description

public mysql_xdevapi\TableUpdate::execute(): mysql_xdevapi\TableUpdate

Executes the update statement.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A TableUpdate object.

Exemples

Exemple #1 mysql_xdevapi\TableUpdate::execute() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$res = $table->update()
->set('level', 3)
->where('age > 15 and age < 22')
->limit(4)
->orderby(['age asc','name desc'])
->execute();

?>


Limit update row count

  • « TableUpdate::execute
  • TableUpdate::orderby »
  • PHP Manual
  • mysql_xdevapi\TableUpdate
  • Limit update row count

TableUpdate::limit

(No version information available, might only be in Git)

TableUpdate::limit — Limit update row count

Description

public mysql_xdevapi\TableUpdate::limit(int $rows): mysql_xdevapi\TableUpdate

Set the maximum number of records or documents update.

Liste de paramètres

rows

The maximum number of records or documents to update.

Valeurs de retour

A TableUpdate object.

Exemples

Exemple #1 mysql_xdevapi\TableUpdate::limit() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$res = $table->update()
->set('level', 3)
->where('age > 15 and age < 22')
->limit(4)
->orderby(['age asc','name desc'])
->execute();

?>


Set sorting criteria

  • « TableUpdate::limit
  • TableUpdate::set »
  • PHP Manual
  • mysql_xdevapi\TableUpdate
  • Set sorting criteria

TableUpdate::orderby

(No version information available, might only be in Git)

TableUpdate::orderby — Set sorting criteria

Description

public mysql_xdevapi\TableUpdate::orderby(mixed $orderby_expr, mixed ...$orderby_exprs): mysql_xdevapi\TableUpdate

Sets the sorting criteria.

Liste de paramètres

orderby_expr

The expressions that define the order by criteria. Can be an array with one or more expressions, or a string.

orderby_exprs

Additional sort_expr parameters.

Valeurs de retour

TableUpdate object.

Exemples

Exemple #1 mysql_xdevapi\TableUpdate::orderby() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$res = $table->update()
->set('level', 3)
->where('age > 15 and age < 22')
->limit(4)
->orderby(['age asc','name desc'])
->execute();
?>


Add field to be updated

  • « TableUpdate::orderby
  • TableUpdate::where »
  • PHP Manual
  • mysql_xdevapi\TableUpdate
  • Add field to be updated

TableUpdate::set

(No version information available, might only be in Git)

TableUpdate::set — Add field to be updated

Description

public mysql_xdevapi\TableUpdate::set(string $table_field, string $expression_or_literal): mysql_xdevapi\TableUpdate

Updates the column value on records in a table.

Liste de paramètres

table_field

The column name to be updated.

expression_or_literal

The value to be set on the specified column.

Valeurs de retour

TableUpdate object.

Exemples

Exemple #1 mysql_xdevapi\TableUpdate::set() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$res = $table->update()
->set('level', 3)
->where('age > 15 and age < 22')
->limit(4)
->orderby(['age asc','name desc'])
->execute();

?>


Set search filter

  • « TableUpdate::set
  • mysql_xdevapi\Warning »
  • PHP Manual
  • mysql_xdevapi\TableUpdate
  • Set search filter

TableUpdate::where

(No version information available, might only be in Git)

TableUpdate::where — Set search filter

Description

public mysql_xdevapi\TableUpdate::where(string $where_expr): mysql_xdevapi\TableUpdate

Set the search condition to filter.

Liste de paramètres

where_expr

The search condition to filter documents or records.

Valeurs de retour

A TableUpdate object.

Exemples

Exemple #1 mysql_xdevapi\TableUpdate::where() example

<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");

$schema = $session->getSchema("addressbook");
$table = $schema->getTable("names");

$res = $table->update()
->set('level', 3)
->where('age > 15 and age < 22')
->limit(4)
->orderby(['age asc','name desc'])
->execute();

?>


Classe Warning

(PECL mysql-xdevapi >= 8.0.11)

Introduction

Synopsis de la classe

class mysql_xdevapi\Warning {
/* Propriétés */
public $message;
public $level;
public $code;
/* Constructeur */
private __construct()
}

Propriétés

message

level

code

Sommaire

  • Warning::__construct — Warning constructor


Warning constructor

  • « mysql_xdevapi\Warning
  • MySQL (Original) »
  • PHP Manual
  • mysql_xdevapi\Warning
  • Warning constructor

Warning::__construct

(No version information available, might only be in Git)

Warning::__construct — Warning constructor

Description

private mysql_xdevapi\Warning::__construct()

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Exemples

Exemple #1 mysql_xdevapi\Warning::__construct() example

<?php

/* ... */

?>


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. À 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/.


Pré-requis

Afin de pouvoir les utiliser, vous devez compiler PHP avec le support 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. Alternatives à cette fonction :


Installation

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. Alternatives à cette fonction :

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 bibliothè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 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" | INI_SYSTEM |
mysql.allow_persistent | "1" | INI_SYSTEM |
mysql.max_persistent | "-1" | INI_SYSTEM |
mysql.max_links | "-1" | INI_SYSTEM |
mysql.trace_mode | "Off" | INI_ALL |
mysql.default_port | NULL | INI_ALL |
mysql.default_socket | NULL | INI_ALL |
mysql.default_host | NULL | INI_ALL |
mysql.default_user | NULL | INI_ALL |
mysql.default_password | NULL | INI_ALL |
mysql.connect_timeout | "60" | INI_ALL |
Pour plus de détails sur les modes 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 int

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 int

Le nombre maximum de connexions persistantes aux bases de données MySQL, par processus.

mysql.max_links int

Le nombre maximum de connexions aux bases de données MySQL, y compris les connexions persistantes, par processus.

mysql.trace_mode bool

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 int

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.

Modification sur les fonctions existantes

La liste suivante est une compilation des modifications effectuées sur les fonctions de l'extension ext/mysql.

Version Fonction Description


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.

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. Alternatives à cette fonction :

  • mysqli_affected_rows()
  • PDOStatement::rowCount()

Description

mysql_affected_rows(resource $link_identifier = NULL): int

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 de niveau E_WARNING sera 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());
?>

Résultat de l'exemple ci-dessus est 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");
?>

Résultat de l'exemple ci-dessus est 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. Alternatives à cette fonction :

  • mysqli_character_set_name()

Description

mysql_client_encoding(resource $link_identifier = NULL): string

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 de niveau E_WARNING sera 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. Alternatives à cette fonction :

  • mysqli_close()
  • PDO : Assigne la valeur null à l'objet PDO

Description

mysql_close(resource $link_identifier = NULL): bool

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 façon non persistantes 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é, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si aucune connexion n'est trouvée ou é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. Alternatives à cette fonction :

  • mysqli_connect()
  • PDO::__construct()

Description

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
): resource|false

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.

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, le chemin correct doit être défini comme mysql.default_host dans php.ini et le champ serveur laissé 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:

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. Alternatives à cette fonction :

  • mysqli_query()
  • PDO::query()

Description

mysql_create_db(string $database_name, resource $link_identifier = NULL): bool

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 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 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";
}
?>

Résultat de l'exemple ci-dessus est 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. Alternatives à cette fonction :

  • mysqli_data_seek()
  • PDO::FETCH_ORI_ABS

Description

mysql_data_seek(resource $result, int $row_number): bool

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. Alternatives à cette fonction :

  • Requête : SELECT DATABASE()

Description

mysql_db_name(resource $result, int $row, mixed $field = NULL): string

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.

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. Alternatives à cette fonction :

  • mysqli_select_db() puis la requête
  • PDO::__construct()

Description

mysql_db_query(string $database, string $query, resource $link_identifier = NULL): resource|bool

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 de niveau E_WARNING sera 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.

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. Alternatives à cette fonction :

  • Exécute une requête DROP DATABASE

Description

mysql_drop_db(string $database_name, resource $link_identifier = NULL): bool

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 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_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. Alternatives à cette fonction :

  • mysqli_errno()
  • PDO::errorCode()

Description

mysql_errno(resource $link_identifier = NULL): int

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 de niveau E_WARNING sera 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";
}
?>

Résultat de l'exemple ci-dessus est 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. Alternatives à cette fonction :

  • mysqli_error()
  • PDO::errorInfo()

Description

mysql_error(resource $link_identifier = NULL): string

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 de niveau E_WARNING sera 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";
?>

Résultat de l'exemple ci-dessus est 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. Alternatives à cette fonction :

  • mysqli_escape_string()
  • PDO::quote()

Description

mysql_escape_string(string $unescaped_string): 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.

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


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. Alternatives à cette fonction :

  • mysqli_fetch_array()
  • PDOStatement::fetch()

Description

mysql_fetch_array(resource $result, int $result_type = MYSQL_BOTH): array

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. Alternatives à cette fonction :

  • mysqli_fetch_assoc()
  • PDOStatement::fetch() avec mode en tant que PDO::FETCH_ASSOC

Description

mysql_fetch_assoc(resource $result): array

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. Alternatives à cette fonction :

  • mysqli_fetch_field()
  • PDOStatement::getColumnMeta()

Description

mysql_fetch_field(resource $result, int $field_offset = 0): object

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. Alternatives à cette fonction :

  • mysqli_fetch_lengths()
  • PDOStatement::getColumnMeta()

Description

mysql_fetch_lengths(resource $result): array|false

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);
?>

Résultat de l'exemple ci-dessus est 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. Alternatives à cette fonction :

  • mysqli_fetch_object()
  • PDOStatement::fetch() avec mode en tant que PDO::FETCH_OBJ

Description

mysql_fetch_object(resource $result, string $class_name = ?, array $params = ?): object

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. Alternatives à cette fonction :

  • mysqli_fetch_row()
  • PDOStatement::fetch() avec mode en tant que PDO::FETCH_NUM

Description

mysql_fetch_row(resource $result): array

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. Alternatives à cette fonction :

  • mysqli_fetch_field_direct() [flags]
  • PDOStatement::getColumnMeta() [flags]

Description

mysql_field_flags(resource $result, int $field_offset): string|false

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 de niveau E_WARNING sera 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));
?>

Résultat de l'exemple ci-dessus est 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. Alternatives à cette fonction :

  • mysqli_fetch_field_direct() [length]
  • PDOStatement::getColumnMeta() [len]

Description

mysql_field_len(resource $result, int $field_offset): int|false

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 de niveau E_WARNING sera 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. Alternatives à cette fonction :

  • mysqli_fetch_field_direct() [name] ou [orgname]
  • PDOStatement::getColumnMeta() [name]

Description

mysql_field_name(resource $result, int $field_offset): string|false

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 de niveau E_WARNING sera 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. Alternatives à cette fonction :

  • mysqli_field_seek()
  • PDOStatement::fetch() utilisant le paramètre cursor_orientation et le paramètre offset

Description

mysql_field_seek(resource $result, int $field_offset): bool

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 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.

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. Alternatives à cette fonction :

  • mysqli_fetch_field_direct() [table] ou [orgtable]
  • PDOStatement::getColumnMeta() [table]

Description

mysql_field_table(resource $result, int $field_offset): string

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 de niveau E_WARNING sera 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. Alternatives à cette fonction :

  • mysqli_fetch_field_direct() [type]
  • PDOStatement::getColumnMeta() [driver:decl_type] ou [pdo_type]

Description

mysql_field_type(resource $result, int $field_offset): string

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 de niveau E_WARNING sera 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();
?>

Résultat de l'exemple ci-dessus est 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. Alternatives à cette fonction :

  • mysqli_free_result()
  • Assignez la valeur null à l'objet PDO, ou PDOStatement::closeCursor()

Description

mysql_free_result(resource $result): bool

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. Alternatives à cette fonction :

  • mysqli_get_client_info()
  • PDOStatement::getAttribute() avec attribute en tant que PDO::ATTR_CLIENT_VERSION

Description

mysql_get_client_info(): string

mysql_get_client_info() retourne une chaîne qui représente le numéro de version du client utilisé par PHP.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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());
?>

Résultat de l'exemple ci-dessus est 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. Alternatives à cette fonction :

  • mysqli_get_host_info()
  • PDOStatement::getAttribute() avec attribute en tant que PDO::ATTR_CONNECTION_STATUS

Description

mysql_get_host_info(resource $link_identifier = NULL): string|false

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 de niveau E_WARNING sera 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());
?>

Résultat de l'exemple ci-dessus est 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. Alternatives à cette fonction :

  • mysqli_get_proto_info()

Description

mysql_get_proto_info(resource $link_identifier = NULL): int|false

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 de niveau E_WARNING sera 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());
?>

Résultat de l'exemple ci-dessus est 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. Alternatives à cette fonction :

  • mysqli_get_server_info()
  • PDOStatement::getAttribute() avec attribute en tant que PDO::ATTR_SERVER_VERSION

Description

mysql_get_server_info(resource $link_identifier = NULL): string|false

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 de niveau E_WARNING sera 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());
?>

Résultat de l'exemple ci-dessus est 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. Alternatives à cette fonction :

  • mysqli_info()

Description

mysql_info(resource $link_identifier = NULL): string

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 de niveau E_WARNING sera 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. Alternatives à cette fonction :

  • mysqli_insert_id()
  • PDO::lastInsertId()

Description

mysql_insert_id(resource $link_identifier = NULL): int

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 de niveau E_WARNING sera 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. Alternatives à cette fonction :

  • Requête SQL : SHOW DATABASES

Description

mysql_list_dbs(resource $link_identifier = NULL): resource

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 de niveau E_WARNING sera 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";
}
?>

Résultat de l'exemple ci-dessus est 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. Alternatives à cette fonction :

  • Requête SQL : SHOW COLUMNS FROM sometable

Description

mysql_list_fields(string $database_name, string $table_name, resource $link_identifier = NULL): resource

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 de niveau E_WARNING sera 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);
}
}
?>

Résultat de l'exemple ci-dessus est 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. Alternatives à cette fonction :

  • mysqli_thread_id()

Description

mysql_list_processes(resource $link_identifier = NULL): resource|false

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 de niveau E_WARNING sera 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);
?>

Résultat de l'exemple ci-dessus est 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. Alternatives à cette fonction :

  • Requête SQL : SHOW TABLES FROM dbname

Description

mysql_list_tables(string $database, resource $link_identifier = NULL): resource|false

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 de niveau E_WARNING sera 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. Alternatives à cette fonction :

  • mysqli_num_fields()
  • PDOStatement::columnCount()

Description

mysql_num_fields(resource $result): int|false

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. Alternatives à cette fonction :

  • mysqli_num_rows()
  • mysqli_stmt_num_rows()
  • PDOStatement::rowCount()

Description

mysql_num_rows(resource $result): int|false

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. Alternatives à cette fonction :

  • mysqli_connect() avec le préfixe d'hôte p:
  • PDO::__construct() avec PDO::ATTR_PERSISTENT comme option du driver

Description

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
): resource

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.

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.

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. Alternatives à cette fonction :

  • mysqli_ping()

Description

mysql_ping(resource $link_identifier = NULL): bool

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 de niveau E_WARNING sera 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. Alternatives à cette fonction :

  • mysqli_query()
  • PDO::query()

Description

mysql_query(string $query, resource $link_identifier = NULL): mixed

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 de niveau E_WARNING sera 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. Alternatives à cette fonction :

  • mysqli_real_escape_string()
  • PDO::quote()

Description

mysql_real_escape_string(string $unescaped_string, resource $link_identifier = NULL): string

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 antislash 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 de niveau E_WARNING sera 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);
?>

Résultat de l'exemple ci-dessus est 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 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


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. Alternatives à cette fonction :

  • mysqli_data_seek() en conjonction de
mysqli_field_seek() et
mysqli_fetch_field()
  • PDOStatement::fetchColumn()

Description

mysql_result(resource $result, int $row, mixed $field = 0): string

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. Alternatives à cette fonction :

  • mysqli_select_db()
  • PDO::__construct() (fait parti du dsn)

Description

mysql_select_db(string $database_name, resource $link_identifier = NULL): bool

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 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_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. Alternatives à cette fonction :

  • mysqli_set_charset()
  • PDO: Ajoute le charset à la chaîne de connexion, par exemple charset=utf8

Description

mysql_set_charset(string $charset, resource $link_identifier = NULL): bool

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 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.

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. Alternatives à cette fonction :

  • mysqli_stat()
  • PDOStatement::getAttribute() avec attribute en tant que PDO::ATTR_SERVER_INFO

Description

mysql_stat(resource $link_identifier = NULL): string

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 de niveau E_WARNING sera 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);
?>

Résultat de l'exemple ci-dessus est 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";
}
?>

Résultat de l'exemple ci-dessus est 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. Alternatives à cette fonction :

  • Requête SQL : SHOW TABLES

Description

mysql_tablename(resource $result, int $i): string|false

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().

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. Alternatives à cette fonction :

  • mysqli_thread_id()

Description

mysql_thread_id(resource $link_identifier = NULL): int|false

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 de niveau E_WARNING sera 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);
}
?>

Résultat de l'exemple ci-dessus est 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
  • Mysqlnd »
  • 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. Alternatives à cette fonction :

  • Voir : les requêtes mises ou non en mémoire tampon

Description

mysql_unbuffered_query(string $query, resource $link_identifier = NULL): resource

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 de niveau E_WARNING sera 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


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 cœur 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_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.

Le support du protocole compressé

Le pilote natif MySQL supporte le protocole client/serveur MySQL compressé. L'extension ext/mysqli si configurée pour utiliser le pilote natif MySQL peut aussi tirer avantage de cette fonctionnalité. Il est à noter que PDO_MYSQL ne supporte PAS la compression lorsqu'utilisé avec mysqlnd.

Support des pipes nommés

Les pipes nommés peuvent être utilisé pour se connecter sous Windows.


Installation

Installation sous Unix

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, 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 fonctionnalité OpenSSL de PHP, et l'activation de la connexion à MySQL 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" | INI_SYSTEM |
mysqlnd.collect_memory_statistics | "0" | INI_SYSTEM |
mysqlnd.debug | "" | INI_SYSTEM |
mysqlnd.log_mask | 0 | INI_ALL |
mysqlnd.mempool_default_size | 16000 | INI_ALL |
mysqlnd.net_read_timeout | "86400" | INI_ALL | Avant PHP 7.2.0 la valeur par défaut était "31536000" et la variabilité était INI_SYSTEM
mysqlnd.net_cmd_buffer_size | "4096" | INI_SYSTEM |
mysqlnd.net_read_buffer_size | "32768" | INI_SYSTEM |
mysqlnd.sha256_server_public_key | "" | INI_PERDIR |
mysqlnd.trace_alloc | "" | INI_SYSTEM |
mysqlnd.fetch_data_copy | 0 | INI_ALL | Supprimé à partir de PHP 8.1.0
Pour plus de détails sur les modes 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 bool

Active la collecte de différentes statistiques du client auxquelles vous pouvez accéder via mysqli_get_client_stats(), mysqli_get_connection_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 bool

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(), 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 int

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 int

Taille par défaut de la file d'attente mémoire mysqlnd, utilisée par les jeux de résultats.

mysqlnd.net_read_timeout int

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 24 * 3600 secondes (1 jour) 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 int

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 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 int

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.trace_alloc string

mysqlnd.fetch_data_copy int

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.

Note: Supprimé à partir de PHP 8.1.0


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 deux sortes :

  • Les statistiques client

  • Les statistiques de connexion

Si vous utilisez l'extension mysqli, ces statistiques sont disponibles via deux appels d'API :

  • mysqli_get_client_stats()

  • mysqli_get_connection_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.

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() et mysqli_get_connection_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émentera 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();
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.

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. 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 mettent 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 tout 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 4096 octets, qui est la valeur la plus petite possible. 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).

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.

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 fonctionnalité 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. 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.

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 :

Schéma 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 multithread, 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
Type | 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 physique.

Statut du destructeur
Type | 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.


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;
}


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 Transparent Application Failover (TAF) Support
  • 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 multidimensionnel
    • 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
    • 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_register_taf_callback — Register a user-defined callback function for Oracle Database TAF
    • 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_call_timeout — Sets a millisecond timeout for database calls
    • oci_set_client_identifier — Définit l'identifiant du client
    • oci_set_client_info — Définit l'information concernant le client
    • oci_set_db_operation — Sets the database operation
    • 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_lob — Sets the amount of data prefetched for each CLOB or BLOB.
    • 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_unregister_taf_callback — Unregister a user-defined callback function for Oracle Database TAF
  • OCICollection — La classe OCICollection
    • OCICollection::append — Ajoute un élément à une collection Oracle
    • OCICollection::assign — Assigne une valeur à une collection depuis une autre collection Oracle
    • OCICollection::assignElem — Assigne une valeur à un élément d'une collection Oracle
    • OCICollection::free — Libère les ressources associées avec un objet de collection
    • OCICollection::getElem — Retourne la valeur d'un élément d'une collection Oracle
    • OCICollection::max — Retourne le nombre maximal de valeurs d'une collection Oracle
    • OCICollection::size — Retourne la taille d'une collection Oracle
    • OCICollection::trim — Supprime les derniers éléments d'une collection Oracle
  • OCILob — La classe OCILob
    • OCILob::append — Ajoute des données à un LOB Oracle
    • OCILob::close — Ferme un LOB Oracle
    • OCILob::eof — Test la fin du LOB Oracle
    • OCILob::erase — Écrase une partie d'un LOB Oracle
    • OCILob::export — Exporte un LOB Oracle dans un fichier
    • OCILob::flush — Écrit les LOB Oracle sur le disque
    • OCILob::free — Détruit un pointeur de LOB Oracle
    • OCILob::getBuffering — Retourne l'état de bufferisation LOB d'Oracle
    • OCILob::import — Importe un fichier dans LOB Oracle
    • OCILob::load — Retourne le contenu d'un LOB
    • OCILob::read — Lit une partie d'un LOB Oracle
    • OCILob::rewind — Ramène le pointeur interne d'un LOB Oracle au début
    • OCILob::save — Sauvegarde des données dans un LOB Oracle
    • OCILob::saveFile — Alias de OCILob::import
    • OCILob::seek — Déplace le pointeur interne d'un LOB Oracle
    • OCILob::setBuffering — Active/désactive la bufferisation des LOB Oracle
    • OCILob::size — Retourne la taille d'un LOB Oracle
    • OCILob::tell — Retourne la position courante du pointeur de LOB
    • OCILob::truncate — Tronque un LOB Oracle
    • OCILob::write — Écrit des données dans un LOB Oracle
    • OCILob::writeTemporary — Écrit un LOB Oracle temporaire
    • OCILob::writeToFile — Alias de OCILob::export
  • Fonctions et alias OCI8 obsolètes
    • oci_internal_debug — Enables or disables internal debug output
    • ocibindbyname — Alias de oci_bind_by_name
    • ocicancel — Alias de oci_cancel
    • ocicloselob — Alias de OCILob::close
    • ocicollappend — Alias de OCICollection::append
    • ocicollassign — Alias de OCICollection::assign
    • ocicollassignelem — Alias de OCICollection::assignElem
    • ocicollgetelem — Alias de OCICollection::getElem
    • ocicollmax — Alias de OCICollection::max
    • ocicollsize — Alias de OCICollection::size
    • ocicolltrim — Alias de OCICollection::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 OCICollection::free
    • ocifreecursor — Alias de oci_free_statement
    • ocifreedesc — Alias de OCILob::free
    • ocifreestatement — Alias de oci_free_statement
    • ociinternaldebug — Alias de oci_internal_debug
    • ociloadlob — Alias de OCILob::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 OCILob::save
    • ocisavelobfile — Alias de OCILob::import
    • ociserverversion — Alias de oci_server_version
    • ocisetprefetch — Alias de oci_set_prefetch
    • ocistatementtype — Alias de oci_statement_type
    • ociwritelobtofile — Alias de OCILob::export
    • ociwritetemporarylob — Alias de OCILob::writeTemporary


Introduction

Ces fonctions vous permettent d'accéder aux bases de données Oracle. 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

OCI8 3.0 est incluse avec PHP 8. Elle est également disponible depuis » PECL. Pour PHP 7, utilisez OCI8 2.2 depuis » PECL. OCI8 requiert Oracle 10g ou bibliothèques cliente ultérieures.

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 et en-têtes 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é ZIP Basic ou Basic Light de Oracle Instant Client, le paquet RPM, ou le paquet DMG. Lors de la compilation de OCI8 depuis le code source, installez aussi le SDK de Instant Client.

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.

Note:

L'interopérabilité standard du réseau client-serveur d'Oracle permet des connexions entre différentes versions de Oracle Client et Oracle Database. Pour des configurations certifiées voir la documentation Oracle Support ID ID 207303.1. En résumé, Oracle Client 19, 18 et 12.2 peuvent se connecter à Oracle Database 11.2 ou supérieur. Oracle Client 12.1 peut se connecter à Oracle Database 10.2 ou supérieur. Oracle Client 11.2 peut se connecter à Oracle Database 9.2 ou supérieur.

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.

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 19, alors PHP doit aussi être déployé et exécuté avec les bibliothèques Oracle 19. 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 d'OCI8 depuis PECL en utilisant la commande pecl

L'extension OCI8 peut être ajoutée à une installation PHP existante en utilisant le référentiel » PECL.

  • Si vous êtes derrière un pare-feu, définissez le proxy de PEAR, par exemple :

    pear config-set http_proxy http://my-proxy.example.com:80/

  • Exécutez :

    pecl install oci8

    Pour PHP 7, utilisez pecl install oci8-2.2.0.

  • Lorsqu'on vous le demande, saisissez la valeur de $ORACLE_HOME ou instantclient,/chemin/vers/le/répertoire/instant/client/lib.

    Remarque : Ne saisissez pas de noms de variables tels que $ORACLE_HOME ou $HOME car pecl ne les développera pas. Au lieu de cela, saisissez un chemin développé, par exemple /opt/oracle/product/19c/dbhome_1 ou instantclient,/Users/monnom/Téléchargements/instantclient_19_8.

  • Si vous obtenez une erreur oci8_dtrace_gen.h: Aucun fichier ou répertoire de ce type, cela signifie que PHP a été compilé avec DTrace Dynamic Tracing activé. Installez en utilisant la commande :

    $ export PHP_DTRACE=yes
$ pecl install oci8

  • Modifiez votre fichier php.ini et ajoutez la ligne :

    extension=oci8.so

    Assurez-vous que la directive php.ini extension_dir est définie sur le répertoire dans lequel oci8.so a été installé.

Installation d'OCI8 depuis PECL en utilisant phpize

Pour installer OCI8 sur une installation PHP existante lorsque la commande pecl n'est pas disponible, téléchargez manuellement le package OCI8 » PECL, par exemple oci8-3.0.0.tgz.

  • Extraire le package :

    tar -zxf oci8-3.0.0.tgz
cd oci8-3.0.0

  • Préparer le package :

    phpize

  • Configurer le package en utilisant soit $ORACLE_HOME, soit Instant Client.

    ./configure -with-oci8=shared,$ORACLE_HOME

    or

    ./configure -with-oci8=shared,instantclient,/path/to/instant/client/lib

  • Installer le package :

    make install

  • Si vous obtenez une erreur oci8_dtrace_gen.h: Aucun fichier ou répertoire de ce type, cela signifie que PHP a été compilé avec DTrace Dynamic Tracing activé. Exécutez à nouveau les commandes configure et make après avoir défini cette variable d'environnement :

    $ export PHP_DTRACE=yes

  • Modifiez votre fichier php.ini et ajoutez la ligne :

    extension=oci8.so

    Assurez-vous que la directive php.ini extension_dir est configurée sur le répertoire dans lequel oci8.so a été installé.

Installation d'OCI8 en tant qu'extension partagée lors de la compilation de PHP

Si vous compilez PHP à partir du code source, l'option de configuration shared peut être utilisée pour construire OCI8 en tant que bibliothèque partagée qui peut être chargée dynamiquement dans PHP. La construction d'une extension partagée permet à OCI8 d'être facilement mis à jour sans avoir d'impact sur le reste de PHP.

Configurez OCI8 en utilisant l'une des options de configuration suivantes.

  • Si vous utilisez les bibliothèques gratuites » Oracle Instant Client, faites ce qui suit :

    ./configure --with-oci8=shared,instantclient,/path/to/instant/client/lib

    Si Instant Client 12.2 (ou une version antérieure) est installé à partir de fichiers ZIP, 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 basée sur RPM d'Oracle Instant Client, 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/19.9/client/lib

  • Si vous utilisez une base de données Oracle ou une installation complète d'Oracle Client, procédez comme suit :

    ./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é) sous le répertoire $ORACLE_HOME. Avec Oracle 10gR2, vous devrez peut-être exécuter l'utilitaire $ORACLE_HOME/install/changePerm.sh pour donner accès au répertoire.

Après la configuration, suivez la procédure habituelle de compilation de PHP, par exemple make install. L'extension partagée OCI8 oci8.so sera créée. Il peut être nécessaire de la déplacer manuellement dans le répertoire des extensions PHP, spécifié par l'option extension_dir dans votre fichier php.ini.

Pour terminer l'installation d'OCI8, modifiez le fichier php.ini et ajoutez la ligne :

extension=oci8.so

Installation d'OCI8 en tant qu'extension statiquement compilée lors de la compilation de PHP

Si vous compilez PHP à partir du code source, vous pouvez configurer PHP pour inclure OCI8 en tant qu'extension statique en utilisant l'une des options de configuration suivantes.

  • Si vous utilisez Oracle Instant Client, faites ce qui suit :

    ./configure --with-oci8=instantclient,/path/to/instant/client/lib

  • Si vous utilisez une base de données Oracle ou une installation complète du client Oracle, faites ce qui suit :

    ./configure --with-oci8=$ORACLE_HOME

Après la configuration, suivez la procédure habituelle de construction de PHP, par exemple make install. Après une compilation réussie, vous n'avez pas besoin d'ajouter oci8.so à votre php.ini. Aucune étape supplémentaire de construction n'est requise.

Installation d'OCI8 sous Windows

La bibliothèque OCI8 peut être ajoutée à une installation existante de PHP en utilisant les DLL du référentiel » PECL ou les bibliothèques situées dans le répertoire ext de votre installation PHP.

Avec les bibliothèques Oracle 12c (ou ultérieures), décommentez l'une des lignes suivantes dans votre fichier php.ini 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 fonctionnalité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 LIBPATH, ou SHLIB_PATH) comme le chemin vers les bibliothèques Oracle, par exemple $ORACLE_HOME/lib ou /usr/lib/oracle/19/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_PRELOADau lieu de LD_LIBRARY_PATH..
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 /usr/lib/oracle/VERSION/client/lib/network/admin, $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. Si vous tournez PHP sur la même machine que la base de donnée Oracle, vous pouvez faire :

    $ . /usr/local/bin/oraenv

Avec Oracle 11gR2 XE, faîtes :

    $ . /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh

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 OCI8
Nom | Défaut | Modifiable | Historique
oci8.connection_class | "" | INI_ALL |
oci8.default_prefetch | "100" | INI_SYSTEM |
oci8.events | Off | INI_SYSTEM |
oci8.max_persistent | "-1" | INI_SYSTEM |
oci8.old_oci_close_semantics | Off | INI_SYSTEM | Obsolète à partir de PHP 8.1.0.
oci8.persistent_timeout | "-1" | INI_SYSTEM |
oci8.ping_interval | "60" | INI_SYSTEM |
oci8.prefetch_lob_size | "0" | INI_SYSTEM | Disponible à partir de PECL OCI8 3.2.
oci8.privileged_connect | Off | INI_SYSTEM |
oci8.statement_cache_size | "20" | INI_SYSTEM |

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.

Lors de l'utilisation de Orable 12c ou ultérieur, 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 bool

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 nœud 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 bool

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.

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.prefetch_lob_size int

Il s'agit d'un paramètre de réglage affectant la mise en mémoire tampon interne des données LOB. L'augmentation de cette valeur peut améliorer les performances de récupération des petits LOB en réduisant les allers-retours entre PHP et la base de données. L'utilisation de la mémoire changera.

La valeur affecte les LOB renvoyés en tant qu'instances OCILob ainsi que ceux renvoyés à l'aide de OCI_RETURN_LOBS.

La valeur peut être définie par instruction avec oci_set_prefetch_lob() avant l'exécution de l'instruction.

Note: À utiliser avec Oracle Database 12.2 ou ultérieur.

oci8.privileged_connect bool

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.
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 OCILob::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.
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 OCILob::seek pour définir la position.
OCI_SEEK_END | Utilisé avec OCILob::seek pour définir la position.
OCI_SEEK_SET | Utilisé avec OCILob::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 OCILob::writeTemporary pour indiquer explicitement qu'un BLOB temporaire doit être créé.
OCI_TEMP_CLOB | Utilisé avec OCILob::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.
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);
$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 de base de données 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 FPM 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.

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 le comportement historique.

Le ré-établissement automatique des connexions persistantes PHP après le redémarrage d'un processus Apache ou FPM fait que les triggers LOGON sont uniquement recommandés pour définir les attributs de session et non les requêtes de connexions utilisateurs par application.

Pool de connexion DRCP

PHP 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, installez l'extension OCI8 et les bibliothèques Oracle 11g (ou ulté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 Client libraries 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 multithreadés). Reportez-vous à la documentation Oracle pour plus d'informations.

Note:

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.


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 Transparent Application Failover (TAF) Support

TAF is an Oracle Database feature that provides high availability. It enables PHP OCI8 applications to automatically reconnect to a preconfigured database when database connectivity fails due to instance or network failure.

In a configured Oracle Database system, TAF occurs when the PHP application detects that the database instance is down or unreachable. It establishes a connection to another node in an Oracle » RAC configuration, a hot standby database, or the same database instance itself. See » Oracle Call Interface Programmer's Guide for more information about OCI TAF.

An application callback can be registered with oci_register_taf_callback(). During failover, normal application processing stops and the registered callback is invoked. The callback notifies the application of the failover events. If the failover succeeds, normal processing will be resumed. If the failover aborts, any following database operations in the application will fail due to no connection being available.

When a connection fails over to another database, the callback can reset any necessary connection state, for example replaying any necessary ALTER SESSION commands if the database service did not have -failover_restore enabled.

An application callback can be removed by calling oci_unregister_taf_callback().

Configuring Transparent Application Failover

TAF can be configured on the PHP OCI8 side or in the database configuration. If both are configured, database-side settings take precedence.

Configure TAF in PHP OCI8 (the client side) by including the FAILOVER_MODE parameter in the CONNECT_DATA portion of a connect descriptor. See Configuring Transparent Application Failover in » Oracle Database Net Services Administrator's Guide for more information about client side configuration of TAF.

An example tnsnames.ora to configure TAF reconnecting to the same database instance:

    ORCL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
        (CONNECT_DATA =
          (SERVICE_NAME = orclpdb1)
          (FAILOVER_MODE =
            (TYPE = SELECT)
            (METHOD = BASIC)
            (RETRIES = 20)
            (DELAY = 15))))

Alternatively configure TAF on the database side by modifying the target service with » srvctl (for RAC) or the » DBMS_SERVICE.MODIFY_SERVICE packaged procedure (for single instance databases).

Using TAF Callbacks in OCI8

A TAF callback is an application function that can be registered to be called during failover. It is called several times while re-establishing the application's connection.

Callback first occurs when a loss of connection is detected. This allows the application to act accordingly for the upcoming delay of the failover. If the failover is successful, the callback is invoked after connection is re-established and usable. At this time, the application can resynchronize session settings and take actions such as informing the user that failover occurred. If failover is unsuccessful, a callback occurs to inform the application that a failover did not take place and the connection is unusable.

The interface of a TAF user-defined callback function is as follows:

userCallbackFn(resource $connection, int $event, int $type): int

connection

The Oracle connection on which the TAF callback was registered via oci_register_taf_callback(). The connection is not valid until the failover completes successfully.

event

The failover event indicates the current status of the failover.

  • OCI_FO_BEGIN indicates that failover has detected a lost connection and failover is starting.

  • OCI_FO_END indicates successful completion of failover.

  • OCI_FO_ABORT indicates that failover was unsuccessful, and there is no option of retrying.

  • OCI_FO_ERROR also indicates that failover was unsuccessful, but it gives the application the opportunity to handle the error and return OCI_FO_RETRY to retry failover.

  • OCI_FO_REAUTH indicates that an Oracle user has been re-authenticated.

type

The failover type. This lets the callback know what type of failover the application has requested. The usual values are as follows:

  • OCI_FO_SESSION indicates that the user has requested only session failover. For example, if a user's connection is lost, then a new session is automatically created for the user on the backup. This type of failover does not attempt to recover SELECTs.

  • OCI_FO_SELECT indicates that the user has requested SELECT failover as well. It allows users with open cursors to continue fetching from them after failure.

return value

  • 0 indicates the failover steps should continue normally.

  • OCI_FO_RETRY indicates that the failover should be attempted again by Oracle. In case of an error while failing over to a new connection, TAF is able to retry the failover. Typically, the application code should sleep for a while before returning OCI_FO_RETRY.

The following example registers a TAF callback

<?php

// Define userspace callback
class MyClass {
public static $retry_count;
public static function TAFCallback($conn, $event, $type)
{
switch ($event) {
case OCI_FO_BEGIN:
printf(" Failing Over ... Please stand by\n");
printf(" Failover type was found to be %s \n",
(($type==OCI_FO_SESSION) ? "SESSION"
:(($type==OCI_FO_SELECT) ? "SELECT" : "UNKNOWN!")));
self::$retry_count = 0;
break;
case OCI_FO_ABORT:
// The application cannot continue using the database
printf(" Failover aborted. Failover will not take place.\n");
break;
case OCI_FO_END:
// Failover completes successfully. Inform users a failover occurs.
printf(" Failover ended ... resuming services\n");
break;
case OCI_FO_REAUTH:
printf(" Failed over user ... resuming services\n");
// Replay any ALTER SESSION commands associated with this connection
// eg. oci_parse($conn, ‘ALTER SESSION …’) ;
break;
case OCI_FO_ERROR:
// Stop retrying if we have already attempted for 20 times.
if (self::$retry_count >= 20)
return 0;
printf(" Failover error received. Sleeping...\n");
sleep(10);
self::$retry_count++;
return OCI_FO_RETRY; // retry failover
break;
default:
printf("Bad Failover Event: %d.\n", $event);
break;
}
return 0;
}
}

$fn_name = 'MyClass::TAFCallback';

$conn = oci_connect('hr', 'welcome', 'orcl');
$sysconn = oci_connect('system', 'oracle', 'orcl');

// Use a privileged connection to construct a SQL statement that will initiate failover
$sql = <<< 'END'
select unique 'alter system disconnect session '''||sid||','||serial#||''''
from v$session_connect_info
where sid = sys_context('USERENV', 'SID')
END;

$s = oci_parse($conn, $sql);
oci_execute($s);
$r = oci_fetch_array($s);
$disconnectssql = $r[0];

oci_register_taf_callback($conn, $fn_name); // Register TAFCallback to Oracle TAF

print "Parsing user query\n";
$sql = "select systimestamp from dual";
$stmt = oci_parse($conn, $sql);

// For example, if a connection loss occurs at this point, oci_execute() will
// detect the loss and failover begins. During failover, oci_execute() will
// invoke the TAF callback function several times. If the failover is successful,
// a new connection is transparently created and oci_execute() will continue as
// usual. The connection session settings can be reset in the TAF callback
// function. If the failover is aborted, oci_execute() will return an error
// because a valid connection is not available.

// Disconnect the user, which initiates failover
print "Disconnecting the user\n";
$discsql = oci_parse($sysconn, $disconnectssql);
oci_execute($discsql);

print "Executing user query\n";
$e = oci_execute($stmt);
if (!$e) {
$m = oci_error($stmt);
trigger_error("Could not execute statement: ". $m['message'], E_USER_ERROR);
}
$row = oci_fetch_array($stmt);
print $row[0] . "\n";

// do other SQL statements with the new connection, if it is valid
// $stmt = oci_parse($conn, . . .);

?>

Voir aussi

  • oci_register_taf_callback()
  • oci_unregister_taf_callback()


OCI8 et le suivi dynamique DTrace

OCI8 2.0 introduit DTrace qui peut être utilisé sur les systèmes 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, après avoir configuré PHP_DTRACE.

$ export PHP_DTRACE=yes
$ pecl install oci8

Editez 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 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 cœur de PHP a aussi des découvertes statiques. Voir les découvertes statiques DTrace dans le cœur 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 CTRL+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 multidimensionnel
  • 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
  • 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_register_taf_callback — Register a user-defined callback function for Oracle Database TAF
  • 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_call_timeout — Sets a millisecond timeout for database calls
  • oci_set_client_identifier — Définit l'identifiant du client
  • oci_set_client_info — Définit l'information concernant le client
  • oci_set_db_operation — Sets the database operation
  • 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_lob — Sets the amount of data prefetched for each CLOB or BLOB.
  • 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_unregister_taf_callback — Unregister a user-defined callback function for Oracle Database TAF


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, PHP 8, PECL OCI8 >= 1.2.0)

oci_bind_array_by_name — Lie un tableau PHP à un paramètre de tableau Oracle PL/SQL

Description

oci_bind_array_by_name(
resource $statement,
string $param,
array &$var,
int $max_array_length,
int $max_item_length = -1,
int $type = SQLT_AFC
): bool

Lie un tableau PHP var à un marqueur Oracle param, 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.

param

Le marqueur Oracle.

var

Un tableau.

max_array_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, PHP 8, PECL OCI8 >= 1.1.0)

oci_bind_by_name — Associe une variable PHP à un marqueur Oracle

Description

oci_bind_by_name(
resource $statement,
string $param,
mixed &$var,
int $max_length = -1,
int $type = 0
): bool

Lie une variable PHP var au marqueur Oracle param. 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 max_length 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 max_length 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.

param

Le marqueur, préfixé par une virgule, utilisé dans la requête. La virgule est optionnelle dans le paramètre param.

var

La variable PHP à associer avec le marqueur du paramètre param.

max_length

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 var pour définir la longueur maximale. Dans ce cas, le paramètre var 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 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

?>

Notes

Avertissement

N'utilisez pas la fonction addslashes() et 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 var 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, PHP 8, PECL OCI8 >= 1.1.0)

oci_cancel — Termine la lecture de curseurs Oracle

Description

oci_cancel(resource $statement): bool

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 >= 5.3.7, PHP 7, PHP 8, PECL OCI8 >= 1.4.6)

oci_client_version — Retourne la version de la bibliothèque cliente Oracle

Description

oci_client_version(): string

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 : 19.9.0.0.0
?>

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, PHP 8, PECL OCI8 >= 1.1.0)

oci_close — Ferme une connexion Oracle

Description

oci_close(resource $connection): ?bool

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

Retourne null quand oci8.old_oci_close_semantics est activé, true sinon.

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:

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, PHP 8, PECL OCI8 >= 1.1.0)

oci_commit — Valide les transactions Oracle en cours

Description

oci_commit(resource $connection): bool

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.
$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, PHP 8, PECL OCI8 >= 1.1.0)

oci_connect — Établit une connexion avec un serveur Oracle

Description

oci_connect(
string $username,
string $password,
?string $connection_string = null,
string $encoding = "",
int $session_mode = OCI_DEFAULT
): resource|false

Retourne un identifiant de connexion, nécessaire à la plupart des appels OCI8.

Pour les performances, la plupart des applications devraient utiliser les connexions persistentes avec oci_pconnect() au lieu de oci_connect(). Voir la section sur la gestion des connexions pour des informations générales sur la gestion des connexions et le regroupement des connexions.

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é ou null, 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]. Des options supplémentaires ont été introduit avec Oracle 19c 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 /your/path/to/instantclient/network/admin, $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.

encoding

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 à partir de 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.

Historique

Version | Description
8.0.0, PECL OCI8 3.0.0 | connection_string est désormais nullable.

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, PHP 8, 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

oci_define_by_name(
resource $statement,
string $column,
mixed &$var,
int $type = 0
): bool

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

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.

var

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, PHP 8, PECL OCI8 >= 1.1.0)

oci_error — Retourne la dernière erreur Oracle

Description

oci_error(?resource $connection_or_statement = null): array|false

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

connection_or_statement

Pour la plupart des erreurs, le paramètre connection_or_statement représente une ressource de connexion. Pour les erreurs de connexion avec les fonctions oci_connect(), oci_new_connect() ou oci_pconnect(), null doit être passé.

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 | int | Le numéro d'erreur Oracle.
message | string | Le texte de l'erreur Oracle.
offset | int | 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.

Historique

Version | Description
8.0.0, PECL OCI8 3.0.0 | connection_or_statement est désormais nullable.

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, PHP 8, PECL OCI8 >= 1.1.0)

oci_execute — Exécute une commande SQL Oracle

Description

oci_execute(resource $statement, int $mode = OCI_COMMIT_ON_SUCCESS): bool

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.

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);
}
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 multidimensionnel

  • « oci_execute
  • oci_fetch_array »
  • PHP Manual
  • Fonctions OCI8
  • Lit plusieurs lignes d'un résultat dans un tableau multidimensionnel

oci_fetch_all

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_fetch_all — Lit plusieurs lignes d'un résultat dans un tableau multidimensionnel

Description

oci_fetch_all(
resource $statement,
array &$output,
int $offset = 0,
int $limit = -1,
int $flags = OCI_FETCHSTATEMENT_BY_COLUMN | OCI_ASSOC
): int

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.

offset

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.

limit

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 offset + 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 index numériques sont utilisés pour chaque tableau de colonnes.
OCI_ASSOC | Des index 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.

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 offset 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, PHP 8, PECL OCI8 >= 1.1.0)

oci_fetch_array — Lit une ligne d'un résultat sous forme de tableau associatif ou numérique

Description

oci_fetch_array(resource $statement, int $mode = OCI_BOTH | OCI_RETURN_NULLS): array|false

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, 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

<?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 (ou ultérieur) et Oracle Database 12c (ou ultérieur)
// 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 multidimensionnel
  • 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, PHP 8, PECL OCI8 >= 1.1.0)

oci_fetch_assoc — Lit une ligne d'un résultat sous forme de tableau associatif

Description

oci_fetch_assoc(resource $statement): array|false

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 multidimensionnel
  • 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, PHP 8, PECL OCI8 >= 1.1.0)

oci_fetch_object — Lit une ligne d'un résultat sous forme d'objet

Description

oci_fetch_object(resource $statement, int $mode = OCI_ASSOC | OCI_RETURN_NULLS): stdClass|false

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 multidimensionnel
  • 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, PHP 8, PECL OCI8 >= 1.1.0)

oci_fetch_row — Lit la prochaine ligne d'une requête sous forme de tableau numérique

Description

oci_fetch_row(resource $statement): array|false

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 multidimensionnel
  • 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, PHP 8, PECL OCI8 >= 1.1.0)

oci_fetch — Lit la prochaine ligne d'un résultat Oracle dans un buffer interne

Description

oci_fetch(resource $statement): bool

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. 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 multidimensionnel
  • 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, PHP 8, PECL OCI8 >= 1.1.0)

oci_field_is_null — Test si un champ de la ligne récupérée vaut null

Description

oci_field_is_null(resource $statement, string|int $column): bool

Vérifie si le champ column donné de la ligne courante de la requête statement vaut null.

Liste de paramètres

statement

Un identifiant de requête OCI valide.

column

Peut être l'index du champ (à partir de 1) ou son nom.

Valeurs de retour

Retourne true si column 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);

?>


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, PHP 8, PECL OCI8 >= 1.1.0)

oci_field_name — Retourne le nom d'un champ Oracle

Description

oci_field_name(resource $statement, string|int $column): string|false

Retourne le nom du champ column.

Liste de paramètres

statement

Un identifiant de requête OCI valide.

column

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);

?>

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, PHP 8, PECL OCI8 >= 1.1.0)

oci_field_precision — Lit la précision d'un champ Oracle

Description

oci_field_precision(resource $statement, string|int $column): int|false

Retourne la précision du champ column.

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.

column

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);

?>

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, PHP 8, PECL OCI8 >= 1.1.0)

oci_field_scale — Lit l'échelle d'une colonne Oracle

Description

oci_field_scale(resource $statement, string|int $column): int|false

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.

column

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);

?>

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, PHP 8, PECL OCI8 >= 1.1.0)

oci_field_size — Retourne la taille d'un champ Oracle

Description

oci_field_size(resource $statement, string|int $column): int|false

Retourne la taille du champ column Oracle .

Liste de paramètres

statement

Un identifiant de requête OCI valide.

column

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);

?>

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, PHP 8, PECL OCI8 >= 1.1.0)

oci_field_type_raw — Lit les données brutes du type d'un champ

Description

oci_field_type_raw(resource $statement, string|int $column): int|false

Lit les données brutes "SQLT" du type du champ column.

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.

column

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);

?>


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, PHP 8, PECL OCI8 >= 1.1.0)

oci_field_type — Retourne le type de données d'un champ Oracle

Description

oci_field_type(resource $statement, string|int $column): string|int|false

Retourne le nom du type de données d'un champ.

Liste de paramètres

statement

Un identifiant de requête OCI valide.

column

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 or un entier, 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);

?>

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, PHP 8, PECL OCI8 >= 1.1.0)

oci_free_descriptor — Libère un descripteur

Description

oci_free_descriptor(OCILob $lob): bool

Libère un descripteur alloué par la fonction oci_new_descriptor().

Liste de paramètres

descriptor

Descripteur alloué par 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 OCILOB::free.

Voir aussi

  • OCILOB::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, PHP 8, PECL OCI8 >= 1.1.0)

oci_free_statement — Libère toutes les ressources réservées par un résultat Oracle

Description

oci_free_statement(resource $statement): bool

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

  • « oci_free_statement
  • oci_lob_copy »
  • 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

oci_get_implicit_resultset

(PHP 5 >= 5.6.0, PHP 7, PHP 8, 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

Description

oci_get_implicit_resultset(resource $statement): resource|false

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 de la base de donnée Oracle 12 (ou ultérieur). 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().


Copie un LOB Oracle

  • « oci_get_implicit_resultset
  • oci_lob_is_equal »
  • PHP Manual
  • Fonctions OCI8
  • Copie un LOB Oracle

oci_lob_copy

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_lob_copy — Copie un LOB Oracle

Description

oci_lob_copy(OCILob $to, OCILob $from, ?int $length = null): bool

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 OCILob::seek() pour déplacer le pointeur interne de LOB.

Liste de paramètres

to

Le LOB de destination.

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.

Historique

Version | Description
8.0.0, PECL OCI8 3.0.0 | length est désormais nullable.

Notes

Note:

La classe OCILob était appelée OCI-Lob antérieur à PHP 8 et OCI8 3.0.0.


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, PHP 8, PECL OCI8 >= 1.1.0)

oci_lob_is_equal — Compare deux LOB/FILE Oracle

Description

oci_lob_is_equal(OCILob $lob1, OCILob $lob2): bool

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.

Notes

Note:

La classe OCICollection était appelée OCI-Collection antérieur à PHP 8 et OCI8 3.0.0.


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, PHP 8, PECL OCI8 >= 1.1.0)

oci_new_collection — Initialise une nouvelle collection Oracle

Description

oci_new_collection(resource $connection, string $type_name, ?string $schema = null): OCICollection|false

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().

type_name

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 utilisé quand null est fournit.

Valeurs de retour

Retourne un nouvel objet OCICollection, ou false si une erreur survient. error.

Historique

Version | Description
8.0.0, PECL OCI8 3.0.0 | schema est désormais nullable.

Notes

Note:

La classe OCICollection était appelée OCI-Collection antérieur à PHP 8 et OCI8 3.0.0.


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, PHP 8, PECL OCI8 >= 1.1.0)

oci_new_connect — Connexion au serveur Oracle en utilisant une seule connexion

Description

oci_new_connect(
string $username,
string $password,
?string $connection_string = null,
string $encoding = "",
int $session_mode = OCI_DEFAULT
): resource|false

É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é ou null, 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]. Des options supplémentaires ont été introduit avec Oracle 19c 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 /your/path/to/instantclient/network/admin, $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.

encoding

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 à partir de 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.

Historique

Version | Description
8.0.0, PECL OCI8 3.0.0 | connection_string est désormais nullable.

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, PHP 8, PECL OCI8 >= 1.1.0)

oci_new_cursor — Alloue et retourne un nouveau curseur Oracle

Description

oci_new_cursor(resource $connection): resource|false

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);
?>


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, PHP 8, PECL OCI8 >= 1.1.0)

oci_new_descriptor — Initialise un nouveau pointeur vide de LOB/FILE Oracle

Description

oci_new_descriptor(resource $connection, int $type = OCI_DTYPE_LOB): ?OCILob

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, ou null en cas d'échec.

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.
* 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);
?>

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, PHP 8, PECL OCI8 >= 1.1.0)

oci_num_fields — Retourne le nombre de colonnes dans un résultat Oracle

Description

oci_num_fields(resource $statement): int

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.

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);

?>


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, PHP 8, PECL OCI8 >= 1.1.0)

oci_num_rows — Retourne le nombre de lignes affectées durant la dernière commande Oracle

Description

oci_num_rows(resource $statement): int|false

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*().


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, PHP 8, PECL OCI8 >= 1.1.0)

oci_parse — Prépare une requête SQL avec Oracle

Description

oci_parse(resource $connection, string $sql): resource|false

Prépare la requête sql 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

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. La seule façon de savoir si la requête sql 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, PHP 8, PECL OCI8 >= 1.1.0)

oci_password_change — Modifie le mot de passe d'un utilisateur Oracle

Description

oci_password_change(
resource $connection,
string $username,
string $old_password,
string $new_password
): bool
oci_password_change(
string $database_name,
string $username,
string $old_password,
string $new_password
): resource

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.

database_name

Le nom de la base de données.

Valeurs de retour

Quand database_name est fournit, oci_password_change() retourne true en cas de succès, ou false si une erreur survient. Quand connection est fournit, oci_password_change() retourne la ressource de connexion 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.


Ouvre une connexion persistante à un serveur Oracle

  • « oci_password_change
  • oci_register_taf_callback »
  • PHP Manual
  • Fonctions OCI8
  • Ouvre une connexion persistante à un serveur Oracle

oci_pconnect

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_pconnect — Ouvre une connexion persistante à un serveur Oracle

Description

oci_pconnect(
string $username,
string $password,
?string $connection_string = null,
string $encoding = "",
int $session_mode = OCI_DEFAULT
): resource|false

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 la Gestion des Connexions et le Regroupement des Connexions 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é ou null, 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]. Des options supplémentaires ont été introduit avec Oracle 19c 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 /your/path/to/instantclient/network/admin, $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.

encoding

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 à partir de 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: 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


Register a user-defined callback function for Oracle Database TAF

  • « oci_pconnect
  • oci_result »
  • PHP Manual
  • Fonctions OCI8
  • Register a user-defined callback function for Oracle Database TAF

oci_register_taf_callback

(PHP 7.0 >= 7.0.21, PHP 8, PHP 7 >= 7.1.7, PHP 8, PECL OCI8 >= 2.1.7)

oci_register_taf_callback — Register a user-defined callback function for Oracle Database TAF

Description

oci_register_taf_callback(resource $connection, ?callable $callback): bool

Registers a user-defined callback function to connection. If connection fails due to instance or network failure, the registered callback function will be invoked for several times during failover. See OCI8 Transparent Application Failover (TAF) Support for information.

When oci_register_taf_callback() is called multiple times, each registration overwrites the previous one.

Use oci_unregister_taf_callback() to explicitly unregister a user-defined callback.

TAF callback registration will NOT be saved across persistent connections, therefore the callback needs to be re-registered for a new persistent connection.

Liste de paramètres

connection

An Oracle connection identifier.

callback

A user-defined callback to register for Oracle TAF. It can be a string of the function name or a Closure (anonymous function).

The interface of a TAF user-defined callback function is as follows:

userCallbackFn(resource $connection, int $event, int $type): int

See the parameter description and an example on OCI8 Transparent Application Failover (TAF) Support page.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Voir aussi

  • oci_unregister_taf_callback() - Unregister a user-defined callback function for Oracle Database TAF


Retourne la valeur d'une colonne dans un résultat Oracle

  • « oci_register_taf_callback
  • oci_rollback »
  • PHP Manual
  • Fonctions OCI8
  • Retourne la valeur d'une colonne dans un résultat Oracle

oci_result

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_result — Retourne la valeur d'une colonne dans un résultat Oracle

Description

oci_result(resource $statement, string|int $column): mixed

Retourne les données de la colonne column 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

column

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 parce que 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);

?>

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 multidimensionnel


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, PHP 8, PECL OCI8 >= 1.1.0)

oci_rollback — Annule les transactions Oracle en cours

Description

oci_rollback(resource $connection): bool

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.
$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, PHP 8, PECL OCI8 >= 1.1.0)

oci_server_version — Retourne la version du serveur Oracle

Description

oci_server_version(resource $connection): string|false

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);
?>

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_call_timeout »
  • PHP Manual
  • Fonctions OCI8
  • Définit le nom de l'action

oci_set_action

(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL OCI8 >= 1.4.0)

oci_set_action — Définit le nom de l'action

Description

oci_set_action(resource $connection, string $action): bool

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 aller-retour 'round-trip' 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

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 aller-retour (round-trip), 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

Allers-retours

Quelques fonctions OCI8 nécessitent des allers-retours avec la base de données. Ces allers-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
  • oci_set_db_operation() - Sets the database operation


Sets a millisecond timeout for database calls

  • « oci_set_action
  • oci_set_client_identifier »
  • PHP Manual
  • Fonctions OCI8
  • Sets a millisecond timeout for database calls

oci_set_call_timeout

(PHP 7.2 >= 7.2.14, PHP 8, PHP 7 >= 7.3.1, PHP 8, PECL OCI8 >= 2.2.0)

oci_set_call_timeout — Sets a millisecond timeout for database calls

Description

oci_set_call_timeout(resource $connection, int $timeout): bool

Sets a timeout limiting the maxium time a database round-trip using this connection may take.

Each OCI8 operation may make zero or more calls to Oracle's client library. These internal calls may then may make zero or more round-trips to Oracle Database. If any one of those round-trips takes more than time_out milliseconds, then the operation is cancelled and an error is returned to the application.

The time_out value applies to each round-trip individually, not to the sum of all round-trips. Time spent processing in PHP OCI8 before or after the completion of each round-trip is not counted.

When a call is interrupted, Oracle will attempt to clean up the connection for reuse. This operation is allowed to run for another time_out period. Depending on the outcome of the cleanup, the connection may or may not be reusable.

When persistent connections are used, the timeout value will be retained across PHP requests.

The oci_set_call_timeout() function is available when OCI8 uses Oracle 18 (or later) Client libraries.

Liste de paramètres

connection

Un identifiant de connexion Oracle, retourné par la fonction oci_connect(), oci_pconnect() ou la fonction oci_new_connect().

timeout

The maximum time in milliseconds that any single round-trip between PHP and Oracle Database may take.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 Setting the timeout

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
oci_set_call_timeout($conn, 5000);

?>


Définit l'identifiant du client

  • « oci_set_call_timeout
  • oci_set_client_info »
  • PHP Manual
  • Fonctions OCI8
  • Définit l'identifiant du client

oci_set_client_identifier

(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL OCI8 >= 1.4.0)

oci_set_client_identifier — Définit l'identifiant du client

Description

oci_set_client_identifier(resource $connection, string $client_id): bool

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 lors du prochain aller-retour 'round-trip' 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_id

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 aller-retour (round-trip) vers la base de données validera cet identifiant
$s = oci_parse($c, 'select mydata from mytable');
oci_execute($s);

// ...

?>

Notes

Attention

Allers-retours

Quelques fonctions OCI8 nécessitent des allers-retours avec la base de données. Ces allers-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
  • oci_set_db_operation() - Sets the database operation


Définit l'information concernant le client

  • « oci_set_client_identifier
  • oci_set_db_operation »
  • PHP Manual
  • Fonctions OCI8
  • Définit l'information concernant le client

oci_set_client_info

(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL OCI8 >= 1.4.0)

oci_set_client_info — Définit l'information concernant le client

Description

oci_set_client_info(resource $connection, string $client_info): bool

Définit l'information concernant le client pour un traçage Oracle.

L'information du client est enregistré avec la base de données lors du prochain aller-retour 'round-trip' 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');

// Code générant un aller-retour (round-trip), 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

Allers-retours

Quelques fonctions OCI8 nécessitent des allers-retours avec la base de données. Ces allers-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
  • oci_set_db_operation() - Sets the database operation


Sets the database operation

  • « oci_set_client_info
  • oci_set_edition »
  • PHP Manual
  • Fonctions OCI8
  • Sets the database operation

oci_set_db_operation

(PHP 7 >= 7.2.14, PHP 8, PHP 7 >= 7.3.1, PHP 8, PECL OCI8 >= 2.2.0)

oci_set_db_operation — Sets the database operation

Description

oci_set_db_operation(resource $connection, string $action): bool

Sets the DBOP for Oracle tracing.

The database operation name is registered with the database when the next 'round-trip' from PHP to the database occurs, typically when a SQL statement is executed.

The database operation can subsequently be queried from database administration views such as V$SQL_MONITOR.

The oci_set_db_operation() function is available when OCI8 uses Oracle 12 (or later) Client libraries and Oracle Database 12 (or later).

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

User chosen string.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 Setting the DBOP

<?php

$c = oci_connect('hr', 'welcome', 'localhost/XE');

// Record the operation
oci_set_db_operation($c, 'main query');

// Code that causes a round-trip, for example a query:
$s = oci_parse($c, 'select * from dual');
oci_execute($s);
oci_fetch_all($s, $res);

sleep(30);

?>
// While the script is running, the administrator can see the database operations
// being performed:

sqlplus system/welcome
SQL> select dbop_name from v$sql_monitor;

Notes

Attention

Allers-retours

Quelques fonctions OCI8 nécessitent des allers-retours avec la base de données. Ces allers-retours peuvent être évités lors de l'utilisation de requêtes dont le résultat est mis en cache.

Voir aussi

  • oci_set_action() - Définit le nom de l'action
  • 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'édition de la base de données

  • « oci_set_db_operation
  • oci_set_module_name »
  • PHP Manual
  • Fonctions OCI8
  • Définit l'édition de la base de données

oci_set_edition

(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL OCI8 >= 1.4.0)

oci_set_edition — Définit l'édition de la base de données

Description

oci_set_edition(string $edition): bool

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".

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";

?>

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.


Définit le nom du module

  • « oci_set_edition
  • oci_set_prefetch_lob »
  • PHP Manual
  • Fonctions OCI8
  • Définit le nom du module

oci_set_module_name

(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL OCI8 >= 1.4.0)

oci_set_module_name — Définit le nom du module

Description

oci_set_module_name(resource $connection, string $name): bool

Définit le nom du module pour le tracage Oracle.

Le nom du module est enregistré avec la base de données lors du prochain aller-retour 'round-trip' 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().

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.

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 aller-retour (round-trip), 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;

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

Allers-retours

Quelques fonctions OCI8 nécessitent des allers-retours avec la base de données. Ces allers-retours peuvent être évités lors de l'utilisation de requêtes dont le résultat est mis en cache.

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
  • oci_set_db_operation() - Sets the database operation


Sets the amount of data prefetched for each CLOB or BLOB.

  • « oci_set_module_name
  • oci_set_prefetch »
  • PHP Manual
  • Fonctions OCI8
  • Sets the amount of data prefetched for each CLOB or BLOB.

oci_set_prefetch_lob

(PHP 8.2, PECL OCI8 >= 3.2)

oci_set_prefetch_lob — Sets the amount of data prefetched for each CLOB or BLOB.

Description

oci_set_prefetch_lob(resource $statement, int $prefetch_lob_size): bool

Sets the internal buffer size used to fetch each CLOB or BLOB value when the implementation gets the internal Oracle LOB locator from the database after a successful query call to oci_execute() and for each subsequent internal fetch request to the database. Increasing this value can improve the performance of fetching smaller LOBs by reducing round-trips between PHP and the database. Memory usage will change.

The value affects LOBs returned as OCILob instances and also those returned using OCI_RETURN_LOBS.

Call oci_set_prefetch_lob() before calling oci_execute(). If it is not called, the value of oci8.prefetch_lob_size is used.

The LOB prefetch value should only be set with Oracle Database 12.2 or later.

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.

prefetch_lob_size

The number of bytes of each LOB to be prefetched, >= 0

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 Changing the LOB prefetch value for a query

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'SELECT myclob FROM mytable');
oci_set_prefetch_lob($stid, 100000); // Set before calling oci_execute()
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS+OCI_RETURN_LOBS)) {
echo "<tr>\n";
foreach ($row as $item) {
echo " <td>".($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;")."</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";

oci_free_statement($stid);
oci_close($conn);

?>

Voir aussi

  • oci8.prefetch_lob_size ini option


Indique le nombre de lignes qui doivent être lues à l'avance par Oracle

  • « oci_set_prefetch_lob
  • 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, PHP 8, PECL OCI8 >= 1.1.0)

oci_set_prefetch — Indique le nombre de lignes qui doivent être lues à l'avance par Oracle

Description

oci_set_prefetch(resource $statement, int $rows): bool

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.

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().
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_unregister_taf_callback »
  • PHP Manual
  • Fonctions OCI8
  • Retourne le type de la requête Oracle

oci_statement_type

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_statement_type — Retourne le type de la requête Oracle

Description

oci_statement_type(resource $statement): string|false

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 |
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);

?>


Unregister a user-defined callback function for Oracle Database TAF

  • « oci_statement_type
  • OCICollection »
  • PHP Manual
  • Fonctions OCI8
  • Unregister a user-defined callback function for Oracle Database TAF

oci_unregister_taf_callback

(PHP 7.0 >= 7.0.23, PHP 8, PHP 7 >= 7.1.9, PHP 8, PECL OCI8 >= 2.1.7)

oci_unregister_taf_callback — Unregister a user-defined callback function for Oracle Database TAF

Description

oci_unregister_taf_callback(resource $connection): bool

Unregister the user-defined callback function registered to connection by oci_register_taf_callback(). See OCI8 Transparent Application Failover (TAF) Support for information.

Liste de paramètres

connection

An Oracle connection identifier.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Voir aussi

  • oci_register_taf_callback() - Register a user-defined callback function for Oracle Database TAF


La classe OCICollection

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

Introduction

Fonctionnalités des collections OCI8 Collection.

Note:

The OCI-Collection class was renamed to OCICollection in PHP 8 OCI8 3.0.0 to align with PHP naming standards.

Synopsis de la classe

class OCICollection {
/* Méthodes */
public append(string $value): bool
public assign(OCICollection $from): bool
public assignElem(int $index, string $value): bool
public free(): bool
public getElem(int $index): string|float|null|false
public max(): int|false
public size(): int|false
public trim(int $num): bool
}

Sommaire

  • OCICollection::append — Ajoute un élément à une collection Oracle
  • OCICollection::assign — Assigne une valeur à une collection depuis une autre collection Oracle
  • OCICollection::assignElem — Assigne une valeur à un élément d'une collection Oracle
  • OCICollection::free — Libère les ressources associées avec un objet de collection
  • OCICollection::getElem — Retourne la valeur d'un élément d'une collection Oracle
  • OCICollection::max — Retourne le nombre maximal de valeurs d'une collection Oracle
  • OCICollection::size — Retourne la taille d'une collection Oracle
  • OCICollection::trim — Supprime les derniers éléments d'une collection Oracle


Ajoute un élément à une collection Oracle

  • « OCICollection
  • OCICollection::assign »
  • PHP Manual
  • OCICollection
  • Ajoute un élément à une collection Oracle

OCICollection::append

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCICollection::append — Ajoute un élément à une collection Oracle

Description

public OCICollection::append(string $value): bool

Ajoute un élément à la fin d'une collection Oracle.

Liste de paramètres

value

La valeur à ajouter à la collection.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0, PECL OCI8 3.0.0 | La classe OCI-Collection a été renommée en OCICollection pour aligner avec les standards de nommage PHP.

Voir aussi

  • OCICollection::assign


Assigne une valeur à une collection depuis une autre collection Oracle

  • « OCICollection::append
  • OCICollection::assignElem »
  • PHP Manual
  • OCICollection
  • Assigne une valeur à une collection depuis une autre collection Oracle

OCICollection::assign

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCICollection::assign — Assigne une valeur à une collection depuis une autre collection Oracle

Description

public OCICollection::assign(OCICollection $from): bool

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 OCICollection.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0, PECL OCI8 3.0.0 | La classe OCI-Collection a été renommée en OCICollection pour aligner avec les standards de nommage PHP.

Voir aussi

  • OCICollection::append


Assigne une valeur à un élément d'une collection Oracle

  • « OCICollection::assign
  • OCICollection::free »
  • PHP Manual
  • OCICollection
  • Assigne une valeur à un élément d'une collection Oracle

OCICollection::assignElem

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCICollection::assignElem — Assigne une valeur à un élément d'une collection Oracle

Description

public OCICollection::assignElem(int $index, string $value): bool

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.

Historique

Version | Description
8.0.0, PECL OCI8 3.0.0 | La classe OCI-Collection a été renommée en OCICollection pour aligner avec les standards de nommage PHP.

Voir aussi

  • OCICollection::getElem


Libère les ressources associées avec un objet de collection

  • « OCICollection::assignElem
  • OCICollection::getElem »
  • PHP Manual
  • OCICollection
  • Libère les ressources associées avec un objet de collection

OCICollection::free

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCICollection::free — Libère les ressources associées avec un objet de collection

Description

public OCICollection::free(): bool

Libère les ressources associées avec un objet de collection.

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.

Historique

Version | Description
8.0.0, PECL OCI8 3.0.0 | La classe OCI-Collection a été renommée en OCICollection pour aligner avec les standards de nommage PHP.

Voir aussi

  • oci_new_collection


Retourne la valeur d'un élément d'une collection Oracle

  • « OCICollection::free
  • OCICollection::max »
  • PHP Manual
  • OCICollection
  • Retourne la valeur d'un élément d'une collection Oracle

OCICollection::getElem

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCICollection::getElem — Retourne la valeur d'un élément d'une collection Oracle

Description

public OCICollection::getElem(int $index): string|float|null|false

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.

Historique

Version | Description
8.0.0, PECL OCI8 3.0.0 | La classe OCI-Collection a été renommée en OCICollection pour aligner avec les standards de nommage PHP.

Voir aussi

  • OCICollection::assignElem


Retourne le nombre maximal de valeurs d'une collection Oracle

  • « OCICollection::getElem
  • OCICollection::size »
  • PHP Manual
  • OCICollection
  • Retourne le nombre maximal de valeurs d'une collection Oracle

OCICollection::max

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCICollection::max — Retourne le nombre maximal de valeurs d'une collection Oracle

Description

public OCICollection::max(): int|false

Retourne le nombre maximal de valeurs d'une collection Oracle.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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é.

Historique

Version | Description
8.0.0, PECL OCI8 3.0.0 | La classe OCI-Collection a été renommée en OCICollection pour aligner avec les standards de nommage PHP.

Voir aussi

  • OCICollection::size


Retourne la taille d'une collection Oracle

  • « OCICollection::max
  • OCICollection::trim »
  • PHP Manual
  • OCICollection
  • Retourne la taille d'une collection Oracle

OCICollection::size

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCICollection::size — Retourne la taille d'une collection Oracle

Description

public OCICollection::size(): int|false

Retourne la taille d'une collection Oracle.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre d'éléments de la collection, ou false si une erreur survient.

Historique

Version | Description
8.0.0, PECL OCI8 3.0.0 | La classe OCI-Collection a été renommée en OCICollection pour aligner avec les standards de nommage PHP.

Voir aussi

  • OCICollection::max


Supprime les derniers éléments d'une collection Oracle

  • « OCICollection::size
  • OCILob »
  • PHP Manual
  • OCICollection
  • Supprime les derniers éléments d'une collection Oracle

OCICollection::trim

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCICollection::trim — Supprime les derniers éléments d'une collection Oracle

Description

public OCICollection::trim(int $num): bool

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.

Historique

Version | Description
8.0.0, PECL OCI8 3.0.0 | La classe OCI-Collection a été renommée en OCICollection pour aligner avec les standards de nommage PHP.

Voir aussi

  • OCICollection::size


La classe OCILob

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

Introduction

Fonctionnalité OCI8 LOB pour les objets de données binaire large (BLOB) et de caractères (CLOB).

Note:

The OCI-Lob class was renamed to OCILob in PHP 8 and PECL OCI8 3.0.0 to align with PHP naming standards.

Synopsis de la classe

class OCILob {
/* Méthodes */
public append(OCILob $from): bool
public close(): bool
public eof(): bool
public erase(?int $offset = null, ?int $length = null): int|false
public export(string $filename, ?int $offset = null, ?int $length = null): bool
public flush(int $flag = 0): bool
public free(): bool
public getBuffering(): bool
public import(string $filename): bool
public load(): string|false
public read(int $length): string|false
public rewind(): bool
public save(string $data, int $offset = 0): bool
public seek(int $offset, int $whence = OCI_SEEK_SET): bool
public setBuffering(bool $mode): bool
public size(): int|false
public tell(): int|false
public truncate(int $length = 0): bool
public write(string $data, ?int $length = null): int|false
public writeTemporary(string $data, int $type = OCI_TEMP_CLOB): bool
}

Sommaire

  • OCILob::append — Ajoute des données à un LOB Oracle
  • OCILob::close — Ferme un LOB Oracle
  • OCILob::eof — Test la fin du LOB Oracle
  • OCILob::erase — Écrase une partie d'un LOB Oracle
  • OCILob::export — Exporte un LOB Oracle dans un fichier
  • OCILob::flush — Écrit les LOB Oracle sur le disque
  • OCILob::free — Détruit un pointeur de LOB Oracle
  • OCILob::getBuffering — Retourne l'état de bufferisation LOB d'Oracle
  • OCILob::import — Importe un fichier dans LOB Oracle
  • OCILob::load — Retourne le contenu d'un LOB
  • OCILob::read — Lit une partie d'un LOB Oracle
  • OCILob::rewind — Ramène le pointeur interne d'un LOB Oracle au début
  • OCILob::save — Sauvegarde des données dans un LOB Oracle
  • OCILob::saveFile — Alias de OCILob::import
  • OCILob::seek — Déplace le pointeur interne d'un LOB Oracle
  • OCILob::setBuffering — Active/désactive la bufferisation des LOB Oracle
  • OCILob::size — Retourne la taille d'un LOB Oracle
  • OCILob::tell — Retourne la position courante du pointeur de LOB
  • OCILob::truncate — Tronque un LOB Oracle
  • OCILob::write — Écrit des données dans un LOB Oracle
  • OCILob::writeTemporary — Écrit un LOB Oracle temporaire
  • OCILob::writeToFile — Alias de OCILob::export


Ajoute des données à un LOB Oracle

  • « OCILob
  • OCILob::close »
  • PHP Manual
  • OCILob
  • Ajoute des données à un LOB Oracle

OCILob::append

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::append — Ajoute des données à un LOB Oracle

Description

public OCILob::append(OCILob $from): bool

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 OCILob::flush avant de la désactiver.

Liste de paramètres

from

Le LOB copié.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0, PECL OCI8 3.0.0 | La classe OCI-Lob a été renommée en OCILob pour aligner avec les standards de nommage PHP.

Voir aussi

  • OCILob::flush
  • OCILob::setBuffering
  • OCILob::getBuffering


Ferme un LOB Oracle

  • « OCILob::append
  • OCILob::eof »
  • PHP Manual
  • OCILob
  • Ferme un LOB Oracle

OCILob::close

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::close — Ferme un LOB Oracle

Description

public OCILob::close(): bool

Ferme un LOB Oracle. Cette fonction doit être utilisée uniquement avec OCILob::writeTemporary.

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.

Historique

Version | Description
8.0.0, PECL OCI8 3.0.0 | La classe OCI-Lob a été renommée en OCILob pour aligner avec les standards de nommage PHP.

Voir aussi

  • OCILob::writeTemporary


Test la fin du LOB Oracle

  • « OCILob::close
  • OCILob::erase »
  • PHP Manual
  • OCILob
  • Test la fin du LOB Oracle

OCILob::eof

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::eof — Test la fin du LOB Oracle

Description

public OCILob::eof(): bool

Vérifie si le pointeur interne d'un LOB est à la fin.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true si le pointeur interne de LOB a atteint la fin du LOB, et false sinon.

Historique

Version | Description
8.0.0, PECL OCI8 3.0.0 | La classe OCI-Lob a été renommée en OCILob pour aligner avec les standards de nommage PHP.

Notes

Note:

Cette fonction retournera une erreur Oracle si OCILob::setBuffering est actif sur le LOB.

Voir aussi

  • OCILob::size


Écrase une partie d'un LOB Oracle

  • « OCILob::eof
  • OCILob::export »
  • PHP Manual
  • OCILob
  • Écrase une partie d'un LOB Oracle

OCILob::erase

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::erase — Écrase une partie d'un LOB Oracle

Description

public OCILob::erase(?int $offset = null, ?int $length = null): int|false

É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.

Historique

Version | Description
8.0.0, PECL OCI8 3.0.0 | offset and length are now nullable.
8.0.0, PECL OCI8 3.0.0 | La classe OCI-Lob a été renommée en OCILob pour aligner avec les standards de nommage PHP.

Voir aussi

  • OCILob::truncate


Exporte un LOB Oracle dans un fichier

  • « OCILob::erase
  • OCILob::flush »
  • PHP Manual
  • OCILob
  • Exporte un LOB Oracle dans un fichier

OCILob::export

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::export — Exporte un LOB Oracle dans un fichier

Description

public OCILob::export(string $filename, ?int $offset = null, ?int $length = null): bool

Exporte un LOB Oracle dans un fichier.

Liste de paramètres

filename

Le chemin vers le fichier.

offset

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.

Historique

Version | Description
8.0.0, PECL OCI8 3.0.0 | offset and length are now nullable.
8.0.0, PECL OCI8 3.0.0 | La classe OCI-Lob a été renommée en OCILob pour aligner avec les standards de nommage PHP.

Voir aussi

  • OCILob::import


Écrit les LOB Oracle sur le disque

  • « OCILob::export
  • OCILob::free »
  • PHP Manual
  • OCILob
  • Écrit les LOB Oracle sur le disque

OCILob::flush

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::flush — Écrit les LOB Oracle sur le disque

Description

public OCILob::flush(int $flag = 0): bool

É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.

Historique

Version | Description
8.0.0, PECL OCI8 3.0.0 | La classe OCI-Lob a été renommée en OCILob pour aligner avec les standards de nommage PHP.

Voir aussi

  • OCILob::getBuffering
  • OCILob::setBuffering


Détruit un pointeur de LOB Oracle

  • « OCILob::flush
  • OCILob::getBuffering »
  • PHP Manual
  • OCILob
  • Détruit un pointeur de LOB Oracle

OCILob::free

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::free — Détruit un pointeur de LOB Oracle

Description

public OCILob::free(): bool

Libère les ressources associées avec la ressource, précédemment alloué avec oci_new_descriptor().

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.

Historique

Version | Description
8.0.0, PECL OCI8 3.0.0 | La classe OCI-Lob a été renommée en OCILob pour aligner avec les standards de nommage PHP.


Retourne l'état de bufferisation LOB d'Oracle

  • « OCILob::free
  • OCILob::import »
  • PHP Manual
  • OCILob
  • Retourne l'état de bufferisation LOB d'Oracle

OCILob::getBuffering

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::getBuffering — Retourne l'état de bufferisation LOB d'Oracle

Description

public OCILob::getBuffering(): bool

Retourne l'état de bufferisation LOB d'Oracle.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne false si la bufferisation des LOB est désactivée, et true si elle l'est.

Historique

Version | Description
8.0.0, PECL OCI8 3.0.0 | La classe OCI-Lob a été renommée en OCILob pour aligner avec les standards de nommage PHP.

Voir aussi

  • OCILob::setBuffering


Importe un fichier dans LOB Oracle

  • « OCILob::getBuffering
  • OCILob::load »
  • PHP Manual
  • OCILob
  • Importe un fichier dans LOB Oracle

OCILob::import

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::import — Importe un fichier dans LOB Oracle

Description

public OCILob::import(string $filename): bool

É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.

Historique

Version | Description
8.0.0, PECL OCI8 3.0.0 | La classe OCI-Lob a été renommée en OCILob pour aligner avec les standards de nommage PHP.

Voir aussi

  • OCILob::export
  • OCILob::write


Retourne le contenu d'un LOB

  • « OCILob::import
  • OCILob::read »
  • PHP Manual
  • OCILob
  • Retourne le contenu d'un LOB

OCILob::load

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::load — Retourne le contenu d'un LOB

Description

public OCILob::load(): string|false

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 OCILob::read à la place. En cas d'erreur, OCI-Lob->load() retourne false.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le contenu de l'objet, ou false si une erreur survient.

Historique

Version | Description
8.0.0, PECL OCI8 3.0.0 | La classe OCI-Lob a été renommée en OCILob pour aligner avec les standards de nommage PHP.

Voir aussi

  • OCILob::read


Lit une partie d'un LOB Oracle

  • « OCILob::load
  • OCILob::rewind »
  • PHP Manual
  • OCILob
  • Lit une partie d'un LOB Oracle

OCILob::read

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::read — Lit une partie d'un LOB Oracle

Description

public OCILob::read(int $length): string|false

Lit length octets (BLOB) ou caractères (CLOB) à partir de la position courante du LOB.

La lecture stoppe lorsque length octets ont été lus pour un BLOB, lorsque length caractères ont été lus pour un CLOB, ou que la fin du LOB a été atteinte. Le pointeur de LOB sera déplacé par cette lecture du nombre d'octets/caractères lus..

Liste de paramètres

length

La taille des données à lire, en octets pour un BLOB, en caractères pour un CLOB. 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.

Historique

Version | Description
8.0.0, PECL OCI8 3.0.0 | La classe OCI-Lob a été renommée en OCILob pour aligner avec les standards de nommage PHP.

Voir aussi

  • OCILob::load
  • OCILob::write


Ramène le pointeur interne d'un LOB Oracle au début

  • « OCILob::read
  • OCILob::save »
  • PHP Manual
  • OCILob
  • Ramène le pointeur interne d'un LOB Oracle au début

OCILob::rewind

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::rewind — Ramène le pointeur interne d'un LOB Oracle au début

Description

public OCILob::rewind(): bool

Ramène le pointeur interne d'un LOB Oracle au début.

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.

Historique

Version | Description
8.0.0, PECL OCI8 3.0.0 | La classe OCI-Lob a été renommée en OCILob pour aligner avec les standards de nommage PHP.

Voir aussi

  • OCILob::seek
  • OCILob::tell


Sauvegarde des données dans un LOB Oracle

  • « OCILob::rewind
  • OCILob::saveFile »
  • PHP Manual
  • OCILob
  • Sauvegarde des données dans un LOB Oracle

OCILob::save

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::save — Sauvegarde des données dans un LOB Oracle

Description

public OCILob::save(string $data, int $offset = 0): bool

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.

Historique

Version | Description
8.0.0, PECL OCI8 3.0.0 | La classe OCI-Lob a été renommée en OCILob pour aligner avec les standards de nommage PHP.

Voir aussi

  • OCILob::write
  • OCILob::import


Alias de OCILob::import

  • « OCILob::save
  • OCILob::seek »
  • PHP Manual
  • OCILob
  • Alias de OCILob::import

OCILob::saveFile

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::saveFile — Alias de OCILob::import()

Description

Cette fonction est un alias de : OCILob::import().

Historique

Version | Description
8.0.0, PECL OCI8 3.0.0 | La classe OCI-Lob a été renommée en OCILob pour aligner avec les standards de nommage PHP.


Déplace le pointeur interne d'un LOB Oracle

  • « OCILob::saveFile
  • OCILob::setBuffering »
  • PHP Manual
  • OCILob
  • Déplace le pointeur interne d'un LOB Oracle

OCILob::seek

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::seek — Déplace le pointeur interne d'un LOB Oracle

Description

public OCILob::seek(int $offset, int $whence = OCI_SEEK_SET): bool

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.

Historique

Version | Description
8.0.0, PECL OCI8 3.0.0 | La classe OCI-Lob a été renommée en OCILob pour aligner avec les standards de nommage PHP.

Voir aussi

  • OCILob::rewind
  • OCILob::tell
  • OCILob::eof


Active/désactive la bufferisation des LOB Oracle

  • « OCILob::seek
  • OCILob::size »
  • PHP Manual
  • OCILob
  • Active/désactive la bufferisation des LOB Oracle

OCILob::setBuffering

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::setBuffering — Active/désactive la bufferisation des LOB Oracle

Description

public OCILob::setBuffering(bool $mode): bool

Active ou désactive la bufferisation des LOB Oracle, en fonction du paramètre mode.

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. OCILob::flush() doit être utilisé pour vider les buffers une fois que vous avez fini de travailler avec le LOB.

Liste de paramètres

mode

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.

Historique

Version | Description
8.0.0, PECL OCI8 3.0.0 | La classe OCI-Lob a été renommée en OCILob pour aligner avec les standards de nommage PHP.

Voir aussi

  • OCILob::getBuffering


Retourne la taille d'un LOB Oracle

  • « OCILob::setBuffering
  • OCILob::tell »
  • PHP Manual
  • OCILob
  • Retourne la taille d'un LOB Oracle

OCILob::size

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::size — Retourne la taille d'un LOB Oracle

Description

public OCILob::size(): int|false

Retourne la taille d'un LOB Oracle.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la taille du LOB ou false si une erreur survient. Les objets vides ont une taille de 0.

Historique

Version | Description
8.0.0, PECL OCI8 3.0.0 | La classe OCI-Lob a été renommée en OCILob pour aligner avec les standards de nommage PHP.


Retourne la position courante du pointeur de LOB

  • « OCILob::size
  • OCILob::truncate »
  • PHP Manual
  • OCILob
  • Retourne la position courante du pointeur de LOB

OCILob::tell

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::tell — Retourne la position courante du pointeur de LOB

Description

public OCILob::tell(): int|false

Retourne la position courante du pointeur de LOB.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la position courante du pointeur interne du LOB, ou bien false si une erreur survient.

Historique

Version | Description
8.0.0, PECL OCI8 3.0.0 | La classe OCI-Lob a été renommée en OCILob pour aligner avec les standards de nommage PHP.

Voir aussi

  • OCILob::rewind
  • OCILob::size
  • OCILob::eof


Tronque un LOB Oracle

  • « OCILob::tell
  • OCILob::write »
  • PHP Manual
  • OCILob
  • Tronque un LOB Oracle

OCILob::truncate

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::truncate — Tronque un LOB Oracle

Description

public OCILob::truncate(int $length = 0): bool

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.

Historique

Version | Description
8.0.0, PECL OCI8 3.0.0 | La classe OCI-Lob a été renommée en OCILob pour aligner avec les standards de nommage PHP.

Voir aussi

  • OCILob::erase


Écrit des données dans un LOB Oracle

  • « OCILob::truncate
  • OCILob::writeTemporary »
  • PHP Manual
  • OCILob
  • Écrit des données dans un LOB Oracle

OCILob::write

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::write — Écrit des données dans un LOB Oracle

Description

public OCILob::write(string $data, ?int $length = null): int|false

É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 un entier, 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.

Historique

Version | Description
8.0.0, PECL OCI8 3.0.0 | length est désormais nullable.
8.0.0, PECL OCI8 3.0.0 | La classe OCI-Lob a été renommée en OCILob pour aligner avec les standards de nommage PHP.

Voir aussi

  • OCILob::read


Écrit un LOB Oracle temporaire

  • « OCILob::write
  • OCILob::writeToFile »
  • PHP Manual
  • OCILob
  • Écrit un LOB Oracle temporaire

OCILob::writeTemporary

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::writeTemporary — Écrit un LOB Oracle temporaire

Description

public OCILob::writeTemporary(string $data, int $type = OCI_TEMP_CLOB): bool

Crée un LOB temporaire et y écrit les données data.

Il faut utiliser la fonction OCILob::close lorsque vous avez fini de travailler avec le LOB.

Liste de paramètres

data

Les données à écrire.

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.

Historique

Version | Description
8.0.0, PECL OCI8 3.0.0 | La classe OCI-Lob a été renommée en OCILob pour aligner avec les standards de nommage PHP.

Voir aussi

  • OCILob::close


Alias de OCILob::export

  • « OCILob::writeTemporary
  • Fonctions et alias OCI8 obsolètes »
  • PHP Manual
  • OCILob
  • Alias de OCILob::export

OCILob::writeToFile

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

OCILob::writeToFile — Alias de OCILob::export()

Description

Cette fonction est un alias de : OCILob::export().

Historique

Version | Description
8.0.0, PECL OCI8 3.0.0 | offset et length sont désormais nullable.
8.0.0, PECL OCI8 3.0.0 | La classe OCI-Lob a été renommée en OCILob pour aligner avec les standards de nommage PHP.


Fonctions et alias OCI8 obsolètes

Sommaire

  • oci_internal_debug — Enables or disables internal debug output
  • ocibindbyname — Alias de oci_bind_by_name
  • ocicancel — Alias de oci_cancel
  • ocicloselob — Alias de OCILob::close
  • ocicollappend — Alias de OCICollection::append
  • ocicollassign — Alias de OCICollection::assign
  • ocicollassignelem — Alias de OCICollection::assignElem
  • ocicollgetelem — Alias de OCICollection::getElem
  • ocicollmax — Alias de OCICollection::max
  • ocicollsize — Alias de OCICollection::size
  • ocicolltrim — Alias de OCICollection::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 OCICollection::free
  • ocifreecursor — Alias de oci_free_statement
  • ocifreedesc — Alias de OCILob::free
  • ocifreestatement — Alias de oci_free_statement
  • ociinternaldebug — Alias de oci_internal_debug
  • ociloadlob — Alias de OCILob::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 OCILob::save
  • ocisavelobfile — Alias de OCILob::import
  • ociserverversion — Alias de oci_server_version
  • ocisetprefetch — Alias de oci_set_prefetch
  • ocistatementtype — Alias de oci_statement_type
  • ociwritelobtofile — Alias de OCILob::export
  • ociwritetemporarylob — Alias de OCILob::writeTemporary


Enables or disables internal debug output

  • « Fonctions et alias OCI8 obsolètes
  • ocibindbyname »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Enables or disables internal debug output

oci_internal_debug

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0, PECL OCI8 <= 2.2.0)

oci_internal_debug — Enables or disables internal debug output

Description

oci_internal_debug(bool $onoff): void

Enables or disables internal debug output.

Liste de paramètres

onoff

Set this to false to turn debug output off or true to turn it on.

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Note:

This function was removed in PHP 8 and PECL OCI8 3.0.


Alias de oci_bind_by_name

  • « oci_internal_debug
  • ocicancel »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de oci_bind_by_name

ocibindbyname

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocibindbyname — Alias de oci_bind_by_name()

Description

Alias de oci_bind_by_name()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


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, PHP 8, PECL OCI8 >= 1.0.0)

ocicancel — Alias de oci_cancel()

Description

Alias de oci_cancel()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


Alias de OCILob::close

  • « ocicancel
  • ocicollappend »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de OCILob::close

ocicloselob

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PECL OCI8 1.0)

ocicloselob — Alias de OCILob::close()

Description

Alias de OCILob::close()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


Alias de OCICollection::append

  • « ocicloselob
  • ocicollassign »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de OCICollection::append

ocicollappend

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicollappend — Alias de OCICollection::append()

Description

Alias de OCICollection::append()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


Alias de OCICollection::assign

  • « ocicollappend
  • ocicollassignelem »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de OCICollection::assign

ocicollassign

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicollassign — Alias de OCICollection::assign()

Description

Alias de OCICollection::assign()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


Alias de OCICollection::assignElem

  • « ocicollassign
  • ocicollgetelem »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de OCICollection::assignElem

ocicollassignelem

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicollassignelem — Alias de OCICollection::assignElem()

Description

Alias de OCICollection::assignElem()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


Alias de OCICollection::getElem

  • « ocicollassignelem
  • ocicollmax »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de OCICollection::getElem

ocicollgetelem

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicollgetelem — Alias de OCICollection::getElem()

Description

Alias de OCICollection::getElem()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


Alias de OCICollection::max

  • « ocicollgetelem
  • ocicollsize »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de OCICollection::max

ocicollmax

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicollmax — Alias de OCICollection::max()

Description

Alias de OCICollection::max()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


Alias de OCICollection::size

  • « ocicollmax
  • ocicolltrim »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de OCICollection::size

ocicollsize

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicollsize — Alias de OCICollection::size()

Description

Alias de OCICollection::size()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


Alias de OCICollection::trim

  • « ocicollsize
  • ocicolumnisnull »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de OCICollection::trim

ocicolltrim

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocicolltrim — Alias de OCICollection::trim()

Description

Alias de OCICollection::trim()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


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, PHP 8, PECL OCI8 >= 1.0.0)

ocicolumnisnull — Alias de oci_field_is_null()

Description

Alias de oci_field_is_null()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


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, PHP 8, PECL OCI8 >= 1.0.0)

ocicolumnname — Alias de oci_field_name()

Description

Alias de oci_field_name()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


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, PHP 8, PECL OCI8 >= 1.0.0)

ocicolumnprecision — Alias de oci_field_precision()

Description

Alias de oci_field_precision()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


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, PHP 8, PECL OCI8 >= 1.0.0)

ocicolumnscale — Alias de oci_field_scale()

Description

Alias de oci_field_scale()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


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, PHP 8, PECL OCI8 >= 1.0.0)

ocicolumnsize — Alias de oci_field_size()

Description

Alias de oci_field_size()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


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, PHP 8, PECL OCI8 >= 1.0.0)

ocicolumntype — Alias de oci_field_type()

Description

Alias de oci_field_type()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


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, PHP 8, PECL OCI8 >= 1.0.0)

ocicolumntyperaw — Alias de oci_field_type_raw()

Description

Alias de oci_field_type_raw()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


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, PHP 8, PECL OCI8 >= 1.0.0)

ocicommit — Alias de oci_commit()

Description

Alias de oci_commit()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


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, PHP 8, PECL OCI8 >= 1.0.0)

ocidefinebyname — Alias de oci_define_by_name()

Description

Alias de oci_define_by_name()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


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, PHP 8, PECL OCI8 >= 1.0.0)

ocierror — Alias de oci_error()

Description

Alias de oci_error()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


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, PHP 8, PECL OCI8 >= 1.0.0)

ociexecute — Alias de oci_execute()

Description

Alias de oci_execute()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


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, PHP 8, PECL OCI8 >= 1.0.0)

ocifetch — Alias de oci_fetch()

Description

Alias de oci_fetch()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


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, PHP 8, 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 OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


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, PHP 8, PECL OCI8 >= 1.0.0)

ocifetchstatement — Alias de oci_fetch_all()

Description

Alias de oci_fetch_all()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


Alias de OCICollection::free

  • « ocifetchstatement
  • ocifreecursor »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de OCICollection::free

ocifreecollection

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocifreecollection — Alias de OCICollection::free()

Description

Alias de OCICollection::free()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


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, PHP 8, PECL OCI8 >= 1.0.0)

ocifreecursor — Alias de oci_free_statement()

Description

Alias de oci_free_statement()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


Alias de OCILob::free

  • « ocifreecursor
  • ocifreestatement »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de OCILob::free

ocifreedesc

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocifreedesc — Alias de OCILob::free()

Description

Alias de OCILob::free()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


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, PHP 8, PECL OCI8 >= 1.0.0)

ocifreestatement — Alias de oci_free_statement()

Description

Alias de oci_free_statement()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


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, PECL OCI8 <= 2.2.0)

ociinternaldebug — Alias de oci_internal_debug()

Description

Alias de oci_internal_debug()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


Alias de OCILob::load

  • « ociinternaldebug
  • ocilogoff »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de OCILob::load

ociloadlob

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ociloadlob — Alias de OCILob::load()

Description

Alias de OCILob::load()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


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, PHP 8, PECL OCI8 >= 1.0.0)

ocilogoff — Alias de oci_close()

Description

Alias de oci_close()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


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, PHP 8, PECL OCI8 >= 1.0.0)

ocilogon — Alias de oci_connect()

Description

Alias de oci_connect()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


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, PHP 8, PECL OCI8 >= 1.0.0)

ocinewcollection — Alias de oci_new_collection()

Description

Alias de oci_new_collection()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


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, PHP 8, PECL OCI8 >= 1.0.0)

ocinewcursor — Alias de oci_new_cursor()

Description

Alias de oci_new_cursor()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


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, PHP 8, PECL OCI8 >= 1.0.0)

ocinewdescriptor — Alias de oci_new_descriptor()

Description

Alias de oci_new_descriptor()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


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, PHP 8, PECL OCI8 >= 1.0.0)

ocinlogon — Alias de oci_new_connect()

Description

Alias de oci_new_connect()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


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, PHP 8, PECL OCI8 >= 1.0.0)

ocinumcols — Alias de oci_num_fields()

Description

Alias de oci_num_fields()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


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, PHP 8, PECL OCI8 >= 1.0.0)

ociparse — Alias de oci_parse()

Description

Alias de oci_parse()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


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, PHP 8, PECL OCI8 >= 1.0.0)

ociplogon — Alias de oci_pconnect()

Description

Alias de oci_pconnect()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


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, PHP 8, PECL OCI8 >= 1.0.0)

ociresult — Alias de oci_result()

Description

Alias de oci_result()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


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, PHP 8, PECL OCI8 >= 1.0.0)

ocirollback — Alias de oci_rollback()

Description

Alias de oci_rollback()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


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, PHP 8, PECL OCI8 >= 1.0.0)

ocirowcount — Alias de oci_num_rows()

Description

Alias de oci_num_rows()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


Alias de OCILob::save

  • « ocirowcount
  • ocisavelobfile »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de OCILob::save

ocisavelob

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocisavelob — Alias de OCILob::save()

Description

Alias de OCILob::save()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


Alias de OCILob::import

  • « ocisavelob
  • ociserverversion »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de OCILob::import

ocisavelobfile

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ocisavelobfile — Alias de OCILob::import()

Description

Alias de OCILob::import()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


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, PHP 8, PECL OCI8 >= 1.0.0)

ociserverversion — Alias de oci_server_version()

Description

Alias de oci_server_version()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


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, PHP 8, PECL OCI8 >= 1.0.0)

ocisetprefetch — Alias de oci_set_prefetch()

Description

Alias de oci_set_prefetch()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


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, PHP 8, PECL OCI8 >= 1.0.0)

ocistatementtype — Alias de oci_statement_type()

Description

Alias de oci_statement_type()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


Alias de OCILob::export

  • « ocistatementtype
  • ociwritetemporarylob »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de OCILob::export

ociwritelobtofile

(PHP 4, PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.0.0)

ociwritelobtofile — Alias de OCILob::export()

Description

Alias de OCILob::export()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


Alias de OCILob::writeTemporary

  • « ociwritelobtofile
  • PostgreSQL »
  • PHP Manual
  • Fonctions et alias OCI8 obsolètes
  • Alias de OCILob::writeTemporary

ociwritetemporarylob

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PECL OCI8 1.0)

ociwritetemporarylob — Alias de OCILob::writeTemporary()

Description

Alias de OCILob::writeTemporary()

Avertissement

Cet alias est OBSOLÈTE à partir de PHP 5.4.0. Dépendre de cet alias est fortement déconseillé.


PostgreSQL

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
    • Utilisation simple
    • 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 valeurs d'un tableaux associatifs en une forme convenable pour des requêtes SQL
    • 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 — Définit la position de la ligne 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_context_visibility — Détermine la visibilité des messages d'erreur du contexte retournés par pg_last_error et pg_result_error
    • 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)
  • PgSql\Connection — La classe PgSql\Connection
  • PgSql\Result — La classe PgSql\Result
  • PgSql\Lob — La classe PgSql\Lob


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" | INI_SYSTEM |
pgsql.max_persistent | "-1" | INI_SYSTEM |
pgsql.max_links | "-1" | INI_SYSTEM |
pgsql.auto_reset_persistent | "0" | INI_SYSTEM |
pgsql.ignore_notice | "0" | INI_ALL |
pgsql.log_notice | "0" | INI_ALL |
Pour plus de détails sur les modes 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

Autorise ou non les connexions persistantes Postgre.

pgsql.max_persistent int

Le nombre maximum de connexions persistantes Postgre par processus.

pgsql.max_links int

Le nombre maximum de connexions Postgre par processus, y compris les connexions persistantes.

pgsql.auto_reset_persistent int

Détecte les connexions persistantes (ouvertes avec pg_pconnect()) rompues.

pgsql.ignore_notice int

Active ou non l'affichage des notices PostgreSQL.

pgsql.log_notice int

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

Antérieur à PHP 8.1.0, il y avait 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)
Antérieur à PHP 8.0.0, la version longue de libpq qui inclue les informations du compilateur. À partir de PHP 8.0.0, la valeur est identique à PGSQL_LIBPQ_VERSION, et l'utilisation de PGSQL_LIBPQ_VERSION_STR est obsolète.
PGSQL_ASSOC (int)
Passée à pg_fetch_array(). Retourne un tableau associatif des noms et valeurs des champs.
PGSQL_NUM (int)
Passée à pg_fetch_array(). Retourne un tableau à index numérique des numéros et valeurs des champs.
PGSQL_BOTH (int)
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 (int)
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 (int)
Passé à la fonction pg_connect() pour créer une connexion asynchrone.
PGSQL_CONNECTION_AUTH_OK (int)
PGSQL_CONNECTION_AWAITING_RESPONSE (int)
PGSQL_CONNECTION_BAD (int)
Retournée par pg_connection_status() indiquant que la connexion à la base de données est invalide.
PGSQL_CONNECTION_MADE (int)
PGSQL_CONNECTION_OK (int)
Retournée par pg_connection_status() indiquant que la connexion à la base de données est valide.
PGSQL_CONNECTION_SETENV (int)
PGSQL_CONNECTION_SSL_STARTUP (int)
PGSQL_CONNECTION_STARTED (int)
PGSQL_SEEK_SET (int)
Passée à pg_lo_seek(). Le positionnement commencera au début de l'objet.
PGSQL_SEEK_CUR (int)
Passée à pg_lo_seek(). Le positionnement commencera à la position courante.
PGSQL_SEEK_END (int)
Passée à pg_lo_seek(). Le positionnement commencera à la fin de l'objet.
PGSQL_EMPTY_QUERY (int)
Retournée par pg_result_status(). La chaîne de caractères envoyée au serveur était vide.
PGSQL_COMMAND_OK (int)
Retournée par pg_result_status(). Commande correctement complétée ne retournant aucune donnée.
PGSQL_TUPLES_OK (int)
Retournée par pg_result_status(). Commande correctement complétée retournant des données (comme SELECT ou SHOW).
PGSQL_COPY_OUT (int)
Retournée par pg_result_status(). Copie (à partir du serveur) de transfert de données commencée.
PGSQL_COPY_IN (int)
Retournée par pg_result_status(). Copie (vers le serveur) de transfert de données commencée.
PGSQL_BAD_RESPONSE (int)
Retournée par pg_result_status(). La réponse du serveur n'a pas été comprise.
PGSQL_NONFATAL_ERROR (int)
Retournée par pg_result_status(). Une erreur non fatale (de niveau notice ou warning) s'est produite.
PGSQL_FATAL_ERROR (int)
Retournée par pg_result_status(). Une erreur fatale s'est produite.
PGSQL_TRANSACTION_IDLE (int)
Retournée par pg_transaction_Status(). La connexion est actuellement libre, aucune transaction en cours.
PGSQL_TRANSACTION_ACTIVE (int)
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 (int)
Retournée par pg_transaction_status(). La connexion est libre, dans un bloc de transaction.
PGSQL_TRANSACTION_INERROR (int)
Retournée par pg_transaction_status(). La connexion est libre, dans un bloc de transaction échoué.
PGSQL_TRANSACTION_UNKNOWN (int)
Retournée par pg_transaction_status(). La connexion est mauvaise.
PGSQL_DIAG_SEVERITY (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
Passée à pg_result_error_field(). Le nom de la fonction de source code PostgreSQL reportant l'erreur.
PGSQL_DIAG_SCHEMA_NAME (int)
Disponible depuis PHP 7.3.0.
PGSQL_DIAG_TABLE_NAME (int)
Disponible depuis PHP 7.3.0.
PGSQL_DIAG_COLUMN_NAME (int)
Disponible depuis PHP 7.3.0.
PGSQL_DIAG_DATATYPE_NAME (int)
Disponible depuis PHP 7.3.0.
PGSQL_DIAG_CONSTRAINT_NAME (int)
Disponible depuis PHP 7.3.0.
PGSQL_ERRORS_TERSE (int)
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 (int)
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 (int)
Passée à pg_set_error_verbosity(). Le mode verbeux inclut tous les champs disponibles.
PGSQL_NOTICE_LAST (int)
Utilisé par pg_last_notice(). Disponible à partir de PHP 7.1.0.
PGSQL_NOTICE_ALL (int)
Utilisé par pg_last_notice(). Disponible à partir de PHP 7.1.0.
PGSQL_NOTICE_CLEAR (int)
Utilisé par pg_last_notice(). Disponible à partir de PHP 7.1.0.
PGSQL_STATUS_LONG (int)
Passée à pg_result_status(). Indique que le code résultat est désiré numérique.
PGSQL_STATUS_STRING (int)
Passée à pg_result_status(). Indique que le tag de résultat de commande est désiré textuel.
PGSQL_CONV_IGNORE_DEFAULT (int)
Passée à pg_convert(). Ignore les valeurs par défaut dans la table pendant la conversion.
PGSQL_CONV_FORCE_NULL (int)
Passée à pg_convert(). Utilise null à la place d'une chaîne de caractères vide.
PGSQL_CONV_IGNORE_NOT_NULL (int)
Passée à pg_convert(). Ignore la conversion de null à l'intérieur des colonnes NOT NULL.
PGSQL_DML_NO_CONV (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
Retournée par la fonction pg_connect_poll() pour indiquer que la tentative de connexion a échoué.
PGSQL_POLLING_READING (int)
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 (int)
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 (int)
Retournée par la fonction pg_connect_poll() pour indiquer que la connexion est prête à être utilisée.
PGSQL_POLLING_ACTIVE (int)
Retournée par la fonction pg_connect_poll() pour indiquer que la connexion est actuellement active.
PGSQL_DIAG_SEVERITY_NONLOCALIZED (int)
La sévérité ; les contenus du champ sont ERROR, FATAL, ou PANIC (dans un message d'erreur), ou WARNING, NOTICE, DEBUG, INFO, ou LOG (dans un message de remarque). Ceci est identique au champ PG_DIAG_SEVERITY à l'exception que les contenus ne sont jamais localisé. Ceci est présent seulement dans les versions 9.6 et ultérieures / PHP 7.3.0 ou supérieure.
PGSQL_SHOW_CONTEXT_NEVER (int)
À utiliser avec pg_set_error_context_visibility(), le contexte n'est jamais affiché. Disponible à partir de PHP 8.3.0.
PGSQL_SHOW_CONTEXT_ERRORS (int)
À utiliser avec pg_set_error_context_visibility(), les champs du contexte sont inclus uniquement dans les messages d'erreur. C'est le comportement par défaut. Disponible à partir de PHP 8.3.0.
PGSQL_SHOW_CONTEXT_ALWAYS (int)
À utiliser avec pg_set_error_context_visibility(), les champs du contexte sont inclus dans les messages d'erreur, d'avis et d'avertissement. Disponible à partir de PHP 8.3.0.
PGSQL_TRACE_SUPPRESS_TIMESTAMPS (int)
À utiliser avec pg_trace(), l'horodatage n'est pas inclus dans les messages de trace. Disponible à partir de PHP 8.3.0.
PGSQL_TRACE_REGRESS_MODE (int)
À utiliser avec pg_trace(), des champs tels que les OIDs sont inclus dans les messages de trace. Disponible à partir de PHP 8.3.0.


  • « Constantes pré-définies
  • Utilisation simple »
  • PHP Manual
  • PostgreSQL
  • Exemples

Exemples

Sommaire

  • Utilisation simple
  • 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);
?>


Utilisation simple

Ces exemples contiennent des fonctions définies par l'utilisateur semblable aux fonctions antérieures MySQL.

Exemple #1 Exemple de fonctions PostgreSQL définies par l'utilisateur

<?php
// Cette fonction devrait être necessaire, car une connexion PostgreSQL se
// lie à une base de donnée.
function pg_list_dbs($db)
{
assert(is_resource($db));
$query = '
SELECT
d.datname as "Name",
u.usename as "Owner",
pg_encoding_to_char(d.encoding) as "Encoding"
FROM
pg_database d LEFT JOIN pg_user u ON d.datdba = u.usesysid
ORDER BY 1;
';
return pg_query($db, $query);
}

// Listé les tbles.
function pg_list_tables($db)
{
assert(is_resource($db));
$query = "
SELECT
c.relname as \"Name\",
CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special' END as \"Type\",
u.usename as \"Owner\"
FROM
pg_class c LEFT JOIN pg_user u ON c.relowner = u.usesysid
WHERE
c.relkind IN ('r','v','S','')
AND c.relname !~ '^pg_'
ORDER BY 1;
";
return pg_query($db, $query);
}

// Voir aussi pg_meta_data(). Ceci retourne la définition des champs en tant que tableau.
function pg_list_fields($db, $table)
{
assert(is_resource($db));
$query = "
SELECT
a.attname,
format_type(a.atttypid, a.atttypmod),
a.attnotnull,
a.atthasdef,
a.attnum
FROM
pg_class c,
pg_attribute a
WHERE
c.relname = '".$table."'
AND a.attnum > 0 AND a.attrelid = c.oid
ORDER BY a.attnum;
";
return pg_query($db, $query);
}
?>


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 valeurs d'un tableaux associatifs en une forme convenable pour des requêtes SQL
  • 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 — Définit la position de la ligne 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_context_visibility — Détermine la visibilité des messages d'erreur du contexte retournés par pg_last_error et pg_result_error
  • 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, PHP 8)

pg_affected_rows — Retourne le nombre de lignes affectées

Description

pg_affected_rows(PgSql\Result $result): int

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

Une instance PgSql\Result, 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 tuple affecté, la fonction retournera 0.

Historique

Version | Description
8.1.0 | Le paramètre result attend désormais une instance de PgSql\Result ; auparavant, une ressource était attendu.

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, PHP 8)

pg_cancel_query — Annule une requête asynchrone

Description

pg_cancel_query(PgSql\Connection $connection): bool

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

Une instance PgSql\Connection.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

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, PHP 8)

pg_client_encoding — Lit l'encodage du client

Description

pg_client_encoding(?PgSql\Connection $connection = null): string

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 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

Une instance PgSql\Connection. Quand connection est null, la connexion par défaut est utilisé. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect()

Avertissement

À partir de PHP 8.1.0, utiliser la connexion par défaut est obsolète.

Valeurs de retour

L'encodage du client.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.
8.0.0 | connection est désormais nullable.

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, PHP 8)

pg_close — Termine une connexion PostgreSQL

Description

pg_close(?PgSql\Connection $connection = null): true

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 instances de PgSql\Lob qui ont été ouverts avec cette connexion, ne fermez pas la connexion avant d'avoir fermé toutes les instances de PgSql\Lob.

Liste de paramètres

connection

Une instance PgSql\Connection. Quand connection est null, la connexion par défaut est utilisé. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect()

Avertissement

À partir de PHP 8.1.0, utiliser la connexion par défaut est obsolète.

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.2.0 | Le type de retour est maintenant true, auparavant il était bool.
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.
8.0.0 | connection est désormais nullable.

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, PHP 8)

pg_connect_poll — Test le statut d'une tentative de connexion asynchrone PostgreSQL en cours

Description

pg_connect_poll(PgSql\Connection $connection): int

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

Une instance PgSql\Connection.

Valeurs de retour

Retourne la constante PGSQL_POLLING_FAILED, PGSQL_POLLING_READING, PGSQL_POLLING_WRITING, PGSQL_POLLING_OK, ou la constante PGSQL_POLLING_ACTIVE.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.


É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, PHP 8)

pg_connect — Établit une connexion PostgreSQL

Description

pg_connect(string $connection_string, int $flags = 0): PgSql\Connection|false

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 à flags, 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.

flags

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

Retourne une instance de PgSql\Connection en cas de succès, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Retourne désormais une instance de PgSql\Connection ; auparavant, une ressource était retourné.

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, PHP 8)

pg_connection_busy — Vérifie si la connexion PostgreSQL est occupée

Description

pg_connection_busy(PgSql\Connection $connection): bool

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

Une instance PgSql\Connection.

Valeurs de retour

Retourne true si la connexion est occupée, sinon false.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

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, PHP 8)

pg_connection_reset — Relance la connexion au serveur PostgreSQL

Description

pg_connection_reset(PgSql\Connection $connection): bool

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

Une instance PgSql\Connection.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

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, PHP 8)

pg_connection_status — Lit le statut de la connexion PostgreSQL

Description

pg_connection_status(PgSql\Connection $connection): int

pg_connection_status() retourne le statut de la connexion connection.

Liste de paramètres

connection

Une instance PgSql\Connection.

Valeurs de retour

PGSQL_CONNECTION_OK ou PGSQL_CONNECTION_BAD.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

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, PHP 8)

pg_consume_input — Lit l'entrée de la connexion

Description

pg_consume_input(PgSql\Connection $connection): bool

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

Une instance PgSql\Connection.

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.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.


Convertit des valeurs d'un tableaux associatifs en une forme convenable pour des requêtes SQL

  • « pg_consume_input
  • pg_copy_from »
  • PHP Manual
  • Fonctions PostgreSQL
  • Convertit des valeurs d'un tableaux associatifs en une forme convenable pour des requêtes SQL

pg_convert

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_convert — Convertit des valeurs d'un tableaux associatifs en une forme convenable pour des requêtes SQL

Description

pg_convert(
PgSql\Connection $connection,
string $table_name,
array $values,
int $flags = 0
): array|false

pg_convert() vérifie et convertit le tableau associatif values 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 values a d'éléments. Les noms des champs de table_name doivent correspondre aux index du tableau dans values. Retourne un tableau avec les valeurs converties en cas de succès, et sinon, false.

Note:

Les valeurs booléennes sont acceptées et convertie en booléen PostgreSQL. Les représentations de valeurs booléennes sous forme de chaînes de caractères sont également supportées. null est converti en NULL PostgreSQL.

Liste de paramètres

connection

Une instance PgSql\Connection.

table_name

Nom de la table sur pour laquelle les types seront convertis.

values

Données à être converties.

flags

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 si une erreur survient.

Erreurs / Exceptions

Une ValueError ou TypeError est déclenchée lorsque la valeur ou le type du champ ne correspond pas correctement à un type PostgreSQL.

Historique

Version | Description
8.3.0 | Lance désormais une erreur ValueError ou TypeError lorsque la valeur ou le type du champ ne correspond pas correctement à un type PostgreSQL ; précédemment, un E_WARNING était émis.
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

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);
?>

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, PHP 8)

pg_copy_from — Insère des lignes dans une table à partir d'un tableau

Description

pg_copy_from(
PgSql\Connection $connection,
string $table_name,
array $rows,
string $separator = "\t",
string $null_as = "\\\\N"
): bool

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

Une instance PgSql\Connection.

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.

separator

Le marqueur qui sépare les valeurs pour chaque champ dans chaque élément de rows. Par défaut \t.

null_as

Comment les valeurs NULL de SQL sont représentées dans rows. Par défaut \\N ("\\\\N").

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

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, PHP 8)

pg_copy_to — Copie une table dans un tableau

Description

pg_copy_to(
PgSql\Connection $connection,
string $table_name,
string $separator = "\t",
string $null_as = "\\\\N"
): array|false

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

Une instance PgSql\Connection.

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. Par défaut \t.

null_as

Comment les valeurs NULL de SQL sont représentées dans rows. Par défaut \\N ("\\\\N").

Valeurs de retour

Un tableau avec un élément pour chaque ligne de données COPY, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

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, PHP 8)

pg_dbname — Retourne le nom de la base de données PostgreSQL

Description

pg_dbname(?PgSql\Connection $connection = null): string

pg_dbname() retourne le nom de la base de données PostgreSQL associée à la connexion connection.

Liste de paramètres

connection

Une instance PgSql\Connection. Quand connection est null, la connexion par défaut est utilisé. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect()

Avertissement

À partir de PHP 8.1.0, utiliser la connexion par défaut est obsolète.

Valeurs de retour

Une chaîne de type string contenant le nom de la base de données associée à la connexion connection.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.
8.0.0 | connection est désormais nullable.

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, PHP 8)

pg_delete — Efface des lignes PostgreSQL

Description

pg_delete(
PgSql\Connection $connection,
string $table_name,
array $conditions,
int $flags = PGSQL_DML_EXEC
): string|bool

pg_delete() efface les lignes d'une table spécifiées par les clés et valeur du tableau associatif conditions.

Si flags est fournit, pg_convert() est appliqué à conditions avec les drapeaux fournit.

Par défaut pg_delete() passe des valeurs brutes. Les valeurs doivent être échappé ou le drapeau PGSQL_DML_ESCAPE doit être spécifié dans flags. PGSQL_DML_ESCAPE met des guillemets et échappe les paramètres/identifiants. Par conséquent, les noms de table/colonnes deviennent sensible à la casse.

Notez que ni l'échappement ni les requêtes préparer peuvent protéger des requêtes LIKE, JSON, Tableaux, Regex, etc. Ces paramètres devraient être traité en fonction de leur contexte. C'est à dire échapper/valider les valeurs.

Liste de paramètres

connection

Une instance PgSql\Connection.

table_name

Nom de la table depuis laquelle les lignes seront effacées.

conditions

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.

flags

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 flags 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 flags.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

Exemples

Exemple #1 Exemple avec pg_delete()

<?php
$db = pg_connect ('dbname=foo');
// Ceci est sûr quelque peu, car toutes les valeurs sont échappées
// Cependant PostgreSSQL supporte les JSON/Tableaux. Ceci ne sont pas
// sûr ni par échappement ni par les requêtes préparés.
$res = pg_delete($db, 'post_log', $_POST, PG_DML_ESCAPE);
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";
}
?>

Voir aussi

  • pg_convert() - Convertit des valeurs d'un tableaux associatifs en une forme convenable pour des requêtes SQL


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, PHP 8)

pg_end_copy — Synchronise avec le serveur PostgreSQL

Description

pg_end_copy(?PgSql\Connection $connection = null): bool

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

Une instance PgSql\Connection. Quand connection est null, la connexion par défaut est utilisé. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect()

Avertissement

À partir de PHP 8.1.0, utiliser la connexion par défaut est obsolète.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.
8.0.0 | connection est désormais nullable.

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, PHP 8)

pg_escape_bytea — Protège une chaîne pour insertion dans un champ bytea

Description

pg_escape_bytea(PgSql\Connection $connection = ?, string $data): string

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

Une instance PgSql\Connection. Quand connection est pas spécifié, la connexion par défaut est utilisé. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect()

Avertissement

À partir de PHP 8.1.0, utiliser la connexion par défaut est obsolète.

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
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

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, PHP 8)

pg_escape_identifier — Protège un identifiant pour l'insertion dans un champ texte.

Description

pg_escape_identifier(PgSql\Connection $connection = ?, string $data): string

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

Une instance PgSql\Connection. Quand connection est pas spécifié, la connexion par défaut est utilisé. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect()

Avertissement

À partir de PHP 8.1.0, utiliser la connexion par défaut est obsolète.

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.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

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, PHP 8)

pg_escape_literal — Protège une requête SQL littérale à insérer dans un champ texte

Description

pg_escape_literal(PgSql\Connection $connection = ?, string $data): string

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

Une instance PgSql\Connection. Quand connection est pas spécifié, la connexion par défaut est utilisé. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect()

Avertissement

À partir de PHP 8.1.0, utiliser la connexion par défaut est obsolète.

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.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

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 antislashes)
$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, PHP 8)

pg_escape_string — Protège une chaîne de caractères pour une requête SQL

Description

pg_escape_string(PgSql\Connection $connection = ?, string $data): string

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

Une instance PgSql\Connection. Quand connection est pas spécifié, la connexion par défaut est utilisé. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect()

Avertissement

À partir de PHP 8.1.0, utiliser la connexion par défaut est obsolète.

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
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

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, PHP 8)

pg_execute — Exécute une requête préparée PostGreSQL

Description

pg_execute(PgSql\Connection $connection = ?, string $stmtname, array $params): PgSql\Result|false

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

Une instance PgSql\Connection. Quand connection est pas spécifié, la connexion par défaut est utilisé. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect()

Avertissement

À partir de PHP 8.1.0, utiliser la connexion par défaut est obsolète.

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 instance de PgSql\Result en cas de succès, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Retourne désormais une instance de PgSql\Result instance ; auparavant, une ressource était retourné.
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

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, PHP 8)

pg_fetch_all_columns — Récupère toutes les lignes d'une colonne de résultats particulière en tant que tableau

Description

pg_fetch_all_columns(PgSql\Result $result, int $field = 0): array

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

Une instance PgSql\Result, retourné par pg_query(), pg_query_params(), ou pg_execute() (entre autres).

field

Numéro de la colonne. Par défaut la première colonne si non-spécifié.

Valeurs de retour

Un tableau contenant toutes les valeurs d'une colonne du résultat.

Historique

Version | Description
8.1.0 | Le paramètre result attend désormais une instance de PgSql\Result ; auparavant, une ressource était attendu.

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, PHP 8)

pg_fetch_all — Lit toutes les lignes d'un résultat

Description

pg_fetch_all(PgSql\Result $result, int $mode = PGSQL_ASSOC): array

pg_fetch_all() retourne un tableau qui contient toutes les lignes de result.

Note: Cette fonction définit les champs NULL à la valeur PHP null.

Liste de paramètres

result

Une instance PgSql\Result, retourné par pg_query(), pg_query_params(), ou pg_execute() (entre autres).

mode

Un paramètre optionnel qui contrôle la façon dont le array retourné est indexé. mode est une constante qui peut prendre les valeurs suivantes : PGSQL_ASSOC, PGSQL_NUM et PGSQL_BOTH. En utilisant PGSQL_NUM, la fonction retournera un tableau avec des indices numériques, en utilisant PGSQL_ASSOC, elle retournera seulement des indices associatifs tandis que PGSQL_BOTH retournera à la fois des indices numériques et associatifs.

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.

Historique

Version | Description
8.1.0 | Le paramètre result attend désormais une instance de PgSql\Result ; auparavant, une ressource était attendu.
8.0.0 | pg_fetch_all() retournera désormais un tableau vide au lieu de false pour les ensembles de résultats avec zéro ligne.
7.1.0 | Le paramètre mode a été ajouté.

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);

?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

pg_fetch_array — Lit une ligne de résultat PostgreSQL dans un tableau

Description

pg_fetch_array(PgSql\Result $result, ?int $row = null, int $mode = PGSQL_BOTH): array|false

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

Une instance PgSql\Result, 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.

mode

Un paramètre optionnel qui contrôle la façon dont le array retourné est indexé. mode est une constante qui peut prendre les valeurs suivantes : PGSQL_ASSOC, PGSQL_NUM et PGSQL_BOTH. En utilisant PGSQL_NUM, la fonction retournera un tableau avec des indices numériques, en utilisant PGSQL_ASSOC, elle retournera seulement des indices associatifs tandis que PGSQL_BOTH retournera à 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. Tenter de récupérer le résultat d'une requête autre que SELECT retournera aussi false.

Historique

Version | Description
8.1.0 | Le paramètre result attend désormais une instance de PgSql\Result ; auparavant, une ressource était attendu.

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";

// Le paramètre row est optionnel ; NULL peut être passé à la place,
// pour passer un mode. 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, PHP 8)

pg_fetch_assoc — Lit une ligne de résultat PostgreSQL sous forme de tableau associatif

Description

pg_fetch_assoc(PgSql\Result $result, ?int $row = null): array|false

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

Une instance PgSql\Result, 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 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.

Historique

Version | Description
8.1.0 | Le paramètre result attend désormais une instance de PgSql\Result ; auparavant, une ressource était attendu.

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, PHP 8)

pg_fetch_object — Lit une ligne de résultat PostgreSQL dans un objet

Description

pg_fetch_object(
PgSql\Result $result,
?int $row = null,
string $class = "stdClass",
array $constructor_args = []
): object|false

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

Une instance PgSql\Result, 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.

class

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é.

constructor_args

Paramètre optionnel de type array pour passer des arguments au constructeur de la classe class.

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.

Erreurs / Exceptions

Une ValueError est déclenchée lorsque l'argument constructor_args n'est pas vide et que la classe n'a pas de constructeur.

Historique

Version | Description
8.3.0 | Lance désormais une exception ValueError lorsque l'argument constructor_args n'est pas vide et que la classe n'a pas de constructeur ; précédemment, une exception Exception était déclenchée.
8.1.0 | Le paramètre result attend désormais une instance de PgSql\Result ; auparavant, une ressource était attendu.

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, PHP 8)

pg_fetch_result — Retourne les valeurs d'un résultat

Description

pg_fetch_result(PgSql\Result $result, string|false|null $row , mixed $field): string|false|null
pg_fetch_result(PgSql\Result $result, mixed $field): string|false|null

pg_fetch_result() retourne la valeur d'une ligne et d'un champ (colonne) en particulier à partir d'une instance PgSql\Result.

Note:

Cette fonction peut s'appeler pg_result().

Liste de paramètres

result

Une instance PgSql\Result, 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 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.

Historique

Version | Description
8.3.0 | row est désormais nullable.
8.1.0 | Le paramètre result attend désormais une instance de PgSql\Result ; auparavant, une ressource était attendu.

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, PHP 8)

pg_fetch_row — Lit une ligne dans un tableau

Description

pg_fetch_row(PgSql\Result $result, ?int $row = null, int $mode = PGSQL_NUM): array|false

pg_fetch_row() lit une ligne dans le résultat associé à l'instance result.

Note: Cette fonction définit les champs NULL à la valeur PHP null.

Liste de paramètres

result

Une instance PgSql\Result, 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.

mode

Un paramètre optionnel qui contrôle la façon dont le array retourné est indexé. mode est une constante qui peut prendre les valeurs suivantes : PGSQL_ASSOC, PGSQL_NUM et PGSQL_BOTH. En utilisant PGSQL_NUM, la fonction retournera un tableau avec des indices numériques, en utilisant PGSQL_ASSOC, elle retournera seulement des indices associatifs tandis que PGSQL_BOTH retournera à la fois des indices numériques et associatifs.

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.

Historique

Version | Description
8.1.0 | Le paramètre result attend désormais une instance de PgSql\Result ; auparavant, une ressource était attendu.

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, PHP 8)

pg_field_is_null — Teste si un champ PostgreSQL est à null

Description

pg_field_is_null(PgSql\Result $result, string|false|null $row , mixed $field): int
pg_field_is_null(PgSql\Result $result, mixed $field): int

pg_field_is_null() teste si un champ dans une instance PgSql\Result est un NULL SQL ou pas.

Note:

Auparavant, cette fonction s'appelait pg_fieldisnull().

Liste de paramètres

result

Une instance PgSql\Result, 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 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.

Historique

Version | Description
8.3.0 | row est désormais nullable.
8.1.0 | Le paramètre result attend désormais une instance de PgSql\Result ; auparavant, une ressource était attendu.

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, PHP 8)

pg_field_name — Retourne le nom d'un champ PostgreSQL

Description

pg_field_name(PgSql\Result $result, int $field): string

pg_field_name() retourne le nom du champ qui occupe la colonne numéro field 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

Une instance PgSql\Result, retourné par pg_query(), pg_query_params(), ou pg_execute() (entre autres).

field

Numéro du champ, commençant à 0.

Valeurs de retour

Le nom du champ.

Historique

Version | Description
8.1.0 | Le paramètre result attend désormais une instance de PgSql\Result ; auparavant, une ressource était attendu.

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, PHP 8)

pg_field_num — Retourne le numéro d'une colonne

Description

pg_field_num(PgSql\Result $result, string $field): int

pg_field_num() retourne le numéro de la colonne, dont le nom est field, dans le résultat result.

Note:

Auparavant, cette fonction s'appelait pg_fieldnum().

Liste de paramètres

result

Une instance PgSql\Result, retourné par pg_query(), pg_query_params(), ou pg_execute() (entre autres).

field

Le nom du champ. Le nom donné est traité comme un identifiant dans une commande SQL, c'est-à-dire qu'il est mis en minuscule sauf s'il est cité deux fois.

Valeurs de retour

Le numéro du champ (commençant à 0) ou -1 en cas d'erreur.

Historique

Version | Description
8.1.0 | Le paramètre result attend désormais une instance de PgSql\Result ; auparavant, une ressource était attendu.

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, PHP 8)

pg_field_prtlen — Retourne la taille imprimée

Description

pg_field_prtlen(PgSql\Result $result, string|false|null $row , mixed $field_name_or_number): int
pg_field_prtlen(PgSql\Result $result, mixed $field_name_or_number): int

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

Une instance PgSql\Result, retourné 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.

Historique

Version | Description
8.3.0 | row est désormais nullable.
8.1.0 | Le paramètre result attend désormais une instance de PgSql\Result ; auparavant, une ressource était attendu.

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, PHP 8)

pg_field_size — Retourne la taille interne de stockage d'un champ donné

Description

pg_field_size(PgSql\Result $result, int $field): int

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

Une instance PgSql\Result, retourné par pg_query(), pg_query_params(), ou pg_execute() (entre autres).

field

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.

Historique

Version | Description
8.1.0 | Le paramètre result attend désormais une instance de PgSql\Result ; auparavant, une ressource était attendu.

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, PHP 8)

pg_field_table — Retourne le nom ou l'oid d'une table

Description

pg_field_table(PgSql\Result $result, int $field, bool $oid_only = false): string|int|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

Une instance PgSql\Result, retourné par pg_query(), pg_query_params(), ou pg_execute() (entre autres).

field

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, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre result attend désormais une instance de PgSql\Result ; auparavant, une ressource était attendu.

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));
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

pg_field_type_oid — Retourne le type ID (OID) pour le numéro du champ correspondant

Description

pg_field_type_oid(PgSql\Result $result, int $field): string|int

pg_field_type_oid() retourne un entier contenant le OID du type de base du champ field donné dans l'instanceresult.

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

Une instance PgSql\Result, retourné par pg_query(), pg_query_params(), ou pg_execute() (entre autres).

field

Numéro du champ, commençant à 0.

Valeurs de retour

Le OID du type de base du champ.

Historique

Version | Description
8.1.0 | Le paramètre result attend désormais une instance de PgSql\Result ; auparavant, une ressource était attendu.

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, PHP 8)

pg_field_type — Retourne le type d'un champ PostgreSQL donné par index

Description

pg_field_type(PgSql\Result $result, int $field): string

pg_field_type() retourne une chaîne contenant le type de base du champ donné par son index field.

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

Une instance PgSql\Result, retourné par pg_query(), pg_query_params(), ou pg_execute() (entre autres).

field

Numéro du champ, commençant à 0.

Valeurs de retour

Une string contenant le nom de base du type de champ.

Historique

Version | Description
8.1.0 | Le paramètre result attend désormais une instance de PgSql\Result ; auparavant, une ressource était attendu.

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, PHP 8)

pg_flush — Envoi les données de requête sortante sur la connexion

Description

pg_flush(PgSql\Connection $connection): int|bool

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

Une instance PgSql\Connection.

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.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.


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, PHP 8)

pg_free_result — Libère la mémoire

Description

pg_free_result(PgSql\Result $result): bool

pg_free_result() libère la mémoire et les données associées avec l'instance PgSql\Result.

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

Une instance PgSql\Result, retourné par pg_query(), pg_query_params(), ou pg_execute() (entre autres).

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre result attend désormais une instance de PgSql\Result ; auparavant, une ressource était attendu.

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, PHP 8)

pg_get_notify — Lit le message SQL NOTIFY

Description

pg_get_notify(PgSql\Connection $connection, int $mode = PGSQL_ASSOC): array|false

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

Une instance PgSql\Connection.

mode

Un paramètre optionnel qui contrôle la façon dont le array retourné est indexé. mode est une constante qui peut prendre les valeurs suivantes : PGSQL_ASSOC, PGSQL_NUM et PGSQL_BOTH. En utilisant PGSQL_NUM, la fonction retournera un tableau avec des indices numériques, en utilisant PGSQL_ASSOC, elle retournera seulement des indices associatifs tandis que PGSQL_BOTH retournera à la fois des indices numériques et associatifs.

Valeurs de retour

Un tableau contenant le nom du message NOTIFY. Si le serveur supporte, le tableau contient aussi la version du serveur et la charge utile (payload). Sinon, si aucun NOTIFY n'est en attente, alors false sera retourné.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

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, PHP 8)

pg_get_pid — Lit l'identifiant de processus du serveur PostgreSQL

Description

pg_get_pid(PgSql\Connection $connection): int

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 instance PgSql\Connection.

Valeurs de retour

L'identifiant du processus du serveur.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

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, PHP 8)

pg_get_result — Lit un résultat PostgreSQL asynchrone

Description

pg_get_result(PgSql\Connection $connection): PgSql\Result|false

pg_get_result() récupère l'instance
PgSql\Result 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

Une instance PgSql\Connection.

Valeurs de retour

Une instance de PgSql\Result, ou false s'il n'y a plus de résultat disponible.

Historique

Version | Description
8.1.0 | Retourne désormais une instance de PgSql\Result instance ; auparavant, une ressource était retourné.
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

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, PHP 8)

pg_host — Retourne le nom d'hôte

Description

pg_host(?PgSql\Connection $connection = null): string

pg_host() retourne le nom d'hôte associé à l'instance de connexion PostgreSQL.

Liste de paramètres

connection

Une instance PgSql\Connection. Quand connection est null, la connexion par défaut est utilisé. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect()

Avertissement

À partir de PHP 8.1.0, utiliser la connexion par défaut est obsolète.

Valeurs de retour

Une chaîne contenant le nom de l'ordinateur hôte de connection ou une chaîne vide en cas d'erreur.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.
8.0.0 | connection est désormais nullable.

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, PHP 8)

pg_insert — Insère un tableau dans une table

Description

pg_insert(
PgSql\Connection $connection,
string $table_name,
array $values,
int $flags = PGSQL_DML_EXEC
): PgSql\Result|string|bool

pg_insert() insère les values dans la table table_name.

Si flags est spécifié, pg_convert() est appliqué à values avec les drapeaux fournit.

Par défaut pg_insert() passe des valeurs brutes. Les valeurs doivent être échappé ou le drapeau PGSQL_DML_ESCAPE doit être spécifié dans flags. PGSQL_DML_ESCAPE met des guillemets et échappe les paramètres/identifiants. Par conséquent, les noms de table/colonnes deviennent sensible à la casse.

Notez que ni l'échappement ni les requêtes préparer peuvent protéger des requêtes LIKE, JSON, Tableaux, Regex, etc. Ces paramètres devraient être traité en fonction de leur contexte. C'est à dire échapper/valider les valeurs.

Liste de paramètres

connection

Une instance PgSql\Connection.

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 values a d'éléments.

values

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.

flags

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 flags, 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.. Ou retourne une chaîne de caractères si PGSQL_DML_STRING est fournit via flags.

Erreurs / Exceptions

Une ValueError est déclenchée lorsque la table spécifiée est invalide.

Une ValueError ou TypeError est déclenchée lorsque la valeur ou le type du champ ne correspond pas correctement à un type PostgreSQL.

Historique

Version | Description
8.3.0 | Lance désormais une erreur ValueError lorsque la table spécifiée est invalide ; précédemment, un E_WARNING était émis.
8.3.0 | Lance désormais une erreur ValueError ou TypeError lorsque la valeur ou le type du champ ne correspond pas correctement à un type PostgreSQL ; précédemment, un E_WARNING était émis.
8.1.0 | Retourne désormais une instance de PgSql\Result instance ; auparavant, une ressource était retourné.
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

Exemples

Exemple #1 Exemple avec pg_insert()

<?php
$db = pg_connect ('dbname=foo');
// Ceci est sûr quelque peu, car toutes les valeurs sont échappées
// Cependant PostgreSSQL supporte les JSON/Tableaux. Ceci ne sont pas
// sûr ni par échappement ni par les requêtes préparés.
$res = pg_insert($dbconn, 'post_log', $_POST, PGSQL_DML_ESCAPE);
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";
}
?>

Voir aussi

  • pg_convert() - Convertit des valeurs d'un tableaux associatifs en une forme convenable pour des requêtes SQL


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, PHP 8)

pg_last_error — Lit le dernier message d'erreur sur la connexion

Description

pg_last_error(?PgSql\Connection $connection = null): string

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

Une instance PgSql\Connection. Quand connection est null, la connexion par défaut est utilisé. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect()

Avertissement

À partir de PHP 8.1.0, utiliser la connexion par défaut est obsolète.

Valeurs de retour

Une chaîne de caractères contenant le dernier message d'erreur sur la connexion connection.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.
8.0.0 | connection est désormais nullable.

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, PHP 8)

pg_last_notice — Retourne la dernière note du serveur PostgreSQL

Description

pg_last_notice(PgSql\Connection $connection, int $mode = PGSQL_NOTICE_LAST): array|string|bool

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

Une instance PgSql\Connection.

mode

L'un de PGSQL_NOTICE_LAST (pour retourner la dernière note), PGSQL_NOTICE_ALL (pour retourner toutes les notes), or PGSQL_NOTICE_CLEAR (pour effacer les notes).

Valeurs de retour

Une chaîne de caractères contenant la dernière note sur la connexion connection avec PGSQL_NOTICE_LAST, un tableau avec PGSQL_NOTICE_ALL, un booléen avec PGSQL_NOTICE_CLEAR.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.
7.1.0 | Le paramètre mode a été ajouté.

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, PHP 8)

pg_last_oid — Retourne l'identifiant de la dernière ligne

Description

pg_last_oid(PgSql\Result $result): string|int|false

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

Une instance PgSql\Result, retourné par pg_query(), pg_query_params(), ou pg_execute() (entre autres).

Valeurs de retour

Un entier ou 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.

Historique

Version | Description
8.1.0 | Le paramètre result attend désormais une instance de PgSql\Result ; auparavant, une ressource était attendu.

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, PHP 8)

pg_lo_close — Ferme un objet de grande taille PostgreSQL

Description

pg_lo_close(PgSql\Lob $lob): bool

pg_lo_close() ferme un objet large.

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

lob

Une instance PgSql\Lob, retourné par pg_lo_open().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre lob attend désormais une instance de PgSql\Lob ; auparavant, une ressource était attendu.

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, PHP 8)

pg_lo_create — Crée un objet de grande taille PostgreSQL

Description

pg_lo_create(PgSql\Connection $connection = ?, mixed $object_id = ?): int
pg_lo_create(mixed $object_id): int

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

Une instance PgSql\Connection. Quand connection est pas spécifié, la connexion par défaut est utilisé. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect()

Avertissement

À partir de PHP 8.1.0, utiliser la connexion par défaut est obsolète.

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 dépend d'une fonctionnalité qui est apparue avec PostgreSQL 8.1.

Valeurs de retour

Un objet large OID, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

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, PHP 8)

pg_lo_export — Exporte un objet de grande taille vers un fichier

Description

pg_lo_export(PgSql\Connection $connection = ?, int $oid, string $pathname): bool

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

Une instance PgSql\Connection. Quand connection est pas spécifié, la connexion par défaut est utilisé. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect()

Avertissement

À partir de PHP 8.1.0, utiliser la connexion par défaut est obsolète.

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.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

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, PHP 8)

pg_lo_import — Importe un objet de grande taille depuis un fichier

Description

pg_lo_import(PgSql\Connection $connection = ?, string $pathname, mixed $object_id = ?): int

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:

Auparavant, cette fonction s'appelait pg_loimport().

Liste de paramètres

connection

Une instance PgSql\Connection. Quand connection est pas spécifié, la connexion par défaut est utilisé. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect()

Avertissement

À partir de PHP 8.1.0, utiliser la connexion par défaut est obsolète.

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 dépend d'une fonctionnalité qui est apparue avec PostgreSQL 8.1.

Valeurs de retour

Le OID du nouvel objet de grande taille créé, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

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, PHP 8)

pg_lo_open — Ouvre un objet de grande taille PostgreSQL

Description

pg_lo_open(PgSql\Connection $connection, int $oid, string $mode): PgSql\Lob|false

pg_lo_open() ouvre un objet large dans la base de donnée et retourne une instance de PgSql\Lob pour qu'il puisse être manipulé.

Avertissement

Ne fermer pas la connexion à la base de données avant de fermer l'instance PgSql\Lob.

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

Une instance PgSql\Connection. Quand connection est pas spécifié, la connexion par défaut est utilisé. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect()

Avertissement

À partir de PHP 8.1.0, utiliser la connexion par défaut est obsolète.

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 instance PgSql\Lob, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Retourne désormais une instance de PgSql\Lob ; auparavant, une ressource était retourné.
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

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, PHP 8)

pg_lo_read_all — Lit un objet de grande taille en totalité

Description

pg_lo_read_all(PgSql\Lob $lob): int

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

lob

Une instance PgSql\Lob, retourné par pg_lo_open().

Valeurs de retour

Nombre d'octets lu.

Historique

Version | Description
8.1.0 | Le paramètre lob attend désormais une instance de PgSql\Lob ; auparavant, une ressource était attendu.

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, PHP 8)

pg_lo_read — Lit un objet de grande taille

Description

pg_lo_read(PgSql\Lob $lob, int $length = 8192): string|false

pg_lo_read() lit au plus length 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

lob

Une instance PgSql\Lob, retourné par pg_lo_open().

length

Un nombre maximal d'octets à retourner. Cet argument est optionnel.

Valeurs de retour

Une chaîne contenant length octets de l'objet de grande taille ou false en cas d'erreur.

Historique

Version | Description
8.1.0 | Le paramètre lob attend désormais une instance de PgSql\Lob ; auparavant, une ressource était attendu.

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, PHP 8)

pg_lo_seek — Modifie la position dans un objet de grande taille

Description

pg_lo_seek(PgSql\Lob $lob, int $offset, int $whence = SEEK_CUR): bool

pg_lo_seek() modifie la position du pointeur dans l'instance PgSql\Lob.

Pour utiliser un objet de grande taille (lo), il est nécessaire de le faire dans une transaction.

Liste de paramètres

lob

Une instance PgSql\Lob, retourné 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.

Historique

Version | Description
8.1.0 | Le paramètre lob attend désormais une instance de PgSql\Lob ; auparavant, une ressource était attendu.

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;
?>

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, PHP 8)

pg_lo_tell — Retourne la position courante dans un objet de grande taille PostgreSQL

Description

pg_lo_tell(PgSql\Lob $lob): int

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

lob

Une instance PgSql\Lob, retourné 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.

Historique

Version | Description
8.1.0 | Le paramètre lob attend désormais une instance de PgSql\Lob ; auparavant, une ressource était attendu.

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

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

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

pg_lo_truncate — Tronque un objet large

Description

pg_lo_truncate(PgSql\Lob $lob, int $size): bool

pg_lo_truncate() tronque une instance PgSql\Lob.

Pour utiliser l'interface des objets larges, il est nécessaire de l'enfermer dans un verrou de transaction.

Liste de paramètres

lob

Une instance PgSql\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.

Historique

Version | Description
8.1.0 | Le paramètre lob attend désormais une instance de PgSql\Lob ; auparavant, une ressource était attendu.

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;
?>

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, PHP 8)

pg_lo_unlink — Efface un objet de grande taille PostgreSQL

Description

pg_lo_unlink(PgSql\Connection $connection, int $oid): bool

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

Une instance PgSql\Connection. Quand connection est pas spécifié, la connexion par défaut est utilisé. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect()

Avertissement

À partir de PHP 8.1.0, utiliser la connexion par défaut est obsolète.

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.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

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, PHP 8)

pg_lo_write — Écrit un objet de grande taille PostgreSQL

Description

pg_lo_write(PgSql\Lob $lob, string $data, ?int $length = null): int|false

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

lob

Une instance PgSql\Lob, retourné par pg_lo_open().

data

Les données à être écrites dans l'objet de grande taille. Si length est un int et est inférieur à la grandeur de data, seul les length premiers octets y seront écrits.

length

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.

Historique

Version | Description
8.1.0 | Le paramètre lob attend désormais une instance de PgSql\Lob ; auparavant, une ressource était attendu.
8.0.0 | connection est désormais nullable.

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, PHP 8)

pg_meta_data — Lit les métadonnées de la table PostgreSQL

Description

pg_meta_data(PgSql\Connection $connection, string $table_name, bool $extended = false): array|false

pg_meta_data() retourne la définition de la table table_name sous forme de tableau.

Liste de paramètres

connection

Une instance PgSql\Connection.

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 si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

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)
}
}

Voir aussi

  • pg_convert() - Convertit des valeurs d'un tableaux associatifs en une forme convenable pour des requêtes SQL


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, PHP 8)

pg_num_fields — Retourne le nombre de champ

Description

pg_num_fields(PgSql\Result $result): int

pg_num_fields() retourne le nombre de champs (ou colonnes) d'une instance PgSql\Result.

Note:

Auparavant, cette fonction s'appelait pg_numfields().

Liste de paramètres

result

Une instance PgSql\Result, 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é.

Historique

Version | Description
8.1.0 | Le paramètre result attend désormais une instance de PgSql\Result ; auparavant, une ressource était attendu.

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, PHP 8)

pg_num_rows — Retourne le nombre de lignes PostgreSQL

Description

pg_num_rows(PgSql\Result $result): int

pg_num_rows() retourne le nombre de lignes d'une instance PgSql\Result.

Note:

Auparavant, cette fonction s'appelait pg_numrows().

Liste de paramètres

result

Une instance PgSql\Result, 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é.

Historique

Version | Description
8.1.0 | Le paramètre result attend désormais une instance de PgSql\Result ; auparavant, une ressource était attendu.

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, PHP 8)

pg_options — Retourne les options PostgreSQL

Description

pg_options(?PgSql\Connection $connection = null): string

pg_options() retourne une chaîne contenant les options de la connexion PostgreSQL connection.

Liste de paramètres

connection

Une instance PgSql\Connection. Quand connection est null, la connexion par défaut est utilisé. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect()

Avertissement

À partir de PHP 8.1.0, utiliser la connexion par défaut est obsolète.

Valeurs de retour

Une chaîne contenant les options de connection.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.
8.0.0 | connection est désormais nullable.

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, PHP 8)

pg_parameter_status — Consulte un paramètre de configuration courant du serveur

Description

pg_parameter_status(PgSql\Connection $connection = ?, string $param_name): string

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

Une instance PgSql\Connection. Quand connection est pas spécifié, la connexion par défaut est utilisé. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect()

Avertissement

À partir de PHP 8.1.0, utiliser la connexion par défaut est obsolète.

param_name

Les valeurs possibles de param_name sont server_version, server_encoding, client_encoding, is_superuser, session_authorization, DateStyle, TimeZone et integer_datetimes. Il est à noter que cette valeur est sensible à la casse.

Valeurs de retour

Une chaîne contenant la valeur du paramètre, false en cas d'échec ou du paramètre param_name invalide.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

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, PHP 8)

pg_pconnect — Établit une connexion PostgreSQL persistante

Description

pg_pconnect(string $connection_string, int $flags = 0): PgSql\Connection|false

pg_pconnect() retourne une instance PgSql\Connection de connexion persistante.

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 à flags.

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.

flags

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

Retourne une instance de PgSql\Connection en cas de succès, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Retourne désormais une instance de PgSql\Connection ; auparavant, une ressource était retourné.

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, PHP 8)

pg_ping — Ping la connexion à la base

Description

pg_ping(?PgSql\Connection $connection = null): bool

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

Une instance PgSql\Connection. Quand connection est null, la connexion par défaut est utilisé. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect()

Avertissement

À partir de PHP 8.1.0, utiliser la connexion par défaut est obsolète.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.
8.0.0 | connection est désormais nullable.

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, PHP 8)

pg_port — Retourne le numéro de port

Description

pg_port(?PgSql\Connection $connection = null): string

pg_port() retourne le numéro de port de la connexion donnée par connection.

Liste de paramètres

connection

Une instance PgSql\Connection. Quand connection est null, la connexion par défaut est utilisé. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect()

Avertissement

À partir de PHP 8.1.0, utiliser la connexion par défaut est obsolète.

Valeurs de retour

Une chaîne de caractères contenant le numéro du port du serveur de base de données identifié par connection ou une chaîne vide en cas d'erreur.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.
8.0.0 | connection est désormais nullable.

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, PHP 8)

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

pg_prepare(PgSql\Connection $connection = ?, string $stmtname, string $query): PgSql\Result|false

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

Une instance PgSql\Connection. Quand connection est pas spécifié, la connexion par défaut est utilisé. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect()

Avertissement

À partir de PHP 8.1.0, utiliser la connexion par défaut est obsolète.

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 instance PgSql\Result en cas de succès, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Retourne désormais une instance de PgSql\Result instance ; auparavant, une ressource était retourné.
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

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, PHP 8)

pg_put_line — Envoie une chaîne au serveur PostgreSQL

Description

pg_put_line(PgSql\Connection $connection = ?, string $data): bool

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

Une instance PgSql\Connection. Quand connection est pas spécifié, la connexion par défaut est utilisé. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect()

Avertissement

À partir de PHP 8.1.0, utiliser la connexion par défaut est obsolète.

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.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

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, PHP 8)

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

pg_query_params(PgSql\Connection $connection = ?, string $query, array $params): PgSql\Result|false

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 évite 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

Une instance PgSql\Connection. Quand connection est pas spécifié, la connexion par défaut est utilisé. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect()

Avertissement

À partir de PHP 8.1.0, utiliser la connexion par défaut est obsolète.

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 instance PgSql\Result en cas de succès, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Retourne désormais une instance de PgSql\Result instance ; auparavant, une ressource était retourné.
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

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, PHP 8)

pg_query — Exécute une requête PostgreSQL

Description

pg_query(PgSql\Connection $connection = ?, string $query): PgSql\Result|false

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

Une instance PgSql\Connection. Quand connection est pas spécifié, la connexion par défaut est utilisé. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect()

Avertissement

À partir de PHP 8.1.0, utiliser la connexion par défaut est obsolète.

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 instance PgSql\Result en cas de succès, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Retourne désormais une instance de PgSql\Result instance ; auparavant, une ressource était retourné.
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

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, PHP 8)

pg_result_error_field — Retourne un champ individuel d'un rapport d'erreur

Description

pg_result_error_field(PgSql\Result $result, int $field_code): string|false|null

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 field_code.

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 instance PgSql\Result, retourné par pg_query(), pg_query_params(), ou pg_execute() (entre autres).

field_code

Les valeurs possibles de field_code 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.

Historique

Version | Description
8.1.0 | Le paramètre result attend désormais une instance de PgSql\Result ; auparavant, une ressource était attendu.

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, PHP 8)

pg_result_error — Lit le message d'erreur associé à un résultat

Description

pg_result_error(PgSql\Result $result): string|false

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

Une instance PgSql\Result, 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é.

Historique

Version | Description
8.1.0 | Le paramètre result attend désormais une instance de PgSql\Result ; auparavant, une ressource était attendu.

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


Définit la position de la ligne dans un résultat

  • « pg_result_error
  • pg_result_status »
  • PHP Manual
  • Fonctions PostgreSQL
  • Définit la position de la ligne dans un résultat

pg_result_seek

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_result_seek — Définit la position de la ligne dans un résultat

Description

pg_result_seek(resource $result, int $row): bool

pg_result_seek() choisit la ligne offset comme ligne courante dans le résultat result.

Liste de paramètres

result

Une instance PgSql\Result, retourné par pg_query(), pg_query_params(), ou pg_execute() (entre autres).

row

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.

Historique

Version | Description
8.1.0 | Le paramètre result attend désormais une instance de PgSql\Result ; auparavant, une ressource était attendu.

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, PHP 8)

pg_result_status — Lit le statut du résultat

Description

pg_result_status(PgSql\Result $result, int $mode = PGSQL_STATUS_LONG): string|int

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

Une instance PgSql\Result, retourné par pg_query(), pg_query_params(), ou pg_execute() (entre autres).

mode

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é.

Historique

Version | Description
8.1.0 | Le paramètre result attend désormais une instance de PgSql\Result ; auparavant, une ressource était attendu.

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, PHP 8)

pg_select — Effectue une sélection PostgreSQL

Description

pg_select(
PgSql\Connection $connection,
string $table_name,
array $conditions,
int $flags = PGSQL_DML_EXEC,
int $mode = PGSQL_ASSOC
): array|string|false

pg_select() sélectionne les enregistrements par conditions qui est au format field=>value. Lorsque la requête réussit, elle retourne un tableau contenant tous les enregistrements et champs qui vérifient la condition spécifiée parconditions.

Si flags est spécifié, pg_convert() est appliqué à values avec les drapeaux fournit.

Si le paramètre mode est défini, la valeur de retour sera sous la forme d'un tableau indexé avec PGSQL_NUM, un tableau associatif avec PGSQL_ASSOC (par défaut), ou les deux avec PGSQL_BOTH.

Par défaut pg_delete() passe des valeurs brutes. Les valeurs doivent être échappé ou l'option PGSQL_DML_ESCAPE doit être fournit. PGSQL_DML_ESCAPE met des guillemets et échappe les paramètres/idantifiants. Par conséquent, les noms de table/colonnes doivent être sensible à la casse.

Notez que ni l'échappement ni les requêtes préparer peuvent protéger des requêtes LIKE, JSON, Tableaux, Regex, etc. Ces paramètres devraient être traité en fonction de leur contexte. C'est à dire échapper/valider les valeurs.

Liste de paramètres

connection

Une instance PgSql\Connection.

table_name

Nom de la table à partir de laquelle sélectionner les lignes.

conditions

Un array dont les clés sont les noms des champs dans la table table_name, et dont les valeurs sont les conditions qu'une ligne doit remplir pour être récupérée.

flags

Un nombre quelconque de PGSQL_CONV_FORCE_NULL, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC ou PGSQL_DML_STRING combinés. Si PGSQL_DML_STRING fait partie des flags, alors la chaîne de requête est renvoyée. Lorsque PGSQL_DML_NO_CONV ou PGSQL_DML_ESCAPE est activé, pg_convert() n'est pas appelée en interne.

mode

Un nombre quelconque de PGSQL_ASSOC, PGSQL_NUM ou PGSQL_BOTH. Si PGSQL_ASSOC est défini, la valeur de retour sera un array associatif, avec PGSQL_NUM, la valeur de retour sera un array indexé numériquement, et avec PGSQL_BOTH, la valeur de retour sera à la fois un array associatif et numériquement indexé.

Valeurs de retour

Retourne une string si PGSQL_DML_STRING est fournit via flags, sinon ceci retourne un array en cas de succès, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.
7.1.0 | Le paramètre mode a été ajouté.

Exemples

Exemple #1 Exemple avec pg_select()

<?php
$db = pg_connect ('dbname=foo');
// Ceci est sûr quelque peu, car toutes les valeurs sont échappées
// Cependant PostgreSSQL supporte les JSON/Tableaux. Ceci ne sont pas
// sûr ni par échappement ni par les requêtes préparés.
$rec = pg_select($db, 'post_log', $_POST, PG_DML_ESCAPE);
if ($rec) {
echo "Lignes lues\n";
var_dump($rec);
} else {
echo "Problème dans les données utilisateur\n";
}
?>

Voir aussi

  • pg_convert() - Convertit des valeurs d'un tableaux associatifs en une forme convenable pour des requêtes SQL


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, PHP 8)

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

pg_send_execute(PgSql\Connection $connection, string $statement_name, array $params): int|bool

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

Une instance PgSql\Connection.

statement_name

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 ou 0 en cas d'échec. Utilisez pg_get_result() pour déterminer le résultat de la requête.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

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, PHP 8)

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

pg_send_prepare(PgSql\Connection $connection, string $statement_name, string $query): int|bool

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

Une instance PgSql\Connection.

statement_name

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 ou 0 en cas d'échec. Utilisez pg_get_result() pour déterminer le résultat de la requête.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

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, PHP 8)

pg_send_query_params — Envoie une commande et sépare les paramètres au serveur sans attendre le(s) résultat(s)

Description

pg_send_query_params(PgSql\Connection $connection, string $query, array $params): int|bool

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

Une instance PgSql\Connection.

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

Retourne true en cas de succès, false ou 0 en cas d'échec. Utilisez pg_get_result() pour déterminer le résultat de la requête.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

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, PHP 8)

pg_send_query — Exécute une requête PostgreSQL asynchrone

Description

pg_send_query(PgSql\Connection $connection, string $query): int|bool

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

Retourne true en cas de succès, false ou 0 en cas d'échec. Utilisez pg_get_result() pour déterminer le résultat de la requête.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

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_context_visibility »
  • PHP Manual
  • Fonctions PostgreSQL
  • Choisit l'encodage du client PostgreSQL

pg_set_client_encoding

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

pg_set_client_encoding — Choisit l'encodage du client PostgreSQL

Description

pg_set_client_encoding(PgSql\Connection $connection = ?, string $encoding): int

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

Une instance PgSql\Connection. Quand connection est pas spécifié, la connexion par défaut est utilisé. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect()

Avertissement

À partir de PHP 8.1.0, utiliser la connexion par défaut est obsolète.

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.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

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 visibilité des messages d'erreur du contexte retournés par pg_last_error et pg_result_error

  • « pg_set_client_encoding
  • pg_set_error_verbosity »
  • PHP Manual
  • Fonctions PostgreSQL
  • Détermine la visibilité des messages d'erreur du contexte retournés par pg_last_error et pg_result_error

pg_set_error_context_visibility

(PHP 8 >= 8.3.0)

pg_set_error_context_visibility — Détermine la visibilité des messages d'erreur du contexte retournés par pg_last_error() et pg_result_error()

Description

pg_set_error_context_visibility(PgSql\Connection $connection, int $visibility): int

Détermine la visibilité des messages d'erreur du contexte retournés par pg_last_error() et pg_result_error()

Liste de paramètres

connection

Une instance PgSql\Connection.

visibility

La visibilité requise : PGSQL_SHOW_CONTEXT_NEVER, PGSQL_SHOW_CONTEXT_ERRORS ou PGSQL_SHOW_CONTEXT_ALWAYS.

Valeurs de retour

Le niveau de visibilité précédent : PGSQL_SHOW_CONTEXT_NEVER, PGSQL_SHOW_CONTEXT_ERRORS ou PGSQL_SHOW_CONTEXT_ALWAYS.

Exemples

Exemple #1 pg_set_error_context_visibility() exemple

<?php
$dbconn = pg_connect("dbname=publisher") or die("Impossible de se connecter");
if (!pg_connection_busy($dbconn)) {
pg_send_query($dbconn, "select * from doesnotexist;");
}
pg_set_error_context_visibility($dbconn, PGSQL_SHOW_CONTEXT_ALWAYS);
$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


Détermine la le degré des messages retournés par pg_last_error et pg_result_error

  • « pg_set_error_context_visibility
  • 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, PHP 8)

pg_set_error_verbosity — Détermine la le degré des messages retournés par pg_last_error() et pg_result_error()

Description

pg_set_error_verbosity(PgSql\Connection $connection = ?, int $verbosity): int

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

Une instance PgSql\Connection. Quand connection est pas spécifié, la connexion par défaut est utilisé. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect()

Avertissement

À partir de PHP 8.1.0, utiliser la connexion par défaut est obsolète.

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.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

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, PHP 8)

pg_socket — Récupère un gestionnaire de lecture seul sur le socket sous-jacent d'une connexion PostgreSQL

Description

pg_socket(PgSql\Connection $connection): resource|false

La fonction pg_socket() retourne une ressource en lecture seule correspondant au socket sous-jacent de la connexion PostgreSQL fournie.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

connection

Une instance PgSql\Connection.

Valeurs de retour

Une ressource de socket en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.


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, PHP 8)

pg_trace — Active le suivi d'une connexion PostgreSQL

Description

pg_trace(
string $filename,
string $mode = "w",
?PgSql\Connection $connection = null,
int $trace_mode = 0
): bool

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

filename

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

Une instance PgSql\Connection. Quand connection est null, la connexion par défaut est utilisé. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect()

Avertissement

À partir de PHP 8.1.0, utiliser la connexion par défaut est obsolète.

trace_mode

Un mode de trace facultatif avec les constantes suivantes : PGSQL_TRACE_SUPPRESS_TIMESTAMPS et PGSQL_TRACE_REGRESS_MODE

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.3.0 | trace_mode a été ajouté.
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.
8.0.0 | connection est désormais nullable.

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, PHP 8)

pg_transaction_status — Retourne le statut de la transaction en cours du serveur

Description

pg_transaction_status(PgSql\Connection $connection): int

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

Une instance PgSql\Connection.

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.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

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, PHP 8)

pg_tty — Retourne le nom de TTY associé à la connexion

Description

pg_tty(?PgSql\Connection $connection = null): string

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

Une instance PgSql\Connection. Quand connection est null, la connexion par défaut est utilisé. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect()

Avertissement

À partir de PHP 8.1.0, utiliser la connexion par défaut est obsolète.

Valeurs de retour

Une chaîne contenant le débogue TTY de la connexion connection.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.
8.0.0 | connection est désormais nullable.

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, PHP 8)

pg_unescape_bytea — Supprime la protection d'une chaîne de type bytea

Description

pg_unescape_bytea(string $string): string

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

string

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);
?>

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, PHP 8)

pg_untrace — Termine le suivi d'une connexion PostgreSQL

Description

pg_untrace(?PgSql\Connection $connection = null): true

pg_untrace() termine le suivi d'une connexion PostgreSQL, initiée avec pg_trace().

Liste de paramètres

connection

Une instance PgSql\Connection. Quand connection est null, la connexion par défaut est utilisé. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect()

Avertissement

À partir de PHP 8.1.0, utiliser la connexion par défaut est obsolète.

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.2.0 | Le type de retour est maintenant true, auparavant il était bool.
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.
8.0.0 | connection est désormais nullable.

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, PHP 8)

pg_update — Modifie les lignes d'une table

Description

pg_update(
PgSql\Connection $connection,
string $table_name,
array $values,
array $conditions,
int $flags = PGSQL_DML_EXEC
): string|bool

pg_update() modifie les lignes de la table table_name, qui vérifient la condition conditions avec values.

Si flags est spécifié, pg_convert() est appliqué à values avec les drapeaux fournit.

Par défaut pg_update() passe des valeurs brutes. Les valeurs doivent être échappé ou le drapeau PGSQL_DML_ESCAPE doit être spécifié dans flags. PGSQL_DML_ESCAPE met des guillemets et échappe les paramètres/identifiants. Par conséquent, les noms de table/colonnes deviennent sensible à la casse.

Notez que ni l'échappement ni les requêtes préparer peuvent protéger des requêtes LIKE, JSON, Tableaux, Regex, etc. Ces paramètres devraient être traité en fonction de leur contexte. C'est à dire échapper/valider les valeurs.

Liste de paramètres

connection

Une instance PgSql\Connection.

table_name

Le nom de la table dans laquelle les lignes seront mises à jour.

values

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.

conditions

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.

flags

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 flags, 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 flags.

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

Exemples

Exemple #1 Exemple avec pg_update()

<?php
$db = pg_connect ('dbname=foo');
$data = array('field1'=>'AA', 'field2'=>'BB');

// Ceci est sûr quelque peu, car toutes les valeurs sont échappées
// Cependant PostgreSSQL supporte les JSON/Tableaux. Ceci ne sont pas
// sûr ni par échappement ni par les requêtes préparés.
$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";
}
?>

Voir aussi

  • pg_convert() - Convertit des valeurs d'un tableaux associatifs en une forme convenable pour des requêtes SQL


Retourne un tableau avec les versions du client, du protocole et du serveur (si disponible)

  • « pg_update
  • PgSql\Connection »
  • 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, PHP 8)

pg_version — Retourne un tableau avec les versions du client, du protocole et du serveur (si disponible)

Description

pg_version(?PgSql\Connection $connection = null): array

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

Une instance PgSql\Connection. Quand connection est null, la connexion par défaut est utilisé. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect()

Avertissement

À partir de PHP 8.1.0, utiliser la connexion par défaut est obsolète.

Valeurs de retour

Retourne un tableau avec les clés client, protocol et server et valeurs (si disponibles).

Historique

Version | Description
8.1.0 | Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.
8.0.0 | connection est désormais nullable.

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


La classe PgSql\Connection

(PHP 8 >= 8.1.0)

Introduction

Une classe complètement opaque qui remplace la ressource pgsql link à partir de PHP 8.1.0.

Synopsis de la classe

final class PgSql\Connection {
}


La classe PgSql\Result

(PHP 8 >= 8.1.0)

Introduction

Une classe complètement opaque qui remplace la ressource pgsql result à partir de PHP 8.1.0.

Synopsis de la classe

final class PgSql\Result {
}


La classe PgSql\Lob

(PHP 8 >= 8.1.0)

Introduction

Une classe complètement opaque qui remplace la ressource pgsql large object à partir de PHP 8.1.0.

Synopsis de la classe

final class PgSql\Lob {
}


SQLite3

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • SQLite3 — La classe SQLite3
    • SQLite3::backup — Backup one database to another database
    • 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 fonction scalaire SQL
    • SQLite3::enableExceptions — Active le lancement d'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 correspondant à 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 — Ouvre un flux de ressource pour lire un 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::setAuthorizer — Configures a callback to be used as an authorizer to limit what a statement can do
    • SQLite3::version — Retourne la version de la bibliothèque SQLite3
  • SQLite3Exception — The SQLite3Exception class
  • SQLite3Stmt — La classe SQLite3Stmt
    • SQLite3Stmt::bindParam — Lie un paramètre à une variable de déclaration
    • SQLite3Stmt::bindValue — Lie la valeur d'un paramètre à une variable de déclaration
    • SQLite3Stmt::clear — Supprime tous les paramètres actuellement liés
    • SQLite3Stmt::close — Ferme une requête préparée
    • SQLite3Stmt::__construct — Constructs an SQLite3Stmt object
    • SQLite3Stmt::execute — Exécute une requête préparée
    • SQLite3Stmt::getSQL — Récupère le SQL d'une déclaration
    • SQLite3Stmt::paramCount — Retourne le nombre de paramètres d'une requête préparée
    • SQLite3Stmt::readOnly — Détermine si une déclaration est uniquement en lecture seule
    • 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::__construct — Constructs an SQLite3Result
    • 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.


Pré-requis

Depuis PHP 7.4.0, » libsqlite = 3.7.4 est requise. Auparavant, la librairie libsqlite intégrée aurait pu être utilisé à la place.


Installation

Le support de SQLite3 est activé par défaut. 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.

Note: Installation supplémentaire sur Windows à partir de PHP 7.4.0

Afin de faire fonctionner cette extension, quelques bibliothèques DLL doivent être disponibles via le PATH du système Windows. Lisez la F.A.Q 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 : libsqlite3.dll.


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 | Historique
sqlite3.extension_dir | "" | INI_SYSTEM |
sqlite3.defensive | 1 | INI_USER | Disponible à partir de PHP 7.2.17 et 7.3.4 pour libsqlite = 3.26.0. Antérieur à PHP 8.2.0 ce paramètre pouvait seulement être modifié en tant que 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.

sqlite3.defensive bool

Lorsque le drapeau défensif est activé, les fonctionnalités du langage qui permette à du SQL ordinaire de corrompre délibérément les fichiers de la base de données sont désactivées. Ceci interdit d'écrire directement dans le schéma, les tables d’ombre (telles que les tables de données FTS) ou la table virtuelle sqlite_dbpage. Ce paramètre php.ini n'est effectif que pour libsqlite = 3.26.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.

SQLITE3_ASSOC (int)
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 (int)
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 (int)
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 (int)
Représente la classe de stockage INTEGER de SQLite3.
SQLITE3_FLOAT (int)
Représente la classe de stockage REAL (FLOAT) de SQLite3.
SQLITE3_TEXT (int)
Représente la classe de stockage TEXT de SQLite3.
SQLITE3_BLOB (int)
Représente la classe de stockage BLOB de SQLite3.
SQLITE3_NULL (int)
Représente la classe de stockage NULL de SQLite3.
SQLITE3_OPEN_READONLY (int)
Spécifie que la base de données SQLite3 doit être ouverte en lecture seule.
SQLITE3_OPEN_READWRITE (int)
Spécifie que la base de données SQLite3 doit être ouverte en lecture et en écriture.
SQLITE3_OPEN_CREATE (int)
Spécifie que la base de données SQLite3 doit être créée si elle n'existe pas déjà.
SQLITE3_DETERMINISTIC (int)
Spécifie qu'une fonction créée avec SQLite3::createFunction() est déterministe, c'est-à-dire qu'elle retourne toujours le même résultat étant donné les mêmes entrées dans une seule instruction SQL. (disponible depuis PHP 7.1.4)


La classe SQLite3

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Introduction

Une classe d'interface avec les bases de données SQLite3.

Synopsis de la classe

class SQLite3 {
/* Constantes */
public const int OK;
public const int DENY;
public const int IGNORE;
public const int CREATE_INDEX;
public const int CREATE_TABLE;
public const int CREATE_TEMP_INDEX;
public const int CREATE_TEMP_TABLE;
public const int CREATE_TEMP_TRIGGER;
public const int CREATE_TEMP_VIEW;
public const int CREATE_TRIGGER;
public const int CREATE_VIEW;
public const int DELETE;
public const int DROP_INDEX;
public const int DROP_TABLE;
public const int DROP_TEMP_INDEX;
public const int DROP_TEMP_TABLE;
public const int DROP_TEMP_TRIGGER;
public const int DROP_TEMP_VIEW;
public const int DROP_TRIGGER;
public const int DROP_VIEW;
public const int INSERT;
public const int PRAGMA;
public const int READ;
public const int SELECT;
public const int TRANSACTION;
public const int UPDATE;
public const int ATTACH;
public const int DETACH;
public const int ALTER_TABLE;
public const int REINDEX;
public const int ANALYZE;
public const int CREATE_VTABLE;
public const int DROP_VTABLE;
public const int FUNCTION;
public const int SAVEPOINT;
public const int COPY;
public const int RECURSIVE;
/* Méthodes */
public __construct(string $filename, int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE, string $encryptionKey = "")
public backup(SQLite3 $destination, string $sourceDatabase = "main", string $destinationDatabase = "main"): bool
public busyTimeout(int $milliseconds): bool
public changes(): int
public close(): bool
public createAggregate(
string $name,
callable $stepCallback,
callable $finalCallback,
int $argCount = -1
): bool
public createCollation(string $name, callable $callback): bool
public createFunction(
string $name,
callable $callback,
int $argCount = -1,
int $flags = 0
): bool
public enableExceptions(bool $enable = false): bool
public static escapeString(string $string): string
public exec(string $query): bool
public lastErrorCode(): int
public lastErrorMsg(): string
public lastInsertRowID(): int
public loadExtension(string $name): bool
public open(string $filename, int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE, string $encryptionKey = ""): void
public openBlob(
string $table,
string $column,
int $rowid,
string $database = "main",
int $flags = SQLITE3_OPEN_READONLY
): resource|false
public prepare(string $query): SQLite3Stmt|false
public query(string $query): SQLite3Result|false
public querySingle(string $query, bool $entireRow = false): mixed
public setAuthorizer(?callable $callback): bool
public static version(): array
}

Constantes pré-définies

SQLite3::OK

SQLite3::DENY

SQLite3::IGNORE

SQLite3::CREATE_INDEX

SQLite3::CREATE_TABLE

SQLite3::CREATE_TEMP_INDEX

SQLite3::CREATE_TEMP_TABLE

SQLite3::CREATE_TEMP_TRIGGER

SQLite3::CREATE_TEMP_VIEW

SQLite3::CREATE_TRIGGER

SQLite3::CREATE_VIEW

SQLite3::DELETE

SQLite3::DROP_INDEX

SQLite3::DROP_TABLE

SQLite3::DROP_TEMP_INDEX

SQLite3::DROP_TEMP_TABLE

SQLite3::DROP_TEMP_TRIGGER

SQLite3::DROP_TEMP_VIEW

SQLite3::DROP_TRIGGER

SQLite3::DROP_VIEW

SQLite3::INSERT

SQLite3::PRAGMA

SQLite3::READ

SQLite3::SELECT

SQLite3::TRANSACTION

SQLite3::UPDATE

SQLite3::ATTACH

SQLite3::DETACH

SQLite3::ALTER_TABLE

SQLite3::REINDEX

SQLite3::ANALYZE

SQLite3::CREATE_VTABLE

SQLite3::DROP_VTABLE

SQLite3::FUNCTION

SQLite3::SAVEPOINT

SQLite3::COPY

SQLite3::RECURSIVE

Sommaire

  • SQLite3::backup — Backup one database to another database
  • 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 fonction scalaire SQL
  • SQLite3::enableExceptions — Active le lancement d'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 correspondant à 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 — Ouvre un flux de ressource pour lire un 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::setAuthorizer — Configures a callback to be used as an authorizer to limit what a statement can do
  • SQLite3::version — Retourne la version de la bibliothèque SQLite3


Backup one database to another database

  • « SQLite3
  • SQLite3::busyTimeout »
  • PHP Manual
  • SQLite3
  • Backup one database to another database

SQLite3::backup

(PHP 7 >= 7.4.0, PHP 8)

SQLite3::backup — Backup one database to another database

Description

public SQLite3::backup(SQLite3 $destination, string $sourceDatabase = "main", string $destinationDatabase = "main"): bool

SQLite3::backup() copies the contents of one database into another, overwriting the contents of the destination database. It is useful either for creating backups of databases or for copying in-memory databases to or from persistent files.

Astuce

As of SQLite 3.27.0 (2019-02-07), it is also possible to use the statement VACUUM INTO 'file.db'; to backup the database to a new file.

Liste de paramètres

destination

A database connection opened with SQLite3::open().

sourceDatabase

The database name is "main" for the main database, "temp" for the temporary database, or the name specified after the AS keyword in an ATTACH statement for an attached database.

destinationDatabase

Analogous to sourceDatabase but for the destination.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 Backup an existing database

<?php
// $conn is a connection to an already opened sqlite3 database

$backup = new SQLite3('backup.sqlite');
$conn->backup($backup);
?>


Définit le gestionnaire d'attente de la connexion

  • « SQLite3::backup
  • SQLite3::changes »
  • PHP Manual
  • SQLite3
  • Définit le gestionnaire d'attente de la connexion

SQLite3::busyTimeout

(PHP 5 >= 5.3.3, PHP 7, PHP 8)

SQLite3::busyTimeout — Définit le gestionnaire d'attente de la connexion

Description

public SQLite3::busyTimeout(int $milliseconds): bool

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

milliseconds

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, ou 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, PHP 8)

SQLite3::changes — Retourne le nombre de lignes modifiées (ou insérées, effacées) par la dernière requête SQL

Description

public SQLite3::changes(): int

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, PHP 8)

SQLite3::close — Ferme la connexion avec la base de données

Description

public SQLite3::close(): bool

Ferme la connexion avec la base de donné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.

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, PHP 8)

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 $encryptionKey = "")

Initialise un objet SQLite3 et ouvre une connexion à la base de données SQLite 3. Si le chiffrement a été inclus 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. Si filename est une chaîne vide, une base de données temporaire privée sera créée sur le disque. Cette base de données privée sera automatiquement supprimée dès que la connexion de la base de données est fermée.

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.

encryptionKey

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.

Erreurs / Exceptions

Lance une Exception en cas d'échec.

Historique

Version | Description
7.0.10 | Le filename peut maintenant être vide pour utiliser une base de données privée, temporaire sur disque.

Exemples

Exemple #1 Exemple avec SQLite3::__construct()

<?php
$db = new SQLite3('mysqlitedb.db');

$db->exec('CREATE TABLE foo (bar TEXT)');
$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, PHP 8)

SQLite3::createAggregate — Enregistre une fonction PHP à utiliser comme fonction d'aggrégation SQLite

Description

public SQLite3::createAggregate(
string $name,
callable $stepCallback,
callable $finalCallback,
int $argCount = -1
): bool

Enregistre une fonction PHP ou une fonction définie par l'utilisateur à utiliser comme fonction d'agrégation SQL, qui sera utilisée dans les requêtes SQL.

Liste de paramètres

name

Nom de la fonction d'agrégation SQL à créer ou à redéfinir.

stepCallback

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 :

step(
mixed $context,
int $rownumber,
mixed $value,
mixed ...$values
): mixed
context

null pour la première ligne ; sur les lignes suivantes ceci aura la valeur qui a été précedement retourné par la fonction step ; vous devriez utiliser ceci pour maintenir l'état d'aggregation.

rownumber

Le numéro de ligne courante.

value

Le premier argument à passer à l'agrégateur.

values

Arguments supplémentaires à passer à l'agrégateur.

La valeur retournée de cette fonction sera utilisée comme argument context lors du prochain appel d'une fonction d'étape ou finale.

finalCallback

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 doit retourner un type compris par SQLite (i.e. un type scalaire).

Cette fonction doit être définie comme :

fini(mixed $context, int $rownumber): mixed
context

Contient la valeur de retour du tout dernier appel à la fonction step.

rownumber

Toujours 0.

La valeur de retour de cette fonction sera utilisée comme valeur de retour pour l'agrégation.

argCount

Le nombre d'arguments pris par la fonction d'agrégation SQL. Si ce nombre est négatif, alors la fonction d'agrégation SQL pourra prendre un nombre non défini d'arguments.

Valeurs de retour

Retourne true si la création de l'agrégat a réussie, ou false si une erreur survient.

Exemples

Exemple #1 Exemple d'une fonction d'agrégation avec max_length

<?php
$data = array(
'one',
'two',
'three',
'four',
'five',
'six',
'seven',
'eight',
'nine',
'ten',
);
$db = new SQLite3(':memory:');
$db->exec("CREATE TABLE strings(a)");
$insert = $db->prepare('INSERT INTO strings VALUES (?)');
foreach ($data as $str) {
$insert->bindValue(1, $str);
$insert->execute();
}
$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 === null ? 0 : $context;
}

$db->createAggregate('max_len', 'max_len_step', 'max_len_finalize');

var_dump($db->querySingle('SELECT max_len(a) from strings'));
?>

L'exemple ci-dessus va afficher :

int(5)

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 SQLite3::createAggregate() pour surcharger les fonctions natives de SQLite.


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, PHP 8)

SQLite3::createCollation — Enregistre une fonction PHP pour l'utiliser comme fonction de classement SQL

Description

public SQLite3::createCollation(string $name, callable $callback): bool

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(), c'est à dire elle doit retourner -1, 1, ou 0 si la première chaîne trie avant, après, ou est équivalent à la seconde.

Cette fonction doit être définit comme :

collation(mixed $value1, mixed $value2): int

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 fonction scalaire SQL

  • « SQLite3::createCollation
  • SQLite3::enableExceptions »
  • PHP Manual
  • SQLite3
  • Enregistre une fonction PHP à utiliser comme fonction scalaire SQL

SQLite3::createFunction

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::createFunction — Enregistre une fonction PHP à utiliser comme fonction scalaire SQL

Description

public SQLite3::createFunction(
string $name,
callable $callback,
int $argCount = -1,
int $flags = 0
): bool

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.

Cette fonction doit être définit comme :

callback(mixed $value, mixed ...$values): mixed
value

Le premier argument à passer à la fonction SQL.

values

Arguments supplémentaires à passer à la fonction SQL.

argCount

Nombre d'arguments que la fonction SQL prend. Si ce paramètre est -1, la fonction SQL peut prendre n'importe quel nombre d'arguments.

flags

Une conjonction d'opérations de bits d'indicateurs. Actuellement, seul SQLITE3_DETERMINISTIC est pris en charge, ce qui spécifie que la fonction retourne toujours le même résultat étant donné les mêmes entrées dans une seule instruction SQL.

Valeurs de retour

Retourne true si la fonction a été créée avec succès, false si une erreur survient.

Historique

Version | Description
7.1.4 | Le paramètre flags a été ajouté.

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")'));
?>

Résultat de l'exemple ci-dessus est similaire à :

string(32) "098f6bcd4621d373cade4e832627b4f6"


Active le lancement d'exceptions

  • « SQLite3::createFunction
  • SQLite3::escapeString »
  • PHP Manual
  • SQLite3
  • Active le lancement d'exceptions

SQLite3::enableExceptions

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::enableExceptions — Active le lancement d'exceptions

Description

public SQLite3::enableExceptions(bool $enable = false): bool

Contrôle si l'instance SQLite3 lancera des exceptions ou des avertissements lors d'une erreur.

Liste de paramètres

enable

Si true, l'instance SQLite3, et les instances dérivées de SQLite3Stmt et SQLite3Result, lanceront des exceptions en cas d'erreurs.

Si false, l'instance SQLite3, et les instances dérivées de SQLite3Stmt et SQLite3Result, lanceront des avertissements en cas d'erreurs.

Pour chacun des modes, le code et message d'erreur, s'il y a, seront disponible grâce à SQLite3::lastErrorCode() et SQLite3::lastErrorMsg() respectivement.

Valeurs de retour

Retourne l'ancienne valeur ; true si les exceptions étaient activées, false sinon.

Historique

Version | Description
8.3.0 | Appeler SQLite3::enableExceptions() avec enable à false déclenchera un avertissement E_DEPRECATED.

Exemples

Exemple #1 Exemple avec SQLite3::enableExceptions()

<?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();
}
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SQLite3::escapeString — Retourne une chaîne nettoyée

Description

public static SQLite3::escapeString(string $string): string

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

string

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, PHP 8)

SQLite3::exec — Exécute une requête sur une base de données

Description

public SQLite3::exec(string $query): bool

Exécute une requête sur une base de données.

Note: SQLite3 doit parfois créer des » fichiers temporaires lors de l'exécution des requêtes, donc les dossiers respectifs doivent être écrivable.

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 TEXT)');
?>


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, PHP 8)

SQLite3::lastErrorCode — Retourne le code erreur de la dernière requête SQL ayant échouée

Description

public SQLite3::lastErrorCode(): int

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, PHP 8)

SQLite3::lastErrorMsg — Retourne le message d'erreur, en anglais, de la dernière requête ayant échouée

Description

public SQLite3::lastErrorMsg(): string

Retourne le message d'erreur, en anglais, de la dernière requête ayant échoué.

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é.


Retourne l'identifiant de la ligne correspondant à la dernière requête de type INSERT

  • « SQLite3::lastErrorMsg
  • SQLite3::loadExtension »
  • PHP Manual
  • SQLite3
  • Retourne l'identifiant de la ligne correspondant à la dernière requête de type INSERT

SQLite3::lastInsertRowID

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::lastInsertRowID — Retourne l'identifiant de la ligne correspondant à la dernière requête de type INSERT

Description

public SQLite3::lastInsertRowID(): int

Retourne l'identifiant de la ligne correspondant à 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 correspondant à la dernière requête de type INSERT effectuée sur la base de données. Si aucune requête de type INSERT dans les tables rowid n'a réussi sur cette connexion de base de données, alors SQLite3::lastInsertRowID() retourne 0.


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, PHP 8)

SQLite3::loadExtension — Tente de charger une extension de la bibliothèque SQLite

Description

public SQLite3::loadExtension(string $name): bool

Tente de charger une extension de la bibliothèque SQLite.

Liste de paramètres

name

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, PHP 8)

SQLite3::open — Ouvre une base de données SQLite

Description

public SQLite3::open(string $filename, int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE, string $encryptionKey = ""): void

Ouvre une base de données SQLite 3. Si le cryptage a été inclus 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.

encryptionKey

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'aura 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());
?>


Ouvre un flux de ressource pour lire un BLOB

  • « SQLite3::open
  • SQLite3::prepare »
  • PHP Manual
  • SQLite3
  • Ouvre un flux de ressource pour lire un BLOB

SQLite3::openBlob

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::openBlob — Ouvre un flux de ressource pour lire un BLOB

Description

public SQLite3::openBlob(
string $table,
string $column,
int $rowid,
string $database = "main",
int $flags = SQLITE3_OPEN_READONLY
): resource|false

Ouvre un flux de ressource pour lire ou écrire un BLOB, qui serait sélectionné par :

SELECT column FROM database.table WHERE rowid = rowid

Note: Il n'est pas possible de changer la taille d'un BLOB en écrivant vers le flux. À la place, une déclaration UPDATE doit être exécuté, en utilisant, éventuellement la fonction zeroblob() de SQLite pour définir la taille du BLOB désiré.

Liste de paramètres

table

Le nom de la table.

column

Le nom de la colonne.

rowid

La ligne ID.

database

Le nom symbolic de la base de données.

flags

Soit SQLITE3_OPEN_READONLY ou SQLITE3_OPEN_READWRITE pour ouvrir le flux en lecture seule, ou en lecture et écriture, respectivement.

Valeurs de retour

Retourne une ressource de flux, ou false si une erreur survient.

Historique

Version | Description
7.2.0 | Le paramètre flags a été ajouté, permettant d'écrire des BLOBs ; précédement seul la lecture était supporté.

Exemples

Exemple #1 Exemple avec SQLite3::openBlob()

<?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

Exemple #2 Écrire progressivement un BLOB

<?php
$conn = new SQLite3(':memory:');
$conn->exec('CREATE TABLE test (text text)');
$conn->exec("INSERT INTO test VALUES (zeroblob(36))");
$stream = $conn->openBlob('test', 'text', 1, 'main', SQLITE3_OPEN_READWRITE);
for ($i = 0; $i < 3; $i++) {
fwrite($stream, "Lorem ipsum\n");
}
fclose($stream);
echo $conn->querySingle("SELECT text FROM test");
$conn->close();
?>

L'exemple ci-dessus va afficher :

Lorem ipsum
Lorem ipsum
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, PHP 8)

SQLite3::prepare — Prépare une requête SQL pour exécution

Description

public SQLite3::prepare(string $query): SQLite3Stmt|false

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());
?>

Voir aussi

  • SQLite3Stmt::paramCount() - Retourne le nombre de paramètres d'une requête préparée
  • SQLite3Stmt::bindValue() - Lie la valeur d'un paramètre à une variable de déclaration
  • SQLite3Stmt::bindParam() - Lie un paramètre à une variable de déclaration


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, PHP 8)

SQLite3::query — Exécute une requête SQL

Description

public SQLite3::query(string $query): SQLite3Result|false

Exécute une requête SQL, et retourne un objet SQLite3Result. Si la requête ne génère pas de résultat (comme les instructions DML), l'objet SQLite3Result retourné n'est pas vraiment utilisable. Utilisez sqlite3:: exec() pour ces requêtes à la place.

Liste de paramètres

query

La requête SQL à exécuter.

Valeurs de retour

Retourne un objet SQLite3Result, ou 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::setAuthorizer »
  • PHP Manual
  • SQLite3
  • Exécute une requête et retourne un seul résultat

SQLite3::querySingle

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::querySingle — Exécute une requête et retourne un seul résultat

Description

public SQLite3::querySingle(string $query, bool $entireRow = false): mixed

Exécute une requête et retourne un seul résultat.

Liste de paramètres

query

La requête SQL à exécuter.

entireRow

Par défaut, cette fonction retourne la valeur de la première colonne retournée par la requête. Si entireRow 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 entireRow vaut true).

Si la requête est valide mais ne retourne aucun résultat, null sera retourné si entireRow 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));
?>

Résultat de l'exemple ci-dessus est similaire à :

string(5) "Scott"
Array
(
    [username] => Scott
    [email] => scott@example.com
)


Configures a callback to be used as an authorizer to limit what a statement can do

  • « SQLite3::querySingle
  • SQLite3::version »
  • PHP Manual
  • SQLite3
  • Configures a callback to be used as an authorizer to limit what a statement can do

SQLite3::setAuthorizer

(PHP 8)

SQLite3::setAuthorizer — Configures a callback to be used as an authorizer to limit what a statement can do

Description

public SQLite3::setAuthorizer(?callable $callback): bool

Sets a callback that will be called by SQLite every time an action is performed (reading, deleting, updating, etc.). This is used when preparing a SQL statement from an untrusted source to ensure that the SQL statements do not try to access data they are not allowed to see, or that they do not try to execute malicious statements that damage the database. For example, an application may allow a user to enter arbitrary SQL queries for evaluation by a database. But the application does not want the user to be able to make arbitrary changes to the database. An authorizer could then be put in place while the user-entered SQL is being prepared that disallows everything except SELECT statements.

The authorizer callback may be called multiple times for each statement prepared by SQLite. A SELECT or UPDATE query will call the authorizer for every column that would be read or updated.

The authorizer is called with up to five parameters. The first parameter is always given, and is an int (action code) matching a constant from SQLite3. The other parameters are only passed for some actions. The following table describes the second and third parameters according to the action:

List of action codes and parameters
Action | Second parameter | Third parameter
SQLite3::CREATE_INDEX | Index Name | Table Name
SQLite3::CREATE_TABLE | Table Name | null
SQLite3::CREATE_TEMP_INDEX | Index Name | Table Name
SQLite3::CREATE_TEMP_TABLE | Table Name | null
SQLite3::CREATE_TEMP_TRIGGER | Trigger Name | Table Name
SQLite3::CREATE_TEMP_VIEW | View Name | null
SQLite3::CREATE_TRIGGER | Trigger Name | Table Name
SQLite3::CREATE_VIEW | View Name | null
SQLite3::DELETE | Table Name | null
SQLite3::DROP_INDEX | Index Name | Table Name
SQLite3::DROP_TABLE | Table Name | null
SQLite3::DROP_TEMP_INDEX | Index Name | Table Name
SQLite3::DROP_TEMP_TABLE | Table Name | null
SQLite3::DROP_TEMP_TRIGGER | Trigger Name | Table Name
SQLite3::DROP_TEMP_VIEW | View Name | null
SQLite3::DROP_TRIGGER | Trigger Name | Table Name
SQLite3::DROP_VIEW | View Name | null
SQLite3::INSERT | Table Name | null
SQLite3::PRAGMA | Pragma Name | First argument passed to the pragma, or null
SQLite3::READ | Table Name | Column Name
SQLite3::SELECT | null | null
SQLite3::TRANSACTION | Operation | null
SQLite3::UPDATE | Table Name | Column Name
SQLite3::ATTACH | Filename | null
SQLite3::DETACH | Database Name | null
SQLite3::ALTER_TABLE | Database Name | Table Name
SQLite3::REINDEX | Index Name | null
SQLite3::ANALYZE | Table Name | null
SQLite3::CREATE_VTABLE | Table Name | Module Name
SQLite3::DROP_VTABLE | Table Name | Module Name
SQLite3::FUNCTION | null | Function Name
SQLite3::SAVEPOINT | Operation | Savepoint Name
SQLite3::RECURSIVE | null | null

The 4th parameter will be the name of the database ("main", "temp", etc.) if applicable.

The 5th parameter to the authorizer callback is the name of the inner-most trigger or view that is responsible for the access attempt or null if this access attempt is directly from top-level SQL code.

When the callback returns SQLite3::OK, that means the operation requested is accepted. When the callback returns SQLite3::DENY, the call that triggered the authorizer will fail with an error message explaining that access is denied.

If the action code is SQLite3::READ and the callback returns SQLite3::IGNORE then the prepared statement is constructed to substitute a null value in place of the table column that would have been read if SQLite3::OK had been returned. The SQLite3::IGNORE return can be used to deny an untrusted user access to individual columns of a table.

When a table is referenced by a SELECT but no column values are extracted from that table (for example in a query like "SELECT count(*) FROM table") then the SQLite3::READ authorizer callback is invoked once for that table with a column name that is an empty string.

If the action code is SQLite3::DELETE and the callback returns SQLite3::IGNORE then the DELETE operation proceeds but the truncate optimization is disabled and all rows are deleted individually.

Only a single authorizer can be in place on a database connection at a time. Each call to SQLite3::setAuthorizer() overrides the previous call. Disable the authorizer by installing a null callback. The authorizer is disabled by default.

The authorizer callback must not do anything that will modify the database connection that invoked the authorizer callback.

Note that the authorizer is only called when a statement is prepared, not when it's executed.

More details can be found in the » SQLite3 documentation.

Liste de paramètres

callback

The callable to be called.

If null is passed instead, this will disable the current authorizer callback.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Erreurs / Exceptions

This method doesn't throw any error, but if an authorizer is enabled and returns an invalid value, the statement preparation will throw an error (or exception, depending on the use of the SQLite3::enableExceptions() method).

Exemples

Exemple #1 SQLite3::setAuthorizer() example

This only allows access to reading, and only some columns of the users table will be returned. Other columns will be replaced with null.

<?php
$db = new SQLite3('data.sqlite');
$db->exec('CREATE TABLE users (id, name, password);');
$db->exec('INSERT INTO users VALUES (1, \'Pauline\', \'Snails4eva\');');

$allowed_columns = ['id', 'name'];

$db->setAuthorizer(function (int $action, ...$args) use ($allowed_columns) {
if ($action === SQLite3::READ) {
list($table, $column) = $args;

if ($table === 'users' && in_array($column, $allowed_columns) {
return SQLite3::OK;
}

return SQLite3::IGNORE;
}

return SQLite3::DENY;
});

print_r($db->querySingle('SELECT * FROM users WHERE id = 1;'));

L'exemple ci-dessus va afficher :

Array
(
    [id] => 1
    [name] => Pauline
    [password] =>
)


Retourne la version de la bibliothèque SQLite3

  • « SQLite3::setAuthorizer
  • SQLite3Exception »
  • PHP Manual
  • SQLite3
  • Retourne la version de la bibliothèque SQLite3

SQLite3::version

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::version — Retourne la version de la bibliothèque SQLite3

Description

public static SQLite3::version(): array

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [versionString] => 3.5.9
    [versionNumber] => 3005009
)


The SQLite3Exception class

(PHP 8 >= 8.3.0)

Introduction

Represents a SQLite3 specific exception.

Synopsis de la classe

class SQLite3Exception extends Exception {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


La classe SQLite3Stmt

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Introduction

La classe qui représente les commandes préparées pour une base de données SQLite3.

Synopsis de la classe

class SQLite3Stmt {
/* Méthodes */
private __construct(SQLite3 $sqlite3, string $query)
public bindParam(string|int $param, mixed &$var, int $type = SQLITE3_TEXT): bool
public bindValue(string|int $param, mixed $value, int $type = SQLITE3_TEXT): bool
public clear(): bool
public close(): bool
public execute(): SQLite3Result|false
public getSQL(bool $expand = false): string|false
public paramCount(): int
public readOnly(): bool
public reset(): bool
}

Sommaire

  • SQLite3Stmt::bindParam — Lie un paramètre à une variable de déclaration
  • SQLite3Stmt::bindValue — Lie la valeur d'un paramètre à une variable de déclaration
  • SQLite3Stmt::clear — Supprime tous les paramètres actuellement liés
  • SQLite3Stmt::close — Ferme une requête préparée
  • SQLite3Stmt::__construct — Constructs an SQLite3Stmt object
  • SQLite3Stmt::execute — Exécute une requête préparée
  • SQLite3Stmt::getSQL — Récupère le SQL d'une déclaration
  • SQLite3Stmt::paramCount — Retourne le nombre de paramètres d'une requête préparée
  • SQLite3Stmt::readOnly — Détermine si une déclaration est uniquement en lecture seule
  • SQLite3Stmt::reset — Réinitialise une requête préparée


Lie un paramètre à une variable de déclaration

  • « SQLite3Stmt
  • SQLite3Stmt::bindValue »
  • PHP Manual
  • SQLite3Stmt
  • Lie un paramètre à une variable de déclaration

SQLite3Stmt::bindParam

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Stmt::bindParam — Lie un paramètre à une variable de déclaration

Description

public SQLite3Stmt::bindParam(string|int $param, mixed &$var, int $type = SQLITE3_TEXT): bool

Lie un paramètre à une variable de déclaration.

Attention

Avant PHP 7.2.14 et 7.3.0, respectivement, SQLite3Stmt::reset() doit être appelé après le premier appel à SQLite3Stmt::execute() si la valeur liée devrait être correctement mit à jour lors des appels suivant à SQLite3Stmt::execute(). Si SQLite3Stmt::reset() n'est pas appelé, les valeurs liées ne seront pas modifiées, même si la valeur assigné à la variable passée à SQLite3Stmt::bindParam() a été modifié, ou SQLite3Stmt::bindParam() a été appelé une nouvelle fois.

Liste de paramètres

param

Soit une chaîne de caractères (pour les paramètres nommés) ou un entier (pour les paramètres positionnel) identifiant la variable de déclaration à laquelle la valeur doit être liée. Si un paramètre nommé ne débute pas avec un caractère "deux point" (:) ou un arobase (@), "deux point" (:) seront automatiquement préfixé. Les paramètres positionnels commencent avec 1.

var

Le paramètre à lier à la variable de déclaration.

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.

À partir de PHP 7.0.7, si type est omit, il est automatiquement détecté depuis le type de var : booléen et entier sont traités comme SQLITE3_INTEGER, nombre décimal comme SQLITE3_FLOAT, null comme SQLITE3_NULL et tous les autres comme SQLITE3_TEXT. Auparavant, si type était omit, il était par défaut SQLITE3_TEXT.

Note:

Si var est null, c'était toujours traité comme SQLITE3_NULL, peu importe le type fournie.

Valeurs de retour

Retourne true si le paramètre est lié à la variable de déclaration, false si une erreur survient.

Historique

Version | Description
7.4.0 | param supporte désormais la notation @param.

Exemples

Exemple #1 Utilisation de SQLite3Stmt::bindParam()

Cet exemple montre comment une déclaration préparée unique avec un seul paramètre lié peut être utilisé pour insérer plusieurs lignes avece des valeurs différentes.

<?php
$db = new SQLite3(':memory:');
$db->exec("CREATE TABLE foo (bar TEXT)");

$stmt = $db->prepare("INSERT INTO foo VALUES (:bar)");
$stmt->bindParam(':bar', $bar, SQLITE3_TEXT);

$bar = 'baz';
$stmt->execute();

$bar = 42;
$stmt->execute();

$res = $db->query("SELECT * FROM foo");
while (($row = $res->fetchArray(SQLITE3_ASSOC))) {
var_dump($row);
}
?>

L'exemple ci-dessus va afficher :

array(1) {
  ["bar"]=>
  string(3) "baz"
}
array(1) {
  ["bar"]=>
  string(2) "42"
}

Voir aussi

  • SQLite3Stmt::bindValue() - Lie la valeur d'un paramètre à une variable de déclaration
  • SQLite3::prepare() - Prépare une requête SQL pour exécution


Lie la valeur d'un paramètre à une variable de déclaration

  • « SQLite3Stmt::bindParam
  • SQLite3Stmt::clear »
  • PHP Manual
  • SQLite3Stmt
  • Lie la valeur d'un paramètre à une variable de déclaration

SQLite3Stmt::bindValue

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Stmt::bindValue — Lie la valeur d'un paramètre à une variable de déclaration

Description

public SQLite3Stmt::bindValue(string|int $param, mixed $value, int $type = SQLITE3_TEXT): bool

Lie la valeur d'un paramètre à une variable de déclaration.

Attention

Avant PHP 7.2.14 et 7.3.0, respectivement, une fois que la déclaration a été exécuté SQLite3Stmt::reset() doit être appelé pour pouvoir changer la valeur des paramètres liés.

Liste de paramètres

param

Soit une chaîne de caractères (pour les paramètres nommés) ou un entier (pour les paramètres positionnel) identifiant la variable de déclaration à laquelle la valeur doit être liée. Si un paramètre nommé ne débute pas avec un caractère "deux point" (:) ou un arobase (@), "deux point" (:) seront automatiquement préfixé. Les paramètres positionnels commencent avec 1.

value

La valeur à lier à la variable de déclaration.

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.

À partir de PHP 7.0.7, si type est omit, il est automatiquement détecté depuis le type de value : booléen et entier sont traités comme SQLITE3_INTEGER, nombre décimal comme SQLITE3_FLOAT, null comme SQLITE3_NULL et tous les autres comme SQLITE3_TEXT. Auparavant, si type était omit, il était par défaut SQLITE3_TEXT.

Note:

Si value est null, c'était toujours traité comme SQLITE3_NULL, peu importe le type fournie.

Valeurs de retour

Retourne true si la valeur a été liée à la variable de déclaration, ou false si une erreur survient.

Historique

Version | Description
7.4.0 | param supporte désormais la notation @param.

Exemples

Exemple #1 Exemple avec SQLite3Stmt::bindValue()

<?php
$db = new SQLite3(':memory:');

$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(SQLITE3_ASSOC));
?>

L'exemple ci-dessus va afficher :

array(1) {
  ["bar"]=>
  string(16) "Ceci est un test"
}

Voir aussi

  • SQLite3Stmt::bindParam() - Lie un paramètre à une variable de déclaration
  • SQLite3::prepare() - Prépare une requête SQL pour exécution


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, PHP 8)

SQLite3Stmt::clear — Supprime tous les paramètres actuellement liés

Description

public SQLite3Stmt::clear(): bool

Supprime tous les paramètres actuellement liés (les définit en tant que null).

Attention

Cette méthode doit être utilisé avec SQLite3Stmt::reset(). Si utilisé seul, tout appel à SQLite3Stmt::bindValue() ou SQLite3Stmt::bindParam() n'aura aucun effet et tous les paramètres liés auront comme valeur null.

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::__construct »
  • PHP Manual
  • SQLite3Stmt
  • Ferme une requête préparée

SQLite3Stmt::close

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Stmt::close — Ferme une requête préparée

Description

public SQLite3Stmt::close(): bool

Ferme une requête préparée.

Note: Notez que tous les SQLite3Result qui ont été récupérés en exécutant cette instruction seront invalidés lorsque l'instruction sera fermée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true


Constructs an SQLite3Stmt object

  • « SQLite3Stmt::close
  • SQLite3Stmt::execute »
  • PHP Manual
  • SQLite3Stmt
  • Constructs an SQLite3Stmt object

SQLite3Stmt::__construct

(No version information available, might only be in Git)

SQLite3Stmt::__construct — Constructs an SQLite3Stmt object

Description

private SQLite3Stmt::__construct(SQLite3 $sqlite3, string $query)

SQLite3Stmt instances are created by SQLite3::prepare().

Liste de paramètres

sqlite3

query


Exécute une requête préparée

  • « SQLite3Stmt::__construct
  • SQLite3Stmt::getSQL »
  • PHP Manual
  • SQLite3Stmt
  • Exécute une requête préparée

SQLite3Stmt::execute

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Stmt::execute — Exécute une requête préparée

Description

public SQLite3Stmt::execute(): SQLite3Result|false

Exécute une requête préparée et retourne un objet représentant le jeu de résultats.

Attention

Les objets de jeu de résultats récupérés par l'appel de cette méthode sur le même objet d'instruction ne sont pas indépendants, mais partagent plutôt la même structure sous-jacente. Par conséquent, il est recommandé d'appeler SQLite3Result::finalize(), avant d'appeler de nouveau SQLite3Stmt::execute() sur le même objet d'instruction.

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.

Voir aussi

  • SQLite3::prepare() - Prépare une requête SQL pour exécution
  • SQLite3Stmt::bindValue() - Lie la valeur d'un paramètre à une variable de déclaration
  • SQLite3Stmt::bindParam() - Lie un paramètre à une variable de déclaration


Récupère le SQL d'une déclaration

  • « SQLite3Stmt::execute
  • SQLite3Stmt::paramCount »
  • PHP Manual
  • SQLite3Stmt
  • Récupère le SQL d'une déclaration

SQLite3Stmt::getSQL

(PHP 7 >= 7.4.0, PHP 8)

SQLite3Stmt::getSQL — Récupère le SQL d'une déclaration

Description

public SQLite3Stmt::getSQL(bool $expand = false): string|false

Récupère le SQL d'une déclaration préparé. Si expand est false, le SQL non modifié est récupéré. Si expand est true, tous les paramètres de requête sont remplacés avec leurs valeurs liées, ou avec un NULL SQL, si pas encore lié.

Liste de paramètres

expand

S'il faut récupérer le code SQL étendue. Passer true n'est supporté qu'à partir de libsqlite 3.14.

Valeurs de retour

Retourne le SQL de la déclaration préparé, ou false si une erreur survient.

Erreurs / Exceptions

Si expand est true, mais que la version de libsqlite est moins que 3.14, une erreur de niveau E_WARNING ou une Exception est émise, en accord avecSQLite3::enableExceptions().

Exemples

Exemple #1 Inspecter le SQL étendue

<?php
$db = new SQLite3(':memory:');
$stmt = $db->prepare("SELECT :a, ?, :c");
$stmt->bindValue(':a', 'foo');
$answer = 42;
$stmt->bindParam(2, $answer);
var_dump($stmt->getSQL(true));
?>

Résultat de l'exemple ci-dessus est similaire à :

string(24) "SELECT 'foo', '42', NULL"


Retourne le nombre de paramètres d'une requête préparée

  • « SQLite3Stmt::getSQL
  • 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, PHP 8)

SQLite3Stmt::paramCount — Retourne le nombre de paramètres d'une requête préparée

Description

public SQLite3Stmt::paramCount(): int

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.

Voir aussi

  • SQLite3::prepare() - Prépare une requête SQL pour exécution


Détermine si une déclaration est uniquement en lecture seule

  • « SQLite3Stmt::paramCount
  • SQLite3Stmt::reset »
  • PHP Manual
  • SQLite3Stmt
  • Détermine si une déclaration est uniquement en lecture seule

SQLite3Stmt::readOnly

(PHP 5 >= 5.3.6, PHP 7, PHP 8)

SQLite3Stmt::readOnly — Détermine si une déclaration est uniquement en lecture seule

Description

public SQLite3Stmt::readOnly(): bool

Détermine si une déclaration est uniquement en lecture seule. Une déclaration est considéré uniquement en lecture seule, si elle ne fait aucun changement direct au contenue du fichier de base de donnée. Noter que les fonctions SQL définit par l'utilisateur peuvent indirectement changer la base de données en tant qu'effet secondaire.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true si la déclaration est uniquement en lecture seule, false sinon.


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, PHP 8)

SQLite3Stmt::reset — Réinitialise une requête préparée

Description

public SQLite3Stmt::reset(): bool

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 si une erreur survient.


La classe SQLite3Result

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Introduction

Une classe qui représente les résultats d'une base de données SQLite 3.

Synopsis de la classe

class SQLite3Result {
/* Méthodes */
private __construct()
public columnName(int $column): string|false
public columnType(int $column): int|false
public fetchArray(int $mode = SQLITE3_BOTH): array|false
public finalize(): bool
public numColumns(): int
public reset(): bool
}

Sommaire

  • SQLite3Result::columnName — Retourne le nom d'une colonne
  • SQLite3Result::columnType — Retourne le type d'une colonne
  • SQLite3Result::__construct — Constructs an SQLite3Result
  • 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, PHP 8)

SQLite3Result::columnName — Retourne le nom d'une colonne

Description

public SQLite3Result::columnName(int $column): string|false

Retourne le nom de la colonne identifiée par le paramètre column. Il est à noter que le nom de la colonne de résultat et la valeur de la clause AS pour cette colonne, s'il y a une clause AS. S'il n'y a pas de clause alors le nom de la colonne est non-spécifié et peut changer d'une version de libsqlite3 à une autre.

Liste de paramètres

column

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, ou false si la colonne n'existe pas.


Retourne le type d'une colonne

  • « SQLite3Result::columnName
  • SQLite3Result::__construct »
  • PHP Manual
  • SQLite3Result
  • Retourne le type d'une colonne

SQLite3Result::columnType

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Result::columnType — Retourne le type d'une colonne

Description

public SQLite3Result::columnType(int $column): int|false

Retourne le type de la colonne identifiée par le paramètre column.

Liste de paramètres

column

Le numéro de la colonne, en commençant par 0.

Valeurs de retour

Retourne le type de données de la colonne identifiée par column (l'un de SQLITE3_INTEGER, SQLITE3_FLOAT, SQLITE3_TEXT, SQLITE3_BLOB, ou SQLITE3_NULL), ou false si la colonne n'existe pas.


Constructs an SQLite3Result

  • « SQLite3Result::columnType
  • SQLite3Result::fetchArray »
  • PHP Manual
  • SQLite3Result
  • Constructs an SQLite3Result

SQLite3Result::__construct

(No version information available, might only be in Git)

SQLite3Result::__construct — Constructs an SQLite3Result

Description

private SQLite3Result::__construct()

SQLite3Result instances are created by SQLite3::query() and SQLite3Stmt::execute().

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Récupère un jeu de résultats sous la forme d'un tableau associatif

  • « SQLite3Result::__construct
  • 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, PHP 8)

SQLite3Result::fetchArray — Récupère un jeu de résultats sous la forme d'un tableau associatif

Description

public SQLite3Result::fetchArray(int $mode = SQLITE3_BOTH): array|false

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.

Les types des valeurs du tableau retourné sont mappés à partir de types SQLite3 comme suit : les entiers sont mappés à int s'ils s'insèrent dans la plage PHP_INT_MIN.. PHP_INT_MAX, et à string sinon. Les nombres à virgule sont mappés à float, les valeurs null sont mappées à null, et les chaînes et les objets BLOB sont mappés à string.


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, PHP 8)

SQLite3Result::finalize — Ferme un jeu de résultats

Description

public SQLite3Result::finalize(): bool

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, PHP 8)

SQLite3Result::numColumns — Retourne le nombre de colonnes du jeu de résultats

Description

public SQLite3Result::numColumns(): int

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, PHP 8)

SQLite3Result::reset — Repositionne le pointeur sur la première ligne du jeu de résultats

Description

public SQLite3Result::reset(): bool

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. 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 à propos de LocalDB, voir » 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.

La version la plus récente du pilote est disponible au téléchargement ici : » téléchargement de SQLSRV.

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.

La version la plus récente du pilote est disponible au téléchargement ici : » téléchargement de SQLSRV.

Pour plus d'informations sur les pré-requis SQLSRV, reportez-vous au chapitre sur les » pré-requis du système SQLSRV.

Depuis la version 4.0, l'extension SQLSRV n'est compatible que lorsque PHP 7.0 fonctionne sur Linux ou 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) | INI_ALL | Disponible depuis SQLSRV 1.0
sqlsrv.LogSubsystems | 0 | INI_ALL | Disponible depuis SQLSRV 1.0
sqlsrv.LogSeverity | 1 | 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 (int)
Force sqlsrv_fetch_array() à retourner un tableau associatif quand il est passé en paramètre.
SQLSRV_FETCH_NUMERIC (int)
Force sqlsrv_fetch_array() à retourner un tableau indexé numériquement quand il est passé en paramètre.
SQLSRV_FETCH_BOTH (int)
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 (int)
Force sqlsrv_errors() à retourner les erreurs et avertissements quand il est passé en paramètre (comportement par défaut).
SQLSRV_ERR_ERRORS (int)
Force sqlsrv_errors() à retourner seulement les erreurs (pas les avertissements) quand il est passé en paramètre.
SQLSRV_ERR_WARNINGS (int)
Force sqlsrv_errors() à retourner seulement les avertissements (pas les erreurs) quand il est passé en paramètre.
SQLSRV_LOG_SYSTEM_ALL (int)
Active les logs de tous les sous-systèmes quand il est passé à la fonction sqlsrv_configure() comme paramère.
SQLSRV_LOG_SYSTEM_CONN (int)
Active les logs de toute l'activité des connexions quand il est passé à la fonction sqlsrv_configure() comme paramère.
SQLSRV_LOG_SYSTEM_INIT (int)
Active les logs de toute l'activité des initialisations quand il est passé à la fonction sqlsrv_configure() comme paramère.
SQLSRV_LOG_SYSTEM_OFF (int)
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 (int)
Active les logs des requêtes quand il est passé à la fonction sqlsrv_configure() comme paramère.
SQLSRV_LOG_SYSTEM_UTIL (int)
Active les logs des erreurs de fonction quand il est passé à la fonction sqlsrv_configure() comme paramère.
SQLSRV_LOG_SEVERITY_ALL (int)
Active les logs des erreurs, avertissements et notes quand il est passé à la fonction sqlsrv_configure() comme paramère.
SQLSRV_LOG_SEVERITY_ERROR (int)
Spécifie que les erreurs seront enregistrées quand il est passé à la fonction sqlsrv_configure() comme paramère.
SQLSRV_LOG_SEVERITY_NOTICE (int)
Spécifie que les notes seront enregistrées quand il est passé à la fonction sqlsrv_configure() comme paramère.
SQLSRV_LOG_SEVERITY_WARNING (int)
Spécifie que les avertissements seront enregistrées quand il est passé à la fonction sqlsrv_configure() comme paramère.
SQLSRV_NULLABLE_YES (int)
Indique qu'une colonne peut être nulle.
SQLSRV_NULLABLE_NO (int)
Indique qu'une colonne ne peut pas être nulle.
SQLSRV_NULLABLE_UNKNOWN (int)
Indique s'il est connu qu'une colonne est nulle.
SQLSRV_PARAM_IN (int)
Indique un paramètre d'entrée quand il est passé à la fonction sqlsrv_query() ou à la fonction sqlsrv_prepare().
SQLSRV_PARAM_INOUT (int)
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 (int)
Indique un paramètre de sortie quand il est passé à la fonction sqlsrv_query() ou à la fonction sqlsrv_prepare().
SQLSRV_PHPTYPE_INT (int)
Spécifie une donnée de type entier PHP. Pour plus d'informations, voir » Comment spécifier les types PHP.
SQLSRV_PHPTYPE_DATETIME (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 multioctets 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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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') (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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') (int)
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 (int)
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') (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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

sqlsrv_begin_transaction(resource $conn): bool

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 />";
}
?>

Résultat de l'exemple ci-dessus est 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

sqlsrv_cancel(resource $stmt): bool

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

sqlsrv_client_info(resource $conn): array

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

sqlsrv_close(resource $conn): bool

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 Exemple 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

sqlsrv_commit(resource $conn): bool

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

sqlsrv_configure(string $setting, mixed $value): bool

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

sqlsrv_connect(string $serverName, array $connectionInfo = ?): resource

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 antislash, 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

sqlsrv_errors(int $errorsOrWarnings = ?): mixed

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

sqlsrv_execute(resource $stmt): bool

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

sqlsrv_fetch_array(
resource $stmt,
int $fetchType = ?,
int $row = ?,
int $offset = ?
): array

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

sqlsrv_fetch_object(
resource $stmt,
string $className = ?,
array $ctorParams = ?,
int $row = ?,
int $offset = ?
): mixed

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

sqlsrv_fetch(resource $stmt, int $row = ?, int $offset = ?): mixed

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

sqlsrv_field_metadata(resource $stmt): mixed

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. Sinon false est retourné. 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

sqlsrv_free_stmt(resource $stmt): bool

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

sqlsrv_get_config(string $setting): mixed

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

sqlsrv_get_field(resource $stmt, int $fieldIndex, int $getAsType = ?): mixed

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

sqlsrv_has_rows(resource $stmt): bool

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

sqlsrv_next_result(resource $stmt): mixed

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

sqlsrv_num_fields(resource $stmt): mixed

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

sqlsrv_num_rows(resource $stmt): mixed

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

sqlsrv_prepare(
resource $conn,
string $sql,
array $params = ?,
array $options = ?
): mixed

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

sqlsrv_query(
resource $conn,
string $sql,
array $params = ?,
array $options = ?
): mixed

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

sqlsrv_rollback(resource $conn): bool

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

sqlsrv_rows_affected(resource $stmt): int|false

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

sqlsrv_send_stream_data(resource $stmt): bool

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
  • Extensions relatives aux dates et aux heures »
  • 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

sqlsrv_server_info(resource $conn): array

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


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
    • Exemples
    • DateTime — La classe DateTime
    • DateTimeImmutable — La classe DateTimeImmutable
    • DateTimeInterface — L'interface DateTimeInterface
    • DateTimeZone — La classe DateTimeZone
    • DateInterval — La classe DateInterval
    • DatePeriod — La classe DatePeriod
    • Fonctions Date/Heure
    • Erreurs et Exceptions Date/Heure
    • Formats supportés de temps et de dates
    • Liste des Fuseaux Horaires Supportés
    • DateError — La classe DateError
    • DateObjectError — La classe DateObjectError
    • DateRangeError — La classe DateRangeError
    • DateException — La classe DateException
    • DateInvalidOperationException — La classe DateInvalidOperationException
    • DateInvalidTimeZoneException — La classe DateInvalidTimeZoneException
    • DateMalformedIntervalStringException — La classe DateMalformedIntervalStringException
    • DateMalformedPeriodStringException — La classe DateMalformedPeriodStringException
    • DateMalformedStringException — La classe DateMalformedStringException
  • 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_EASTER_DEFAULT (int)
Pour easter_days() : calcule Pâques pour les années avant 1753 selon le calendrier julien, et pour les années ultérieures selon le calendrier grégorien.
CAL_EASTER_ROMAN (int)
Pour easter_days() : calcule Pâques pour les années avant 1583 selon le calendrier julien, et pour les années ultérieures selon le calendrier grégorien.
CAL_EASTER_ALWAYS_GREGORIAN (int)
Pour easter_days() : calcule Pâques selon le calendrier grégorien proleptique.
CAL_EASTER_ALWAYS_JULIAN (int)
Pour easter_days() : calcule Pâques selon le calendrier julien.
CAL_GREGORIAN (int)
Pour cal_days_in_month(), cal_from_jd(), cal_info() et cal_to_jd() : utilise le calendrier grégorien proleptique.
CAL_JULIAN (int)
Pour cal_days_in_month(),
cal_from_jd(), cal_info() et
cal_to_jd() : utilise le calendrier julien.
CAL_JEWISH (int)
Pour cal_days_in_month(),
cal_from_jd(), cal_info() et
cal_to_jd() : utilise le calendrier hébraïque.
CAL_FRENCH (int)
Pour cal_days_in_month(),
cal_from_jd(), cal_info() et
cal_to_jd() : utilise le calendrier républicain.
CAL_NUM_CALS (int)
Le nombre de calendriers disponible.
CAL_JEWISH_ADD_ALAFIM_GERESH (int)
Pour jdtojewish() : ajoute un symbole geresh (qui ressemble à une apostrophe) en tant que séparateur de milliers au numéro de l'année.
CAL_JEWISH_ADD_ALAFIM (int)
Pour jdtojewish() : ajoute le mot alafim en tant que séparateur de milliers au numéro de l'année.
CAL_JEWISH_ADD_GERESHAYIM (int)
Pour jdtojewish() : ajoute un symbole gershayim (qui ressemble à un guillemet) avant la lettre finale des nombre de jour et d'année.
CAL_DOW_DAYNO (int)
Pour jddayofweek() : le jour de la semaine en tant que int, où 0 signifie Dimanche et 6 signifie Samedi.
CAL_DOW_SHORT (int)
Pour jddayofweek() : le nom anglais abrégé du jour de la semaine.
CAL_DOW_LONG (int)
Pour jddayofweek() : le nom anglais du jour de la semaine.
CAL_MONTH_GREGORIAN_SHORT (int)
Pour jdmonthname() : le nom de mois grégorien abrégé.
CAL_MONTH_GREGORIAN_LONG (int)
Pour jdmonthname() : le nom de mois grégorien.
CAL_MONTH_JULIAN_SHORT (int)
Pour jdmonthname() : le nom de mois julien abrégé.
CAL_MONTH_JULIAN_LONG (int)
Pour jdmonthname() : le nom de mois julien.
CAL_MONTH_JEWISH (int)
Pour jdmonthname() : le nom de mois hébraïque.
CAL_MONTH_FRENCH (int)
Pour jdmonthname() : le nom de mois républicain.


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, PHP 8)

cal_days_in_month — Retourne le nombre de jours dans un mois, pour une année et un calendrier donné

Description

cal_days_in_month(int $calendar, int $month, int $year): int

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, PHP 8)

cal_from_jd — Convertit le nombre de jours Julien en un calendrier spécifique

Description

cal_from_jd(int $julian_day, int $calendar): array

cal_from_jd() convertit le nombre de jours Julien julian_day 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

julian_day

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 (dow), 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". L'interval du jour de la semaine va de 0 (Dimanche) à 6 (Samedi).

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, PHP 8)

cal_info — Retourne des détails sur un calendrier

Description

cal_info(int $calendar = -1): array

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, PHP 8)

cal_to_jd — Convertit un calendrier en nombre de jours Julien

Description

cal_to_jd(
int $calendar,
int $month,
int $day,
int $year
): int

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, PHP 8)

easter_date — Retourne un timestamp UNIX pour Pâques, à minuit pour une année donnée

Description

easter_date(?int $year = null, int $mode = CAL_EASTER_DEFAULT): int

Retourne un timestamp UNIX pour Pâques, à minuit, pour une année donnée.

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, doit être un nombre compris entre 1970 et 2037 pour les systèmes 32 bits, ou entre 1970 et 2 000 000 000 pour les systèmes 64 bits. Si omis ou null, la valeur par défaut sera l'année courante suivant l'heure locale.

mode

Permet de calculer la date de Pâques en fonction du calendrier de Julien quand définit à CAL_EASTER_ALWAYS_JULIAN. Voir aussi les constantes de calendrier.

Valeurs de retour

La date pour Pâques, sous la forme d'un timestamp unix.

Erreurs / Exceptions

Une ValueError est déclenchée si l'année est antérieure à 1970 ou postérieure à 2037 lors de l'exécution sur un système 32 bits, ou postérieure à 2 000 000 000 sur un système 64 bits.

Historique

Version | Description
8.3.0 | Sur les systèmes 64 bits, le paramètre year accepte désormais des valeurs dans la plage de 1970 à 2 000 000 000.
8.0.0 | year est désormais nullable.
8.0.0 | Une ValueError est désormais déclenchée lorsque year est en dehors de la plage autorisée. Auparavant, une alerte E_WARNING était générée et la fonction retournait false.

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

?>

Exemple #2 Utilisation de easter_date() avec DateTime

<?php

$timestamp = easter_date(2023);

$datetime = new \DateTime();
$datetime->setTimestamp($timestamp);

echo $datetime->format('M-d-Y'); // Avr-09-2023

?>

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, PHP 8)

easter_days — Retourne le nombre de jours entre le 21 Mars et Pâques, pour une année donnée

Description

easter_days(?int $year = null, int $mode = CAL_EASTER_DEFAULT): int

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 ou null, la valeur par défaut sera l'année courante suivant l'heure locale.

mode

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.

Historique

Version | Description
8.0.0 | year est désormais nullable.

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, PHP 8)

frenchtojd — Convertit une date du calendrier français républicain en nombre de jours du calendrier Julien

Description

frenchtojd(int $month, int $day, int $year): int

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, PHP 8)

gregoriantojd — Convertit une date grégorienne en nombre de jours du calendrier Julien

Description

gregoriantojd(int $month, int $day, int $year): int

L'intervalle de validité pour le calendrier grégorien est du 25 novembre, 4714 avant J.C. à au moins le 31 décembre 9999 après J.C.

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. Si le mois a moins de jours que fournit, un débordement se produit ; voir exemple ci-dessous.

year

L'année, sous la forme d'un nombre compris entre -4714 et 9999. Les nombres négatifs signifie les années avant J.C., les nombres positifs signifie après J.C. Il est à noter qu'il n'y a pas d'année 0 ; 31 décembre, 1 avant J.C is immédiatement suivit par 1 janvier, 1 après J.C.

Valeurs de retour

Le jour Julien pour la date Grégorienne fournie, sous la forme d'entier. Les dates en dehors de l'intervalle valide retourne 0.

Exemples

Exemple #1 Fonctions calendrier

<?php
$jd = gregoriantojd(10, 11, 1970);
echo "$jd\n";
$gregorian = jdtogregorian($jd);
echo "$gregorian\n";
?>

L'exemple ci-dessus va afficher :

2440871
10/11/1970

Exemple #2 Comportement de débordement

<?php
echo gregoriantojd(2, 31, 2018), PHP_EOL,
gregoriantojd(3, 3, 2018), PHP_EOL;
?>

L'exemple ci-dessus va afficher :

2458181
2458181

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, PHP 8)

jddayofweek — Retourne le numéro du jour de la semaine

Description

jddayofweek(int $julian_day, int $mode = CAL_DOW_DAYNO): int|string

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

julian_day

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, PHP 8)

jdmonthname — Retourne le nom du mois

Description

jdmonthname(int $julian_day, int $mode): string

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
CAL_MONTH_GREGORIAN_SHORT | Grégorien - abrégé | Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
CAL_MONTH_GREGORIAN_LONG | Grégorien | January, February, March, April, May, June, July, August, September, October, November, December
CAL_MONTH_JULIAN_SHORT | Julien - abrégé | Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
CAL_MONTH_JULIAN_LONG | Julien | January, February, March, April, May, June, July, August, September, October, November, December
CAL_MONTH_JEWISH | Juif | Tishri, Heshvan, Kislev, Tevet, Shevat, Adar, Adar I, Adar II, Nisan, Iyyar, Sivan, Tammuz, Av, Elul
CAL_MONTH_FRENCH | 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

mode

Le mode de calendrier (voir tableau ci-dessus).

Valeurs de retour

Le nom du mois pour le jour Julien et le mode.


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, PHP 8)

jdtofrench — Convertit le nombre de jours du calendrier Julien en date du calendrier français républicain

Description

jdtofrench(int $julian_day): string

Convertit le nombre de jours du calendrier julien en date du calendrier français républicain.

Liste de paramètres

julian_day

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, PHP 8)

jdtogregorian — Convertit le nombre de jours du calendrier Julien en date grégorienne

Description

jdtogregorian(int $julian_day): string

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

julian_day

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, PHP 8)

jdtojewish — Convertit le nombre de jours du calendrier Julien en date du calendrier juif

Description

jdtojewish(int $julian_day, bool $hebrew = false, int $flags = 0): string

Convertit un nombre de jours du calendrier Julien en calendrier juif.

Liste de paramètres

julian_day

Un nombre de jour Julien sous forme d'entier.

hebrew

Si le paramètre hebrew est définit à true, le paramètre flags est utilisé pour l'hébreu, format de sortie basé sur une chaîne de caractères codée ISO-8859-8.

flags

Un masque bit qui peut consister de CAL_JEWISH_ADD_ALAFIM_GERESH, CAL_JEWISH_ADD_ALAFIM et CAL_JEWISH_ADD_GERESHAYIM.

Valeurs de retour

La date Juive, sous la forme d'une chaîne de caractères "mois/jour/année", ou une chaîne de caractères de date hébraïque codée ISO-8859-8, en fonction du paramètre hebrew.

Exemples

Exemple #1 Exemple avec jdtojewish()

<?php
$jd = gregoriantojd(10, 8, 2002);
echo jdtojewish($jd, true), PHP_EOL,
jdtojewish($jd, true, CAL_JEWISH_ADD_GERESHAYIM), PHP_EOL,
jdtojewish($jd, true, CAL_JEWISH_ADD_ALAFIM), PHP_EOL,
jdtojewish($jd, true,CAL_JEWISH_ADD_ALAFIM_GERESH), PHP_EOL;
?>

L'exemple ci-dessus va afficher :

? ???? ?????
?' ???? ????"?
? ???? ? ????? ????
? ???? ?'????

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, PHP 8)

jdtojulian — Convertit le nombre de jours du calendrier Julien en date du calendrier Julien

Description

jdtojulian(int $julian_day): string

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

julian_day

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, PHP 8)

jdtounix — Convertit un jour Julien en timestamp UNIX

Description

jdtounix(int $julian_day): int

Retourne un timestamp UNIX correspondant au jour Julien julian_day ou false si julian_day n'est pas dans l'intervalle autorisé. Le temps retourné est UTC.

Liste de paramètres

julian_day

Le nombre de jours Julien, compris entre 2440588 et 106751993607888 sur les systèmes 64bit, ou compris entre 2440588 et 2465443 sur les systèmes 32bit.

Valeurs de retour

Le timestamp unix pour le début (minuit, pas midi) du jour Julien donné.

Erreurs / Exceptions

Si julian_day est hors de l'intervalle autorisé, une ValueError est lancé.

Historique

Version | Description
8.0.0 | Cette fonction ne retourne désormais plus false en cas d'échec, mais lève une ValueError à la place.
7.3.24, 7.4.12 | La limite supérieure du paramètre julian_day a été étendue. Avant, elle était de 2465342 suivant l'architecture.

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, PHP 8)

jewishtojd — Convertit une date du calendrier Juif en nombre de jours du calendrier Julien

Description

jewishtojd(int $month, int $day, int $year): int

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, où 1 signifie Tishri, 13 signifie Eloul, et 6 et 7 signifie Adar dans les années régulières, mais Adar I et Adar II, respectivement, dans les années bissextiles.

day

Le jour, sous la forme d'un nombre entre 1 et 30. Si le mois n'a que 29 jours, le premier jour du mois suivant est assumé.

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, PHP 8)

juliantojd — Convertit un jours du calendrier Julien en un nombre de jours du calendrier Julien

Description

juliantojd(int $month, int $day, int $year): int

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, PHP 8)

unixtojd — Convertit un timestamp UNIX en un jour Julien

Description

unixtojd(?int $timestamp = null): int|false

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. De toute façon, l'heure est considérée comme l'heure locale (pas UTC).

Liste de paramètres

timestamp

Un timestamp unix à convertir.

Valeurs de retour

Un nombre de jours Julien, sous la forme d'un entier, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | timestamp est désormais nullable.

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
  • Exemples
    • Arithmétique avec DateTime
  • DateTime — La classe DateTime
    • DateTime::add — Modifie un objet un objet DateTime, avec le nombre de jours, mois, années, heures, minutes et secondes ajouté
    • DateTime::__construct — Retourne un nouvel objet DateTime
    • DateTime::createFromFormat — Analyse une heure au format texte selon le format spécifié.
    • DateTime::createFromImmutable — Retourne une nouvelle instance d'objet DateTime encapsulant l'objet DateTimeImmutable fourni
    • DateTime::createFromInterface — Retourne un nouvel objet DateTime encapsulant l'objet DateTimeInterface fourni
    • DateTime::getLastErrors — Alias de DateTimeImmutable::getLastErrors
    • 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 horodatage 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 — Retourne un nouvel object, avec le nombre de jours, mois, années, heures, minutes et secondes ajouté
    • DateTimeImmutable::__construct — Retourne un nouvel objet DateTimeImmutable
    • DateTimeImmutable::createFromFormat — Analyse une heure au format texte selon le format spécifié.
    • DateTimeImmutable::createFromInterface — Retourne un nouvel objet DateTimeImmutable encapsulant l'objet DateTimeInterface fourni
    • DateTimeImmutable::createFromMutable — Retourne une nouvelle instance de DateTimeImmutable encapsulant l'objet DateTime fournit
    • DateTimeImmutable::getLastErrors — Retourne les alertes et erreurs
    • DateTimeImmutable::modify — Créée un nouvel objet avec l'horodatage 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 l'horaire
    • DateTimeImmutable::setTimestamp — Définit la date et l'heure basé sur un horodatage Unix
    • DateTimeImmutable::setTimezone — Définit le fuseau horaire
    • DateTimeImmutable::sub — Soustrait un nombre de jours, mois, années, heures et secondes
  • DateTimeInterface — L'interface DateTimeInterface
    • DateTimeInterface::diff — Retourne la différence entre deux objets DateTime
    • DateTimeInterface::format — Retourne une date formatée suivant le format fourni
    • DateTimeInterface::getOffset — Retourne le décalage horaire
    • DateTimeInterface::getTimestamp — Récupère le timestamp Unix
    • DateTimeInterface::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::createFromISO8601String — Creates a new DatePeriod object from an ISO8601 string
    • DatePeriod::getDateInterval — Retourne l'intervalle
    • DatePeriod::getEndDate — Retourne la date de fin
    • DatePeriod::getRecurrences — Récupère le nombre de récurrences
    • DatePeriod::getStartDate — Obtient la date de début
  • 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 — Crée un nouvel objet DateTimeImmutable
    • date_create — Création d'un objet DateTime
    • 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 DateTimeImmutable::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/moment 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 un horodatage Unix
    • 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 partie de l'heure/date locale en tant qu'entier
    • localtime — Récupère l'heure locale
    • microtime — Retourne le timestamp UNIX actuel avec les microsecondes
    • mktime — Retourne l'horodatage 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 l'horodatage 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 d'un fuseau horaire à partir de son abréviation et de son décalage UTC
    • 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
  • Erreurs et Exceptions Date/Heure
  • Formats supportés de temps et de dates
  • Liste des Fuseaux Horaires Supportés
    • Afrique
    • Amérique
    • Antarctique
    • Arctique
    • Asie
    • Atlantique
    • Australie
    • Europe
    • Indien
    • Pacifique
    • Autres
  • DateError — La classe DateError
  • DateObjectError — La classe DateObjectError
  • DateRangeError — La classe DateRangeError
  • DateException — La classe DateException
  • DateInvalidOperationException — La classe DateInvalidOperationException
  • DateInvalidTimeZoneException — La classe DateInvalidTimeZoneException
  • DateMalformedIntervalStringException — La classe DateMalformedIntervalStringException
  • DateMalformedPeriodStringException — La classe DateMalformedPeriodStringException
  • DateMalformedStringException — La classe DateMalformedStringException


Introduction

DateTimeImmutable et les classes associées vous permettent de représenter les informations de date et d'heure. Les objets peuvent être créés en passant les informations de date et d'heure via une chaîne de caractères, ou à partir de l'heure du système utilisé.

Un riche ensemble de méthodes est fourni pour modifier et formater ces informations ainsi que la gestion des fuseaux horaires et des transitions DST.

Les fonctionnalités de date/heure de PHP implémentent le calendrier ISO 8601, qui est un » calendrier Grégorien proleptique implémentant les règles actuelles des jours bissextiles d'avant la mise en place du calendrier grégorien, et inclut également l'année 0 comme numéro d'année comprise entre -1 avant l'ère commune and 1 de l'ère commune. Les secondes intercalaires ne sont pas prises en charge.

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 milliards d'années dans le passé, et la même valeur dans le futur.

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 cœur 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.


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" | INI_ALL |
date.default_longitude | "35.2333" | INI_ALL |
date.sunrise_zenith | "90.833333" | INI_ALL | Avant PHP 8.0.0, la valeur par défaut était "90.583333"
date.sunset_zenith | "90.833333" | INI_ALL | Avant PHP 8.0.0, la valeur par défaut était "90.583333"
date.timezone | "UTC" | INI_ALL | À partir de PHP 8.2, un avertissement est émis si l'option est définie avec une valeur invalide ou une chaîne vide.
Pour plus de détails sur les modes 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 allant de 0 à l'équateur, jusqu'à +90 en direction du nord, et -90 en direction du sud.

date.default_longitude float

La longitude par défaut allant de 0 au méridien d'origine, jusqu'à +180 en direction de l'est, et -180 en direction de l'ouest.

date.sunrise_zenith float

L'heure de lever du soleil par défaut.

La valeur par défaut est 90°50'. Les 50' supplémentaires sont dus à deux composantes : le rayon du Soleil, qui est de 16', et la réfraction atmosphérique, qui est de 34'.

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. 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 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 spécifient un format retourné par les fonctions date_sunrise() et date_sunset().

SUNFUNCS_RET_TIMESTAMP (int)
Timestamp
SUNFUNCS_RET_STRING (int)
Heures:minutes (exemple: 08:02)
SUNFUNCS_RET_DOUBLE (int)
Heures en tant que nombre à point flottant (exemple 8.75)


  • « Constantes pré-définies
  • Arithmétique avec DateTime »
  • PHP Manual
  • Date/Heure
  • Exemples

Exemples

Sommaire

  • Arithmétique avec DateTime


Arithmétique avec DateTime

Les exemples suivants montrent quelques pièges de l'arithmétique de DateTime en ce qui concerne les transitions DST et les mois ayant un nombre différent de jours.

Exemple #1 DateTimeImmutable::add/sub ajout d'un interval de temps écoulé.

Ajouter PT24H au dela d'une transition DST semblera ajouter 23/25 heures (pour la plupart des fuseaux horaires).

<?php
$dt = new DateTimeImmutable("2015-11-01 00:00:00", new DateTimeZone("America/New_York"));
echo "Start: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
$dt = $dt->add(new DateInterval("PT3H"));
echo "End: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
?>

L'exemple ci-dessus va afficher :

Start: 2015-11-01 00:00:00 -04:00
End:   2015-11-01 02:00:00 -05:00

Exemple #2 DateTimeImmutable::modify et strtotime incrémentation ou décrémentation de valeurs individuelles

Ajouter +24 heures au dela d'une transition DST peut ajouter exactement 24 heures comme vu avec la chaîne date/time (sauf si l'heure de début ou de fin est sur un point de transition).

<?php
$dt = new DateTimeImmutable("2015-11-01 00:00:00", new DateTimeZone("America/New_York"));
echo "Start: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
$dt = $dt->modify("+24 hours");
echo "End: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
?>

L'exemple ci-dessus va afficher :

Start: 2015-11-01 00:00:00 -04:00
End:   2015-11-02 00:00:00 -05:00

Exemple #3 L'ajout ou la soustraction de dates/heures peut dépasser (en plus ou en moins) des dates

Comme pour 31 Janvier + 1 mois donnera comme résultat 2 Mars (année bisextile) ou 3 Mars (année normale).

<?php
echo "Normal year:\n"; // February has 28 days
$dt = new DateTimeImmutable("2015-01-31 00:00:00", new DateTimeZone("America/New_York"));
echo "Start: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
$dt = $dt->modify("+1 month");
echo "End: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;

echo "Leap year:\n"; // February has 29 days
$dt = new DateTimeImmutable("2016-01-31 00:00:00", new DateTimeZone("America/New_York"));
echo "Start: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
$dt = $dt->modify("+1 month");
echo "End: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
?>

L'exemple ci-dessus va afficher :

Normal year:
Start: 2015-01-31 00:00:00 -05:00
End:   2015-03-03 00:00:00 -05:00
Leap year:
Start: 2016-01-31 00:00:00 -05:00
End:   2016-03-02 00:00:00 -05:00

Pour obtenir le dernier du mois prochain (autrement dit pour prévenir le dépassement), le format last day of est disponible.

<?php
echo "Normal year:\n"; // February has 28 days
$dt = new DateTimeImmutable("2015-01-31 00:00:00", new DateTimeZone("America/New_York"));
echo "Start: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
$dt = $dt->modify("last day of next month");
echo "End: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;

echo "Leap year:\n"; // February has 29 days
$dt = new DateTimeImmutable("2016-01-31 00:00:00", new DateTimeZone("America/New_York"));
echo "Start: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
$dt = $dt->modify("last day of next month");
echo "End: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
?>

L'exemple ci-dessus va afficher :

Normal year:
Start: 2015-01-31 00:00:00 -05:00
End:   2015-02-28 00:00:00 -05:00
Leap year:
Start: 2016-01-31 00:00:00 -05:00
End:   2016-02-29 00:00:00 -05:00


La classe DateTime

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

Introduction

Représentation de la date et du temps.

Cette classe se comporte comme DateTimeImmutable, à l'exception que les objets se modifient eux-mêmes quand une méthode de modification telle que DateTime::modify() est appelée.

Avertissement

L'appel de méthodes sur des objets de la classe DateTime modifiera les informations encapsulées dans ces objets, si vous voulez éviter cela, vous devrez utiliser l'opérateur clone pour créer un nouvel objet. L'utilisation de DateTimeImmutable au lieu de DateTime est recommandée pour obtenir ce comportement par défaut.

Synopsis de la classe

class DateTime implements DateTimeInterface {
/* Constants héritées */
public const string DateTimeInterface::ATOM = "Y-m-d\\TH:i:sP";
public const string DateTimeInterface::COOKIE = "l, d-M-Y H:i:s T";
public const string DateTimeInterface::ISO8601 = "Y-m-d\\TH:i:sO";
public const string DateTimeInterface::ISO8601_EXPANDED = "X-m-d\\TH:i:sP";
public const string DateTimeInterface::RFC822 = "D, d M y H:i:s O";
public const string DateTimeInterface::RFC850 = "l, d-M-y H:i:s T";
public const string DateTimeInterface::RFC1036 = "D, d M y H:i:s O";
public const string DateTimeInterface::RFC1123 = "D, d M Y H:i:s O";
public const string DateTimeInterface::RFC7231 = "D, d M Y H:i:s \\G\\M\\T";
public const string DateTimeInterface::RFC2822 = "D, d M Y H:i:s O";
public const string DateTimeInterface::RFC3339 = "Y-m-d\\TH:i:sP";
public const string DateTimeInterface::RFC3339_EXTENDED = "Y-m-d\\TH:i:s.vP";
public const string DateTimeInterface::RSS = "D, d M Y H:i:s O";
public const string DateTimeInterface::W3C = "Y-m-d\\TH:i:sP";
/* Méthodes */
public __construct(string $datetime = "now", ?DateTimeZone $timezone = null)
public add(DateInterval $interval): DateTime
public static createFromFormat(string $format, string $datetime, ?DateTimeZone $timezone = null): DateTime|false
public static createFromImmutable(DateTimeImmutable $object): static
public static createFromInterface(DateTimeInterface $object): DateTime
public modify(string $modifier): DateTime|false
public static __set_state(array $array): DateTime
public setDate(int $year, int $month, int $day): DateTime
public setISODate(int $year, int $week, int $dayOfWeek = 1): DateTime
public setTime(
int $hour,
int $minute,
int $second = 0,
int $microsecond = 0
): DateTime
public setTimestamp(int $timestamp): DateTime
public setTimezone(DateTimeZone $timezone): DateTime
public sub(DateInterval $interval): DateTime
public diff(DateTimeInterface $targetObject, bool $absolute = false): DateInterval
public format(string $format): string
public getOffset(): int
public getTimestamp(): int
public getTimezone(): DateTimeZone|false
public __wakeup(): void
}

Historique

Version | Description
7.2.0 | Les constantes de classe de DateTime sont maintenant définies sur DateTimeInterface.
7.1.0 | Le constructeur de DateTime inclut désormais les microsecondes actuelles dans la valeur construite. Avant cela, il initialisait toujours les microsecondes à 0.

Sommaire

  • DateTime::add — Modifie un objet un objet DateTime, avec le nombre de jours, mois, années, heures, minutes et secondes ajouté
  • DateTime::__construct — Retourne un nouvel objet DateTime
  • DateTime::createFromFormat — Analyse une heure au format texte selon le format spécifié.
  • DateTime::createFromImmutable — Retourne une nouvelle instance d'objet DateTime encapsulant l'objet DateTimeImmutable fourni
  • DateTime::createFromInterface — Retourne un nouvel objet DateTime encapsulant l'objet DateTimeInterface fourni
  • DateTime::getLastErrors — Alias de DateTimeImmutable::getLastErrors
  • 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 horodatage Unix
  • DateTime::setTimezone — Configure le fuseau horaire de l'objet DateTime
  • DateTime::sub — Soustrait une durée à un objet DateTime


Modifie un objet un objet DateTime, avec le nombre de jours, mois, années, heures, minutes et secondes ajouté

  • « DateTime
  • DateTime::__construct »
  • PHP Manual
  • DateTime
  • Modifie un objet un objet DateTime, avec le nombre de jours, mois, années, heures, minutes et secondes ajouté

DateTime::add

date_add

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateTime::add -- date_add — Modifie un objet un objet DateTime, avec le nombre de jours, mois, années, heures, minutes et secondes ajouté

Description

Style orienté objet

public DateTime::add(DateInterval $interval): DateTime

Style procédural

date_add(DateTime $object, DateInterval $interval): DateTime

Ajoute la durée de l'objet DateInterval à l'objet DateTime.

Comme DateTimeImmutable::add() mais fonctionne avec DateTime.

La version procédurale prend un objet DateTime comme premier argument.

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 modifié DateTime pour chainer les méthodes.

Voir aussi

  • DateTimeImmutable::add() - Retourne un nouvel object, avec le nombre de jours, mois, années, heures, minutes et secondes ajouté


Retourne un nouvel objet DateTime

  • « DateTime::add
  • DateTime::createFromFormat »
  • PHP Manual
  • DateTime
  • Retourne un nouvel objet DateTime

DateTime::__construct

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTime::__construct — Retourne un nouvel objet DateTime

Description

public DateTime::__construct(string $datetime = "now", ?DateTimeZone $timezone = null)

Comme DateTimeImmutable::__construct() mais fonctionne avec DateTime. Considérer l'utilisation de DateTimeImmutable et ses fonctionnalités à la place.

Retourne un nouvel objet DateTime.

Liste de paramètres

datetime

Une chaîne date/heure. Les formats valides sont expliqués dans la documentation sur les formats Date et Heure.

Passer "now" pour obtenir le temps courant lors de l'utilisation du paramètre $timezone.

timezone

Un object DateTimeZone représentant le fuseau horaire de $datetime.

Si $timezone est omit ou null, le fuseau horaire actuel sera utilisé.

Note:

Le paramètre $timezone et le fuseau horaire actuel sont ignorés quand le paramètre $datetime est un horodatage UNIX (e.g. @946684800) ou spécifie un fuseau horaire (e.g. 2010-01-28T15:00:00+02:00).

Valeurs de retour

Retourne une nouvelle instance DateTime.

Erreurs / Exceptions

Si une chaîne de date ou de temps invalide est fourni, une DateMalformedStringException est lancé. Antérieur à PHP 8.3, ceci était une Exception.

Historique

Version | Description
8.3.0 | Lance désormais une DateMalformedStringException si une chaîne invalide est fourni, au lieu de Exception.

Voir aussi

  • DateTimeImmutable::__construct() - Retourne un nouvel objet DateTimeImmutable


Analyse une heure au format texte selon le format spécifié.

  • « DateTime::__construct
  • DateTime::createFromImmutable »
  • PHP Manual
  • DateTime
  • Analyse une heure au format texte selon le format spécifié.

DateTime::createFromFormat

date_create_from_format

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateTime::createFromFormat -- date_create_from_format — Analyse une heure au format texte selon le format spécifié.

Description

Style orienté objet

public static DateTime::createFromFormat(string $format, string $datetime, ?DateTimeZone $timezone = null): DateTime|false

Style procédural

date_create_from_format(string $format, string $datetime, ?DateTimeZone $timezone = null): DateTime|false

Retourne un nouvel objet DateTime représentant la date et l'heure spécifiées par le texte datetime, qui a été formaté dans le format donné.

Identique à DateTimeImmutable::createFromFormat() mais crée une instance de l'objet DateTime.

Cette méthode, y compris les paramètres, les exemples et les considérations, est documentée sur la page DateTimeImmutable::createFromFormat.

Liste de paramètres

Voir DateTimeImmutable::createFromFormat.

Valeurs de retour

Retourne un nouvel objet DateTime ou false si une erreur survient.

Erreurs / Exceptions

Cette méthode lance une ValueError lorsque le datetime contient des octets NULL.

Historique

Version | Description
8.0.21, 8.1.8, 8.2.0 | Lance désormais une ValueError lorsque des octets NULL sont passés dans datetime, ce qui était auparavant ignoré silencieusement.

Exemples

Pour une série complète d'exemples, voir DateTimeImmutable::createFromFormat.

Voir aussi

  • DateTimeImmutable::createFromFormat() - Analyse une heure au format texte selon le format spécifié.


Retourne une nouvelle instance d'objet DateTime encapsulant l'objet DateTimeImmutable fourni

  • « DateTime::createFromFormat
  • DateTime::createFromInterface »
  • PHP Manual
  • DateTime
  • Retourne une nouvelle instance d'objet DateTime encapsulant l'objet DateTimeImmutable fourni

DateTime::createFromImmutable

(PHP 7 >= 7.3.0, PHP 8)

DateTime::createFromImmutable — Retourne une nouvelle instance d'objet DateTime encapsulant l'objet DateTimeImmutable fourni

Description

public static DateTime::createFromImmutable(DateTimeImmutable $object): static

Liste de paramètres

object

L'objet immuable DateTimeImmutable qui doit être converti en une version mutable. Cet objet n'est pas modifié, mais une nouvelle instance d'objet DateTime est créée contenant les même informations de date, temps, et fuseau horaire.

Valeurs de retour

Retourne une nouvelle instance de DateTime.

Historique

Version | Description
8.0.0 | La méthode renvoie une instance de la classe invoquée. Auparavant, elle créait une nouvelle instance de DateTime.

Exemples

Exemple #1 Créer un objet de date et temps mutable

<?php
$date = new DateTimeImmutable("2014-06-20 11:45 Europe/London");

$mutable = DateTime::createFromImmutable( $date );
?>


Retourne un nouvel objet DateTime encapsulant l'objet DateTimeInterface fourni

  • « DateTime::createFromImmutable
  • DateTime::getLastErrors »
  • PHP Manual
  • DateTime
  • Retourne un nouvel objet DateTime encapsulant l'objet DateTimeInterface fourni

DateTime::createFromInterface

(PHP 8)

DateTime::createFromInterface — Retourne un nouvel objet DateTime encapsulant l'objet DateTimeInterface fourni

Description

public static DateTime::createFromInterface(DateTimeInterface $object): DateTime

Liste de paramètres

object

L'objet DateTimeInterface qui doit être converti en une version mutable. Cet objet n'est pas modifié, mais une nouvelle instance d'objet DateTime est créé contenant les même informations de date, temps, et fuseau horaire.

Valeurs de retour

Retourne une nouvelle instance de DateTime.

Exemples

Exemple #1 Création d'un objet de date et temps mutable

<?php
$date = new DateTimeImmutable("2014-06-20 11:45 Europe/London");

$mutable = DateTime::createFromInterface($date);

$date = new DateTime("2014-06-20 11:45 Europe/London");
$also_mutable = DateTime::createFromInterface($date);
?>


Alias de DateTimeImmutable::getLastErrors

  • « DateTime::createFromInterface
  • DateTime::modify »
  • PHP Manual
  • DateTime
  • Alias de DateTimeImmutable::getLastErrors

DateTime::getLastErrors

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateTime::getLastErrors — Alias de DateTimeImmutable::getLastErrors()

Description

Cette fonction est un alias de : DateTimeImmutable::getLastErrors()


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, PHP 8)

DateTime::modify -- date_modify — Modifie le timestamp

Description

Style orienté objet

public DateTime::modify(string $modifier): DateTime|false

Style procédural

date_modify(DateTime $object, string $modifier): DateTime|false

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.

modifier

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 modifié DateTime pour chainer les méthodes ou false si une erreur survient.

Erreurs / Exceptions

API Orienté Objet uniquement : Si une chaîne de date ou de temps invalide est fournie, une DateMalformedStringException est lancé.

Historique

Version | Description
8.3.0 | Lance désormais une DateMalformedStringException avec DateTime::modify() si une chaîne invalide est fourni, au lieu d'un avertissement. date_modify() n'a pas été modifié.

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

Exemple #3 Tous les formats de date et d'heure sont pris en charge

<?php
$date = new DateTime('2020-12-31');

$date->modify('1er juillet 2023');
echo $date->format('Y-m-d H:i') . "\n";

$date->modify('l prochain');
echo $date->format('Y-m-d H:i') . "\n";

$date->modify('17:30');
echo $date->format('Y-m-d H:i') . "\n";
?>

L'exemple ci-dessus va afficher :

2023-07-01 00:00
2023-07-03 00:00
2023-07-03 17:30

Voir aussi

  • strtotime() - Transforme un texte anglais en timestamp
  • DateTimeImmutable::modify() - Créée un nouvel objet avec l'horodatage modifié
  • DateTime::add() - Modifie un objet un objet DateTime, avec le nombre de jours, mois, années, heures, minutes et secondes ajouté
  • 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 horodatage Unix


Le gestionnaire __set_state

  • « DateTime::modify
  • DateTime::setDate »
  • PHP Manual
  • DateTime
  • Le gestionnaire __set_state

DateTime::__set_state

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateTime::__set_state — Le gestionnaire __set_state

Description

public static DateTime::__set_state(array $array): DateTime

Le gestionnaire __set_state().

Comme DateTimeImmutable::__set_state() mais fonctionne avec DateTime.

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, PHP 8)

DateTime::setDate -- date_date_set — Assigne la date

Description

Style orienté objet

public DateTime::setDate(int $year, int $month, int $day): DateTime

Style procédural

date_date_set(
DateTime $object,
int $year,
int $month,
int $day
): DateTime

Assigne la date courante de l'objet DateTime à une nouvelle date.

Comme DateTimeImmutable::setDate() mais fonctionne avec DateTime et modifie l'objet existant.

La version procédurale prend un objet DateTime comme premier argument.

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 modifié DateTime pour chainer les méthodes.

Voir aussi

  • DateTimeImmutable::setDate() - Définit la date


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, PHP 8)

DateTime::setISODate -- date_isodate_set — Configure une date ISO

Description

Style orienté objet

public DateTime::setISODate(int $year, int $week, int $dayOfWeek = 1): DateTime

Style procédural

date_isodate_set(
DateTime $object,
int $year,
int $week,
int $dayOfWeek = 1
): DateTime

Configure une date au format ISO 8601 : en utilisant des décalages de semaines et de jours, au lieu de dates spécifiques.

Comme DateTimeImmutable::setISODate() mais fonctionne avec DateTime.

La version procédurale prend un objet DateTime comme premier argument.

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.

dayOfWeek

Décalage par rapport au premier jour de la semaine.

Valeurs de retour

Retourne l'objet modifié DateTime pour chainer les méthodes.

Voir aussi

  • DateTimeImmutable::setISODate() - Définit la date ISO


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, PHP 8)

DateTime::setTime -- date_time_set — Assigne l'heure

Description

Style orienté objet

public DateTime::setTime(
int $hour,
int $minute,
int $second = 0,
int $microsecond = 0
): DateTime

Style procédural

date_time_set(
DateTime $object,
int $hour,
int $minute,
int $second = 0,
int $microsecond = 0
): DateTime

Change le temps dans l'objet DateTime.

Comme DateTimeImmutable::setTime() mais fonctionne avec DateTime.

La version procédurale prend un objet DateTime comme premier argument.

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.

microsecond

Microsecondes du moment.

Valeurs de retour

Retourne l'objet modifié DateTime pour chainer les méthodes.

Historique

Version | Description
8.1.0 | Le comportement avec les heures doubles existantes (pendant la transition DST) a changé. Auparavant, PHP choisissait la deuxième occurrence (après la transition DST), au lieu de la première occurrence (avant la transition DST).
7.1.0 | Le paramètre microsecond a été ajouté.

Voir aussi

  • DateTimeImmutable::setTime() - Définit l'horaire


Assigne la date et l'heure à l'aide d'un horodatage Unix

  • « DateTime::setTime
  • DateTime::setTimezone »
  • PHP Manual
  • DateTime
  • Assigne la date et l'heure à l'aide d'un horodatage Unix

DateTime::setTimestamp

date_timestamp_set

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateTime::setTimestamp -- date_timestamp_set — Assigne la date et l'heure à l'aide d'un horodatage Unix

Description

Style orienté objet

public DateTime::setTimestamp(int $timestamp): DateTime

Style procédural

date_timestamp_set(DateTime $object, int $timestamp): DateTime

Assigne la date et l'heure à l'aide d'un horodatage Unix.

Comme DateTimeImmutable::setTimestamp() mais fonctionne avec DateTime.

La version procédurale prend un objet DateTime comme premier argument.

Liste de paramètres

object

Style procédural uniquement : Un objet DateTime retourné par la fonction date_create(). Cette fonction modifie cet objet.

timestamp

Horodatage Unix représentant la date et l'heure. Définir un horodatage en dehors de l'intervalle d'un entier est possible en utilisant DateTimeImmutable::modify() avec le format @.

Valeurs de retour

Retourne l'objet modifié DateTime pour chainer les méthodes.

Voir aussi

  • DateTimeImmutable::setTimestamp() - Définit la date et l'heure basé sur un horodatage 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, PHP 8)

DateTime::setTimezone -- date_timezone_set — Configure le fuseau horaire de l'objet DateTime

Description

Style orienté objet

public DateTime::setTimezone(DateTimeZone $timezone): DateTime

Style procédural

date_timezone_set(DateTime $object, DateTimeZone $timezone): DateTime

Définit un nouveau fuseau horaire pour un object DateTime .

Comme DateTimeImmutable::setTimezone() mais fonctionne avec DateTime.

La version procédurale prend un objet DateTime comme premier argument.

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 object pour chainer les méthodes. Le point dans le temps sous-jacent n'est pas modifié lors de l'appel de cette méthode.

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

  • DateTimeImmutable::setTimezone() - Définit le fuseau horaire
  • 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, PHP 8)

DateTime::sub -- date_sub — Soustrait une durée à un objet DateTime

Description

Style orienté objet

public DateTime::sub(DateInterval $interval): DateTime

Style procédural

date_sub(DateTime $object, DateInterval $interval): DateTime

Modifie l'objet DateTime spécifié, en soustrayant l'objet DateInterval spécifié.

Comme DateTimeImmutable::sub() mais fonctionne avec DateTime.

La version procédurale prend un objet DateTime comme premier argument.

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 modifié DateTime pour chainer les méthodes.

Erreurs / Exceptions

API Orienté Objet uniquement : Si une opération non supportée est tentée, tel que l'utilisation d'un object DateInterval représentant une spécification de temps relatif tel que next weekday, une DateInvalidOperationException est lancé.

Historique

Version | Description
8.3.0 | Lance désormais une DateInvalidOperationException avec DateTime::sub() au lieu d'un avertissement quand une opération non supportée est tentée. date_sub() n'a pas été modifié.

Voir aussi

  • DateTimeImmutable::sub() - Soustrait un nombre de jours, mois, années, heures et secondes


La classe DateTimeImmutable

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Introduction

Représentation d'une date et heure.

Cette classe se comporte de la manière identique à DateTime à l'exception que de nouveaux objets sont retournés quand des méthodes de modification telle que DateTime::modify() sont appelées.

Synopsis de la classe

class DateTimeImmutable implements DateTimeInterface {
/* Constants héritées */
public const string DateTimeInterface::ATOM = "Y-m-d\\TH:i:sP";
public const string DateTimeInterface::COOKIE = "l, d-M-Y H:i:s T";
public const string DateTimeInterface::ISO8601 = "Y-m-d\\TH:i:sO";
public const string DateTimeInterface::ISO8601_EXPANDED = "X-m-d\\TH:i:sP";
public const string DateTimeInterface::RFC822 = "D, d M y H:i:s O";
public const string DateTimeInterface::RFC850 = "l, d-M-y H:i:s T";
public const string DateTimeInterface::RFC1036 = "D, d M y H:i:s O";
public const string DateTimeInterface::RFC1123 = "D, d M Y H:i:s O";
public const string DateTimeInterface::RFC7231 = "D, d M Y H:i:s \\G\\M\\T";
public const string DateTimeInterface::RFC2822 = "D, d M Y H:i:s O";
public const string DateTimeInterface::RFC3339 = "Y-m-d\\TH:i:sP";
public const string DateTimeInterface::RFC3339_EXTENDED = "Y-m-d\\TH:i:s.vP";
public const string DateTimeInterface::RSS = "D, d M Y H:i:s O";
public const string DateTimeInterface::W3C = "Y-m-d\\TH:i:sP";
/* Méthodes */
public __construct(string $datetime = "now", ?DateTimeZone $timezone = null)
public add(DateInterval $interval): DateTimeImmutable
public static createFromFormat(string $format, string $datetime, ?DateTimeZone $timezone = null): DateTimeImmutable|false
public static createFromInterface(DateTimeInterface $object): DateTimeImmutable
public static createFromMutable(DateTime $object): static
public static getLastErrors(): array|false
public modify(string $modifier): DateTimeImmutable|false
public static __set_state(array $array): DateTimeImmutable
public setDate(int $year, int $month, int $day): DateTimeImmutable
public setISODate(int $year, int $week, int $dayOfWeek = 1): DateTimeImmutable
public setTime(
int $hour,
int $minute,
int $second = 0,
int $microsecond = 0
): DateTimeImmutable
public setTimestamp(int $timestamp): DateTimeImmutable
public setTimezone(DateTimeZone $timezone): DateTimeImmutable
public sub(DateInterval $interval): DateTimeImmutable
public diff(DateTimeInterface $targetObject, bool $absolute = false): DateInterval
public format(string $format): string
public getOffset(): int
public getTimestamp(): int
public getTimezone(): DateTimeZone|false
public __wakeup(): void
}

Historique

Version | Description
7.1.0 | Le constructeur DateTimeImmutable inclut désormais les microsecondes actuelles dans la valeur construite. Avant cela, il initialisait toujours les microsecondes à 0.

Sommaire

  • DateTimeImmutable::add — Retourne un nouvel object, avec le nombre de jours, mois, années, heures, minutes et secondes ajouté
  • DateTimeImmutable::__construct — Retourne un nouvel objet DateTimeImmutable
  • DateTimeImmutable::createFromFormat — Analyse une heure au format texte selon le format spécifié.
  • DateTimeImmutable::createFromInterface — Retourne un nouvel objet DateTimeImmutable encapsulant l'objet DateTimeInterface fourni
  • DateTimeImmutable::createFromMutable — Retourne une nouvelle instance de DateTimeImmutable encapsulant l'objet DateTime fournit
  • DateTimeImmutable::getLastErrors — Retourne les alertes et erreurs
  • DateTimeImmutable::modify — Créée un nouvel objet avec l'horodatage 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 l'horaire
  • DateTimeImmutable::setTimestamp — Définit la date et l'heure basé sur un horodatage Unix
  • DateTimeImmutable::setTimezone — Définit le fuseau horaire
  • DateTimeImmutable::sub — Soustrait un nombre de jours, mois, années, heures et secondes


Retourne un nouvel object, avec le nombre de jours, mois, années, heures, minutes et secondes ajouté

  • « DateTimeImmutable
  • DateTimeImmutable::__construct »
  • PHP Manual
  • DateTimeImmutable
  • Retourne un nouvel object, avec le nombre de jours, mois, années, heures, minutes et secondes ajouté

DateTimeImmutable::add

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::add — Retourne un nouvel object, avec le nombre de jours, mois, années, heures, minutes et secondes ajouté

Description

public DateTimeImmutable::add(DateInterval $interval): DateTimeImmutable

Construit un nouvel objet DateTimeImmutable, et y ajoute l'objet DateInterval spécifié, pour représenter la nouvelle valeur.

Liste de paramètres

interval

Un object DateInterval

Valeurs de retour

Retourne un nouvel objet DateTimeImmutable avec les données modifiées.

Exemples

Exemple #1 Exemple de DateTimeImmutable::add()

Style orienté objet

<?php
$date = new DateTimeImmutable('2000-01-01');
$newDate = $date->add(new DateInterval('P10D'));
echo $newDate->format('Y-m-d') . "\n";
?>

Exemple #2 Exemples supplémentaires de DateTimeImmutable::add()

<?php
$date = new DateTimeImmutable('2000-01-01');
$newDate = $date->add(new DateInterval('PT10H30S'));
echo $newDate->format('Y-m-d H:i:s') . "\n";

$date = new DateTimeImmutable('2000-01-01');
$newDate = $date->add(new DateInterval('P7Y5M4DT4H3M2S'));
echo $newDate->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 Faire attention lors de l'ajout de mois

<?php
$date = new DateTimeImmutable('2000-12-31');
$interval = new DateInterval('P1M');

$newDate1 = $date->add($interval);
echo $newDate1->format('Y-m-d') . "\n";

$newDate2 = $newDate1->add($interval);
echo $newDate2->format('Y-m-d') . "\n";
?>

L'exemple ci-dessus va afficher :

2001-01-31
2001-03-03

Voir aussi

  • DateTimeImmutable::sub() - Soustrait un nombre de jours, mois, années, heures et secondes
  • DateTimeImmutable::diff() - Retourne la différence entre deux objets DateTime
  • DateTimeImmutable::modify() - Créée un nouvel objet avec l'horodatage modifié


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, PHP 8)

DateTimeImmutable::__construct -- date_create_immutable — Retourne un nouvel objet DateTimeImmutable

Description

Style orienté objet

public DateTimeImmutable::__construct(string $datetime = "now", ?DateTimeZone $timezone = null)

Style procédural

date_create_immutable(string $datetime = "now", ?DateTimeZone $timezone = null): DateTimeImmutable|false

Returns new a DateTimeImmutable object.

Liste de paramètres

datetime

Une chaîne date/heure. Les formats valides sont expliqués dans la documentation sur les formats Date et Heure.

Passer "now" pour obtenir le temps courant lors de l'utilisation du paramètre $timezone.

timezone

Un object DateTimeZone représentant le fuseau horaire de $datetime.

Si $timezone est omit ou null, le fuseau horaire actuel sera utilisé.

Note:

Le paramètre $timezone et le fuseau horaire actuel sont ignorés quand le paramètre $datetime est un horodatage UNIX (e.g. @946684800) ou spécifie un fuseau horaire (e.g. 2010-01-28T15:00:00+02:00 ou 2010-07-05T06:00:00Z).

Valeurs de retour

Retourne une nouvelle instance DateTimeImmutable.

Erreurs / Exceptions

Si une chaîne de date ou de temps invalide est fourni, une DateMalformedStringException est lancé. Antérieur à PHP 8.3, ceci était une Exception.

Historique

Version | Description
8.3.0 | Lance désormais une DateMalformedStringException si une chaîne invalide est fourni, au lieu de Exception.
7.1.0 | Désormais les microsecondes sont remplis avec leur valeur actuelle. Et non '00000'.

Exemples

Exemple #1 Exemple de DateTimeImmutable::__construct()

Style orienté objet

<?php
try {
$date = new DateTimeImmutable('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 Intricacies of DateTimeImmutable::__construct()

<?php
// Specified date/time in your computer's time zone.
$date = new DateTimeImmutable('2000-01-01');
echo $date->format('Y-m-d H:i:sP') . "\n";

// Specified date/time in the specified time zone.
$date = new DateTimeImmutable('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";

// Current date/time in your computer's time zone.
$date = new DateTimeImmutable();
echo $date->format('Y-m-d H:i:sP') . "\n";

// Current date/time in the specified time zone.
$date = new DateTimeImmutable('now', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";

// Using a UNIX timestamp. Notice the result is in the UTC time zone.
$date = new DateTimeImmutable('@946684800');
echo $date->format('Y-m-d H:i:sP') . "\n";

// Non-existent values roll over.
$date = new DateTimeImmutable('2000-02-30');
echo $date->format('Y-m-d H:i:sP') . "\n";
?>

Résultat de l'exemple ci-dessus est 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

Exemple #3 Changement du fuseau horaire associé

<?php
$timeZone = new \DateTimeZone('Asia/Tokyo');

$time = new \DateTimeImmutable();
$time = $time->setTimezone($timeZone);

echo $time->format('Y/m/d H:i:s'), "\n";
?>

Résultat de l'exemple ci-dessus est similaire à :

2022/08/12 23:49:23

Exemple #4 Utilisation d'une chaîne de date/heure relative

<?php
$time = new \DateTimeImmutable("-1 year");

echo $time->format('Y/m/d H:i:s'), "\n";
?>

Résultat de l'exemple ci-dessus est similaire à :

2021/08/12 15:43:51


Analyse une heure au format texte selon le format spécifié.

  • « DateTimeImmutable::__construct
  • DateTimeImmutable::createFromInterface »
  • PHP Manual
  • DateTimeImmutable
  • Analyse une heure au format texte selon le format spécifié.

DateTimeImmutable::createFromFormat

date_create_immutable_from_format

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::createFromFormat -- date_create_immutable_from_format — Analyse une heure au format texte selon le format spécifié.

Description

Style orienté objet

public static DateTimeImmutable::createFromFormat(string $format, string $datetime, ?DateTimeZone $timezone = null): DateTimeImmutable|false

Style procédural

date_create_immutable_from_format(string $format, string $datetime, ?DateTimeZone $timezone = null): DateTimeImmutable|false

Retourne un nouvel objet DateTimeImmutable représentant la date et l'heure spécifiées par la chaîne datetime, qui a été formatée au format donné.

Liste de paramètres

format

Le format dans lequel string doit être transmise. Voir les options de formatage ci-dessous. Dans la plupart des cas, les mêmes lettres que pour la date() peuvent être utilisées.

Tous les champs sont initialisés avec la date/heure actuelle. Dans la plupart des cas, vous voudrez les remettre à "zéro" (l'époque Unix, 1970-01-01 00:00:00 UTC). Vous pouvez faire cela en incluant le caractère ! comme premier caractère dans format, ou | comme dernier. Veuillez consulter la documentation de chaque caractère ci-dessous pour plus d'informations.

Le format est analysé de gauche à droite, ce qui signifie que dans certaines situations, l'ordre dans lequel les caractères de format sont présents affecte le résultat. Dans le cas de z (le jour de l'année), il est nécessaire qu'une année ait déjà été analysée, par exemple via les caractères Y ou y.

Les lettres utilisées pour l'analyse des nombres autorisent une large plage de valeurs, en dehors de ce que serait la plage logique. Par exemple, le d (jour du mois) accepte des valeurs comprises entre 00 et 99. La seule contrainte est sur le nombre de chiffres. Le mécanisme de débordement de l'analyseur date/heure est utilisé lorsque des valeurs hors plage sont données. Les exemples ci-dessous illustrent certains de ces comportements.

Cela signifie également que les données analysées pour une lettre de format sont gourmandes et liront jusqu'au nombre de chiffres que son format autorise. Cela peut également signifier qu'il n'y a plus assez de caractères dans la chaîne datetime pour les caractères de format suivants. Un exemple plus bas sur cette page illustre également ce problème.

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 (les nombres à 2 chiffres supérieurs au nombre de jours du mois sont acceptés, auquel cas ils feront déborder le mois. Par exemple utiliser 33 avec janvier, signifiera le 2 février)
D and l | Une représentation textuelle du jour | De Mon jusqu'à Sun ou de Sunday jusqu'à Saturday Si le nom de jour donné est différent alors le nom de jour appartenant à une date analysée (ou par défaut) est différent, alors un débordement se produit vers la date suivante avec le nom de jour donné. Voir les exemples ci-dessous pour une explication.
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); doit être précédé par Y ou y. | 0 à 365 (les nombres à 3 chiffres supérieurs aux nombres d'une année sont acceptés, auquel cas ils feront déborder l'année. Par exemple, utiliser 366 avec 2022, signifie le 2 janvier 2023)
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 (les nombres à 2 chiffres supérieurs à 12 sont acceptés, auquel cas ils feront déborder l'année. Par exemple, utiliser 13 signifie janvier de l'année suivante)
Année --- ---
X et x | Une représentation numérique complète d'une année, jusqu'à 19 chiffres, éventuellement préfixée par + ou - | Exemples : 1999 ou 2003
Y | Une représentation complète de l'année, sur 4 chiffres | Exemples : 0055, 787, 1999, -2003, +10191
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
g et h | L'heure au format 12-heures, avec ou sans zéro initial | De 1 à 12 ou de 01 à 12 (les nombres à 2 chiffres supérieurs à 12 sont acceptés, auquel cas ils feront déborder le jour. Par exemple utiliser 14 signifie 02 dans la prochaine période AM/PM)
G et H | L'heure au format 24-heures, avec ou sans zéro initial | De 0 à 23 ou de 00 à 23 (les nombres à 2 chiffres supérieurs à 24 sont acceptés, auquel cas ils feront déborder la journée. Par exemple utiliser 26 signifie 02:00 le lendemain)
i | Les minutes, avec un zéro initial | De 00 à 59 (les nombres à 2 chiffres supérieurs à 59 sont acceptés, auquel cas ils feront déborder l'heure. Par exemple utiliser 66 signifie :06 l'heure suivante)
s | Les secondes, avec un zéro initial | De 00 à 59 (les nombres à 2 chiffres supérieurs à 59 sont acceptés, auquel cas ils feront déborder la minute. Par exemple utiliser 90 signifie :30 la minute suivante)
v | Les millisecondes (jusqu'à 3 chiffres) | Exemple: 12 (0.12 secondes), 345 (0.345 secondes)
u | Les microsecondes (jusqu'à 6 chiffres) | Exemple : 45 (0.45 secondes), 654321 ( 0.654321 secondes)
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) | Zéro ou plusieurs espaces, tabulations, caractères NBSP (U+A0), ou NNBSP (U+202F) | Exemple: "\t", " "
# Un des symboles de séparation suivants : ;, :, /, ., ,, -, ( ou ) Exemple : /
;, :, /, ., ,, -, ( ou ) | Le caractère spécifié. | Exemple : -
? Un octet aléatoire Exemple : ^ (Sachez que pour les caractères UTF-8, vous pourriez avoir besoin de plus d'un ?. Dans ce cas, utiliser * est probablement ce que vous voulez à la place)
* 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) à des valeurs similaires à zéro (0 pour heure, minute, seconde et fraction, 1 pour mois et jour, 1970 pour l'année et UTC pour l'information de fuseau horaire) 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) à valeurs similaires à zéro 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 la chaîne de format entraîneront l'échec de l'analyse et un message d'erreur est ajouté à la structure renvoyée. Vous pouvez interroger les messages d'erreur avec DateTimeImmutable::getLastErrors().

Pour inclure un caractère littéral dans format, vous devez l'échapper avec un antislash (\).

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 l'époque Unix.

Le début de l'époque Unix est le 01/01/1970 à 00:00:00 UTC.

datetime

Chaîne représentant le moment.

timezone

Un objet DateTimeZone représentant le fuseau horaire désiré.

Si timezone est omis ou null et datetime 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 datetime contient un timestamp (e.g. 946684800) ou précise un fuseau (e.g. 2010-01-28T15:00:00+02:00).

Valeurs de retour

Retourne un nouvel objet DateTimeImmutable ou false si une erreur survient.

Erreurs / Exceptions

Cette méthode lance une ValueError lorsque le datetime contient des octets NULL.

Historique

Version | Description
8.2.9 | Le spécificateur (espace) prend désormais également en charge les caractères NBSP (U+A0) et NNBSP (U+202F).
8.2.0 | Les spécificateurs X et x format ont été ajoutés.
8.0.21, 8.1.8, 8.2.0 | Lance désormais une ValueError lorsque des octets NULL sont passés dans datetime, ce qui était auparavant ignoré silencieusement.
7.3.0 | Le spécificateur de format v a été ajouté.

Exemples

Exemple #1 Exemple avec DateTimeImmutable::createFromFormat()

Style orienté objet

<?php
$date = DateTimeImmutable::createFromFormat('j-M-Y', '15-Feb-2009');
echo $date->format('Y-m-d');
?>

Exemple #2 Utilisation des constantes de format prédéfinies avec DateTimeImmutable::createFromFormat()

Style orienté objet

<?php
$date = DateTimeImmutable::createFromFormat(DateTimeInterface::ISO8601, '2004-02-12T15:19:21+00:00');
$date = DateTimeImmutable::createFromFormat(DateTimeInterface::RFC3339_EXTENDED, '2013-10-14T09:00:00.000+02:00');
?>

Les constantes de formatage utilisées dans cet exemple consistent en une chaîne de caractères pour formater un objet DateTimeImmutable. Dans la plupart des cas, ces lettres correspondent aux mêmes éléments d'information sur la date et l'heure que ceux définis dans la section parameters ci-dessus, mais elles ont tendance à être plus indulgentes. Les constantes de formatage telles qu'elles sont utilisées dans cet exemple consistent en une chaîne de caractères pour formater un objet DateTimeImmutable. Dans la plupart des cas, ces lettres correspondent aux mêmes éléments d'information sur la date et l'heure que ceux définis dans la section paramètres ci-dessus, mais elles ont tendance à être plus faciles à utiliser.

Exemple #3 Les subtilités de DateTimeImmutable::createFromFormat()

<?php
echo 'Date courante: ' . date('Y-m-d H:i:s') . "\n";

$format = 'Y-m-d';
$date = DateTimeImmutable::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 = DateTimeImmutable::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 = DateTimeImmutable::createFromFormat($format, '2009-02-15 15:16:17');
echo "Format: $format; " . $date->format('Y-m-d H:i:s') . "\n";

$format = '!d';
$date = DateTimeImmutable::createFromFormat($format, '15');
echo "Format: $format; " . $date->format('Y-m-d H:i:s') . "\n";

$format = 'i';
$date = DateTimeImmutable::createFromFormat($format, '15');
echo "Format: $format; " . $date->format('Y-m-d H:i:s') . "\n";
?>

Résultat de l'exemple ci-dessus est similaire à :

Date courante: 2022-06-02 15:50:46
Format: Y-m-d; 2009-02-15 15:50:46
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
Format: i; 2022-06-02 00:15:00

Exemple #4 Texte de Format avec des caractères litéraux

<?php
echo DateTimeImmutable::createFromFormat('H\h i\m s\s','23h 15m 03s')->format('H:i:s');
?>

Résultat de l'exemple ci-dessus est similaire à :

23:15:03

Exemple #5 Comportement de débordement

<?php
echo DateTimeImmutable::createFromFormat('Y-m-d H:i:s', '2021-17-35 16:60:97')->format(DateTimeImmutable::RFC2822);
?>

Résultat de l'exemple ci-dessus est similaire à :

Sat, 04 Jun 2022 17:01:37 +0000

Bien que le résultat semble étrange, il est correct, car les débordements suivants se produisent:

  1. 97 secondes débordent sur 1 minute, ce qui laisse 37 secondes.
  2. 61 minutes débordent sur 1 heure, ce qui laisse 1 minute.
  3. 35 jours débordent sur 1 mois, ce qui laisse 4 jours. Le nombre de jours restants dépend du mois, car tous les mois n'ont pas le même nombre de jours.
  4. 18 mois débordent sur 1 an, ce qui laisse 6 mois.

Exemple #6 Comportement pour le nom de jour débordant

<?php
$d = DateTime::createFromFormat(DateTimeInterface::RFC1123, 'Mon, 3 Aug 2020 25:00:00 +0000');
echo $d->format(DateTime::RFC1123), "\n";
?>

Résultat de l'exemple ci-dessus est similaire à :

Mon, 10 Aug 2020 01:00:00 +0000

Bien que le résultat semble étrange, il est correct, car les débordements suivants se produisent:

  1. 3 Aug 2020 25:00:00 débordent sur (Tue) 4 Aug 2020 01:00.
  2. Mon est appliqué, ce qui avance la date au Mon, 10 Aug 2020 01:00:00.L'explication des mots-clés relatifs tels que Mon est expliquée dans la section sur les formats relatifs.

Afin de détecter les dépassements de dates, vous pouvez utiliser DateTimeImmutable::getLastErrors(), qui inclura un avertissement en cas de dépassement.

Exemple #7 Détecter les dates dépassées

<?php
$d = DateTimeImmutable::createFromFormat('Y-m-d H:i:s', '2021-17-35 16:60:97');
echo $d->format(DateTimeImmutable::RFC2822), "\n\n";

var_dump(DateTimeImmutable::GetLastErrors());
?>

Résultat de l'exemple ci-dessus est similaire à :

Sat, 04 Jun 2022 17:01:37 +0000

array(4) {
  'warning_count' =>
  int(2)
  'warnings' =>
  array(1) {
    [19] =>
    string(27) "The parsed date was invalid"
  }
  'error_count' =>
  int(0)
  'errors' =>
  array(0) {
  }
}

Exemple #8 Comportement d'analyse gourmand

<?php
print_r(date_parse_from_format('Gis', '60101'));
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [year] =>
    [month] =>
    [day] =>
    [hour] => 60
    [minute] => 10
    [second] => 0
    [fraction] => 0
    [warning_count] => 1
    [warnings] => Array
        (
            [5] => The parsed time was invalid
        )

    [error_count] => 1
    [errors] => Array
        (
            [4] => A two digit second could not be found
        )

    [is_localtime] =>
)

Le format G consiste à analyser les heures d'horloge sur 24 heures, avec ou sans zéro de tête. Cela nécessite d'analyser 1 ou 2 chiffres. Parce qu'il y a deux chiffres suivants, il lit avidement cela comme 60.

Les caractères de format i et s suivants nécessitent tous deux deux chiffres. Cela signifie que 10 est passé comme minute (i), et qu'il n'y a alors plus assez de chiffres à analyser comme seconde (s).

Le tableau errors indique ce problème.

De plus, une heure de 60 est en dehors de la plage 0-24, ce qui fait que le tableau warnings inclut un avertissant que l'heure n'est pas valide.

Voir aussi

  • DateTimeImmutable::__construct() - Retourne un nouvel objet DateTimeImmutable
  • DateTimeImmutable::getLastErrors() - Retourne les alertes et erreurs
  • checkdate() - Valide une date grégorienne
  • strptime() - Analyse une date générée par strftime


Retourne un nouvel objet DateTimeImmutable encapsulant l'objet DateTimeInterface fourni

  • « DateTimeImmutable::createFromFormat
  • DateTimeImmutable::createFromMutable »
  • PHP Manual
  • DateTimeImmutable
  • Retourne un nouvel objet DateTimeImmutable encapsulant l'objet DateTimeInterface fourni

DateTimeImmutable::createFromInterface

(PHP 8)

DateTimeImmutable::createFromInterface — Retourne un nouvel objet DateTimeImmutable encapsulant l'objet DateTimeInterface fourni

Description

public static DateTimeImmutable::createFromInterface(DateTimeInterface $object): DateTimeImmutable

Liste de paramètres

object

L'objet DateTimeInterface qui doit être converti en une version immutable. Cet objet n'est pas modifié, mais une nouvelle instance d'objet DateTimeImmutable est créé contenant les même informations de date, temps, et fuseau horaire.

Valeurs de retour

Retourne une nouvelle instance de DateTimeImmutable.

Exemples

Exemple #1 Création d'un objet de date et temps immutable

<?php
$date = new DateTime("2014-06-20 11:45 Europe/London");

$immutable = DateTimeImmutable::createFromInterface($date);

$date = new DateTimeImmutable("2014-06-20 11:45 Europe/London");
$also_immutable = DateTimeImmutable::createFromInterface($date);
?>


Retourne une nouvelle instance de DateTimeImmutable encapsulant l'objet DateTime fournit

  • « DateTimeImmutable::createFromInterface
  • DateTimeImmutable::getLastErrors »
  • PHP Manual
  • DateTimeImmutable
  • Retourne une nouvelle instance de DateTimeImmutable encapsulant l'objet DateTime fournit

DateTimeImmutable::createFromMutable

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

DateTimeImmutable::createFromMutable — Retourne une nouvelle instance de DateTimeImmutable encapsulant l'objet DateTime fournit

Description

public static DateTimeImmutable::createFromMutable(DateTime $object): static

Liste de paramètres

object

L'objet DateTime mutable que vous voulez convertir en version immutable. Cet objet n'est pas modifié, mais une nouvelle instance de DateTimeImmutable est créé, contenant les mêmes informations de date, heure et de fuseau horaire.

Valeurs de retour

Retourne une nouvelle instance de DateTimeImmutable.

Historique

Version | Description
8.0.0 | La méthode retourne une instance de la classe appelée. Auparavant, elle créait une nouvelle instance de DateTimeImmutable.

Exemples

Exemple #1 Création d'un objet date temps immutable

<?php
$date = new DateTime("2014-06-20 11:45 Europe/London");

$immutable = DateTimeImmutable::createFromMutable( $date );
?>


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, PHP 8)

DateTimeImmutable::getLastErrors — Retourne les alertes et erreurs

Description

public static DateTimeImmutable::getLastErrors(): array|false

Retourne un tableau des alertes et erreur trouvés lors de l'analyse d'une chaîne date/heure.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant les informations à propos des alertes et erreurs, ou false s'il y a ni alertes ni erreurs.

Historique

Version | Description
8.2.0 | Antérieur à PHP 8.2.0, cette fonction ne retournait pas false en l'absence d'avertissement ou d'erreur. Au lieu de cela, elle renvoyait toujours la structure de tableau documentée.

Exemples

Exemple #1 Exemple de DateTimeImmutable::getLastErrors()

<?php
try {
$date = new DateTimeImmutable('asdfasdf');
} catch (Exception $e) {
// For demonstration purposes only...
print_r(DateTimeImmutable::getLastErrors());

// The real object-oriented way to do this is
// echo $e->getMessage();
}
?>

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 index 6, et 0 dans la sortie de l'exemple réfère à l'index du caractère dans la chaîne où l'erreur c'est produite.


Créée un nouvel objet avec l'horodatage modifié

  • « DateTimeImmutable::getLastErrors
  • DateTimeImmutable::__set_state »
  • PHP Manual
  • DateTimeImmutable
  • Créée un nouvel objet avec l'horodatage modifié

DateTimeImmutable::modify

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::modify — Créée un nouvel objet avec l'horodatage modifié

Description

public DateTimeImmutable::modify(string $modifier): DateTimeImmutable|false

Crée un nouvel objet DateTimeImmutable avec l'horodatage modifié. L'objet original ne sera pas modifié.

Liste de paramètres

modifier

Une chaîne date/heure. Les formats valides sont expliqués dans la documentation sur les formats Date et Heure.

Valeurs de retour

Retourne un novel objet DateTimeImmutable modifié ou false si une erreur survient.

Erreurs / Exceptions

Si une chaîne de date ou de temps invalide est fournie, une DateMalformedStringException est lancé. Antérieur à PHP 8.3, ceci était un avertissement.

Historique

Version | Description
8.3.0 | Lance désormais une DateMalformedStringException si une chaîne invalide est fourni, au lieu d'un avertissement.

Exemples

Exemple #1 Exemple de DateTimeImmutable::modify()

Style orienté objet

<?php
$date = new DateTimeImmutable('2006-12-12');
$newDate = $date->modify('+1 day');
echo $newDate->format('Y-m-d');
?>

Les exemples ci-dessus vont afficher :

2006-12-13

Exemple #2 Faire attention lors de l'ajout ou soustraction de mois

<?php
$date = new DateTimeImmutable('2000-12-31');

$newDate1 = $date->modify('+1 month');
echo $newDate1->format('Y-m-d') . "\n";

$newDate2 = $newDate1->modify('+1 month');
echo $newDate2->format('Y-m-d') . "\n";
?>

L'exemple ci-dessus va afficher :

2001-01-31
2001-03-03

Voir aussi

  • DateTimeImmutable::add() - Retourne un nouvel object, avec le nombre de jours, mois, années, heures, minutes et secondes ajouté
  • DateTimeImmutable::sub() - Soustrait un nombre de jours, mois, années, heures et secondes
  • DateTimeImmutable::setDate() - Définit la date
  • DateTimeImmutable::setISODate() - Définit la date ISO
  • DateTimeImmutable::setTime() - Définit l'horaire
  • DateTimeImmutable::setTimestamp() - Définit la date et l'heure basé sur un horodatage Unix


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, PHP 8)

DateTimeImmutable::__set_state — Le gestionnaire __set_state

Description

public static DateTimeImmutable::__set_state(array $array): DateTimeImmutable

Le gestionnaire __set_state().

Liste de paramètres

array

Le tableau d'initialisation.

Valeurs de retour

Retourne une nouvelle instance d'un objet 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, PHP 8)

DateTimeImmutable::setDate — Définit la date

Description

public DateTimeImmutable::setDate(int $year, int $month, int $day): DateTimeImmutable

Retourne un nouvel objet DateTimeImmutable avec la date actuelle de l'objet DateTimeImmutable définit à la date donnée.

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 un nouvel objet DateTimeImmutable avec les données modifiées.

Exemples

Exemple #1 Exemple de DateTimeImmutable::setDate()

Style orienté objet

<?php
$date = new DateTimeImmutable();
$newDate = $date->setDate(2001, 2, 3);
echo $newDate->format('Y-m-d');
?>

Les exemples ci-dessus vont afficher :

2001-02-03

Exemple #2 Les valeurs excédant la plage sont ajouté à leur valeur parente

<?php
$date = new DateTimeImmutable();

$newDate = $date->setDate(2001, 2, 28);
echo $newDate->format('Y-m-d') . "\n";

$newDate = $date->setDate(2001, 2, 29);
echo $newDate->format('Y-m-d') . "\n";

$newDate = $date->setDate(2001, 14, 3);
echo $newDate->format('Y-m-d') . "\n";
?>

L'exemple ci-dessus va afficher :

2001-02-28
2001-03-01
2002-02-03

Voir aussi

  • DateTimeImmutable::setISODate() - Définit la date ISO
  • DateTimeImmutable::setTime() - Définit l'horaire


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, PHP 8)

DateTimeImmutable::setISODate — Définit la date ISO

Description

public DateTimeImmutable::setISODate(int $year, int $week, int $dayOfWeek = 1): DateTimeImmutable

Retourne un nouvel objet DateTimeImmutable avec la date défini en respectant le standard ISO 8601, utilisant les semaines et écarts de jour plutôt que des dates spécifiques.

Liste de paramètres

year

Année de la date.

week

Semaine de la date.

dayOfWeek

Offset from the first day of the week.

Valeurs de retour

Retourne un nouvel objet DateTimeImmutable avec les données modifiées.

Exemples

Exemple #1 Exemple de DateTimeImmutable::setISODate()

Style orienté objet

<?php
$date = new DateTimeImmutable();

$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 excédant la plage sont ajouté à leur valeur parente

<?php
$date = new DateTimeImmutable();

$newDate = $date->setISODate(2008, 2, 7);
echo $newDate->format('Y-m-d') . "\n";

$newDate = $date->setISODate(2008, 2, 8);
echo $newDate->format('Y-m-d') . "\n";

$newDate = $date->setISODate(2008, 53, 7);
echo $newDate->format('Y-m-d') . "\n";
?>

L'exemple ci-dessus va afficher :

2008-01-13
2008-01-14
2009-01-04

Exemple #3 Trouver le mois dont une semaine se trouve

<?php
$date = new DateTimeImmutable();
$newDate = $date->setISODate(2008, 14);
echo $newDate->format('n');
?>

Les exemples ci-dessus vont afficher :

3

Voir aussi

  • DateTimeImmutable::setDate() - Définit la date
  • DateTimeImmutable::setTime() - Définit l'horaire


Définit l'horaire

  • « DateTimeImmutable::setISODate
  • DateTimeImmutable::setTimestamp »
  • PHP Manual
  • DateTimeImmutable
  • Définit l'horaire

DateTimeImmutable::setTime

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::setTime — Définit l'horaire

Description

public DateTimeImmutable::setTime(
int $hour,
int $minute,
int $second = 0,
int $microsecond = 0
): DateTimeImmutable

Retourne un nouvel objet DateTimeImmutable avec l'heure définit à l'heure fournit.

Liste de paramètres

hour

Heure de l'horaire.

minute

Minutes de l'horaire.

second

Secondes de l'horaire.

microsecond

Microsecondes de l'horaire.

Valeurs de retour

Retourne un nouvel objet DateTimeImmutable avec les données modifiées.

Historique

Version | Description
8.1.0 | Le comportement avec les heures doubles existantes (pendant la transition DST) a changé. Auparavant, PHP choisissait la deuxième occurrence (après la transition DST), au lieu de la première occurrence (avant la transition DST).
7.1.0 | Le paramètre microsecond a été ajouté.

Exemples

Exemple #1 Exemple de DateTimeImmutable::setTime()

Style orienté objet

<?php
$date = new DateTimeImmutable('2001-01-01');

$newDate = $date->setTime(14, 55);
echo $newDate->format('Y-m-d H:i:s') . "\n";

$newDate = $date->setTime(14, 55, 24);
echo $newDate->format('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 Values exceeding ranges are added to their parent values

<?php
$date = new DateTimeImmutable('2001-01-01');

$newDate = $date->setTime(14, 55, 24);
echo $newDate->format('Y-m-d H:i:s') . "\n";

$newDate = $date->setTime(14, 55, 65);
echo $newDate->format('Y-m-d H:i:s') . "\n";

$newDate = $date->setTime(14, 65, 24);
echo $newDate->format('Y-m-d H:i:s') . "\n";

$newDate = $date->setTime(25, 55, 24);
echo $newDate->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

  • DateTimeImmutable::setDate() - Définit la date
  • DateTimeImmutable::setISODate() - Définit la date ISO


Définit la date et l'heure basé sur un horodatage Unix

  • « DateTimeImmutable::setTime
  • DateTimeImmutable::setTimezone »
  • PHP Manual
  • DateTimeImmutable
  • Définit la date et l'heure basé sur un horodatage Unix

DateTimeImmutable::setTimestamp

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::setTimestamp — Définit la date et l'heure basé sur un horodatage Unix

Description

public DateTimeImmutable::setTimestamp(int $timestamp): DateTimeImmutable

Retourne un nouvel objet DateTimeImmutable construit à partir de l'ancien, avec la date et l'heure basées sur un horodatage Unix.

Liste de paramètres

timestamp

L'horodatage Unix représentant la date. Définir l'horodatage en dehors de l'intervalle d'un entier est possible en utilisant DateTimeImmutable::modify() avec le format @.

Valeurs de retour

Retourne un nouvel objet DateTimeImmutable avec les données modifiées.

Exemples

Exemple #1 Exemple de DateTimeImmutable::setTimestamp()

Style orienté objet

<?php
$date = new DateTimeImmutable();
echo $date->format('U = Y-m-d H:i:s') . "\n";

$newDate = $date->setTimestamp(1171502725);
echo $newDate->format('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

Voir aussi

  • DateTimeImmutable::getTimestamp() - Récupère le timestamp Unix


Définit le fuseau horaire

  • « DateTimeImmutable::setTimestamp
  • DateTimeImmutable::sub »
  • PHP Manual
  • DateTimeImmutable
  • Définit le fuseau horaire

DateTimeImmutable::setTimezone

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::setTimezone — Définit le fuseau horaire

Description

public DateTimeImmutable::setTimezone(DateTimeZone $timezone): DateTimeImmutable

Retourne un nouvel objet DateTimeImmutable avec un nouveau fuseau horaire défini.

Liste de paramètres

timezone

Un objet DateTimeZone représentant le fuseau horaire désiré.

Valeurs de retour

Retourne un nouvel objet modifié DateTimeImmutable pour chaîner les méthodes. Le point dans le temps sous-jacent n'est pas modifié lors de l'appel de cette méthode.

Exemples

Exemple #1 Exemple de DateTimeImmutable::setTimeZone()

Style orienté objet

<?php
$date = new DateTimeImmutable('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";

$newDate = $date->setTimezone(new DateTimeZone('Pacific/Chatham'));
echo $newDate->format('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

  • DateTimeImmutable::getTimezone() - Retourne le fuseau horaire relatif au DateTime fourni
  • DateTimeZone::__construct() - Crée un nouvel objet DateTimeZone


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, PHP 8)

DateTimeImmutable::sub — Soustrait un nombre de jours, mois, années, heures et secondes

Description

public DateTimeImmutable::sub(DateInterval $interval): DateTimeImmutable

Retourne un nouvel objet DateTimeImmutable, avec l'objet DateInterval spécifié soustrait de l'objet DateTimeImmutable spécifié.

Liste de paramètres

interval

Un objet DateInterval.

Valeurs de retour

Retourne un nouvel objet DateTimeImmutable avec les données modifiées.

Erreurs / Exceptions

Si une opération non supportée est tentée, tel que l'utilisation d'un object DateInterval représentant une spécification de temps relatif tel que next weekday, une DateInvalidOperationException est lancé.

Historique

Version | Description
8.3.0 | Lance désormais une DateInvalidOperationException au lieu d'un avertissement quand une opération non supportée est tentée.

Exemples

Exemple #1 Exemple de DateTimeImmutable::sub()

Style orienté objet

<?php
$date = new DateTimeImmutable('2000-01-20');
$newDate = $date->sub(new DateInterval('P10D'));
echo $newDate->format('Y-m-d') . "\n";
?>

Les exemples ci-dessus vont afficher :

2000-01-10

Exemple #2 Exemples supplémentaires de DateTimeImmutable::sub()

<?php
$date = new DateTimeImmutable('2000-01-20');
$newDate = $date->sub(new DateInterval('PT10H30S'));
echo $newDate->format('Y-m-d H:i:s') . "\n";

$date = new DateTimeImmutable('2000-01-20');
$newDate = $date->sub(new DateInterval('P7Y5M4DT4H3M2S'));
echo $newDate->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 Faire attention lors de la soustraction de mois

<?php
$date = new DateTimeImmutable('2001-04-30');
$interval = new DateInterval('P1M');

$newDate1 = $date->sub($interval);
echo $newDate1->format('Y-m-d') . "\n";

$newDate2 = $newDate1->sub($interval);
echo $newDate2->format('Y-m-d') . "\n";
?>

L'exemple ci-dessus va afficher :

2001-03-30
2001-03-02

Voir aussi

  • DateTimeImmutable::add() - Retourne un nouvel object, avec le nombre de jours, mois, années, heures, minutes et secondes ajouté
  • DateTimeImmutable::diff() - Retourne la différence entre deux objets DateTime
  • DateTimeImmutable::modify() - Créée un nouvel objet avec l'horodatage modifié


L'interface DateTimeInterface

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Introduction

DateTimeInterface a été créé pour que les déclarations de type de paramètre, retour, ou propriété peuvent accepter soit DateTime ou DateTimeImmutable comme valeur. Il n'est pas possible d'implémenter cette interface dans les classes utilisateurs.

Les constantes communes qui permettent de formater les objets DateTimeImmutable ou DateTime via DateTimeImmutable::format() et DateTime::format() sont également définies sur cette interface.

Sommaire de l'Interface

interface DateTimeInterface {
/* Constantes */
public const string ATOM = "Y-m-d\\TH:i:sP";
public const string COOKIE = "l, d-M-Y H:i:s T";
public const string ISO8601 = "Y-m-d\\TH:i:sO";
public const string ISO8601_EXPANDED = "X-m-d\\TH:i:sP";
public const string RFC822 = "D, d M y H:i:s O";
public const string RFC850 = "l, d-M-y H:i:s T";
public const string RFC1036 = "D, d M y H:i:s O";
public const string RFC1123 = "D, d M Y H:i:s O";
public const string RFC7231 = "D, d M Y H:i:s \\G\\M\\T";
public const string RFC2822 = "D, d M Y H:i:s O";
public const string RFC3339 = "Y-m-d\\TH:i:sP";
public const string RFC3339_EXTENDED = "Y-m-d\\TH:i:s.vP";
public const string RSS = "D, d M Y H:i:s O";
public const string W3C = "Y-m-d\\TH:i:sP";
/* Méthodes */
public diff(DateTimeInterface $targetObject, bool $absolute = false): DateInterval
public format(string $format): string
public getOffset(): int
public getTimestamp(): int
public getTimezone(): DateTimeZone|false
public __wakeup(): void
}

Constantes pré-définies

DateTimeInterface::ATOM
DATE_ATOM
Atom (exemple: 2005-08-15T15:52:01+00:00)
DateTimeInterface::COOKIE
DATE_COOKIE
HTTP Cookies (exemple: Monday, 15-Aug-2005 15:52:01 UTC)
DateTimeInterface::ISO8601
DATE_ISO8601
ISO-8601 (exemple: 2005-08-15T15:52:01+0000)

Note: Ce format n'est pas compatible avec ISO-8601, mais reste ainsi pour des raisons de compatibilité ascendante. Utilisez DateTime::ISO8601_EXPANDED ou DateTimeInterface::ATOM pour assurer la compatibilité avec ISO-8601. (ref ISO8601:2004 section 4.3.3 clause d)

DateTimeInterface::ISO8601_EXPANDED
DATE_ISO8601_EXPANDED
ISO-8601 Expanded (exemple: +10191-07-26T08:59:52+01:00)

Note: Ce format permet des plages d'années en dehors de la plage normale de ISO-8601 allant de 0000 à 9999 en incluant toujours un caractère de signe. Il indique également que cette partie de fuseau horaire (+01:00) est compatible avec ISO-8601.

DateTimeInterface::RFC822
DATE_RFC822
RFC 822 (exemple: Mon, 15 Aug 05 15:52:01 +0000)
DateTimeInterface::RFC850
DATE_RFC850
RFC 850 (exemple: Monday, 15-Aug-05 15:52:01 UTC)
DateTimeInterface::RFC1036
DATE_RFC1036
RFC 1036 (exemple: Mon, 15 Aug 05 15:52:01 +0000)
DateTimeInterface::RFC1123
DATE_RFC1123
RFC 1123 (exemple: Mon, 15 Aug 2005 15:52:01 +0000)
DateTimeInterface::RFC7231
DATE_RFC7231
RFC 7231 (à partir de PHP 7.0.19 et 7.1.5) (exemple: Sat, 30 Apr 2016 17:52:13 GMT)
DateTimeInterface::RFC2822
DATE_RFC2822
RFC 2822 (exemple: Mon, 15 Aug 2005 15:52:01 +0000)
DateTimeInterface::RFC3339
DATE_RFC3339
Comme DATE_ATOM
DateTimeInterface::RFC3339_EXTENDED
DATE_RFC3339_EXTENDED
RFC 3339 EXTENDED format (example: 2005-08-15T15:52:01.000+00:00)
DateTimeInterface::RSS
DATE_RSS
RSS (exemple: Mon, 15 Aug 2005 15:52:01 +0000)
DateTimeInterface::W3C
DATE_W3C
World Wide Web Consortium (example: 2005-08-15T15:52:01+00:00)

Historique

Version | Description
8.2.0 | La constante DateTimeInterface::ISO8601_EXPANDED a été ajouté.
7.2.0 | Les constantes de classe de DateTime sont maintenant définies sur DateTimeInterface.

Sommaire

  • DateTimeInterface::diff — Retourne la différence entre deux objets DateTime
  • DateTimeInterface::format — Retourne une date formatée suivant le format fourni
  • DateTimeInterface::getOffset — Retourne le décalage horaire
  • DateTimeInterface::getTimestamp — Récupère le timestamp Unix
  • DateTimeInterface::getTimezone — Retourne le fuseau horaire relatif au DateTime fourni
  • DateTime::__wakeup — Le gestionnaire __wakeup


Retourne la différence entre deux objets DateTime

  • « DateTimeInterface
  • DateTimeInterface::format »
  • PHP Manual
  • DateTimeInterface
  • Retourne la différence entre deux objets DateTime

DateTimeInterface::diff

DateTimeImmutable::diff

DateTime::diff

date_diff

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateTimeInterface::diff -- DateTimeImmutable::diff -- DateTime::diff -- date_diff — Retourne la différence entre deux objets DateTime

Description

Style orienté objet

public DateTimeInterface::diff(DateTimeInterface $targetObject, bool $absolute = false): DateInterval
public DateTimeImmutable::diff(DateTimeInterface $targetObject, bool $absolute = false): DateInterval
public DateTime::diff(DateTimeInterface $targetObject, bool $absolute = false): DateInterval

Style procédural

date_diff(DateTimeInterface $baseObject, DateTimeInterface $targetObject, bool $absolute = false): DateInterval

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ésente la différence entre les deux dates.

La valeur de retour représente de façon plus détaillé l'intervale de temps à appliquer sur l'objet original ($this ou $originObject) pour arriver à $targetObject. Cette procédure n'est pas toujours réversible.

La méthode est consciente des changements d'heure d'été et peut donc renvoyer un intervalle de 24 heures et 30 minutes, comme dans l'un des exemples. Si vous souhaitez calculer avec le temps absolu, vous devez d'abord convertir à la fois $this/ $baseObject et $targetObject en UTC.

Exemples

Exemple #1 Exemple avec DateTimeImmutable::diff()

Style orienté objet

<?php
$origin = new DateTimeImmutable('2009-10-11');
$target = new DateTimeImmutable('2009-10-13');
$interval = $origin->diff($target);
echo $interval->format('%R%a days');
?>

Style procédural

<?php
$origin = date_create('2009-10-11');
$target = date_create('2009-10-13');
$interval = date_diff($origin, $target);
echo $interval->format('%R%a days');
?>

Les exemples ci-dessus vont afficher :

+2 days

Exemple #2 DateTimeInterface::diff() lors du passage à l'heure d'été

<?php
$originalTime = new DateTimeImmutable("2021-10-30 09:00:00 Europe/London");
$targedTime = new DateTimeImmutable("2021-10-31 08:30:00 Europe/London");
$interval = $originalTime->diff($targedTime);
echo $interval->format("%H:%I:%S (Full days: %a)"), "\n";
?>

L'exemple ci-dessus va afficher :

24:30:00 (Full days: 0)

Exemple #3 Calcul d'intervalle avec DateTimeInterface::diff()

La valeur renvoyée par la méthode est le temps exact qu'il faut pour aller de $this à $targetObject. La comparaison entre le 1er janvier et le 31 décembre renvoie donc 364 jours et non 365 (pour les années non bissextiles).

<?php
$originalTime = new DateTimeImmutable("2023-01-01 UTC");
$targedTime = new DateTimeImmutable("2023-12-31 UTC");
$interval = $originalTime->diff($targedTime);
echo "Jours totaux: ", $interval->format("%a"), "\n";
?>

L'exemple ci-dessus va afficher :

Jours totaux: 364

Exemple #4 Comparaison de deux objets DateTime

Note:

Les objets DateTimeImmutable ou 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() - Modifie un objet un objet DateTime, avec le nombre de jours, mois, années, heures, minutes et secondes ajouté
  • DateTime::sub() - Soustrait une durée à un objet DateTime


Retourne une date formatée suivant le format fourni

  • « DateTimeInterface::diff
  • DateTimeInterface::getOffset »
  • PHP Manual
  • DateTimeInterface
  • Retourne une date formatée suivant le format fourni

DateTimeInterface::format

DateTimeImmutable::format

DateTime::format

date_format

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTimeInterface::format -- DateTimeImmutable::format -- DateTime::format -- date_format — Retourne une date formatée suivant le format fourni

Description

Style orienté objet

public DateTimeInterface::format(string $format): string
public DateTimeImmutable::format(string $format): string
public DateTime::format(string $format): string

Style procédural

date_format(DateTimeInterface $object, string $format): string

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

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 | 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 | 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 | La numérotation de semaine dans 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ée à la place. | Exemples : 1999 ou 2003
X | Une représentation numérique complète étendue d'une année, d'au moins 4 chiffres, avec un - pour les années avant l'ère commune et un + pour les années de l'ère commune. | Exemples : -0055, +0787, +1999, +10191
x | Une représentation numérique complète étendue si nécessaire, ou une représentation numérique complète standard si possible (comme Y). Au moins quatre chiffres. Les années antérieures à l'ère commune sont préfixées par un -. Les années au-delà (et y compris) du 10000 sont préfixées par un +. | Exemples : -0055, 0787, 1999, +10191
Y | Une représentation numérique complète d'une année, au moins 4 chiffres, avec - pour les années av. J.-C. | Exemples : -0055, 0787, 1999, 2003, 10191
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. 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
v | Millisecondes. Même note que pour u. | Exemple: 654
Fuseau horaire --- ---
e | L'identifiant du fuseau horaire | 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), sans deux-points entre les heures et les minutes | Exemple : +0200
P | Différence avec l'heure Greenwich (GMT) avec un deux-points entre les heures et les minutes | Exemple : +02:00
p | Identique à P, mais retourne Z au lieu de +00:00 (disponible à partir de PHP 8.0.0) | Exemples : Z ou +02:00
T | Abréviation du fuseau horaire, si connu ; sinon décalage depuis GMT | Exemples : EST, MDT, +05
Z | Décalage horaire en secondes. Le décalage des zones à l'ouest de la zone UTC est négatif, et à l'est, il est positif. | -43200 à 50400
Date et Heure complète --- ---
c | Date au format ISO 8601 | 2004-02-12T15:19:21+00:00
r | Format de date » RFC 2822/» RFC 5322 | Exemple : Thu, 21 Dec 2000 16:01:070200
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().

Valeurs de retour

Retourne la date formatée, sous forme de chaîne de caractères, en cas de succès.

Historique

Version | Description
8.2.0 | Les caractères de format X ou x ont été ajoutés.
8.0.0 | Le caractère de format p a été ajouté.

Exemples

Exemple #1 Exemple avec DateTime::format()

Style orienté objet

<?php
$date = new DateTimeImmutable('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

Exemple #2 Plus d'exemples

<?php
// set the default timezone to use.
date_default_timezone_set('UTC');

// now
$date = new DateTimeImmutable();

// Prints something like: Wednesday
echo $date->format('l'), "\n";

// Prints something like: Wednesday 19th of October 2022 08:40:48 AM
echo $date->format('l jS \o\f F Y h:i:s A'), "\n";

/* use the constants in the format parameter */
// prints something like: Wed, 19 Oct 2022 08:40:48 +0000
echo $date->format(DateTimeInterface::RFC2822), "\n";
?>

Il est possible d'empêcher le développement d'un caractère reconnu dans la chaîne de format en le précédant d'un antislash. Si le caractère avec un antislash est déjà une séquence spéciale, il faudra peut-être également échapper l'antislash.

Exemple #3 Échappement de caractères lors du formatage

<?php
$date = new DateTimeImmutable();

// prints something like: Wednesday the 19th
echo $date->format('l \t\h\e jS');
?>

Pour formater des dates dans d'autres langues, IntlDateFormatter::format() peut être utilisée à la place de DateTimeInterface::format().

Notes

Cette méthode n'utilise pas les locales. Tous les affichages seront en anglais.

Voir aussi

  • IntlDateFormatter::format() - Formate la date et l'heure sous forme de chaîne


Retourne le décalage horaire

  • « DateTimeInterface::format
  • DateTimeInterface::getTimestamp »
  • PHP Manual
  • DateTimeInterface
  • Retourne le décalage horaire

DateTimeInterface::getOffset

DateTimeImmutable::getOffset

DateTime::getOffset

date_offset_get

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTimeInterface::getOffset -- DateTimeImmutable::getOffset -- DateTime::getOffset -- date_offset_get — Retourne le décalage horaire

Description

Style orienté objet

public DateTimeInterface::getOffset(): int
public DateTimeImmutable::getOffset(): int
public DateTime::getOffset(): int

Style procédural

date_offset_get(DateTimeInterface $object): int

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.

Exemples

Exemple #1 Exemple avec DateTime::getOffset()

Style orienté objet

<?php
$winter = new DateTimeImmutable('2010-12-21', new DateTimeZone('America/New_York'));
$summer = new DateTimeImmutable('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

  • « DateTimeInterface::getOffset
  • DateTimeInterface::getTimezone »
  • PHP Manual
  • DateTimeInterface
  • Récupère le timestamp Unix

DateTimeInterface::getTimestamp

DateTimeImmutable::getTimestamp

DateTime::getTimestamp

date_timestamp_get

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateTimeInterface::getTimestamp -- DateTimeImmutable::getTimestamp -- DateTime::getTimestamp -- date_timestamp_get — Récupère le timestamp Unix

Description

Style orienté objet

public DateTimeInterface::getTimestamp(): int
public DateTimeImmutable::getTimestamp(): int
public DateTime::getTimestamp(): int

Style procédural

date_timestamp_get(DateTimeInterface $object): int

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.

Erreurs / Exceptions

Si l'horodatage ne peut pas être représenté sous la forme d'un entier, une DateRangeError est lancée. Antérieur à PHP 8.3.0, une ValueError était lancé. Et antérieur à PHP 8.0.0, false était retourné dans ce cas. Cependant, l'horodatage peut être récupéré en tant que chaîne de caractères en utilisant DateTimeInterface::format() avec le format U.

Historique

Version | Description
8.3.0 | L'exception de hors limites est désormais une DateRangeError.
8.0.0 | Ces fonctions ne retourne plus false en cas d'échec.

Exemples

Exemple #1 Exemple avec DateTime::getTimestamp()

Style orienté objet

<?php
$date = new DateTimeImmutable();
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

Pour récupérer l'horodatage avec une précision en millisecondes ou microsecondes, il est possible d'utiliser la fonction DateTimeInterface::format().

Exemple #2 Récupération de l'horodatage avec une précision en millisecondes et microsecondes

Style orienté objet

<?php
$date = new DateTimeImmutable();
$milli = (int)$date->format('Uv'); // Timestamp in milliseconds
$micro = (int)$date->format('Uu'); // Timestamp in microseconds

echo $milli, "\n", $micro, "\n";
?>

Les exemples ci-dessus vont afficher quelque chose de similaire à :

1674057635586
1674057635586918

Voir aussi

  • DateTime::setTimestamp() - Assigne la date et l'heure à l'aide d'un horodatage Unix
  • DateTimeImmutable::setTimestamp() - Définit la date et l'heure basé sur un horodatage Unix
  • DateTimeInterface::format() - Retourne une date formatée suivant le format fourni


Retourne le fuseau horaire relatif au DateTime fourni

  • « DateTimeInterface::getTimestamp
  • DateTime::__wakeup »
  • PHP Manual
  • DateTimeInterface
  • Retourne le fuseau horaire relatif au DateTime fourni

DateTimeInterface::getTimezone

DateTimeImmutable::getTimezone

DateTime::getTimezone

date_timezone_get

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTimeInterface::getTimezone -- DateTimeImmutable::getTimezone -- DateTime::getTimezone -- date_timezone_get — Retourne le fuseau horaire relatif au DateTime fourni

Description

Style orienté objet

public DateTimeInterface::getTimezone(): DateTimeZone|false
public DateTimeImmutable::getTimezone(): DateTimeZone|false
public DateTime::getTimezone(): DateTimeZone|false

Style procédural

date_timezone_get(DateTimeInterface $object): DateTimeZone|false

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 DateTimeImmutable(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

  • « DateTimeInterface::getTimezone
  • DateTimeZone »
  • PHP Manual
  • DateTimeInterface
  • Le gestionnaire __wakeup

DateTime::__wakeup

DateTimeImmutable::__wakeup

DateTimeInterface::__wakeup

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

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, PHP 8)

Introduction

Représentation d'un fuseau horaire.

Synopsis de la classe

class DateTimeZone {
/* Constantes */
public const int AFRICA;
public const int AMERICA;
public const int ANTARCTICA;
public const int ARCTIC;
public const int ASIA;
public const int ATLANTIC;
public const int AUSTRALIA;
public const int EUROPE;
public const int INDIAN;
public const int PACIFIC;
public const int UTC;
public const int ALL;
public const int ALL_WITH_BC;
public const int PER_COUNTRY;
/* Méthodes */
public __construct(string $timezone)
public getLocation(): array|false
public getName(): string
public getOffset(DateTimeInterface $datetime): int
public getTransitions(int $timestampBegin = PHP_INT_MIN, int $timestampEnd = PHP_INT_MAX): array|false
public static listAbbreviations(): array
public static listIdentifiers(int $timezoneGroup = DateTimeZone::ALL, ?string $countryCode = null): array
}

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, PHP 8)

DateTimeZone::__construct -- timezone_open — Crée un nouvel objet DateTimeZone

Description

Style orienté objet

public DateTimeZone::__construct(string $timezone)

Style procédural

timezone_open(string $timezone): DateTimeZone|false

Crée un nouvel objet DateTimeZone.

Un objet DateTimeZone fournit l'accès à trois types différents de règles de fuseau horaires : un décalage UTC (type 1), une abréviation de fuseau horaire (type 2), et un identifiant de fuseau horaire tel que publié dans la base de donnée de fuseau horaire IANA (type 3).

L'objet DateTimeZone peut être attaché aux objets DateTime et DateTimeImmutable enfin d'être en mesure de rendre le fuseau horaire encapsulé par ces objets dans un fuseau horaire local.

Liste de paramètres

timezone

Un des fuseaux horaires supportés, une valeur de décalage (+0200), ou une abréviation de fuseau (BST).

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 lance une DateInvalidTimeZoneException si le fuseau horaire fourni n'est pas reconnu comme un fuseau horaire valide. Antérieur à PHP 8.3, ceci était une Exception.

Historique

Version | Description
8.3.0 | Les valeurs invalides lance désormais une DateInvalidTimeZoneException au lieu d'une Exception générique.

Exemples

Exemple #1 Creating and attaching DateTimeZone to a DateTimeImmutable

<?php
$d = new DateTimeImmutable("2022-06-02 15:44:48 UTC");

$timezones = [ 'Europe/London', 'GMT+04:45', '-06:00', 'CEST' ];

foreach ($timezones as $tz) {
$tzo = new DateTimeZone($tz);

$local = $d->setTimezone($tzo);
echo $local->format(DateTimeInterface::RFC2822 . ' — e'), "\n";
}
?>

L'exemple ci-dessus va afficher :

Thu, 02 Jun 2022 16:44:48 +0100 — Europe/London
Thu, 02 Jun 2022 20:29:48 +0445 — +04:45
Thu, 02 Jun 2022 09:44:48 -0600 — -06:00
Thu, 02 Jun 2022 17:44:48 +0200 — CEST

Exemple #2 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, PHP 8)

DateTimeZone::getLocation -- timezone_location_get — Retourne les informations géographiques d'un fuseau horaire

Description

Style orienté objet

public DateTimeZone::getLocation(): array|false

Style procédural

timezone_location_get(DateTimeZone $object): array|false

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 ou false si une erreur survient.

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] =>
)

Voir aussi

  • DateTimeZone::listIdentifiers() - Retourne un tableau numérique contenant tous les identifiants de fuseaux horaires définis pour obtenir une liste complète ou partielle de tous les identifiants de fuseaux horaires pris en charge


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, PHP 8)

DateTimeZone::getName -- timezone_name_get — Retourne le nom du fuseau horaire

Description

Style orienté objet

public DateTimeZone::getName(): string

Style procédural

timezone_name_get(DateTimeZone $object): string

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

Selon le type de zone, le décalage UTC (type 1), l'abréviation de fuseau horaire (type 2) et les identifiants de fuseau horaire tels que publiés dans la base de données de fuseaux horaires IANA (type 3), la chaîne de description pour créer un nouvel objet DateTimeZone avec le même décalage et/ou les mêmes règles. Par exemple 02:00, CEST ou l'un des noms de fuseaux horaires dans 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, PHP 8)

DateTimeZone::getOffset -- timezone_offset_get — Retourne le décalage GMT d'un fuseau horaire

Description

Style orienté objet

public DateTimeZone::getOffset(DateTimeInterface $datetime): int

Style procédural

timezone_offset_get(DateTimeZone $object, DateTimeInterface $datetime): int

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.

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 timestamp 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, PHP 8)

DateTimeZone::getTransitions -- timezone_transitions_get — Retourne toutes les transitions d'un fuseau horaire

Description

Style orienté objet

public DateTimeZone::getTransitions(int $timestampBegin = PHP_INT_MIN, int $timestampEnd = PHP_INT_MAX): array|false

Style procédural

timezone_transitions_get(DateTimeZone $object, int $timestampBegin = PHP_INT_MIN, int $timestampEnd = PHP_INT_MAX): array|false

Liste de paramètres

object

Seulement en style procédural : un DateTimeZone objet retourné par timezone_open()

timestampBegin

Début du timestamp.

timestampEnd

Fin du timestamp.

Valeurs de retour

Retourne un tableau indexé numériquement des tableaux de transition en cas de succès, ou false si une erreur survient. Les objets DateTimeZone enveloppant des fuseaux de type 1 (décalage UTC) et type 2 (abréviations) ne contiennent pas des transitions et appelé cette méthode sur eux retournera false.

Si timestampBegin est fournit, la première entrée dans le tableau retourné contiendra un élément de transition au temps de timestampBegin.

Structure des tableaux de transition
Clé | Type | Description
ts | int | timestamp Unix
time | string | Chaîne de temps DateTimeInterface::ISO8601_EXPANDED (PHP 8.2 et ultérieur), ou DateTimeInterface::ISO8601 (PHP 8.1 et inférieur)
offset | int | Décalage horaire vers UTC en secondes
isdst | bool | Si l'heure d'été ext activée
abbr | string | Abréviation du fuseau horaire

Exemples

Exemple #1 Exemple avec timezone_transitions_get()

<?php
$timezone = new DateTimeZone("Europe/London");
$transitions = $timezone->getTransitions();
print_r(array_slice($transitions, 0, 3));
?>

Résultat de l'exemple ci-dessus est 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
        )

)

Exemple #2 Un exemple de timezone_transitions_get() avec timestampBegin défini

<?php
$timezone = new DateTimeZone("Europe/London");
$transitions = $timezone->getTransitions(time());
print_r(array_slice($transitions, 0, 3));
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => Array
        (
            [ts] => 1654184161
            [time] => 2022-06-02T15:36:01+0000
            [offset] => 3600
            [isdst] => 1
            [abbr] => BST
        )

    [1] => Array
        (
            [ts] => 1667091600
            [time] => 2022-10-30T01:00:00+0000
            [offset] => 0
            [isdst] =>
            [abbr] => GMT
        )

    [2] => Array
        (
            [ts] => 1679792400
            [time] => 2023-03-26T01:00:00+0000
            [offset] => 3600
            [isdst] => 1
            [abbr] => BST
        )

)


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, PHP 8)

DateTimeZone::listAbbreviations -- timezone_abbreviations_list — Retourne un tableau associatif, décrivant un fuseau horaire

Description

Style orienté objet

public static DateTimeZone::listAbbreviations(): array

Style procédural

timezone_abbreviations_list(): array

La liste des abréviations retournée contient tous les usages historiques des abréviations, ce qui peut amener à des entrées correctes, mais confus. Il y a aussi des conflits, car PST est utilisé tous deux dans les États-Unis et les Philippines.

La liste que cette fonction retourne n'est par conséquent pas adapter pour construire un tableau d'option présentant un choix de fuseau horaire aux utilisateurs.

Note:

Les données pour cette fonction sont pré-compilées pour des raisons de performance, et ne sont pas mis à jour lors de l'utilisation d'une » timezonedb plus récente.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le tableau des abréviations des fuseaux horaires.

Exemples

Exemple #1 Exemple avec timezone_abbreviations_list()

<?php
$timezone_abbreviations = DateTimeZone::listAbbreviations();
print_r($timezone_abbreviations["acst"]);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

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 DateTimeZone::listIdentifiers(int $timezoneGroup = DateTimeZone::ALL, ?string $countryCode = null): array

Style procédural

timezone_identifiers_list(int $timezoneGroup = DateTimeZone::ALL, ?string $countryCode = null): array

Liste de paramètres

timezoneGroup

Une (ou une combinaison) des constantes de classe DateTimeZone.

countryCode

Un code de pays en deux lettres (en majuscule), compatible ISO 3166-1.

Note: Cette option n'est disponible que lorsque le paramètre timezoneGroup prend la valeur de DateTimeZone::PER_COUNTRY.

Valeurs de retour

Retourne le tableau des identificateurs des fuseaux horaires. Seuls les éléments non obsolètes sont retournés. Pour tout obtenir, y compris les identifiants de fuseau horaire obsolètes, utilisez DateTimeZone::ALL_WITH_BC comme valeur pour timezoneGroup.

Historique

Version | Description
8.0.0 | Antérieur à cette version, false était retourné en cas d'échec.
7.1.0 | countryCode est désormais nullable.

Exemples

Exemple #1 Exemple avec DateTimeZone::listIdentifiers()

<?php
$timezone_identifiers = DateTimeZone::listIdentifiers();
for ($i=0; $i < 5; $i++) {
echo "$timezone_identifiers[$i]\n";
}
?>

Résultat de l'exemple ci-dessus est similaire à :

Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara

Exemple #2 Listing identifiers for a specific region

<?php
$timezone_identifiers = DateTimeZone::listIdentifiers( DateTimeZone::ASIA );
for ($i=0; $i < 5; $i++) {
echo "$timezone_identifiers[$i]\n";
}
?>

Résultat de l'exemple ci-dessus est similaire à :

Asia/Aden
Asia/Almaty
Asia/Amman
Asia/Anadyr
Asia/Aqtau

Exemple #3 Lister les identifiants de plusieurs régions

<?php
$timezone_identifiers = DateTimeZone::listIdentifiers( DateTimeZone::ASIA | DateTimeZone::PACIFIC );
echo join( ', ', $timezone_identifiers );
?>

Résultat de l'exemple ci-dessus est similaire à :

Asia/Aden, Asia/Almaty, Asia/Amman, Asia/Anadyr, Asia/Aqtau, Asia/Aqtobe,
Asia/Ashgabat, Asia/Atyrau, Asia/Baghdad, Asia/Bahrain, Asia/Baku,
Asia/Bangkok, Asia/Barnaul, Asia/Beirut, Asia/Bishkek, Asia/Brunei,
Asia/Chita, Asia/Choibalsan, Asia/Colombo, Asia/Damascus, Asia/Dhaka,
Asia/Dili, Asia/Dubai, Asia/Dushanbe, Asia/Famagusta, Asia/Gaza, Asia/Hebron,
Asia/Ho_Chi_Minh, Asia/Hong_Kong, Asia/Hovd, Asia/Irkutsk, Asia/Jakarta,
Asia/Jayapura, Asia/Jerusalem, Asia/Kabul, Asia/Kamchatka, Asia/Karachi,
Asia/Kathmandu, Asia/Khandyga, Asia/Kolkata, Asia/Krasnoyarsk,
Asia/Kuala_Lumpur, Asia/Kuching, Asia/Kuwait, 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/Qostanay, Asia/Qyzylorda, Asia/Riyadh,
Asia/Sakhalin, Asia/Samarkand, Asia/Seoul, Asia/Shanghai, Asia/Singapore,
Asia/Srednekolymsk, Asia/Taipei, Asia/Tashkent, Asia/Tbilisi, Asia/Tehran,
Asia/Thimphu, Asia/Tokyo, Asia/Tomsk, Asia/Ulaanbaatar, Asia/Urumqi,
Asia/Ust-Nera, Asia/Vientiane, Asia/Vladivostok, Asia/Yakutsk, Asia/Yangon,
Asia/Yekaterinburg, Asia/Yerevan, Pacific/Apia, Pacific/Auckland,
Pacific/Bougainville, Pacific/Chatham, Pacific/Chuuk, Pacific/Easter,
Pacific/Efate, Pacific/Fakaofo, Pacific/Fiji, Pacific/Funafuti,
Pacific/Galapagos, Pacific/Gambier, Pacific/Guadalcanal, Pacific/Guam,
Pacific/Honolulu, Pacific/Kanton, 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/Port_Moresby, Pacific/Rarotonga, Pacific/Saipan, Pacific/Tahiti,
Pacific/Tarawa, Pacific/Tongatapu, Pacific/Wake, Pacific/Wallis

Exemple #4 Lister les identifiants d'un seul pays

<?php
$timezone_identifiers = DateTimeZone::listIdentifiers( DateTimeZone::PER_COUNTRY, "UA" );
foreach( $timezone_identifiers as $identifier ) {
echo "$identifier\n";
}
?>

Résultat de l'exemple ci-dessus est similaire à :

Europe/Kyiv
Europe/Simferopol
Europe/Uzhgorod
Europe/Zaporozhye

Voir aussi

  • timezone_abbreviations_list() - Alias de DateTimeZone::listAbbreviations


La classe DateInterval

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

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 et DateTimeImmutable.

Plus précisement, l'information d'un objet de la classe DateInterval est une instruction pour aller d'une date/moment à une autre date/moment. Ce processus n'est pas toujours réversible.

Une façon typique de créer un objet DateInterval est en calculant la différence entre deux objets dates/moments à travers DateTimeInterface::diff().

Comme il n'y a pas une manière bien définie pour comparer les intervalles, les instances de DateInterval sont incomparables.

Synopsis de la classe

class DateInterval {
/* Propriétés */
public int $y;
public int $m;
public int $d;
public int $h;
public int $i;
public int $s;
public float $f;
public int $invert;
public mixed $days;
public bool $from_string;
public string $date_string;
/* Méthodes */
public __construct(string $duration)
public static createFromDateString(string $datetime): DateInterval|false
public format(string $format): string
}

Propriétés

Avertissement

Les propriétés disponibles répertoriées ci-dessous dépendent de la version de PHP et doivent être considérées en lecture seule.

y

Année.

m

Nombre de mois.

d

Nombre de jours.

h

Nombre d'heures.

i

Nombre de minutes.

s

Nombre de secondes.

f

Nombre de microsecondes, en une fraction de seconde.

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 DateTimeImmutable::diff() ou 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.

from_string

Si l'objet DateInterval a été créé avec la méthode DateInterval::createFromDateString(), alors cette propriété vaudra true, et la propriété date_string sera renseignée. Sinon, cette propriété vaudra false, et les propriétés de y à f, invert, et days seront renseignées.

date_string

La chaîne de caractères utilisée comme argument pour DateInterval::createFromDateString().

Historique

Version | Description
8.2.0 | Les propriétés from_string et date_string ont été ajoutées aux instances de DateInterval qui ont été créés à l'aide de la méthode DateInterval::createFromDateString().
8.2.0 | Seules les propriétés de y jusqu'à f, invert, et days seront visibles.
7.4.0 | Les instances de DateInterval sont désormais incomparables ; auparavant, toutes les instances DateInterval était considérées comme égale.
7.1.0 | La propriété f a été ajoutée.

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, PHP 8)

DateInterval::__construct — Crée un nouvel objet DateInterval

Description

public DateInterval::__construct(string $duration)

Crée un nouvel objet DateInterval.

Liste de paramètres

duration

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 duration
Désignation de période | Description
Y | Années
M | Mois
D | Jours
W | Semaine. Converti en jours. Antérieur à PHP 8.0.0, ne peut pas être combiné 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 excé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 DateMalformedIntervalStringException lorsque le paramètre duration ne peut être analysé comme un intervalle. Antérieur à PHP 8.3, ceci était une Exception.

Historique

Version | Description
8.3.0 | Lance désormais une DateMalformedIntervalStringException au lieu de Exception.
8.2.0 | Seules les propriétés y à f, invert, et days seront visibles, y compris une nouvelle propriété booléenne from_string.
8.0.0 | W peut être combiné avec D.

Exemples

Exemple #1 Construction et utilisation des objets DateInterval

<?php
// Créer une date spécifique
$someDate = \DateTime::createFromFormat("Y-m-d H:i", "2022-08-25 14:18");

// Créer un intervalle
$interval = new \DateInterval("P7D");

// Ajouter un intervalle
$someDate->add($interval);

// Convertir l'intervalle en chaîne de caractères
echo $interval->format("%d");

L'exemple ci-dessus va afficher :

7

Exemple #2 Exemple avec DateInterval

<?php

$interval = new DateInterval('P1W2D');
var_dump($interval);

?>

Résultat de l'exemple ci-dessus en PHP 8.2 :

object(DateInterval)#1 (10) {
  ["y"]=>
  int(0)
  ["m"]=>
  int(0)
  ["d"]=>
  int(9)
  ["h"]=>
  int(0)
  ["i"]=>
  int(0)
  ["s"]=>
  int(0)
  ["f"]=>
  float(0)
  ["invert"]=>
  int(0)
  ["days"]=>
  bool(false)
  ["from_string"]=>
  bool(false)
}

Résultat de l'exemple ci-dessus en PHP 8 :

object(DateInterval)#1 (16) {
  ["y"]=>
  int(0)
  ["m"]=>
  int(0)
  ["d"]=>
  int(9)
  ["h"]=>
  int(0)
  ["i"]=>
  int(0)
  ["s"]=>
  int(0)
  ["f"]=>
  float(0)
  ["weekday"]=>
  int(0)
  ["weekday_behavior"]=>
  int(0)
  ["first_last_day_of"]=>
  int(0)
  ["invert"]=>
  int(0)
  ["days"]=>
  bool(false)
  ["special_type"]=>
  int(0)
  ["special_amount"]=>
  int(0)
  ["have_weekday_relative"]=>
  int(0)
  ["have_special_relative"]=>
  int(0)
}

Résultat de l'exemple ci-dessus en PHP 7 :

object(DateInterval)#1 (16) {
  ["y"]=>
  int(0)
  ["m"]=>
  int(0)
  ["d"]=>
  int(2)
  ["h"]=>
  int(0)
  ["i"]=>
  int(0)
  ["s"]=>
  int(0)
  ["f"]=>
  float(0)
  ["weekday"]=>
  int(0)
  ["weekday_behavior"]=>
  int(0)
  ["first_last_day_of"]=>
  int(0)
  ["invert"]=>
  int(0)
  ["days"]=>
  bool(false)
  ["special_type"]=>
  int(0)
  ["special_amount"]=>
  int(0)
  ["have_weekday_relative"]=>
  int(0)
  ["have_special_relative"]=>
  int(0)
}

Voir aussi

  • DateInterval::format() - Formate l'intervalle
  • DateTime::add() - Modifie un objet un objet DateTime, avec le nombre de jours, mois, années, heures, minutes et secondes ajouté
  • 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, PHP 8)

DateInterval::createFromDateString — Configure un objet DateInterval à partir des parties d'une chaîne

Description

Style orienté objet

public static DateInterval::createFromDateString(string $datetime): DateInterval|false

Style procédural

date_interval_create_from_date_string(string $datetime): DateInterval|false

Utilise les analyseurs de dates comme celui de DateTimeImmutable et configure un objet DateInterval à partir d'une chaîne de caractères.

Liste de paramètres

datetime

Une date avec des parties relatives. Spécifiquement, le format relatif supporté par l'analyseur utilisé pour les classes DateTimeImmutable, DateTime et la fonction strtotime sera utilisé pour construire le DateInterval.

Valeurs de retour

Retourne un nouvel objet DateInterval en cas de succès, ou false si une erreur survient.

Historique

Version | Description
8.2.0 | Seules les propriétés from_string et date_string seront visibles lorsqu'un objet DateInterval est créé avec cette méthode.

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');
?>

Exemple #2 Parsing combinations and negative intervals

<?php
$i = DateInterval::createFromDateString('62 weeks + 1 day + 2 weeks + 2 hours + 70 minutes');
echo $i->format('%d %h %i'), "\n";

$i = DateInterval::createFromDateString('1 year - 10 days');
echo $i->format('%y %d'), "\n";
?>

L'exemple ci-dessus va afficher :

449 2 70
1 -10

Exemple #3 Analyse des combinaisons et des intervalles négatifs

<?php
$i = DateInterval::createFromDateString('last day of next month');
var_dump($i);

$i = DateInterval::createFromDateString('last weekday');
var_dump($i);

Résultat de l'exemple ci-dessus en PHP 8.2 :

object(DateInterval)#1 (2) {
  ["from_string"]=>
  bool(true)
  ["date_string"]=>
  string(22) "last day of next month"
}
object(DateInterval)#2 (2) {
  ["from_string"]=>
  bool(true)
  ["date_string"]=>
  string(12) "last weekday"
}

Résultat de l'exemple ci-dessus en PHP 8 est similaire à :

object(DateInterval)#1 (16) {
  ["y"]=>
  int(0)
  ["m"]=>
  int(1)
  ["d"]=>
  int(0)
  ["h"]=>
  int(0)
  ["i"]=>
  int(0)
  ["s"]=>
  int(0)
  ["f"]=>
  float(0)
  ["weekday"]=>
  int(0)
  ["weekday_behavior"]=>
  int(0)
  ["first_last_day_of"]=>
  int(2)
  ["invert"]=>
  int(0)
  ["days"]=>
  bool(false)
  ["special_type"]=>
  int(0)
  ["special_amount"]=>
  int(0)
  ["have_weekday_relative"]=>
  int(0)
  ["have_special_relative"]=>
  int(0)
}
object(DateInterval)#2 (16) {
  ["y"]=>
  int(0)
  ["m"]=>
  int(0)
  ["d"]=>
  int(0)
  ["h"]=>
  int(0)
  ["i"]=>
  int(0)
  ["s"]=>
  int(0)
  ["f"]=>
  float(0)
  ["weekday"]=>
  int(0)
  ["weekday_behavior"]=>
  int(0)
  ["first_last_day_of"]=>
  int(0)
  ["invert"]=>
  int(0)
  ["days"]=>
  bool(false)
  ["special_type"]=>
  int(1)
  ["special_amount"]=>
  int(-1)
  ["have_weekday_relative"]=>
  int(0)
  ["have_special_relative"]=>
  int(1)
}


Formate l'intervalle

  • « DateInterval::createFromDateString
  • DatePeriod »
  • PHP Manual
  • DateInterval
  • Formate l'intervalle

DateInterval::format

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateInterval::format — Formate l'intervalle

Description

public DateInterval::format(string $format): string

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
F | Microsecondes, numérique, au moins 6 chiffres, avec zéros initiaux | 007701, 052738, 428291
f | Microsecondes, numérique | 7701, 52738, 428291
R Signe "-" lorsque négatif, "+" si positif -, +
r Signe "-" lorsque négatif, vide si positif -,

Valeurs de retour

Retourne l'intervalle formaté.

Historique

Version | Description
7.2.12 | Le format F et f sera désormais toujours positif.
7.1.0 | Les caractères de format F et f ont été ajoutés.

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

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".

Voir aussi

  • DateTime::diff() - Retourne la différence entre deux objets DateTime


La classe DatePeriod

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

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

class DatePeriod implements IteratorAggregate {
/* Constantes */
public const int EXCLUDE_START_DATE;
public const int INCLUDE_END_DATE;
/* Propriétés */
public readonly ?DateTimeInterface $start;
public readonly ?DateTimeInterface $current;
public readonly ?DateTimeInterface $end;
public readonly ?DateInterval $interval;
public readonly int $recurrences;
public readonly bool $include_start_date;
public readonly bool $include_end_date;
/* Méthodes */
public __construct(
DateTimeInterface $start,
DateInterval $interval,
int $recurrences,
int $options = 0
)
public __construct(
DateTimeInterface $start,
DateInterval $interval,
DateTimeInterface $end,
int $options = 0
)
public __construct(string $isostr, int $options = 0)
public static createFromISO8601String(string $specification, int $options = 0): static
public getDateInterval(): DateInterval
public getEndDate(): ?DateTimeInterface
public getRecurrences(): ?int
public getStartDate(): DateTimeInterface
}

Constantes pré-définies

DatePeriod::EXCLUDE_START_DATE

Exclut la date de début, utilisée par DatePeriod::__construct().

DatePeriod::INCLUDE_END_DATE

Inclut la date de fin, utilisée par DatePeriod::__construct().

Propriétés

recurrences

La quantité minimale d'instances retournée par l'itérateur.

Si le nombre de récurrences a été explicitement passé par l'intermédiaire du paramètre $recurrences dans le constructeur de l'instance DatePeriod, alors cette propriété contient cette valeur, plus un si la date de début n'a pas été désactivée par DatePeriod::EXCLUDE_START_DATE, plus un si la date de fin a été activée par DatePeriod::INCLUDE_END_DATE.

Si le nombre de récurrences n'a pas été explicitement passé, alors cette propriété contient le nombre minimum d'instances retournées. Cela serait 0, plus un si la date de début n'a pas été désactivée par DatePeriod::EXCLUDE_START_DATE, plus un si la date de fin a été activée par DatePeriod::INCLUDE_END_DATE.

<?php
$start = new DateTime('2018-12-31 00:00:00');
$end = new DateTime('2021-12-31 00:00:00');
$interval = new DateInterval('P1M');
$recurrences = 5;

// récurrences explicitement définies par le constructeur
$period = new DatePeriod($start, $interval, $recurrences, DatePeriod::EXCLUDE_START_DATE);
echo $period->recurrences, "\n";

$period = new DatePeriod($start, $interval, $recurrences);
echo $period->recurrences, "\n";

$period = new DatePeriod($start, $interval, $recurrences, DatePeriod::INCLUDE_END_DATE);
echo $period->recurrences, "\n";

// récurrences non définies dans le constructeur
$period = new DatePeriod($start, $interval, $end);
echo $period->recurrences, "\n";

$period = new DatePeriod($start, $interval, $end, DatePeriod::EXCLUDE_START_DATE);
echo $period->recurrences, "\n";
?>

L'exemple ci-dessus va afficher :

5
6
7
1
0

Voir aussi DatePeriod::getRecurrences().

include_end_date

Inclut ou non la date de fin dans le jeu de dates récurrentes.

include_start_date

S'il faut inclure la date de début dans l'ensemble des dates récurrentes ou non.

start

La date de début de la période.

current

Pendant l'itération, cela contiendra la date du jour dans la période.

end

La date de fin de la période.

interval

Une spécification d'intervalle répétitif ISO 8601.

Historique

Version | Description
8.2.0 | La constante DatePeriod::INCLUDE_END_DATE et la propriété include_end_date ont été ajoutées.
8.0.0 | La classe DatePeriod implémente désormais IteratorAggregate. Auparavant, seule Traversable était implémentée.

Sommaire

  • DatePeriod::__construct — Crée un nouvel objet DatePeriod
  • DatePeriod::createFromISO8601String — Creates a new DatePeriod object from an ISO8601 string
  • DatePeriod::getDateInterval — Retourne l'intervalle
  • DatePeriod::getEndDate — Retourne la date de fin
  • DatePeriod::getRecurrences — Récupère le nombre de récurrences
  • DatePeriod::getStartDate — Obtient la date de début


Crée un nouvel objet DatePeriod

  • « DatePeriod
  • DatePeriod::createFromISO8601String »
  • PHP Manual
  • DatePeriod
  • Crée un nouvel objet DatePeriod

DatePeriod::__construct

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DatePeriod::__construct — Crée un nouvel objet DatePeriod

Description

public DatePeriod::__construct(
DateTimeInterface $start,
DateInterval $interval,
int $recurrences,
int $options = 0
)
public DatePeriod::__construct(
DateTimeInterface $start,
DateInterval $interval,
DateTimeInterface $end,
int $options = 0
)
Avertissement
public DatePeriod::__construct(string $isostr, int $options = 0)

Cette variante du constructeur a été rendu obsolète, utilisez DatePeriod::createFromISO8601String() à la place.

Crée un nouvel objet DatePeriod.

Les objetsDatePeriod peuvent être utilisés comme itérateur pour générer un certain nombre d'objets DateTimeImmutable ou DateTime à partir d'une start date (date de début), un interval, et une end date (date de fin) ou du nombre de récurrences.

La classe des objets renvoyés est équivalente à la classe ancêtre DateTimeImmutable ou DateTime fournis pas l'objet start.

Liste de paramètres

start

La date de début de la période. Inclus par défaut dans le jeu de résultats.

interval

L'intervalle entre les récurrences de la période.

recurrences

Le nombre de récurrences. Doit être plus grand que 0. Le nombre de résultats renvoyés est supérieur d'une unité, car la date de début est incluse dans le jeu de résultats par défaut.

end

La date de fin de la période. Non inclus par défaut dans le jeu de résultats.

isostr

Un sous-ensemble de la » spécification ISO 8601 de la répétition de l'intervalle.

Exemples de certaines fonctionnalités de spécification d'intervalle ISO 8601 que PHP ne prend pas en charge :

  1. Les occurrences zéro (R0/)
  2. Décalages horaires autres que UTC (Z), tels que +02:00.
options

Un champ de bits qui peut être utilisé pour contrôler certains comportements avec les dates de début et de fin.

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.

Peut être configuré à DatePeriod::INCLUDE_END_DATE pour inclure la date de fin du jeu de dates de récursion dans la période.

Erreurs / Exceptions

Lance une exception DateMalformedPeriodStringException lorsque le paramètre isostr ne peut être analysé comme une période ISO 8601 valide. Antérieur à PHP 8.3, ceci était une Exception.

Historique

Version | Description
8.3.0 | Lance désormais une DateMalformedPeriodStringException au lieu de Exception.
8.2.0 | La constante DatePeriod::INCLUDE_END_DATE a été ajoutée.
7.2.19, 7.3.6, 7.4.0 | recurrences doit désormais être plus grand que 0.

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

Exemple #3 DatePeriod montrant tous les derniers jeudis du mois sur une année

<?php
$begin = new DateTime('2021-12-31');
$end = new DateTime('2022-12-31 23:59:59');

$interval = DateInterval::createFromDateString('last thursday of next month');
$period = new DatePeriod($begin, $interval, $end, DatePeriod::EXCLUDE_START_DATE);

foreach ($period as $dt) {
echo $dt->format('l Y-m-d'), "\n";
}
?>

L'exemple ci-dessus va afficher :

Thursday 2022-01-27
Thursday 2022-02-24
Thursday 2022-03-31
Thursday 2022-04-28
Thursday 2022-05-26
Thursday 2022-06-30
Thursday 2022-07-28
Thursday 2022-08-25
Thursday 2022-09-29
Thursday 2022-10-27
Thursday 2022-11-24
Thursday 2022-12-29

Notes

Les nombres de répétitions non liés spécifiés dans la section 4.5 "Intervalle de temps récurrent" de la norme ISO 8601 ne sont pas supportés, c'est-à-dire ni "R/..." comme isostr ni null comme end ne fonctionnerait.


Creates a new DatePeriod object from an ISO8601 string

  • « DatePeriod::__construct
  • DatePeriod::getDateInterval »
  • PHP Manual
  • DatePeriod
  • Creates a new DatePeriod object from an ISO8601 string

DatePeriod::createFromISO8601String

(PHP 8 >= 8.3.0)

DatePeriod::createFromISO8601String — Creates a new DatePeriod object from an ISO8601 string

Description

public static DatePeriod::createFromISO8601String(string $specification, int $options = 0): static

Creates a new DatePeriod object from an ISO8601 string, as specified with specification.

Liste de paramètres

specification

A subset of the » ISO 8601 repeating interval specification.

An example of an accepted ISO 8601 interval specifications is R5/2008-03-01T13:00:00Z/P1Y2M10DT2H30M, which specifies:

  • 5 iterations (R5/)
  • Starting at 2008-03-01T13:00:00Z.
  • Each iteration is an 1 year, 2 months, 10 days, 2 hours, and 30 minute interval (/P1Y2M10DT2H30M).

Examples of some ISO 8601 interval specification features that PHP does not support are:

  1. zero occurrences (R0/)
  2. time offsets other than UTC (Z), such as +02:00.
options

A bit field which can be used to control certain behaviour with start- and end- dates.

With DatePeriod::EXCLUDE_START_DATE you exclude the start date from the set of recurring dates within the period.

With DatePeriod::INCLUDE_END_DATE you include the end date in the set of recurring dates within the period.

Valeurs de retour

Creates a new DatePeriod object.

DatePeriod objects created with this method can be used as an iterator to generate a number of DateTimeImmutable objects.

Erreurs / Exceptions

Throws an DateMalformedPeriodStringException when the specification cannot be parsed as a valid ISO 8601 period.

Exemples

Exemple #1 DatePeriod::createFromISO8601String example

<?php
$iso = 'R4/2023-07-01T00:00:00Z/P7D';

$period = DatePeriod::createFromISO8601String($iso);

// By iterating over the DatePeriod object, all of the
// recurring dates within that period are printed.
foreach ($period as $date) {
echo $date->format('Y-m-d'), "\n";
}
?>

L'exemple ci-dessus va afficher :

2023-07-01
2023-07-08
2023-07-15
2023-07-22
2023-07-29


Retourne l'intervalle

  • « DatePeriod::createFromISO8601String
  • DatePeriod::getEndDate »
  • PHP Manual
  • DatePeriod
  • Retourne l'intervalle

DatePeriod::getDateInterval

(PHP 5 >= 5.6.5, PHP 7, PHP 8)

DatePeriod::getDateInterval — Retourne l'intervalle

Description

Style orienté objet

public DatePeriod::getDateInterval(): DateInterval

Retourne un objet DateIntervalle représentant l'intervalle utilisé pour la période.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet DateInterval

Exemples

Exemple #1 Exemple avec DatePeriod::getDateInterval()

<?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() - Obtient la date de début
  • DatePeriod::getEndDate() - Retourne la date de fin


Retourne la date de fin

  • « DatePeriod::getDateInterval
  • DatePeriod::getRecurrences »
  • PHP Manual
  • DatePeriod
  • Retourne la date de fin

DatePeriod::getEndDate

(PHP 5 >= 5.6.5, PHP 7, PHP 8)

DatePeriod::getEndDate — Retourne la date de fin

Description

Style orienté objet

public DatePeriod::getEndDate(): ?DateTimeInterface

Retourne la date de fin de la période.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne null si la DatePeriod n'a pas de date de fin. Par exemple, lorsqu'elle est initialisée avec le paramètre recurrences, ou avec le paramètre isostr sans date de fin.

Renvoie un object DateTimeImmutable lorsque la DatePeriod est initialisée avec un object DateTimeImmutable comme paramètre end.

Retourne un object DateTime cloné représentant la date de fin sinon.

Exemples

Exemple #1 Exemples avec DatePeriod::getEndDate()

<?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() sans date de fin

<?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() - Obtient la date de début
  • DatePeriod::getDateInterval() - Retourne l'intervalle


Récupère le nombre de récurrences

  • « DatePeriod::getEndDate
  • DatePeriod::getStartDate »
  • PHP Manual
  • DatePeriod
  • Récupère le nombre de récurrences

DatePeriod::getRecurrences

(PHP 7 >= 7.2.17/7.3.4, PHP 8)

DatePeriod::getRecurrences — Récupère le nombre de récurrences

Description

Style orienté objet

public DatePeriod::getRecurrences(): ?int

Récupère le nombre de récurrences.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nombre de récurrences est défini en passant explicitement la valeur de $recurrences au constructeur de la classe DatePeriod, sinon il est défini comme null.

Exemples

Exemple #1 Valeurs différentes pour DatePeriod::getRecurrences()

<?php
$start = new DateTime('2018-12-31 00:00:00');
$end = new DateTime('2021-12-31 00:00:00');
$interval = new DateInterval('P1M');
$recurrences = 5;
// récurrences définies explicitement via le constructeur
$period = new DatePeriod($start, $interval, $recurrences, DatePeriod::EXCLUDE_START_DATE);
echo $period->getRecurrences(), "\n";

$period = new DatePeriod($start, $interval, $recurrences);
echo $period->getRecurrences(), "\n";

$period = new DatePeriod($start, $interval, $recurrences, DatePeriod::INCLUDE_END_DATE);
echo $period->getRecurrences(), "\n\n";

// récurrences non définies dans le constructeur
$period = new DatePeriod($start, $interval, $end);
var_dump($period->getRecurrences());

$period = new DatePeriod($start, $interval, $end, DatePeriod::EXCLUDE_START_DATE);
var_dump($period->getRecurrences());
?>

L'exemple ci-dessus va afficher :

5
5
5

NULL
NULL

Voir aussi

  • DatePeriod::$recurrences


Obtient la date de début

  • « DatePeriod::getRecurrences
  • Fonctions Date/Heure »
  • PHP Manual
  • DatePeriod
  • Obtient la date de début

DatePeriod::getStartDate

(PHP 5 >= 5.6.5, PHP 7, PHP 8)

DatePeriod::getStartDate — Obtient la date de début

Description

Style orienté objet

public DatePeriod::getStartDate(): DateTimeInterface

Obtient la date de début d'une période.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Renvoi un object DateTimeImmutable quand la DatePeriod est initialisée avec un object DateTimeImmutable comme paramètre start.

Renvoi un object DateTime dans les autres cas.

Exemples

Exemple #1 Exemple DatePeriod::getStartDate()

<?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() - Retourne la date de fin
  • DatePeriod::getDateInterval() - Retourne l'intervalle


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 — Crée un nouvel objet DateTimeImmutable
  • date_create — Création d'un objet DateTime
  • 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 DateTimeImmutable::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/moment 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 un horodatage Unix
  • 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 partie de l'heure/date locale en tant qu'entier
  • localtime — Récupère l'heure locale
  • microtime — Retourne le timestamp UNIX actuel avec les microsecondes
  • mktime — Retourne l'horodatage 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 l'horodatage 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 d'un fuseau horaire à partir de son abréviation et de son décalage UTC
  • 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, PHP 8)

checkdate — Valide une date grégorienne

Description

checkdate(int $month, int $day, int $year): bool

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 l'horodatage 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, PHP 8)

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, PHP 8)

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, PHP 8)

date_create_immutable_from_format — Alias de DateTimeImmutable::createFromFormat()

Description

Cette fonction est un alias de : DateTimeImmutable::createFromFormat()


Crée un nouvel objet DateTimeImmutable

  • « date_create_immutable_from_format
  • date_create »
  • PHP Manual
  • Fonctions Date/Heure
  • Crée un nouvel objet DateTimeImmutable

date_create_immutable

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

date_create_immutable — Crée un nouvel objet DateTimeImmutable

Description

date_create_immutable(string $datetime = "now", ?DateTimeZone $timezone = null): DateTimeImmutable|false

Version procédurale de DateTimeImmutable::__construct().

Contrairement au constructeur de DateTimeImmutable, cette fonction retournera false à la place d'une exception si la chaîne datetime transmise n'est pas valide.

Liste de paramètres

Voir DateTimeImmutable::__construct.

Valeurs de retour

Retourne une nouvelle instance DateTimeImmutable ou false si une erreur survient

Voir aussi

  • DateTimeImmutable::createFromFormat() - Analyse une heure au format texte selon le format spécifié.


Création d'un objet DateTime

  • « date_create_immutable
  • date_date_set »
  • PHP Manual
  • Fonctions Date/Heure
  • Création d'un objet DateTime

date_create

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

date_create — Création d'un objet DateTime

Description

date_create(string $datetime = "now", ?DateTimeZone $timezone = null): DateTime|false

Version procédurale de DateTime::__construct()

Contrairement au constructor de DateTime, il renverra false au lieu d'une exception si la chaîne datetime n'est pas valide.

Liste de paramètres

Voir DateTimeImmutable::__construct.

Valeurs de retour

Renvoie une nouvelle instance DateTime ou false si une erreur survient

Voir aussi

  • DateTimeImmutable::__construct() - Retourne un nouvel objet DateTimeImmutable
  • DateTimeImmutable::createFromFormat() - Analyse une heure au format texte selon le format spécifié.
  • DateTime::__construct() - Retourne un nouvel objet DateTime


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, PHP 8)

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, PHP 8)

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

date_default_timezone_get(): string

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)

  • Lecture de la valeur de l'option de configuration date.timezone (si elle est définie)

Si tout ce qui précède échoue, date_default_timezone_get() retournera le décalage horaire par défaut de UTC.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères.

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');
}

?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

date_default_timezone_set — Définit le décalage horaire par défaut de toutes les fonctions date/heure

Description

date_default_timezone_set(string $timezoneId): bool

La fonction date_default_timezone_set() définit le décalage horaire par défaut utilisé par toutes les fonctions date/heure.

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

timezoneId

L'identifiant de décalage horaire, comme UTC, Africa/Lagos, Asia/Hong_Kong, 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 timezoneId 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.';
}
?>

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, PHP 8)

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, PHP 8)

date_format — Alias de DateTime::format()

Description

Cette fonction est un alias de : DateTime::format()


Alias de DateTimeImmutable::getLastErrors

  • « date_format
  • date_interval_create_from_date_string »
  • PHP Manual
  • Fonctions Date/Heure
  • Alias de DateTimeImmutable::getLastErrors

date_get_last_errors

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

date_get_last_errors — Alias de DateTimeImmutable::getLastErrors()

Description

Cette fonction est un alias de : DateTimeImmutable::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, PHP 8)

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, PHP 8)

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, PHP 8)

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, PHP 8)

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, PHP 8)

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, PHP 8)

date_parse_from_format — Récupère les informations d'une date donnée suivant un format spécifique

Description

date_parse_from_format(string $format, string $datetime): array

Retourne un tableau associatif contenant des informations détaillées sur une date/moment donnée.

Liste de paramètres

format

Documentation sur l'utilisation du format, veuillez vous référer à la documentation de DateTimeImmutable::createFromFormat(). Les mêmes règles s'appliquent.

datetime

Chaîne représentant la date/moment.

Valeurs de retour

Retourne un tableau associatif avec des informations détaillées sur la date/moment donnée.

Le tableau retourné a des clés pour year, month, day, hour, minute, second, fraction, et is_localtime.

Si is_localtime est présent, alors zone_type indique le type de fuseau horaire. Pour le type 1 (décalage UTC) les champs zone et is_dst sont ajoutés. Pour le type 2 (abréviation) les champs tz_abbr et is_dst sont ajoutés. Pour le type 3 (identifiant de fuseau horaire) les champs tz_abbr et tz_id sont ajoutés.

Le tableau inclus les champs warning_count et warnings. Le premier indique le nombre d'avertissements. Les clés du tableau warnings indiquent la position dans le paramètre datetime où l'avertissement s'est produit, avec la valeur de chaîne décrivant l'avertissement lui-même. Un exemple ci-dessous montre un tel avertissement.

Le tableau inclus aussi les champs error_count et errors fields. Le premier indique le nombre d'erreurs. Les clés du tableau errors indiquent la position dans le paramètre datetime où l'erreur s'est produite, avec la valeur de chaîne décrivant l'avertissement lui-même. Un exemple ci-dessous montre un tel avertissement.

Avertissement

Le nombre d'éléments de tableau dans les tableaux warnings et errors peut être inférieur à warning_count ou error_count s'ils se sont produits à la même position.

Erreurs / Exceptions

Cette fonction lance une ValueError lorsque le datetime contient des octets NULL.

Historique

Version | Description
8.0.21, 8.1.8, 8.2.0 | Lance désormais une ValueError lorsque des octets NULL sont passés dans datetime, ce qui était auparavant ignoré silencieusement.
7.2.0 | L'élément zone du tableau retourné représente des secondes au lieu de minutes maintenant, et son signe est inversé. Par exemple -120 est maintenant égal à 7200.

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] => 3600
    [is_dst] =>
)

Exemple #2 Exemple de date_parse_from_format() avec des warnings (avertissements)

<?php
$date = "26 August 2022 22:30 pm";
$parsed = date_parse_from_format("j F Y G:i a", $date);

echo "Warnings count: ", $parsed['warning_count'], "\n";
foreach ($parsed['warnings'] as $position => $message) {
echo "\tOn position {$position}: {$message}\n";
}
?>

L'exemple ci-dessus va afficher :

Warnings count: 1
    On position 23: The parsed time was invalid

Exemple #3 Exemple de date_parse_from_format() avec des errors (erreurs)

<?php
$date = "26 August 2022 CEST";
$parsed = date_parse_from_format("j F Y H:i", $date);

echo "Errors count: ", $parsed['error_count'], "\n";
foreach ($parsed['errors'] as $position => $message) {
echo "\tOn position {$position}: {$message}\n";
}
?>

L'exemple ci-dessus va afficher :

Errors count: 3
    On position 15: A two digit hour could not be found
    On position 19: Data missing

Voir aussi

  • DateTimeImmutable::createFromFormat() - Analyse une heure au format texte selon le format spécifié.
  • checkdate() - Valide une date grégorienne


Retourne un tableau associatif avec des informations détaillées sur une date/moment 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/moment donnée

date_parse

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

date_parse — Retourne un tableau associatif avec des informations détaillées sur une date/moment donnée

Description

date_parse(string $datetime): array

date_parse() analyse la chaîne datetime donnée selon les mêmes règles strtotime() et DateTimeImmutable::__construct(). Au lieu de renvoyer un horodatage Unix (avec strtotime()) ou un objet DateTimeImmutable (avec DateTimeImmutable::__construct()), il renvoie un tableau associatif avec les informations qu'il pourrait détecter dans la chaîne datetime donnée.

Si aucune information sur un certain groupe d'éléments ne peut être trouvée, ces éléments du tableau seront définis sur false ou seront manquants. Si nécessaire pour construire un horodatage ou un objet DateTimeImmutable à partir de la même chaîne datetime, plusieurs champs peuvent être définis sur une valeur non-false. Voir les exemples ci-dessous pour les cas où cela se produit.

Liste de paramètres

datetime

Date/moment dans un format accepté par DateTimeImmutable::__construct().

Valeurs de retour

Retourne un tableau contenant des informations sur la date/moment analysée.

Le tableau retourné a des clés pour year, month, day, hour, minute, second, fraction, et is_localtime.

Si is_localtime est présent, alors zone_type indique le type de fuseau horaire. Pour le type 1 (décalage UTC) les champs zone et is_dst sont ajoutés. Pour le type 2 (abréviation) les champs tz_abbr et is_dst sont ajoutés. Pour le type 3 (identifiant de fuseau horaire) les champs tz_abbr et tz_id sont ajoutés.

Le tableau inclus les champs warning_count et warnings. Le premier indique le nombre d'avertissements. Les clés du tableau warnings indiquent la position dans le paramètre datetime où l'avertissement s'est produit, avec la valeur de chaîne décrivant l'avertissement lui-même. Un exemple ci-dessous montre un tel avertissement.

Le tableau inclus aussi les champs error_count et errors fields. Le premier indique le nombre d'erreurs. Les clés du tableau errors indiquent la position dans le paramètre datetime où l'erreur s'est produite, avec la valeur de chaîne décrivant l'avertissement lui-même. Un exemple ci-dessous montre un tel avertissement.

Avertissement

Le nombre d'éléments de tableau dans les tableaux warnings et errors peut être inférieur à warning_count ou error_count s'ils se sont produits à la même position.

Erreurs / Exceptions

Dans le cas où la fonction retourne une erreur, l'élément "errors" contiendra les messages d'erreur.

Historique

Version | Description
7.2.0 | L'élément zone du tableau retourné représente maintenant des secondes au lieu des minutes, et son signe est inversé. Par exemple, -120 est maintenant 7200.

Exemples

Exemple #1 date_parse() avec une chaîne datetime complète

<?php
var_dump(date_parse("2006-12-12 10:00:00.5"));
?>

L'exemple ci-dessus va afficher :

array(12) {
  ["year"]=>
  int(2006)
  ["month"]=>
  int(12)
  ["day"]=>
  int(12)
  ["hour"]=>
  int(10)
  ["minute"]=>
  int(0)
  ["second"]=>
  int(0)
  ["fraction"]=>
  float(0.5)
  ["warning_count"]=>
  int(0)
  ["warnings"]=>
  array(0) {
  }
  ["error_count"]=>
  int(0)
  ["errors"]=>
  array(0) {
  }
  ["is_localtime"]=>
  bool(false)
}

Les éléments de fuseau horaire n'apparaissent que s'ils sont inclus dans la chaîne datetime donnée. Dans ce cas, il y aura toujours un élément zone_type et quelques autres en fonction de sa valeur.

Exemple #2 date_parse() avec des informations abrégé sur le fuseau horaire

<?php
var_dump(date_parse("June 2nd, 2022, 10:28:17 BST"));
?>

L'exemple ci-dessus va afficher :

array(16) {
  ["year"]=>
  int(2022)
  ["month"]=>
  int(6)
  ["day"]=>
  int(2)
  ["hour"]=>
  int(10)
  ["minute"]=>
  int(28)
  ["second"]=>
  int(17)
  ["fraction"]=>
  float(0)
  ["warning_count"]=>
  int(0)
  ["warnings"]=>
  array(0) {
  }
  ["error_count"]=>
  int(0)
  ["errors"]=>
  array(0) {
  }
  ["is_localtime"]=>
  bool(true)
  ["zone_type"]=>
  int(2)
  ["zone"]=>
  int(0)
  ["is_dst"]=>
  bool(true)
  ["tz_abbr"]=>
  string(3) "BST"
}

Exemple #3 date_parse() avec des informations abrégé sur le fuseau horaire

<?php
var_dump(date_parse("June 2nd, 2022, 10:28:17 Europe/London"));
?>

L'exemple ci-dessus va afficher :

array(14) {
  ["year"]=>
  int(2022)
  ["month"]=>
  int(6)
  ["day"]=>
  int(2)
  ["hour"]=>
  int(10)
  ["minute"]=>
  int(28)
  ["second"]=>
  int(17)
  ["fraction"]=>
  float(0)
  ["warning_count"]=>
  int(0)
  ["warnings"]=>
  array(0) {
  }
  ["error_count"]=>
  int(0)
  ["errors"]=>
  array(0) {
  }
  ["is_localtime"]=>
  bool(true)
  ["zone_type"]=>
  int(3)
  ["tz_id"]=>
  string(13) "Europe/London"
}

Si une chaîne datetime plus minimale est analysée, moins d'informations sont disponibles. Dans cet exemple, toutes les parties temporelles sont renvoyées comme false.

Exemple #4 date_parse() avec une chaîne minimale

<?php
var_dump(date_parse("June 2nd, 2022"));
?>

L'exemple ci-dessus va afficher :

array(12) {
  ["year"]=>
  int(2022)
  ["month"]=>
  int(6)
  ["day"]=>
  int(2)
  ["hour"]=>
  bool(false)
  ["minute"]=>
  bool(false)
  ["second"]=>
  bool(false)
  ["fraction"]=>
  bool(false)
  ["warning_count"]=>
  int(0)
  ["warnings"]=>
  array(0) {
  }
  ["error_count"]=>
  int(0)
  ["errors"]=>
  array(0) {
  }
  ["is_localtime"]=>
  bool(false)
}

Les formats relatifs n'influencent pas les valeurs analysées depuis des formats absoluts, mais sont analysées dans l'élément "relatif".

Exemple #5 Exemple avec date_parse() et des formats relatifs

<?php
var_dump(date_parse("2006-12-12 10:00:00.5 +1 week +1 hour"));
?>

L'exemple ci-dessus va afficher :

array(13) {
  ["year"]=>
  int(2006)
  ["month"]=>
  int(12)
  ["day"]=>
  int(12)
  ["hour"]=>
  int(10)
  ["minute"]=>
  int(0)
  ["second"]=>
  int(0)
  ["fraction"]=>
  float(0.5)
  ["warning_count"]=>
  int(0)
  ["warnings"]=>
  array(0) {
  }
  ["error_count"]=>
  int(0)
  ["errors"]=>
  array(0) {
  }
  ["is_localtime"]=>
  bool(false)
  ["relative"]=>
  array(6) {
    ["year"]=>
    int(0)
    ["month"]=>
    int(0)
    ["day"]=>
    int(7)
    ["hour"]=>
    int(1)
    ["minute"]=>
    int(0)
    ["second"]=>
    int(0)
  }
}
)

Certaines strophes, telles que Thursday (jeudi) définiront la partie heure de la chaîne sur 0. Si Thursday (jeudi) is est passé àDateTimeImmutable::__construct() l'heure, la minute, la seconde et la fraction seront également définies sur 0. Dans l'exemple ci-dessous, l'élément année est cependant laissé à false.

Exemple #6 date_parse() avec des effets secondaires

<?php
var_dump(date_parse("Thursday, June 2nd"));
?>

L'exemple ci-dessus va afficher :

array(13) {
  ["year"]=>
  bool(false)
  ["month"]=>
  int(6)
  ["day"]=>
  int(2)
  ["hour"]=>
  int(0)
  ["minute"]=>
  int(0)
  ["second"]=>
  int(0)
  ["fraction"]=>
  float(0)
  ["warning_count"]=>
  int(0)
  ["warnings"]=>
  array(0) {
  }
  ["error_count"]=>
  int(0)
  ["errors"]=>
  array(0) {
  }
  ["is_localtime"]=>
  bool(false)
  ["relative"]=>
  array(7) {
    ["year"]=>
    int(0)
    ["month"]=>
    int(0)
    ["day"]=>
    int(0)
    ["hour"]=>
    int(0)
    ["minute"]=>
    int(0)
    ["second"]=>
    int(0)
    ["weekday"]=>
    int(4)
  }
}

Voir aussi

  • date_parse_from_format() - Récupère les informations d'une date donnée suivant un format spécifique pour analyser le parameters datetime avec un format spécifique
  • checkdate() - Valide une date grégorienne pour une validation de 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, PHP 8)

date_sub — Alias de DateTime::sub()

Description

Cette fonction est un alias de : DateTime::sub()

Voir aussi

  • DateTimeImmutable::sub() - Soustrait un nombre de jours, mois, années, heures et secondes
  • DateTime::sub() - Soustrait une durée à un objet DateTime


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, PHP 8)

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

date_sun_info(int $timestamp, float $latitude, float $longitude): array

Liste de paramètres

timestamp

Horodatage Unix.

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. La structure du tableau est détaillé dans la liste suivante :

sunrise
L'horodatage du levé du soleil (angle de zenith = 90°35').
sunset
L'horodatage du coucher du soleil (angle de zenith = 90°35').
transit
L'horodatage où le soleil est à son zénith, c'est-à-dire a atteint son point le plus haut.
civil_twilight_begin
Le début de l'aube civile (angle de zenith = 96°). Il termine au sunrise.
civil_twilight_end
La fin du crépuscule civil (angle de zenith = 96°). Elle commence au sunset.
nautical_twilight_begin
Le début de l'aube nautique (angle de zenith = 102°). Il termine au civil_twilight_begin.
nautical_twilight_end
La fin du crépuscule nautique (angle de zenith = 102°). Elle commence a civil_twilight_end.
astronomical_twilight_begin
Le début de l'aube astronomique (angle de zenith = 108°). Il termine au nautical_twilight_begin.
astronomical_twilight_end
La fin du crépuscule astronomique (angle de zenith = 108°). Elle commence a nautical_twilight_end.

Les valeurs des éléments du tableau sont soit des timestamps UNIX, false, si le soleil est sous le zenith respectif pour la journée entière, ou true, si le soleil est au dessus du zenith respectif pour toute la journée.

Historique

Version | Description
7.2.0 | Le calcul a été corrigé en tenant compte du minuit local au lieu du midi local, ce qui modifie légèrement les résultats.

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

Exemple #2 Nuit polaire avec un peu de traitement

<?php
$tz = new \DateTimeZone('America/Anchorage');

$si = date_sun_info(strtotime("2022-12-21"), 70.21, -148.51);
foreach ($si as $key => $value) {
echo
match ($value) {
true => 'always',
false => 'never',
default => date_create("@{$value}")->setTimeZone($tz)->format( 'H:i:s T' ),
},
": {$key}",
"\n";
}
?>

L'exemple ci-dessus va afficher :

never: sunrise
never: sunset
12:52:18 AKST: transit
10:53:19 AKST: civil_twilight_begin
14:51:17 AKST: civil_twilight_end
09:01:47 AKST: nautical_twilight_begin
16:42:48 AKST: nautical_twilight_end
07:40:47 AKST: astronomical_twilight_begin
18:03:49 AKST: astronomical_twilight_end

Exemple #3 Soleil de minuit (Tromso, Norvège)

<?php
$si = date_sun_info(strtotime("2022-06-26"), 69.68, 18.94);
print_r($si);
?>

L'exemple ci-dessus va afficher :

Array
(
    [sunrise] => 1
    [sunset] => 1
    [transit] => 1656240426
    [civil_twilight_begin] => 1
    [civil_twilight_end] => 1
    [nautical_twilight_begin] => 1
    [nautical_twilight_end] => 1
    [astronomical_twilight_begin] => 1
    [astronomical_twilight_end] => 1
)

Exemple #4 Calcul de la durée du jour (Kyiv)

<?php
$si = date_sun_info(strtotime('2022-08-26'), 50.45, 30.52);
$diff = $si['sunset'] - $si['sunrise'];
echo "Durée du jour: ",
floor($diff / 3600), "h ",
floor(($diff % 3600) / 60), "s\n";
?>

L'exemple ci-dessus va afficher :

Durée du jour: 13h 56s


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, PHP 8)

date_sunrise — Retourne l'heure de lever du soleil pour un jour et un endroit donnés

Avertissement

Cette fonction est OBSOLÈTE depuis PHP 8.1.0. Dépendre de cette fonction est fortement déconseillé. L'utilisation de date_sun_info() est encouragé à la place.

Description

date_sunrise(
int $timestamp,
int $returnFormat = SUNFUNCS_RET_STRING,
?float $latitude = null,
?float $longitude = null,
?float $zenith = null,
?float $utcOffset = null
): string|int|float|false

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.

returnFormat

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

zenith est l'angle entre le centre du soleil et la ligne perpendiculaire à la surface de la terre. Par défaut date.sunrise_zenith

Valeurs courantes de l'angle zenith
Angle | Description
90°50' | Levé du soleil: le point où le soleil devient visible.
96° | Crépuscule civil: conventionnellement utilisé pour signifier le début de l'aube.
102° | Crépuscule nautique: le point où l'horizon commence à être visible en mer.
108° | Crépuscule astronomique: le point où le soleil commence à être la source de toute illumination.

utcOffset

Spécifié en heures. Le utcOffset est ignoré si returnFormat est SUNFUNCS_RET_TIMESTAMP.

Valeurs de retour

Retourne l'heure de lever du soleil dans le returnFormat spécifié en cas de succès ou false si une erreur survient. Une raison possible de l'échec est que le soleil ne se lève pas du tout, ce qui arrive à l'intérieur des cercles polaires pendant une partie de l'année.

Erreurs / Exceptions

Chaque appel à une fonction date/heure générera un diagnostic de type E_WARNING si le fuseau horaire n'est pas valide. Voir aussi date_default_timezone_set()

Historique

Version | Description
8.1.0 | Cette fonction a été rendue obsolète en faveur de date_sun_info().
8.0.0 | latitude, longitude, zenith et utcOffset sont désormais nullable.

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);

?>

Résultat de l'exemple ci-dessus est similaire à :

Mon Dec 20 2004, sunrise time : 08:54

Exemple #2 Pas de levé de soleil

<?php
$solstice = strtotime('2017-12-21');
var_dump(date_sunrise($solstice, SUNFUNCS_RET_STRING, 69.245833, -53.537222));
?>

L'exemple ci-dessus va afficher :

bool(false)

Voir aussi

  • 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


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, PHP 8)

date_sunset — Retourne l'heure de coucher du soleil pour un jour et un endroit donnés

Avertissement

Cette fonction est OBSOLÈTE depuis PHP 8.1.0. Dépendre de cette fonction est fortement déconseillé. L'utilisation de date_sun_info() est encouragé à la place.

Description

date_sunset(
int $timestamp,
int $returnFormat = SUNFUNCS_RET_STRING,
?float $latitude = null,
?float $longitude = null,
?float $zenith = null,
?float $utcOffset = null
): string|int|float|false

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.

returnFormat

Constantes pour le paramètre returnFormat
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

zenith est l'angle entre le centre du soleil et la ligne perpendiculaire à la surface de la terre. Par défaut date.sunset_zenith

Valeurs communes d'angle zenith
Angle | Description
90°50' | Coucher du soleil: Le point où le soleil devient invisible.
96° | Crépuscule civil: conventionnellement utilisé pour signifier la fin du crépuscule.
102° | Crépuscule nautique: le point de fin de l'horizon étant visible en mer.
108° | Crépuscule astronomique: le point où le soleil finit d'être la source de toute illumination.

utcOffset

Spécifié en heures. Le utcOffset est ignoré, si returnFormat est SUNFUNCS_RET_TIMESTAMP.

Valeurs de retour

Retourne l'heure de coucher du soleil dans le returnFormat spécifié ou false si une erreur survient. Une raison possible de l'échec est que le le soleil ne se couche pas, ce qui se passe à l'intérieur des cercles polaires pour une partie de l'année.

Erreurs / Exceptions

Chaque appel à une fonction date/heure générera un diagnostic de type E_WARNING si le fuseau horaire n'est pas valide. Voir aussi date_default_timezone_set()

Historique

Version | Description
8.1.0 | Cette fonction a été rendue obsolète en faveur de date_sun_info().
8.0.0 | latitude, longitude, zenith et utcOffset sont désormais nullable.

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);

?>

Résultat de l'exemple ci-dessus est similaire à :

Mon Dec 20 2004, sunset time : 18:13

Exemple #2 Pas de coucher du soleil

<?php
$solstice = strtotime('2017-12-21');
var_dump(date_sunset($solstice, SUNFUNCS_RET_STRING, 69.245833, -53.537222));
?>

L'exemple ci-dessus va afficher :

bool(false)

Voir aussi

  • 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


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, PHP 8)

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, PHP 8)

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, PHP 8)

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, PHP 8)

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, PHP 8)

date_timezone_set — Alias de DateTime::setTimezone()

Description

Cette fonction est un alias de : DateTime::setTimezone()


Formate un horodatage Unix

  • « date_timezone_set
  • getdate »
  • PHP Manual
  • Fonctions Date/Heure
  • Formate un horodatage Unix

date

(PHP 4, PHP 5, PHP 7, PHP 8)

date — Formate un horodatage Unix

Description

date(string $format, ?int $timestamp = null): string

Retourne une date sous forme d'une chaîne, au format donné par le paramètre format, fournie par le paramètre timestamp (horodatage Unix) 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().

Avertissement

Les horodatages Unix ne gèrent pas les fuseaux horaires. Utilisez la classe DateTimeImmutable, et sa méthode de formatage DateTimeInterface::format() pour formater les informations de date/heure avec un fuseau horaire attaché.

Liste de paramètres

format

Format accepté par DateTimeInterface::format().

Note: date() générera toujours 000000 pour les microsecondes puisqu'il prend un paramètre int, alors que DateTime::format() prend en charge les microsecondes si DateTime a été créé avec des microsecondes.

timestamp

Le paramètre optionnel timestamp est un timestamp Unix de type entier qui vaut par défaut l'heure courante locale si timestamp est omis ou null. En d'autres termes, il vaut par défaut la valeur de la fonction time().

Valeurs de retour

Retourne une date formatée en chaine de caractères.

Erreurs / Exceptions

Chaque appel à une fonction date/heure générera un diagnostic de type E_WARNING si le fuseau horaire n'est pas valide. Voir aussi date_default_timezone_set()

Historique

Version | Description
8.0.0 | timestamp est désormais nullable.

Exemples

Exemple #1 Exemple avec date()

<?php
// Définit le fuseau horaire par défaut à utiliser.
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, IntlDateFormatter::format() peut être utilisé à la place de 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'].

Voir aussi

  • DateTimeImmutable::__construct() - Retourne un nouvel objet DateTimeImmutable
  • DateTimeInterface::format() - Retourne une date formatée suivant le format fourni
  • gmdate() - Formate une date/heure GMT/CUT
  • idate() - Formate une partie de l'heure/date locale en tant qu'entier
  • getdate() - Retourne la date/heure
  • getlastmod() - Retourne la date de dernière modification de la page
  • mktime() - Retourne l'horodatage UNIX d'une date
  • IntlDateFormatter::format() - Formate la date et l'heure sous forme de chaîne
  • time() - Retourne l'horodatage UNIX actuel
  • Constantes DateTime Prédéfinie


Retourne la date/heure

  • « date
  • gettimeofday »
  • PHP Manual
  • Fonctions Date/Heure
  • Retourne la date/heure

getdate

(PHP 4, PHP 5, PHP 7, PHP 8)

getdate — Retourne la date/heure

Description

getdate(?int $timestamp = null): array

Retourne un array associatif contenant les informations de date et d'heure du timestamp, ou la date/heure courante locale si timestamp est omis ou null.

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 timestamp est omis ou null. 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.

Historique

Version | Description
8.0.0 | timestamp est désormais nullable.

Exemples

Exemple #1 Exemple avec getdate()

<?php
$today = getdate();
print_r($today);
?>

Résultat de l'exemple ci-dessus est 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 un horodatage Unix
  • idate() - Formate une partie de l'heure/date locale en tant qu'entier
  • localtime() - Récupère l'heure locale
  • time() - Retourne l'horodatage 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, PHP 8)

gettimeofday — Retourne l'heure actuelle

Description

gettimeofday(bool $as_float = false): array|float

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

as_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 as_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

Exemples

Exemple #1 Exemple avec gettimeofday()

<?php
print_r(gettimeofday());

echo gettimeofday(true);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

gmdate — Formate une date/heure GMT/CUT

Description

gmdate(string $format, ?int $timestamp = null): string

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 timestamp est omis ou null. En d'autres termes, il vaut par défaut la valeur de la fonction time().

Valeurs de retour

Retourne une date formatée.

Historique

Version | Description
8.0.0 | timestamp est désormais nullable.

Exemples

Exemple #1 Exemple avec gmdate()

Lorsque cette fonction est exécutée en Finlande (GMT0200), 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

  • DateTimeImmutable::__construct() - Retourne un nouvel objet DateTimeImmutable
  • DateTimeInterface::format() - Retourne une date formatée suivant le format fourni
  • date() - Formate un horodatage Unix
  • mktime() - Retourne l'horodatage UNIX d'une date
  • gmmktime() - Retourne le timestamp UNIX d'une date GMT
  • IntlDateFormatter::format() - Formate la date et l'heure sous forme de chaîne


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, PHP 8)

gmmktime — Retourne le timestamp UNIX d'une date GMT

Description

gmmktime(
int $hour,
?int $minute = null,
?int $second = null,
?int $month = null,
?int $day = null,
?int $year = null
): int|false

Identique à la fonction mktime() excepté le fait que les paramètres optionnels 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.

Appeler gmmktime() sans arguments n'est pas supporté. Cela aura pour résultat de lancer une ArgumentCountError. time() peut être utilisé pour récupérer l'horodatage courant.

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

Valeurs de retour

Retourne un horodatage Unix, sous la forme d'un entier, ou false si l'horodatage ne rentre pas dans un entier PHP.

Historique

Version | Description
8.0.0 | hour n'est plus optionnel. Pour obtenir un horodatage unix, il faudra utiliser la fonction time().
8.0.0 | minute, second, month, day et year sont désormais nullable.

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

  • La classe DateTimeImmutable
  • mktime() - Retourne l'horodatage UNIX d'une date
  • date() - Formate un horodatage Unix
  • time() - Retourne l'horodatage 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, PHP 8)

gmstrftime — Formate une date/heure GMT/CUT en fonction de la configuration locale

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 8.1.0. Il est fortement recommandé de les éviter.

Les alternatives à cette fonction incluent :

  • gmdate()
  • IntlDateFormatter::format()

Description

gmstrftime(string $format, ?int $timestamp = null): string|false

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".

Avertissement

Cette fonction dépend des informations locales du système d'exploitation, qui peuvent être incohérentes ou ne pas être disponibles du tout. Utilisez plutôt la méthode IntlDateFormatter::format().

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 timestamp est omis ou null. 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(). En cas d'échec, false est retourné.

Historique

Version | Description
8.0.0 | timestamp est désormais nullable.

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

  • IntlDateFormatter::format() - Formate la date et l'heure sous forme de chaîne
  • DateTimeInterface::format() - Retourne une date formatée suivant le format fourni
  • strftime() - Formate une date/heure locale avec la configuration locale


Formate une partie de l'heure/date locale en tant qu'entier

  • « gmstrftime
  • localtime »
  • PHP Manual
  • Fonctions Date/Heure
  • Formate une partie de l'heure/date locale en tant qu'entier

idate

(PHP 5, PHP 7, PHP 8)

idate — Formate une partie de l'heure/date locale en tant qu'entier

Description

idate(string $format, ?int $timestamp = null): int|false

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
N | Jour de la semaine ISO-8601 (1 pour le lundi à 7 pour le dimanche)
o | Année ISO-8601 (4 chiffres)
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 timestamp est omis ou null. En d'autres termes, il vaut par défaut la valeur de la fonction time().

Valeurs de retour

Retourne un int en cas de succès, ou false si une erreur survient.

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 diagnostic de type E_WARNING si le fuseau horaire n'est pas valide. Voir aussi date_default_timezone_set()

Historique

Version | Description
8.2.0 | Ajoute les caractères de format N (jour de la semaine ISO-8601) et o (année ISO-8601).
8.0.0 | timestamp est désormais nullable.

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

  • DateTimeInterface::format() - Retourne une date formatée suivant le format fourni
  • date() - Formate un horodatage Unix
  • getdate() - Retourne la date/heure
  • time() - Retourne l'horodatage 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, PHP 8)

localtime — Récupère l'heure locale

Description

localtime(?int $timestamp = null, bool $associative = false): array

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 timestamp est omis ou null. En d'autres termes, il vaut par défaut la valeur de la fonction time().

associative

Détermine si la fonction doit retourner un tableau régulier, indexé numériquement, ou un tableau associatif.

Valeurs de retour

Si associative est définit à false ou pas fournit, alors le tableau est retourné comme un tableau indexé numériquement standard. Si associative est définit à true alors localtime() retourne un tableau associatif contenant les éléments de la structure retourné par l'appel de la fonction localtime de C Les 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 diagnostic de type E_WARNING si le fuseau horaire n'est pas valide. Voir aussi date_default_timezone_set()

Historique

Version | Description
8.0.0 | timestamp est désormais nullable.

Exemples

Exemple #1 Exemple avec localtime()

<?php
$localtime = localtime();
$localtime_assoc = localtime(time(), true);
print_r($localtime);
print_r($localtime_assoc);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

microtime — Retourne le timestamp UNIX actuel avec les microsecondes

Description

microtime(bool $as_float = false): string|float

microtime() retourne le timestamp Unix, avec les microsecondes. Cette fonction est uniquement disponible sur les systèmes qui supportent la fonction gettimeofday().

Pour mesurer les performances, l'utilisation de hrtime() est recommandé.

Liste de paramètres

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 sous forme de fraction décimale.

Si 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 en PHP

<?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 #2 Exemple avec microtime() et REQUEST_TIME_FLOAT

<?php
// Durée d'attente aléatoire
usleep(mt_rand(100, 10000));

// 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 l'horodatage UNIX actuel
  • hrtime() - Get the system's high resolution time


Retourne l'horodatage UNIX d'une date

  • « microtime
  • strftime »
  • PHP Manual
  • Fonctions Date/Heure
  • Retourne l'horodatage UNIX d'une date

mktime

(PHP 4, PHP 5, PHP 7, PHP 8)

mktime — Retourne l'horodatage UNIX d'une date

Description

mktime(
int $hour,
?int $minute = null,
?int $second = null,
?int $month = null,
?int $day = null,
?int $year = null
): int|false

mktime() retourne un horodatage UNIX correspondant aux arguments fournis. Cet horodatage 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 optionnels ou null peuvent être omis, de droite à gauche, et tous les arguments manquants sont utilisés avec la valeur courante de l'heure et du jour.

Avertissement

Veuillez noter que l'ordre des arguments est dans un ordre impair: month, day, year, et non dans l'ordre plus raisonnable que serait year, month, day.

Appeler mktime() sans arguments n'est pas supporté. Cela aura pour résultat de lancer une ArgumentCountError. time() peut être utilisé pour récupérer l'horodatage courant.

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 aux valeurs 2000 à 2069 et 70 à 100, correspondant aux valeurs 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.

Valeurs de retour

mktime() retourne un horodatage Unix des arguments donnés, ou false si l'horodatage ne rentre pas dans un entier PHP.

Historique

Version | Description
8.0.0 | hour n'est plus optionnel. Pour obtenir un horodatage unix, il faudra utiliser la fonction time().
8.0.0 | minute, second, month, day et year sont désormais nullable.

Exemples

Exemple #1 Exemple simple avec mktime()

<?php
// Configuration du fuseau horaire.
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);
?>

Voir aussi

  • DateTimeImmutable
  • checkdate() - Valide une date grégorienne
  • gmmktime() - Retourne le timestamp UNIX d'une date GMT
  • date() - Formate un horodatage Unix
  • time() - Retourne l'horodatage 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, PHP 8)

strftime — Formate une date/heure locale avec la configuration locale

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 8.1.0. Il est fortement recommandé de les éviter.

Les alternatives à cette fonction incluent :

  • date()
  • IntlDateFormatter::format()

Description

strftime(string $format, ?int $timestamp = null): string|false

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().

Avertissement

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. Utilisez plutôt la méthode IntlDateFormatter::format().

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 | L'heure 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. Le résultat exact dépend du système d'exploitation, et ils peuvent également renvoyer des variantes en minuscules, ou des variantes avec des points (comme a.m.).
%P | 'am' ou 'pm', en minuscule, basé sur l'heure fournie | Exemple : am pour 00:31, pm pour 22:23. Non pris en charge par tous les systèmes d'exploitation.
%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 ("%") ---

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

macOS et musl uniquement : Le modificateur %P n'est pas supporté par l'implémentation de cette fonction sous macOS.

timestamp

Le paramètre optionnel timestamp est un timestamp Unix de type entier qui vaut par défaut l'heure courante locale si timestamp est omis ou null. 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 diagnostic de type E_WARNING si le fuseau horaire n'est pas valide. 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
8.0.0 | timestamp est désormais nullable.

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";
}
?>

Résultat de l'exemple ci-dessus est 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

  • IntlDateFormatter::format() - Formate la date et l'heure sous forme de chaîne
  • DateTimeInterface::format() - Retourne une date formatée suivant le format fourni
  • » Outil de formatage strftime() en ligne
  • setlocale() - Modifie les informations de localisation
  • mktime() - Retourne l'horodatage 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, PHP 8)

strptime — Analyse une date générée par strftime()

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 8.1.0. Dépendre de cette fonction est fortement déconseillé.

Description

strptime(string $timestamp, string $format): array|false

strptime() retourne un tableau après avoir analysé timestamp, 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

timestamp (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 timestamp (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 timestamp qui n'a pas été reconnue par l'analyseur avec le format spécifié.

Historique

Version | Description
8.1.0 | Cette fonction a été rendue obsolète. Utiliser date_parse_from_format() à la place (pour de l'analyse indépendant à la locale), ou IntlDateFormatter::parse() (pour de l'analyse dépendant à la locale)

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));
?>

Résultat de l'exemple ci-dessus est 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 sur les plates-formes 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.

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.

Voir aussi

  • IntlDateFormatter::parse() - Analyse une chaîne vers un timestamp
  • DateTime::createFromFormat() - Analyse une heure au format texte selon le format spécifié.
  • 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


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, PHP 8)

strtotime — Transforme un texte anglais en timestamp

Description

strtotime(string $datetime, ?int $baseTimestamp = null): int|false

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 baseTimestamp, ou à la date courante si ce dernier est omis. L'analyse de la chaîne de date est définie dans les formats de date et d'heure et comporte plusieurs considérations subtiles. Il est fortement recommandé d'en examiner tous les détails.

Avertissement

L'horodatage Unix que cette fonction retourne ne contient pas d'information à propos des fuseaux horaires. Pour faire des calculs avec les informations de date/moment, vous devriez utiliser DateTimeImmutable qui est plus capable.

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

datetime

Une chaîne date/heure. Les formats valides sont expliqués dans la documentation sur les formats Date et Heure.

baseTimestamp

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.

Erreurs / Exceptions

Chaque appel à une fonction date/heure générera un diagnostic de type E_WARNING si le fuseau horaire n'est pas valide. Voir aussi date_default_timezone_set()

Historique

Version | Description
8.0.0 | baseTimestamp est désormais nullable.

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';

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:

Dans ce cas, la date "relative" signifie également que si un composant particulier de l'horodatage n'est pas fourni, il sera extrait textuellement de baseTimestamp. Autrement dit, strtotime('February'), s'il est exécuté le 31 mai 2022, sera interprété comme le 31 février 2022, qui débordera sur un horodatage le 3 mars. (Dans une année bissextile, ce serait le 2 mars.) L'utilisation de strtotime('1 February') ou strtotime('first day of February') éviterait ce problème.

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é).

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:

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().

Voir aussi

  • DateTimeImmutable
  • DateTimeImmutable::createFromFormat() - Analyse une heure au format texte selon le format spécifié.
  • Les formats sur les dates
  • checkdate() - Valide une date grégorienne
  • strptime() - Analyse une date générée par strftime


Retourne l'horodatage UNIX actuel

  • « strtotime
  • timezone_abbreviations_list »
  • PHP Manual
  • Fonctions Date/Heure
  • Retourne l'horodatage UNIX actuel

time

(PHP 4, PHP 5, PHP 7, PHP 8)

time — Retourne l'horodatage UNIX actuel

Description

time(): int

time() retourne l'heure courante, mesurée en secondes depuis le début de l'époque UNIX, (1er janvier 1970 00:00:00 GMT).

Note:

Les horodatages Unix ne contiennent aucune information concernant le fuseau horaire local. Il est recommandé d'utiliser la classe DateTimeImmutable pour manipuler les informations relatives à la date et à l'heure afin d'éviter les écueils liés aux seuls timestamps Unix.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'horodatage actuel.

Exemples

Exemple #1 Exemple avec time()

<?php
echo 'Aujourd\'hui : '. time();
?>

Résultat de l'exemple ci-dessus est similaire à :

Aujourd'hui : 1660338149

Notes

Astuce

Un horodatage représentant le début de la requête est disponible dans la variable $_SERVER['REQUEST_TIME'].

Voir aussi

  • DateTimeImmutable
  • date() - Formate un horodatage Unix
  • 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, PHP 8)

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, PHP 8)

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, PHP 8)

timezone_location_get — Alias de DateTimeZone::getLocation()

Description

Cette fonction est un alias de : DateTimeZone::getLocation()


Retourne le nom d'un fuseau horaire à partir de son abréviation et de son décalage UTC

  • « timezone_location_get
  • timezone_name_get »
  • PHP Manual
  • Fonctions Date/Heure
  • Retourne le nom d'un fuseau horaire à partir de son abréviation et de son décalage UTC

timezone_name_from_abbr

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

timezone_name_from_abbr — Retourne le nom d'un fuseau horaire à partir de son abréviation et de son décalage UTC

Description

timezone_name_from_abbr(string $abbr, int $utcOffset = -1, int $isDST = -1): string|false

Liste de paramètres

abbr

Abréviation du fuseau horaire.

utcOffset

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 utcOffset est supposé comprendre le décalage heure d'été /heure d'hiver; si 0 alors utcOffset 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 utcOffset 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";
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

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, PHP 8)

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, PHP 8)

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, PHP 8)

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
  • Erreurs et Exceptions Date/Heure »
  • PHP Manual
  • Fonctions Date/Heure
  • Lit la version de la timezonedb

timezone_version_get

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

timezone_version_get — Lit la version de la timezonedb

Description

timezone_version_get(): string

timezone_version_get() lit la version de la timezonedb.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères. au format YYYY.increment, tel que 2022.2.

Si vous avez une ancienne version de la base de données de fuseaux horaires (par exemple, elle n'affiche pas l'année en cours), vous pouvez mettre à jour les informations de fuseau horaire en mettant à jour votre version de PHP ou en installant le package PECL » timezonedb PECL package.

Certaines distributions Linux corrigent le support date/heure de PHP pour utiliser une source alternative pour les informations de fuseau horaire. Dans ce cas, cette fonction renverra 0.system. Vous êtes encouragé également à installer le package PECL » timezonedb dans ce cas.

Exemples

Exemple #1 Lecture de la version de la timezonedb

<?php
echo timezone_version_get();
?>

Résultat de l'exemple ci-dessus est similaire à :

2022.2

Voir aussi

  • Liste des fuseaux horaires valides


Erreurs et Exceptions Date/Heure

  • DateError (étend Error)
    • DateObjectError DateRangeError
  • DateException (étend Exception)
      • DateInvalidOperationException
      • DateInvalidTimezoneException
      • DateMalformedIntervalStringException
      • DateMalformedPeriodStringException
      • DateMalformedStringException


Formats supportés de temps et de dates

Cette section décrit, dans un format de type BNF, tous les formats différents que l'analyseur de DateTimeImmutable, DateTime, date_create_immutable(), date_create(), date_parse(), et strtotime() est capable de comprendre. Les formats sont groupés par sections. Dans la plupart des cas, les formats de sections différentes, séparé par des caractères d'espacement blanc, des virgules ou des points, peuvent être utilisés dans la même chaîne date/moment. 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).

Pour formatter des objets DateTimeImmutable et DateTime, veuillez vous référer à la documentation de la méthode DateTimeInterface::format().

Un ensemble de règles générales devrait être pris en compte.

  1. L'analyseur, permet à chaque unité (année, mois, jour, heure, minute, seconde) la plage entière de valeurs. Pour une année c'est juste 4 chiffres, pour un mois c'est 0-12, pour un jour 0-31 et pour l'heure et les minutes c'est 0-59.
  2. 60 est autorisé pour les secondes, car parfois des chaînes de dates avec cette seconde intercalaire apparaisse. Mais PHP implémente le temps Unix où "60" n'est pas un nombre de secondes valides et ainsi overflow.
  3. strtotime() returns false si un des nombres et en-dehors de la plage, et DateTimeImmutable::__construct() lance une exception.
  4. Si une chaîne contient une date, tous les éléments sont remis à 0.
  5. Tous les éléments de temps moins significatifs sont remis à 0 si n'importe quel élément d'un temps est présent dans la chaîne donnée.
  6. L'analyseur est idiot, et n'effectue pas de vérification pour le rendre plus rapide (et plus générique).
  7. Outre les règles applicables aux éléments temporels individuels, l'analyseur comprend également des formats composés plus spécifiques, tels que l'analyse des horodatages Unix (@1690388256) et des dates hebdomadaires ISO (2008-W28-3).

  8. Il y a une vérification additionnelle si une date invalide est fourni :

    <?php
    $res     = date_parse("2015-09-31");
    var_dump($res["warnings"]);
    ?>

    L'exemple ci-dessus va afficher :

    array(1) {
  [11] =>
  string(27) "The parsed date was invalid"
}

  9. Il est déjà possible de gérer c'est cas spéciaux, mais l'utilisation de It is already possible to handle the edge cases, but then you need to use DateTimeImmutable::createFromFormat() est requis en fournissant le format voulu.

    <?php
    $res     = DateTimeImmutable::createFromFormat("Y-m-d", "2015-09-34");
    var_dump($res);

    L'exemple ci-dessus va afficher :

    object(DateTimeImmutable)#1 (3) {
  ["date"] =>
  string(26) "2015-10-04 17:24:43.000000"
  ["timezone_type"] =>
  int(3)
  ["timezone"] =>
  string(13) "Europe/London"
}

Formats pour les temps (Time)

Cette page décrit les différents formats dans une syntaxe de type BNF
que les analyseurs de DateTimeImmutable,
DateTime, date_create(),
date_create_immutable(), et
strtotime() comprennent.

Pour formatter des objets DateTimeImmutable et DateTime, veuillez vous référer à la documentation de la méthode DateTimeInterface::format().

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", "07", "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) | 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 dans une syntaxe de type BNF
que les analyseurs de DateTimeImmutable,
DateTime, date_create(),
date_create_immutable(), et
strtotime() comprennent.

Pour formatter des objets DateTimeImmutable et DateTime, veuillez vous référer à la documentation de la méthode DateTimeInterface::format().

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"
YYY | [0-9]{5,19} | "81412", "20192"
Standards Formats
Description | Exemples
ATOM | "2022-06-02T16:58:35+00:00"
COOKIE | "Thursday, 02-Jun-2022 16:58:35 UTC"
ISO8601 | "2022-06-02T16:58:35+0000"
» RFC 822 | "Thu, 02 Jun 22 16:58:35 +0000"
» RFC 850 | "Thursday, 02-Jun-22 16:58:35 UTC"
» RFC 1036 | "Thu, 02 Jun 22 16:58:35 +0000"
» RFC 1123 | "Thu, 02 Jun 2022 16:58:35 +0000"
» RFC 2822 | "Thu, 02 Jun 2022 16:58:35 +0000"
» RFC 3339 | "2022-06-02T16:58:35+00:00"
» RFC 3339 Extended | "2022-06-02T16:58:35.698+00:00"
» RFC 7231 | "Thu, 02 Jun 2022 16:58:35 GMT"
RSS | "Thu, 02 Jun 2022 16:58:35 +0000"
W3C | "2022-06-02T16:58:35+00:00"
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.1978"
Jour, mois et année sur deux chiffres, avec des points ou des tabulations | dd [.\t] mm "." yy | "30.6.08", "22\t12.78"
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 | dd ([ .\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"
Année (développé, 5-19 chiffres avec signe) | [+-] YYY | "-81120", "+20192"
Mois textuel (et juste le mois) | m | "March", "jun", "DEC"
Notations ISO8601
Description | Format | Exemples
Année, mois et jour sur huit chiffres | 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"
Année à cinq chiffres avec le signe, le mois et le jour requis | [+-] YYY "-" MM "-" DD | "-81120-02-26", "+20192-04-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 précé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éjà été trouvée, sinon le format est reconnu comme HH MM.

Attention

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 à noter que la plage de jour est limitée à 0-31 comme indiqué par l'expression régulière ci-dessus. Ainsi, "2008-06-32" n'est pas une chaîne de date valide, par exemple.

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 transformée vers "-0001-11-30" (l'année -1 dans le calendrier ISO 8601, qui est 2 BC dans le calendrier Grégorien).

Formats composés

Cette page décrit les différents formats dans une syntaxe de type BNF que les analyseurs de
DateTimeImmutable, DateTime,
date_create(),
date_create_immutable(), et
strtotime() comprennent.

Pour formatter des objets DateTimeImmutable et DateTime, veuillez vous référer à la documentation de la méthode DateTimeInterface::format().

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", "07", "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])|60 | "04", "8", "59", "60" (seconde intercalaire)
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"
Unix Timestamp avec les microsecondes | "@" "-"? [0-9]+ "." [0-9]{0,6} | "@1607974647.503686"
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 dans une syntaxe de type BNF
que les analyseurs de DateTimeImmutable,
DateTime, date_create(),
date_create_immutable(), et
strtotime() comprennent.

Pour formatter des objets DateTimeImmutable et DateTime, veuillez vous référer à la documentation de la méthode DateTimeInterface::format().

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 | 'ms' | 'µs' | (( 'msec' | 'millisecond' | 'µsec' | 'microsecond' | 'usec' | '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 généralement préférable d'utiliser cette expression avec le nom du mois qui suit, car elle ne concerne que le mois en cours. | "first day of January 2008"
'last day of'? | Affecte le jour du dernier jour du mois courant. Il est généralement préférable d'utiliser cette expression avec le nom du mois qui suit, car elle ne concerne que le mois en cours. | "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"
(ordinal | reltext) space unit | Gère les éléments temporels relatifs dont la valeur est un texte. last et previous sont équivalents à -1, this à 0, et next à +1. | "fifth day", "second month", "last day", "previous year"
'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é.(Voir note) | "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.

Les mots clés tel que "first day of" dépendent du contexte dans laquelle la chaîne de format relative est utilisé. Si utilisé avec une méthode statique ou une fonction, le référent est l'horodatage actuel du système. Cependant, si utilisé dans DateTime::modify() ou DateTimeImmutable::modify(), le référent est l'objet sur lequel la méthode modify() est appelée.

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.

Note:

number est un nombre entier ; si un nombre décimal est donné, le point (ou la virgule) sera probablement interprété comme un délimiteur. Par exemple, '+1.5 hours' sera analysé en tant que '+1 5 hours', et non pas comme '+1 hour +30 minutes'.

Historique

Version | Description
8.2.0 | number n'accepte plus plusieurs signes, exemple +-2.
7.0.8 | Les semaines commencent toujours le lundi. Autrefois, le dimanche était également considéré pour commencer une semaine.


Liste des Fuseaux Horaires Supportés

Sommaire

  • Afrique
  • Amérique
  • 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 2024.1.


Afrique

Afrique
Africa/Abidjan | Africa/Accra | Africa/Addis_Ababa | Africa/Algiers
Africa/Asmara | 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/Tripoli | Africa/Tunis | Africa/Windhoek


Amérique

Amérique
America/Adak | America/Anchorage | America/Anguilla | America/Antigua
America/Araguaina | America/Argentina/Buenos_Aires | America/Argentina/Catamarca | 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/Bahia | America/Bahia_Banderas | America/Barbados | America/Belem
America/Belize | America/Blanc-Sablon | America/Boa_Vista | America/Bogota
America/Boise | America/Cambridge_Bay | America/Campo_Grande | America/Cancun
America/Caracas | America/Cayenne | America/Cayman | America/Chicago
America/Chihuahua | America/Ciudad_Juarez | 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/Fort_Nelson
America/Fortaleza | America/Glace_Bay | 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/Inuvik | America/Iqaluit | America/Jamaica | America/Juneau
America/Kentucky/Louisville | America/Kentucky/Monticello | America/Kralendijk | America/La_Paz
America/Lima | America/Los_Angeles | America/Lower_Princes | America/Maceio
America/Managua | America/Manaus | America/Marigot | America/Martinique
America/Matamoros | America/Mazatlan | America/Menominee | America/Merida
America/Metlakatla | America/Mexico_City | America/Miquelon | America/Moncton
America/Monterrey | America/Montevideo | America/Montserrat | America/Nassau
America/New_York | America/Nome | America/Noronha | America/North_Dakota/Beulah
America/North_Dakota/Center | America/North_Dakota/New_Salem | America/Nuuk | America/Ojinaga
America/Panama | America/Paramaribo | America/Phoenix | America/Port-au-Prince
America/Port_of_Spain | America/Porto_Velho | America/Puerto_Rico | America/Punta_Arenas
America/Rankin_Inlet | America/Recife | America/Regina | America/Resolute
America/Rio_Branco | America/Santarem | America/Santiago | America/Santo_Domingo
America/Sao_Paulo | America/Scoresbysund | 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/Tijuana | America/Toronto | America/Tortola | America/Vancouver
America/Whitehorse | America/Winnipeg | America/Yakutat |


Antarctique

Antarctique
Antarctica/Casey | Antarctica/Davis | Antarctica/DumontDUrville | Antarctica/Macquarie
Antarctica/Mawson | Antarctica/McMurdo | Antarctica/Palmer | Antarctica/Rothera
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/Atyrau
Asia/Baghdad | Asia/Bahrain | Asia/Baku | Asia/Bangkok
Asia/Barnaul | Asia/Beirut | Asia/Bishkek | Asia/Brunei
Asia/Chita | Asia/Choibalsan | Asia/Colombo | Asia/Damascus
Asia/Dhaka | Asia/Dili | Asia/Dubai | Asia/Dushanbe
Asia/Famagusta | Asia/Gaza | Asia/Hebron | Asia/Ho_Chi_Minh
Asia/Hong_Kong | Asia/Hovd | Asia/Irkutsk | Asia/Jakarta
Asia/Jayapura | Asia/Jerusalem | Asia/Kabul | Asia/Kamchatka
Asia/Karachi | Asia/Kathmandu | Asia/Khandyga | Asia/Kolkata
Asia/Krasnoyarsk | Asia/Kuala_Lumpur | Asia/Kuching | Asia/Kuwait
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/Qostanay | Asia/Qyzylorda
Asia/Riyadh | Asia/Sakhalin | Asia/Samarkand | Asia/Seoul
Asia/Shanghai | Asia/Singapore | Asia/Srednekolymsk | Asia/Taipei
Asia/Tashkent | Asia/Tbilisi | Asia/Tehran | Asia/Thimphu
Asia/Tokyo | Asia/Tomsk | Asia/Ulaanbaatar | Asia/Urumqi
Asia/Ust-Nera | Asia/Vientiane | Asia/Vladivostok | Asia/Yakutsk
Asia/Yangon | Asia/Yekaterinburg | Asia/Yerevan |


Atlantique

Atlantique
Atlantic/Azores | Atlantic/Bermuda | Atlantic/Canary | Atlantic/Cape_Verde
Atlantic/Faroe | Atlantic/Madeira | Atlantic/Reykjavik | Atlantic/South_Georgia
Atlantic/St_Helena | Atlantic/Stanley |  |


Australie

Australie
Australia/Adelaide | Australia/Brisbane | Australia/Broken_Hill | Australia/Darwin
Australia/Eucla | Australia/Hobart | Australia/Lindeman | Australia/Lord_Howe
Australia/Melbourne | Australia/Perth | Australia/Sydney |


Europe

Europe
Europe/Amsterdam | Europe/Andorra | Europe/Astrakhan | Europe/Athens
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/Kirov | Europe/Kyiv | Europe/Lisbon
Europe/Ljubljana | Europe/London | Europe/Luxembourg | Europe/Madrid
Europe/Malta | Europe/Mariehamn | Europe/Minsk | Europe/Monaco
Europe/Moscow | Europe/Oslo | Europe/Paris | Europe/Podgorica
Europe/Prague | Europe/Riga | Europe/Rome | Europe/Samara
Europe/San_Marino | Europe/Sarajevo | Europe/Saratov | Europe/Simferopol
Europe/Skopje | Europe/Sofia | Europe/Stockholm | Europe/Tallinn
Europe/Tirane | Europe/Ulyanovsk | Europe/Vaduz | Europe/Vatican
Europe/Vienna | Europe/Vilnius | Europe/Volgograd | Europe/Warsaw
Europe/Zagreb | 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/Fakaofo
Pacific/Fiji | Pacific/Funafuti | Pacific/Galapagos | Pacific/Gambier
Pacific/Guadalcanal | Pacific/Guam | Pacific/Honolulu | Pacific/Kanton
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/Port_Moresby | Pacific/Rarotonga
Pacific/Saipan | Pacific/Tahiti | Pacific/Tarawa | Pacific/Tongatapu
Pacific/Wake | Pacific/Wallis |  |


Autres

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. De plus, ces fuseaux horaires peuvent être supprimée de la base de donnée IANA de fuseaux horaire à tout moment.

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.

Autres
Africa/Asmera | Africa/Timbuktu | America/Argentina/ComodRivadavia | America/Atka
America/Buenos_Aires | America/Catamarca | America/Coral_Harbour | America/Cordoba
America/Ensenada | America/Fort_Wayne | America/Godthab | America/Indianapolis
America/Jujuy | America/Knox_IN | America/Louisville | America/Mendoza
America/Montreal | America/Nipigon | America/Pangnirtung | America/Porto_Acre
America/Rainy_River | America/Rosario | America/Santa_Isabel | America/Shiprock
America/Thunder_Bay | America/Virgin | America/Yellowknife | Antarctica/South_Pole
Asia/Ashkhabad | Asia/Calcutta | Asia/Chongqing | Asia/Chungking
Asia/Dacca | Asia/Harbin | Asia/Istanbul | Asia/Kashgar
Asia/Katmandu | Asia/Macao | Asia/Rangoon | Asia/Saigon
Asia/Tel_Aviv | Asia/Thimbu | Asia/Ujung_Pandang | Asia/Ulan_Bator
Atlantic/Faeroe | Atlantic/Jan_Mayen | Australia/ACT | Australia/Canberra
Australia/Currie | Australia/LHI | Australia/North | Australia/NSW
Australia/Queensland | Australia/South | Australia/Tasmania | Australia/Victoria
Australia/West | Australia/Yancowinna | Brazil/Acre | Brazil/DeNoronha
Brazil/East | Brazil/West | Canada/Atlantic | Canada/Central
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 | Europe/Belfast
Europe/Kiev | Europe/Nicosia | Europe/Tiraspol | Europe/Uzhgorod
Europe/Zaporozhye | 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 | Pacific/Enderbury
Pacific/Johnston | Pacific/Ponape | Pacific/Samoa | Pacific/Truk
Pacific/Yap | 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/Samoa | UTC
W-SU | WET | Zulu |


La classe DateError

(PHP 8 >= 8.3.0)

Introduction

Lancée quand la base de données des fuseaux horaires n'est pas trouvée, ou contient des données invalides.

Cette erreur ne devrait jamais se produire, et ne dépend pas du code. Il y a deux exceptions enfants (DateObjectError et DateRangeError) qui sont lancées en fonction des erreurs du développeur ou des problèmes de plage.

Synopsis de la classe

class DateError extends Error {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}

Voir aussi

  • DateObjectError
  • DateRangeError


La classe DateObjectError

(PHP 8 >= 8.3.0)

Introduction

Lancée lorsqu'une des classes Date/Heure n'a pas été correctement initialisée.

Parce que les classes Date/Heure ne sont pas finales, ces classes peuvent être héritées. Quand le constructeur parent n'est pas appelé, cette erreur est lancée. C'est toujours une erreur de programmation.

Synopsis de la classe

class DateObjectError extends DateError {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}

Voir aussi

  • DateError
  • DateRangeError


La classe DateRangeError

(PHP 8 >= 8.3.0)

Introduction

Lancée par DateTime::getTimestamp(), DateTimeImmutable::getTimestamp(), et date_timestamp_get(), sur les plateformes 32 bits si l'objet date représente une date en dehors de la plage signée 32 bits.

Synopsis de la classe

class DateRangeError extends DateError {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}

Voir aussi

  • DateError
  • DateObjectError


La classe DateException

(PHP 8 >= 8.3.0)

Introduction

Classe parente de toutes les exceptions Date/Time, pour les problèmes qui sont liés aux entrées utilisateur, ou aux arguments textuels libres qui doivent être analysés.

Les exceptions enfants suivantes sont lancées par l'extension :

  • DateInvalidOperationException
  • DateInvalidTimezoneException
  • DateMalformedIntervalStringException
  • DateMalformedPeriodStringException
  • DateMalformedStringException

Synopsis de la classe

class DateException extends Exception {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


La classe DateInvalidOperationException

(PHP 8 >= 8.3.0)

Introduction

Lancée par DateTimeImmutable::sub() et DateTime::sub() lorsqu'une operation non supportée est tentée.

Un exemple d'opération non supportée est l'utilisation d'un objet DateInterval représentant des spécifications de temps tel que next weekday, car aucune déclaration logique inversée ne peut être construite.

Synopsis de la classe

class DateInvalidOperationException extends DateException {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


La classe DateInvalidTimeZoneException

(PHP 8 >= 8.3.0)

Introduction

Lancée lorsqu'une valeur incorrecte est passée à DateTimeZone::__construct().

Synopsis de la classe

class DateInvalidTimeZoneException extends DateException {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


La classe DateMalformedIntervalStringException

(PHP 8 >= 8.3.0)

Introduction

Lancée lorsqu'un argument duration invalide est passé à DateInterval::__construct().

Synopsis de la classe

class DateMalformedIntervalStringException extends DateException {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


La classe DateMalformedPeriodStringException

(PHP 8 >= 8.3.0)

Introduction

Lancée lorqu'un argument isostr invalide est passé à DatePeriod::__construct().

Synopsis de la classe

class DateMalformedPeriodStringException extends DateException {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


La classe DateMalformedStringException

(PHP 8 >= 8.3.0)

Introduction

Lancée lorsqu'une chaîne de Date/Heure invalide est détectée.

Cela peut être une valeur passée à
DateTimeImmutable::__construct(),
DateTimeImmutable::modify(),
DateTime::__construct(), ou
DateTime::modify().

Synopsis de la classe

class DateMalformedStringException extends DateException {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Gestion du temps à haute résolution

  • Introduction
  • Installation/Configuration
    • Installation
  • Exemples
    • Utilisation simple
  • HRTime\PerformanceCounter — La classe HRTime\PerformanceCounter
    • HRTime\PerformanceCounter::getFrequency — Fréquence du timer en ticks par seconde
    • HRTime\PerformanceCounter::getTicks — Ticks courrant depuis le système
    • HRTime\PerformanceCounter::getTicksSince — Ticks écoulés depuis la valeur fournie
  • HRTime\StopWatch — La classe HRTime\StopWatch
    • HRTime\StopWatch::getElapsedTicks — Récupère les ticks écoulés pour toutes les intervalles
    • HRTime\StopWatch::getElapsedTime — Récupère le temps écoulé pour tous les intervalles
    • HRTime\StopWatch::getLastElapsedTicks — Récupère les ticks écoulés pour la dernière intervalle
    • HRTime\StopWatch::getLastElapsedTime — Récupère le temps écoulé pour la dernière intervalle
    • HRTime\StopWatch::isRunning — Vérifie si la mesure du temps est en cours
    • HRTime\StopWatch::start — Démarre la mesure du temps
    • HRTime\StopWatch::stop — Arrête la mesure du temps
  • 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 chronomètre personnalisé en utilisant les ticks de bas niveau, délivrés par les APIs sous-jacentes.

Note: À partir de PHP 7.3.0 la fonction relié hrtime() fait partie du cœur.


  • « 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 : » https://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 basique 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

class HRTime\PerformanceCounter {
/* Méthodes */
public static getFrequency(): int
public static getTicks(): int
public static getTicksSince(int $start): int
}

Sommaire

  • HRTime\PerformanceCounter::getFrequency — Fréquence du timer en ticks par seconde
  • HRTime\PerformanceCounter::getTicks — Ticks courrant depuis le système
  • HRTime\PerformanceCounter::getTicksSince — Ticks écoulés depuis la valeur fournie


Fréquence du timer en ticks par seconde

  • « HRTime\PerformanceCounter
  • HRTime\PerformanceCounter::getTicks »
  • PHP Manual
  • HRTime\PerformanceCounter
  • Fréquence du timer en ticks par seconde

HRTime\PerformanceCounter::getFrequency

(PECL hrtime >= 0.4.3)

HRTime\PerformanceCounter::getFrequency — Fréquence du timer en ticks par seconde

Description

public static HRTime\PerformanceCounter::getFrequency(): int

Retourne la fréquence du timer en ticks par seconde. Cette valeur est constante après le démarrage du système sur la plupart des systèmes d'exploitations.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier indiquant la fréquence du timer.


Ticks courrant depuis le système

  • « HRTime\PerformanceCounter::getFrequency
  • HRTime\PerformanceCounter::getTicksSince »
  • PHP Manual
  • HRTime\PerformanceCounter
  • Ticks courrant depuis le système

HRTime\PerformanceCounter::getTicks

(PECL hrtime >= 0.6.0)

HRTime\PerformanceCounter::getTicks — Ticks courrant depuis le système

Description

public static HRTime\PerformanceCounter::getTicks(): int

Retourne le compte de ticks.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier indiquant le compte de ticks.


Ticks écoulés depuis la valeur fournie

  • « HRTime\PerformanceCounter::getTicks
  • HRTime\StopWatch »
  • PHP Manual
  • HRTime\PerformanceCounter
  • Ticks écoulés depuis la valeur fournie

HRTime\PerformanceCounter::getTicksSince

(PECL hrtime >= 0.6.0)

HRTime\PerformanceCounter::getTicksSince — Ticks écoulés depuis la valeur fournie

Description

public static HRTime\PerformanceCounter::getTicksSince(int $start): int

Retourne le compte de ticks écoulés depuis la valeur de départ fournie.

Liste de paramètres

start

Valeur de ticks de départ.

Valeurs de retour

Retourne un entier indiquant le compte de ticks.


La classe HRTime\StopWatch

(PECL hrtime >= 0.4.3)

Introduction

Synopsis de la classe

class HRTime\StopWatch extends HRTime\PerformanceCounter {
/* Méthodes */
public getElapsedTicks(): int
public getElapsedTime(int $unit = ?): float
public getLastElapsedTicks(): int
public getLastElapsedTime(int $unit = ?): float
public isRunning(): bool
public start(): void
public stop(): void
/* Méthodes héritées */
public static HRTime\PerformanceCounter::getFrequency(): int
public static HRTime\PerformanceCounter::getTicks(): int
public static HRTime\PerformanceCounter::getTicksSince(int $start): int
}

Sommaire

  • HRTime\StopWatch::getElapsedTicks — Récupère les ticks écoulés pour toutes les intervalles
  • HRTime\StopWatch::getElapsedTime — Récupère le temps écoulé pour tous les intervalles
  • HRTime\StopWatch::getLastElapsedTicks — Récupère les ticks écoulés pour la dernière intervalle
  • HRTime\StopWatch::getLastElapsedTime — Récupère le temps écoulé pour la dernière intervalle
  • HRTime\StopWatch::isRunning — Vérifie si la mesure du temps est en cours
  • HRTime\StopWatch::start — Démarre la mesure du temps
  • HRTime\StopWatch::stop — Arrête la mesure du temps


Récupère les ticks écoulés pour toutes les intervalles

  • « HRTime\StopWatch
  • HRTime\StopWatch::getElapsedTime »
  • PHP Manual
  • HRTime\StopWatch
  • Récupère les ticks écoulés pour toutes les intervalles

HRTime\StopWatch::getElapsedTicks

(PECL hrtime >= 0.4.3)

HRTime\StopWatch::getElapsedTicks — Récupère les ticks écoulés pour toutes les intervalles

Description

public HRTime\StopWatch::getElapsedTicks(): int

Récupère les ticks écoulés pour toutes les intervalles fermées précedentes.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier indiquant les ticks écoulés.


Récupère le temps écoulé pour tous les intervalles

  • « HRTime\StopWatch::getElapsedTicks
  • HRTime\StopWatch::getLastElapsedTicks »
  • 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 HRTime\StopWatch::getElapsedTime(int $unit = ?): float

Récupère le temps écoulé pour toutes les intervalles précédentes 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 les ticks écoulés pour la dernière intervalle

  • « HRTime\StopWatch::getElapsedTime
  • HRTime\StopWatch::getLastElapsedTime »
  • PHP Manual
  • HRTime\StopWatch
  • Récupère les ticks écoulés pour la dernière intervalle

HRTime\StopWatch::getLastElapsedTicks

(PECL hrtime >= 0.4.3)

HRTime\StopWatch::getLastElapsedTicks — Récupère les ticks écoulés pour la dernière intervalle

Description

public HRTime\StopWatch::getLastElapsedTicks(): int

Récupère les ticks écoulés pour la dernière intervalle fermé.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier indiquant les ticks écoulés.


Récupère le temps écoulé pour la dernière intervalle

  • « HRTime\StopWatch::getLastElapsedTicks
  • HRTime\StopWatch::isRunning »
  • PHP Manual
  • HRTime\StopWatch
  • Récupère le temps écoulé pour la dernière intervalle

HRTime\StopWatch::getLastElapsedTime

(PECL hrtime >= 0.4.3)

HRTime\StopWatch::getLastElapsedTime — Récupère le temps écoulé pour la dernière intervalle

Description

public HRTime\StopWatch::getLastElapsedTime(int $unit = ?): float

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é.


Vérifie si la mesure du temps est en cours

  • « HRTime\StopWatch::getLastElapsedTime
  • HRTime\StopWatch::start »
  • PHP Manual
  • HRTime\StopWatch
  • Vérifie si la mesure du temps est en cours

HRTime\StopWatch::isRunning

(PECL hrtime >= 0.4.3)

HRTime\StopWatch::isRunning — Vérifie si la mesure du temps est en cours

Description

public HRTime\StopWatch::isRunning(): bool

Vérifie si la mesure du temps a été démarré.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un booléen indiquant si la mesure du temps est en cours.


Démarre la mesure du temps

  • « HRTime\StopWatch::isRunning
  • HRTime\StopWatch::stop »
  • PHP Manual
  • HRTime\StopWatch
  • Démarre la mesure du temps

HRTime\StopWatch::start

(PECL hrtime >= 0.4.3)

HRTime\StopWatch::start — Démarre la mesure du temps

Description

public HRTime\StopWatch::start(): void

Démarre la mesure du temps. Cette méthode n'a aucun effet si la mesure du a déjà été démarré. La mesure va continuer si elle a été arrêté précedement.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne void.


Arrête la mesure du temps

  • « HRTime\StopWatch::start
  • HRTime\Unit »
  • PHP Manual
  • HRTime\StopWatch
  • Arrête la mesure du temps

HRTime\StopWatch::stop

(PECL hrtime >= 0.4.3)

HRTime\StopWatch::stop — Arrête la mesure du temps

Description

public HRTime\StopWatch::stop(): void

Arrête 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\Unit

(PECL hrtime >= 0.4.3)

Introduction

Synopsis de la classe

class HRTime\Unit {
/* Constantes */
const int SECOND = 0;
const int MILLISECOND = 1;
const int MICROSECOND = 2;
const int 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
  • 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 supporte les fonctions Direct IO, telles que décrites 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 standard de système de fichiers sont plus adéquates.


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 : » https://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 (int)

F_GETFD (int)

F_GETFL (int)

F_GETLK (int)

F_GETOWN (int)

F_RDLCK (int)

F_SETFL (int)

F_SETLK (int)

F_SETLKW (int)

F_SETOWN (int)

F_UNLCK (int)

F_WRLCK (int)

O_APPEND (int)

O_ASYNC (int)

O_CREAT (int)

O_EXCL (int)

O_NDELAY (int)

O_NOCTTY (int)

O_NONBLOCK (int)

O_RDONLY (int)

O_RDWR (int)

O_SYNC (int)

O_TRUNC (int)

O_WRONLY (int)

S_IRGRP (int)

S_IROTH (int)

S_IRUSR (int)

S_IRWXG (int)

S_IRWXO (int)

S_IRWXU (int)

S_IWGRP (int)

S_IWOTH (int)

S_IWUSR (int)

S_IXGRP (int)

S_IXOTH (int)

S_IXUSR (int)


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.1.0)

dio_close — Ferme l'accès au fichier

Description

dio_close(resource $fd): void

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.1.0)

dio_fcntl — Exécute une fonction fichier de langage C

Description

dio_fcntl(resource $fd, int $cmd, mixed $args = ?): mixed

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-dessous) 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 sur les plates-formes 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.1.0)

dio_open — Ouvre un nouveau fichier avec les permissions spécifiées

Description

dio_open(string $filename, int $flags, int $mode = 0): resource

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.1.0)

dio_read — Lit les octets dans un fichier

Description

dio_read(resource $fd, int $len = 1024): string

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.1.0)

dio_seek — Déplace le pointeur interne de fichier

Description

dio_seek(resource $fd, int $pos, int $whence = SEEK_SET): int

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.1.0)

dio_stat — Lit des informations sur le fichier

Description

dio_stat(resource $fd): array

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.1.0)

dio_tcsetattr — Modifie les attributs du terminal et le taux de baud du port série

Description

dio_tcsetattr(resource $fd, array $options): bool

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 sur les plates-formes 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.1.0)

dio_truncate — Tronque un fichier

Description

dio_truncate(resource $fd, int $offset): bool

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 sur les plates-formes 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.1.0)

dio_write — Écrit des données dans le fichier avec la possibilité de tronquer sa longueur

Description

dio_write(resource $fd, string $data, int $len = 0): int

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

DIRECTORY_SEPARATOR (string)
PATH_SEPARATOR (string)
Un point-virgule sous Windows, deux points (:) sinon.


La classe Directory

(PHP 4, PHP 5, PHP 7, PHP 8)

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

class Directory {
/* Propriétés */
public readonly string $path;
public readonly resource $handle;
/* Méthodes */
public close(): void
public read(): string|false
public rewind(): void
}

Propriétés

path

Le dossier à ouvrir.

handle

Peut être utilisé avec d'autres fonctions relatives aux
dossiers, comme readdir(),
rewinddir() et
closedir().

Historique

Version | Description
8.1.0 | Les propriétés path et handle sont désormais en lecture seule.

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, PHP 8)

Directory::close — Ferme le gestionnaire de dossier

Description

public Directory::close(): void

Historique

Version | Description
8.0.0 | Aucun paramètre est accepté. Auparavant, un gestionnaire de dossier pouvait être passé comme argument.


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, PHP 8)

Directory::read — Lit une entrée depuis le gestionnaire de dossier

Description

public Directory::read(): string|false

Historique

Version | Description
8.0.0 | Aucun paramètre est accepté. Auparavant, un gestionnaire de dossier pouvait être passé comme argument.


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, PHP 8)

Directory::rewind — Réinitialise le gestionnaire de dossier

Description

public Directory::rewind(): void

Historique

Version | Description
8.0.0 | Aucun paramètre est accepté. Auparavant, un gestionnaire de dossier pouvait être passé comme argument.


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, PHP 8)

chdir — Change de dossier

Description

chdir(string $directory): bool

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

Attention

Si l'interpréteur PHP a été compilé avec ZTS d'activé (Zend Thread Safety), tous les changements du dossier courant réalisés via la fonction chdir() sera invisible du système opérant. Toutes les fonctions internes de PHP continueront à respecter le changement de dossier courant ; mais tous les appels aux fonctions des bibliothèques externes via FFI ne le respecteront pas. Vous pouvez vérifier si votre copie de PHP a été compilé avec l'activiation de ZTS en utilisant php -i ou en utilisant la constante interne PHP_ZTS.

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, PHP 8)

chroot — Change le dossier racine

Description

chroot(string $directory): bool

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.

Appeler cette fonction ne change pas la valeur des constantes magiques __DIR__ et __FILE__.

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 sur les plates-formes Windows.

Note: Cette fonction n'est pas disponible dans les interpréteurs PHP compilé avec ZTS (Zend Thread Safety) d'activé. Pour vérifier si votre copie de PHP a été compilé avec ZTS d'activé, utiliser php -i ou tester la constante incluse PHP_ZTS.


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, PHP 8)

closedir — Ferme le pointeur sur le dossier

Description

closedir(?resource $dir_handle = null): void

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().

Valeurs de retour

Aucune valeur n'est retournée.

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, PHP 8)

dir — Retourne une instance de la classe Directory

Description

dir(string $directory, ?resource $context = null): Directory|false

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: Une resource de contexte de flux.

Valeurs de retour

Retourne une instance de la classe Directory en cas de succès, ou false en cas d'erreur.

Historique

Version | Description
8.0.0 | context is now nullable.

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();
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

getcwd — Retourne le dossier de travail courant

Description

getcwd(): string|false

Retourne le dossier de travail courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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";

?>

Résultat de l'exemple ci-dessus est similaire à :

/home/didou
/home/didou/cvs

Notes

Attention

Si l'interpréteur PHP a été compilé avec ZTS d'activé (Zend Thread Safety), le dossier courant de travail, retourné par la fonction getcwd() peut être différent de celui retourné par les interfaces systèmes. Les bibliothèques externes (appelées via FFI), dont dépendent le dossier courant de travail, seront affectées.

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, PHP 8)

opendir — Ouvre un dossier, et récupère un pointeur dessus

Description

opendir(string $directory, ?resource $context = null): resource|false

opendir() retourne un pointeur sur un dossier qui pour être utilisé avec les fonctions closedir(), readdir() et rewinddir().

Liste de paramètres

directory

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 si une erreur survient

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Ceci peut se produire si directory n'est pas un dossier valide, le dossier ne peut être ouvert pour des raisons de permissions, ou à cause d'erreurs liées au système de fichiers.

Historique

Version | Description
8.0.0 | context is now nullable.

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);
}
}
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

readdir — Lit une entrée du dossier

Description

readdir(?resource $dir_handle = null): string|false

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.

Historique

Version | Description
8.0.0 | dir_handle est désormais nullable.

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, PHP 8)

rewinddir — Retourne à la première entrée du dossier

Description

rewinddir(?resource $dir_handle = null): void

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.

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version | Description
8.0.0 | context is now nullable.


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, PHP 8)

scandir — Liste les fichiers et dossiers dans un dossier

Description

scandir(string $directory, int $sorting_order = SCANDIR_SORT_ASCENDING, ?resource $context = null): array|false

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
8.0.0 | context est désormais nullable.

Exemples

Exemple #1 Un simple exemple avec scandir()

<?php
$dir = '/tmp';
$files1 = scandir($dir);
$files2 = scandir($dir, SCANDIR_SORT_DESCENDING);

print_r($files1);
print_r($files2);
?>

Résultat de l'exemple ci-dessus est 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 les variables prédéfinies qu'elles fournissent.

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 en ordre croissant


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 instance finfo
    • finfo_file — Retourne des informations à propos d'un fichier
    • finfo_open — Crée une nouvelle instance finfo
    • 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 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

Cette extension est activée par défaut.

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.


Types de ressources

Antérieur à PHP 8.1.0, il y a une ressource utilisée dans 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 (int)
Aucun traitement spécial.
FILEINFO_SYMLINK (int)
Suit les symlinks.
FILEINFO_MIME_TYPE (int)
Retourne le type mime.
FILEINFO_MIME_ENCODING (int)
Retourne l'encodage mime du fichier.
FILEINFO_MIME (int)
Retourne le type mime et l'encodage mime, tel que décrit par la RFC 2045.
FILEINFO_COMPRESS (int)
Décompresse les fichiers compressés. Désactivé en raison des conséquences sur la sécurité des threads.
FILEINFO_DEVICES (int)
Regarde les contenus des blocs ou les dispositifs spéciaux de caractères.
FILEINFO_CONTINUE (int)
Retourne toutes les données trouvées, pas seulement la première.
FILEINFO_PRESERVE_ATIME (int)
Si possible, conserve le temps d'accès au fichier original.
FILEINFO_RAW (int)
Ne traduit pas les caractères non imprimables en représentation octale \ooo.
FILEINFO_EXTENSION (int)
Retourne l'extension de fichier approprié pour un type MIME détecté dans le fichier. Pour les types qui ont généralement plusieurs extensions de fichier, telles que les images JPEG, la valeur de retour est plusieurs extensions séparées par une barre oblique, par exemple : "jpeg/jpg/jpe/jfif". Pour les types inconnus non disponibles dans la base de données magic.mime, la valeur de retour est "???". Disponible à partir de PHP 7.2.0.


Fonctions Fileinfo

Sommaire

  • finfo_buffer — Retourne des informations à propos d'une chaîne de caractères tampon
  • finfo_close — Ferme une instance finfo
  • finfo_file — Retourne des informations à propos d'un fichier
  • finfo_open — Crée une nouvelle instance finfo
  • 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, PHP 8, 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

finfo_buffer(
finfo $finfo,
string $string,
int $flags = FILEINFO_NONE,
?resource $context = null
): string|false

Style orienté objet

public finfo::buffer(string $string, int $flags = FILEINFO_NONE, ?resource $context = null): string|false

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

Une instance finfo, retourné par finfo_open().

string

Contenu d'un fichier à être vérifié.

flags

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.

Historique

Version | Description
8.1.0 | La paramètre finfo attend désormais une instance de finfo ; auparavant, une ressource était attendu.
8.0.0 | context est désormais nullable.

Exemples

Exemple #1 Exemple avec finfo_buffer()

<?php
$finfo = new finfo(FILEINFO_MIME);
echo $finfo->buffer($_POST["script"]) . "\n";
?>

Résultat de l'exemple ci-dessus est similaire à :

application/x-sh; charset=us-ascii

Voir aussi

  • finfo_file() - Alias de finfo_file()


Ferme une instance finfo

  • « finfo_buffer
  • finfo_file »
  • PHP Manual
  • Fonctions Fileinfo
  • Ferme une instance finfo

finfo_close

(PHP >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

finfo_close — Ferme une instance finfo

Description

finfo_close(finfo $finfo): bool

Cette fonction ferme l'instance ouverte par finfo_open().

Liste de paramètres

finfo

Une instance finfo, retourné par finfo_open().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | La paramètre finfo attend désormais une instance de finfo ; auparavant, une ressource était attendu.


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, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

finfo_file -- finfo::file — Retourne des informations à propos d'un fichier

Description

Style procédural

finfo_file(
finfo $finfo,
string $filename,
int $flags = FILEINFO_NONE,
?resource $context = null
): string|false

Style orienté objet

public finfo::file(string $filename, int $flags = FILEINFO_NONE, ?resource $context = null): string|false

Cette fonction est utilisée pour récupérer des informations à propos d'un fichier.

Liste de paramètres

finfo

Une instance finfo, retourné par finfo_open().

filename

Nom d'un fichier à vérifier.

flags

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 filename ou false si une erreur s'est produite.

Historique

Version | Description
8.1.0 | La paramètre finfo attend désormais une instance de finfo ; auparavant, une ressource était attendu.
8.0.0 | context est désormais nullable.

Exemples

Exemple #1 Exemple avec finfo_file()

<?php
$finfo = finfo_open(FILEINFO_MIME_TYPE); // Retourne le type mime autrement appelé extension mimetype
foreach (glob("*") as $filename) {
echo finfo_file($finfo, $filename) . "\n";
}
finfo_close($finfo);
?>

Résultat de l'exemple ci-dessus est similaire à :

text/html
image/gif
application/vnd.ms-excel

Voir aussi

  • finfo_buffer() - Alias de finfo_buffer()


Crée une nouvelle instance finfo

  • « finfo_file
  • finfo_set_flags »
  • PHP Manual
  • Fonctions Fileinfo
  • Crée une nouvelle instance finfo

finfo_open

finfo::__construct

(PHP >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

finfo_open -- finfo::__construct — Crée une nouvelle instance finfo

Description

Style procédural

finfo_open(int $flags = FILEINFO_NONE, ?string $magic_database = null): finfo|false

Style orienté objet (constructor):

public finfo::__construct(int $flags = FILEINFO_NONE, ?string $magic_database = null)

Cette fonction ouvre une base de données magique et retourne son instance.

Liste de paramètres

flags

Une ou une union de plusieurs constantes Fileinfo.

magic_database

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 instance de finfo en cas de succès, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Retourne désormais une instance de finfo ; auparavant, une ressource était attendu.
8.0.3 | magic_database est désormais nullable.

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

Notes

Note:

Généralement, l'utilisation de la base de données magique embarquée (en laissant les variables d'environnement magic_database 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.

Voir aussi

  • finfo_close() - Ferme une instance finfo


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, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

finfo_set_flags -- finfo::set_flags — Fixe des options de configuration libmagic

Description

Style procédural

finfo_set_flags(finfo $finfo, int $flags): bool

Style orienté objet

public finfo::set_flags(int $flags): bool

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

Une instance finfo, retourné par finfo_open().

flags

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.

Historique

Version | Description
8.1.0 | La paramètre finfo attend désormais une instance de finfo ; auparavant, une ressource était attendu.


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, PHP 8)

mime_content_type — Détecte le type de contenu d'un fichier

Description

mime_content_type(resource|string $filename): string|false

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, ou false si une erreur survient.

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

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, PHP 8, PECL fileinfo >= 0.1.0)

Introduction

Cette classe fournit une interface orientée objet aux fonctions fileinfo.

Synopsis de la classe

class finfo {
/* Méthodes */
public __construct(int $flags = FILEINFO_NONE, ?string $magic_database = null)
public buffer(string $string, int $flags = FILEINFO_NONE, ?resource $context = null): string|false
public file(string $filename, int $flags = FILEINFO_NONE, ?resource $context = null): string|false
public set_flags(int $flags): bool
}

Sommaire

  • finfo::buffer — Alias de finfo_buffer()
  • finfo::__construct — Alias 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, PHP 8, PECL fileinfo >= 0.1.0)

finfo::buffer — Alias de finfo_buffer()

Description

public finfo::buffer(string $string, int $flags = FILEINFO_NONE, ?resource $context = null): string|false

Cette fonction est un alias de : finfo_buffer()


Alias de finfo_open

  • « finfo::buffer
  • finfo::file »
  • PHP Manual
  • finfo
  • Alias de finfo_open

finfo::__construct

(PHP >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

finfo::__construct — Alias de finfo_open()

Description

public finfo::__construct(int $flags = FILEINFO_NONE, ?string $magic_database = null)

Cette fonction est un alias de : finfo_open()

Historique

Version | Description
8.0.3 | magic_database est désormais nullable.


Alias de finfo_file()

  • « finfo::__construct
  • finfo::set_flags »
  • PHP Manual
  • finfo
  • Alias de finfo_file()

finfo::file

(PHP >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

finfo::file — Alias de finfo_file()

Description

public finfo::file(string $filename, int $flags = FILEINFO_NONE, ?resource $context = null): string|false

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, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

finfo::set_flags — Alias de finfo_set_flags()

Description

public finfo::set_flags(int $flags): bool

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
    • fdatasync — Synchronise les données (mais pas les métadonnées) avec le 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 à partir de l'emplacement du pointeur sur 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 des données 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
    • fsync — Synchronise les modifications apportées au fichier (y compris les métadonnées)
    • 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 — Supprime 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" | INI_ALL |
allow_url_include | "0" | INI_SYSTEM | Obsolète à partir de PHP 7.4.0.
user_agent | NULL | INI_ALL |
default_socket_timeout | "60" | INI_ALL |
from | "" | INI_ALL |
auto_detect_line_endings | "0" | INI_ALL | Obsolète à partir de PHP 8.1.0.
sys_temp_dir | "" | INI_SYSTEM |
Pour plus de détails sur les modes 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

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.

allow_url_include bool

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 int

Durée d'expiration (en secondes) pour les flots basés sur les sockets. Spécifier une valeur négative signifie une durée d'expiration infinie.

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

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é.

sys_temp_dir string


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 (int)
GLOB_ONLYDIR (int)
SEEK_END (int)
LOCK_SH (int)
LOCK_EX (int)
LOCK_UN (int)
LOCK_NB (int)
GLOB_BRACE (int)
Étend {a,b,c} pour correspondre à 'a', 'b' ou 'c'

Note: GLOB_BRACE n'est pas disponible sur certains systèmes non-GNU, comme Solaris ou Alpine Linux.

GLOB_ERR (int)
Arrête en cas d'erreurs de lecture (comme les répertoires illisibles), par défaut, les erreurs sont ignorées.
GLOB_ONLYDIR (int)
Retourne uniquement les entrées de répertoire qui correspondent au motif.
GLOB_MARK (int)
Ajoute une barre oblique (un antislash sur Windows) à chaque répertoire retourné.
GLOB_NOSORT (int)
Renvoie les fichiers tels qu'ils apparaissent dans le répertoire (sans tri). Lorsque ce drapeau n'est pas utilisé, les noms de chemin sont triés par ordre alphabétique.
GLOB_NOCHECK (int)
Renvoie le motif de recherche s'il n'y a pas de fichiers correspondants.
GLOB_NOESCAPE (int)
Les antislash ne mettent pas en échappement les métacaractères.
GLOB_AVAILABLE_FLAGS (int)
Tous les drapeaux GLOB_* combinés. Équivalent à 0 | GLOB_BRACE | GLOB_MARK | GLOB_NOSORT | GLOB_NOCHECK | GLOB_NOESCAPE | GLOB_ERR | GLOB_ONLYDIR
PATHINFO_DIRNAME (int)
PATHINFO_BASENAME (int)
PATHINFO_EXTENSION (int)
PATHINFO_FILENAME (int)
FILE_USE_INCLUDE_PATH (int)
Cherche filename dans include_path.
FILE_NO_DEFAULT_CONTEXT (int)
FILE_APPEND (int)
Ajoute du contenu dans un fichier existant.
FILE_IGNORE_NEW_LINES (int)
Enlève les caractères EOL.
FILE_SKIP_EMPTY_LINES (int)
Enlève les lignes vides.
FILE_BINARY (int)

Mode binaire.

Note:

Cette constante n'a aucun effet et n'est présente que pour assurer une compatibilité ascendante.

FILE_TEXT (int)

Mode texte.

Note:

Cette constante n'a aucun effet et n'est présente que pour assurer une compatibilité ascendante.

INI_SCANNER_NORMAL (int)
Mode d'analyse normale des directives INI.
INI_SCANNER_RAW (int)
Mode d'analyse brut des directives INI.
INI_SCANNER_TYPED (int)
Mode scanner typé INI.
FNM_NOESCAPE (int)
Désactive la protection des antislash.
FNM_PATHNAME (int)
Un slash dans la chaîne ne correspond qu'au slash final du motif.
FNM_PERIOD (int)
Le point initial dans la chaîne doit correspondre exactement au point dans le motif.
FNM_CASEFOLD (int)
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
  • fdatasync — Synchronise les données (mais pas les métadonnées) avec le 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 à partir de l'emplacement du pointeur sur 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 des données 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
  • fsync — Synchronise les modifications apportées au fichier (y compris les métadonnées)
  • 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 — Supprime 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, PHP 8)

basename — Retourne le nom de la composante finale d'un chemin

Description

basename(string $path, string $suffix = ""): string

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.

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 "..".

Attention

basename() est sensible à la locale, donc si le chemin possède des caractères multioctets, la locale qui convient doit être enregistrée au moyen de la fonction setlocale(). Si path contient des caractères qui sont invalides pour la locale courante, le comportement de basename() est indéfini.

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)

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, PHP 8)

chgrp — Change le groupe d'un fichier

Description

chgrp(string $filename, string|int $group): bool

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 examiné doit être accessible sur le système de fichiers du serveur.

Note: Sur Windows, cette fonction échoue silentieusement quand appliqué sur un fichier ordinaire.

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, PHP 8)

chmod — Change le mode du fichier

Description

chmod(string $filename, int $permissions): bool

Remplace le mode du fichier filename par le mode permissions.

Liste de paramètres

filename

Chemin vers le fichier.

permissions

Il est à noter que le mode permissions est considéré comme un nombre en notation octale, aussi, afin de vous en assurer, vous pouvez préfixer le mode permissions 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 permissions 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.

Erreurs / Exceptions

En cas d'échec, une erreur E_WARNING est émis.

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 examiné doit être accessible sur le système de fichiers du serveur.

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, PHP 8)

chown — Change le propriétaire du fichier

Description

chown(string $filename, string|int $user): bool

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']));

?>

Résultat de l'exemple ci-dessus est 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 examiné doit être accessible sur le système de fichiers du serveur.

Note: Sur Windows, cette fonction échoue silentieusement quand appliqué sur un fichier ordinaire.

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, PHP 8)

clearstatcache — Efface le cache de stat()

Description

clearstatcache(bool $clear_realpath_cache = false, string $filename = ""): void

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 incluent :
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 aussi vider le cache des chemins réels.

filename

Nettoie le cache de chemin réel 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.

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));
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

copy — Copie un fichier

Description

copy(string $from, string $to, ?resource $context = null): bool

Fait une copie du fichier from vers le fichier to.

Si vous souhaitez déplacer un fichier, utilisez la fonction rename().

Liste de paramètres

from

Chemin vers le fichier source.

to

Le chemin de destination. Si to est une URL, la copie peut échouer si ce protocole ne supporte pas l'écrasement de fichiers existants.

Avertissement

Si le fichier de destination to 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.

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

Il n'y a pas de mot clé ou fonction delete dans le langage PHP. Si vous arrivez sur cette page en tentant de supprimer un fichier, essayer unlink(). Pour supprimer une variable de la portée locale regarder unset().

Voir aussi

  • unlink() - Supprime 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, PHP 8)

dirname — Renvoie le chemin du dossier parent

Description

dirname(string $path, int $levels = 1): string

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.

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 composants comme "..".

Attention

Sur Windows, dirname() assume que la codepage actuellement définie, donc pour qu'il puisse voir le nom de dossier correct avec des caractères multioctets dans le chemin, la codepage correspondante doit être définie. Si path contient des caractères qui sont invalides pour la codepage courante, le comportement de dirname() est indéfini.

Sur d'autres systèmes, dirname() assume que path est encodé dans un encodage compatible ASCII. Sinon le comportement de la fonction est indéfinie.

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.

Attention

Il faut faire attention lors de l'utilisation de cette fonction dans une boucle qui peut atteindre le dossier racine, car ceci peut produire une boucle infinie.

<?php
dirname('.'); // Will return '.'.
dirname('/'); // Will return `\` on Windows and '/' on *nix systems.
dirname('\\'); // Will return `\` on Windows and '.' on *nix systems.
dirname('C:\\'); // Will return 'C:\' on Windows and '.' on *nix systems.
?>

Historique

Version | Description
7.0.0 | Ajout du paramètre optionnel levels.

Exemples

Exemple #1 Exemple avec dirname()

<?php
echo dirname("/etc/passwd") . PHP_EOL;
echo dirname("/etc/") . PHP_EOL;
echo dirname(".") . PHP_EOL;
echo dirname("C:\\") . PHP_EOL;
echo dirname("/usr/local/lib", 2);

Résultat de l'exemple ci-dessus est similaire à :

/etc
/ (ou \ sous Windows)
.
C:\
/usr

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, PHP 8)

disk_free_space — Renvoie l'espace disque disponible sur le système de fichiers ou la partition

Description

disk_free_space(string $directory): float|false

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 examiné doit être accessible sur le système de fichiers du serveur.

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, PHP 8)

disk_total_space — Retourne la taille d'un dossier ou d'une partition

Description

disk_total_space(string $directory): float|false

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 examiné doit être accessible sur le système de fichiers du serveur.

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, PHP 8)

diskfreespace — Alias de disk_free_space()

Description

Cette fonction est un alias de : disk_free_space().


Ferme un fichier

  • « diskfreespace
  • fdatasync »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Ferme un fichier

fclose

(PHP 4, PHP 5, PHP 7, PHP 8)

fclose — Ferme un fichier

Description

fclose(resource $stream): bool

Ferme le fichier représenté par le pointeur stream.

Liste de paramètres

stream

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


Synchronise les données (mais pas les métadonnées) avec le fichier

  • « fclose
  • feof »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Synchronise les données (mais pas les métadonnées) avec le fichier

fdatasync

(PHP 8 >= 8.1.0)

fdatasync — Synchronise les données (mais pas les métadonnées) avec le fichier

Description

fdatasync(resource $stream): bool

Cette fonction synchronise le contenu du stream sur le support de stockage, tout comme fsync() le fait, mais elle ne synchronise pas les métadonnées des fichiers. Il est à noter que que cette fonction est différente seulement dans les systèmes POSIX. Sous Windows, cette fonction est un alias de fsync().

Liste de paramètres

stream

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 fdatasync() example

<?php
$file = 'test.txt';
$stream = fopen($file, 'w');
fwrite($stream, 'test data');
fwrite($stream, "\r\n");
fwrite($stream, 'additional data');
fdatasync($stream);
fclose($stream);
?>

Voir aussi

  • fflush() - Envoie tout le contenu généré dans un fichier
  • fsync() - Synchronise les modifications apportées au fichier (y compris les métadonnées)


Teste la fin du fichier

  • « fdatasync
  • fflush »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Teste la fin du fichier

feof

(PHP 4, PHP 5, PHP 7, PHP 8)

feof — Teste la fin du fichier

Description

feof(resource $stream): bool

Teste la fin du fichier.

Liste de paramètres

stream

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 émettra 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, PHP 8)

fflush — Envoie tout le contenu généré dans un fichier

Description

fflush(resource $stream): bool

Force l'écriture de toutes les données bufferisées dans le fichier désigné par stream.

Liste de paramètres

stream

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, PHP 8)

fgetc — Lit un caractère dans un fichier

Description

fgetc(resource $stream): string|false

Lit un caractère dans un fichier.

Liste de paramètres

stream

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 stream. 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 à partir de l'emplacement du pointeur sur 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, PHP 8)

fgetcsv — Obtient une ligne depuis un pointeur de fichier et l'analyse pour des champs CSV

Description

fgetcsv(
resource $stream,
?int $length = null,
string $separator = ",",
string $enclosure = "\"",
string $escape = "\\"
): array|false

Similaire à fgets() mais fgetcsv() analyse la ligne qu'il lit et recherche les champs CSV, qu'il va retourner dans un tableau les contenant.

Note:

La définition des locales entre en jeu avec cette fonction. Si LC_CTYPE vaut, par exemple en_US.UTF-8, les fichiers encodés avec un encodage d'un octet peuvent être mal lus par cette fonction.

Liste de paramètres

stream

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). Dans le cas contraire la ligne sera scindée en tranches de length caractères, sauf si la scission se produit à l'intérieur d'un encadrement.

Omettre ce paramètre (ou le définir à 0, ou null en PHP 8.0.0 ou ultérieur) fait que la longueur maximale de la ligne n'est pas limitée, ce qui est légèrement plus lent.

separator

Le paramètre optionnel separator définit le séparateur de champ (un caractère d'un seul octet).

enclosure

Le paramètre optionnel enclosure définit le caractère d'encadrement de texte (un caractère d'un seul octet).

escape

Le paramètre optionnel escape définit le caractère d'échappement (au plus un caractère d'un seul octet). Une chaîne de caractères vide ("") désactive le mécanisme d'échappement propriétaire.

Note: En général un caractère d'encadrement enclosure est échappé à l'intérieur d'un champ en le dédoublant?; Cependant, le caractère d'échappement escape peut être utilisé comme une alternative. Donc pour la valeur par défaut "" et \" ont la même signification. Outre échapper le caractère d'encadrement enclosure le caractère d'échappement escape n'a pas de signification spéciale?; même pas de s'échapper lui-même.

Valeurs de retour

Retourne un tableau indexé contenant les champs lus en cas de succès, ou false si une erreur survient.

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 PHP ne reconnaît pas correctement les fins de lignes lors de la lecture de fichiers qui ont été créés ou lus sur un Macintosh, l'activation de l'option de configuration auto_detect_line_endings peut régler le problème.

Historique

Version | Description
8.0.0 | length est désormais nullable.
7.4.0 | Le paramètre escape accepte désormais une chaîne de caractère vide afin de désactiver le mécanisme d'échappement propriétaire.

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);
}
?>

Voir aussi

  • str_getcsv() - Analyse une chaîne de caractères CSV dans un tableau
  • explode() - Scinde une chaîne de caractères 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 à partir de l'emplacement du pointeur sur fichier

  • « fgetcsv
  • fgetss »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Récupère la ligne courante à partir de l'emplacement du pointeur sur fichier

fgets

(PHP 4, PHP 5, PHP 7, PHP 8)

fgets — Récupère la ligne courante à partir de l'emplacement du pointeur sur fichier

Description

fgets(resource $stream, ?int $length = null): string|false

Récupère la ligne courante à partir de l'emplacement du pointeur sur fichier.

Liste de paramètres

stream

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 stream, 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.

Valeurs de retour

Retourne une chaîne de caractères contenant les length premiers caractères, moins 1 octet depuis le pointeur de fichier stream. false est retourné s'il n'y a plus de données à lire.

Si une erreur survient, la fonction retourne false.

Exemples

Exemple #1 Lecture d'un fichier ligne par ligne

<?php
$fp = @fopen("/tmp/inputfile.txt", "r");
if ($fp) {
while (($buffer = fgets($fp, 4096)) !== false) {
echo $buffer;
}
if (!feof($fp)) {
echo "Erreur: fgets() a échoué\n";
}
fclose($fp);
}
?>

Notes

Note: Si PHP ne reconnaît pas correctement les fins de lignes lors de la lecture de fichiers qui ont été créés ou lus sur un Macintosh, l'activation de l'option de configuration auto_detect_line_endings peut régler le problème.

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

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.3.0, et a été SUPPRIMÉE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

fgetss(resource $handle, int $length = ?, string $allowable_tags = ?): string

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. La fonction conserve l'état de l'analyse d'appel en appel, et ainsi n'est pas équivalent à l'appel de strip_tags() sur la valeur de retour de fgets().

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. Voir strip_tags() pour plus de détails concernant allowable_tags.

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.

Exemples

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);
}
?>

Résultat de l'exemple ci-dessus est similaire à :

Welcome! Today is the  of .

Text outside of the HTML block.

Notes

Note: Si PHP ne reconnaît pas correctement les fins de lignes lors de la lecture de fichiers qui ont été créés ou lus sur un Macintosh, l'activation de l'option de configuration auto_detect_line_endings peut régler le problème.

Voir aussi

  • fgets() - Récupère la ligne courante à partir de l'emplacement du pointeur sur 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
  • SplFileObject::fgetss() - Récupère une ligne d'un fichier et supprime les balises HTML
  • Le filtre string.strip_tags


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, PHP 8)

file_exists — Vérifie si un fichier ou un dossier existe

Description

file_exists(string $filename): bool

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.

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.

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

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.";
}
?>

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

À partir de 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
  • SplFileInfo


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, PHP 8)

file_get_contents — Lit tout un fichier dans une chaîne

Description

file_get_contents(
string $filename,
bool $use_include_path = false,
?resource $context = null,
int $offset = 0,
?int $length = null
): string|false

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'à length 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:

La constante FILE_USE_INCLUDE_PATH peut être utilisée pour déclencher la recherche dans le chemin d'inclusion. Ceci est impossible si strict typing est activé, car FILE_USE_INCLUDE_PATH est un int. Utilisez true à la place.

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. Une position négative compte à partir de la fin du flux.

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.

length

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

Émet une alerte de type E_WARNING si, filename ne peut être trouvé, si le paramètre length est plus petit que zéro, ou si le déplacement à la position offset spécifié dans le flux échoue.

Quand file_get_contents() est appelé sur un dossier, une erreur de niveau E_WARNING est généré sur Windows, et à partir de PHP 7.4 sur les autres systèmes d'exploitation aussi.

Historique

Version | Description
8.0.0 | length est désormais nullable.
7.1.0 | Ajout du support pour des positions offset négative.

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
// Si le typage strict est activé c.à.d. declare(strict_types=1);
$file = file_get_contents('./people.txt', true);
// Sinon
$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 21ème caractère
$section = file_get_contents('./people.txt', FALSE, NULL, 20, 14);
var_dump($section);
?>

Résultat de l'exemple ci-dessus est 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);
?>

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 les variables prédéfinies qu'elles fournissent.

Avertissement

Lorsque SSL est utilisé, le serveur IIS de Microsoft violera le protocole en fermant la connexion sans envoyer un indicateur close_notify. PHP le reportera en tant que "SSL: Fatal Protocol Error" quand vous arrivez à la fin des données. Pour contourner ce le niveau de la directive error_reporting doit être baissée pour ne pas inclure les avertissements. PHP peut détecter automatiquement les serveur IIS bogué lors de l'ouverture du flux en utilisant https:// et supprimera l'avertissement. Lors de l'utilisation de fsockopen() pour créer un socket ssl://, c'est au développeur de détecter et supprimer l'avertissement.

Voir aussi

  • file() - Lit le fichier et renvoie le résultat dans un tableau
  • fgets() - Récupère la ligne courante à partir de l'emplacement du pointeur sur fichier
  • fread() - Lecture du fichier en mode binaire
  • readfile() - Affiche un fichier
  • file_put_contents() - Écrit des données 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 des données dans un fichier

  • « file_get_contents
  • file »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Écrit des données dans un fichier

file_put_contents

(PHP 5, PHP 7, PHP 8)

file_put_contents — Écrit des données dans un fichier

Description

file_put_contents(
string $filename,
mixed $data,
int $flags = 0,
?resource $context = null
): int|false

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);
?>

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 les variables prédéfinies qu'elles fournissent.

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, PHP 8)

file — Lit le fichier et renvoie le résultat dans un tableau

Description

file(string $filename, int $flags = 0, ?resource $context = null): array|false

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 les variables prédéfinies qu'elles fournissent.

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.
FILE_NO_DEFAULT_CONTEXT
N'utilise pas le contexte par défaut.

context

Note: Une resource de contexte de 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 une fin de ligne, à moins que FILE_IGNORE_NEW_LINES soit utilisé.

Note: Si PHP ne reconnaît pas correctement les fins de lignes lors de la lecture de fichiers qui ont été créés ou lus sur un Macintosh, l'activation de l'option de configuration auto_detect_line_endings peut régler le problème.

Erreurs / Exceptions

Émet une erreur de niveau E_WARNING si le fichier n'existe pas.

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";
}

// Utilisation de drapeau
$trimmed = file('somefile.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
?>

Notes

Avertissement

Lorsque SSL est utilisé, le serveur IIS de Microsoft violera le protocole en fermant la connexion sans envoyer un indicateur close_notify. PHP le reportera en tant que "SSL: Fatal Protocol Error" quand vous arrivez à la fin des données. Pour contourner ce le niveau de la directive error_reporting doit être baissée pour ne pas inclure les avertissements. PHP peut détecter automatiquement les serveur IIS bogué lors de l'ouverture du flux en utilisant https:// et supprimera l'avertissement. Lors de l'utilisation de fsockopen() pour créer un socket ssl://, c'est au développeur de détecter et supprimer l'avertissement.

Voir aussi

  • file_get_contents() - Lit tout un fichier dans une chaîne
  • 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
  • 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, PHP 8)

fileatime — Renvoie la date à laquelle le fichier a été accédé pour la dernière fois

Description

fileatime(string $filename): int|false

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.

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

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));
}

?>

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

À partir de 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 un horodatage Unix


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, PHP 8)

filectime — Renvoie la date de dernière modification de l'inode d'un fichier

Description

filectime(string $filename): int|false

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.

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

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));
}

?>

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

À partir de 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, PHP 8)

filegroup — Lire le nom du groupe

Description

filegroup(string $filename): int|false

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é.

Erreurs / Exceptions

Si une erreur survient, une alerte de type E_WARNING sera émise.

Exemples

Exemple #1 Recherche le groupe d'un fichier

<?php
$filename = 'index.php';
print_r(posix_getgrgid(filegroup($filename)));
?>

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

À partir de 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


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, PHP 8)

fileinode — Lit le numéro d'inode du fichier

Description

fileinode(string $filename): int|false

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.

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

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.';
}
?>

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

À partir de 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, PHP 8)

filemtime — Lit la date de dernière modification du fichier

Description

filemtime(string $filename): int|false

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.

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

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));
}
?>

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

À partir de 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, PHP 8)

fileowner — Lit l'identifiant du propriétaire d'un fichier

Description

fileowner(string $filename): int|false

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.

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Exemples

Exemple #1 Recherche du propriétaire d'un fichier

<?php
$filename = 'index.php';
print_r(posix_getpwuid(fileowner($filename)));
?>

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

À partir de 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, PHP 8)

fileperms — Lit les droits d'un fichier

Description

fileperms(string $filename): int|false

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 macOS.

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.

Returns false on failure.

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

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');

switch ($perms & 0xF000) {
case 0xC000: // Socket
$info = 's';
break;
case 0xA000: // Lien symbolique
$info = 'l';
break;
case 0x8000: // Régulier
$info = 'r';
break;
case 0x6000: // Block special
$info = 'b';
break;
case 0x4000: // dossier
$info = 'd';
break;
case 0x2000: // Caractère spécial
$info = 'c';
break;
case 0x1000: // pipe FIFO
$info = 'p';
break;
default: // Inconnu
$info = 'u';
}

// Propriétaire
$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--

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

À partir de 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, PHP 8)

filesize — Lit la taille d'un fichier

Description

filesize(string $filename): int|false

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.

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Exemples

Exemple #1 Exemple avec filesize()

<?php

// Affiche e.g. somefile.txt: 1024 bytes

$filename = 'somefile.txt';
echo $filename . ': ' . filesize($filename) . ' bytes';

?>

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

À partir de 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, PHP 8)

filetype — Retourne le type de fichier

Description

filetype(string $filename): string|false

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.

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Exemples

Exemple #1 Exemple avec filetype()

<?php

echo filetype('/etc/passwd');
echo "\n";
echo filetype('/etc/');
?>

L'exemple ci-dessus va afficher :

file
dir

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

À partir de 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, PHP 8)

flock — Verrouille le fichier

Description

flock(resource $stream, int $operation, int &$would_block = null): bool

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).

Le verrou est également levé avec fclose(), ou quand stream est ramassé par le ramasse-miette.

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

stream

Un pointeur de système de fichiers de type ressource 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.

would_block

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.

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 stream 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, 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.

Note:

Sur Windows, si la procédure de verrou ouvre une fichier une deuxième fois, il ne peut pas accéder au fichier à travers ce gestionnaire jusqu'à ce le fichier soit déverrouillé.


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, PHP 8)

fnmatch — Teste un nom de fichier au moyen d'un masque de recherche

Description

fnmatch(string $pattern, string $filename, int $flags = 0): bool

fnmatch() vérifie si la chaîne filename va passer le masque Shell pattern.

Liste de paramètres

pattern

Le pattern à comparer. Habituellement, le pattern contiendra des caractères génériques tels que '?' et '*'.

Caractères génériques à utiliser dans le paramètre pattern
Caractère générique Description
? Le point d'interrogation correspondra à n'importe quel caractère unique. Par exemple, le motif "file?.txt" correspondra à "file1.txt" et "fileA.txt", mais ne correspondra pas à "file10.txt".
* L'astérisque correspondra à zéro ou plusieurs caractères. Par exemple, le motif "foo*.xml" correspondra à "foo.xml" et "foobar.xml".
[ ] Les crochets sont utilisés pour créer des plages de points de code ASCII ou des ensembles de caractères. Par exemple, le motif "index.php[45]" correspondra à "index.php4" et "index.php5", mais ne correspondra pas à "index.phpt". Des plages bien connues sont [0-9], [a-z] et [A-Z]. Plusieurs ensembles et plages peuvent être utilisés simultanément, par exemple [0-9a-zABC].
! Le point d'exclamation est utilisé pour nier les caractères dans les crochets. Par exemple, "[!A-Z]*.html" correspondra à "demo.html", mais ne correspondra pas à "Demo.html".
\ Le backslash est utilisé pour échapper les caractères spéciaux. Par exemple, "Name\?" correspondra à "Name?", mais ne correspondra pas à "Names".

filename

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 antislashes.
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.

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, PHP 8)

fopen — Ouvre un fichier ou une URL

Description

fopen(
string $filename,
string $mode,
bool $use_include_path = false,
?resource $context = null
): resource|false

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 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 antislashs 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 ; le comportement est le même que pour 'w'.
'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 sont toujours ajoutées à la fin.
'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éé, 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'.
'e' | Défini l'indicateur close-on-exec sur le descripteur de fichier ouvert. Disponible uniquement en PHP compilé sur les systèmes conforme POSIX.1-2008.

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 (Mac OS Classic) 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 à ê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 est 'b'. Vous pouvez 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 les anciennes versions de Notepad. Vous devriez toujours utiliser l'option 'b' dans les autres cas.

Si vous spécifiez 't' 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 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'.

Note: Le mode est ignoré pour les enveloppes de flux php://output, php://input, php://stdin, php://stdout, php://stderr et php://fd.

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: Une resource de contexte de flux.

Valeurs de retour

Retourne une ressource représentant le pointeur de fichier, ou false si une erreur survient

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

Historique

Version | Description
7.0.16, 7.1.2 | L'option 'e' a été ajoutée.

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 SSL est utilisé, le serveur IIS de Microsoft violera le protocole en fermant la connexion sans envoyer un indicateur close_notify. PHP le reportera en tant que "SSL: Fatal Protocol Error" quand vous arrivez à la fin des données. Pour contourner ce le niveau de la directive error_reporting doit être baissée pour ne pas inclure les avertissements. PHP peut détecter automatiquement les serveur IIS bogué lors de l'ouverture du flux en utilisant https:// et supprimera l'avertissement. Lors de l'utilisation de fsockopen() pour créer un socket ssl://, c'est au développeur de détecter et supprimer l'avertissement.

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 à partir de l'emplacement du pointeur sur 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, PHP 8)

fpassthru — Affiche le reste du fichier

Description

fpassthru(resource $stream): int

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().

Liste de paramètres

stream

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 le nombre de caractères lus depuis stream 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, PHP 8)

fputcsv — Formate une ligne en CSV et l'écrit dans un fichier

Description

fputcsv(
resource $stream,
array $fields,
string $separator = ",",
string $enclosure = "\"",
string $escape = "\\",
string $eol = "\n"
): int|false

fputcsv() formate la ligne passée sous forme de tableau fields, puis écrit le résultat dans le fichier stream.

Liste de paramètres

stream

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 chaînes de caractères string.

separator

Le paramètre optionnel separator spécifie le délimiteur (un caractère d'un seul octet).

enclosure

Le paramètre enclosure spécifie le caractère d'encadrement (un caractère d'un seul octet).

escape

Le paramètre optionnel escape définit le caractère d'échappement (au plus un caractère d'un seul octet). Une chaîne de caractères vide ("") désactive le mécanisme d'échappement propriétaire.

eol

Le paramètre optionnel eol définit une séquence de fin de ligne (End of Line) personnalisé.

Note:

Si un caractère enclosure est contenu dans un champ, il sera échappé en le doublant, à moins qu'il ne soit immédiatement précédé d'un escape.

Valeurs de retour

Retourne la taille de la chaîne écrite ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre optionnel eol a été ajouté.
7.4.0 | Le paramètre escape accepte désormais une chaîne de caractères vide afin de désactiver le mécanisme d'échapement propriétaire.

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 PHP ne reconnaît pas correctement les fins de lignes lors de la lecture de fichiers qui ont été créés ou lus sur un Macintosh, l'activation de l'option de configuration auto_detect_line_endings peut régler le problème.

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, PHP 8)

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, PHP 8)

fread — Lecture du fichier en mode binaire

Description

fread(resource $stream, int $length): string|false

fread() lit jusqu'à length octets dans le fichier référencé par stream. 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

stream

Un pointeur de système de fichiers de type ressource 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
$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 à partir de l'emplacement du pointeur sur 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
  • fseek() - Modifie la position du pointeur de fichier
  • ftell() - Renvoie la position courante du pointeur de fichier
  • rewind() - Replace le pointeur de fichier au début
  • unpack() - Déconditionne des données depuis une chaîne binaire


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, PHP 8)

fscanf — Analyse un fichier en fonction d'un format

Description

fscanf(resource $stream, string $format, mixed &...$vars): array|int|false|null

La fonction fscanf() est similaire à la fonction sscanf(), sauf qu'elle prend un fichier en entrée, représentée par la ressource stream et interprète l'entrée en fonction du format format spécifié.

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

stream

Un pointeur de système de fichiers de type ressource qui est habituellement créé en utilisant la fonction fopen().

format

Le format interprété pour string décrit dans la documentation de la sprintf() avec les différences suivantes :

  • La fonction ne tient pas compte du contexte local.
  • F, g, G et b ne sont pas supportés.
  • D représente un nombre décimal.
  • i représente un nombre entier avec détection de base.
  • n représente le nombre de caractères traités à ce stade.
  • s arrête la lecture à chaque caractère d'espacement.
  • * au lieu de argnum$ supprime l'affectation de cette spécification de conversion.

vars

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.

If there are more substrings expected in the format than there are available within string, null will be returned. On other errors, false will be returned.

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 à partir de l'emplacement du pointeur sur 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, PHP 8)

fseek — Modifie la position du pointeur de fichier

Description

fseek(resource $stream, int $offset, int $whence = SEEK_SET): int

Modifie le curseur de position dans le fichier stream. 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

stream

Un pointeur de système de fichiers de type ressource 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
  • fsync »
  • 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, PHP 8)

fstat — Lit les informations sur un fichier à partir d'un pointeur de fichier

Description

fstat(resource $stream): array|false

Rassemble les informations sur le fichier dont on connaît le pointeur stream. 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

stream

Un pointeur de système de fichiers de type ressource 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(). Retourne false en cas d'échec.

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));

?>

Résultat de l'exemple ci-dessus est 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 examiné doit être accessible sur le système de fichiers du serveur.


Synchronise les modifications apportées au fichier (y compris les métadonnées)

  • « fstat
  • ftell »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Synchronise les modifications apportées au fichier (y compris les métadonnées)

fsync

(PHP 8 >= 8.1.0)

fsync — Synchronise les modifications apportées au fichier (y compris les métadonnées)

Description

fsync(resource $stream): bool

Cette fonction synchronise les modifications apportées au fichier, y compris ses métadonnées. Celle-ci est similaire à fflush(), mais elle demande également au système d'exploitation d'écrire sur le support de stockage.

Liste de paramètres

stream

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 fsync() example

<?php
$file = 'test.txt';
$stream = fopen($file, 'w');
fwrite($stream, 'test data');
fwrite($stream, "\r\n");
fwrite($stream, 'additional data');
fsync($stream);
fclose($stream);
?>

Voir aussi

  • fdatasync() - Synchronise les données (mais pas les métadonnées) avec le fichier
  • fflush() - Envoie tout le contenu généré dans un fichier


Renvoie la position courante du pointeur de fichier

  • « fsync
  • 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, PHP 8)

ftell — Renvoie la position courante du pointeur de fichier

Description

ftell(resource $stream): int|false

Renvoie la position courante du pointeur de fichier référencé par stream.

Liste de paramètres

stream

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 stream 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, PHP 8)

ftruncate — Tronque un fichier

Description

ftruncate(resource $stream, int $size): bool

Prend le pointeur de fichier stream et le tronque à la taille de size.

Liste de paramètres

stream

Le pointeur de fichier.

Note:

Le pointeur stream 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, PHP 8)

fwrite — Écrit un fichier en mode binaire

Description

fwrite(resource $stream, string $data, ?int $length = null): int|false

fwrite() écrit le contenu de la chaîne data dans le fichier pointé par stream.

Liste de paramètres

stream

Un pointeur de système de fichiers de type ressource qui est habituellement créé en utilisant la fonction fopen().

data

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).

Valeurs de retour

fwrite() retourne le nombre d'octets écrits ou false si une erreur survient.

Erreurs / Exceptions

La fonction fwrite() emet une E_WARNING si une erreur survient.

Historique

Version | Description
8.0.0 | length est désormais nullable.

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 (!$fp = fopen($filename, 'a')) {
echo "Impossible d'ouvrir le fichier ($filename)";
exit;
}

// Ecrivons quelque chose dans notre fichier.
if (fwrite($fp, $somecontent) === FALSE) {
echo "Impossible d'écrire dans le fichier ($filename)";
exit;
}

echo "L'écriture de ($somecontent) dans le fichier ($filename) a réussi";

fclose($fp);

} else {
echo "Le fichier $filename n'est pas accessible en écriture.";
}
?>

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 stream est ouvert en mode ajout (append), fwrite() sera atomique (sauf si la taille de data 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 !
?>

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
  • pack() - Compacte des données dans une chaîne binaire


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, PHP 8)

glob — Recherche des chemins qui vérifient un masque

Description

glob(string $pattern, int $flags = 0): array|false

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.

Caractères spéciaux :

  • * - Associe zéro ou plus de caractères.
  • ? - Associe exactement un caractère (n'importe quel caractère).
  • [...] - Associe un caractère d'un ensemble de caractères. Si le premier caractère est !, associe n'importe quel caractères pas dans cet ensemble.
  • \ - Échappe le caractère suivant, sauf quand le drapeau GLOB_NOESCAPE est utilisé.

flags

Les drapeaux valides sont :

GLOB_BRACE (int)
Étend {a,b,c} pour correspondre à 'a', 'b' ou 'c'

Note: GLOB_BRACE n'est pas disponible sur certains systèmes non-GNU, comme Solaris ou Alpine Linux.

GLOB_ERR (int)
Arrête en cas d'erreurs de lecture (comme les répertoires illisibles), par défaut, les erreurs sont ignorées.
GLOB_ONLYDIR (int)
Retourne uniquement les entrées de répertoire qui correspondent au motif.
GLOB_MARK (int)
Ajoute une barre oblique (un antislash sur Windows) à chaque répertoire retourné.
GLOB_NOSORT (int)
Renvoie les fichiers tels qu'ils apparaissent dans le répertoire (sans tri). Lorsque ce drapeau n'est pas utilisé, les noms de chemin sont triés par ordre alphabétique.
GLOB_NOCHECK (int)
Renvoie le motif de recherche s'il n'y a pas de fichiers correspondants.
GLOB_NOESCAPE (int)
Les antislash ne mettent pas en échappement les métacaractères.
GLOB_AVAILABLE_FLAGS (int)
Tous les drapeaux GLOB_* combinés. Équivalent à 0 | GLOB_BRACE | GLOB_MARK | GLOB_NOSORT | GLOB_NOCHECK | GLOB_NOESCAPE | GLOB_ERR | GLOB_ONLYDIR

Note: Le drapeau GLOB_BRACE n'est pas disponible sur certains systèmes non GNU, tel que Solaris ou Alpine Linux.

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.

Exemples

Exemple #1 Un moyen pratique pour remplacer opendir() par glob()

<?php
foreach (glob("*.txt") as $filename) {
echo "$filename occupe " . filesize($filename) . "\n";
}
?>

Résultat de l'exemple ci-dessus est 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 examiné doit être accessible sur le système de fichiers du serveur.

Note: Cette fonction n'est pas disponible sur quelques systèmes (e.g. vieux Sun OS).

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, PHP 8)

is_dir — Indique si le fichier est un dossier

Description

is_dir(string $filename): bool

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é 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.

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

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)

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

À partir de 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, PHP 8)

is_executable — Indique si le fichier est exécutable

Description

is_executable(string $filename): bool

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. Sur les systèmes POSIX, un fichier est exécutable si le bit exécutable des permissions de fichier est défini. Sur Windows, voir la note ci-dessous.

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

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';
}

?>

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

À partir de 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: Sur Windows, un fichier est considéré exécutable, si c'est un fichier proprement exécutable tel que rapporté par l'API Win GetBinaryType(); pour des raisons de rétro-compatibilité, les fichiers qui ont comme extension .bat ou .cmd sont aussi considérés comme exécutables. Antérieur à PHP 7.4.0, tout fichier non vide avec une extension .exe ou .com était considéré exécutable. À noter que PATHEXT n'est pas pertinent pour is_executable().

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, PHP 8)

is_file — Indique si le fichier est un véritable fichier

Description

is_file(string $filename): bool

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.

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

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)

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

À partir de 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
  • SplFileInfo


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, PHP 8)

is_link — Indique si le fichier est un lien symbolique

Description

is_link(string $filename): bool

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.

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

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);
}
?>

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

À partir de 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, PHP 8)

is_readable — Indique si un fichier existe et est accessible en lecture

Description

is_readable(string $filename): bool

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.

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

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 !';
}
?>

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).

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

À partir de 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 à partir de l'emplacement du pointeur sur 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, PHP 8)

is_uploaded_file — Indique si le fichier a été téléchargé par HTTP POST

Description

is_uploaded_file(string $filename): bool

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 de droits (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, PHP 8)

is_writable — Indique si un fichier est accessible en écriture

Description

is_writable(string $filename): bool

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).

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.

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

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 !';
}
?>

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

À partir de 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, PHP 8)

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.3, PHP 7, PHP 8)

lchgrp — Change l'appartenance du groupe d'un lien symbolique

Description

lchgrp(string $filename, string|int $group): bool

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 examiné doit être accessible sur le système de fichiers du serveur.

Note: Cette fonction n'est pas implémentée sur les plates-formes 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.3, PHP 7, PHP 8)

lchown — Change le propriétaire d'un lien symbolique

Description

lchown(string $filename, string|int $user): bool

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 examiné doit être accessible sur le système de fichiers du serveur.

Note: Cette fonction n'est pas implémentée sur les plates-formes 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, PHP 8)

link — Crée un lien

Description

link(string $target, string $link): bool

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.

Erreurs / Exceptions

La fonction échoue, et émet une E_WARNING, si link existe déjà, ou si target n'existe pas.

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 examiné doit être accessible sur le système de fichiers du serveur.

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
  • unlink() - Supprime un fichier


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, PHP 8)

linkinfo — Renvoie les informations d'un lien

Description

linkinfo(string $path): int|false

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. Retourne un entier non négatif en cas de succès, -1 dans le cas où le lien n'a pas été trouvé, ou false si une violation open.base_dir survient.

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, PHP 8)

lstat — Retourne les informations sur un fichier ou un lien symbolique

Description

lstat(string $filename): array|false

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.

On failure, false is returned.

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

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'));
?>

Résultat de l'exemple ci-dessus est similaire à :

Informations qui diffèrent entre les 2 fichiers.

Array
(
    [ino] => 97236376
    [mode] => 33188
    [size] => 34
    [atime] => 1223580003
    [mtime] => 1223581848
    [ctime] => 1223581848
    [blocks] => 8
)

Notes

Note: Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce

À partir de 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, PHP 8)

mkdir — Crée un dossier

Description

mkdir(
string $directory,
int $permissions = 0777,
bool $recursive = false,
?resource $context = null
): bool

Tente de créer le dossier spécifier par directory.

Liste de paramètres

directory

Le chemin du dossier.

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 les variables prédéfinies qu'elles fournissent.

permissions

Les permissions par défaut est 0777, ce qui correspond au maximum de droits possible. Pour plus d'informations sur les permissions, lisez en détail la documentation de la fonction chmod().

Note:

permissions est ignoré sous Windows.

Notez que vous aurez à préciser lespermissions en base octale, ce qui signifie que vous aurez probablement un 0 comme premier chiffre. Les permissions sera aussi modifié par le umask courant, que vous pouvez modifier avec la fonction umask().

recursive

Si true, alors tous les répertoires parents au directory spécifié seront également créés, avec les mêmes permissions.

context

Note: Une resource de contexte de flux.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Note:

Si le répertoire à créer existe déjà, cela est considéré comme une erreur et false sera toujours retourné. Les fonctions is_dir() ou file_exists() peuvent être utilisée pour vérifier si le répertoire existe déjà avant d'essayer de le créer.

Erreurs / Exceptions

Émet une alerte de niveau E_WARNING si le dossier existe déjà.

Émet une alerte de niveau E_WARNING si les permissions empêchent la création du dossier.

Exemples

Exemple #1 Exemple avec mkdir()

<?php
mkdir("/path/to/my/dir", 0700);
?>

Exemple #2 mkdir() utilisant le paramètre recursive

<?php
// Structure de dossier désirée
$structure = './depth1/depth2/depth3/';

// Pour créer une structure imbriquée, le paramètre $recursive
// doit être spécifié.

if (!mkdir($structure, 0777, true)) {
die('Échec lors de la création des dossiers...');
}

// ...
?>

Voir aussi

  • is_dir() - Indique si le fichier est un dossier
  • rmdir() - Efface un dossier
  • umask() - Change le "umask" courant


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, PHP 8)

move_uploaded_file — Déplace un fichier téléchargé

Description

move_uploaded_file(string $from, string $to): bool

S'assure que le fichier from est un fichier téléchargé par HTTP POST. Si le fichier est valide, il est déplacé jusqu'à to.

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

from

Le nom du fichier téléchargé.

to

La destination du fichier déplacé.

Valeurs de retour

Retourne true en cas de succès.

Si from n'est pas valide, rien ne se passe, et move_uploaded_file() retournera false.

Si from 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];
// basename() peut empêcher les attaques de système de fichiers;
// la validation/assainissement supplémentaire du nom de fichier peut être approprié
$name = basename($_FILES["pictures"]["name"][$key]);
move_uploaded_file($tmp_name, "$uploads_dir/$name");
}
}
?>

Notes

Note:

move_uploaded_file() n'est pas affectée par l'open_basedir. Cependant, les restrictions sont placées uniquement sur le paramètre to qui permet le déplacement des fichiers chargés dans lesquels from 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, PHP 8)

parse_ini_file — Analyse un fichier de configuration

Description

parse_ini_file(string $filename, bool $process_sections = false, int $scanner_mode = INI_SCANNER_NORMAL): array|false

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. Si un chemin relatif est utilisé, il est évalué relatif au dossier courrant actuel, puis selon le include_path.

process_sections

En passant le paramètre process_sections à true, 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.

À parti de 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.

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 (mais pas les "constantes magiques" tel que __FILE__) 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 évaluées, et la valeur doit juste être la constante. 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);

?>

Résultat de l'exemple ci-dessus est 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()
$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;
?>

Résultat de l'exemple ci-dessus est similaire à :

(analysé) magic_quotes_gpc = Yes
(chargé ) magic_quotes_gpc = Yes

Exemple #4 Interpolation de Valeur

En plus d'évaluer les constantes, certains caractères ont une signification particulière dans une valeur ini. Additionnellement, les variables d'environment et options de configuration définies précédemment (voir get_cfg_var()) peuvent être lu en utilisant la syntaxe ${}.

; | is used for bitwise OR
three = 2|3

; & is used for bitwise AND
four = 6&5

; ^ is used for bitwise XOR
five = 3^6

; ~ is used for bitwise negate
negative_two = ~1

; () is used for grouping
seven = (8|7)&(6|5)

; Interpoler la variable d'environnement PATH
path = ${PATH}

; Interpoler l'option de configuration 'memory_limit'
configured_memory_limit = ${memory_limit}

Exemple #5 Échapper des Caractères

Certains caractères ont une signification particulière dans les chaînes à guillemets doubles et doivent être échappé en les préfixant d'un antislash. Tout d'abord, ce sont les guillemets double " comme le marqueur de frontière, et l'antislash \ lui-même (si suivit d'un des caractères spéciaux) :

quoted = "She said \"Exactly my point\"." ; Results in a string with quote marks in it.
hint = "Use \\\" to escape double quote" ; Results in: Use \" to escape double quote

Il y a une exception pour les chemins Windows-esque : il est possible de ne pas échapper l'antislash traînant si la chaîne cité est directement suivit d'un retour à la ligne :

save_path = "C:\Temp\"

Si l'on doit échapper une guillemet double suivit d'un retour à la ligne dans une valeur multiligne, il est possible d'utiliser la concaténation de valeur de la manière suivante (il y a une chaîne guillemet double directement suivit d'une autre) :

long_text = "Lorem \"ipsum\"""
 dolor" ; Results in: Lorem "ipsum"\n dolor

Un autre caractère avec une signification particulière est $ (le signe dollar). Il doit être échappé s'il est suivit d'une accolade ouvrante :

code = "\${test}"

L'échappement de caractères n'est pas supporté dans le mode INI_SCANNER_RAW (dans ce mode tous les caractères sont traité "tel quel").

Il est à noter que l'analyseur INI ne supporte pas les séquences d'échappement standard (\n, \t, etc.). Si nécessaire, le résultat de parse_ini_file() doit être post-procédé avec la fonction stripcslashes().

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é. 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.

Note:

Les fichiers ini sont généralement traité comme des fichiers de texte brut par les servers web, et donc envoyé au navigateur si demandé. Ceci signifie que pour la sécurité soit les fichiers ini doivent être stockés en dehors de la racine docroot, soit reconfigurer le serveur web pour ne pas les servir. L'échec de faire l'une de ces mesures peut introduire un risque de sécurité.

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, PHP 8)

parse_ini_string — Analyse une chaîne de configuration

Description

parse_ini_string(string $ini_string, bool $process_sections = false, int $scanner_mode = INI_SCANNER_NORMAL): array|false

parse_ini_string() retourne la configuration dans la chaîne ini_string 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_string

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.

À parti de 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, PHP 8)

pathinfo — Retourne des informations sur un chemin système

Description

pathinfo(string $path, int $flags = PATHINFO_ALL): array|string

pathinfo() retourne des informations sur le chemin path, sous forme de chaine ou de tableau associatif, ceci dépend du paramètre flags.

Note:

Pour plus d'informations sur la lecture du chemin courant, lisez la section sur les variables prédéfinies.

Note:

pathinfo() opère naivement sur la chaîne d'entrée, et n'est pas conscient des systèmes de fichiers actuel, ou des composants de chemins tel que "..".

Note:

Sur les systèmes Windows uniquement, le caractère \ sera interprété comme un séparateur de répertoire. Sur les autres systèmes, il sera traité comme n'importe quel autre caractère.

Attention

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().

Liste de paramètres

path

Le chemin à analyser.

flags

Spécifie quel élément sera retourné. Vous pouvez passer l'une des constantes PATHINFO_DIRNAME, PATHINFO_BASENAME, PATHINFO_EXTENSION et PATHINFO_FILENAME.

Si flags n'est pas renseigné, tous les éléments sont retournés.

Valeurs de retour

Si flags 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 flags est utilisé, cette fonction retournera une chaîne de caractères contenant les éléments.

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";
?>

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']);
?>

Résultat de l'exemple ci-dessus est 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'));
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [dirname] => /some/path
    [basename] => .test
    [extension] => test
    [filename] =>
)

Exemple #4 Exemple de pathinfo() avec déréférencement de tableau

Le paramètre flags n'est pas un masque de bits. Seule une valeur peut être fournie. Pour sélectionner uniquement un ensemble limité de valeurs analysées, utilisez la déstructuration de tableau comme ceci :

<?php
['basename' => $basename, 'dirname' => $dirname] = pathinfo('/www/htdocs/inc/lib.inc.php');
var_dump($basename, $dirname);
?>

Résultat de l'exemple ci-dessus est similaire à :

string(11) "lib.inc.php"
     string(15) "/www/htdocs/inc"

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, PHP 8)

pclose — Ferme un processus de pointeur de fichier

Description

pclose(resource $handle): int

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, PHP 8)

popen — Crée un processus de pointeur de fichier

Description

popen(string $command, string $mode): resource|false

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. Soit 'r' pour lecture, soit 'w' pour l'écriture.

Sur Windows, popen() utilise le mode texte par défaut, c.à.d. tout caractères \n écrit ou lu du pipe sera traduit en \r\n. Si ceci n'est pas désiré, le mode binaire peut être enforcé en définissant le mode à 'rb' et 'wb', respectivement.

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().

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, PHP 8)

readfile — Affiche un fichier

Description

readfile(string $filename, bool $use_include_path = false, ?resource $context = null): int|false

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

Note: Une resource de contexte de flux.

Valeurs de retour

Retourne le nombre d'octets lus depuis le fichier en cas de succès, ou false si une erreur survient

Erreurs / Exceptions

En cas d'échec, une alerte de type E_WARNING sera émise.

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;
}
?>

Résultat de l'exemple ci-dessus est 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 les variables prédéfinies qu'elles fournissent.

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, PHP 8)

readlink — Renvoie le contenu d'un lien symbolique

Description

readlink(string $path): string|false

readlink() effectue la même chose que la fonction C readlink.

Liste de paramètres

path

Le chemin vers le lien symbolique.

Valeurs de retour

Retourne le contenu du lien symbolique ou false si une erreur survient.

Note: La fonction échoue si le paramètre path n'est pas un lien symbolique, sauf sous Windows, où le chemin personnalisé sera retourné.

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, PHP 8)

realpath_cache_get — Récupère les entrées du cache realpath

Description

realpath_cache_get(): array

Récupère les entrées du cache realpath.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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());
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

realpath_cache_size — Récupère la taille du cache realpath

Description

realpath_cache_size(): int

Récupère la quantité de mémoire utilisée par le cache realpath.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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());
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

realpath — Retourne le chemin canonique absolu

Description

realpath(string $path): string|false

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:

Un chemin d'accès doit être fourni, la valeur peut être une chaîne de caractère vide. 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:

La fonction realpath() ne fonctionnera pas pour un fichier qui se trouve à l'intérieur d'un phar car ce chemin serait un chemin d'accès virtuel, pas un vrai.

Note:

Sur Windows, les jonctions et les liens symbolics aux dossiers sont uniquement étendu d'un niveau.

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 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'), PHP_EOL;

echo realpath('C:\Program Files\\'), PHP_EOL;
?>

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, PHP 8)

rename — Renomme un fichier ou un dossier

Description

rename(string $from, string $to, ?resource $context = null): bool

Tente de renommer from en to, en le déplaçant de répertoire si nécessaire. Si vous renommez un fichier et que to existe, il sera écrasé. Si vous renommez un répertoire et que to existe, cette fonction émet un avertissement.

Liste de paramètres

from

L'ancien nom.

Note:

Le gestionnaire utilisé dans le paramètre from DOIT être le même que celui utilisé dans to.

to

Le nouveau nom.

Note: Sur Windows, si to existe déjà, il doit pouvoir être écrit. Sinon rename() échoue et émet une E_WARNING.

context

Note: Une resource de contexte de flux.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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() - Supprime 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, PHP 8)

rewind — Replace le pointeur de fichier au début

Description

rewind(resource $stream): bool

Replace le pointeur de fichier stream 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

stream

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);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

rmdir — Efface un dossier

Description

rmdir(string $directory, ?resource $context = null): bool

Tente d'effacer le dossier dont le chemin est directory. 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

directory

Le chemin vers le dossier.

context

Note: Une resource de contexte de flux.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 Exemple avec rmdir()

<?php
if (!is_dir('examples')) {
mkdir('examples');
}

rmdir('examples');
?>

Voir aussi

  • is_dir() - Indique si le fichier est un dossier
  • mkdir() - Crée un dossier
  • unlink() - Supprime 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, PHP 8)

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, PHP 8)

stat — Renvoie les informations à propos d'un fichier

Description

stat(string $filename): array|false

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. Avant PHP 7.4.0, sous Windows NTS compile les valeurs statiques size, atime, mtime et ctime depuis les liens symboliques, dans ce cas.

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, ceci sera toujours 0.

** - uniquement sur les systèmes qui supportent le type st_blksize. Les autres systèmes (e.g. Windows) retournent -1.

*** - Sous Windows, depuis PHP 7.4.0, ce sera le numéro de série du volume qui contient le fichier, qui sera un entier 64-bit non signé qui peut déborder. Auparavant, c'était la représentation numériques de la lettre du volume (i.e. 2 pour C:) pour la fonction stat(), et 0 pour la fonction lstat().

**** - Sous Windows, depuis PHP 7.4.0, c'est l'identifiant associé avec le fichier, qui sera un entier 64-bit non signé qui peut déborder. Auparavant, c'était toujours 0.

***** Sous Windows, le bit de la permission d'écriture est définit en fonction de l'attribut lecture seule du fichier, et la même valeur est rapporté pour tout les utilisateurs, groupe, et propriétaire. L'ACL n'est pas pris en compte, contrairement à is_writable().

La valeur de mode contient des informations lut par plusieurs fonctions. Quand écrit en octal, commençant par la droite, les trois premiers chiffres sont retournés par chmod(). Le prochain chiffre est ignoré par PHP. Les deux prochains chiffres indiquent le type de fichier :

Les types de fichiers mode
mode en octal | Signification
0140000 | socket
0120000 | lien symbolique
0100000 | fichier régulier
0060000 | périphérique bloc
0040000 | dossier
0020000 | périphérique de caractère
0010000 | FIFO (un tube nommé)
Ainsi, par exemple, un fichier régulier pourrait être 0100644 et un dossier pourrait 0040755.

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.

Historique

Version | Description
7.4.0 | Sous Windows, le numéro du volume est maintenant le numéro de série qui contient le fichier, et le numéro de l'inode est l'identifiant associé avec le fichier.
7.4.0 | Les valeurs statiques size, atime, mtime et ctime des liens symboliques sont toujours ceux de la cible. Ce n'était précédemment pas le cas pour les builds NTS sous Windows.

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

À partir de 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
  • SplFileInfo


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, PHP 8)

symlink — Crée un lien symbolique

Description

symlink(string $target, string $link): bool

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.

Erreurs / Exceptions

La fonction échoue, et émet une E_WARNING, si link existe déjà. Sur Windows, cette fonction échoue également, et émet uneE_WARNING, si target n'existe pas.

Exemples

Exemple #1 Création d'un lien symbolique

<?php
$target = 'uploads.php';
$link = 'uploads';
symlink($target, $link);

echo readlink($link);
?>

Voir aussi

  • link() - Crée un lien
  • readlink() - Renvoie le contenu d'un lien symbolique
  • linkinfo() - Renvoie les informations d'un lien
  • unlink() - Supprime un fichier


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, PHP 8)

tempnam — Crée un fichier avec un nom unique

Description

tempnam(string $directory, string $prefix): string|false

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

directory

Le dossier dans lequel le fichier temporaire sera créé.

prefix

Le préfixe du fichier temporaire généré.

Note: Seuls les 63 premiers caractères du préfixe sont utilisés, le reste est ignoré. Windows utilise uniquement 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
7.1.0 | tempnam() émet désormais une notice lors du rabat sur le dossier temporaire système.

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 directory, il tentera dans le dossier par défaut du système. Sous les systèmes de fichiers NTFS, ceci arrive également si le dossier directory 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() - Supprime 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, PHP 8)

tmpfile — Crée un fichier temporaire

Description

tmpfile(): resource|false

Crée un fichier temporaire avec un nom unique, ouvert en écriture, lecture et binaire (w+b), 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é.

Attention

Si le script se termine de manière inattendue, il se peut que le fichier temporaire ne soit pas supprimé.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

touch — Modifie la date de modification et de dernier accès d'un fichier

Description

touch(string $filename, ?int $mtime = null, ?int $atime = null): bool

Tente de forcer la date de modification du fichier désigné par le paramètre filename à la date spécifiée par le paramètre mtime. Notez bien que la date de dernier accès est modifiée, quel que 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.

mtime

La date de création. Si mtime est omis, c'est l'heure courante time() qui est utilisée.

atime

Si non null, l'heure d'accès au fichier fourni sera défini à la valeur du paramètre atime. Sinon, elle sera définie à la valeur passée au paramètre mtime. Si tous les deux sont null, l'heure courante du système sera utilisée.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | mtime et atime sont désormais nullable.

Exemples

Exemple #1 Exemple avec touch()

<?php
if (touch($FileName)) {
echo "La date de modification de $FileName a été modifiée à 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 mtime

<?php
/*
* Ceci est la date et l'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é.


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, PHP 8)

umask — Change le "umask" courant

Description

umask(?int $mask = null): int

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

Si mask est null, umask() retourne simplement l'umask actuel sinon l'ancien umask est retourné.

Historique

Version | Description
8.0.0 | mask est désormais nullable.

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.


Supprime un fichier

  • « umask
  • Inotify »
  • PHP Manual
  • Fonctions sur les systèmes de fichiers
  • Supprime un fichier

unlink

(PHP 4, PHP 5, PHP 7, PHP 8)

unlink — Supprime un fichier

Description

unlink(string $filename, ?resource $context = null): bool

Supprime filename. Similaire à 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.

Si le fichier est un lien symbolique, le lien symbolique sera supprimé. Sur Windows, pour supprimer un lien symbolique vers un dossier, rmdir() doit être utilisé à la place.

context

Note: Une resource de contexte de flux.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
7.3.0 | Sur Windows, il est désormais possible de unlink() les fichiers dont les gestionnaires sont utilisés, ce qui auparavant échouait. Cependant, il n'est toujours pas possible de recréer le fichier supprimé, jusqu'à ce que tous ses gestionnaires soient fermés.

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 : » https://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 (int)
Le fichier a été accédé (lu) (*)
IN_MODIFY (int)
Le fichier a été modifié (*)
IN_ATTRIB (int)
Les métadonnées ont changé (e.g. les permissions, la date de modification, etc.) (*)
IN_CLOSE_WRITE (int)
Le fichier ouvert en écriture a été refermé (*)
IN_CLOSE_NOWRITE (int)
Le fichier non-ouvert en écriture a été refermé (*)
IN_OPEN (int)
Le fichier a été ouvert (*)
IN_MOVED_TO (int)
Fichier déplacé dans un dossier surveillé (*)
IN_MOVED_FROM (int)
Fichier déplacé depuis un dossier surveillé (*)
IN_CREATE (int)
Fichier ou dossier créé dans un dossier surveillé (*)
IN_DELETE (int)
Fichier ou dossier supprimé dans un dossier surveillé (*)
IN_DELETE_SELF (int)
Les fichiers ou dossiers surveillés ont été supprimés
IN_MOVE_SELF (int)
Les fichiers ou dossiers surveillés ont été déplacés
IN_CLOSE (int)
Égal à IN_CLOSE_WRITE | IN_CLOSE_NOWRITE
IN_MOVE (int)
Égal à IN_MOVED_FROM | IN_MOVED_TO
IN_ALL_EVENTS (int)
Composition de toutes les constantes précédentes
IN_UNMOUNT (int)
Le système de fichiers contenant les objets surveillés a été démonté
IN_Q_OVERFLOW (int)
Queue d'événements en dépassement de capacité (wd vaut -1 pour cet événement)
IN_IGNORED (int)
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 (int)
Le sujet de cet événement est un dossier
IN_ONLYDIR (int)
Ne surveille que le chemin, si c'est un dossier (Depuis Linux 2.6.15)
IN_DONT_FOLLOW (int)
Ne déréférence pas le chemin si c'est un lien symbolique (Depuis Linux 2.6.15)
IN_MASK_ADD (int)
Ajoute les événements au masque de surveillance pour ce chemin, s'il existe déjà (au lieu de remplacer).
IN_ONESHOT (int)
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

inotify_add_watch(resource $inotify_instance, string $pathname, int $mask): int|false

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), ou false si une erreur survient.

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

inotify_init(): resource|false

Initialise une instance inotify pour utiliser avec la fonction inotify_add_watch()

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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);

?>

Résultat de l'exemple ci-dessus est 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

inotify_queue_len(resource $inotify_instance): int

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

inotify_read(resource $inotify_instance): array

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
  • xattr »
  • 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

inotify_rm_watch(resource $inotify_instance, int $watch_descriptor): bool

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


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://savannah.nongnu.org/projects/attr/.

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 : » https://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 (int)
Définit un attribut dans l'espace de noms racine. Nécessite les privilèges d'administrateur.
XATTR_DONTFOLLOW (int)
Ne pas suivre un lien symbolique mais opérer directement sur le lien symbolique.
XATTR_CREATE (int)
La fonction échouera si l'attribut étendu existe déjà.
XATTR_REPLACE (int)
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

xattr_get(string $filename, string $name, int $flags = 0): string

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

xattr_list(string $filename, int $flags = 0): array

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

xattr_remove(string $filename, string $name, int $flags = 0): bool

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

xattr_set(
string $filename,
string $name,
string $value,
int $flags = 0
): bool

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

xattr_supported(string $filename, int $flags = 0): bool

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 — Alias de xdiff_file_bdiff
    • 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 : » https://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 (int)
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 (int)
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 — Alias de xdiff_file_bdiff
  • 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

xdiff_file_bdiff_size(string $file): int

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

xdiff_file_bdiff(string $old_file, string $new_file, string $dest): bool

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

xdiff_file_bpatch(string $file, string $patch, string $dest): bool

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


Alias de xdiff_file_bdiff

  • « xdiff_file_bpatch
  • xdiff_file_diff »
  • PHP Manual
  • Fonctions xdiff
  • Alias de xdiff_file_bdiff

xdiff_file_diff_binary

(PECL xdiff >= 0.2.0)

xdiff_file_diff_binary — Alias de xdiff_file_bdiff()

Description

xdiff_file_diff_binary(string $old_file, string $new_file, string $dest): bool

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

xdiff_file_diff(
string $old_file,
string $new_file,
string $dest,
int $context = 3,
bool $minimal = false
): bool

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

xdiff_file_merge3(
string $old_file,
string $new_file1,
string $new_file2,
string $dest
): mixed

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

xdiff_file_patch_binary(string $file, string $patch, string $dest): bool

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

xdiff_file_patch(
string $file,
string $patch,
string $dest,
int $flags = DIFF_PATCH_NORMAL
): mixed

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

xdiff_file_rabdiff(string $old_file, string $new_file, string $dest): bool

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

xdiff_string_bdiff_size(string $patch): int

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

xdiff_string_bdiff(string $old_data, string $new_data): string

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

xdiff_string_bpatch(string $str, string $patch): string

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

xdiff_string_bdiff(string $old_data, string $new_data): string

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

xdiff_string_diff(
string $old_data,
string $new_data,
int $context = 3,
bool $minimal = false
): string

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

xdiff_string_merge3(
string $old_data,
string $new_data1,
string $new_data2,
string &$error = ?
): mixed

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

xdiff_string_patch_binary(string $str, string $patch): string

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

xdiff_string_patch(
string $str,
string $patch,
int $flags = ?,
string &$error = ?
): string

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

xdiff_string_bdiff(string $old_data, string $new_data): string

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
    • EnchantBroker — La classe EnchantBroker
    • EnchantDictionary — La classe EnchantDictionary
  • 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
    • IntlGregorianCalendar — The IntlGregorianCalendar 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
    • IntlDatePatternGenerator — The IntlDatePatternGenerator class
    • IntlPartsIterator — The IntlPartsIterator class
    • UConverter — The UConverter class
    • Fonctions Grapheme
    • Fonctions IDN
    • IntlChar
    • IntlException — Exception class for intl errors
    • IntlIterator — The IntlIterator class
    • Fonctions intl
  • Chaînes de caractères multioctets
    • 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 multioctets en PHP
    • Prérequis de l'encodage en PHP
    • Fonctions sur les chaînes de caractères multioctets
  • Pspell
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Pspell
    • PSpell\Dictionary — The PSpell\Dictionary class
    • PSpell\Config — The PSpell\Config class
  • 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 — Récupère le chemin du dossier pour un backend fournit
    • 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 — Définit le chemin du dossier pour un backend fournit
    • enchant_broker_set_ordering — Déclare une préférence pour un dictionnaire d'une langue
    • enchant_dict_add_to_personal — Alias de enchant_dict_add
    • enchant_dict_add_to_session — Ajoute un mot à la session courante
    • enchant_dict_add — Ajoute un mot à une liste de mot personnelle
    • 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_added — Que le 'mot' existe ou non dans cette session d'orthographe
    • enchant_dict_is_in_session — Alias de enchant_dict_is_added
    • 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
  • EnchantBroker — La classe EnchantBroker
  • EnchantDictionary — La classe EnchantDictionary


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 2.0.0 ou supérieur est uniquement supporté à partir de PHP 8.0.0.

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

En partant du principe que les bibliothèques requises sont installées, les utilisateurs peuvent activer enchant en ajoutant l'option --with-enchant[=dir] lors de la compilation de PHP.

Les utilisateurs de Windows doivent activer php_enchant.dll pour pouvoir utiliser cette extension.

Note: Additional setup on Windows

Afin de faire fonctionner cette extension, quelques bibliothèques DLL doivent être disponibles via le PATH du système Windows. Lisez la F.A.Q 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 : libenchant.dll, glib-2.dll, gmodule-2.dll.

De plus, il est nécessaire de copier au moins un des fournisseurs fournit dans lib\enchant vers \usr\local\lib\enchant-2, (qui est un chemin absolu à partir de la racine du disque actuel). Antérieur à PHP 8.0.0, c'est-à-dire en utilisant Enchant v1, les fournisseurs devaient être copiés dans C:\enchant_plugins à la place, où ce chemin pouvait être personnalisé en créant la valeur de registre.


Types de ressources

Antérieur à PHP 8.0.0, 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

LIBENCHANT_VERSION (string)
La version de libenchant. Disponible à partir de PHP 8.0.0.
ENCHANT_MYSPELL (int)
Type de dictionnaire pour MySpell. Utilisé avec enchant_broker_get_dict_path() et enchant_broker_set_dict_path(). Obsolète à partir de PHP 8.0.0.
ENCHANT_ISPELL (int)
Type de dictionnaire pour Ispell. Utilisé avec enchant_broker_get_dict_path() et enchant_broker_set_dict_path(). Obsolète à partir de PHP 8.0.0.


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 — Récupère le chemin du dossier pour un backend fournit
  • 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 — Définit le chemin du dossier pour un backend fournit
  • enchant_broker_set_ordering — Déclare une préférence pour un dictionnaire d'une langue
  • enchant_dict_add_to_personal — Alias de enchant_dict_add
  • enchant_dict_add_to_session — Ajoute un mot à la session courante
  • enchant_dict_add — Ajoute un mot à une liste de mot personnelle
  • 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_added — Que le 'mot' existe ou non dans cette session d'orthographe
  • enchant_dict_is_in_session — Alias de enchant_dict_is_added
  • 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, PHP 8, PECL enchant >= 0.1.0)

enchant_broker_describe — Énumère les fournisseurs Enchant

Description

enchant_broker_describe(EnchantBroker $broker): array

É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

Un courtier Enchant retourné par enchant_broker_init().

Valeurs de retour

Retourne un tableau des fournisseurs Enchant disponible avec leurs détails.

Historique

Version | Description
8.0.0 | broker attend désormais une instance de EnchantBroker ; auparavant, une ressource était attendu.
8.0.0 | Antérieur à cette version, cette fonction retournait false en cas d'échec.

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);

?>

Résultat de l'exemple ci-dessus est 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, PHP 8, PECL enchant >= 0.1.0 )

enchant_broker_dict_exists — Vérifie si un dictionnaire existe

Description

enchant_broker_dict_exists(EnchantBroker $broker, string $tag): bool

Vérifie si un dictionnaire existe.

Liste de paramètres

broker

Un courtier Enchant retourné par enchant_broker_init().

tag

langage, dans un format comme us_US, ch_DE, etc.

Valeurs de retour

Retourne true si le langage existe, false sinon.

Historique

Version | Description
8.0.0 | broker attend désormais une instance de EnchantBroker ; auparavant, une ressource était attendu.

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, PHP 8, PECL enchant >= 0.1.0 )

enchant_broker_free_dict — Libère une ressource de dictionnaire

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

enchant_broker_free_dict(EnchantDictionary $dictionary): bool

Libère un dictionnaire. À partir de PHP 8.0.0, il est recommandé de détruire l'objet au lieu d'appeler cette fonction.

Liste de paramètres

dictionary

Un dictionnaire Enchant retourné par enchant_broker_request_dict() ou enchant_broker_request_pwl_dict().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | dictionary attend désormais une EnchantDictionary; auparavant, une ressource était attendu.

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, PHP 8, PECL enchant >= 0.1.0 )

enchant_broker_free — Libère la ressource de sponsor ainsi que ses dictionnaires

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

enchant_broker_free(EnchantBroker $broker): bool

Libère un sponsor ainsi que tous ses dictionnaires. À partir de PHP 8.0.0, il est recommandé de détruire l'objet au lieu d'appeler cette fonction.

Liste de paramètres

broker

Un courtier Enchant retourné par enchant_broker_init().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | broker attend désormais une instance de EnchantBroker ; auparavant, une ressource était attendu.

Voir aussi

  • enchant_broker_init() - Crée un nouvel objet sponsor


Récupère le chemin du dossier pour un backend fournit

  • « enchant_broker_free
  • enchant_broker_get_error »
  • PHP Manual
  • Fonctions Enchant
  • Récupère le chemin du dossier pour un backend fournit

enchant_broker_get_dict_path

(PHP 5 >= 5.3.1, PHP 7, PHP 8, PECL enchant >= 1.0.1)

enchant_broker_get_dict_path — Récupère le chemin du dossier pour un backend fournit

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

enchant_broker_get_dict_path(EnchantBroker $broker, int $type): string|false

Récupère le chemin du dossier pour un backend fournit.

Liste de paramètres

broker

Un courtier Enchant retourné par enchant_broker_init().

type

Le type des dictionnaires, c.à.d. ENCHANT_MYSPELL ou ENCHANT_ISPELL.

Valeurs de retour

Retourne le chemin du dossier du dictionnaire en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | broker attend désormais une instance de EnchantBroker ; auparavant, une ressource était attendu.

Notes

Note:

Cette fonction est seulement disponible si l'extension a été compilée avec Enchant v1.

Voir aussi

  • enchant_broker_set_dict_path() - Définit le chemin du dossier pour un backend fournit


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, PHP 8, PECL enchant >= 0.1.0 )

enchant_broker_get_error — Retourne la dernière erreur d'un sponsor

Description

enchant_broker_get_error(EnchantBroker $broker): string|false

Retourne la dernière erreur survenue pour ce sponsor.

Liste de paramètres

broker

Un courtier Enchant retourné par enchant_broker_init().

Valeurs de retour

Retourne le message si une erreur a été trouvée, ou false sinon.

Historique

Version | Description
8.0.0 | broker attend désormais une instance de EnchantBroker ; auparavant, une ressource était attendu.


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, PHP 8, PECL enchant >= 0.1.0 )

enchant_broker_init — Crée un nouvel objet sponsor

Description

enchant_broker_init(): EnchantBroker|false

Liste de paramètres

Valeurs de retour

Retourne une ressource de sponsor en cas de succès, false sinon.

Historique

Version | Description
8.0.0 | En cas de succès, cette fonction retourne désormais une instance de EnchantBroker ; auparavant une ressource était retournée.

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, PHP 8, PECL enchant >= 1.0.1)

enchant_broker_list_dicts — Retourne une liste de tous les dictionnaires disponibles

Description

enchant_broker_list_dicts(EnchantBroker $broker): array

Retourne une liste de tous les dictionnaires disponibles ainsi que leurs détails.

Liste de paramètres

broker

Un courtier Enchant retourné par enchant_broker_init().

Valeurs de retour

Retourne un tableau des dictionnaires disponible avec leurs détails.

Historique

Version | Description
8.0.0 | broker attend désormais une instance de EnchantBroker ; auparavant, une ressource était attendu.
8.0.0 | Antérieur à cette version, la fonction retournait false en cas d'échec.

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);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8, PECL enchant >= 0.1.0 )

enchant_broker_request_dict — Crée un nouveau dictionnaire

Description

enchant_broker_request_dict(EnchantBroker $broker, string $tag): EnchantDictionary|false

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

Un courtier Enchant retourné par enchant_broker_init().

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.

Historique

Version | Description
8.0.0 | broker attend désormais une instance de EnchantBroker ; auparavant, une ressource était attendu.
8.0.0 | En cas de succès, cette fonction retourne désormais une instance de EnchantDictionary ; auparavant une ressource était retournée.

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, PHP 8, PECL enchant >= 0.1.0 )

enchant_broker_request_pwl_dict — Crée un dictionnaire en utilisant un fichier PWL

Description

enchant_broker_request_pwl_dict(EnchantBroker $broker, string $filename): EnchantDictionary|false

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

Un courtier Enchant retourné par enchant_broker_init().

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.

Historique

Version | Description
8.0.0 | broker attend désormais une instance de EnchantBroker ; auparavant, une ressource était attendu.
8.0.0 | En cas de succès, cette fonction retourne désormais une instance de EnchantDictionary ; auparavant une ressource était retournée.

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


Définit le chemin du dossier pour un backend fournit

  • « enchant_broker_request_pwl_dict
  • enchant_broker_set_ordering »
  • PHP Manual
  • Fonctions Enchant
  • Définit le chemin du dossier pour un backend fournit

enchant_broker_set_dict_path

(PHP 5 >= 5.3.1, PHP 7, PHP 8, PECL enchant >= 1.0.1)

enchant_broker_set_dict_path — Définit le chemin du dossier pour un backend fournit

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

enchant_broker_set_dict_path(EnchantBroker $broker, int $type, string $path): bool

Définit le chemin du dossier pour un backend fournit.

Liste de paramètres

broker

Un courtier Enchant retourné par enchant_broker_init().

type

Le type des dictionnaires, c.à.d. ENCHANT_MYSPELL ou ENCHANT_ISPELL.

path

Le chemin du dossier du dictionnaire.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | broker attend désormais une instance de EnchantBroker ; auparavant, une ressource était attendu.

Notes

Note:

Cette fonction est seulement disponible si l'extension a été compilée avec Enchant v1.

Voir aussi

  • enchant_broker_get_dict_path() - Récupère le chemin du dossier pour un backend fournit


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, PHP 8, PECL enchant >= 0.1.0 )

enchant_broker_set_ordering — Déclare une préférence pour un dictionnaire d'une langue

Description

enchant_broker_set_ordering(EnchantBroker $broker, string $tag, string $ordering): bool

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

Un courtier Enchant retourné par enchant_broker_init().

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.

Historique

Version | Description
8.0.0 | broker attend désormais une instance de EnchantBroker ; auparavant, une ressource était attendu.


Alias de enchant_dict_add

  • « enchant_broker_set_ordering
  • enchant_dict_add_to_session »
  • PHP Manual
  • Fonctions Enchant
  • Alias de enchant_dict_add

enchant_dict_add_to_personal

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_dict_add_to_personal — Alias de enchant_dict_add()

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

Cette fonction est un alias de : enchant_dict_add().


Ajoute un mot à la session courante

  • « enchant_dict_add_to_personal
  • enchant_dict_add »
  • PHP Manual
  • Fonctions Enchant
  • Ajoute un mot à la session courante

enchant_dict_add_to_session

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_dict_add_to_session — Ajoute un mot à la session courante

Description

enchant_dict_add_to_session(EnchantDictionary $dictionary, string $word): void

Ajoute le mot word au dictionnaire fourni. Il ne sera ajouté que pour la session courante.

Liste de paramètres

dictionary

Un dictionnaire Enchant retourné par enchant_broker_request_dict() ou enchant_broker_request_pwl_dict().

word

Le mot à ajouter

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version | Description
8.0.0 | dictionary attend désormais une instance de EnchantDictionary ; auparavant, une ressource était attendu.

Voir aussi

  • enchant_broker_request_dict() - Crée un nouveau dictionnaire


Ajoute un mot à une liste de mot personnelle

  • « enchant_dict_add_to_session
  • enchant_dict_check »
  • PHP Manual
  • Fonctions Enchant
  • Ajoute un mot à une liste de mot personnelle

enchant_dict_add

(PHP 8)

enchant_dict_add — Ajoute un mot à une liste de mot personnelle

Description

enchant_dict_add(EnchantDictionary $dictionary, string $word): void

Ajoute un mot à la liste des mots personnelle du dictionnaire fournis.

Liste de paramètres

dictionary

Un dictionnaire Enchant retourné par enchant_broker_request_dict() ou enchant_broker_request_pwl_dict().

word

Le mot à ajouter

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | dictionary attend désormais une instance de EnchantDictionary ; auparavant, une ressource était attendu.

Exemples

Exemple #1 Ajout 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($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


Vérifie si un mot est correctement orthographié

  • « enchant_dict_add
  • 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, PHP 8, PECL enchant >= 0.1.0 )

enchant_dict_check — Vérifie si un mot est correctement orthographié

Description

enchant_dict_check(EnchantDictionary $dictionary, string $word): bool

Retourne true si le mot word est correctement orthographié, false sinon.

Liste de paramètres

dictionary

Un dictionnaire Enchant retourné par enchant_broker_request_dict() ou enchant_broker_request_pwl_dict().

word

Le mot à vérifier

Valeurs de retour

Retourne true si le mot est correctement orthographié, false sinon.

Historique

Version | Description
8.0.0 | dictionary attend désormais une instance de EnchantDictionary ; auparavant, une ressource était attendu.


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, PHP 8, PECL enchant >= 0.1.0 )

enchant_dict_describe — Décrit un dictionnaire

Description

enchant_dict_describe(EnchantDictionary $dictionary): array

Retourne les détails d'un dictionnaire.

Liste de paramètres

dictionary

Un dictionnaire Enchant retourné par enchant_broker_request_dict() ou enchant_broker_request_pwl_dict().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | dictionary attend désormais une instance de EnchantDictionary ; auparavant, une ressource était attendu.
8.0.0 | Antérieur à cette version, cette fonction retournait false en cas d'échec.

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);
}
?>

Résultat de l'exemple ci-dessus est 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_added »
  • PHP Manual
  • Fonctions Enchant
  • Retourne la dernière erreur de la session courante

enchant_dict_get_error

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_dict_get_error — Retourne la dernière erreur de la session courante

Description

enchant_dict_get_error(EnchantDictionary $dictionary): string|false

Retourne la dernière erreur de la session courante.

Liste de paramètres

dictionary

Un dictionnaire Enchant retourné par enchant_broker_request_dict() ou enchant_broker_request_pwl_dict().

Valeurs de retour

Retourne le message d'erreur sous la forme d'une chaîne de caractères, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | dictionary attend désormais une instance de EnchantDictionary ; auparavant, une ressource était attendu.


Que le 'mot' existe ou non dans cette session d'orthographe

  • « enchant_dict_get_error
  • enchant_dict_is_in_session »
  • PHP Manual
  • Fonctions Enchant
  • Que le 'mot' existe ou non dans cette session d'orthographe

enchant_dict_is_added

(PHP 8)

enchant_dict_is_added — Que le 'mot' existe ou non dans cette session d'orthographe

Description

enchant_dict_is_added(EnchantDictionary $dictionary, string $word): bool

Informe si le mot existe déjà ou non dans la session courante.

Liste de paramètres

dictionary

Un dictionnaire Enchant retourné par enchant_broker_request_dict() ou enchant_broker_request_pwl_dict().

word

Le mot à rechercher

Valeurs de retour

Retourne true si le mot existe ou false

Historique

Version | Description
8.0.0 | dictionary attend désormais une instance de EnchantDictionary ; auparavant, une ressource était attendu.

Voir aussi

  • enchant_dict_add_to_session() - Ajoute un mot à la session courante


Alias de enchant_dict_is_added

  • « enchant_dict_is_added
  • enchant_dict_quick_check »
  • PHP Manual
  • Fonctions Enchant
  • Alias de enchant_dict_is_added

enchant_dict_is_in_session

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL enchant >= 0.1.0 )

enchant_dict_is_in_session — Alias de enchant_dict_is_added()

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

Cette fonction est un alias de : enchant_dict_is_added().


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, PHP 8, 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

enchant_dict_quick_check(EnchantDictionary $dictionary, string $word, array &$suggestions = null): bool

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

dictionary

Un dictionnaire Enchant retourné par enchant_broker_request_dict() ou enchant_broker_request_pwl_dict().

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.

Historique

Version | Description
8.0.0 | dictionary attend désormais une instance de EnchantDictionary ; auparavant, une ressource était attendu.

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);
}
?>

Résultat de l'exemple ci-dessus est 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, PHP 8, PECL enchant >= 0.1.0 )

enchant_dict_store_replacement — Ajoute une orthographe pour un mot

Description

enchant_dict_store_replacement(EnchantDictionary $dictionary, string $misspelled, string $correct): void

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

dictionary

Un dictionnaire Enchant retourné par enchant_broker_request_dict() ou enchant_broker_request_pwl_dict().

misspelled

Le mot à traiter

correct

Le mot correct

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | dictionary attend désormais une instance de EnchantDictionary ; auparavant, une ressource était attendu.


Retourne une liste de valeurs si aucunes des conditions ne sont réunies

  • « enchant_dict_store_replacement
  • EnchantBroker »
  • 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, PHP 8, PECL enchant >= 0.1.0 )

enchant_dict_suggest — Retourne une liste de valeurs si aucunes des conditions ne sont réunies

Description

enchant_dict_suggest(EnchantDictionary $dictionary, string $word): array

Liste de paramètres

dictionary

Un dictionnaire Enchant retourné par enchant_broker_request_dict() ou enchant_broker_request_pwl_dict().

word

Mot à utiliser pour les suggestions

Valeurs de retour

Retourne un tableau de suggestions si le mot est mal orthographié.

Historique

Version | Description
8.0.0 | dictionary attend désormais une instance de EnchantDictionary ; auparavant, une ressource était attendu.

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


La classe EnchantBroker

(PHP 8)

Introduction

Une classe totalement opaque qui remplace les ressources enchant_broker à partir de PHP 8.0.0.

Synopsis de la classe

final class EnchantBroker {
}


La classe EnchantDictionary

(PHP 8)

Introduction

Une classe totalement opaque qui remplace les ressources enchant_dict à partir de PHP 8.0.0.

Synopsis de la classe

final class EnchantDictionary {
}


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 : » https://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

class Gender\Gender {
/* Constantes */
const int IS_FEMALE = 70;
const int IS_MOSTLY_FEMALE = 102;
const int IS_MALE = 77;
const int IS_MOSTLY_MALE = 109;
const int IS_UNISEX_NAME = 63;
const int IS_A_COUPLE = 67;
const int NAME_NOT_FOUND = 32;
const int ERROR_IN_NAME = 69;
const int ANY_COUNTRY = 0;
const int BRITAIN = 1;
const int IRELAND = 2;
const int USA = 3;
const int SPAIN = 4;
const int PORTUGAL = 5;
const int ITALY = 6;
const int MALTA = 7;
const int FRANCE = 8;
const int BELGIUM = 9;
const int LUXEMBOURG = 10;
const int NETHERLANDS = 11;
const int GERMANY = 12;
const int EAST_FRISIA = 13;
const int AUSTRIA = 14;
const int SWISS = 15;
const int ICELAND = 16;
const int DENMARK = 17;
const int NORWAY = 18;
const int SWEDEN = 19;
const int FINLAND = 20;
const int ESTONIA = 21;
const int LATVIA = 22;
const int LITHUANIA = 23;
const int POLAND = 24;
const int CZECH_REP = 25;
const int SLOVAKIA = 26;
const int HUNGARY = 27;
const int ROMANIA = 28;
const int BULGARIA = 29;
const int BOSNIA = 30;
const int CROATIA = 31;
const int KOSOVO = 32;
const int MACEDONIA = 33;
const int MONTENEGRO = 34;
const int SERBIA = 35;
const int SLOVENIA = 36;
const int ALBANIA = 37;
const int GREECE = 38;
const int RUSSIA = 39;
const int BELARUS = 40;
const int MOLDOVA = 41;
const int UKRAINE = 42;
const int ARMENIA = 43;
const int AZERBAIJAN = 44;
const int GEORGIA = 45;
const int KAZAKH_UZBEK = 46;
const int TURKEY = 47;
const int ARABIA = 48;
const int ISRAEL = 49;
const int CHINA = 50;
const int INDIA = 51;
const int JAPAN = 52;
const int KOREA = 53;
/* Méthodes */
public __construct(string $dsn = ?)
public connect(string $dsn): bool
public country(int $country): array|false
public get(string $name, int $country = ?): int
public isNick(string $name0, string $name1, int $country = ?): array
public similarNames(string $name, int $country = ?): array
}

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 Gender\Gender::connect(string $dsn): bool

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.


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 Gender\Gender::country(int $country): array|false

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 Gender\Gender::get(string $name, int $country = ?): int

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 Gender\Gender::isNick(string $name0, string $name1, int $country = ?): array

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 Gender\Gender::similarNames(string $name, int $country = ?): array

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 ou récupère le jeu de caractères utilisé pour les messages du domaine DOMAIN
    • bindtextdomain — Spécifie ou récupère 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 — Définie 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 ou récupère le jeu de caractères utilisé pour les messages du domaine DOMAIN
  • bindtextdomain — Spécifie ou récupère 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 — Définie le domaine par défaut


Spécifie ou récupère le jeu de caractères utilisé pour les messages du domaine DOMAIN

  • « Fonctions Gettext
  • bindtextdomain »
  • PHP Manual
  • Fonctions Gettext
  • Spécifie ou récupère le jeu de caractères utilisé pour les messages du domaine DOMAIN

bind_textdomain_codeset

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

bind_textdomain_codeset — Spécifie ou récupère le jeu de caractères utilisé pour les messages du domaine DOMAIN

Description

bind_textdomain_codeset(string $domain, ?string $codeset): string|false

bind_textdomain_codeset() permet de récupérer ou définir l'encodage dans lequel les messages de domain seront retournés par gettext() et fonctions similaire.

Liste de paramètres

domain

Le domaine.

codeset

Le jeu de caractères. Si null, l'encodage actuellement défini est retourné.

Valeurs de retour

Une chaîne de caractères en cas de succès.

Historique

Version | Description
8.0.3 | codeset est désormais nullable. Auparavant, il n'était pas possible de récupérer l'encodage actuellement défini.

Notes

Note:

L'information bind_textdomain_codeset() est maintenue par process, et non par thread.


Spécifie ou récupère le chemin d'un domaine

  • « bind_textdomain_codeset
  • dcgettext »
  • PHP Manual
  • Fonctions Gettext
  • Spécifie ou récupère le chemin d'un domaine

bindtextdomain

(PHP 4, PHP 5, PHP 7, PHP 8)

bindtextdomain — Spécifie ou récupère le chemin d'un domaine

Description

bindtextdomain(string $domain, ?string $directory): string|false

La fonction bindtextdomain() défini ou récupère le chemin d'un domaine.

Liste de paramètres

domain

Le domaine.

directory

Le chemin vers le dossier. Une chaîne vide signifie le dossier courant. Si null, le dossier actuellement défini est retourné.

Valeurs de retour

Le chemin complet pour le domain actuellement défini, ou false si une erreur survient.

Historique

Version | Description
8.0.3 | directory est désormais nullable. Auparavant, il n'était pas possible de récupérer le dossier actuellement défini.

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

Notes

Note:

L'information bindtextdomain() est maintenue par process, et non par thread.


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, PHP 8)

dcgettext — Remplace le domaine lors d'une recherche

Description

dcgettext(string $domain, string $message, int $category): string

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, PHP 8)

dcngettext — Version plurielle de dcgettext

Description

dcngettext(
string $domain,
string $singular,
string $plural,
int $count,
int $category
): string

Vous permet de remplacer le domaine courant pour une recherche simple au pluriel d'un message.

Liste de paramètres

domain

Le domaine

singular

plural

count

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, PHP 8)

dgettext — Remplace le domaine courant

Description

dgettext(string $domain, string $message): string

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, PHP 8)

dngettext — Version plurielle de dgettext

Description

dngettext(
string $domain,
string $singular,
string $plural,
int $count
): string

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

singular

plural

count

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, PHP 8)

gettext — Recherche un message dans le domaine courant

Description

gettext(string $message): string

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, PHP 8)

ngettext — Version plurielle de gettext

Description

ngettext(string $singular, string $plural, int $count): string

Version plurielle de gettext(). Quelques langues ont plus d'une forme de messages pluriels dépendant du compteur.

Liste de paramètres

singular

L'ID singulier du message.

plural

L'ID pluriel du message.

count

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

?>


Définie le domaine par défaut

  • « ngettext
  • iconv »
  • PHP Manual
  • Fonctions Gettext
  • Définie le domaine par défaut

textdomain

(PHP 4, PHP 5, PHP 7, PHP 8)

textdomain — Définie le domaine par défaut

Description

textdomain(?string $domain): string

Cette fonction définie le domaine de recherche à utiliser lors des appels à gettext() sont effectués. Ce domaine dépend généralement de l'application.

Liste de paramètres

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.

Notes

Note:

L'information textdomain() est maintenue par process, et non par thread.


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 de caractères à partir d'un encodage vers un autre
    • 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.

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.


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 | "" | INI_ALL | Obsolète en PHP 5.6.0.
iconv.output_encoding | "" | INI_ALL | Obsolète en PHP 5.6.0.
iconv.internal_encoding | "" | INI_ALL | 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 fonctionnalité est OBSOLÈTE à partir de PHP 5.6.0. Dépendre de cette fonctionnalité est fortement déconseillé.

Les utilisateurs de PHP 5.6 et suivants doivent laisser cette option vide et définir plutôt l'option input_encoding.

iconv.output_encoding string
Avertissement

Cette fonctionnalité est OBSOLÈTE à partir de PHP 5.6.0. Dépendre de cette fonctionnalité est fortement déconseillé.

Les utilisateurs de PHP 5.6 et suivants doivent laisser cette option vide et définir plutôt l'option output_encoding.

iconv.internal_encoding string
Avertissement

Cette fonctionnalité est OBSOLÈTE à partir de PHP 5.6.0. Dépendre de cette fonctionnalité est fortement déconseillé.

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

Il est possible d'identifier durant l'exécution, la version de la bibliothèque iconv que vous utilisez.

Constantes d'implémentation 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.

Les constantes suivantes sont également disponibles :

Autres constantes iconv
Constante | Type | Description
ICONV_MIME_DECODE_STRICT | int | Un masque utilisé par iconv_mime_decode()
ICONV_MIME_DECODE_CONTINUE_ON_ERROR | int | 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 de caractères à partir d'un encodage vers un autre
  • 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, PHP 8)

iconv_get_encoding — Lit le jeu de caractères courant

Description

iconv_get_encoding(string $type = "all"): array|string|false

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, PHP 8)

iconv_mime_decode_headers — Décode des en-têtes MIME multiples

Description

iconv_mime_decode_headers(string $headers, int $mode = 0, ?string $encoding = null): array|false

iconv_mime_decode_headers() décode les en-têtes MIME multiples.

Liste de paramètres

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é.

encoding

Le paramètre optionnel encoding 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 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. Il est à noter que les noms d'en-têtes ne sont pas insensible à la casse.

Historique

Version | Description
8.0.0 | encoding est désormais nullable.

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, PHP 8)

iconv_mime_decode — Décode un champ d’en-tête MIME

Description

iconv_mime_decode(string $string, int $mode = 0, ?string $encoding = null): string|false

iconv_mime_decode() décode un champ d’en-tête MIME.

Liste de paramètres

string

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.

encoding

Le paramètre par défaut encoding 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.

Historique

Version | Description
8.0.0 | encoding est désormais nullable.

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, PHP 8)

iconv_mime_encode — Construit un en-tête MIME avec les champs field_name et field_value

Description

iconv_mime_encode(string $field_name, string $field_value, array $options = []): string|false

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.

options

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 options. 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 | int | 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 MIME
  • 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, PHP 8)

iconv_set_encoding — Modifie le jeu courant de caractères d'encodage

Description

iconv_set_encoding(string $type, string $encoding): bool

Modifie le jeu de caractères courant, et remplace la valeur courante du paramètre type par encoding.

Liste de paramètres

type

Les valeurs possibles de type sont :

  • input_encoding
  • output_encoding
  • internal_encoding

encoding

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, PHP 8)

iconv_strlen — Retourne le nombre de caractères d'une chaîne

Description

iconv_strlen(string $string, ?string $encoding = null): int|false

À 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 string, 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

string

La chaîne de caractères.

encoding

Si encoding est omit ou null, string est supposée être encodée en iconv.internal_encoding.

Valeurs de retour

Retourne le nombre de caractères de la chaîne string, sous la forme d'un entier, ou false si une erreur se produit durant l'encodage.

Historique

Version | Description
8.0.0 | encoding est désormais nullable.

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, PHP 8)

iconv_strpos — Trouve la position de la première occurrence d'une chaîne dans une autre

Description

iconv_strpos(
string $haystack,
string $needle,
int $offset = 0,
?string $encoding = null
): int|false

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 encoding.

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. Si la position est négative, elle est compté depuis la fin de la chaîne de caractères

encoding

Si le paramètre encoding est omis ou null, 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.

Historique

Version | Description
8.0.0 | encoding est désormais nullable.
7.1.0 | Suppport pour les offsets négatifs a été ajouté.

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, PHP 8)

iconv_strrpos — Trouve la position de la dernière occurrence d'un élément dans une chaîne

Description

iconv_strrpos(string $haystack, string $needle, ?string $encoding = null): int|false

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 encoding spécifié.

Liste de paramètres

haystack

La chaîne de caractères entière.

needle

La chaîne de caractères cherchée.

encoding

Si le paramètre optionnel encoding est omis ou null, 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.

Historique

Version | Description
8.0.0 | encoding est désormais nullable.

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, PHP 8)

iconv_substr — Coupe une partie de chaîne

Description

iconv_substr(
string $string,
int $offset,
?int $length = null,
?string $encoding = null
): string|false

Coupe une partie de la chaîne string à partir de la position offset et d'une longueur de length.

Liste de paramètres

string

La chaîne de caractères originale.

offset

Si offset n'est pas négatif, iconv_substr() retourne le segment de string 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 string.

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 string 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.

encoding

Si encoding est omis ou null, 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 encoding, contrairement à substr() qui se base toujours sur la position par octet.

Valeurs de retour

Retourne la portion de string spécifié par les paramètres offset et length.

Si string est plus petit que offset, false sera retourné. Si string est égal à offset caractères long, une chaîne de caractères vide sera retourné.

Historique

Version | Description
8.0.0 | length et encoding sont désormais nullable.
7.0.11 | Si string est égal à offset caractères long, une chaîne vide sera retournée. Antérieur à cette version, false était retourné dans ce cas.

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 de caractères à partir d'un encodage vers un autre

  • « iconv_substr
  • ob_iconv_handler »
  • PHP Manual
  • Fonctions iconv
  • Convertit une chaîne de caractères à partir d'un encodage vers un autre

iconv

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

iconv — Convertit une chaîne de caractères à partir d'un encodage vers un autre

Description

iconv(string $from_encoding, string $to_encoding, string $string): string|false

Convertit la chaîne string à partir de from_encoding vers l'encodage to_encoding.

Liste de paramètres

from_encoding

L'encodage utilisé pour interpréter string.

to_encoding

L'encodage souhaité du resultat.

Si la chaîne //TRANSLIT est ajoutée au paramètre to_encoding, alors 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 pourrait être représenté approximativement à partir d'un ou plusieurs caractères représentant le même caractère. Si la chaîne //IGNORE est ajoutée, les caractères ne pouvant être représentés dans le jeu de caractères cible seront tout simplement ignorés. Sinon, une alerte de niveau E_NOTICE sera générée et la fonction retournera false.

Attention

Si et comment //TRANSLIT fonctionne exactement dépend de l'implémentation iconv() du système (cf. ICONV_IMPL). Certaines implémentation sont connues pour ignorer //TRANSLIT, donc la conversion de caractères illégaux échouera probablement pour to_encoding.

string

La chaîne de caractères à convertir.

Valeurs de retour

Retourne la chaîne de caractères convertie, ou false si une erreur survient.

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;
?>

Résultat de l'exemple ci-dessus est 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 '

Notes

Note:

L'encodage de caractères et les options disponibles dépende de l'implémentation d'iconv. Si l'argument de from_encoding ou to_encoding n'est pas pris en charge sur le système actuel, false sera retourné.

Voir aussi

  • mb_convert_encoding() - Convertir une chaîne d'un codage de caractères à un autre
  • UConverter::transcode() - Convertit une chaîne d'un jeu de caractères à un autre


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, PHP 8)

ob_iconv_handler — Gestionnaire de sortie pour maîtriser le jeu de caractères de sortie

Description

ob_iconv_handler(string $contents, int $status): string

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 — Récupè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::getRawDecomposition — Gets the Decomposition_Mapping property for the given UTF-8 encoded code point
    • 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::setDate — Set a date fields
    • IntlCalendar::setDateTime — Set a date and time fields
    • 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
  • IntlGregorianCalendar — The IntlGregorianCalendar class
    • IntlGregorianCalendar::__construct — Create the Gregorian Calendar class
    • IntlGregorianCalendar::createFromDate — Create a new IntlGregorianCalendar instance from date
    • IntlGregorianCalendar::createFromDateTime — Create a new IntlGregorianCalendar instance from date and time
    • IntlGregorianCalendar::getGregorianChange — Get the Gregorian Calendar change date
    • IntlGregorianCalendar::isLeapYear — Determine if the given year is a leap year
    • IntlGregorianCalendar::setGregorianChange — Set the Gregorian Calendar the change date
  • IntlTimeZone — The IntlTimeZone class
    • IntlTimeZone::__construct — Private constructor to disallow direct instantiation
    • 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::createTimeZoneIDEnumeration — Get an enumeration over system time zone IDs with the given filter conditions
    • 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::getIDForWindowsID — Translate a Windows timezone into a system timezone
    • 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::getRegion — Get the region code associated with the given system time zone ID
    • IntlTimeZone::getTZDataVersion — Récupère la version du fuseau horaire actuellement utilisé par ICU
    • IntlTimeZone::getUnknown — Get the "unknown" time zone
    • IntlTimeZone::getWindowsID — Translate a system timezone into a Windows timezone
    • 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 convertie 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
  • 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 les chaînes données peuvent être confondues
    • 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
    • Spoofchecker::setRestrictionLevel — Set the restriction level
  • 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
  • IntlDatePatternGenerator — The IntlDatePatternGenerator class
    • IntlDatePatternGenerator::create — Creates a new IntlDatePatternGenerator instance
    • IntlDatePatternGenerator::getBestPattern — Determines the most suitable date/time format
  • 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 d'un jeu de caractères à un autre
  • 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 — Convertit un nom de domaine au format IDNA ASCII
    • idn_to_utf8 — Convertit le nom de domaine IDNA ASCII en Unicode
  • IntlChar
    • IntlChar::charAge — Get the "age" of the code point
    • IntlChar::charDigitValue — Get the decimal digit value of a decimal digit character
    • IntlChar::charDirection — Get bidirectional category value for a code point
    • IntlChar::charFromName — Find Unicode character by name and return its code point value
    • IntlChar::charMirror — Get the "mirror-image" character for a code point
    • IntlChar::charName — Retrieve the name of a Unicode character
    • IntlChar::charType — Get the general category value for a code point
    • IntlChar::chr — Return Unicode character by code point value
    • IntlChar::digit — Get the decimal digit value of a code point for a given radix
    • IntlChar::enumCharNames — Enumerate all assigned Unicode characters within a range
    • IntlChar::enumCharTypes — Enumerate all code points with their Unicode general categories
    • IntlChar::foldCase — Perform case folding on a code point
    • IntlChar::forDigit — Get character representation for a given digit and radix
    • IntlChar::getBidiPairedBracket — Get the paired bracket character for a code point
    • IntlChar::getBlockCode — Get the Unicode allocation block containing a code point
    • IntlChar::getCombiningClass — Get the combining class of a code point
    • IntlChar::getFC_NFKC_Closure — Get the FC_NFKC_Closure property for a code point
    • IntlChar::getIntPropertyMaxValue — Get the max value for a Unicode property
    • IntlChar::getIntPropertyMinValue — Get the min value for a Unicode property
    • IntlChar::getIntPropertyValue — Get the value for a Unicode property for a code point
    • IntlChar::getNumericValue — Get the numeric value for a Unicode code point
    • IntlChar::getPropertyEnum — Get the property constant value for a given property name
    • IntlChar::getPropertyName — Get the Unicode name for a property
    • IntlChar::getPropertyValueEnum — Get the property value for a given value name
    • IntlChar::getPropertyValueName — Get the Unicode name for a property value
    • IntlChar::getUnicodeVersion — Get the Unicode version
    • IntlChar::hasBinaryProperty — Check a binary Unicode property for a code point
    • IntlChar::isalnum — Check if code point is an alphanumeric character
    • IntlChar::isalpha — Check if code point is a letter character
    • IntlChar::isbase — Check if code point is a base character
    • IntlChar::isblank — Check if code point is a "blank" or "horizontal space" character
    • IntlChar::iscntrl — Check if code point is a control character
    • IntlChar::isdefined — Check whether the code point is defined
    • IntlChar::isdigit — Check if code point is a digit character
    • IntlChar::isgraph — Check if code point is a graphic character
    • IntlChar::isIDIgnorable — Check if code point is an ignorable character
    • IntlChar::isIDPart — Check if code point is permissible in an identifier
    • IntlChar::isIDStart — Check if code point is permissible as the first character in an identifier
    • IntlChar::isISOControl — Check if code point is an ISO control code
    • IntlChar::isJavaIDPart — Check if code point is permissible in a Java identifier
    • IntlChar::isJavaIDStart — Check if code point is permissible as the first character in a Java identifier
    • IntlChar::isJavaSpaceChar — Check if code point is a space character according to Java
    • IntlChar::islower — Check if code point is a lowercase letter
    • IntlChar::isMirrored — Check if code point has the Bidi_Mirrored property
    • IntlChar::isprint — Check if code point is a printable character
    • IntlChar::ispunct — Check if code point is punctuation character
    • IntlChar::isspace — Check if code point is a space character
    • IntlChar::istitle — Check if code point is a titlecase letter
    • IntlChar::isUAlphabetic — Check if code point has the Alphabetic Unicode property
    • IntlChar::isULowercase — Check if code point has the Lowercase Unicode property
    • IntlChar::isupper — Check if code point has the general category "Lu" (uppercase letter)
    • IntlChar::isUUppercase — Check if code point has the Uppercase Unicode property
    • IntlChar::isUWhiteSpace — Check if code point has the White_Space Unicode property
    • IntlChar::isWhitespace — Check if code point is a whitespace character according to ICU
    • IntlChar::isxdigit — Check if code point is a hexadecimal digit
    • IntlChar::ord — Return Unicode code point value of character
    • IntlChar::tolower — Make Unicode character lowercase
    • IntlChar::totitle — Make Unicode character titlecase
    • IntlChar::toupper — Make Unicode character uppercase
  • 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 opérations compatibles avec les paramètres régionaux incluant, mais non limité à cette liste, le formatage, la translitération, la conversion d'encodage, les opérations de calendrier, la collation » UCA-conforme, la localisation des limites du texte et l'utilisation des identificateurs de paramètres régionaux, des fuseaux horaires et des graphèmes.

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. Il peut gérer les pluriels, nombres, devises, conditions et bien plus encore.
  • 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.
  • Calendar: fournit une classe qui peut être utilisée pour les opérations de régionalisation du calendrier, et obtenir des informations variées tel que le timezone pour la locale choisi, le premier jour de la semaine, ou si le changement d'heure (été/hiver) est activée.
  • Timezone: fournit un emballage autour de» la base de données "Olson" qui contient des informations sur tous les timezone du monde.
  • Date formatter: autorise à afficher la date et l'heure en rapport avec le format localisé, ou le schéma donné ou les règles définies, et de transformer une chaîne de caractère en date et heure.
  • Transliterator: autorise à obtenir une représentation latine d'une chaîne de caractère dans différent langages.

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. À partir de PHP 7.4.0 ICU 50.1 ou plus récent est requis.


Installation

--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 |  | INI_ALL |
intl.error_level | 0 | INI_ALL |
intl.use_exceptions | 0 | INI_ALL | Disponible à partir de 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 » https://icu4c-demos.unicode.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 int

Le type 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.

La valeur par défaut est 0.

intl.use_exceptions int

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_ICU_VERSION (string)
La version courante de la bibliothèque ICU en tant qu'une chaîne décimale séparer avec des points.
INTL_MAX_LOCALE_LEN (int)
Limite la taille locale, par défaut à 80 en PHP. Les noms de locales plus grand que cette taille seront interdits.
IDNA_DEFAULT (int)
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 (int)
Autoriser le traitement des codepoints non affectés dans l'entrée pour les fonctions IDN.
IDNA_USE_STD3_RULES (int)
Vérifiez si l'entrée pour les fonctions IDN est conforme aux règles de noms de domaine ASCII.
IDNA_CHECK_BIDI (int)
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 (int)
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 (int)
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 (int)
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 (int)
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. Cette constante et l'usage par défaut ont été dépréciés à partir de la version PHP 7.2.0.
INTL_IDNA_VARIANT_UTS46 (int)
Utilise l'algorithme UTS #46 dans la fonction idn_to_utf8() ainsi que dans la fonction idn_to_ascii(). Disponible à partir de ICU 4.6.

Les erreurs suivantes font partie d'un masque de bits retourné par l'algorithme UTS #46 dans les fonctions idn_to_utf8() et idn_to_ascii().

IDNA_ERROR_EMPTY_LABEL (int)
IDNA_ERROR_LABEL_TOO_LONG (int)
IDNA_ERROR_DOMAIN_NAME_TOO_LONG (int)
IDNA_ERROR_LEADING_HYPHEN (int)
IDNA_ERROR_TRAILING_HYPHEN (int)
IDNA_ERROR_HYPHEN_3_4 (int)
IDNA_ERROR_LEADING_COMBINING_MARK (int)
IDNA_ERROR_DISALLOWED (int)
IDNA_ERROR_PUNYCODE (int)
IDNA_ERROR_LABEL_HAS_DOT (int)
IDNA_ERROR_INVALID_ACE_LABEL (int)
IDNA_ERROR_BIDI (int)
IDNA_ERROR_CONTEXTJ (int)


  • « 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, PHP 8, 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

class Collator {
/* Constantes */
const int DEFAULT_VALUE;
const int PRIMARY;
const int SECONDARY;
const int TERTIARY;
const int DEFAULT_STRENGTH;
const int QUATERNARY;
const int IDENTICAL;
const int OFF;
const int ON;
const int SHIFTED;
const int NON_IGNORABLE;
const int LOWER_FIRST;
const int UPPER_FIRST;
const int FRENCH_COLLATION;
const int ALTERNATE_HANDLING;
const int CASE_FIRST;
const int CASE_LEVEL;
const int NORMALIZATION_MODE;
const int STRENGTH;
const int HIRAGANA_QUATERNARY_MODE;
const int NUMERIC_COLLATION;
const int SORT_REGULAR;
const int SORT_STRING;
const int SORT_NUMERIC;
/* Méthodes */
public __construct(string $locale)
public asort(array &$array, int $flags = Collator::SORT_REGULAR): bool
public compare(string $string1, string $string2): int|false
public static create(string $locale): ?Collator
public getAttribute(int $attribute): int|false
public getErrorCode(): int|false
public getErrorMessage(): string|false
public getLocale(int $type): string|false
public getSortKey(string $string): string|false
public getStrength(): int
public setAttribute(int $attribute, int $value): bool
public setStrength(int $strength): bool
public sortWithSortKeys(array &$array): bool
public sort(array &$array, int $flags = Collator::SORT_REGULAR): bool
}

Constantes pré-définies

Collator::FRENCH_COLLATION

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

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

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

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

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

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

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

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
Collator::PRIMARY
Collator::SECONDARY
Collator::TERTIARY
Collator::DEFAULT_STRENGTH
Collator::QUATERNARY
Collator::IDENTICAL
Collator::OFF
Collator::ON
Collator::SHIFTED
Collator::NON_IGNORABLE
Collator::LOWER_FIRST
Collator::UPPER_FIRST
Collator::SORT_REGULAR

Collator::SORT_STRING

Collator::SORT_NUMERIC

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 — Récupè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, PHP 8, 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 Collator::asort(array &$array, int $flags = Collator::SORT_REGULAR): bool

Style procédural

collator_asort(Collator $object, array &$array, int $flags = Collator::SORT_REGULAR): bool

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

object

Objet Collator.

array

tableau de chaînes à trier.

flags

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.

La valeur par défaut de flags est Collator::SORT_REGULAR. Cette valeur est aussi utilisé si une valeur invalide de flags a été fournit.

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, PHP 8, PECL intl >= 1.0.0)

Collator::compare -- collator_compare — Compare deux chaînes Unicode

Description

Style orienté objet

public Collator::compare(string $string1, string $string2): int|false

Style procédural

collator_compare(Collator $object, string $string1, string $string2): int|false

Compare deux chaînes Unicode en fonction des règles de collation.

Liste de paramètres

object

Objet Collator.

string1

La première chaîne à comparer.

string2

La deuxième chaîne à comparer.

Valeurs de retour

Résultats de comparaison

  • 1 si string1 est plus grand que string2 ;

  • 0 si string1 est égal à string2;

  • -1 si string1 est plus petit que string2 .

Retourne false en cas d'échec.

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

Exemple #2 Comparer des chaînes sans diacritique ou sensibilité à la casse

<?php
$c = new Collator( 'en' );
$c->setStrength( Collator::PRIMARY );
if ( $c->compare( 'Séan', 'Sean' ) == 0 )
{
echo "The same\n";
}

L'exemple ci-dessus va afficher :

The same

Cet exemple demande au collator de ne comparer en ne prenant compte que des caractères de base. La documentation pour Collator->setStrength() explique les duretés différentes.

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, PHP 8, PECL intl >= 1.0.0)

Collator::__construct — Création d'un collator

Description

public Collator::__construct(string $locale)

Création d'une nouvelle instance de 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 une chaîne de caractères vide 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.

Erreurs / Exceptions

Retourne un objet "vide" en cas d'erreur. Utiliser intl_get_error_code() et / ou intl_get_error_message() pour en savoir plus.

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, PHP 8, PECL intl >= 1.0.0)

Collator::create -- collator_create — Création d'un collator

Description

Style orienté objet

public static Collator::create(string $locale): ?Collator

Style procédural

collator_create(string $locale): ?Collator

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 une chaîne de caractères vide est passé, la locale par défaut sera utilisée. Si le mot clé "root" est passé, 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, PHP 8, PECL intl >= 1.0.0)

Collator::getAttribute -- collator_get_attribute — Lit un attribut de collation

Description

Style orienté objet

public Collator::getAttribute(int $attribute): int|false

Style procédural

collator_get_attribute(Collator $object, int $attribute): int|false

Lit un attribut de collation.

Liste de paramètres

object

Objet Collator.

attribute

L'attribut à lire.

Valeurs de retour

La valeur de l'attribut, ou false si une erreur survient.

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, PHP 8, PECL intl >= 1.0.0)

Collator::getErrorCode -- collator_get_error_code — Lit la dernière erreur du collator

Description

Style orienté objet

public Collator::getErrorCode(): int|false

Style procédural

collator_get_error_code(Collator $object): int|false

Liste de paramètres

object

Objet Collator.

Valeurs de retour

Le code d'erreur retourné par le dernier appel à un objet de l'API Collator, ou false si une erreur survient.

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, PHP 8, PECL intl >= 1.0.0)

Collator::getErrorMessage -- collator_get_error_message — Lit le dernier message d'erreur du collator

Description

Style orienté objet

public Collator::getErrorMessage(): string|false

Style procédural

collator_get_error_message(Collator $object): string|false

Lit le dernier message d'erreur.

Liste de paramètres

object

Object Collator.

Valeurs de retour

La description d'une erreur survenue lors du dernier appel à une méthode de l'API Collator, ou false si une erreur survient.

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, PHP 8, PECL intl >= 1.0.0)

Collator::getLocale -- collator_get_locale — Lit le nom de la locale d'un collator

Description

Style orienté objet

public Collator::getLocale(int $type): string|false

Style procédural

collator_get_locale(Collator $object, int $type): string|false

Lit le nom de la locale d'un collator

Liste de paramètres

object

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 si une erreur est survenue 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


Récupère la clé de tri pour une chaine

  • « Collator::getLocale
  • Collator::getStrength »
  • PHP Manual
  • Collator
  • Récupère la clé de tri pour une chaine

Collator::getSortKey

collator_get_sort_key

(PHP 5 >= 5.3.2, PHP 7, PHP 8, PECL intl >= 1.0.3)

Collator::getSortKey -- collator_get_sort_key — Récupère la clé de tri pour une chaine

Description

Style orienté objet

public Collator::getSortKey(string $string): string|false

Style procédural

collator_get_sort_key(Collator $object, string $string): string|false

Retourne la clé de la collation pour une chaîne. Les clés de collation peuvent être comparées directement au lieu de chaînes, néanmoins elles sont spécifique à l'implémentation et peuvent changer entre les versions de la bibliothèque ICU. Les clés de tries sont généralement seulement utile dans les bases de données ou autres circonstances où les appels de fonctions sont extrêmement cher.

Liste de paramètres

object

Objet Collator.

string

La chaine depuis laquelle produire la clé.

Valeurs de retour

Retourne la clé de collation pour la chaîne, 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 Exemple collator_get_sort_key()

<?php
$s1 = 'Hello';

$coll = collator_create('en_US');
$res = collator_get_sort_key($coll, $s1);

echo bin2hex($res);
?>

Résultat de l'exemple ci-dessus est similaire à :

3832404046010901dc08

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, PHP 8, PECL intl >= 1.0.0)

Collator::getStrength -- collator_get_strength — Récupère la dureté de classement utilisé

Description

Style orienté objet

public Collator::getStrength(): int

Style procédural

collator_get_strength(Collator $object): int

Liste de paramètres

object

Objet Collator.

Valeurs de retour

Retourne la dureté du classement, ou false si une erreur survient.

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, PHP 8, PECL intl >= 1.0.0)

Collator::setAttribute -- collator_set_attribute — Configure l'attribut de collation

Description

Style orienté objet

public Collator::setAttribute(int $attribute, int $value): bool

Style procédural

collator_set_attribute(Collator $object, int $attribute, int $value): bool

Liste de paramètres

object

Objet Collator.

attribute

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.

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, PHP 8, PECL intl >= 1.0.0)

Collator::setStrength -- collator_set_strength — Set collation strength

Description

Style orienté objet

public Collator::setStrength(int $strength): bool

Style procédural

collator_set_strength(Collator $object, int $strength): bool

Le service de collation » ICU supporte 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. Ceci est aussi appelé le level 1 de dureté.

  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. Ceci est aussi appelé le level 2 de dureté.

    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. Ceci est aussi appelé le level 3 de dureté.

  4. Niveau quaternaire : Lorsque le ponctuation est ignorée, au niveaux 1-3, 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. Ceci est aussi appelé le level 4 de dureté. Le niveau quaternaire ne doit être utilisé que lorsqu'il faut ignorer la ponctuation ou traiter du texte 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 niveaux 1-4. Par exemple, les cantillation hébraïque 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. Ceci est aussi appelé le level 5 de dureté.

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

object

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, PHP 8, 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 Collator::sortWithSortKeys(array &$array): bool

Style procédural

collator_sort_with_sort_keys(Collator $object, array &$array): bool

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

object

Objet Collator.

array

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, PHP 8, PECL intl >= 1.0.0)

Collator::sort -- collator_sort — Trie un tableau avec une collation

Description

Style orienté objet

public Collator::sort(array &$array, int $flags = Collator::SORT_REGULAR): bool

Style procédural

collator_sort(Collator $object, array &$array, int $flags = Collator::SORT_REGULAR): bool

Cette fonction trie un tableau en fonction des conventions locales.

Équivalent à la fonction standard PHP sort().

Liste de paramètres

object

Objet Collator.

array

tableau de chaînes à trier.

flags

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 flags 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, PHP 8, 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, quelqu'en soit la devise demandée. Cela signifie que le même nombre aura différentes valeurs 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

class NumberFormatter {
/* Constantes */
public const int PATTERN_DECIMAL;
public const int DECIMAL;
public const int CURRENCY;
public const int PERCENT;
public const int SCIENTIFIC;
public const int SPELLOUT;
public const int ORDINAL;
public const int DURATION;
public const int PATTERN_RULEBASED;
public const int IGNORE;
public const int CURRENCY_ACCOUNTING;
public const int DEFAULT_STYLE;
public const int ROUND_CEILING;
public const int ROUND_FLOOR;
public const int ROUND_DOWN;
public const int ROUND_UP;
public const int ROUND_HALFEVEN;
public const int ROUND_HALFDOWN;
public const int ROUND_HALFUP;
public const int PAD_BEFORE_PREFIX;
public const int PAD_AFTER_PREFIX;
public const int PAD_BEFORE_SUFFIX;
public const int PAD_AFTER_SUFFIX;
public const int PARSE_INT_ONLY;
public const int GROUPING_USED;
public const int DECIMAL_ALWAYS_SHOWN;
public const int MAX_INTEGER_DIGITS;
public const int MIN_INTEGER_DIGITS;
public const int INTEGER_DIGITS;
public const int MAX_FRACTION_DIGITS;
public const int MIN_FRACTION_DIGITS;
public const int FRACTION_DIGITS;
public const int MULTIPLIER;
public const int GROUPING_SIZE;
public const int ROUNDING_MODE;
public const int ROUNDING_INCREMENT;
public const int FORMAT_WIDTH;
public const int PADDING_POSITION;
public const int SECONDARY_GROUPING_SIZE;
public const int SIGNIFICANT_DIGITS_USED;
public const int MIN_SIGNIFICANT_DIGITS;
public const int MAX_SIGNIFICANT_DIGITS;
public const int LENIENT_PARSE;
public const int POSITIVE_PREFIX;
public const int POSITIVE_SUFFIX;
public const int NEGATIVE_PREFIX;
public const int NEGATIVE_SUFFIX;
public const int PADDING_CHARACTER;
public const int CURRENCY_CODE;
public const int DEFAULT_RULESET;
public const int PUBLIC_RULESETS;
public const int DECIMAL_SEPARATOR_SYMBOL;
public const int GROUPING_SEPARATOR_SYMBOL;
public const int PATTERN_SEPARATOR_SYMBOL;
public const int PERCENT_SYMBOL;
public const int ZERO_DIGIT_SYMBOL;
public const int DIGIT_SYMBOL;
public const int MINUS_SIGN_SYMBOL;
public const int PLUS_SIGN_SYMBOL;
public const int CURRENCY_SYMBOL;
public const int INTL_CURRENCY_SYMBOL;
public const int MONETARY_SEPARATOR_SYMBOL;
public const int EXPONENTIAL_SYMBOL;
public const int PERMILL_SYMBOL;
public const int PAD_ESCAPE_SYMBOL;
public const int INFINITY_SYMBOL;
public const int NAN_SYMBOL;
public const int SIGNIFICANT_DIGIT_SYMBOL;
public const int MONETARY_GROUPING_SEPARATOR_SYMBOL;
public const int TYPE_DEFAULT;
public const int TYPE_INT32;
public const int TYPE_INT64;
public const int TYPE_DOUBLE;
public const int TYPE_CURRENCY;
/* Méthodes */
public __construct(string $locale, int $style, ?string $pattern = null)
public static create(string $locale, int $style, ?string $pattern = null): ?NumberFormatter
public formatCurrency(float $amount, string $currency): string|false
public format(int|float $num, int $type = NumberFormatter::TYPE_DEFAULT): string|false
public getAttribute(int $attribute): int|float|false
public getErrorCode(): int
public getErrorMessage(): string
public getLocale(int $type = ULOC_ACTUAL_LOCALE): string|false
public getPattern(): string|false
public getSymbol(int $symbol): string|false
public getTextAttribute(int $attribute): string|false
public parseCurrency(string $string, string &$currency, int &$offset = null): float|false
public parse(string $string, int $type = NumberFormatter::TYPE_DOUBLE, int &$offset = null): int|float|false
public setAttribute(int $attribute, int|float $value): bool
public setPattern(string $pattern): bool
public setSymbol(int $symbol, string $value): bool
public setTextAttribute(int $attribute, string $value): bool
}

Constantes pré-définies

Ces styles sont utilisés par numfmt_create() pour définir le type de formateur.

NumberFormatter::PATTERN_DECIMAL
Format décimal défini par un modèle
NumberFormatter::DECIMAL
Format décimal
NumberFormatter::CURRENCY
Format monétaire
NumberFormatter::PERCENT
Format pourcentage
NumberFormatter::SCIENTIFIC
Format scientifique
NumberFormatter::SPELLOUT
Format littéral, basé sur des règles
NumberFormatter::ORDINAL
Format ordinal, basé sur des règles
NumberFormatter::DURATION
Format de durée, basé sur des règles
NumberFormatter::PATTERN_RULEBASED
Format de modèle, basé sur des règles
NumberFormatter::CURRENCY_ACCOUNTING
Format monétaire pour la comptabilité, par exemple, ($3.00) pour un montant de devise négatif au lieu de -$3.00. Disponible à partir de PHP 7.4.1 et ICU 53.
NumberFormatter::DEFAULT_STYLE
Format par défaut pour les conventions locales
NumberFormatter::IGNORE
Alias de PATTERN_DECIMAL

Ces constantes définissent la méthode d'analyse et de formatage des nombres. Ils doivent être utilisés comme arguments des fonctions numfmt_format() et numfmt_parse().

NumberFormatter::TYPE_DEFAULT
Dérive le type depuis le type de variable
NumberFormatter::TYPE_INT32
Formate / analyse un entier 32 bits
NumberFormatter::TYPE_INT64
Formate / analyse un entier 64 bits
NumberFormatter::TYPE_DOUBLE
Formate / analyse un nombre décimal
NumberFormatter::TYPE_CURRENCY
Formate / analyse une valeur monétaire. Obsolète à partir de PHP 8.3.0

Attributs de formats de nombre utilisés par numfmt_get_attribute() et numfmt_set_attribute().

NumberFormatter::PARSE_INT_ONLY
Analyse uniquement les entiers.
NumberFormatter::GROUPING_USED
Séparateur de groupes.
NumberFormatter::DECIMAL_ALWAYS_SHOWN
Affiche toujours une virgule décimale.
NumberFormatter::MAX_INTEGER_DIGITS
Nombre maximal de chiffres.
NumberFormatter::MIN_INTEGER_DIGITS
Nombre minimal de chiffres.
NumberFormatter::INTEGER_DIGITS
Nombre de chiffres.
NumberFormatter::MAX_FRACTION_DIGITS
Nombre maximal de décimales.
NumberFormatter::MIN_FRACTION_DIGITS
Nombre minimal de décimales.
NumberFormatter::FRACTION_DIGITS
Nombre de décimales.
NumberFormatter::MULTIPLIER
Multiplicateur.
NumberFormatter::GROUPING_SIZE
Taille de regroupement.
NumberFormatter::ROUNDING_MODE
Mode d'arrondi.
NumberFormatter::ROUNDING_INCREMENT
Incrément d'arrondi.
NumberFormatter::FORMAT_WIDTH
La largeur de complément pour le formattage d'un nombre.
NumberFormatter::PADDING_POSITION
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
Taille secondaire de groupement.
NumberFormatter::SIGNIFICANT_DIGITS_USED
Utilise les chiffres significatifs.
NumberFormatter::MIN_SIGNIFICANT_DIGITS
Nombre minimum de chiffres significatifs.
NumberFormatter::MAX_SIGNIFICANT_DIGITS
Nombre maximum de chiffres significatifs.
NumberFormatter::LENIENT_PARSE
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
Préfixe positif.
NumberFormatter::POSITIVE_SUFFIX
Suffixe positif.
NumberFormatter::NEGATIVE_PREFIX
Préfixe négatif.
NumberFormatter::NEGATIVE_SUFFIX
Suffixe négatif.
NumberFormatter::PADDING_CHARACTER
Le caractère à utiliser pour compléter les formats jusqu'à la taille.
NumberFormatter::CURRENCY_CODE
Le code de devise ISO.
NumberFormatter::DEFAULT_RULESET
Le jeu de règles par défaut. Il est uniquement utilisable avec les formatteurs à règles.
NumberFormatter::PUBLIC_RULESETS
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
Le séparateur décimal.
NumberFormatter::GROUPING_SEPARATOR_SYMBOL
Le séparateur de groupes.
NumberFormatter::PATTERN_SEPARATOR_SYMBOL
Le modèle de séparateur.
NumberFormatter::PERCENT_SYMBOL
Le signe de pourcentage.
NumberFormatter::ZERO_DIGIT_SYMBOL
Zéro.
NumberFormatter::DIGIT_SYMBOL
Un caractère représentant un chiffre dans un modèle.
NumberFormatter::MINUS_SIGN_SYMBOL
Le signe moins.
NumberFormatter::PLUS_SIGN_SYMBOL
Le signe plus.
NumberFormatter::CURRENCY_SYMBOL
Le symbole de devise.
NumberFormatter::INTL_CURRENCY_SYMBOL
Le symbole international de devise.
NumberFormatter::MONETARY_SEPARATOR_SYMBOL
Le séparateur monétaire.
NumberFormatter::EXPONENTIAL_SYMBOL
Le symbole d'exponentiel.
NumberFormatter::PERMILL_SYMBOL
Le symbol par mille.
NumberFormatter::PAD_ESCAPE_SYMBOL
Le caractère de protection des symboles.
NumberFormatter::INFINITY_SYMBOL
Le symbole de l'infini.
NumberFormatter::NAN_SYMBOL
Le symbole "n'est pas un nombre".
NumberFormatter::SIGNIFICANT_DIGIT_SYMBOL
Le symbole des chiffres significatifs.
NumberFormatter::MONETARY_GROUPING_SEPARATOR_SYMBOL
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
Mode d'arrondi vers l'infini positif.
NumberFormatter::ROUND_DOWN
Mode d'arrondi vers zéro.
NumberFormatter::ROUND_FLOOR
Mode d'arrondi vers l'infini négatif.
NumberFormatter::ROUND_HALFDOWN
Mode d'arrondi vers le plus proche entier, a moins qu'ils soient équidistants : arrondi inférieur dans ce cas.
NumberFormatter::ROUND_HALFEVEN
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
Mode d'arrondi vers le plus proche entier, a moins qu'ils soient équidistants : arrondi supérieur dans ce cas.
NumberFormatter::ROUND_UP
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
Caractères de compléments ajoutés après le préfixe.
NumberFormatter::PAD_AFTER_SUFFIX
Caractères de compléments ajoutés après le suffixe.
NumberFormatter::PAD_BEFORE_PREFIX
Caractères de compléments ajoutés avant le préfixe.
NumberFormatter::PAD_BEFORE_SUFFIX
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, PHP 8, 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::create(string $locale, int $style, ?string $pattern = null): ?NumberFormatter

Style procédural

numfmt_create(string $locale, int $style, ?string $pattern = null): ?NumberFormatter

Style orienté objet (constructeur)

public NumberFormatter::__construct(string $locale, int $style, ?string $pattern = null)

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 null en cas d'erreur.

Historique

Version | Description
8.0.0 | pattern est désormais nullable.

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, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::formatCurrency -- numfmt_format_currency — Formate une valeur monétaire

Description

Style orienté objet

public NumberFormatter::formatCurrency(float $amount, string $currency): string|false

Style procédural

numfmt_format_currency(NumberFormatter $formatter, float $amount, string $currency): string|false

Formate une valeur monétaire, en fonction des règles du formateur.

Liste de paramètres

formatter

L'objet NumberFormatter.

amount

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 monétaire formatée, ou false si une erreur survient.

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?.

Notes

Note:

Les formats réalisables par cette méthode de formatage ne peuvent pas utiliser pleinement les possibilités de la bibliothèque ICU sous-jacente, comme par exemple le formatage de la monnaie avec un symbole monétaire court.

Pour les utiliser pleinement, utilisez msgfmt_format_message().

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
  • msgfmt_format_message() - Formate rapidement un message


Formate un nombre

  • « NumberFormatter::formatCurrency
  • NumberFormatter::getAttribute »
  • PHP Manual
  • NumberFormatter
  • Formate un nombre

NumberFormatter::format

numfmt_format

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::format -- numfmt_format — Formate un nombre

Description

Style orienté objet

public NumberFormatter::format(int|float $num, int $type = NumberFormatter::TYPE_DEFAULT): string|false

Style procédural

numfmt_format(NumberFormatter $formatter, int|float $num, int $type = NumberFormatter::TYPE_DEFAULT): string|false

Formate une valeur numérique, selon les règles du formateur.

Liste de paramètres

formatter

L'objet NumberFormatter.

num

La valeur à formater. Ce peut être un int ou un float. Les autres valeurs seront converties en valeur numérique avant le formatage.

type

Le type de format. Notez que NumberFormatter::TYPE_CURRENCY n'est pas pris en charge ; utilisez NumberFormatter::formatCurrency() à la place.

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

Notes

Note:

Les formats réalisables par cette méthode de formatage ne peuvent pas utiliser pleinement les possibilités de la bibliothèque ICU sous-jacente, comme par exemple le formatage de la monnaie avec un symbole monétaire court.

Pour les utiliser pleinement, utilisez msgfmt_format_message().

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
  • msgfmt_format_message() - Formate rapidement un message


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, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::getAttribute -- numfmt_get_attribute — Lit un attribut

Description

Style orienté objet

public NumberFormatter::getAttribute(int $attribute): int|float|false

Style procédural

numfmt_get_attribute(NumberFormatter $formatter, int $attribute): int|float|false

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

formatter

L'objet NumberFormatter.

attribute

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, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::getErrorCode -- numfmt_get_error_code — Lit le dernier code d'erreur du formateur

Description

Style orienté objet

public NumberFormatter::getErrorCode(): int

Style procédural

numfmt_get_error_code(NumberFormatter $formatter): int

Lit le code d'erreur généré par la dernière fonction du formateur.

Liste de paramètres

formatter

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, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::getErrorMessage -- numfmt_get_error_message — Lit le dernier message d'erreur du formateur

Description

Style orienté objet

public NumberFormatter::getErrorMessage(): string

Style procédural

numfmt_get_error_message(NumberFormatter $formatter): string

Lit le message d'erreur généré par la dernière fonction du formateur.

Liste de paramètres

formatter

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, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::getLocale -- numfmt_get_locale — Lit la locale du formateur

Description

Style orienté objet

public NumberFormatter::getLocale(int $type = ULOC_ACTUAL_LOCALE): string|false

Style procédural

numfmt_get_locale(NumberFormatter $formatter, int $type = ULOC_ACTUAL_LOCALE): string|false

Lit le nom de la locale du formateur.

Liste de paramètres

formatter

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, ou false en cas d'échec.

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, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::getPattern -- numfmt_get_pattern — Lit le modèle du formateur

Description

Style orienté objet

public NumberFormatter::getPattern(): string|false

Style procédural

numfmt_get_pattern(NumberFormatter $formatter): string|false

Extrait le modèle utilisé par le formateur.

Liste de paramètres

formatter

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, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::getSymbol -- numfmt_get_symbol — Lit la valeur du symbole

Description

Style orienté objet

public NumberFormatter::getSymbol(int $symbol): string|false

Style procédural

numfmt_get_symbol(NumberFormatter $formatter, int $symbol): string|false

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

formatter

L'objet NumberFormatter.

symbol

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, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::getTextAttribute -- numfmt_get_text_attribute — Lit un attribut textuel

Description

Style orienté objet

public NumberFormatter::getTextAttribute(int $attribute): string|false

Style procédural

numfmt_get_text_attribute(NumberFormatter $formatter, int $attribute): string|false

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

formatter

L'objet NumberFormatter.

attribute

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, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::parseCurrency -- numfmt_parse_currency — Analyse un nombre monétaire

Description

Style orienté objet

public NumberFormatter::parseCurrency(string $string, string &$currency, int &$offset = null): float|false

Style procédural

numfmt_parse_currency(
NumberFormatter $formatter,
string $string,
string &$currency,
int &$offset = null
): float|false

Analyse une chaîne dans un nombre flottant et une devise, à l'aide du formateur.

Liste de paramètres

formatter

L'objet NumberFormatter.

currency

Le nom de la devise (le code 3 lettres ISO 4217).

offset

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, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::parse -- numfmt_parse — Analyse un nombre

Description

Style orienté objet

public NumberFormatter::parse(string $string, int $type = NumberFormatter::TYPE_DOUBLE, int &$offset = null): int|float|false

Style procédural

numfmt_parse(
NumberFormatter $formatter,
string $string,
int $type = NumberFormatter::TYPE_DOUBLE,
int &$offset = null
): int|float|false

Analyse une chaîne et extrait un nombre, à l'aide des règles du formateur.

Liste de paramètres

formatter

L'objet NumberFormatter.

string

La chaîne à analyser pour le nombre.

type

Le type de format à utiliser. Par défaut, NumberFormatter::TYPE_DOUBLE est utilisée. Notez que NumberFormatter::TYPE_CURRENCY n'est pas pris en charge ; utilisez NumberFormatter::parseCurrency() à la place.

offset

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, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::setAttribute -- numfmt_set_attribute — Affecte un attribut du formateur

Description

Style orienté objet

public NumberFormatter::setAttribute(int $attribute, int|float $value): bool

Style procédural

numfmt_set_attribute(NumberFormatter $formatter, int $attribute, int|float $value): bool

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

formatter

L'objet NumberFormatter.

attribute

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, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::setPattern -- numfmt_set_pattern — Configure le modèle du formateur

Description

Style orienté objet

public NumberFormatter::setPattern(string $pattern): bool

Style procédural

numfmt_set_pattern(NumberFormatter $formatter, string $pattern): bool

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

formatter

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, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::setSymbol -- numfmt_set_symbol — Configure le symbole du formateur

Description

Style orienté objet

public NumberFormatter::setSymbol(int $symbol, string $value): bool

Style procédural

numfmt_set_symbol(NumberFormatter $formatter, int $symbol, string $value): bool

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

formatter

L'objet NumberFormatter.

symbol

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, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::setTextAttribute -- numfmt_set_text_attribute — Modifie un attribut texte

Description

Style orienté objet

public NumberFormatter::setTextAttribute(int $attribute, string $value): bool

Style procédural

numfmt_set_text_attribute(NumberFormatter $formatter, int $attribute, string $value): bool

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

formatter

Un objet NumberFormatter.

attribute

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, PHP 8, 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 (Français 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

class Locale {
/* Constantes */
public const int ACTUAL_LOCALE;
public const int VALID_LOCALE;
public const null DEFAULT_LOCALE = null;
public const string LANG_TAG;
public const string EXTLANG_TAG;
public const string SCRIPT_TAG;
public const string REGION_TAG;
public const string VARIANT_TAG;
public const string GRANDFATHERED_LANG_TAG;
public const string PRIVATE_TAG;
/* Méthodes */
public static acceptFromHttp(string $header): string|false
public static canonicalize(string $locale): ?string
public static composeLocale(array $subtags): string|false
public static filterMatches(string $languageTag, string $locale, bool $canonicalize = false): ?bool
public static getAllVariants(string $locale): ?array
public static getDefault(): string
public static getDisplayLanguage(string $locale, ?string $displayLocale = null): string|false
public static getDisplayName(string $locale, ?string $displayLocale = null): string|false
public static getDisplayRegion(string $locale, ?string $displayLocale = null): string|false
public static getDisplayScript(string $locale, ?string $displayLocale = null): string|false
public static getDisplayVariant(string $locale, ?string $displayLocale = null): string|false
public static getKeywords(string $locale): array|false|null
public static getPrimaryLanguage(string $locale): ?string
public static getRegion(string $locale): ?string
public static getScript(string $locale): ?string
public static lookup(
array $languageTag,
string $locale,
bool $canonicalize = false,
?string $defaultLocale = null
): ?string
public static parseLocale(string $locale): ?array
public static setDefault(string $locale): bool
}

Constantes pré-définies

Ces constantes définissent le comportement de Locale

Locale::DEFAULT_LOCALE
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
La locale utilisée par les données entrante.
Locale::VALID_LOCALE
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
Sous-libellé de langue
Locale::EXTLANG_TAG
Sous-libellé de langue étendu
Locale::SCRIPT_TAG
Sous-libellé de script
Locale::REGION_TAG
Sous-libelleé de région
Locale::VARIANT_TAG
Sous-libellé de variante
Locale::GRANDFATHERED_LANG_TAG
Sous-libellé d'ascendant de langage
Locale::PRIVATE_TAG
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, PHP 8, 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 Locale::acceptFromHttp(string $header): string|false

Style procédural

locale_accept_from_http(string $header): string|false

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.

Retourne false quand la longueur de header dépasse INTL_MAX_LOCALE_LEN.

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, PHP 8, PECL intl >= 1.0.0)

Locale::canonicalize -- locale_canonicalize — Canonise la chaîne représentant la locale

Description

public static Locale::canonicalize(string $locale): ?string

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

locale

Valeurs de retour

Chaîne canonicalisé dans la locale.

Retourne null quand la longueur de locale excède INTL_MAX_LOCALE_LEN.


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, PHP 8, PECL intl >= 1.0.0)

Locale::composeLocale -- locale_compose — Retourne un identifiant de locale correct

Description

Style orienté objet

public static Locale::composeLocale(array $subtags): string|false

Style procédural

locale_compose(array $subtags): string|false

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 sont la valeur des sous-tags.

Note:

Les sous-tags 'variant' et 'private' peuvent prendre jusqu'à 15 valeurs alors que 'extlang' ne peut prendre qu'un maximum de 3 valeurs. Par exemple 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 et ainsi de suite.

Alternativement, les valeurs de 'variant', 'private' et 'extlang' peuvent être spécifié en tant qu'un tableau sous une clé spécifique (e.g. 'variant'). Dans ce cas aucune limite sur le nombre de sous-tags reconnus n'est appliqué.

Valeurs de retour

The corresponding locale identifier, ou false quand subtags est vide.

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

Exemple #3 Limites des Sous-tags

Si subtags sont fournit en tant que clés différente avec un suffixe numérique, les clés non supportés sont ignoré silencieusement (dans ce cas 'extlang3'), et ordonné dans le résultat par le suffixe numérique. Il n'y a pas de limites, si les sous-tags sont fournit en tant que tableau; leur ordre est comme donné.

<?php
$arr = array(
'language' => 'en',
'script' => 'Hans',
'region' => 'CN',
'extlang3' => 'd',
'extlang2' => 'c',
'extlang1' => 'b',
'extlang0' => 'a',
);
echo locale_compose($arr), PHP_EOL;
$arr = array(
'language' => 'en',
'script' => 'Hans',
'region' => 'CN',
'extlang' => ['a', 'b', 'c', 'd'],
);
echo locale_compose($arr), PHP_EOL;
?>

L'exemple ci-dessus va afficher :

en_a_b_c_Hans_CN
en_a_b_c_d_Hans_CN

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, PHP 8, 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 Locale::filterMatches(string $languageTag, string $locale, bool $canonicalize = false): ?bool

Style procédural

locale_filter_matches(string $languageTag, string $locale, bool $canonicalize = false): ?bool

Vérifie si le filtre languageTag correspond à la locale selon la RFC 4647, et son algorithme de filtrage simple.

Liste de paramètres

languageTag

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 languageTag, et false otherwise.

Retourne null quand la longueur de locale excède INTL_MAX_LOCALE_LEN.

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, PHP 8, PECL intl >= 1.0.0)

Locale::getAllVariants -- locale_get_all_variants — Liste toutes les variantes d'une locale

Description

Style orienté objet

public static Locale::getAllVariants(string $locale): ?array

Style procédural

locale_get_all_variants(string $locale): ?array

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.

Retourne null quand la longueur de locale excède INTL_MAX_LOCALE_LEN.

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, PHP 8, 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 Locale::getDefault(): string

Style procédural

locale_get_default(): string

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, PHP 8, 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 Locale::getDisplayLanguage(string $locale, ?string $displayLocale = null): string|false

Style procédural

locale_get_display_language(string $locale, ?string $displayLocale = null): string|false

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

displayLocale

Un format optionnel pour l'affichage du nom de langue.

Valeurs de retour

Le nom de la langue à afficher pour la locale, dans le format défini par displayLocale, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | displayLocale est désormais nullable.

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, PHP 8, 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 Locale::getDisplayName(string $locale, ?string $displayLocale = null): string|false

Style procédural

locale_get_display_name(string $locale, ?string $displayLocale = null): string|false

Retourne un nom d'affichage correct pour une locale. Si locale est null, 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.

displayLocale

Un format d'affichage optionnel

Valeurs de retour

Le nom d'affichage de la locale, au format donné par displayLocale, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | displayLocale est désormais nullable.

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, PHP 8, 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 Locale::getDisplayRegion(string $locale, ?string $displayLocale = null): string|false

Style procédural

locale_get_display_region(string $locale, ?string $displayLocale = null): string|false

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.

displayLocale

Un formation optionnel pour afficher le nom de la région.

Valeurs de retour

Le nom de la région de la locale, au format displayLocale, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | displayLocale est désormais nullable.

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, PHP 8, 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 Locale::getDisplayScript(string $locale, ?string $displayLocale = null): string|false

Style procédural

locale_get_display_script(string $locale, ?string $displayLocale = null): string|false

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.

displayLocale

Un format optionnel pour afficher le nom du script.

Valeurs de retour

Affiche le nom du script de la locale au format indiqué par displayLocale, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | displayLocale est désormais nullable.

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, PHP 8, 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 Locale::getDisplayVariant(string $locale, ?string $displayLocale = null): string|false

Style procédural

locale_get_display_variant(string $locale, ?string $displayLocale = null): string|false

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.

displayLocale

Un formation optionnel pour afficher le nom de la région.

Valeurs de retour

Le nom de la variante de la locale, au format displayLocale, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | displayLocale est désormais nullable.

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, PHP 8, PECL intl >= 1.0.0)

Locale::getKeywords -- locale_get_keywords — Lit les mots-clé de la locale

Description

Style orienté objet

public static Locale::getKeywords(string $locale): array|false|null

Style procédural

locale_get_keywords(string $locale): array|false|null

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.

Retourne null quand la longueur de locale excède INTL_MAX_LOCALE_LEN.

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, PHP 8, PECL intl >= 1.0.0)

Locale::getPrimaryLanguage -- locale_get_primary_language — Lit la langue principale de la locale

Description

Style orienté objet

public static Locale::getPrimaryLanguage(string $locale): ?string

Style procédural

locale_get_primary_language(string $locale): ?string

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.

Retourne null quand la longueur de locale excède INTL_MAX_LOCALE_LEN.

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, PHP 8, 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 Locale::getRegion(string $locale): ?string

Style procédural

locale_get_region(string $locale): ?string

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.

Retourne null quand la longueur de locale excède INTL_MAX_LOCALE_LEN.

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, PHP 8, 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 Locale::getScript(string $locale): ?string

Style procédural

locale_get_script(string $locale): ?string

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, PHP 8, PECL intl >= 1.0.0)

Locale::lookup -- locale_lookup — Recherche dans la liste la meilleure langue

Description

Style orienté objet

public static Locale::lookup(
array $languageTag,
string $locale,
bool $canonicalize = false,
?string $defaultLocale = null
): ?string

Style procédural

locale_lookup(
array $languageTag,
string $locale,
bool $canonicalize = false,
?string $defaultLocale = null
): ?string

Recherche dans la liste languageTag la meilleure langue, pour la locale spécifiée par locale, en fonction de l'algorithme de la RFC 4647.

Liste de paramètres

languageTag

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.

defaultLocale

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.

Retourne null quand la longueur de locale excède INTL_MAX_LOCALE_LEN.

Historique

Version | Description
7.4.0 | defaultLocale est désormais nullable.

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, PHP 8, PECL intl >= 1.0.0)

Locale::parseLocale -- locale_parse — Retourne les sous-éléments de la locale

Description

Style orienté objet

public static Locale::parseLocale(string $locale): ?array

Style procédural

locale_parse(string $locale): ?array

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.

Retourne null quand la taille de locale dépasse INTL_MAX_LOCALE_LEN.

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, PHP 8, PECL intl >= 1.0.0)

Locale::setDefault -- locale_set_default — Configure la locale par défaut

Description

Style orienté objet

public static Locale::setDefault(string $locale): bool

Style procédural

locale_set_default(string $locale): bool

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

Retourne true.

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, PHP 8, 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

class Normalizer {
/* Constantes */
public const int FORM_D;
public const int NFD;
public const int FORM_KD;
public const int NFKD;
public const int FORM_C;
public const int NFC;
public const int FORM_KC;
public const int NFKC;
public const int FORM_KC_CF;
public const int NFKC_CF;
/* Méthodes */
public static getRawDecomposition(string $string, int $form = Normalizer::FORM_C): ?string
public static isNormalized(string $string, int $form = Normalizer::FORM_C): bool
public static normalize(string $string, int $form = Normalizer::FORM_C): string|false
}

Constantes pré-définies

Les constantes suivantes définissent les formes de normalisation à appliquer par le normalizer :

Normalizer::FORM_C
Normalization Form C (NFC) : décomposition canonique suivie d'une composition canonique
Normalizer::FORM_D
Normalization Form D (NFD) : décomposition canonique
Normalizer::NFD

Normalizer::FORM_KC
Normalization Form KC (NFKC) : décomposition compatible, suivie d'une composition canonique
Normalizer::NFKC

Normalizer::FORM_KC_CF

Normalizer::FORM_KD
Normalization Form KD (NFKD) : décomposition compatible
Normalizer::NFKD

Normalizer::NFC

Normalizer::NFKC_CF

Voir aussi

  • » Unicode Normalization
  • » Unicode Normalization FAQ
  • » ICU User Guide : Normalization
  • » ICU API Reference : Normalization

Historique

Version | Description
8.0.0 | Normalizer::NONE a été supprimé.

Sommaire

  • Normalizer::getRawDecomposition — Gets the Decomposition_Mapping property for the given UTF-8 encoded code point
  • Normalizer::isNormalized — Vérifie si une chaîne est normalisée
  • Normalizer::normalize — Normalise une chaîne en entrée


Gets the Decomposition_Mapping property for the given UTF-8 encoded code point

  • « Normalizer
  • Normalizer::isNormalized »
  • PHP Manual
  • Normalizer
  • Gets the Decomposition_Mapping property for the given UTF-8 encoded code point

Normalizer::getRawDecomposition

normalizer_get_raw_decomposition

(PHP 7 >= 7.3, PHP 8)

Normalizer::getRawDecomposition -- normalizer_get_raw_decomposition — Gets the Decomposition_Mapping property for the given UTF-8 encoded code point

Description

Style orienté objet

public static Normalizer::getRawDecomposition(string $string, int $form = Normalizer::FORM_C): ?string

Style procédural

normalizer_get_raw_decomposition(string $string, int $form = Normalizer::FORM_C): ?string

Gets the Decomposition_Mapping property, as specified in the Unicode Character Database (UCD), for the given UTF-8 encoded code point.

Liste de paramètres

string

The input string, which should be a single, UTF-8 encoded, code point.

Valeurs de retour

Returns a string containing the Decomposition_Mapping property, if present in the UCD.

Returns null if there is no Decomposition_Mapping property for the character.

Exemples

Exemple #1 Normalizer::getRawDecomposition() example

<?php

$result = "";
$strings = [
"a",
"\u{FFDA}",
"\u{FDFA}",
"",
"aa",
"\xF5",
];

foreach ($strings as $string) {
$decomposition = Normalizer::getRawDecomposition($string);
// $decomposition = normalizer_get_raw_decomposition($string); Procedural way

$error_code = intl_get_error_code();
$error_message = intl_get_error_message();

$string_hex = bin2hex($string);
$result .= "---------------------\n";

if ($decomposition === null) {
$result .= "'$string_hex' has no decomposition mapping\n" ;
} else {
$result .= "'$string_hex' has the decomposition mapping '" . bin2hex($decomposition) . "'\n" ;
}

$result .= "error info: '$error_message' ($error_code)\n";
}

echo $result;
?>

L'exemple ci-dessus va afficher :

---------------------
'61' has no decomposition mapping
error info: 'U_ZERO_ERROR' (0)
---------------------
'efbf9a' has the decomposition mapping 'e385a1'
error info: 'U_ZERO_ERROR' (0)
---------------------
'efb7ba' has the decomposition mapping 'd8b5d984d98920d8a7d984d984d98720d8b9d984d98ad98720d988d8b3d984d985'
error info: 'U_ZERO_ERROR' (0)
---------------------
'' has no decomposition mapping
error info: 'Input string must be exactly one UTF-8 encoded code point long.: U_ILLEGAL_ARGUMENT_ERROR' (1)
---------------------
'6161' has no decomposition mapping
error info: 'Input string must be exactly one UTF-8 encoded code point long.: U_ILLEGAL_ARGUMENT_ERROR' (1)
---------------------
'f5' has no decomposition mapping
error info: 'Code point out of range: U_ILLEGAL_ARGUMENT_ERROR' (1)

Voir aussi

  • Normalizer::normalize() - Normalise une chaîne en entrée
  • Normalizer::isNormalized() - Vérifie si une chaîne est normalisée


Vérifie si une chaîne est normalisée

  • « Normalizer::getRawDecomposition
  • 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, PHP 8, PECL intl >= 1.0.0)

Normalizer::isNormalized -- normalizer_is_normalized — Vérifie si une chaîne est normalisée

Description

Style orienté objet

public static Normalizer::isNormalized(string $string, int $form = Normalizer::FORM_C): bool

Style procédural

normalizer_is_normalized(string $string, int $form = Normalizer::FORM_C): bool

Vérifie si une chaîne est normalisée.

Liste de paramètres

string

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, PHP 8, PECL intl >= 1.0.0)

Normalizer::normalize -- normalizer_normalize — Normalise une chaîne en entrée

Description

Style orienté objet

public static Normalizer::normalize(string $string, int $form = Normalizer::FORM_C): string|false

Style procédural

normalizer_normalize(string $string, int $form = Normalizer::FORM_C): string|false

Normalise la chaîne en entrée et retourne une chaîne normalisée.

Liste de paramètres

string

La chaîne à normaliser

form

Une des formes de normalisation.

Valeurs de retour

La chaîne normalisée, ou false 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, PHP 8, 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

class MessageFormatter {
/* Méthodes */
public __construct(string $locale, string $pattern)
public static create(string $locale, string $pattern): ?MessageFormatter
public static formatMessage(string $locale, string $pattern, array $values): string|false
public format(array $values): string|false
public getErrorCode(): int
public getErrorMessage(): string
public getLocale(): string
public getPattern(): string|false
public static parseMessage(string $locale, string $pattern, string $message): array|false
public parse(string $string): array|false
public setPattern(string $pattern): bool
}

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, PHP 8, 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::create(string $locale, string $pattern): ?MessageFormatter

Style orienté objet (constructeur)

public MessageFormatter::__construct(string $locale, string $pattern)

Style procédural

msgfmt_create(string $locale, string $pattern): ?MessageFormatter

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. Voir » Quoting/Escaping pour plus de détails.

Valeurs de retour

Un objet de formateur de message MessageFormatter, ou null en cas d'échec.

Erreurs / Exceptions

Lorsqu'il est invoqué en tant que constructeur, IntlException est levé en cas d'échec.

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, PHP 8, PECL intl >= 1.0.0)

MessageFormatter::formatMessage -- msgfmt_format_message — Formate rapidement un message

Description

Style orienté objet

public static MessageFormatter::formatMessage(string $locale, string $pattern, array $values): string|false

Style procédural

msgfmt_format_message(string $locale, string $pattern, array $values): string|false

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 de formatage n'est effectuée qu'une seule fois et qu'il n'est pas nécessaire de conserver des paramètres ou des états, ou lorsque vous souhaitez personnaliser la sortie en fournissant directement un contexte supplémentaire à ICU.

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; Voir » Quoting/Escaping pour plus de détails.

values

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));
echo msgfmt_format_message("en", 'You finished {place, selectordinal, one {#st} two {#nd} few {#rd} other {#th}}!', ['place' => 3]), "\n";
echo msgfmt_format_message("en",
"There {apple, plural,
=0 {are no apples}
=1 {is one apple...}
other {are # apples!}
}",
['apple' => 0]
), "\n";

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));
echo MessageFormatter::formatMessage("en", 'You finished {place, selectordinal, one {#st} two {#nd} few {#rd} other {#th}}!', ['place' => 3]), "\n";
echo MessageFormatter::formatMessage("en",
"There {apple, plural,
=0 {are no apples}
=1 {is one apple...}
other {are # apples!}
}",
['apple' => 0]
), "\n";

L'exemple ci-dessus va afficher :

4,560 monkeys on 123 trees make 37.073 monkeys per tree
4.560 Affen auf 123 Bäumen sind 37,073 Affen pro Baum
You finished 3rd!
There are no apples

Exemple #3 Demander à ICU de formater la devise avec le symbole monétaire commun et avec le symbole monétaire court.

Nécessite ICU = 67.

<?php
echo msgfmt_format_message("cs_CZ", "{0, number, :: currency/CAD}", array(123.45));
echo msgfmt_format_message("cs_CZ", "{0, number, :: currency/CAD unit-width-narrow}", array(123.45));

L'exemple ci-dessus va afficher :

123,45 CA$
123,45 $

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, PHP 8, PECL intl >= 1.0.0)

MessageFormatter::format -- msgfmt_format — Formate un message

Description

Style orienté objet

public MessageFormatter::format(array $values): string|false

Style procédural

msgfmt_format(MessageFormatter $formatter, array $values): string|false

Formate un message en substituant les données dans la chaînes de modèle, en fonction des conventions locales.

Liste de paramètres

formatter

Un objet de formateur de messages MessageFormatter

values

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, PHP 8, 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 MessageFormatter::getErrorCode(): int

Style procédural

msgfmt_get_error_code(MessageFormatter $formatter): int

Lit le dernier code d'erreur de la dernière opération.

Liste de paramètres

formatter

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.

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, PHP 8, 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 MessageFormatter::getErrorMessage(): string

Style procédural

msgfmt_get_error_message(MessageFormatter $formatter): string

Lit le message d'erreur de la dernière opération du formateur de messages.

Liste de paramètres

formatter

Un objet de formateur de messages MessageFormatter

Valeurs de retour

La description de 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, PHP 8, 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 MessageFormatter::getLocale(): string

Style procédural

msgfmt_get_locale(MessageFormatter $formatter): string

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, PHP 8, 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 MessageFormatter::getPattern(): string|false

Style procédural

msgfmt_get_pattern(MessageFormatter $formatter): string|false

Lit le modèle utilisé par le formateur de messages.

Liste de paramètres

formatter

Un objet de formateur de messages MessageFormatter

Valeurs de retour

La chaîne de caractères de modèle du formateur de messages, ou false si une erreur survient.

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, PHP 8, PECL intl >= 1.0.0)

MessageFormatter::parseMessage -- msgfmt_parse_message — Analyse rapidement une chaîne

Description

Style orienté objet

public static MessageFormatter::parseMessage(string $locale, string $pattern, string $message): array|false

Style procédural

msgfmt_parse_message(string $locale, string $pattern, string $message): array|false

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 message.

message

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, PHP 8, PECL intl >= 1.0.0)

MessageFormatter::parse -- msgfmt_parse — Analyse une chaîne en fonction du modèle

Description

Style orienté objet

public MessageFormatter::parse(string $string): array|false

Style procédural

msgfmt_parse(MessageFormatter $formatter, string $string): array|false

Analyse la chaîne value et retourne les éléments extraits sous forme de tableau.

Liste de paramètres

formatter

Un objet de formateur de messages MessageFormatter

string

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, PHP 8, PECL intl >= 1.0.0)

MessageFormatter::setPattern -- msgfmt_set_pattern — Configure le modèle utilisé par le formateur

Description

Style orienté objet

public MessageFormatter::setPattern(string $pattern): bool

Style procédural

msgfmt_set_pattern(MessageFormatter $formatter, string $pattern): bool

Configure le modèle utilisé par le formateur.

Liste de paramètres

formatter

Un objet de formateur de messages MessageFormatter

pattern

La chaîne de modèle utilisée par le formateur de messages. Le modèle utilise une syntaxe qui accepte les apostrophes; Voir » Quoting/Escaping pour plus de détails.

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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

Introduction

Synopsis de la classe

class IntlCalendar {
/* Constantes */
public const int FIELD_ERA;
public const int FIELD_YEAR;
public const int FIELD_MONTH;
public const int FIELD_WEEK_OF_YEAR;
public const int FIELD_WEEK_OF_MONTH;
public const int FIELD_DATE;
public const int FIELD_DAY_OF_YEAR;
public const int FIELD_DAY_OF_WEEK;
public const int FIELD_DAY_OF_WEEK_IN_MONTH;
public const int FIELD_AM_PM;
public const int FIELD_HOUR;
public const int FIELD_HOUR_OF_DAY;
public const int FIELD_MINUTE;
public const int FIELD_SECOND;
public const int FIELD_MILLISECOND;
public const int FIELD_ZONE_OFFSET;
public const int FIELD_DST_OFFSET;
public const int FIELD_YEAR_WOY;
public const int FIELD_DOW_LOCAL;
public const int FIELD_EXTENDED_YEAR;
public const int FIELD_JULIAN_DAY;
public const int FIELD_MILLISECONDS_IN_DAY;
public const int FIELD_IS_LEAP_MONTH;
public const int FIELD_FIELD_COUNT;
public const int FIELD_DAY_OF_MONTH;
public const int DOW_SUNDAY;
public const int DOW_MONDAY;
public const int DOW_TUESDAY;
public const int DOW_WEDNESDAY;
public const int DOW_THURSDAY;
public const int DOW_FRIDAY;
public const int DOW_SATURDAY;
public const int DOW_TYPE_WEEKDAY;
public const int DOW_TYPE_WEEKEND;
public const int DOW_TYPE_WEEKEND_OFFSET;
public const int DOW_TYPE_WEEKEND_CEASE;
public const int WALLTIME_FIRST;
public const int WALLTIME_LAST;
public const int WALLTIME_NEXT_VALID;
/* Méthodes */
private __construct()
public add(int $field, int $value): bool
public after(IntlCalendar $other): bool
public before(IntlCalendar $other): bool
public clear(?int $field = null): true
public static createInstance(IntlTimeZone|DateTimeZone|string|null $timezone = null, ?string $locale = null): ?IntlCalendar
public equals(IntlCalendar $other): bool
public fieldDifference(float $timestamp, int $field): int|false
public static fromDateTime(DateTime|string $datetime, ?string $locale = null): ?IntlCalendar
public get(int $field): int|false
public getActualMaximum(int $field): int|false
public getActualMinimum(int $field): int|false
public static getAvailableLocales(): array
public getDayOfWeekType(int $dayOfWeek): int|false
public getErrorCode(): int|false
public getErrorMessage(): string|false
public getFirstDayOfWeek(): int|false
public getGreatestMinimum(int $field): int|false
public static getKeywordValuesForLocale(string $keyword, string $locale, bool $onlyCommon): IntlIterator|false
public getLeastMaximum(int $field): int|false
public getLocale(int $type): string|false
public getMaximum(int $field): int|false
public getMinimalDaysInFirstWeek(): int|false
public getMinimum(int $field): int|false
public static getNow(): float
public getRepeatedWallTimeOption(): int
public getSkippedWallTimeOption(): int
public getTime(): float|false
public getTimeZone(): IntlTimeZone|false
public getType(): string
public getWeekendTransition(int $dayOfWeek): int|false
public inDaylightTime(): bool
public isEquivalentTo(IntlCalendar $other): bool
public isLenient(): bool
public isSet(int $field): bool
public isWeekend(?float $timestamp = null): bool
public roll(int $field, int|bool $value): bool
public set(int $field, int $value): true
public set(
int $year,
int $month,
int $dayOfMonth = NULL,
int $hour = NULL,
int $minute = NULL,
int $second = NULL
): true
public setDate(int $year, int $month, int $dayOfMonth): void
public setDateTime(
int $year,
int $month,
int $dayOfMonth,
int $hour,
int $minute,
?int $second = null
): void
public setFirstDayOfWeek(int $dayOfWeek): true
public setLenient(bool $lenient): true
public setMinimalDaysInFirstWeek(int $days): true
public setRepeatedWallTimeOption(int $option): true
public setSkippedWallTimeOption(int $option): true
public setTime(float $timestamp): bool
public setTimeZone(IntlTimeZone|DateTimeZone|string|null $timezone): bool
public toDateTime(): DateTime|false
}

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 January (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 between 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 elapsed 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::setDate — Set a date fields
  • IntlCalendar::setDateTime — Set a date and time fields
  • 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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::add — Ajoute une durée (signée) à un champ

Description

Style orienté objet

public IntlCalendar::add(int $field, int $value): bool

Style procédural

intlcal_add(IntlCalendar $calendar, int $field, int $value): bool

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

calendar

Une instance IntlCalendar.

field

Une constantes de champ date/heure IntlCalendar. Ceux sont des valeurs entières comprises entre 0 et IntlCalendar::FIELD_COUNT.

value

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.5.0, PHP 7, PHP 8, 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 IntlCalendar::after(IntlCalendar $other): bool

Style procédural

intlcal_after(IntlCalendar $calendar, IntlCalendar $other): bool

Vérifie si l'objet temps courant est dans le futur par rapport à l'objet temps passé.

Liste de paramètres

calendar

Une instance 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.

En cas d&échec false est aussi retourné. Pour détecter les conditions d&erreur intl_get_error_code() doit être utilisé, ou paramétrer Intl pour lancer des exceptions.

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.5.0, PHP 7, PHP 8, 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 IntlCalendar::before(IntlCalendar $other): bool

Style procédural

intlcal_before(IntlCalendar $calendar, IntlCalendar $other): bool

Vérifie si l'objet temps est dans le passé par rapport à l'objet fourni.

Liste de paramètres

calendar

Une instance 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.

En cas d&échec false est aussi retourné. Pour détecter les conditions d&erreur intl_get_error_code() doit être utilisé, ou paramétrer Intl pour lancer des exceptions.


Vide un ou tous les champs

  • « IntlCalendar::before
  • IntlCalendar::__construct »
  • PHP Manual
  • IntlCalendar
  • Vide un ou tous les champs

IntlCalendar::clear

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::clear — Vide un ou tous les champs

Description

Style orienté objet

public IntlCalendar::clear(?int $field = null): true

Style procédural

intlcal_clear(IntlCalendar $calendar, ?int $field = null): true

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

calendar

Une instance 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 toujours true.

Historique

Version | Description
8.2.0 | Le type de retour est maintenant true, auparavant il était bool.

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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::__construct — Constructeur privé pour la désactivation de l'instanciation

Description

private IntlCalendar::__construct()

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.


Crée un nouvel objet IntlCalendar

  • « IntlCalendar::__construct
  • IntlCalendar::equals »
  • PHP Manual
  • IntlCalendar
  • Crée un nouvel objet IntlCalendar

IntlCalendar::createInstance

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::createInstance — Crée un nouvel objet IntlCalendar

Description

Style orienté objet

public static IntlCalendar::createInstance(IntlTimeZone|DateTimeZone|string|null $timezone = null, ?string $locale = null): ?IntlCalendar

Style procédural

intlcal_create_instance(IntlTimeZone|DateTimeZone|string|null $timezone = null, ?string $locale = null): ?IntlCalendar

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, dans quel cas le fuseau horaire par défaut sera utilisé, comme spécifié dans le paramètre de configuration du fichier ini date.timezone ou par la fonction date_default_timezone_set() et comme retourné par date_default_timezone_get().

  • Un IntlTimeZone, qui sera utilisé directement.

  • Un DateTimeZone. Son identifiant sera extrait et un objet de fuseau horaire ICU sera créé; le fuseau horaire sera soutenu par la base de données de l'ICU, et non par PHP.

  • Une chaîne de caractères, qui devrait être un identifiant de fuseau horaire ICU valide. Voir IntlTimeZone::createTimeZoneIDEnumeration(). Les décalages bruts tels que "GMT+08:30" sont aussi acceptés.

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() - Create the Gregorian Calendar class


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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::equals — Vérifie si deux objets IntlCalendar sont égaux

Description

Style orienté objet

public IntlCalendar::equals(IntlCalendar $other): bool

Style procédural

intlcal_equals(IntlCalendar $calendar, IntlCalendar $other): bool

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

calendar

Une instance 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.

En cas d&échec false est aussi retourné. Pour détecter les conditions d&erreur intl_get_error_code() doit être utilisé, ou paramétrer Intl pour lancer des exceptions.

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.5.0, PHP 7, PHP 8, 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 IntlCalendar::fieldDifference(float $timestamp, int $field): int|false

Style procédural

intlcal_field_difference(IntlCalendar $calendar, float $timestamp, int $field): int|false

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

calendar

Une instance IntlCalendar.

timestamp

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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a2)

IntlCalendar::fromDateTime — Create an IntlCalendar from a DateTime object or string

Description

Style orienté objet

public static IntlCalendar::fromDateTime(DateTime|string $datetime, ?string $locale = null): ?IntlCalendar

Style procédural

intlcal_from_date_time(DateTime|string $datetime, ?string $locale = null): ?IntlCalendar

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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::get — Récupère la valeur d'une propriété

Description

Style orienté objet

public IntlCalendar::get(int $field): int|false

Style procédural

intlcal_get(IntlCalendar $calendar, int $field): int|false

Récupère la valeur d'une propriété spécifique.

Liste de paramètres

calendar

Une instance 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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getActualMaximum — The maximum value for a field, considering the object's current time

Description

Style orienté objet

public IntlCalendar::getActualMaximum(int $field): int|false

Style procédural

intlcal_get_actual_maximum(IntlCalendar $calendar, int $field): int|false

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

calendar

Une instance 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

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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getActualMinimum — The minimum value for a field, considering the object's current time

Description

Style orienté objet

public IntlCalendar::getActualMinimum(int $field): int|false

Style procédural

intlcal_get_actual_minimum(IntlCalendar $calendar, int $field): int|false

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

calendar

Une instance 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

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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getAvailableLocales — Get array of locales for which there is data

Description

Style orienté objet

public static IntlCalendar::getAvailableLocales(): array

Style procédural

intlcal_get_available_locales(): array

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.5.0, PHP 7, PHP 8, 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 IntlCalendar::getDayOfWeekType(int $dayOfWeek): int|false

Style procédural

intlcal_get_day_of_week_type(IntlCalendar $calendar, int $dayOfWeek): int|false

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

calendar

Une instance IntlCalendar.

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++) {
$type = $cal->getDayOfWeekType($i);
$transition = ($type !== IntlCalendar::DOW_TYPE_WEEKDAY)
? $cal->getWeekendTransition($i)
: '';
echo $i, " ", $type, " ", $transition, "\n";
}
echo "\n";
}
?>

L'exemple ci-dessus va afficher :

Locale: English (United States)
1 1 86400000
2 0
3 0
4 0
5 0
6 0
7 1 0

Locale: Arabic (Saudi Arabia)
1 0
2 0
3 0
4 0
5 0
6 1 0
7 1 86400000


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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getErrorCode -- intlcal_get_error_code — Get last error code on the object

Description

Style orienté objet (method):

public IntlCalendar::getErrorCode(): int|false

Style procédural:

intlcal_get_error_code(IntlCalendar $calendar): int|false

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. Returns false on failure.

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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getErrorMessage -- intlcal_get_error_message — Get last error message on the object

Description

Style orienté objet (method):

public IntlCalendar::getErrorMessage(): string|false

Style procédural:

intlcal_get_error_message(IntlCalendar $calendar): string|false

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-existence of an error. Returns false on failure.

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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getFirstDayOfWeek — Get the first day of the week for the calendar's locale

Description

Style orienté objet

public IntlCalendar::getFirstDayOfWeek(): int|false

Style procédural

intlcal_get_first_day_of_week(IntlCalendar $calendar): int|false

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

calendar

Une instance IntlCalendar.

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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getGreatestMinimum — Get the largest local minimum value for a field

Description

Style orienté objet

public IntlCalendar::getGreatestMinimum(int $field): int|false

Style procédural

intlcal_get_greatest_minimum(IntlCalendar $calendar, int $field): int|false

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

calendar

Une instance 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

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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getKeywordValuesForLocale — Get set of locale keyword values

Description

Style orienté objet

public static IntlCalendar::getKeywordValuesForLocale(string $keyword, string $locale, bool $onlyCommon): IntlIterator|false

Style procédural

intlcal_get_keyword_values_for_locale(string $keyword, string $locale, bool $onlyCommon): IntlIterator|false

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

keyword

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.

onlyCommon

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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getLeastMaximum — Get the smallest local maximum for a field

Description

Style orienté objet

public IntlCalendar::getLeastMaximum(int $field): int|false

Style procédural

intlcal_get_least_maximum(IntlCalendar $calendar, int $field): int|false

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

calendar

Une instance 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

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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getLocale — Get the locale associated with the object

Description

Style orienté objet

public IntlCalendar::getLocale(int $type): string|false

Style procédural

intlcal_get_locale(IntlCalendar $calendar, int $type): string|false

Returns the locale used by this calendar object.

Liste de paramètres

calendar

Une instance IntlCalendar.

type

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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getMaximum — Get the global maximum value for a field

Description

Style orienté objet

public IntlCalendar::getMaximum(int $field): int|false

Style procédural

intlcal_get_maximum(IntlCalendar $calendar, int $field): int|false

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

calendar

Une instance 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

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.5.0, PHP 7, PHP 8, 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 IntlCalendar::getMinimalDaysInFirstWeek(): int|false

Style procédural

intlcal_get_minimal_days_in_first_week(IntlCalendar $calendar): int|false

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

calendar

Une instance IntlCalendar.

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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getMinimum — Get the global minimum value for a field

Description

Style orienté objet

public IntlCalendar::getMinimum(int $field): int|false

Style procédural

intlcal_get_minimum(IntlCalendar $calendar, int $field): int|false

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

calendar

Une instance 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

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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getNow — Récupère le nombre représentant la date courante

Description

Style orienté objet

public static IntlCalendar::getNow(): float

Style procédural

intlcal_get_now(): float

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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getRepeatedWallTimeOption — Get behavior for handling repeating wall time

Description

Style orienté objet

public IntlCalendar::getRepeatedWallTimeOption(): int

Style procédural

intlcal_get_repeated_wall_time_option(IntlCalendar $calendar): int

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

calendar

Une instance IntlCalendar.

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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getSkippedWallTimeOption — Get behavior for handling skipped wall time

Description

Style orienté objet

public IntlCalendar::getSkippedWallTimeOption(): int

Style procédural

intlcal_get_skipped_wall_time_option(IntlCalendar $calendar): int

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

calendar

Une instance IntlCalendar.

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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getTime — Get time currently represented by the object

Description

Style orienté objet

public IntlCalendar::getTime(): float|false

Style procédural

intlcal_get_time(IntlCalendar $calendar): float|false

Returns the time associated with this object, expressed as the number of milliseconds since the epoch.

Liste de paramètres

calendar

Une instance IntlCalendar.

Valeurs de retour

A float representing the number of milliseconds elapsed since the reference time (1 Jan 1970 00:00:00 UTC), ou false si une erreur survient

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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getTimeZone — Récupère le fuseau horaire de l'objet

Description

Style orienté objet

public IntlCalendar::getTimeZone(): IntlTimeZone|false

Style procédural

intlcal_get_time_zone(IntlCalendar $calendar): IntlTimeZone|false

Retourne l'objet IntlTimeZone associé avec ce calendrier.

Liste de paramètres

calendar

Une instance IntlCalendar.

Valeurs de retour

Un objet IntlTimeZone correspondant à celui utilisé en interne de cet objet. Retourne false en cas d'échec.

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() - Create the Gregorian Calendar class


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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getType — Récupère le type de calendrier

Description

Style orienté objet

public IntlCalendar::getType(): string

Style procédural

intlcal_get_type(IntlCalendar $calendar): string

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

calendar

Une instance 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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getWeekendTransition — Get time of the day at which weekend begins or ends

Description

Style orienté objet

public IntlCalendar::getWeekendTransition(int $dayOfWeek): int|false

Style procédural

intlcal_get_weekend_transition(IntlCalendar $calendar, int $dayOfWeek): int|false

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

calendar

Une instance IntlCalendar.

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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::inDaylightTime — Whether the object's time is in Daylight Savings Time

Description

Style orienté objet

public IntlCalendar::inDaylightTime(): bool

Style procédural

intlcal_in_daylight_time(IntlCalendar $calendar): bool

Whether, for the instant represented by this object and for this object's timezone, daylight saving time is in place.

Liste de paramètres

calendar

Une instance IntlCalendar.

Valeurs de retour

Returns true if the date is in Daylight Savings Time, false otherwise.

En cas d&échec false est aussi retourné. Pour détecter les conditions d&erreur intl_get_error_code() doit être utilisé, ou paramétrer Intl pour lancer des exceptions.

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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::isEquivalentTo — Whether another calendar is equal but for a different time

Description

Style orienté objet

public IntlCalendar::isEquivalentTo(IntlCalendar $other): bool

Style procédural

intlcal_is_equivalent_to(IntlCalendar $calendar, IntlCalendar $other): bool

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

calendar

Une instance IntlCalendar.

other

The other calendar against which the comparison is to be made.

Valeurs de retour

Assuming there are no argument errors, returns true if 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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::isLenient — Whether date/time interpretation is in lenient mode

Description

Style orienté objet

public IntlCalendar::isLenient(): bool

Style procédural

intlcal_is_lenient(IntlCalendar $calendar): bool

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

calendar

Une instance IntlCalendar.

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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::isSet — Whether a field is set

Description

Style orienté objet

public IntlCalendar::isSet(int $field): bool

Style procédural

intlcal_is_set(IntlCalendar $calendar, int $field): bool

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

calendar

Une instance 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

Assuming there are no argument errors, returns true if 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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::isWeekend — Whether a certain date/time is in the weekend

Description

Style orienté objet

public IntlCalendar::isWeekend(?float $timestamp = null): bool

Style procédural

intlcal_is_weekend(IntlCalendar $calendar, ?float $timestamp = null): bool

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

calendar

Une instance IntlCalendar.

timestamp

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.

En cas d&échec false est aussi retourné. Pour détecter les conditions d&erreur intl_get_error_code() doit être utilisé, ou paramétrer Intl pour lancer des exceptions.

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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::roll — Add value to field without carrying into more significant fields

Description

Style orienté objet

public IntlCalendar::roll(int $field, int|bool $value): bool

Style procédural

intlcal_roll(IntlCalendar $calendar, int $field, int|bool $value): bool

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

calendar

Une instance IntlCalendar.

field

Une constantes de champ date/heure IntlCalendar. Ceux sont des valeurs entières comprises entre 0 et IntlCalendar::FIELD_COUNT.

value

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::setDate »
  • PHP Manual
  • IntlCalendar
  • Set a time field or several common fields at once

IntlCalendar::set

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::set — Set a time field or several common fields at once

Description

Style orienté objet

public IntlCalendar::set(int $field, int $value): true
public IntlCalendar::set(
int $year,
int $month,
int $dayOfMonth = NULL,
int $hour = NULL,
int $minute = NULL,
int $second = NULL
): true

Style procédural

intlcal_set(IntlCalendar $cal, int $field, int $value): true
intlcal_set(
IntlCalendar $cal,
int $year,
int $month,
int $dayOfMonth = NULL,
int $hour = NULL,
int $minute = NULL,
int $second = NULL
): bool

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

Une instance IntlCalendar.

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. 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.

dayOfMonth

The new value for IntlCalendar::FIELD_DAY_OF_MONTH.

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

Retourne toujours true.

Historique

Version | Description
8.2.0 | Le type de retour est maintenant true, auparavant il était bool.

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


Set a date fields

  • « IntlCalendar::set
  • IntlCalendar::setDateTime »
  • PHP Manual
  • IntlCalendar
  • Set a date fields

IntlCalendar::setDate

(PHP 8 >= 8.3.0)

IntlCalendar::setDate — Set a date fields

Description

public IntlCalendar::setDate(int $year, int $month, int $dayOfMonth): void

Sets a date fields to the given value.

Liste de paramètres

year

The new value for IntlCalendar::FIELD_YEAR.

month

The new value for IntlCalendar::FIELD_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.

dayOfMonth

The new value for IntlCalendar::FIELD_DAY_OF_MONTH.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 IntlCalendar::setDate() example

<?php
$intlCal = IntlCalendar::createInstance('UTC');

$intlCal->setDate(2012, 1, 29);
?>


Set a date and time fields

  • « IntlCalendar::setDate
  • IntlCalendar::setFirstDayOfWeek »
  • PHP Manual
  • IntlCalendar
  • Set a date and time fields

IntlCalendar::setDateTime

(PHP 8 >= 8.3.0)

IntlCalendar::setDateTime — Set a date and time fields

Description

public IntlCalendar::setDateTime(
int $year,
int $month,
int $dayOfMonth,
int $hour,
int $minute,
?int $second = null
): void

Sets a date and time fields to the given value.

Liste de paramètres

year

The new value for IntlCalendar::FIELD_YEAR.

month

The new value for IntlCalendar::FIELD_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.

dayOfMonth

The new value for IntlCalendar::FIELD_DAY_OF_MONTH.

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

Aucune valeur n'est retournée.

Exemples

Exemple #1 IntlCalendar::setDateTime() example

<?php
$intlCal = IntlCalendar::createInstance('UTC');

$intlCal->setDateTime(2012, 1, 29, 23, 58);
?>


Défini le jour de début de la semaine

  • « IntlCalendar::setDateTime
  • IntlCalendar::setLenient »
  • PHP Manual
  • IntlCalendar
  • Défini le jour de début de la semaine

IntlCalendar::setFirstDayOfWeek

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::setFirstDayOfWeek — Défini le jour de début de la semaine

Description

Style orienté objet

public IntlCalendar::setFirstDayOfWeek(int $dayOfWeek): true

Style procédural

intlcal_set_first_day_of_week(IntlCalendar $calendar, int $dayOfWeek): true

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

calendar

Une instance IntlCalendar.

dayOfWeek

Une constante parmi IntlCalendar::DOW_SUNDAY,
IntlCalendar::DOW_MONDAY, …,
IntlCalendar::DOW_SATURDAY.

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.2.0 | Le type de retour est maintenant true, auparavant il était bool.

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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::setLenient — Set whether date/time interpretation is to be lenient

Description

Style orienté objet

public IntlCalendar::setLenient(bool $lenient): true

Style procédural

intlcal_set_lenient(IntlCalendar $calendar, bool $lenient): true

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

calendar

Une instance IntlCalendar.

lenient

Use true to activate the lenient mode; false otherwise.

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.2.0 | Le type de retour est maintenant true, auparavant il était bool.

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

(PHP 5 >= 5.5.1, PHP 7, PHP 8)

IntlCalendar::setMinimalDaysInFirstWeek — Set minimal number of days the first week in a year or month can have

Description

Style orienté objet

public IntlCalendar::setMinimalDaysInFirstWeek(int $days): true

Style procédural

intlcal_set_minimal_days_in_first_week(IntlCalendar $calendar, int $days): true

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

calendar

Une instance IntlCalendar.

days

The number of minimal days to set.

Valeurs de retour

Retourne toujours true.

Erreurs / Exceptions

ValueError if days is out of range (less than 1 or more than 7).

Historique

Version | Description
8.0.0 | A ValueError is now thrown on invalid input. Previously, false was returned.


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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::setRepeatedWallTimeOption — Set behavior for handling repeating wall times at negative timezone offset transitions

Description

Style orienté objet

public IntlCalendar::setRepeatedWallTimeOption(int $option): true

Style procédural

intlcal_set_repeated_wall_time_option(IntlCalendar $calendar, int $option): true

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

calendar

Une instance IntlCalendar.

option

One of the constants IntlCalendar::WALLTIME_FIRST or IntlCalendar::WALLTIME_LAST.

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.2.0 | Le type de retour est maintenant true, auparavant il était bool.

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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::setSkippedWallTimeOption — Set behavior for handling skipped wall times at positive timezone offset transitions

Description

Style orienté objet

public IntlCalendar::setSkippedWallTimeOption(int $option): true

Style procédural

intlcal_set_skipped_wall_time_option(IntlCalendar $calendar, int $option): true

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

calendar

Une instance IntlCalendar.

option

One of the constants IntlCalendar::WALLTIME_FIRST,
IntlCalendar::WALLTIME_LAST or
IntlCalendar::WALLTIME_NEXT_VALID.

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.2.0 | Le type de retour est maintenant true, auparavant il était bool.

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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::setTime — Défini le temps du calendrier en milliseconde depuis l'époque

Description

Style orienté objet

public IntlCalendar::setTime(float $timestamp): bool

Style procédural

intlcal_set_time(IntlCalendar $calendar, float $timestamp): bool

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

calendar

Une instance IntlCalendar.

timestamp

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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::setTimeZone — Défini le fuseau horaire utilisé par ce calendrier

Description

Style orienté objet

public IntlCalendar::setTimeZone(IntlTimeZone|DateTimeZone|string|null $timezone): bool

Style procédural

intlcal_set_time_zone(IntlCalendar $calendar, IntlTimeZone|DateTimeZone|string|null $timezone): bool

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

calendar

Une instance IntlCalendar.

timezone

Le nouveau fuseau horaire à utiliser par ce calendrier. Il peut être spécifié de la façon suivante :

  • null, dans quel cas le fuseau horaire par défaut sera utilisé, comme spécifié dans le paramètre de configuration du fichier ini date.timezone ou par la fonction date_default_timezone_set() et comme retourné par date_default_timezone_get().

  • Un IntlTimeZone, qui sera utilisé directement.

  • Un DateTimeZone. Son identifiant sera extrait et un objet de fuseau horaire ICU sera créé; le fuseau horaire sera soutenu par la base de données de l'ICU, et non par PHP.

  • Une chaîne de caractères, qui devrait être un identifiant de fuseau horaire ICU valide. Voir IntlTimeZone::createTimeZoneIDEnumeration(). Les décalages bruts tels que "GMT+08:30" sont aussi acceptés.

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
  • IntlGregorianCalendar »
  • PHP Manual
  • IntlCalendar
  • Converti un objet IntlCalendar en un objet DateTime

IntlCalendar::toDateTime

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a2)

IntlCalendar::toDateTime — Converti un objet IntlCalendar en un objet DateTime

Description

Style orienté objet

public IntlCalendar::toDateTime(): DateTime|false

Style procédural

intlcal_to_date_time(IntlCalendar $calendar): DateTime|false

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

calendar

Une instance 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() - Retourne un nouvel objet DateTime


The IntlGregorianCalendar class

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Introduction

Synopsis de la classe

class IntlGregorianCalendar extends IntlCalendar {
/* Constants héritées */
public const int IntlCalendar::FIELD_ERA;
public const int IntlCalendar::FIELD_YEAR;
public const int IntlCalendar::FIELD_MONTH;
public const int IntlCalendar::FIELD_WEEK_OF_YEAR;
public const int IntlCalendar::FIELD_WEEK_OF_MONTH;
public const int IntlCalendar::FIELD_DATE;
public const int IntlCalendar::FIELD_DAY_OF_YEAR;
public const int IntlCalendar::FIELD_DAY_OF_WEEK;
public const int IntlCalendar::FIELD_DAY_OF_WEEK_IN_MONTH;
public const int IntlCalendar::FIELD_AM_PM;
public const int IntlCalendar::FIELD_HOUR;
public const int IntlCalendar::FIELD_HOUR_OF_DAY;
public const int IntlCalendar::FIELD_MINUTE;
public const int IntlCalendar::FIELD_SECOND;
public const int IntlCalendar::FIELD_MILLISECOND;
public const int IntlCalendar::FIELD_ZONE_OFFSET;
public const int IntlCalendar::FIELD_DST_OFFSET;
public const int IntlCalendar::FIELD_YEAR_WOY;
public const int IntlCalendar::FIELD_DOW_LOCAL;
public const int IntlCalendar::FIELD_EXTENDED_YEAR;
public const int IntlCalendar::FIELD_JULIAN_DAY;
public const int IntlCalendar::FIELD_MILLISECONDS_IN_DAY;
public const int IntlCalendar::FIELD_IS_LEAP_MONTH;
public const int IntlCalendar::FIELD_FIELD_COUNT;
public const int IntlCalendar::FIELD_DAY_OF_MONTH;
public const int IntlCalendar::DOW_SUNDAY;
public const int IntlCalendar::DOW_MONDAY;
public const int IntlCalendar::DOW_TUESDAY;
public const int IntlCalendar::DOW_WEDNESDAY;
public const int IntlCalendar::DOW_THURSDAY;
public const int IntlCalendar::DOW_FRIDAY;
public const int IntlCalendar::DOW_SATURDAY;
public const int IntlCalendar::DOW_TYPE_WEEKDAY;
public const int IntlCalendar::DOW_TYPE_WEEKEND;
public const int IntlCalendar::DOW_TYPE_WEEKEND_OFFSET;
public const int IntlCalendar::DOW_TYPE_WEEKEND_CEASE;
public const int IntlCalendar::WALLTIME_FIRST;
public const int IntlCalendar::WALLTIME_LAST;
public const int IntlCalendar::WALLTIME_NEXT_VALID;
/* Méthodes */
public __construct(IntlTimeZone $tz = ?, string $locale = ?)
public __construct(int $timeZoneOrYear, int $localeOrMonth, int $dayOfMonth)
public __construct(
int $timeZoneOrYear,
int $localeOrMonth,
int $dayOfMonth,
int $hour,
int $minute,
int $second = ?
)
public static createFromDate(int $year, int $month, int $dayOfMonth): static
public static createFromDateTime(
int $year,
int $month,
int $dayOfMonth,
int $hour,
int $minute,
?int $second = null
): static
public getGregorianChange(): float
public isLeapYear(int $year): bool
public setGregorianChange(float $timestamp): bool
/* Méthodes héritées */
public IntlCalendar::add(int $field, int $value): bool
public IntlCalendar::after(IntlCalendar $other): bool
public IntlCalendar::before(IntlCalendar $other): bool
public IntlCalendar::clear(?int $field = null): true
public static IntlCalendar::createInstance(IntlTimeZone|DateTimeZone|string|null $timezone = null, ?string $locale = null): ?IntlCalendar
public IntlCalendar::equals(IntlCalendar $other): bool
public IntlCalendar::fieldDifference(float $timestamp, int $field): int|false
public static IntlCalendar::fromDateTime(DateTime|string $datetime, ?string $locale = null): ?IntlCalendar
public IntlCalendar::get(int $field): int|false
public IntlCalendar::getActualMaximum(int $field): int|false
public IntlCalendar::getActualMinimum(int $field): int|false
public static IntlCalendar::getAvailableLocales(): array
public IntlCalendar::getDayOfWeekType(int $dayOfWeek): int|false
public IntlCalendar::getErrorCode(): int|false
public IntlCalendar::getErrorMessage(): string|false
public IntlCalendar::getFirstDayOfWeek(): int|false
public IntlCalendar::getGreatestMinimum(int $field): int|false
public static IntlCalendar::getKeywordValuesForLocale(string $keyword, string $locale, bool $onlyCommon): IntlIterator|false
public IntlCalendar::getLeastMaximum(int $field): int|false
public IntlCalendar::getLocale(int $type): string|false
public IntlCalendar::getMaximum(int $field): int|false
public IntlCalendar::getMinimalDaysInFirstWeek(): int|false
public IntlCalendar::getMinimum(int $field): int|false
public static IntlCalendar::getNow(): float
public IntlCalendar::getRepeatedWallTimeOption(): int
public IntlCalendar::getSkippedWallTimeOption(): int
public IntlCalendar::getTime(): float|false
public IntlCalendar::getTimeZone(): IntlTimeZone|false
public IntlCalendar::getType(): string
public IntlCalendar::getWeekendTransition(int $dayOfWeek): int|false
public IntlCalendar::inDaylightTime(): bool
public IntlCalendar::isEquivalentTo(IntlCalendar $other): bool
public IntlCalendar::isLenient(): bool
public IntlCalendar::isSet(int $field): bool
public IntlCalendar::isWeekend(?float $timestamp = null): bool
public IntlCalendar::roll(int $field, int|bool $value): bool
public IntlCalendar::set(int $field, int $value): true
public IntlCalendar::set(
int $year,
int $month,
int $dayOfMonth = NULL,
int $hour = NULL,
int $minute = NULL,
int $second = NULL
): true
public IntlCalendar::setDate(int $year, int $month, int $dayOfMonth): void
public IntlCalendar::setDateTime(
int $year,
int $month,
int $dayOfMonth,
int $hour,
int $minute,
?int $second = null
): void
public IntlCalendar::setFirstDayOfWeek(int $dayOfWeek): true
public IntlCalendar::setLenient(bool $lenient): true
public IntlCalendar::setMinimalDaysInFirstWeek(int $days): true
public IntlCalendar::setRepeatedWallTimeOption(int $option): true
public IntlCalendar::setSkippedWallTimeOption(int $option): true
public IntlCalendar::setTime(float $timestamp): bool
public IntlCalendar::setTimeZone(IntlTimeZone|DateTimeZone|string|null $timezone): bool
public IntlCalendar::toDateTime(): DateTime|false
}

Sommaire

  • IntlGregorianCalendar::__construct — Create the Gregorian Calendar class
  • IntlGregorianCalendar::createFromDate — Create a new IntlGregorianCalendar instance from date
  • IntlGregorianCalendar::createFromDateTime — Create a new IntlGregorianCalendar instance from date and time
  • IntlGregorianCalendar::getGregorianChange — Get the Gregorian Calendar change date
  • IntlGregorianCalendar::isLeapYear — Determine if the given year is a leap year
  • IntlGregorianCalendar::setGregorianChange — Set the Gregorian Calendar the change date


Create the Gregorian Calendar class

  • « IntlGregorianCalendar
  • IntlGregorianCalendar::createFromDate »
  • PHP Manual
  • IntlGregorianCalendar
  • Create the Gregorian Calendar class

IntlGregorianCalendar::__construct

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlGregorianCalendar::__construct — Create the Gregorian Calendar class

Description

public IntlGregorianCalendar::__construct(IntlTimeZone $tz = ?, string $locale = ?)
public IntlGregorianCalendar::__construct(int $timeZoneOrYear, int $localeOrMonth, int $dayOfMonth)
public IntlGregorianCalendar::__construct(
int $timeZoneOrYear,
int $localeOrMonth,
int $dayOfMonth,
int $hour,
int $minute,
int $second = ?
)

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

tz

locale

timeZoneOrYear

localeOrMonth

dayOfMonth

hour

minute

second


Create a new IntlGregorianCalendar instance from date

  • « IntlGregorianCalendar::__construct
  • IntlGregorianCalendar::createFromDateTime »
  • PHP Manual
  • IntlGregorianCalendar
  • Create a new IntlGregorianCalendar instance from date

IntlGregorianCalendar::createFromDate

(PHP 8 >= 8.3.0)

IntlGregorianCalendar::createFromDate — Create a new IntlGregorianCalendar instance from date

Description

public static IntlGregorianCalendar::createFromDate(int $year, int $month, int $dayOfMonth): static

Creates a new IntlGregorianCalendar instance from date.

Liste de paramètres

year

The new value for IntlGregorianCalendar::FIELD_YEAR.

month

The new value for IntlGregorianCalendar::FIELD_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.

dayOfMonth

The new value for IntlGregorianCalendar::FIELD_DAY_OF_MONTH.

Valeurs de retour

Returns a new IntlGregorianCalendar instance.

Exemples

Exemple #1 IntlGregorianCalendar::createFromDate() example

<?php

$intlCalendar = IntlGregorianCalendar::createFromDate(2023, 11, 23);
var_dump($intlCalendar);
?>

Résultat de l'exemple ci-dessus est similaire à :

object(IntlGregorianCalendar)#1 (5) {
  ["valid"]=>
  bool(true)
  ["type"]=>
  string(9) "gregorian"
  ["timeZone"]=>
  array(4) {
    ["valid"]=>
    bool(true)
    ["id"]=>
    string(16) "Europe/Amsterdam"
    ["rawOffset"]=>
    int(3600000)
    ["currentOffset"]=>
    int(3600000)
  }
  ["locale"]=>
  string(11) "en_US_POSIX"
  ["fields"]=>
  array(23) {
    ["era"]=>
    int(1)
    ["year"]=>
    int(2023)
    ["month"]=>
    int(11)
    ["week of year"]=>
    int(51)
    ["week of month"]=>
    int(4)
    ["day of year"]=>
    int(357)
    ["day of month"]=>
    int(23)
    ["day of week"]=>
    int(7)
    ["day of week in month"]=>
    int(4)
    ["AM/PM"]=>
    int(0)
    ["hour"]=>
    int(0)
    ["hour of day"]=>
    int(0)
    ["minute"]=>
    int(0)
    ["second"]=>
    int(0)
    ["millisecond"]=>
    int(0)
    ["zone offset"]=>
    int(3600000)
    ["DST offset"]=>
    int(0)
    ["year for week of year"]=>
    int(2023)
    ["localized day of week"]=>
    int(7)
    ["extended year"]=>
    int(2023)
    ["julian day"]=>
    int(2460302)
    ["milliseconds in day"]=>
    int(0)
    ["is leap month"]=>
    int(0)
  }
}

Voir aussi

  • IntlGregorianCalendar::createFromDateTime() - Create a new IntlGregorianCalendar instance from date and time


Create a new IntlGregorianCalendar instance from date and time

  • « IntlGregorianCalendar::createFromDate
  • IntlGregorianCalendar::getGregorianChange »
  • PHP Manual
  • IntlGregorianCalendar
  • Create a new IntlGregorianCalendar instance from date and time

IntlGregorianCalendar::createFromDateTime

(PHP 8 >= 8.3.0)

IntlGregorianCalendar::createFromDateTime — Create a new IntlGregorianCalendar instance from date and time

Description

public static IntlGregorianCalendar::createFromDateTime(
int $year,
int $month,
int $dayOfMonth,
int $hour,
int $minute,
?int $second = null
): static

Creates a new IntlGregorianCalendar instance from date and time.

Liste de paramètres

year

The new value for IntlGregorianCalendar::FIELD_YEAR.

month

The new value for IntlGregorianCalendar::FIELD_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.

dayOfMonth

The new value for IntlGregorianCalendar::FIELD_DAY_OF_MONTH.

hour

The new value for IntlGregorianCalendar::FIELD_HOUR_OF_DAY.

minute

The new value for IntlGregorianCalendar::FIELD_MINUTE.

second

The new value for IntlGregorianCalendar::FIELD_SECOND.

Valeurs de retour

Returns a new IntlGregorianCalendar instance.

Exemples

Exemple #1 IntlGregorianCalendar::createFromDateTime() example

<?php

$intlCalendar = IntlGregorianCalendar::createFromDateTime(2023, 11, 23, 12, 00);
var_dump($intlCalendar);
?>

Résultat de l'exemple ci-dessus est similaire à :

object(IntlGregorianCalendar)#1 (5) {
  ["valid"]=>
  bool(true)
  ["type"]=>
  string(9) "gregorian"
  ["timeZone"]=>
  array(4) {
    ["valid"]=>
    bool(true)
    ["id"]=>
    string(16) "Europe/Amsterdam"
    ["rawOffset"]=>
    int(3600000)
    ["currentOffset"]=>
    int(3600000)
  }
  ["locale"]=>
  string(11) "en_US_POSIX"
  ["fields"]=>
  array(23) {
    ["era"]=>
    int(1)
    ["year"]=>
    int(2023)
    ["month"]=>
    int(11)
    ["week of year"]=>
    int(51)
    ["week of month"]=>
    int(4)
    ["day of year"]=>
    int(357)
    ["day of month"]=>
    int(23)
    ["day of week"]=>
    int(7)
    ["day of week in month"]=>
    int(4)
    ["AM/PM"]=>
    int(1)
    ["hour"]=>
    int(0)
    ["hour of day"]=>
    int(12)
    ["minute"]=>
    int(0)
    ["second"]=>
    int(0)
    ["millisecond"]=>
    int(0)
    ["zone offset"]=>
    int(3600000)
    ["DST offset"]=>
    int(0)
    ["year for week of year"]=>
    int(2023)
    ["localized day of week"]=>
    int(7)
    ["extended year"]=>
    int(2023)
    ["julian day"]=>
    int(2460302)
    ["milliseconds in day"]=>
    int(43200000)
    ["is leap month"]=>
    int(0)
  }
}

Voir aussi

  • IntlGregorianCalendar::createFromDate() - Create a new IntlGregorianCalendar instance from date


Get the Gregorian Calendar change date

  • « IntlGregorianCalendar::createFromDateTime
  • IntlGregorianCalendar::isLeapYear »
  • PHP Manual
  • IntlGregorianCalendar
  • Get the Gregorian Calendar change date

IntlGregorianCalendar::getGregorianChange

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlGregorianCalendar::getGregorianChange — Get the Gregorian Calendar change date

Description

public IntlGregorianCalendar::getGregorianChange(): float

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the change date.


Determine if the given year is a leap year

  • « IntlGregorianCalendar::getGregorianChange
  • IntlGregorianCalendar::setGregorianChange »
  • PHP Manual
  • IntlGregorianCalendar
  • Determine if the given year is a leap year

IntlGregorianCalendar::isLeapYear

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlGregorianCalendar::isLeapYear — Determine if the given year is a leap year

Description

public IntlGregorianCalendar::isLeapYear(int $year): bool

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

year

Valeurs de retour

Returns true for leap years, false otherwise and on failure.


Set the Gregorian Calendar the change date

  • « IntlGregorianCalendar::isLeapYear
  • IntlTimeZone »
  • PHP Manual
  • IntlGregorianCalendar
  • Set the Gregorian Calendar the change date

IntlGregorianCalendar::setGregorianChange

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlGregorianCalendar::setGregorianChange — Set the Gregorian Calendar the change date

Description

public IntlGregorianCalendar::setGregorianChange(float $timestamp): bool

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

timestamp

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.


The IntlTimeZone class

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

Introduction

Synopsis de la classe

class IntlTimeZone {
/* Constantes */
public const int DISPLAY_SHORT;
public const int DISPLAY_LONG;
public const int DISPLAY_SHORT_GENERIC;
public const int DISPLAY_LONG_GENERIC;
public const int DISPLAY_SHORT_GMT;
public const int DISPLAY_LONG_GMT;
public const int DISPLAY_SHORT_COMMONLY_USED;
public const int DISPLAY_GENERIC_LOCATION;
public const int TYPE_ANY;
public const int TYPE_CANONICAL;
public const int TYPE_CANONICAL_LOCATION;
/* Méthodes */
private __construct()
public static countEquivalentIDs(string $timezoneId): int|false
public static createDefault(): IntlTimeZone
public static createEnumeration(IntlTimeZone|string|int|float|null $countryOrRawOffset = null): IntlIterator|false
public static createTimeZone(string $timezoneId): ?IntlTimeZone
public static createTimeZoneIDEnumeration(int $type, ?string $region = null, ?int $rawOffset = null): IntlIterator|false
public static fromDateTimeZone(DateTimeZone $timezone): ?IntlTimeZone
public static getCanonicalID(string $timezoneId, bool &$isSystemId = null): string|false
public getDisplayName(bool $dst = false, int $style = IntlTimeZone::DISPLAY_LONG, ?string $locale = null): string|false
public getDSTSavings(): int
public static getEquivalentID(string $timezoneId, int $offset): string|false
public getErrorCode(): int|false
public getErrorMessage(): string|false
public static getGMT(): IntlTimeZone
public getID(): string|false
public static getIDForWindowsID(string $timezoneId, ?string $region = null): string|false
public getOffset(
float $timestamp,
bool $local,
int &$rawOffset,
int &$dstOffset
): bool
public getRawOffset(): int
public static getRegion(string $timezoneId): string|false
public static getTZDataVersion(): string|false
public static getUnknown(): IntlTimeZone
public static getWindowsID(string $timezoneId): string|false
public hasSameRules(IntlTimeZone $other): bool
public toDateTimeZone(): DateTimeZone|false
public useDaylightTime(): bool
}

Constantes pré-définies

IntlTimeZone::DISPLAY_SHORT

IntlTimeZone::DISPLAY_LONG

IntlTimeZone::DISPLAY_SHORT_GENERIC

IntlTimeZone::DISPLAY_LONG_GENERIC

IntlTimeZone::DISPLAY_SHORT_GMT

IntlTimeZone::DISPLAY_LONG_GMT

IntlTimeZone::DISPLAY_SHORT_COMMONLY_USED

IntlTimeZone::DISPLAY_GENERIC_LOCATION

IntlTimeZone::TYPE_ANY

IntlTimeZone::TYPE_CANONICAL

IntlTimeZone::TYPE_CANONICAL_LOCATION

Sommaire

  • IntlTimeZone::__construct — Private constructor to disallow direct instantiation
  • 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::createTimeZoneIDEnumeration — Get an enumeration over system time zone IDs with the given filter conditions
  • 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::getIDForWindowsID — Translate a Windows timezone into a system timezone
  • 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::getRegion — Get the region code associated with the given system time zone ID
  • IntlTimeZone::getTZDataVersion — Récupère la version du fuseau horaire actuellement utilisé par ICU
  • IntlTimeZone::getUnknown — Get the "unknown" time zone
  • IntlTimeZone::getWindowsID — Translate a system timezone into a Windows timezone
  • 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


Private constructor to disallow direct instantiation

  • « IntlTimeZone
  • IntlTimeZone::countEquivalentIDs »
  • PHP Manual
  • IntlTimeZone
  • Private constructor to disallow direct instantiation

IntlTimeZone::__construct

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::__construct — Private constructor to disallow direct instantiation

Description

private IntlTimeZone::__construct()

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Récupère le nombre d'IDs dans le groupe d'équivalence qui inclut l'ID fourni

  • « IntlTimeZone::__construct
  • IntlTimeZone::createDefault »
  • PHP Manual
  • IntlTimeZone
  • Récupère le nombre d'IDs dans le groupe d'équivalence qui inclut l'ID fourni

IntlTimeZone::countEquivalentIDs

intltz_count_equivalent_ids

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::countEquivalentIDs -- intltz_count_equivalent_ids — Récupère le nombre d'IDs dans le groupe d'équivalence qui inclut l'ID fourni

Description

Style orienté objet (method):

public static IntlTimeZone::countEquivalentIDs(string $timezoneId): int|false

Style procédural:

intltz_count_equivalent_ids(string $timezoneId): int|false

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

timezoneId

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

intltz_create_default

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::createDefault -- intltz_create_default — Crée une nouvelle copie du fuseau horaire par défaut pour cet hôte

Description

Style orienté objet (method):

public static IntlTimeZone::createDefault(): IntlTimeZone

Style procédural:

intltz_create_default(): IntlTimeZone

Avertissement

Cette fonction est actuellement non documentée ; 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

intltz_create_enumeration

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::createEnumeration -- intltz_create_enumeration — Récupère une énumération d'IDs de fuseau horaire associés avec le pays fourni

Description

Style orienté objet (method):

public static IntlTimeZone::createEnumeration(IntlTimeZone|string|int|float|null $countryOrRawOffset = null): IntlIterator|false

Style procédural:

intltz_create_enumeration(IntlTimeZone|string|int|float|null $countryOrRawOffset = null): IntlIterator|false

Avertissement

Cette fonction est actuellement non documentée ; 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::createTimeZoneIDEnumeration »
  • PHP Manual
  • IntlTimeZone
  • Crée un objet de fuseau horaire pour l'ID fourni

IntlTimeZone::createTimeZone

intltz_create_time_zone

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::createTimeZone -- intltz_create_time_zone — Crée un objet de fuseau horaire pour l'ID fourni

Description

Style orienté objet (method):

public static IntlTimeZone::createTimeZone(string $timezoneId): ?IntlTimeZone

Style procédural:

intltz_create_time_zone(string $timezoneId): ?IntlTimeZone

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

timezoneId

Valeurs de retour


Get an enumeration over system time zone IDs with the given filter conditions

  • « IntlTimeZone::createTimeZone
  • IntlTimeZone::fromDateTimeZone »
  • PHP Manual
  • IntlTimeZone
  • Get an enumeration over system time zone IDs with the given filter conditions

IntlTimeZone::createTimeZoneIDEnumeration

intltz_create_time_zone_id_enumeration

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlTimeZone::createTimeZoneIDEnumeration -- intltz_create_time_zone_id_enumeration — Get an enumeration over system time zone IDs with the given filter conditions

Description

Style orienté objet (method):

public static IntlTimeZone::createTimeZoneIDEnumeration(int $type, ?string $region = null, ?int $rawOffset = null): IntlIterator|false

Style procédural:

intltz_create_time_zone_id_enumeration(int $type, ?string $region = null, ?int $rawOffset = null): IntlIterator|false

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

type

region

rawOffset

Valeurs de retour

Returns IntlIterator ou false si une erreur survient.


Crée un objet fuseau horaire depuis DateTimeZone

  • « IntlTimeZone::createTimeZoneIDEnumeration
  • IntlTimeZone::getCanonicalID »
  • PHP Manual
  • IntlTimeZone
  • Crée un objet fuseau horaire depuis DateTimeZone

IntlTimeZone::fromDateTimeZone

intltz_from_date_time_zone

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::fromDateTimeZone -- intltz_from_date_time_zone — Crée un objet fuseau horaire depuis DateTimeZone

Description

Style orienté objet (method):

public static IntlTimeZone::fromDateTimeZone(DateTimeZone $timezone): ?IntlTimeZone

Style procédural:

intltz_from_date_time_zone(DateTimeZone $timezone): ?IntlTimeZone

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

timezone

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

intltz_get_canonical_id

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::getCanonicalID -- intltz_get_canonical_id — 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

Style orienté objet (method):

public static IntlTimeZone::getCanonicalID(string $timezoneId, bool &$isSystemId = null): string|false

Style procédural:

intltz_get_canonical_id(string $timezoneId, bool &$isSystemId = null): string|false

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

timezoneId

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

intltz_get_display_name

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::getDisplayName -- intltz_get_display_name — Récupère un nom du fuseau horaire aux fins de présentation à l'utilisateur

Description

Style orienté objet (method):

public IntlTimeZone::getDisplayName(bool $dst = false, int $style = IntlTimeZone::DISPLAY_LONG, ?string $locale = null): string|false

Style procédural:

intltz_get_display_name(
IntlTimeZone $timezone,
bool $dst = false,
int $style = IntlTimeZone::DISPLAY_LONG,
?string $locale = null
): string|false

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

dst

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

intltz_get_dst_savings

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::getDSTSavings -- intltz_get_dst_savings — Récupère la durée à ajouter à l'heure locale pour récupérer l'heure murale locale

Description

Style orienté objet (method):

public IntlTimeZone::getDSTSavings(): int

Style procédural:

intltz_get_dst_savings(IntlTimeZone $timezone): int

Avertissement

Cette fonction est actuellement non documentée ; 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

intltz_get_equivalent_id

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::getEquivalentID -- intltz_get_equivalent_id — Récupère un identifiant d'un groupe d'équivalence qui inclut l'identifiant fourni

Description

Style orienté objet (method):

public static IntlTimeZone::getEquivalentID(string $timezoneId, int $offset): string|false

Style procédural:

intltz_get_equivalent_id(string $timezoneId, int $offset): string|false

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

timezoneId

offset

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.5.0, PHP 7, PHP 8, 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 IntlTimeZone::getErrorCode(): int|false

Style procédural:

intltz_get_error_code(IntlTimeZone $timezone): int|false

Avertissement

Cette fonction est actuellement non documentée ; 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.5.0, PHP 7, PHP 8, 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 IntlTimeZone::getErrorMessage(): string|false

Style procédural:

intltz_get_error_message(IntlTimeZone $timezone): string|false

Avertissement

Cette fonction est actuellement non documentée ; 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

intltz_get_gmt

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::getGMT -- intltz_get_gmt — Crée un fuseau horaire GMT (UTC)

Description

Style orienté objet (method):

public static IntlTimeZone::getGMT(): IntlTimeZone

Style procédural:

intltz_get_gmt(): IntlTimeZone

Avertissement

Cette fonction est actuellement non documentée ; 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::getIDForWindowsID »
  • PHP Manual
  • IntlTimeZone
  • Récupère l'ID d'un fuseau horaire

IntlTimeZone::getID

intltz_get_id

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::getID -- intltz_get_id — Récupère l'ID d'un fuseau horaire

Description

Style orienté objet (method):

public IntlTimeZone::getID(): string|false

Style procédural:

intltz_get_id(IntlTimeZone $timezone): string|false

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Translate a Windows timezone into a system timezone

  • « IntlTimeZone::getID
  • IntlTimeZone::getOffset »
  • PHP Manual
  • IntlTimeZone
  • Translate a Windows timezone into a system timezone

IntlTimeZone::getIDForWindowsID

intltz_get_id_for_windows_id

(PHP 7 >= 7.1.0, PHP 8)

IntlTimeZone::getIDForWindowsID -- intltz_get_id_for_windows_id — Translate a Windows timezone into a system timezone

Description

Style orienté objet (method):

public static IntlTimeZone::getIDForWindowsID(string $timezoneId, ?string $region = null): string|false

Style procédural:

intltz_get_id_for_windows_id(string $timezoneId, ?string $region = null): string|false

Translates a Windows timezone (e.g. "Pacific Standard Time") into a system timezone (e.g. "America/Los_Angeles").

Note: This function requires ICU version = 52.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

timezoneId

region

Valeurs de retour

Returns the system timezone ou false si une erreur survient.

Historique

Version | Description
8.0.0 | region is now nullable.

Voir aussi

  • IntlTimeZone::getWindowsID() - Translate a system timezone into a Windows timezone


Récupère le fuseau horaire brute, et la position GMT pour un moment dans le temps donné

  • « IntlTimeZone::getIDForWindowsID
  • 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

intltz_get_offset

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::getOffset -- intltz_get_offset — Récupère le fuseau horaire brute, et la position GMT pour un moment dans le temps donné

Description

Style orienté objet (method):

public IntlTimeZone::getOffset(
float $timestamp,
bool $local,
int &$rawOffset,
int &$dstOffset
): bool

Style procédural:

intltz_get_offset(
IntlTimeZone $timezone,
float $timestamp,
bool $local,
int &$rawOffset,
int &$dstOffset
): bool

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

timestamp

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::getRegion »
  • PHP Manual
  • IntlTimeZone
  • Récupère la position brute GMT (avant de prendre en compte l'heure d'été)

IntlTimeZone::getRawOffset

intltz_get_raw_offset

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::getRawOffset -- intltz_get_raw_offset — Récupère la position brute GMT (avant de prendre en compte l'heure d'été)

Description

Style orienté objet (method):

public IntlTimeZone::getRawOffset(): int

Style procédural:

intltz_get_raw_offset(IntlTimeZone $timezone): int

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Get the region code associated with the given system time zone ID

  • « IntlTimeZone::getRawOffset
  • IntlTimeZone::getTZDataVersion »
  • PHP Manual
  • IntlTimeZone
  • Get the region code associated with the given system time zone ID

IntlTimeZone::getRegion

intltz_get_region

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlTimeZone::getRegion -- intltz_get_region — Get the region code associated with the given system time zone ID

Description

Style orienté objet (method):

public static IntlTimeZone::getRegion(string $timezoneId): string|false

Style procédural:

intltz_get_region(string $timezoneId): string|false

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

timezoneId

Valeurs de retour

Return region ou false si une erreur survient.


Récupère la version du fuseau horaire actuellement utilisé par ICU

  • « IntlTimeZone::getRegion
  • IntlTimeZone::getUnknown »
  • PHP Manual
  • IntlTimeZone
  • Récupère la version du fuseau horaire actuellement utilisé par ICU

IntlTimeZone::getTZDataVersion

intltz_get_tz_data_version

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::getTZDataVersion -- intltz_get_tz_data_version — Récupère la version du fuseau horaire actuellement utilisé par ICU

Description

Style orienté objet (method):

public static IntlTimeZone::getTZDataVersion(): string|false

Style procédural:

intltz_get_tz_data_version(): string|false

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Get the "unknown" time zone

  • « IntlTimeZone::getTZDataVersion
  • IntlTimeZone::getWindowsID »
  • PHP Manual
  • IntlTimeZone
  • Get the "unknown" time zone

IntlTimeZone::getUnknown

intltz_get_unknown

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlTimeZone::getUnknown -- intltz_get_unknown — Get the "unknown" time zone

Description

Style orienté objet (method):

public static IntlTimeZone::getUnknown(): IntlTimeZone

Style procédural:

intltz_get_unknown(): IntlTimeZone

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns IntlTimeZone or null on failure.


Translate a system timezone into a Windows timezone

  • « IntlTimeZone::getUnknown
  • IntlTimeZone::hasSameRules »
  • PHP Manual
  • IntlTimeZone
  • Translate a system timezone into a Windows timezone

IntlTimeZone::getWindowsID

intltz_get_windows_id

(PHP 7 >= 7.1.0, PHP 8)

IntlTimeZone::getWindowsID -- intltz_get_windows_id — Translate a system timezone into a Windows timezone

Description

Style orienté objet (method):

public static IntlTimeZone::getWindowsID(string $timezoneId): string|false

Style procédural:

intltz_get_windows_id(string $timezoneId): string|false

Translates a system timezone (e.g. "America/Los_Angeles") into a Windows timezone (e.g. "Pacific Standard Time").

Note: This function requires ICU version = 52.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

timezoneId

Valeurs de retour

Returns the Windows timezone ou false si une erreur survient.

Voir aussi

  • IntlTimeZone::getIDForWindowsID() - Translate a Windows timezone into a system timezone


Vérifie si cette zone a les mêmes règles qu'une autre

  • « IntlTimeZone::getWindowsID
  • IntlTimeZone::toDateTimeZone »
  • PHP Manual
  • IntlTimeZone
  • Vérifie si cette zone a les mêmes règles qu'une autre

IntlTimeZone::hasSameRules

intltz_has_same_rules

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::hasSameRules -- intltz_has_same_rules — Vérifie si cette zone a les mêmes règles qu'une autre

Description

Style orienté objet (method):

public IntlTimeZone::hasSameRules(IntlTimeZone $other): bool

Style procédural:

intltz_has_same_rules(IntlTimeZone $timezone, IntlTimeZone $other): bool

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

other

Valeurs de retour


Convertit un objet DateTimeZone

  • « IntlTimeZone::hasSameRules
  • IntlTimeZone::useDaylightTime »
  • PHP Manual
  • IntlTimeZone
  • Convertit un objet DateTimeZone

IntlTimeZone::toDateTimeZone

intltz_to_date_time_zone

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::toDateTimeZone -- intltz_to_date_time_zone — Convertit un objet DateTimeZone

Description

Style orienté objet (method):

public IntlTimeZone::toDateTimeZone(): DateTimeZone|false

Style procédural:

intltz_to_date_time_zone(IntlTimeZone $timezone): DateTimeZone|false

Avertissement

Cette fonction est actuellement non documentée ; 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

intltz_use_daylight_time

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlTimeZone::useDaylightTime -- intltz_use_daylight_time — Vérifie si ce fuseau horaire utilise l'heure d'étét

Description

Style orienté objet (method):

public IntlTimeZone::useDaylightTime(): bool

Style procédural:

intltz_use_daylight_time(IntlTimeZone $timezone): bool

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8, 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

class IntlDateFormatter {
/* Constantes */
public const int FULL;
public const int LONG;
public const int MEDIUM;
public const int SHORT;
public const int NONE;
public const int RELATIVE_FULL;
public const int RELATIVE_LONG;
public const int RELATIVE_MEDIUM;
public const int RELATIVE_SHORT;
public const int GREGORIAN;
public const int TRADITIONAL;
/* Méthodes */
public __construct(
?string $locale,
int $dateType = IntlDateFormatter::FULL,
int $timeType = IntlDateFormatter::FULL,
IntlTimeZone|DateTimeZone|string|null $timezone = null,
IntlCalendar|int|null $calendar = null,
?string $pattern = null
)
public static create(
?string $locale,
int $dateType = IntlDateFormatter::FULL,
int $timeType = IntlDateFormatter::FULL,
IntlTimeZone|DateTimeZone|string|null $timezone = null,
IntlCalendar|int|null $calendar = null,
?string $pattern = null
): ?IntlDateFormatter
public format(IntlCalendar|DateTimeInterface|array|string|int|float $datetime): string|false
public static formatObject(IntlCalendar|DateTimeInterface $datetime, array|int|string|null $format = null, ?string $locale = null): string|false
public getCalendar(): int|false
public getDateType(): int|false
public getErrorCode(): int
public getErrorMessage(): string
public getLocale(int $type = ULOC_ACTUAL_LOCALE): string|false
public getPattern(): string|false
public getTimeType(): int|false
public getTimeZoneId(): string|false
public getCalendarObject(): IntlCalendar|false|null
public getTimeZone(): IntlTimeZone|false
public isLenient(): bool
public localtime(string $string, int &$offset = null): array|false
public parse(string $string, int &$offset = null): int|float|false
public setCalendar(IntlCalendar|int|null $calendar): bool
public setLenient(bool $lenient): void
public setPattern(string $pattern): bool
public setTimeZone(IntlTimeZone|DateTimeZone|string|null $timezone): ?bool
}

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
N'inclut pas cet élément
IntlDateFormatter::FULL
Style complètement spécifié (Tuesday, April 12, 1952 AD or 3:30:42pm PST)
IntlDateFormatter::LONG
Style long(January 12, 1952 or 3:30:32pm)
IntlDateFormatter::MEDIUM
Style intermédiaire (Jan 12, 1952)
IntlDateFormatter::SHORT
Style abrégé, uniquement les informations essentielles (12/13/52 ou 3:30pm)
IntlDateFormatter::RELATIVE_FULL
Identique à IntlDateFormatter::FULL, mais hier, aujourd'hui, et demain sont afficher comme yesterday, today, et tomorrow, respectivement. Disponible à partir de PHP 8.0.0, pour dateType uniquement.
IntlDateFormatter::RELATIVE_LONG
Identique à IntlDateFormatter::LONG, mais hier, aujourd'hui, et demain sont afficher comme yesterday, today, et tomorrow, respectivement. Disponible à partir de PHP 8.0.0, pour dateType uniquement.
IntlDateFormatter::RELATIVE_MEDIUM
Identique à IntlDateFormatter::MEDIUM, mais hier, aujourd'hui, et demain sont afficher comme yesterday, today, et tomorrow, respectivement. Disponible à partir de PHP 8.0.0, pour dateType uniquement.
IntlDateFormatter::RELATIVE_SHORT
Identique à IntlDateFormatter::SHORT, mais hier, aujourd'hui, et demain sont afficher comme yesterday, today, et tomorrow, respectivement. Disponible à partir de PHP 8.0.0, pour dateType uniquement.

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
Calendrier non-grégorien
IntlDateFormatter::GREGORIAN
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 convertie 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


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, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::create -- datefmt_create -- IntlDateFormatter::__construct — Crée un formateur de date

Description

Style orienté objet

public static IntlDateFormatter::create(
?string $locale,
int $dateType = IntlDateFormatter::FULL,
int $timeType = IntlDateFormatter::FULL,
IntlTimeZone|DateTimeZone|string|null $timezone = null,
IntlCalendar|int|null $calendar = null,
?string $pattern = null
): ?IntlDateFormatter

Style orienté objet (constructeur)

public IntlDateFormatter::__construct(
?string $locale,
int $dateType = IntlDateFormatter::FULL,
int $timeType = IntlDateFormatter::FULL,
IntlTimeZone|DateTimeZone|string|null $timezone = null,
IntlCalendar|int|null $calendar = null,
?string $pattern = null
)

Style procédural

datefmt_create(
?string $locale,
int $dateType = IntlDateFormatter::FULL,
int $timeType = IntlDateFormatter::FULL,
IntlTimeZone|DateTimeZone|string|null $timezone = null,
IntlCalendar|int|null $calendar = null,
?string $pattern = null
): ?IntlDateFormatter

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.

timeType

Format de l'heure déterminé par l'une des constantes d'IntlDateFormatter. La valeur par défaut est IntlDateFormatter::FULL.

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 » https://unicode-org.github.io/icu/userguide/format_parse/datetime/.

Valeurs de retour

L'objet IntlDateFormatter créé, ou null si une erreur survient.

Historique

Version | Description
8.1.0 | Les paramètres dateType et timeType sont désormais facultatifs.

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);
?>

Exemple #3 Exemple de gestion de locale invalide

<?php
try {
$fmt = new IntlDateFormatter(
'locale_invalide',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'je_ne_sais_pas',
IntlDateFormatter::GREGORIAN,
);
} catch (\Error $e) {
// ...
}
?>

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, PHP 8, 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 IntlDateFormatter::format(IntlCalendar|DateTimeInterface|array|string|int|float $datetime): string|false

Style procédural

datefmt_format(IntlDateFormatter $formatter, IntlCalendar|DateTimeInterface|array|string|int|float $datetime): string|false

Formate l'heure sous forme de chaîne.

Liste de paramètres

formatter

La ressource de formateur IntlDateFormatter.

datetime

La valeur à formater. Ce peut être un objet DateTimeInterface, 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
7.1.5 | Ajout du support pour fournir un objet générique DateTimeInterface pour le paramètre datetime. Anciennement, seulement les objets valide DateTime étaient supportés.
PECL 3.0.0 | Il est maintenant possible de passer un objet IntlCalendar comme valeur du paramètre datetime.

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, PHP 8, PECL intl >= 3.0.0)

IntlDateFormatter::formatObject -- datefmt_format_object — Formate un objet

Description

Style orienté objet

public static IntlDateFormatter::formatObject(IntlCalendar|DateTimeInterface $datetime, array|int|string|null $format = null, ?string $locale = null): string|false

Style procédural

datefmt_format_object(IntlCalendar|DateTimeInterface $datetime, array|int|string|null $format = null, ?string $locale = null): string|false

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

datetime

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 int 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, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::getCalendar -- datefmt_get_calendar — Lit le calendrier utilisé par l'objet IntlDateFormatter

Description

Style orienté objet

public IntlDateFormatter::getCalendar(): int|false

Style procédural

datefmt_get_calendar(IntlDateFormatter $formatter): int|false

Liste de paramètres

formatter

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. Retourne false en cas d'échec.

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();

?>

Exemple #3 Exemple de gestion de locale invalide

<?php
try {
$fmt = new IntlDateFormatter(
'locale_invalide',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'je_ne_sais_pas',
IntlDateFormatter::GREGORIAN,
);
} catch (\Error $e) {
// ...
}
?>

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, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::getDateType -- datefmt_get_datetype — Lit le type de date utilisé par IntlDateFormatter

Description

Style orienté objet

public IntlDateFormatter::getDateType(): int|false

Style procédural

datefmt_get_datetype(IntlDateFormatter $formatter): int|false

Retourne le type de date utilisé par le formateur IntlDateFormatter.

Liste de paramètres

formatter

La ressource de formatteur IntlDateFormatter.

Valeurs de retour

Le type de date courant du formateur, ou false si une erreur survient.

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, PHP 8, 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 IntlDateFormatter::getErrorCode(): int

Style procédural

datefmt_get_error_code(IntlDateFormatter $formatter): int

Renvoie le code d'erreur de la dernière opération de formatage.

Liste de paramètres

formatter

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);

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(0);

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, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::getErrorMessage -- datefmt_get_error_message — Lit le dernier message d'erreur

Description

Style orienté objet

public IntlDateFormatter::getErrorMessage(): string

Style procédural

datefmt_get_error_message(IntlDateFormatter $formatter): string

Lit le message d'erreur de la dernière opération.

Liste de paramètres

formatter

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);

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(0);

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_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, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::getLocale -- datefmt_get_locale — Lit la locale utilisée par le formateur

Description

Style orienté objet

public IntlDateFormatter::getLocale(int $type = ULOC_ACTUAL_LOCALE): string|false

Style procédural

datefmt_get_locale(IntlDateFormatter $formatter, int $type = ULOC_ACTUAL_LOCALE): string|false

Lit la locale utilisée par le formateur.

Liste de paramètres

formatter

La ressource de formateur IntlDateFormatter.

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). La valeur par défaut est la valeur littérale.

Valeurs de retour

La locale de ce formateur, ou false si une erreur survient.

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, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::getPattern -- datefmt_get_pattern — Lit le modèle utilisé par IntlDateFormatter

Description

Style orienté objet

public IntlDateFormatter::getPattern(): string|false

Style procédural

datefmt_get_pattern(IntlDateFormatter $formatter): string|false

Lit le modèle utilisé par le formateur.

Liste de paramètres

formatter

La ressource de formateur IntlDateFormatter.

Valeurs de retour

Le modèle utilisé pour analyser et former, ou false si une erreur survient.

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, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::getTimeType -- datefmt_get_timetype — Lit le type de temps pour IntlDateFormatter

Description

Style orienté objet

public IntlDateFormatter::getTimeType(): int|false

Style procédural

datefmt_get_timetype(IntlDateFormatter $formatter): int|false

Retourne le type de temps utilisé par le formateur.

Liste de paramètres

formatter

La ressource de formateur IntlDateFormatter.

Valeurs de retour

La valeur courante de type de date utilisé par le formateur, ou false si une erreur survient.

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, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::getTimeZoneId -- datefmt_get_timezone_id — Lit le fuseau horaire de IntlDateFormatter

Description

Style orienté objet

public IntlDateFormatter::getTimeZoneId(): string|false

Style procédural

datefmt_get_timezone_id(IntlDateFormatter $formatter): string|false

Lit le fuseau horaire utilisé par IntlDateFormatter.

Liste de paramètres

formatter

La ressource de formateur IntlDateFormatter.

Valeurs de retour

L'identifiant du fuseau horaire utilisé par ce formateur, ou false si une erreur survient.

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 'timezone_id of the formatter is: ' . datefmt_get_timezone_id($fmt) . "\n";
datefmt_set_timezone($fmt, 'Europe/Madrid');
echo 'Now timezone_id of the formatter is: ' . 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 'timezone_id of the formatter is: ' . $fmt->getTimezoneId() . "\n";
$fmt->setTimezone('Europe/Madrid');
echo 'Now timezone_id of the formatter is: ' . $fmt->getTimezoneId();

?>

L'exemple ci-dessus va afficher :

timezone_id of the formatter is: America/Los_Angeles
Now timezone_id of the formatter is: Europe/Madrid

Voir aussi

  • datefmt_set_timezone() - Définit le formateur pour le décalage horaire
  • 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, PHP 8, 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 IntlDateFormatter::getCalendarObject(): IntlCalendar|false|null

Style procédural

datefmt_get_calendar_object(IntlDateFormatter $formatter): IntlCalendar|false|null

Obtient une copie de l'objet calendrier utilisé en interne par ce formateur. Ce calendrier aura un type (comme grégorien, japonais, bouddhiste, 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, ou null si aucun n'a été défini, ou false si une erreur survient.

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, PHP 8, PECL intl >= 3.0.0)

IntlDateFormatter::getTimeZone -- datefmt_get_timezone — Récupère le formateur du décalage horaire

Description

Style orienté objet

public IntlDateFormatter::getTimeZone(): IntlTimeZone|false

Style procédural

datefmt_get_timezone(IntlDateFormatter $formatter): IntlTimeZone|false

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, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::isLenient -- datefmt_is_lenient — Retourne la sévérité utilisée pour IntlDateFormatter

Description

Style orienté objet

public IntlDateFormatter::isLenient(): bool

Style procédural

datefmt_is_lenient(IntlDateFormatter $formatter): bool

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

formatter

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 convertie en temps

  • « IntlDateFormatter::isLenient
  • IntlDateFormatter::parse »
  • PHP Manual
  • IntlDateFormatter
  • Analyse une chaîne et la convertie en temps

IntlDateFormatter::localtime

datefmt_localtime

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::localtime -- datefmt_localtime — Analyse une chaîne et la convertie en temps

Description

Style orienté objet

public IntlDateFormatter::localtime(string $string, int &$offset = null): array|false

Style procédural

datefmt_localtime(IntlDateFormatter $formatter, string $string, int &$offset = null): array|false

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

formatter

La ressource de formateur IntlDateFormatter.

string

La chaîne à convertir.

offset

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 > strlen($value), 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, ou false si une erreur survient.

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, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::parse -- datefmt_parse — Analyse une chaîne vers un timestamp

Description

Style orienté objet

public IntlDateFormatter::parse(string $string, int &$offset = null): int|float|false

Style procédural

datefmt_parse(IntlDateFormatter $formatter, string $string, int &$offset = null): int|float|false

Converti string en une valeur de temps, en commençant à offset et en lisant autant de caractères que possible.

Liste de paramètres

formatter

La ressource de formateur IntlDateFormatter.

string

La chaîne à convertir en temps.

offset

La position à partir de laquelle commencer l'analyse dans la valeur string. Les positions commencent à 0. Si aucune erreur ne survient durant l'analyse de string, offset 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 offset > strlen($string), 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 convertie 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, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::setCalendar -- datefmt_set_calendar — Définit le type de calendrier utilisé par le formateur

Description

Style orienté objet

public IntlDateFormatter::setCalendar(IntlCalendar|int|null $calendar): bool

Style procédural

datefmt_set_calendar(IntlDateFormatter $formatter, IntlCalendar|int|null $calendar): bool

Configure le calendrier ou le type de calendrier à utiliser par le formateur.

Liste de paramètres

formatter

La ressource de formateur IntlDateFormatter.

calendar

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 cloné ; 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, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::setLenient -- datefmt_set_lenient — Configure la souplesse de l'analyseur

Description

Style orienté objet

public IntlDateFormatter::setLenient(bool $lenient): void

Style procédural

datefmt_set_lenient(IntlDateFormatter $formatter, bool $lenient): void

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

formatter

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::setTimeZone »
  • PHP Manual
  • IntlDateFormatter
  • Configure le modèle utilisé par le IntlDateFormatter

IntlDateFormatter::setPattern

datefmt_set_pattern

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::setPattern -- datefmt_set_pattern — Configure le modèle utilisé par le IntlDateFormatter

Description

Style orienté objet

public IntlDateFormatter::setPattern(string $pattern): bool

Style procédural

datefmt_set_pattern(IntlDateFormatter $formatter, string $pattern): bool

Configure le modèle utilisé par le IntlDateFormatter.

Liste de paramètres

formatter

La ressource de formateur IntlDateFormatter.

pattern

Le nouveau masque à utiliser. Les masques possibles sont documentés sur » https://unicode-org.github.io/icu/userguide/format_parse/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 'Pattern of the formatter is : ', datefmt_get_pattern($fmt), PHP_EOL;
echo 'First Formatted output with pattern is ', datefmt_format($fmt, 0), PHP_EOL;
datefmt_set_pattern($fmt, 'yyyyMMdd hh:mm:ss z');
echo 'Now pattern of the formatter is : ', datefmt_get_pattern($fmt), PHP_EOL;
echo 'Second Formatted output with pattern is ', datefmt_format($fmt, 0), PHP_EOL;
?>

Exemple #2 Exemple orienté objet

<?php
$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
'MM/dd/yyyy'
);
echo 'Pattern of the formatter is : ', $fmt->getPattern(), PHP_EOL;
echo 'First Formatted output is ', $fmt->format(0), PHP_EOL;
$fmt->setPattern('yyyyMMdd hh:mm:ss z');
echo 'Now pattern of the formatter is : ', $fmt->getPattern(), PHP_EOL;
echo 'Second Formatted output is ', $fmt->format(0), PHP_EOL;
?>

L'exemple ci-dessus va afficher :

Pattern of the formatter is : MM/dd/yyyy
First Formatted output is 12/31/1969
Now pattern of the formatter is : yyyyMMdd hh:mm:ss z
Second Formatted output is 19691231 04:00:00 PST

Voir aussi

  • datefmt_get_pattern() - Lit le modèle utilisé par IntlDateFormatter
  • datefmt_create() - Crée un formateur de date


Définit le formateur pour le décalage horaire

  • « IntlDateFormatter::setPattern
  • 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, PHP 8, PECL intl >= 3.0.0)

IntlDateFormatter::setTimeZone -- datefmt_set_timezone — Définit le formateur pour le décalage horaire

Description

Style orienté objet

public IntlDateFormatter::setTimeZone(IntlTimeZone|DateTimeZone|string|null $timezone): ?bool

Style procédural

datefmt_set_timezone(IntlDateFormatter $formatter, IntlTimeZone|DateTimeZone|string|null $timezone): bool

Définit le décalage horaire utilisé par l'objet IntlDateFormatter.

Liste de paramètres

formatter

Le formatteur de ressource.

timezone

Le décalage horaire à utiliser avec ce formateur. Peut-être spécifié via les formats suivants :

  • null, dans quel cas le fuseau horaire par défaut sera utilisé, comme spécifié dans le paramètre de configuration du fichier ini date.timezone ou par la fonction date_default_timezone_set() et comme retourné par date_default_timezone_get().

  • Un IntlTimeZone, qui sera utilisé directement.

  • Un DateTimeZone. Son identifiant sera extrait et un objet de fuseau horaire ICU sera créé; le fuseau horaire sera soutenu par la base de données de l'ICU, et non par PHP.

  • Une chaîne de caractères, qui devrait être un identifiant de fuseau horaire ICU valide. Voir IntlTimeZone::createTimeZoneIDEnumeration(). Les décalages bruts tels que "GMT+08:30" sont aussi acceptés.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.3.0 | Cette fonction retourne désormais true en cas de succès ; précédemment elle retournait null.

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 >= 5.3.2, PHP 7, PHP 8, 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

class ResourceBundle implements IteratorAggregate, Countable {
/* Méthodes */
public __construct(?string $locale, ?string $bundle, bool $fallback = true)
public count(): int
public static create(?string $locale, ?string $bundle, bool $fallback = true): ?ResourceBundle
public getErrorCode(): int
public getErrorMessage(): string
public get(string|int $index, bool $fallback = true): mixed
public static getLocales(string $bundle): array|false
}

Historique

Version | Description
8.0.0 | La classe ResourceBundle implémente désormais IteratorAggregate. Auparavant, seule Traversable était implémentée.
7.4.0 | La classe ResourceBundle implémente désormais Countable.

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 >= 5.3.2, PHP 7, PHP 8, 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 ResourceBundle::count(): int

Style procédural

resourcebundle_count(ResourceBundle $bundle): int

Récupère le nombre d'éléments dans le faisceau.

Liste de paramètres

bundle

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 >= 5.3.2, PHP 7, PHP 8, 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::create(?string $locale, ?string $bundle, bool $fallback = true): ?ResourceBundle

Style procédural

resourcebundle_create(?string $locale, ?string $bundle, bool $fallback = true): ?ResourceBundle

Style orienté objet (constructeur) :

public ResourceBundle::__construct(?string $locale, ?string $bundle, bool $fallback = true)

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).

bundle

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 >= 5.3.2, PHP 7, PHP 8, 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 ResourceBundle::getErrorCode(): int

Style procédural

resourcebundle_get_error_code(ResourceBundle $bundle): int

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

bundle

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 >= 5.3.2, PHP 7, PHP 8, 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 ResourceBundle::getErrorMessage(): string

Style procédural

resourcebundle_get_error_message(ResourceBundle $bundle): string

Récupère le message d'erreur depuis la dernière fonction exécutée sur l'objet du faisceau.

Liste de paramètres

bundle

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 >= 5.3.2, PHP 7, PHP 8, PECL intl >= 2.0.0)

ResourceBundle::get -- resourcebundle_get — Récupère les données depuis le faisceau

Description

Style orienté objet

public ResourceBundle::get(string|int $index, bool $fallback = true): mixed

Style procédural

resourcebundle_get(ResourceBundle $bundle, string|int $index, bool $fallback = true): mixed

Récupère les données depuis le faisceau par l'index ou la clé.

Liste de paramètres

bundle

Un objet ResourceBundle.

index

L'index des données ; peut être une chaîne de caractères ou un entier.

fallback

Les paramètres régionaux doivent correspondre exactement ou le retour aux paramètres régionaux parents est autoris

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 >= 5.3.2, PHP 7, PHP 8, PECL intl >= 2.0.0)

ResourceBundle::getLocales -- resourcebundle_locales — Récupère les locales supportées

Description

Style orienté objet

public static ResourceBundle::getLocales(string $bundle): array|false

Style procédural

resourcebundle_locales(string $bundle): array|false

Récupère la liste des locales depuis le nom ResourceBundle.

Liste de paramètres

bundle

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, ou false en cas d'échec.

Exemples

Exemple #1 Exemple avec resourcebundle_locales()

<?php
$bundle = "/user/share/data/myapp";
echo join(PHP_EOL, resourcebundle_locales($bundle));
?>

Résultat de l'exemple ci-dessus est 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));
?>

Résultat de l'exemple ci-dessus est similaire à :

es
root

Voir aussi

  • resourcebundle_get() - Récupère les données depuis le faisceau


La classe Spoofchecker

(PHP 5 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)

Introduction

Cette classe est fournie car Unicode contient un grand nombre de caractères et incorpore les systèmes d'écriture variés du monde et leur utilisation incorrecte peut exposer des programmes ou des systèmes à d'éventuelles attaques de sécurité en utilisant la similarité des caractères.

Les méthodes fournies permettent de vérifier si une chaîne individuelle est susceptible d'être une tentative à tromper le lecteur (détection de tromperie), tel que dans "p?yp?l" orthographié avec un caractère '?' cyrillique.

Synopsis de la classe

class Spoofchecker {
/* Constantes */
public const int SINGLE_SCRIPT_CONFUSABLE;
public const int MIXED_SCRIPT_CONFUSABLE;
public const int WHOLE_SCRIPT_CONFUSABLE;
public const int ANY_CASE;
public const int SINGLE_SCRIPT;
public const int INVISIBLE;
public const int CHAR_LIMIT;
public const int ASCII;
public const int HIGHLY_RESTRICTIVE;
public const int MODERATELY_RESTRICTIVE;
public const int MINIMALLY_RESTRICTIVE;
public const int UNRESTRICTIVE;
public const int SINGLE_SCRIPT_RESTRICTIVE;
public const int MIXED_NUMBERS;
public const int HIDDEN_OVERLAY;
/* Méthodes */
public __construct()
public areConfusable(string $string1, string $string2, int &$errorCode = null): bool
public isSuspicious(string $string, int &$errorCode = null): bool
public setAllowedLocales(string $locales): void
public setChecks(int $checks): void
public setRestrictionLevel(int $level): void
}

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

Spoofchecker::ASCII

Spoofchecker::HIGHLY_RESTRICTIVE

Spoofchecker::MODERATELY_RESTRICTIVE

Spoofchecker::MINIMALLY_RESTRICTIVE

Spoofchecker::UNRESTRICTIVE

Spoofchecker::SINGLE_SCRIPT_RESTRICTIVE

Spoofchecker::MIXED_NUMBERS

Spoofchecker::HIDDEN_OVERLAY

Historique

Version | Description
7.3.0 | Les constantes de classe utilisé par Spoofchecker::setRestrictionLevel() tel que Spoofchecker::ASCII, Spoofchecker::HIGHLY_RESTRICTIVE, Spoofchecker::MODERATELY_RESTRICTIVE, Spoofchecker::MINIMALLY_RESTRICTIVE, Spoofchecker::UNRESTRICTIVE, Spoofchecker::SINGLE_SCRIPT_RESTRICTIVE ont été ajoutées.

Sommaire

  • Spoofchecker::areConfusable — Vérifie si les chaînes données peuvent être confondues
  • 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
  • Spoofchecker::setRestrictionLevel — Set the restriction level


Vérifie si les chaînes données peuvent être confondues

  • « Spoofchecker
  • Spoofchecker::__construct »
  • PHP Manual
  • Spoofchecker
  • Vérifie si les chaînes données peuvent être confondues

Spoofchecker::areConfusable

(PHP 5 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)

Spoofchecker::areConfusable — Vérifie si les chaînes données peuvent être confondues

Description

public Spoofchecker::areConfusable(string $string1, string $string2, int &$errorCode = null): bool

Vérifie si deux chaînes données peuvent facilement être confondues.

Liste de paramètres

string1

Première chaîne à vérifier.

string2

Deuxième chaîne à vérifier.

errorCode

Cette variable est définie par référence à un entier contenant une erreur, s'il y en avait.

Valeurs de retour

Retourne true si les deux chaînes données peuvent être confondues, et false sinon.

Exemples

Exemple #1 Exemple Spoofchecker::areConfusable()

<?php
$checker = new Spoofchecker();

$checker->areConfusable('google.com', 'goog1e.com'); // true
// Le "l" minuscule peut être confondu avec le chiffre un

$checker->areConfusable('google.com', 'g00g1e.com'); // false
// Zéro (0) ne peut pas être facilement confondu avec la lettre "o"


Constructeur

  • « Spoofchecker::areConfusable
  • Spoofchecker::isSuspicious »
  • PHP Manual
  • Spoofchecker
  • Constructeur

Spoofchecker::__construct

(No version information available, might only be in Git)

Spoofchecker::__construct — Constructeur

Description

public Spoofchecker::__construct()

Crée une nouvelle instance de Spoofchecker.

Liste de paramètres

Cette fonction ne contient aucun paramètre.


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 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)

Spoofchecker::isSuspicious — Vérifie si un texte contient des caractères suspects

Description

public Spoofchecker::isSuspicious(string $string, int &$errorCode = null): bool

Vérifie si la chaîne donnée contient des caractères suspects comme des lettres qui sont presque identiques visuellement, mais sont des caractères Unicode de différents ensembles.

Liste de paramètres

string

Chaîne à tester.

errorCode

Cette variable est définie par référence à un entier contenant une erreur, s'il y en avait.

Valeurs de retour

Retourne true s'il y a des caractères suspects, et false sinon.

Exemples

Exemple #1 Exemple Spoofchecker::isSuspicious()

<?php
$checker = new Spoofchecker();

$checker->isSuspicious('google.com'); // FALSE: seulement des caractères ASCII

$checker->isSuspicious('?aypal.com'); // TRUE
// La première lettre est Cyrillique, pas un "P" latin


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 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)

Spoofchecker::setAllowedLocales — Locales à utiliser lors de la vérification

Description

public Spoofchecker::setAllowedLocales(string $locales): void

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

locales

Valeurs de retour


Spécifie les vérifications à effectuer

  • « Spoofchecker::setAllowedLocales
  • Spoofchecker::setRestrictionLevel »
  • PHP Manual
  • Spoofchecker
  • Spécifie les vérifications à effectuer

Spoofchecker::setChecks

(PHP 5 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)

Spoofchecker::setChecks — Spécifie les vérifications à effectuer

Description

public Spoofchecker::setChecks(int $checks): void

Définit les contrôles qui seront effectués par SpoofChecker::isSuspicious().

Liste de paramètres

checks

Les contrôles qui seront effectués par SpoofChecker::isSuspicious().
Un masque de bits de
Spoofchecker::SINGLE_SCRIPT_CONFUSABLE,
Spoofchecker::MIXED_SCRIPT_CONFUSABLE,
Spoofchecker::WHOLE_SCRIPT_CONFUSABLE,
Spoofchecker::ANY_CASE,
Spoofchecker::SINGLE_SCRIPT,
Spoofchecker::INVISIBLE ou
Spoofchecker::CHAR_LIMIT.
Par défaut, toutes les vérifications à partir de ICU 58 ;
avant cette version, Spoofchecker::SINGLE_SCRIPT était exclu.

Valeurs de retour

Aucune valeur n'est retournée.


Set the restriction level

  • « Spoofchecker::setChecks
  • Transliterator »
  • PHP Manual
  • Spoofchecker
  • Set the restriction level

Spoofchecker::setRestrictionLevel

(PHP 7 >= 7.3.0, PHP 8)

Spoofchecker::setRestrictionLevel — Set the restriction level

Description

public Spoofchecker::setRestrictionLevel(int $level): void

Sets the restriction level of SpoofChecker::isSuspicious().

Liste de paramètres

level

The restriction level of SpoofChecker::isSuspicious().
One of
Spoofchecker::ASCII,
Spoofchecker::SINGLE_SCRIPT_RESTRICTIVE,
Spoofchecker::HIGHLY_RESTRICTIVE,
Spoofchecker::MODERATELY_RESTRICTIVE,
Spoofchecker::MINIMALLY_RESTRICTIVE, or
Spoofchecker::UNRESTRICTIVE.
Defaults to Spoofchecker::HIGHLY_RESTRICTIVE.

Valeurs de retour

Aucune valeur n'est retournée.


La classe Transliterator

(PHP 5 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)

Introduction

La classe Transliterator fournit la translittération des chaînes de caractères.

Synopsis de la classe

class Transliterator {
/* Constantes */
public const int FORWARD;
public const int REVERSE;
/* Propriétés */
public readonly string $id;
/* Méthodes */
final private __construct()
public static create(string $id, int $direction = Transliterator::FORWARD): ?Transliterator
public static createFromRules(string $rules, int $direction = Transliterator::FORWARD): ?Transliterator
public createInverse(): ?Transliterator
public getErrorCode(): int|false
public getErrorMessage(): string|false
public static listIDs(): array|false
public transliterate(string $string, int $start = 0, int $end = -1): string|false
}

Propriétés

id

Constantes pré-définies

Transliterator::FORWARD

Transliterator::REVERSE

Historique

Version | Description
8.2.0 | La propriété id est désormais readonly.

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 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)

Transliterator::__construct — Constructeur privé pour interdire l'instantiation

Description

final private Transliterator::__construct()

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.

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 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)

Transliterator::create -- transliterator_create — Crée un Transliterator

Description

Style orienté objet

public static Transliterator::create(string $id, int $direction = Transliterator::FORWARD): ?Transliterator

Style procédural

transliterator_create(string $id, int $direction = Transliterator::FORWARD): ?Transliterator

Ouvre un Transliterator par son identifiant.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

id

L'identifiant. Une listede tous les identifiants transliterator enregistrés peut être retrouvée en utilisant la méthode Transliterator::listIDs().

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 >= 5.4.0, PHP 7, PHP 8, 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::createFromRules(string $rules, int $direction = Transliterator::FORWARD): ?Transliterator

Style procédural

transliterator_create_from_rules(string $rules, int $direction = Transliterator::FORWARD): ?Transliterator

Crée un translittérateur depuis des règles.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

rules

Les règles comme définie dans Transform Rules Syntax de UTS #35 : Unicode LDML.

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 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)

Transliterator::createInverse -- transliterator_create_inverse — Crée un translittérateur inverse

Description

Style orienté objet

public Transliterator::createInverse(): ?Transliterator

Style procédural

transliterator_create_inverse(Transliterator $transliterator): ?Transliterator

Crée un translittérateur inverse.

Avertissement

Cette fonction est actuellement non documentée ; 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 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)

Transliterator::getErrorCode -- transliterator_get_error_code — Récupère le dernier code erreur

Description

Style orienté objet

public Transliterator::getErrorCode(): int|false

Style procédural

transliterator_get_error_code(Transliterator $transliterator): int|false

Récupère le dernier code erreur depuis ce translittérateur.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

transliterator

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 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)

Transliterator::getErrorMessage -- transliterator_get_error_message — Récupère le dernier message d'erreur

Description

Style orienté objet

public Transliterator::getErrorMessage(): string|false

Style procédural

transliterator_get_error_message(Transliterator $transliterator): string|false

Récupère le dernier message d'erreur depuis ce translittérateur.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

transliterator

Valeurs de retour

Le message d'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 >= 5.4.0, PHP 7, PHP 8, 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 Transliterator::listIDs(): array|false

Style procédural

transliterator_list_ids(): array|false

Retourne un tableau contenant tous les identifiants enregistrés pour ce translittérateur.

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.

Exemples

Exemple #1 Récupération des identifiants transliterator enregistrés

<?php
print_r(Transliterator::listIDs());
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => ASCII-Latin
    [1] => Accents-Any
    [2] => Amharic-Latin/BGN
    [3] => Any-Accents
    [4] => Any-Publishing
...
    [650] => Any-ps_Latn/BGN
    [651] => Any-tk/BGN
    [652] => Any-ch_FONIPA
    [653] => Any-cs_FONIPA
    [654] => Any-cy_FONIPA
)

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 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)

Transliterator::transliterate -- transliterator_transliterate — Translittère une chaîne de caractères

Description

Style orienté objet

public Transliterator::transliterate(string $string, int $start = 0, int $end = -1): string|false

Style procédural

transliterator_transliterate(
Transliterator|string $transliterator,
string $string,
int $start = 0,
int $end = -1
): string|false

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.

string

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 index 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 index 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";
?>

Résultat de l'exemple ci-dessus est 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

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

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 IntlCodePointBreakIterator.

This class implements IteratorAggregate. 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 beginning 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

class IntlBreakIterator implements IteratorAggregate {
/* Constantes */
public const int DONE;
public const int WORD_NONE;
public const int WORD_NONE_LIMIT;
public const int WORD_NUMBER;
public const int WORD_NUMBER_LIMIT;
public const int WORD_LETTER;
public const int WORD_LETTER_LIMIT;
public const int WORD_KANA;
public const int WORD_KANA_LIMIT;
public const int WORD_IDEO;
public const int WORD_IDEO_LIMIT;
public const int LINE_SOFT;
public const int LINE_SOFT_LIMIT;
public const int LINE_HARD;
public const int LINE_HARD_LIMIT;
public const int SENTENCE_TERM;
public const int SENTENCE_TERM_LIMIT;
public const int SENTENCE_SEP;
public const int SENTENCE_SEP_LIMIT;
/* Méthodes */
private __construct()
public static createCharacterInstance(?string $locale = null): ?IntlBreakIterator
public static createCodePointInstance(): IntlCodePointBreakIterator
public static createLineInstance(?string $locale = null): ?IntlBreakIterator
public static createSentenceInstance(?string $locale = null): ?IntlBreakIterator
public static createTitleInstance(?string $locale = null): ?IntlBreakIterator
public static createWordInstance(?string $locale = null): ?IntlBreakIterator
public current(): int
public first(): int
public following(int $offset): int
public getErrorCode(): int
public getErrorMessage(): string
public getLocale(int $type): string|false
public getPartsIterator(string $type = IntlPartsIterator::KEY_SEQUENTIAL): IntlPartsIterator
public getText(): ?string
public isBoundary(int $offset): bool
public last(): int
public next(?int $offset = null): int
public preceding(int $offset): int
public previous(): int
public setText(string $text): bool
}

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

Historique

Version | Description
8.0.0 | IntlBreakIterator implements IteratorAggregate now. Previously, Traversable was implemented instead.

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

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::__construct — Constructeur privé pour désactiver l'instantiation

Description

private IntlBreakIterator::__construct()

Les instances de IntlBreakIterator devraient être créées en utilisant l'une des méthodes d'usine statiques.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • 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


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

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::createCharacterInstance — Crée un itérateur pour les limites des séquences de caractères combinés

Description

public static IntlBreakIterator::createCharacterInstance(?string $locale = null): ?IntlBreakIterator

Avertissement

Cette fonction est actuellement non documentée ; 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

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::createCodePointInstance — Crée un itérateur pour les limites de points de code

Description

public static IntlBreakIterator::createCodePointInstance(): IntlCodePointBreakIterator

Avertissement

Cette fonction est actuellement non documentée ; 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

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::createLineInstance — Crée un itérateur pour les coupures de lignes

Description

public static IntlBreakIterator::createLineInstance(?string $locale = null): ?IntlBreakIterator

Avertissement

Cette fonction est actuellement non documentée ; 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

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::createSentenceInstance — Crée un itérateur pour les coupures de phrase

Description

public static IntlBreakIterator::createSentenceInstance(?string $locale = null): ?IntlBreakIterator

Avertissement

Cette fonction est actuellement non documentée ; 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

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::createTitleInstance — Crée un itérateur

Description

public static IntlBreakIterator::createTitleInstance(?string $locale = null): ?IntlBreakIterator

Avertissement

Cette fonction est actuellement non documentée ; 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

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::createWordInstance — Crée un itérateur pour les coupures de mot

Description

public static IntlBreakIterator::createWordInstance(?string $locale = null): ?IntlBreakIterator

Avertissement

Cette fonction est actuellement non documentée ; 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

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::current — Récupère l'index de la position courante

Description

public IntlBreakIterator::current(): int

Avertissement

Cette fonction est actuellement non documentée ; 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

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::first — Définit la position au premier caractère du texte

Description

public IntlBreakIterator::first(): int

Avertissement

Cette fonction est actuellement non documentée ; 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

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::following — Avance l'itérateur à la première limite suivant la position spécifiée

Description

public IntlBreakIterator::following(int $offset): int

Avertissement

Cette fonction est actuellement non documentée ; 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.5.0, PHP 7, PHP 8)

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 IntlBreakIterator::getErrorCode(): int

Style procédural:

intl_get_error_code(): int

Avertissement

Cette fonction est actuellement non documentée ; 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.5.0, PHP 7, PHP 8)

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 IntlBreakIterator::getErrorMessage(): string

Style procédural:

intl_get_error_message(): int

Avertissement

Cette fonction est actuellement non documentée ; 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

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::getLocale — Récupère la locale associée avec l'objet

Description

public IntlBreakIterator::getLocale(int $type): string|false

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

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

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::getPartsIterator — Crée un itérateur pour naviguer dans les fragments entre les limites

Description

public IntlBreakIterator::getPartsIterator(string $type = IntlPartsIterator::KEY_SEQUENTIAL): IntlPartsIterator

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

type

Type de clé (optionnel). Les valeurs possibles sont :

  • IntlPartsIterator::KEY_SEQUENTIAL - La valeur par défaut. Entiers séquentiellement croissants utilisés comme clés.
  • IntlPartsIterator::KEY_LEFT - Décalage d'octet à gauche de la partie courante utilisée comme clé.
  • IntlPartsIterator::KEY_RIGHT - Octet décalage droit de la partie courante utilisée comme clé.

Valeurs de retour


Récupère le texte analysé

  • « IntlBreakIterator::getPartsIterator
  • IntlBreakIterator::isBoundary »
  • PHP Manual
  • IntlBreakIterator
  • Récupère le texte analysé

IntlBreakIterator::getText

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::getText — Récupère le texte analysé

Description

public IntlBreakIterator::getText(): ?string

Avertissement

Cette fonction est actuellement non documentée ; 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

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::isBoundary — Indique si une position est une position limite

Description

public IntlBreakIterator::isBoundary(int $offset): bool

Avertissement

Cette fonction est actuellement non documentée ; 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

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::last — Définit la position de l'itérateur à l'index après le dernier caractère

Description

public IntlBreakIterator::last(): int

Avertissement

Cette fonction est actuellement non documentée ; 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

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::next — Avance l'itérateur à la prochaine limite

Description

public IntlBreakIterator::next(?int $offset = null): int

Avertissement

Cette fonction est actuellement non documentée ; 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

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::preceding — Définit la position de l'itérateur à la première limite avant la position

Description

public IntlBreakIterator::preceding(int $offset): int

Avertissement

Cette fonction est actuellement non documentée ; 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

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::previous — Définit la position de l'itérateur à la limite immédiate avant la courante

Description

public IntlBreakIterator::previous(): int

Avertissement

Cette fonction est actuellement non documentée ; 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

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlBreakIterator::setText — Définit le texte à analyser

Description

public IntlBreakIterator::setText(string $text): bool

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

text

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.3.0 | Cette méthode retourne désormais false en cas d'échec ; précédemment elle retournait null.

Valeurs de retour


The IntlRuleBasedBreakIterator class

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

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

class IntlRuleBasedBreakIterator extends IntlBreakIterator {
/* Constants héritées */
public const int IntlBreakIterator::DONE;
public const int IntlBreakIterator::WORD_NONE;
public const int IntlBreakIterator::WORD_NONE_LIMIT;
public const int IntlBreakIterator::WORD_NUMBER;
public const int IntlBreakIterator::WORD_NUMBER_LIMIT;
public const int IntlBreakIterator::WORD_LETTER;
public const int IntlBreakIterator::WORD_LETTER_LIMIT;
public const int IntlBreakIterator::WORD_KANA;
public const int IntlBreakIterator::WORD_KANA_LIMIT;
public const int IntlBreakIterator::WORD_IDEO;
public const int IntlBreakIterator::WORD_IDEO_LIMIT;
public const int IntlBreakIterator::LINE_SOFT;
public const int IntlBreakIterator::LINE_SOFT_LIMIT;
public const int IntlBreakIterator::LINE_HARD;
public const int IntlBreakIterator::LINE_HARD_LIMIT;
public const int IntlBreakIterator::SENTENCE_TERM;
public const int IntlBreakIterator::SENTENCE_TERM_LIMIT;
public const int IntlBreakIterator::SENTENCE_SEP;
public const int IntlBreakIterator::SENTENCE_SEP_LIMIT;
/* Méthodes */
public __construct(string $rules, bool $compiled = false)
public getBinaryRules(): string|false
public getRules(): string|false
public getRuleStatus(): int
public getRuleStatusVec(): array|false
/* Méthodes héritées */
public static IntlBreakIterator::createCharacterInstance(?string $locale = null): ?IntlBreakIterator
public static IntlBreakIterator::createCodePointInstance(): IntlCodePointBreakIterator
public static IntlBreakIterator::createLineInstance(?string $locale = null): ?IntlBreakIterator
public static IntlBreakIterator::createSentenceInstance(?string $locale = null): ?IntlBreakIterator
public static IntlBreakIterator::createTitleInstance(?string $locale = null): ?IntlBreakIterator
public static IntlBreakIterator::createWordInstance(?string $locale = null): ?IntlBreakIterator
public IntlBreakIterator::current(): int
public IntlBreakIterator::first(): int
public IntlBreakIterator::following(int $offset): int
public IntlBreakIterator::getErrorCode(): int
public IntlBreakIterator::getErrorMessage(): string
public IntlBreakIterator::getLocale(int $type): string|false
public IntlBreakIterator::getPartsIterator(string $type = IntlPartsIterator::KEY_SEQUENTIAL): IntlPartsIterator
public IntlBreakIterator::getText(): ?string
public IntlBreakIterator::isBoundary(int $offset): bool
public IntlBreakIterator::last(): int
public IntlBreakIterator::next(?int $offset = null): int
public IntlBreakIterator::preceding(int $offset): int
public IntlBreakIterator::previous(): int
public IntlBreakIterator::setText(string $text): bool
}

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

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlRuleBasedBreakIterator::__construct — Crée un itérateur depuis un jeu de règles

Description

public IntlRuleBasedBreakIterator::__construct(string $rules, bool $compiled = false)

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

rules

compiled

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

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlRuleBasedBreakIterator::getBinaryRules — Récupère la forme binaire des règles compilées

Description

public IntlRuleBasedBreakIterator::getBinaryRules(): string|false

Avertissement

Cette fonction est actuellement non documentée ; 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

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlRuleBasedBreakIterator::getRules — Récupère le jeu de règles utilisé pour créer cet objet

Description

public IntlRuleBasedBreakIterator::getRules(): string|false

Avertissement

Cette fonction est actuellement non documentée ; 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

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

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 IntlRuleBasedBreakIterator::getRuleStatus(): int

Avertissement

Cette fonction est actuellement non documentée ; 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

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

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 IntlRuleBasedBreakIterator::getRuleStatusVec(): array|false

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


The IntlCodePointBreakIterator class

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Introduction

This break iterator identifies the boundaries between UTF-8 code points.

Synopsis de la classe

class IntlCodePointBreakIterator extends IntlBreakIterator {
/* Constants héritées */
public const int IntlBreakIterator::DONE;
public const int IntlBreakIterator::WORD_NONE;
public const int IntlBreakIterator::WORD_NONE_LIMIT;
public const int IntlBreakIterator::WORD_NUMBER;
public const int IntlBreakIterator::WORD_NUMBER_LIMIT;
public const int IntlBreakIterator::WORD_LETTER;
public const int IntlBreakIterator::WORD_LETTER_LIMIT;
public const int IntlBreakIterator::WORD_KANA;
public const int IntlBreakIterator::WORD_KANA_LIMIT;
public const int IntlBreakIterator::WORD_IDEO;
public const int IntlBreakIterator::WORD_IDEO_LIMIT;
public const int IntlBreakIterator::LINE_SOFT;
public const int IntlBreakIterator::LINE_SOFT_LIMIT;
public const int IntlBreakIterator::LINE_HARD;
public const int IntlBreakIterator::LINE_HARD_LIMIT;
public const int IntlBreakIterator::SENTENCE_TERM;
public const int IntlBreakIterator::SENTENCE_TERM_LIMIT;
public const int IntlBreakIterator::SENTENCE_SEP;
public const int IntlBreakIterator::SENTENCE_SEP_LIMIT;
/* Méthodes */
public getLastCodePoint(): int
/* Méthodes héritées */
public static IntlBreakIterator::createCharacterInstance(?string $locale = null): ?IntlBreakIterator
public static IntlBreakIterator::createCodePointInstance(): IntlCodePointBreakIterator
public static IntlBreakIterator::createLineInstance(?string $locale = null): ?IntlBreakIterator
public static IntlBreakIterator::createSentenceInstance(?string $locale = null): ?IntlBreakIterator
public static IntlBreakIterator::createTitleInstance(?string $locale = null): ?IntlBreakIterator
public static IntlBreakIterator::createWordInstance(?string $locale = null): ?IntlBreakIterator
public IntlBreakIterator::current(): int
public IntlBreakIterator::first(): int
public IntlBreakIterator::following(int $offset): int
public IntlBreakIterator::getErrorCode(): int
public IntlBreakIterator::getErrorMessage(): string
public IntlBreakIterator::getLocale(int $type): string|false
public IntlBreakIterator::getPartsIterator(string $type = IntlPartsIterator::KEY_SEQUENTIAL): IntlPartsIterator
public IntlBreakIterator::getText(): ?string
public IntlBreakIterator::isBoundary(int $offset): bool
public IntlBreakIterator::last(): int
public IntlBreakIterator::next(?int $offset = null): int
public IntlBreakIterator::preceding(int $offset): int
public IntlBreakIterator::previous(): int
public IntlBreakIterator::setText(string $text): bool
}

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
  • IntlDatePatternGenerator »
  • PHP Manual
  • IntlCodePointBreakIterator
  • Récupère le dernier point de code après avoir avancé ou reculé dans l'itérateur

IntlCodePointBreakIterator::getLastCodePoint

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlCodePointBreakIterator::getLastCodePoint — Récupère le dernier point de code après avoir avancé ou reculé dans l'itérateur

Description

public IntlCodePointBreakIterator::getLastCodePoint(): int

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


The IntlDatePatternGenerator class

(PHP 8 >= 8.1.0)

Introduction

Generates localized date and/or time format pattern strings suitable for use in IntlDateFormatter.

Synopsis de la classe

class IntlDatePatternGenerator {
/* Méthodes */
public __construct(?string $locale = null)
public static create(?string $locale = null): ?IntlDatePatternGenerator
public getBestPattern(string $skeleton): string|false
}

Sommaire

  • IntlDatePatternGenerator::create — Creates a new IntlDatePatternGenerator instance
  • IntlDatePatternGenerator::getBestPattern — Determines the most suitable date/time format


Creates a new IntlDatePatternGenerator instance

  • « IntlDatePatternGenerator
  • IntlDatePatternGenerator::getBestPattern »
  • PHP Manual
  • IntlDatePatternGenerator
  • Creates a new IntlDatePatternGenerator instance

IntlDatePatternGenerator::create

IntlDatePatternGenerator::__construct

(PHP 8 >= 8.1.0)

IntlDatePatternGenerator::create -- IntlDatePatternGenerator::__construct — Creates a new IntlDatePatternGenerator instance

Description

public static IntlDatePatternGenerator::create(?string $locale = null): ?IntlDatePatternGenerator
public IntlDatePatternGenerator::__construct(?string $locale = null)

Creates a new IntlDatePatternGenerator instance.

Liste de paramètres

locale

The locale. If null is passed, uses the ini setting intl.default_locale.

Valeurs de retour

Returns an IntlDatePatternGenerator instance on success, or null on failure.


Determines the most suitable date/time format

  • « IntlDatePatternGenerator::create
  • IntlPartsIterator »
  • PHP Manual
  • IntlDatePatternGenerator
  • Determines the most suitable date/time format

IntlDatePatternGenerator::getBestPattern

(PHP 8 >= 8.1.0)

IntlDatePatternGenerator::getBestPattern — Determines the most suitable date/time format

Description

public IntlDatePatternGenerator::getBestPattern(string $skeleton): string|false

Determines which date/time format is most suitable for a particular locale.

Liste de paramètres

skeleton

The skeleton.

Valeurs de retour

Returns a format, accepted by DateTimeInterface::format() on success, ou false si une erreur survient.

Exemples

Exemple #1 IntlDatePatternGenerator::getBestPattern() example

<?php

$skeleton = 'YYYYMMdd';
$today = \DateTimeImmutable::createFromFormat('Y-m-d', '2021-04-24');

$patternGenerator = new \IntlDatePatternGenerator('de_DE');
$pattern = $patternGenerator->getBestPattern($skeleton);
echo 'de: ', \IntlDateFormatter::formatObject($today, $pattern, 'de_DE'), "\n";

$patternGenerator = new \IntlDatePatternGenerator('en_US');
$pattern = $patternGenerator->getBestPattern($skeleton);
echo 'en: ', \IntlDateFormatter::formatObject($today, $pattern, 'en_US');
?>

L'exemple ci-dessus va afficher :

de: 24.04.2021
en: 04/24/2021


The IntlPartsIterator class

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

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

class IntlPartsIterator extends IntlIterator {
/* Constantes */
public const int KEY_SEQUENTIAL;
public const int KEY_LEFT;
public const int KEY_RIGHT;
/* Méthodes */
public getBreakIterator(): IntlBreakIterator
/* Méthodes héritées */
public IntlIterator::current(): mixed
public IntlIterator::key(): mixed
public IntlIterator::next(): void
public IntlIterator::rewind(): void
public IntlIterator::valid(): bool
}

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

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlPartsIterator::getBreakIterator — Récupère IntlBreakIterator, sauvegardant ainsi cette partie de l'itérateur

Description

public IntlPartsIterator::getBreakIterator(): IntlBreakIterator

Avertissement

Cette fonction est actuellement non documentée ; 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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

Introduction

Synopsis de la classe

class UConverter {
/* Constantes */
public const int REASON_UNASSIGNED;
public const int REASON_ILLEGAL;
public const int REASON_IRREGULAR;
public const int REASON_RESET;
public const int REASON_CLOSE;
public const int REASON_CLONE;
public const int UNSUPPORTED_CONVERTER;
public const int SBCS;
public const int DBCS;
public const int MBCS;
public const int LATIN_1;
public const int UTF8;
public const int UTF16_BigEndian;
public const int UTF16_LittleEndian;
public const int UTF32_BigEndian;
public const int UTF32_LittleEndian;
public const int EBCDIC_STATEFUL;
public const int ISO_2022;
public const int LMBCS_1;
public const int LMBCS_2;
public const int LMBCS_3;
public const int LMBCS_4;
public const int LMBCS_5;
public const int LMBCS_6;
public const int LMBCS_8;
public const int LMBCS_11;
public const int LMBCS_16;
public const int LMBCS_17;
public const int LMBCS_18;
public const int LMBCS_19;
public const int LMBCS_LAST;
public const int HZ;
public const int SCSU;
public const int ISCII;
public const int US_ASCII;
public const int UTF7;
public const int BOCU1;
public const int UTF16;
public const int UTF32;
public const int CESU8;
public const int IMAP_MAILBOX;
/* Méthodes */
public __construct(?string $destination_encoding = null, ?string $source_encoding = null)
public convert(string $str, bool $reverse = false): string|false
public fromUCallback(
int $reason,
array $source,
int $codePoint,
int &$error
): string|int|array|null
public static getAliases(string $name): array|false|null
public static getAvailable(): array
public getDestinationEncoding(): string|false|null
public getDestinationType(): int|false|null
public getErrorCode(): int
public getErrorMessage(): ?string
public getSourceEncoding(): string|false|null
public getSourceType(): int|false|null
public static getStandards(): ?array
public getSubstChars(): string|false|null
public static reasonText(int $reason): string
public setDestinationEncoding(string $encoding): bool
public setSourceEncoding(string $encoding): bool
public setSubstChars(string $chars): bool
public toUCallback(
int $reason,
string $source,
string $codeUnits,
int &$error
): string|int|array|null
public static transcode(
string $str,
string $toEncoding,
string $fromEncoding,
?array $options = null
): string|false
}

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 d'un jeu de caractères à un autre


Crée un objet UConverter

  • « UConverter
  • UConverter::convert »
  • PHP Manual
  • UConverter
  • Crée un objet UConverter

UConverter::__construct

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::__construct — Crée un objet UConverter

Description

public UConverter::__construct(?string $destination_encoding = null, ?string $source_encoding = null)

Avertissement

Cette fonction est actuellement non documentée ; 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.5.0, PHP 7, PHP 8, 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 UConverter::convert(string $str, bool $reverse = false): string|false

Avertissement

Cette fonction est actuellement non documentée ; 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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::fromUCallback — Fonction de rappel "from"

Description

public UConverter::fromUCallback(
int $reason,
array $source,
int $codePoint,
int &$error
): string|int|array|null

Avertissement

Cette fonction est actuellement non documentée ; 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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::getAliases — Récupère les alias du nom fourni

Description

public static UConverter::getAliases(string $name): array|false|null

Avertissement

Cette fonction est actuellement non documentée ; 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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::getAvailable — Récupère le nom canonique des convertisseurs diponibles

Description

public static UConverter::getAvailable(): array

Avertissement

Cette fonction est actuellement non documentée ; 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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::getDestinationEncoding — Récupère l'encodage de la destination

Description

public UConverter::getDestinationEncoding(): string|false|null

Avertissement

Cette fonction est actuellement non documentée ; 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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::getDestinationType — Récupère le type de la destination du convertisseur

Description

public UConverter::getDestinationType(): int|false|null

Avertissement

Cette fonction est actuellement non documentée ; 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.5.0, PHP 7, PHP 8, 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 UConverter::getErrorCode(): int

Avertissement

Cette fonction est actuellement non documentée ; 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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::getErrorMessage — Récupère le message de la dernière erreur survenue sur l'objet

Description

public UConverter::getErrorMessage(): ?string

Avertissement

Cette fonction est actuellement non documentée ; 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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::getSourceEncoding — Récupère l'encodage de la source

Description

public UConverter::getSourceEncoding(): string|false|null

Avertissement

Cette fonction est actuellement non documentée ; 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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::getSourceType — Récupère le type de source du convertisseur

Description

public UConverter::getSourceType(): int|false|null

Avertissement

Cette fonction est actuellement non documentée ; 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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::getStandards — Récupère les normes associées aux noms de conversion

Description

public static UConverter::getStandards(): ?array

Avertissement

Cette fonction est actuellement non documentée ; 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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::getSubstChars — Récupère les caractères de substitution

Description

public UConverter::getSubstChars(): string|false|null

Avertissement

Cette fonction est actuellement non documentée ; 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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::reasonText — Récupère la chaîne représentant la raison de la fonction de rappel

Description

public static UConverter::reasonText(int $reason): string

Avertissement

Cette fonction est actuellement non documentée ; 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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::setDestinationEncoding — Définit l'encodage de la destination

Description

public UConverter::setDestinationEncoding(string $encoding): bool

Avertissement

Cette fonction est actuellement non documentée ; 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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::setSourceEncoding — Définit l'encodage de la source

Description

public UConverter::setSourceEncoding(string $encoding): bool

Avertissement

Cette fonction est actuellement non documentée ; 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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::setSubstChars — Définit les caractères de substitution

Description

public UConverter::setSubstChars(string $chars): bool

Avertissement

Cette fonction est actuellement non documentée ; 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.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::toUCallback — Fonction de rappel "to"

Description

public UConverter::toUCallback(
int $reason,
string $source,
string $codeUnits,
int &$error
): string|int|array|null

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

reason

source

codeUnits

error

Valeurs de retour


Convertit une chaîne d'un jeu de caractères à un autre

  • « UConverter::toUCallback
  • Fonctions Grapheme »
  • PHP Manual
  • UConverter
  • Convertit une chaîne d'un jeu de caractères à un autre

UConverter::transcode

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

UConverter::transcode — Convertit une chaîne d'un jeu de caractères à un autre

Description

public static UConverter::transcode(
string $str,
string $toEncoding,
string $fromEncoding,
?array $options = null
): string|false

Convertit str de fromEncoding à toEncoding.

Liste de paramètres

str

La chaîne de caractères à convertir.

toEncoding

Le jeu de caractères souhaité pour le résultat.

fromEncoding

Le jeu de caractères actuel utilisé pour interpréter str.

options

Un tableau optionnel, qui peut contenir les clés suivantes :

  • 'to_subst' - le caractère de substitution à utiliser à la place de tout caractère de str qui ne peut pas être encodé en toEncoding. S'il est spécifié, il doit représenter un seul caractère dans l'encodage cible.

Valeurs de retour

Retourne la chaîne convertie, ou false si une erreur survient.

Exemples

Exemple #1 Conversion de UTF-8 à UTF-16 et inversement

<?php
$utf8_string = "\x5A\x6F\xC3\xAB"; // 'Zoë' en UTF-8
$utf16_string = UConverter::transcode($utf8_string, 'UTF-16BE', 'UTF-8');
echo bin2hex($utf16_string), "\n";

$new_utf8_string = UConverter::transcode($utf16_string, 'UTF-8', 'UTF-16BE');
echo bin2hex($new_utf8_string), "\n";
?>

L'exemple ci-dessus va afficher :

005a006f00eb
5a6fc3ab

Exemple #2 Caractères non valides en entrée

Si la chaîne d'entrée contient une séquence d'octets qui n'est pas valide dans l'encodage spécifié par fromEncoding, ils sont remplacés par le point de code Unicode U+FFFD (Caractère de remplacement) avant d'être convertis en toEncoding.

<?php
$invalid_utf8_string = "\xC3"; // séquence multi-octets UTF-8 incomplète
$utf16_string = UConverter::transcode($invalid_utf8_string, 'UTF-16BE', 'UTF-8');
echo bin2hex($utf16_string), "\n";
?>

L'exemple ci-dessus va afficher :

fffd

Exemple #3 Caractères ne pouvant être encodés

Si la chaîne d'entrée contient des caractères qui ne peuvent pas être représentés en toEncoding, ils sont remplacés par un seul caractère. Le caractère par défaut à utiliser dépend de l'encodage et peut être contrôlé à l'aide de l'option 'to_subst'.

<?php
$utf8_string = "\xE2\x82\xAC"; // € (signe euro) n'existe pas dans l'ISO 8859-1

// Le remplacement par défaut dans ISO 8859-1 est "\x1A" (Substitut)
$iso8859_1_string = UConverter::transcode($utf8_string, 'ISO-8859-1', 'UTF-8');
echo bin2hex($iso8859_1_string), "\n";

// Spécifie un remplacement de '?' ("\x3F") à la place
$iso8859_1_string = UConverter::transcode(
$utf8_string, 'ISO-8859-1', 'UTF-8', ['to_subst' => '?']
);
echo bin2hex($iso8859_1_string), "\n";

// Puisque l'ISO 8859-1 ne peut pas mapper U+FFFD, l'entrée invalide est également remplacée par to_subst.
$invalid_utf8_string = "\xC3"; // séquence multi-octets UTF-8 incomplète
$iso8859_1_string = UConverter::transcode(
$invalid_utf8_string, 'ISO-8859-1', 'UTF-8', ['to_subst' => '?']
);
echo bin2hex($iso8859_1_string), "\n";
?>

L'exemple ci-dessus va afficher :

1a
3f
3f

Voir aussi

  • mb_convert_encoding() - Convertir une chaîne d'un codage de caractères à un autre
  • iconv() - Convertit une chaîne de caractères à partir d'un encodage vers un autre


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, PHP 8, PECL intl >= 1.0.0)

grapheme_extract — Extrait un groupe de graphème d'une chaîne UTF-8

Description

Style procédural

grapheme_extract(
string $haystack,
int $size,
int $type = GRAPHEME_EXTR_COUNT,
int $offset = 0,
int &$next = null
): string|false

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 type, à retourner.

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.

offset

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, ou une valeur négative, qui compterait à partir de la fin de haystack. Si offset 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 offset et se termine à la limite valide d'un graphème, et qui se conforment aux conditions size et type spécifiées, ou false si une erreur survient.

Historique

Version | Description
7.1.0 | Le support des valeurs négatives pour offset a été ajouté.

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, PHP 8, 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

grapheme_stripos(string $haystack, string $needle, int $offset = 0): int|false

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). Si l'offset est négatif, il est traité par rapport à la fin de la chaîne de 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.

Historique

Version | Description
7.1.0 | Ajout du support des offsets négatifs.

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, PHP 8, PECL intl >= 1.0.0)

grapheme_stristr — Retourne la partie d'une chaîne à partir d'une occurrence

Description

Style procédural

grapheme_stristr(string $haystack, string $needle, bool $beforeNeedle = false): string|false

Retourne la partie de haystack à partir de la première occurrence de needle (needle inclus) (insensible à la casse), et jusqu'à la fin de la haystack.

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.

beforeNeedle

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, PHP 8, PECL intl >= 1.0.0)

grapheme_strlen — Lit la taille d'une chaîne en nombre de graphème

Description

Style procédural

grapheme_strlen(string $string): int|false|null

Lit la taille d'une chaîne en nombre de graphème (et non pas en octets ou caractères).

Liste de paramètres

string

La chaîne à mesurer. Elle doit être une chaîne UTF-8 valide.

Valeurs de retour

La taille de la chaîne en cas de succès, ou false si une erreur survient.

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, PHP 8, PECL intl >= 1.0.0)

grapheme_strpos — Trouve la position du premier graphème

Description

Style procédural

grapheme_strpos(string $haystack, string $needle, int $offset = 0): int|false

Trouve la position du premier 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). Si l'offset est négatif, il est traité par rapport à la fin de la chaîne de 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'entier. Si needle n'est pas trouvé, grapheme_strripos()() retourne false.

Historique

Version | Description
7.1.0 | Ajout du support des offsets négatifs.

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, PHP 8, PECL intl >= 1.0.0)

grapheme_strripos — Trouve la position du dernier graphème, insensible à la casse

Description

Style procédural

grapheme_strripos(string $haystack, string $needle, int $offset = 0): int|false

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, PHP 8, PECL intl >= 1.0.0)

grapheme_strrpos — Trouve la position du dernier graphème

Description

Style procédural

grapheme_strrpos(string $haystack, string $needle, int $offset = 0): int|false

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, PHP 8, 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

grapheme_strstr(string $haystack, string $needle, bool $beforeNeedle = false): string|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.

beforeNeedle

Si true, grapheme_strstr() retourne la partie de la haystack avant la première occurrence de la needle (à l'exclusion du needle).

Valeurs de retour

Retourne la portion de la haystack 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, PHP 8, PECL intl >= 1.0.0)

grapheme_substr — Retourne une partie d'une chaîne

Description

Style procédural

grapheme_substr(string $string, int $offset, ?int $length = null): string|false

Retourne une partie d'une chaîne.

Liste de paramètres

string

La chaîne à couper. Doit être UTF-8 et valide.

offset

Position de départ en unités de graphème par défaut. Si offset est strictement positif, la chaîne renvoyée commencera à la offset ème position dans string, en comptant à partir de zéro. Si offset est négatif, la chaîne renvoyée commencera à la offset ème unité de graphème à partir de 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 à offset (en fonction de la taille de la chaîne). Si length 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 offset est aussi négatif). Si offset dénote une position au-delà de la fin de la chaîne,une chaîne vide sera retournée.

Valeurs de retour

Retourne la partie de chaîne extraite de string, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | La fonction fixe désormais systématiquement les décalages hors limites à la limite de la chaîne de caractères. Auparavant, false était retourné au lieu de la chaîne vide dans certains cas.

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 — Convertit un nom de domaine au format IDNA ASCII
  • idn_to_utf8 — Convertit le nom de domaine IDNA ASCII en Unicode


Convertit un nom de domaine au format IDNA ASCII

  • « Fonctions IDN
  • idn_to_utf8 »
  • PHP Manual
  • Fonctions IDN
  • Convertit un nom de domaine au format IDNA ASCII

idn_to_ascii

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.2, PECL idn >= 0.1)

idn_to_ascii — Convertit un nom de domaine au format IDNA ASCII

Description

Style procédural

idn_to_ascii(
string $domain,
int $flags = IDNA_DEFAULT,
int $variant = INTL_IDNA_VARIANT_UTS46,
array &$idna_info = null
): string|false

Cette fonction convertit un nom de domaine Unicode au format IDNA ASCII-compatible.

Liste de paramètres

domain

Le domaine à convertir, qui doit être encodé UTF-8.

flags

Options de conversion - combinaison de constantes IDNA_*. (sauf les constantes IDNA_ERROR_*).

variant

Soit INTL_IDNA_VARIANT_2003 (obsolète à partir de PHP 7.2.0) pour IDNA 2003, soit INTL_IDNA_VARIANT_UTS46 (seulement disponible à partir de ICU 4.6) 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
7.4.0 | La valeur par défaut du paramètre variant est maintenant INTL_IDNA_VARIANT_UTS46 à la place de la constante INTL_IDNA_VARIANT_2003 déprécié.
7.2.0 | INTL_IDNA_VARIANT_2003 a été déprécié; utiliser INTL_IDNA_VARIANT_UTS46 à la place.

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_utf8() - Convertit le nom de domaine IDNA ASCII en Unicode


Convertit le nom de domaine IDNA ASCII en Unicode

  • « idn_to_ascii
  • IntlChar »
  • PHP Manual
  • Fonctions IDN
  • Convertit le nom de domaine IDNA ASCII en Unicode

idn_to_utf8

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.2, PECL idn >= 0.1)

idn_to_utf8 — Convertit le nom de domaine IDNA ASCII en Unicode

Description

Style procédural

idn_to_utf8(
string $domain,
int $flags = IDNA_DEFAULT,
int $variant = INTL_IDNA_VARIANT_UTS46,
array &$idna_info = null
): string|false

Cette fonction 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.

flags

Options de conversion - une combinaison des constantes IDNA_* (sauf les constantes IDNA_ERROR_*).

variant

Soit INTL_IDNA_VARIANT_2003 (obsolète à partir de PHP 7.2.0) pour IDNA 2003, soit INTL_IDNA_VARIANT_UTS46 (seulement disponible à partir de ICU 4.6) 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
7.4.0 | La valeur par défaut du paramètre variant est maintenant INTL_IDNA_VARIANT_UTS46 à la place de la constante INTL_IDNA_VARIANT_2003 déprécié.
7.2.0 | INTL_IDNA_VARIANT_2003 a été déprécie; utiliser INTL_IDNA_VARIANT_UTS46 à la place.

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_ascii() - Convertit un nom de domaine au format IDNA ASCII


IntlChar

(PHP 7, PHP 8)

Introduction

IntlChar donne accès à un certain nombre de méthodes utilitaires qui peuvent être utilisées pour accéder à des informations sur les caractères Unicode.

Les méthodes et les constantes respectent scrupuleusement les noms et le comportement utilisés par la bibliothèque ICU sous-jacente.

Synopsis de la classe

class IntlChar {
/* Constantes */
public const string UNICODE_VERSION;
public const int CODEPOINT_MIN;
public const int CODEPOINT_MAX;
public const float NO_NUMERIC_VALUE;
public const int PROPERTY_ALPHABETIC;
public const int PROPERTY_BINARY_START;
public const int PROPERTY_ASCII_HEX_DIGIT;
public const int PROPERTY_BIDI_CONTROL;
public const int PROPERTY_BIDI_MIRRORED;
public const int PROPERTY_DASH;
public const int PROPERTY_DEFAULT_IGNORABLE_CODE_POINT;
public const int PROPERTY_DEPRECATED;
public const int PROPERTY_DIACRITIC;
public const int PROPERTY_EXTENDER;
public const int PROPERTY_FULL_COMPOSITION_EXCLUSION;
public const int PROPERTY_GRAPHEME_BASE;
public const int PROPERTY_GRAPHEME_EXTEND;
public const int PROPERTY_GRAPHEME_LINK;
public const int PROPERTY_HEX_DIGIT;
public const int PROPERTY_HYPHEN;
public const int PROPERTY_ID_CONTINUE;
public const int PROPERTY_ID_START;
public const int PROPERTY_IDEOGRAPHIC;
public const int PROPERTY_IDS_BINARY_OPERATOR;
public const int PROPERTY_IDS_TRINARY_OPERATOR;
public const int PROPERTY_JOIN_CONTROL;
public const int PROPERTY_LOGICAL_ORDER_EXCEPTION;
public const int PROPERTY_LOWERCASE;
public const int PROPERTY_MATH;
public const int PROPERTY_NONCHARACTER_CODE_POINT;
public const int PROPERTY_QUOTATION_MARK;
public const int PROPERTY_RADICAL;
public const int PROPERTY_SOFT_DOTTED;
public const int PROPERTY_TERMINAL_PUNCTUATION;
public const int PROPERTY_UNIFIED_IDEOGRAPH;
public const int PROPERTY_UPPERCASE;
public const int PROPERTY_WHITE_SPACE;
public const int PROPERTY_XID_CONTINUE;
public const int PROPERTY_XID_START;
public const int PROPERTY_CASE_SENSITIVE;
public const int PROPERTY_S_TERM;
public const int PROPERTY_VARIATION_SELECTOR;
public const int PROPERTY_NFD_INERT;
public const int PROPERTY_NFKD_INERT;
public const int PROPERTY_NFC_INERT;
public const int PROPERTY_NFKC_INERT;
public const int PROPERTY_SEGMENT_STARTER;
public const int PROPERTY_PATTERN_SYNTAX;
public const int PROPERTY_PATTERN_WHITE_SPACE;
public const int PROPERTY_POSIX_ALNUM;
public const int PROPERTY_POSIX_BLANK;
public const int PROPERTY_POSIX_GRAPH;
public const int PROPERTY_POSIX_PRINT;
public const int PROPERTY_POSIX_XDIGIT;
public const int PROPERTY_CASED;
public const int PROPERTY_CASE_IGNORABLE;
public const int PROPERTY_CHANGES_WHEN_LOWERCASED;
public const int PROPERTY_CHANGES_WHEN_UPPERCASED;
public const int PROPERTY_CHANGES_WHEN_TITLECASED;
public const int PROPERTY_CHANGES_WHEN_CASEFOLDED;
public const int PROPERTY_CHANGES_WHEN_CASEMAPPED;
public const int PROPERTY_CHANGES_WHEN_NFKC_CASEFOLDED;
public const int PROPERTY_BINARY_LIMIT;
public const int PROPERTY_BIDI_CLASS;
public const int PROPERTY_INT_START;
public const int PROPERTY_BLOCK;
public const int PROPERTY_CANONICAL_COMBINING_CLASS;
public const int PROPERTY_DECOMPOSITION_TYPE;
public const int PROPERTY_EAST_ASIAN_WIDTH;
public const int PROPERTY_GENERAL_CATEGORY;
public const int PROPERTY_JOINING_GROUP;
public const int PROPERTY_JOINING_TYPE;
public const int PROPERTY_LINE_BREAK;
public const int PROPERTY_NUMERIC_TYPE;
public const int PROPERTY_SCRIPT;
public const int PROPERTY_HANGUL_SYLLABLE_TYPE;
public const int PROPERTY_NFD_QUICK_CHECK;
public const int PROPERTY_NFKD_QUICK_CHECK;
public const int PROPERTY_NFC_QUICK_CHECK;
public const int PROPERTY_NFKC_QUICK_CHECK;
public const int PROPERTY_LEAD_CANONICAL_COMBINING_CLASS;
public const int PROPERTY_TRAIL_CANONICAL_COMBINING_CLASS;
public const int PROPERTY_GRAPHEME_CLUSTER_BREAK;
public const int PROPERTY_SENTENCE_BREAK;
public const int PROPERTY_WORD_BREAK;
public const int PROPERTY_BIDI_PAIRED_BRACKET_TYPE;
public const int PROPERTY_INT_LIMIT;
public const int PROPERTY_GENERAL_CATEGORY_MASK;
public const int PROPERTY_MASK_START;
public const int PROPERTY_MASK_LIMIT;
public const int PROPERTY_NUMERIC_VALUE;
public const int PROPERTY_DOUBLE_START;
public const int PROPERTY_DOUBLE_LIMIT;
public const int PROPERTY_AGE;
public const int PROPERTY_STRING_START;
public const int PROPERTY_BIDI_MIRRORING_GLYPH;
public const int PROPERTY_CASE_FOLDING;
public const int PROPERTY_ISO_COMMENT;
public const int PROPERTY_LOWERCASE_MAPPING;
public const int PROPERTY_NAME;
public const int PROPERTY_SIMPLE_CASE_FOLDING;
public const int PROPERTY_SIMPLE_LOWERCASE_MAPPING;
public const int PROPERTY_SIMPLE_TITLECASE_MAPPING;
public const int PROPERTY_SIMPLE_UPPERCASE_MAPPING;
public const int PROPERTY_TITLECASE_MAPPING;
public const int PROPERTY_UNICODE_1_NAME;
public const int PROPERTY_UPPERCASE_MAPPING;
public const int PROPERTY_BIDI_PAIRED_BRACKET;
public const int PROPERTY_STRING_LIMIT;
public const int PROPERTY_SCRIPT_EXTENSIONS;
public const int PROPERTY_OTHER_PROPERTY_START;
public const int PROPERTY_OTHER_PROPERTY_LIMIT;
public const int PROPERTY_INVALID_CODE;
public const int CHAR_CATEGORY_UNASSIGNED;
public const int CHAR_CATEGORY_GENERAL_OTHER_TYPES;
public const int CHAR_CATEGORY_UPPERCASE_LETTER;
public const int CHAR_CATEGORY_LOWERCASE_LETTER;
public const int CHAR_CATEGORY_TITLECASE_LETTER;
public const int CHAR_CATEGORY_MODIFIER_LETTER;
public const int CHAR_CATEGORY_OTHER_LETTER;
public const int CHAR_CATEGORY_NON_SPACING_MARK;
public const int CHAR_CATEGORY_ENCLOSING_MARK;
public const int CHAR_CATEGORY_COMBINING_SPACING_MARK;
public const int CHAR_CATEGORY_DECIMAL_DIGIT_NUMBER;
public const int CHAR_CATEGORY_LETTER_NUMBER;
public const int CHAR_CATEGORY_OTHER_NUMBER;
public const int CHAR_CATEGORY_SPACE_SEPARATOR;
public const int CHAR_CATEGORY_LINE_SEPARATOR;
public const int CHAR_CATEGORY_PARAGRAPH_SEPARATOR;
public const int CHAR_CATEGORY_CONTROL_CHAR;
public const int CHAR_CATEGORY_FORMAT_CHAR;
public const int CHAR_CATEGORY_PRIVATE_USE_CHAR;
public const int CHAR_CATEGORY_SURROGATE;
public const int CHAR_CATEGORY_DASH_PUNCTUATION;
public const int CHAR_CATEGORY_START_PUNCTUATION;
public const int CHAR_CATEGORY_END_PUNCTUATION;
public const int CHAR_CATEGORY_CONNECTOR_PUNCTUATION;
public const int CHAR_CATEGORY_OTHER_PUNCTUATION;
public const int CHAR_CATEGORY_MATH_SYMBOL;
public const int CHAR_CATEGORY_CURRENCY_SYMBOL;
public const int CHAR_CATEGORY_MODIFIER_SYMBOL;
public const int CHAR_CATEGORY_OTHER_SYMBOL;
public const int CHAR_CATEGORY_INITIAL_PUNCTUATION;
public const int CHAR_CATEGORY_FINAL_PUNCTUATION;
public const int CHAR_CATEGORY_CHAR_CATEGORY_COUNT;
public const int CHAR_DIRECTION_LEFT_TO_RIGHT;
public const int CHAR_DIRECTION_RIGHT_TO_LEFT;
public const int CHAR_DIRECTION_EUROPEAN_NUMBER;
public const int CHAR_DIRECTION_EUROPEAN_NUMBER_SEPARATOR;
public const int CHAR_DIRECTION_EUROPEAN_NUMBER_TERMINATOR;
public const int CHAR_DIRECTION_ARABIC_NUMBER;
public const int CHAR_DIRECTION_COMMON_NUMBER_SEPARATOR;
public const int CHAR_DIRECTION_BLOCK_SEPARATOR;
public const int CHAR_DIRECTION_SEGMENT_SEPARATOR;
public const int CHAR_DIRECTION_WHITE_SPACE_NEUTRAL;
public const int CHAR_DIRECTION_OTHER_NEUTRAL;
public const int CHAR_DIRECTION_LEFT_TO_RIGHT_EMBEDDING;
public const int CHAR_DIRECTION_LEFT_TO_RIGHT_OVERRIDE;
public const int CHAR_DIRECTION_RIGHT_TO_LEFT_ARABIC;
public const int CHAR_DIRECTION_RIGHT_TO_LEFT_EMBEDDING;
public const int CHAR_DIRECTION_RIGHT_TO_LEFT_OVERRIDE;
public const int CHAR_DIRECTION_POP_DIRECTIONAL_FORMAT;
public const int CHAR_DIRECTION_DIR_NON_SPACING_MARK;
public const int CHAR_DIRECTION_BOUNDARY_NEUTRAL;
public const int CHAR_DIRECTION_FIRST_STRONG_ISOLATE;
public const int CHAR_DIRECTION_LEFT_TO_RIGHT_ISOLATE;
public const int CHAR_DIRECTION_RIGHT_TO_LEFT_ISOLATE;
public const int CHAR_DIRECTION_POP_DIRECTIONAL_ISOLATE;
public const int CHAR_DIRECTION_CHAR_DIRECTION_COUNT;
public const int BLOCK_CODE_NO_BLOCK;
public const int BLOCK_CODE_BASIC_LATIN;
public const int BLOCK_CODE_LATIN_1_SUPPLEMENT;
public const int BLOCK_CODE_LATIN_EXTENDED_A;
public const int BLOCK_CODE_LATIN_EXTENDED_B;
public const int BLOCK_CODE_IPA_EXTENSIONS;
public const int BLOCK_CODE_SPACING_MODIFIER_LETTERS;
public const int BLOCK_CODE_COMBINING_DIACRITICAL_MARKS;
public const int BLOCK_CODE_GREEK;
public const int BLOCK_CODE_CYRILLIC;
public const int BLOCK_CODE_ARMENIAN;
public const int BLOCK_CODE_HEBREW;
public const int BLOCK_CODE_ARABIC;
public const int BLOCK_CODE_SYRIAC;
public const int BLOCK_CODE_THAANA;
public const int BLOCK_CODE_DEVANAGARI;
public const int BLOCK_CODE_BENGALI;
public const int BLOCK_CODE_GURMUKHI;
public const int BLOCK_CODE_GUJARATI;
public const int BLOCK_CODE_ORIYA;
public const int BLOCK_CODE_TAMIL;
public const int BLOCK_CODE_TELUGU;
public const int BLOCK_CODE_KANNADA;
public const int BLOCK_CODE_MALAYALAM;
public const int BLOCK_CODE_SINHALA;
public const int BLOCK_CODE_THAI;
public const int BLOCK_CODE_LAO;
public const int BLOCK_CODE_TIBETAN;
public const int BLOCK_CODE_MYANMAR;
public const int BLOCK_CODE_GEORGIAN;
public const int BLOCK_CODE_HANGUL_JAMO;
public const int BLOCK_CODE_ETHIOPIC;
public const int BLOCK_CODE_CHEROKEE;
public const int BLOCK_CODE_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS;
public const int BLOCK_CODE_OGHAM;
public const int BLOCK_CODE_RUNIC;
public const int BLOCK_CODE_KHMER;
public const int BLOCK_CODE_MONGOLIAN;
public const int BLOCK_CODE_LATIN_EXTENDED_ADDITIONAL;
public const int BLOCK_CODE_GREEK_EXTENDED;
public const int BLOCK_CODE_GENERAL_PUNCTUATION;
public const int BLOCK_CODE_SUPERSCRIPTS_AND_SUBSCRIPTS;
public const int BLOCK_CODE_CURRENCY_SYMBOLS;
public const int BLOCK_CODE_COMBINING_MARKS_FOR_SYMBOLS;
public const int BLOCK_CODE_LETTERLIKE_SYMBOLS;
public const int BLOCK_CODE_NUMBER_FORMS;
public const int BLOCK_CODE_ARROWS;
public const int BLOCK_CODE_MATHEMATICAL_OPERATORS;
public const int BLOCK_CODE_MISCELLANEOUS_TECHNICAL;
public const int BLOCK_CODE_CONTROL_PICTURES;
public const int BLOCK_CODE_OPTICAL_CHARACTER_RECOGNITION;
public const int BLOCK_CODE_ENCLOSED_ALPHANUMERICS;
public const int BLOCK_CODE_BOX_DRAWING;
public const int BLOCK_CODE_BLOCK_ELEMENTS;
public const int BLOCK_CODE_GEOMETRIC_SHAPES;
public const int BLOCK_CODE_MISCELLANEOUS_SYMBOLS;
public const int BLOCK_CODE_DINGBATS;
public const int BLOCK_CODE_BRAILLE_PATTERNS;
public const int BLOCK_CODE_CJK_RADICALS_SUPPLEMENT;
public const int BLOCK_CODE_KANGXI_RADICALS;
public const int BLOCK_CODE_IDEOGRAPHIC_DESCRIPTION_CHARACTERS;
public const int BLOCK_CODE_CJK_SYMBOLS_AND_PUNCTUATION;
public const int BLOCK_CODE_HIRAGANA;
public const int BLOCK_CODE_KATAKANA;
public const int BLOCK_CODE_BOPOMOFO;
public const int BLOCK_CODE_HANGUL_COMPATIBILITY_JAMO;
public const int BLOCK_CODE_KANBUN;
public const int BLOCK_CODE_BOPOMOFO_EXTENDED;
public const int BLOCK_CODE_ENCLOSED_CJK_LETTERS_AND_MONTHS;
public const int BLOCK_CODE_CJK_COMPATIBILITY;
public const int BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A;
public const int BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS;
public const int BLOCK_CODE_YI_SYLLABLES;
public const int BLOCK_CODE_YI_RADICALS;
public const int BLOCK_CODE_HANGUL_SYLLABLES;
public const int BLOCK_CODE_HIGH_SURROGATES;
public const int BLOCK_CODE_HIGH_PRIVATE_USE_SURROGATES;
public const int BLOCK_CODE_LOW_SURROGATES;
public const int BLOCK_CODE_PRIVATE_USE_AREA;
public const int BLOCK_CODE_PRIVATE_USE;
public const int BLOCK_CODE_CJK_COMPATIBILITY_IDEOGRAPHS;
public const int BLOCK_CODE_ALPHABETIC_PRESENTATION_FORMS;
public const int BLOCK_CODE_ARABIC_PRESENTATION_FORMS_A;
public const int BLOCK_CODE_COMBINING_HALF_MARKS;
public const int BLOCK_CODE_CJK_COMPATIBILITY_FORMS;
public const int BLOCK_CODE_SMALL_FORM_VARIANTS;
public const int BLOCK_CODE_ARABIC_PRESENTATION_FORMS_B;
public const int BLOCK_CODE_SPECIALS;
public const int BLOCK_CODE_HALFWIDTH_AND_FULLWIDTH_FORMS;
public const int BLOCK_CODE_OLD_ITALIC;
public const int BLOCK_CODE_GOTHIC;
public const int BLOCK_CODE_DESERET;
public const int BLOCK_CODE_BYZANTINE_MUSICAL_SYMBOLS;
public const int BLOCK_CODE_MUSICAL_SYMBOLS;
public const int BLOCK_CODE_MATHEMATICAL_ALPHANUMERIC_SYMBOLS;
public const int BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B;
public const int BLOCK_CODE_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT;
public const int BLOCK_CODE_TAGS;
public const int BLOCK_CODE_CYRILLIC_SUPPLEMENT;
public const int BLOCK_CODE_CYRILLIC_SUPPLEMENTARY;
public const int BLOCK_CODE_TAGALOG;
public const int BLOCK_CODE_HANUNOO;
public const int BLOCK_CODE_BUHID;
public const int BLOCK_CODE_TAGBANWA;
public const int BLOCK_CODE_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A;
public const int BLOCK_CODE_SUPPLEMENTAL_ARROWS_A;
public const int BLOCK_CODE_SUPPLEMENTAL_ARROWS_B;
public const int BLOCK_CODE_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B;
public const int BLOCK_CODE_SUPPLEMENTAL_MATHEMATICAL_OPERATORS;
public const int BLOCK_CODE_KATAKANA_PHONETIC_EXTENSIONS;
public const int BLOCK_CODE_VARIATION_SELECTORS;
public const int BLOCK_CODE_SUPPLEMENTARY_PRIVATE_USE_AREA_A;
public const int BLOCK_CODE_SUPPLEMENTARY_PRIVATE_USE_AREA_B;
public const int BLOCK_CODE_LIMBU;
public const int BLOCK_CODE_TAI_LE;
public const int BLOCK_CODE_KHMER_SYMBOLS;
public const int BLOCK_CODE_PHONETIC_EXTENSIONS;
public const int BLOCK_CODE_MISCELLANEOUS_SYMBOLS_AND_ARROWS;
public const int BLOCK_CODE_YIJING_HEXAGRAM_SYMBOLS;
public const int BLOCK_CODE_LINEAR_B_SYLLABARY;
public const int BLOCK_CODE_LINEAR_B_IDEOGRAMS;
public const int BLOCK_CODE_AEGEAN_NUMBERS;
public const int BLOCK_CODE_UGARITIC;
public const int BLOCK_CODE_SHAVIAN;
public const int BLOCK_CODE_OSMANYA;
public const int BLOCK_CODE_CYPRIOT_SYLLABARY;
public const int BLOCK_CODE_TAI_XUAN_JING_SYMBOLS;
public const int BLOCK_CODE_VARIATION_SELECTORS_SUPPLEMENT;
public const int BLOCK_CODE_ANCIENT_GREEK_MUSICAL_NOTATION;
public const int BLOCK_CODE_ANCIENT_GREEK_NUMBERS;
public const int BLOCK_CODE_ARABIC_SUPPLEMENT;
public const int BLOCK_CODE_BUGINESE;
public const int BLOCK_CODE_CJK_STROKES;
public const int BLOCK_CODE_COMBINING_DIACRITICAL_MARKS_SUPPLEMENT;
public const int BLOCK_CODE_COPTIC;
public const int BLOCK_CODE_ETHIOPIC_EXTENDED;
public const int BLOCK_CODE_ETHIOPIC_SUPPLEMENT;
public const int BLOCK_CODE_GEORGIAN_SUPPLEMENT;
public const int BLOCK_CODE_GLAGOLITIC;
public const int BLOCK_CODE_KHAROSHTHI;
public const int BLOCK_CODE_MODIFIER_TONE_LETTERS;
public const int BLOCK_CODE_NEW_TAI_LUE;
public const int BLOCK_CODE_OLD_PERSIAN;
public const int BLOCK_CODE_PHONETIC_EXTENSIONS_SUPPLEMENT;
public const int BLOCK_CODE_SUPPLEMENTAL_PUNCTUATION;
public const int BLOCK_CODE_SYLOTI_NAGRI;
public const int BLOCK_CODE_TIFINAGH;
public const int BLOCK_CODE_VERTICAL_FORMS;
public const int BLOCK_CODE_NKO;
public const int BLOCK_CODE_BALINESE;
public const int BLOCK_CODE_LATIN_EXTENDED_C;
public const int BLOCK_CODE_LATIN_EXTENDED_D;
public const int BLOCK_CODE_PHAGS_PA;
public const int BLOCK_CODE_PHOENICIAN;
public const int BLOCK_CODE_CUNEIFORM;
public const int BLOCK_CODE_CUNEIFORM_NUMBERS_AND_PUNCTUATION;
public const int BLOCK_CODE_COUNTING_ROD_NUMERALS;
public const int BLOCK_CODE_SUNDANESE;
public const int BLOCK_CODE_LEPCHA;
public const int BLOCK_CODE_OL_CHIKI;
public const int BLOCK_CODE_CYRILLIC_EXTENDED_A;
public const int BLOCK_CODE_VAI;
public const int BLOCK_CODE_CYRILLIC_EXTENDED_B;
public const int BLOCK_CODE_SAURASHTRA;
public const int BLOCK_CODE_KAYAH_LI;
public const int BLOCK_CODE_REJANG;
public const int BLOCK_CODE_CHAM;
public const int BLOCK_CODE_ANCIENT_SYMBOLS;
public const int BLOCK_CODE_PHAISTOS_DISC;
public const int BLOCK_CODE_LYCIAN;
public const int BLOCK_CODE_CARIAN;
public const int BLOCK_CODE_LYDIAN;
public const int BLOCK_CODE_MAHJONG_TILES;
public const int BLOCK_CODE_DOMINO_TILES;
public const int BLOCK_CODE_SAMARITAN;
public const int BLOCK_CODE_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED;
public const int BLOCK_CODE_TAI_THAM;
public const int BLOCK_CODE_VEDIC_EXTENSIONS;
public const int BLOCK_CODE_LISU;
public const int BLOCK_CODE_BAMUM;
public const int BLOCK_CODE_COMMON_INDIC_NUMBER_FORMS;
public const int BLOCK_CODE_DEVANAGARI_EXTENDED;
public const int BLOCK_CODE_HANGUL_JAMO_EXTENDED_A;
public const int BLOCK_CODE_JAVANESE;
public const int BLOCK_CODE_MYANMAR_EXTENDED_A;
public const int BLOCK_CODE_TAI_VIET;
public const int BLOCK_CODE_MEETEI_MAYEK;
public const int BLOCK_CODE_HANGUL_JAMO_EXTENDED_B;
public const int BLOCK_CODE_IMPERIAL_ARAMAIC;
public const int BLOCK_CODE_OLD_SOUTH_ARABIAN;
public const int BLOCK_CODE_AVESTAN;
public const int BLOCK_CODE_INSCRIPTIONAL_PARTHIAN;
public const int BLOCK_CODE_INSCRIPTIONAL_PAHLAVI;
public const int BLOCK_CODE_OLD_TURKIC;
public const int BLOCK_CODE_RUMI_NUMERAL_SYMBOLS;
public const int BLOCK_CODE_KAITHI;
public const int BLOCK_CODE_EGYPTIAN_HIEROGLYPHS;
public const int BLOCK_CODE_ENCLOSED_ALPHANUMERIC_SUPPLEMENT;
public const int BLOCK_CODE_ENCLOSED_IDEOGRAPHIC_SUPPLEMENT;
public const int BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C;
public const int BLOCK_CODE_MANDAIC;
public const int BLOCK_CODE_BATAK;
public const int BLOCK_CODE_ETHIOPIC_EXTENDED_A;
public const int BLOCK_CODE_BRAHMI;
public const int BLOCK_CODE_BAMUM_SUPPLEMENT;
public const int BLOCK_CODE_KANA_SUPPLEMENT;
public const int BLOCK_CODE_PLAYING_CARDS;
public const int BLOCK_CODE_MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS;
public const int BLOCK_CODE_EMOTICONS;
public const int BLOCK_CODE_TRANSPORT_AND_MAP_SYMBOLS;
public const int BLOCK_CODE_ALCHEMICAL_SYMBOLS;
public const int BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D;
public const int BLOCK_CODE_ARABIC_EXTENDED_A;
public const int BLOCK_CODE_ARABIC_MATHEMATICAL_ALPHABETIC_SYMBOLS;
public const int BLOCK_CODE_CHAKMA;
public const int BLOCK_CODE_MEETEI_MAYEK_EXTENSIONS;
public const int BLOCK_CODE_MEROITIC_CURSIVE;
public const int BLOCK_CODE_MEROITIC_HIEROGLYPHS;
public const int BLOCK_CODE_MIAO;
public const int BLOCK_CODE_SHARADA;
public const int BLOCK_CODE_SORA_SOMPENG;
public const int BLOCK_CODE_SUNDANESE_SUPPLEMENT;
public const int BLOCK_CODE_TAKRI;
public const int BLOCK_CODE_BASSA_VAH;
public const int BLOCK_CODE_CAUCASIAN_ALBANIAN;
public const int BLOCK_CODE_COPTIC_EPACT_NUMBERS;
public const int BLOCK_CODE_COMBINING_DIACRITICAL_MARKS_EXTENDED;
public const int BLOCK_CODE_DUPLOYAN;
public const int BLOCK_CODE_ELBASAN;
public const int BLOCK_CODE_GEOMETRIC_SHAPES_EXTENDED;
public const int BLOCK_CODE_GRANTHA;
public const int BLOCK_CODE_KHOJKI;
public const int BLOCK_CODE_KHUDAWADI;
public const int BLOCK_CODE_LATIN_EXTENDED_E;
public const int BLOCK_CODE_LINEAR_A;
public const int BLOCK_CODE_MAHAJANI;
public const int BLOCK_CODE_MANICHAEAN;
public const int BLOCK_CODE_MENDE_KIKAKUI;
public const int BLOCK_CODE_MODI;
public const int BLOCK_CODE_MRO;
public const int BLOCK_CODE_MYANMAR_EXTENDED_B;
public const int BLOCK_CODE_NABATAEAN;
public const int BLOCK_CODE_OLD_NORTH_ARABIAN;
public const int BLOCK_CODE_OLD_PERMIC;
public const int BLOCK_CODE_ORNAMENTAL_DINGBATS;
public const int BLOCK_CODE_PAHAWH_HMONG;
public const int BLOCK_CODE_PALMYRENE;
public const int BLOCK_CODE_PAU_CIN_HAU;
public const int BLOCK_CODE_PSALTER_PAHLAVI;
public const int BLOCK_CODE_SHORTHAND_FORMAT_CONTROLS;
public const int BLOCK_CODE_SIDDHAM;
public const int BLOCK_CODE_SINHALA_ARCHAIC_NUMBERS;
public const int BLOCK_CODE_SUPPLEMENTAL_ARROWS_C;
public const int BLOCK_CODE_TIRHUTA;
public const int BLOCK_CODE_WARANG_CITI;
public const int BLOCK_CODE_COUNT;
public const int BLOCK_CODE_INVALID_CODE;
public const int BPT_NONE;
public const int BPT_OPEN;
public const int BPT_CLOSE;
public const int BPT_COUNT;
public const int EA_NEUTRAL;
public const int EA_AMBIGUOUS;
public const int EA_HALFWIDTH;
public const int EA_FULLWIDTH;
public const int EA_NARROW;
public const int EA_WIDE;
public const int EA_COUNT;
public const int UNICODE_CHAR_NAME;
public const int UNICODE_10_CHAR_NAME;
public const int EXTENDED_CHAR_NAME;
public const int CHAR_NAME_ALIAS;
public const int CHAR_NAME_CHOICE_COUNT;
public const int SHORT_PROPERTY_NAME;
public const int LONG_PROPERTY_NAME;
public const int PROPERTY_NAME_CHOICE_COUNT;
public const int DT_NONE;
public const int DT_CANONICAL;
public const int DT_COMPAT;
public const int DT_CIRCLE;
public const int DT_FINAL;
public const int DT_FONT;
public const int DT_FRACTION;
public const int DT_INITIAL;
public const int DT_ISOLATED;
public const int DT_MEDIAL;
public const int DT_NARROW;
public const int DT_NOBREAK;
public const int DT_SMALL;
public const int DT_SQUARE;
public const int DT_SUB;
public const int DT_SUPER;
public const int DT_VERTICAL;
public const int DT_WIDE;
public const int DT_COUNT;
public const int JT_NON_JOINING;
public const int JT_JOIN_CAUSING;
public const int JT_DUAL_JOINING;
public const int JT_LEFT_JOINING;
public const int JT_RIGHT_JOINING;
public const int JT_TRANSPARENT;
public const int JT_COUNT;
public const int JG_NO_JOINING_GROUP;
public const int JG_AIN;
public const int JG_ALAPH;
public const int JG_ALEF;
public const int JG_BEH;
public const int JG_BETH;
public const int JG_DAL;
public const int JG_DALATH_RISH;
public const int JG_E;
public const int JG_FEH;
public const int JG_FINAL_SEMKATH;
public const int JG_GAF;
public const int JG_GAMAL;
public const int JG_HAH;
public const int JG_TEH_MARBUTA_GOAL;
public const int JG_HAMZA_ON_HEH_GOAL;
public const int JG_HE;
public const int JG_HEH;
public const int JG_HEH_GOAL;
public const int JG_HETH;
public const int JG_KAF;
public const int JG_KAPH;
public const int JG_KNOTTED_HEH;
public const int JG_LAM;
public const int JG_LAMADH;
public const int JG_MEEM;
public const int JG_MIM;
public const int JG_NOON;
public const int JG_NUN;
public const int JG_PE;
public const int JG_QAF;
public const int JG_QAPH;
public const int JG_REH;
public const int JG_REVERSED_PE;
public const int JG_SAD;
public const int JG_SADHE;
public const int JG_SEEN;
public const int JG_SEMKATH;
public const int JG_SHIN;
public const int JG_SWASH_KAF;
public const int JG_SYRIAC_WAW;
public const int JG_TAH;
public const int JG_TAW;
public const int JG_TEH_MARBUTA;
public const int JG_TETH;
public const int JG_WAW;
public const int JG_YEH;
public const int JG_YEH_BARREE;
public const int JG_YEH_WITH_TAIL;
public const int JG_YUDH;
public const int JG_YUDH_HE;
public const int JG_ZAIN;
public const int JG_FE;
public const int JG_KHAPH;
public const int JG_ZHAIN;
public const int JG_BURUSHASKI_YEH_BARREE;
public const int JG_FARSI_YEH;
public const int JG_NYA;
public const int JG_ROHINGYA_YEH;
public const int JG_MANICHAEAN_ALEPH;
public const int JG_MANICHAEAN_AYIN;
public const int JG_MANICHAEAN_BETH;
public const int JG_MANICHAEAN_DALETH;
public const int JG_MANICHAEAN_DHAMEDH;
public const int JG_MANICHAEAN_FIVE;
public const int JG_MANICHAEAN_GIMEL;
public const int JG_MANICHAEAN_HETH;
public const int JG_MANICHAEAN_HUNDRED;
public const int JG_MANICHAEAN_KAPH;
public const int JG_MANICHAEAN_LAMEDH;
public const int JG_MANICHAEAN_MEM;
public const int JG_MANICHAEAN_NUN;
public const int JG_MANICHAEAN_ONE;
public const int JG_MANICHAEAN_PE;
public const int JG_MANICHAEAN_QOPH;
public const int JG_MANICHAEAN_RESH;
public const int JG_MANICHAEAN_SADHE;
public const int JG_MANICHAEAN_SAMEKH;
public const int JG_MANICHAEAN_TAW;
public const int JG_MANICHAEAN_TEN;
public const int JG_MANICHAEAN_TETH;
public const int JG_MANICHAEAN_THAMEDH;
public const int JG_MANICHAEAN_TWENTY;
public const int JG_MANICHAEAN_WAW;
public const int JG_MANICHAEAN_YODH;
public const int JG_MANICHAEAN_ZAYIN;
public const int JG_STRAIGHT_WAW;
public const int JG_COUNT;
public const int GCB_OTHER;
public const int GCB_CONTROL;
public const int GCB_CR;
public const int GCB_EXTEND;
public const int GCB_L;
public const int GCB_LF;
public const int GCB_LV;
public const int GCB_LVT;
public const int GCB_T;
public const int GCB_V;
public const int GCB_SPACING_MARK;
public const int GCB_PREPEND;
public const int GCB_REGIONAL_INDICATOR;
public const int GCB_COUNT;
public const int WB_OTHER;
public const int WB_ALETTER;
public const int WB_FORMAT;
public const int WB_KATAKANA;
public const int WB_MIDLETTER;
public const int WB_MIDNUM;
public const int WB_NUMERIC;
public const int WB_EXTENDNUMLET;
public const int WB_CR;
public const int WB_EXTEND;
public const int WB_LF;
public const int WB_MIDNUMLET;
public const int WB_NEWLINE;
public const int WB_REGIONAL_INDICATOR;
public const int WB_HEBREW_LETTER;
public const int WB_SINGLE_QUOTE;
public const int WB_DOUBLE_QUOTE;
public const int WB_COUNT;
public const int SB_OTHER;
public const int SB_ATERM;
public const int SB_CLOSE;
public const int SB_FORMAT;
public const int SB_LOWER;
public const int SB_NUMERIC;
public const int SB_OLETTER;
public const int SB_SEP;
public const int SB_SP;
public const int SB_STERM;
public const int SB_UPPER;
public const int SB_CR;
public const int SB_EXTEND;
public const int SB_LF;
public const int SB_SCONTINUE;
public const int SB_COUNT;
public const int LB_UNKNOWN;
public const int LB_AMBIGUOUS;
public const int LB_ALPHABETIC;
public const int LB_BREAK_BOTH;
public const int LB_BREAK_AFTER;
public const int LB_BREAK_BEFORE;
public const int LB_MANDATORY_BREAK;
public const int LB_CONTINGENT_BREAK;
public const int LB_CLOSE_PUNCTUATION;
public const int LB_COMBINING_MARK;
public const int LB_CARRIAGE_RETURN;
public const int LB_EXCLAMATION;
public const int LB_GLUE;
public const int LB_HYPHEN;
public const int LB_IDEOGRAPHIC;
public const int LB_INSEPARABLE;
public const int LB_INSEPERABLE;
public const int LB_INFIX_NUMERIC;
public const int LB_LINE_FEED;
public const int LB_NONSTARTER;
public const int LB_NUMERIC;
public const int LB_OPEN_PUNCTUATION;
public const int LB_POSTFIX_NUMERIC;
public const int LB_PREFIX_NUMERIC;
public const int LB_QUOTATION;
public const int LB_COMPLEX_CONTEXT;
public const int LB_SURROGATE;
public const int LB_SPACE;
public const int LB_BREAK_SYMBOLS;
public const int LB_ZWSPACE;
public const int LB_NEXT_LINE;
public const int LB_WORD_JOINER;
public const int LB_H2;
public const int LB_H3;
public const int LB_JL;
public const int LB_JT;
public const int LB_JV;
public const int LB_CLOSE_PARENTHESIS;
public const int LB_CONDITIONAL_JAPANESE_STARTER;
public const int LB_HEBREW_LETTER;
public const int LB_REGIONAL_INDICATOR;
public const int LB_COUNT;
public const int NT_NONE;
public const int NT_DECIMAL;
public const int NT_DIGIT;
public const int NT_NUMERIC;
public const int NT_COUNT;
public const int HST_NOT_APPLICABLE;
public const int HST_LEADING_JAMO;
public const int HST_VOWEL_JAMO;
public const int HST_TRAILING_JAMO;
public const int HST_LV_SYLLABLE;
public const int HST_LVT_SYLLABLE;
public const int HST_COUNT;
public const int FOLD_CASE_DEFAULT;
public const int FOLD_CASE_EXCLUDE_SPECIAL_I;
/* Méthodes */
public static charAge(int|string $codepoint): ?array
public static charDigitValue(int|string $codepoint): ?int
public static charDirection(int|string $codepoint): ?int
public static charFromName(string $name, int $type = IntlChar::UNICODE_CHAR_NAME): ?int
public static charMirror(int|string $codepoint): int|string|null
public static charName(int|string $codepoint, int $type = IntlChar::UNICODE_CHAR_NAME): ?string
public static charType(int|string $codepoint): ?int
public static chr(int|string $codepoint): ?string
public static digit(int|string $codepoint, int $base = 10): int|false|null
public static enumCharNames(
int|string $start,
int|string $end,
callable $callback,
int $type = IntlChar::UNICODE_CHAR_NAME
): bool
public static enumCharTypes(callable $callback): void
public static foldCase(int|string $codepoint, int $options = IntlChar::FOLD_CASE_DEFAULT): int|string|null
public static forDigit(int $digit, int $base = 10): int
public static getBidiPairedBracket(int|string $codepoint): int|string|null
public static getBlockCode(int|string $codepoint): ?int
public static getCombiningClass(int|string $codepoint): ?int
public static getFC_NFKC_Closure(int|string $codepoint): string|false|null
public static getIntPropertyMaxValue(int $property): int
public static getIntPropertyMinValue(int $property): int
public static getIntPropertyValue(int|string $codepoint, int $property): ?int
public static getNumericValue(int|string $codepoint): ?float
public static getPropertyEnum(string $alias): int
public static getPropertyName(int $property, int $type = IntlChar::LONG_PROPERTY_NAME): string|false
public static getPropertyValueEnum(int $property, string $name): int
public static getPropertyValueName(int $property, int $value, int $type = IntlChar::LONG_PROPERTY_NAME): string|false
public static getUnicodeVersion(): array
public static hasBinaryProperty(int|string $codepoint, int $property): ?bool
public static isalnum(int|string $codepoint): ?bool
public static isalpha(int|string $codepoint): ?bool
public static isbase(int|string $codepoint): ?bool
public static isblank(int|string $codepoint): ?bool
public static iscntrl(int|string $codepoint): ?bool
public static isdefined(int|string $codepoint): ?bool
public static isdigit(int|string $codepoint): ?bool
public static isgraph(int|string $codepoint): ?bool
public static isIDIgnorable(int|string $codepoint): ?bool
public static isIDPart(int|string $codepoint): ?bool
public static isIDStart(int|string $codepoint): ?bool
public static isISOControl(int|string $codepoint): ?bool
public static isJavaIDPart(int|string $codepoint): ?bool
public static isJavaIDStart(int|string $codepoint): ?bool
public static isJavaSpaceChar(int|string $codepoint): ?bool
public static islower(int|string $codepoint): ?bool
public static isMirrored(int|string $codepoint): ?bool
public static isprint(int|string $codepoint): ?bool
public static ispunct(int|string $codepoint): ?bool
public static isspace(int|string $codepoint): ?bool
public static istitle(int|string $codepoint): ?bool
public static isUAlphabetic(int|string $codepoint): ?bool
public static isULowercase(int|string $codepoint): ?bool
public static isupper(int|string $codepoint): ?bool
public static isUUppercase(int|string $codepoint): ?bool
public static isUWhiteSpace(int|string $codepoint): ?bool
public static isWhitespace(int|string $codepoint): ?bool
public static isxdigit(int|string $codepoint): ?bool
public static ord(int|string $character): ?int
public static tolower(int|string $codepoint): int|string|null
public static totitle(int|string $codepoint): int|string|null
public static toupper(int|string $codepoint): int|string|null
}

Constantes pré-définies

IntlChar::UNICODE_VERSION

IntlChar::CODEPOINT_MIN

IntlChar::CODEPOINT_MAX

IntlChar::NO_NUMERIC_VALUE

Valeur spéciale renvoyée par IntlChar::getNumericValue() lorsqu'aucune valeur numérique n'est définie pour un point de code.

IntlChar::PROPERTY_ALPHABETIC

IntlChar::PROPERTY_BINARY_START

IntlChar::PROPERTY_ASCII_HEX_DIGIT

IntlChar::PROPERTY_BIDI_CONTROL

IntlChar::PROPERTY_BIDI_MIRRORED

IntlChar::PROPERTY_DASH

IntlChar::PROPERTY_DEFAULT_IGNORABLE_CODE_POINT

IntlChar::PROPERTY_DEPRECATED

IntlChar::PROPERTY_DIACRITIC

IntlChar::PROPERTY_EXTENDER

IntlChar::PROPERTY_FULL_COMPOSITION_EXCLUSION

IntlChar::PROPERTY_GRAPHEME_BASE

IntlChar::PROPERTY_GRAPHEME_EXTEND

IntlChar::PROPERTY_GRAPHEME_LINK

IntlChar::PROPERTY_HEX_DIGIT

IntlChar::PROPERTY_HYPHEN

IntlChar::PROPERTY_ID_CONTINUE

IntlChar::PROPERTY_ID_START

IntlChar::PROPERTY_IDEOGRAPHIC

IntlChar::PROPERTY_IDS_BINARY_OPERATOR

IntlChar::PROPERTY_IDS_TRINARY_OPERATOR

IntlChar::PROPERTY_JOIN_CONTROL

IntlChar::PROPERTY_LOGICAL_ORDER_EXCEPTION

IntlChar::PROPERTY_LOWERCASE

IntlChar::PROPERTY_MATH

IntlChar::PROPERTY_NONCHARACTER_CODE_POINT

IntlChar::PROPERTY_QUOTATION_MARK

IntlChar::PROPERTY_RADICAL

IntlChar::PROPERTY_SOFT_DOTTED

IntlChar::PROPERTY_TERMINAL_PUNCTUATION

IntlChar::PROPERTY_UNIFIED_IDEOGRAPH

IntlChar::PROPERTY_UPPERCASE

IntlChar::PROPERTY_WHITE_SPACE

IntlChar::PROPERTY_XID_CONTINUE

IntlChar::PROPERTY_XID_START

IntlChar::PROPERTY_CASE_SENSITIVE

IntlChar::PROPERTY_S_TERM

IntlChar::PROPERTY_VARIATION_SELECTOR

IntlChar::PROPERTY_NFD_INERT

IntlChar::PROPERTY_NFKD_INERT

IntlChar::PROPERTY_NFC_INERT

IntlChar::PROPERTY_NFKC_INERT

IntlChar::PROPERTY_SEGMENT_STARTER

IntlChar::PROPERTY_PATTERN_SYNTAX

IntlChar::PROPERTY_PATTERN_WHITE_SPACE

IntlChar::PROPERTY_POSIX_ALNUM

IntlChar::PROPERTY_POSIX_BLANK

IntlChar::PROPERTY_POSIX_GRAPH

IntlChar::PROPERTY_POSIX_PRINT

IntlChar::PROPERTY_POSIX_XDIGIT

IntlChar::PROPERTY_CASED

IntlChar::PROPERTY_CASE_IGNORABLE

IntlChar::PROPERTY_CHANGES_WHEN_LOWERCASED

IntlChar::PROPERTY_CHANGES_WHEN_UPPERCASED

IntlChar::PROPERTY_CHANGES_WHEN_TITLECASED

IntlChar::PROPERTY_CHANGES_WHEN_CASEFOLDED

IntlChar::PROPERTY_CHANGES_WHEN_CASEMAPPED

IntlChar::PROPERTY_CHANGES_WHEN_NFKC_CASEFOLDED

IntlChar::PROPERTY_BINARY_LIMIT

IntlChar::PROPERTY_BIDI_CLASS

IntlChar::PROPERTY_INT_START

IntlChar::PROPERTY_BLOCK

IntlChar::PROPERTY_CANONICAL_COMBINING_CLASS

IntlChar::PROPERTY_DECOMPOSITION_TYPE

IntlChar::PROPERTY_EAST_ASIAN_WIDTH

IntlChar::PROPERTY_GENERAL_CATEGORY

IntlChar::PROPERTY_JOINING_GROUP

IntlChar::PROPERTY_JOINING_TYPE

IntlChar::PROPERTY_LINE_BREAK

IntlChar::PROPERTY_NUMERIC_TYPE

IntlChar::PROPERTY_SCRIPT

IntlChar::PROPERTY_HANGUL_SYLLABLE_TYPE

IntlChar::PROPERTY_NFD_QUICK_CHECK

IntlChar::PROPERTY_NFKD_QUICK_CHECK

IntlChar::PROPERTY_NFC_QUICK_CHECK

IntlChar::PROPERTY_NFKC_QUICK_CHECK

IntlChar::PROPERTY_LEAD_CANONICAL_COMBINING_CLASS

IntlChar::PROPERTY_TRAIL_CANONICAL_COMBINING_CLASS

IntlChar::PROPERTY_GRAPHEME_CLUSTER_BREAK

IntlChar::PROPERTY_SENTENCE_BREAK

IntlChar::PROPERTY_WORD_BREAK

IntlChar::PROPERTY_BIDI_PAIRED_BRACKET_TYPE

IntlChar::PROPERTY_INT_LIMIT

IntlChar::PROPERTY_GENERAL_CATEGORY_MASK

IntlChar::PROPERTY_MASK_START

IntlChar::PROPERTY_MASK_LIMIT

IntlChar::PROPERTY_NUMERIC_VALUE

IntlChar::PROPERTY_DOUBLE_START

IntlChar::PROPERTY_DOUBLE_LIMIT

IntlChar::PROPERTY_AGE

IntlChar::PROPERTY_STRING_START

IntlChar::PROPERTY_BIDI_MIRRORING_GLYPH

IntlChar::PROPERTY_CASE_FOLDING

IntlChar::PROPERTY_ISO_COMMENT

IntlChar::PROPERTY_LOWERCASE_MAPPING

IntlChar::PROPERTY_NAME

IntlChar::PROPERTY_SIMPLE_CASE_FOLDING

IntlChar::PROPERTY_SIMPLE_LOWERCASE_MAPPING

IntlChar::PROPERTY_SIMPLE_TITLECASE_MAPPING

IntlChar::PROPERTY_SIMPLE_UPPERCASE_MAPPING

IntlChar::PROPERTY_TITLECASE_MAPPING

IntlChar::PROPERTY_UNICODE_1_NAME

IntlChar::PROPERTY_UPPERCASE_MAPPING

IntlChar::PROPERTY_BIDI_PAIRED_BRACKET

IntlChar::PROPERTY_STRING_LIMIT

IntlChar::PROPERTY_SCRIPT_EXTENSIONS

IntlChar::PROPERTY_OTHER_PROPERTY_START

IntlChar::PROPERTY_OTHER_PROPERTY_LIMIT

IntlChar::PROPERTY_INVALID_CODE

IntlChar::CHAR_CATEGORY_UNASSIGNED

IntlChar::CHAR_CATEGORY_GENERAL_OTHER_TYPES

IntlChar::CHAR_CATEGORY_UPPERCASE_LETTER

IntlChar::CHAR_CATEGORY_LOWERCASE_LETTER

IntlChar::CHAR_CATEGORY_TITLECASE_LETTER

IntlChar::CHAR_CATEGORY_MODIFIER_LETTER

IntlChar::CHAR_CATEGORY_OTHER_LETTER

IntlChar::CHAR_CATEGORY_NON_SPACING_MARK

IntlChar::CHAR_CATEGORY_ENCLOSING_MARK

IntlChar::CHAR_CATEGORY_COMBINING_SPACING_MARK

IntlChar::CHAR_CATEGORY_DECIMAL_DIGIT_NUMBER

IntlChar::CHAR_CATEGORY_LETTER_NUMBER

IntlChar::CHAR_CATEGORY_OTHER_NUMBER

IntlChar::CHAR_CATEGORY_SPACE_SEPARATOR

IntlChar::CHAR_CATEGORY_LINE_SEPARATOR

IntlChar::CHAR_CATEGORY_PARAGRAPH_SEPARATOR

IntlChar::CHAR_CATEGORY_CONTROL_CHAR

IntlChar::CHAR_CATEGORY_FORMAT_CHAR

IntlChar::CHAR_CATEGORY_PRIVATE_USE_CHAR

IntlChar::CHAR_CATEGORY_SURROGATE

IntlChar::CHAR_CATEGORY_DASH_PUNCTUATION

IntlChar::CHAR_CATEGORY_START_PUNCTUATION

IntlChar::CHAR_CATEGORY_END_PUNCTUATION

IntlChar::CHAR_CATEGORY_CONNECTOR_PUNCTUATION

IntlChar::CHAR_CATEGORY_OTHER_PUNCTUATION

IntlChar::CHAR_CATEGORY_MATH_SYMBOL

IntlChar::CHAR_CATEGORY_CURRENCY_SYMBOL

IntlChar::CHAR_CATEGORY_MODIFIER_SYMBOL

IntlChar::CHAR_CATEGORY_OTHER_SYMBOL

IntlChar::CHAR_CATEGORY_INITIAL_PUNCTUATION

IntlChar::CHAR_CATEGORY_FINAL_PUNCTUATION

IntlChar::CHAR_CATEGORY_CHAR_CATEGORY_COUNT

IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT

IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT

IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER

IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER_SEPARATOR

IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER_TERMINATOR

IntlChar::CHAR_DIRECTION_ARABIC_NUMBER

IntlChar::CHAR_DIRECTION_COMMON_NUMBER_SEPARATOR

IntlChar::CHAR_DIRECTION_BLOCK_SEPARATOR

IntlChar::CHAR_DIRECTION_SEGMENT_SEPARATOR

IntlChar::CHAR_DIRECTION_WHITE_SPACE_NEUTRAL

IntlChar::CHAR_DIRECTION_OTHER_NEUTRAL

IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT_EMBEDDING

IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT_OVERRIDE

IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_ARABIC

IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_EMBEDDING

IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_OVERRIDE

IntlChar::CHAR_DIRECTION_POP_DIRECTIONAL_FORMAT

IntlChar::CHAR_DIRECTION_DIR_NON_SPACING_MARK

IntlChar::CHAR_DIRECTION_BOUNDARY_NEUTRAL

IntlChar::CHAR_DIRECTION_FIRST_STRONG_ISOLATE

IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT_ISOLATE

IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_ISOLATE

IntlChar::CHAR_DIRECTION_POP_DIRECTIONAL_ISOLATE

IntlChar::CHAR_DIRECTION_CHAR_DIRECTION_COUNT

IntlChar::BLOCK_CODE_NO_BLOCK

IntlChar::BLOCK_CODE_BASIC_LATIN

IntlChar::BLOCK_CODE_LATIN_1_SUPPLEMENT

IntlChar::BLOCK_CODE_LATIN_EXTENDED_A

IntlChar::BLOCK_CODE_LATIN_EXTENDED_B

IntlChar::BLOCK_CODE_IPA_EXTENSIONS

IntlChar::BLOCK_CODE_SPACING_MODIFIER_LETTERS

IntlChar::BLOCK_CODE_COMBINING_DIACRITICAL_MARKS

IntlChar::BLOCK_CODE_GREEK

IntlChar::BLOCK_CODE_CYRILLIC

IntlChar::BLOCK_CODE_ARMENIAN

IntlChar::BLOCK_CODE_HEBREW

IntlChar::BLOCK_CODE_ARABIC

IntlChar::BLOCK_CODE_SYRIAC

IntlChar::BLOCK_CODE_THAANA

IntlChar::BLOCK_CODE_DEVANAGARI

IntlChar::BLOCK_CODE_BENGALI

IntlChar::BLOCK_CODE_GURMUKHI

IntlChar::BLOCK_CODE_GUJARATI

IntlChar::BLOCK_CODE_ORIYA

IntlChar::BLOCK_CODE_TAMIL

IntlChar::BLOCK_CODE_TELUGU

IntlChar::BLOCK_CODE_KANNADA

IntlChar::BLOCK_CODE_MALAYALAM

IntlChar::BLOCK_CODE_SINHALA

IntlChar::BLOCK_CODE_THAI

IntlChar::BLOCK_CODE_LAO

IntlChar::BLOCK_CODE_TIBETAN

IntlChar::BLOCK_CODE_MYANMAR

IntlChar::BLOCK_CODE_GEORGIAN

IntlChar::BLOCK_CODE_HANGUL_JAMO

IntlChar::BLOCK_CODE_ETHIOPIC

IntlChar::BLOCK_CODE_CHEROKEE

IntlChar::BLOCK_CODE_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS

IntlChar::BLOCK_CODE_OGHAM

IntlChar::BLOCK_CODE_RUNIC

IntlChar::BLOCK_CODE_KHMER

IntlChar::BLOCK_CODE_MONGOLIAN

IntlChar::BLOCK_CODE_LATIN_EXTENDED_ADDITIONAL

IntlChar::BLOCK_CODE_GREEK_EXTENDED

IntlChar::BLOCK_CODE_GENERAL_PUNCTUATION

IntlChar::BLOCK_CODE_SUPERSCRIPTS_AND_SUBSCRIPTS

IntlChar::BLOCK_CODE_CURRENCY_SYMBOLS

IntlChar::BLOCK_CODE_COMBINING_MARKS_FOR_SYMBOLS

IntlChar::BLOCK_CODE_LETTERLIKE_SYMBOLS

IntlChar::BLOCK_CODE_NUMBER_FORMS

IntlChar::BLOCK_CODE_ARROWS

IntlChar::BLOCK_CODE_MATHEMATICAL_OPERATORS

IntlChar::BLOCK_CODE_MISCELLANEOUS_TECHNICAL

IntlChar::BLOCK_CODE_CONTROL_PICTURES

IntlChar::BLOCK_CODE_OPTICAL_CHARACTER_RECOGNITION

IntlChar::BLOCK_CODE_ENCLOSED_ALPHANUMERICS

IntlChar::BLOCK_CODE_BOX_DRAWING

IntlChar::BLOCK_CODE_BLOCK_ELEMENTS

IntlChar::BLOCK_CODE_GEOMETRIC_SHAPES

IntlChar::BLOCK_CODE_MISCELLANEOUS_SYMBOLS

IntlChar::BLOCK_CODE_DINGBATS

IntlChar::BLOCK_CODE_BRAILLE_PATTERNS

IntlChar::BLOCK_CODE_CJK_RADICALS_SUPPLEMENT

IntlChar::BLOCK_CODE_KANGXI_RADICALS

IntlChar::BLOCK_CODE_IDEOGRAPHIC_DESCRIPTION_CHARACTERS

IntlChar::BLOCK_CODE_CJK_SYMBOLS_AND_PUNCTUATION

IntlChar::BLOCK_CODE_HIRAGANA

IntlChar::BLOCK_CODE_KATAKANA

IntlChar::BLOCK_CODE_BOPOMOFO

IntlChar::BLOCK_CODE_HANGUL_COMPATIBILITY_JAMO

IntlChar::BLOCK_CODE_KANBUN

IntlChar::BLOCK_CODE_BOPOMOFO_EXTENDED

IntlChar::BLOCK_CODE_ENCLOSED_CJK_LETTERS_AND_MONTHS

IntlChar::BLOCK_CODE_CJK_COMPATIBILITY

IntlChar::BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A

IntlChar::BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS

IntlChar::BLOCK_CODE_YI_SYLLABLES

IntlChar::BLOCK_CODE_YI_RADICALS

IntlChar::BLOCK_CODE_HANGUL_SYLLABLES

IntlChar::BLOCK_CODE_HIGH_SURROGATES

IntlChar::BLOCK_CODE_HIGH_PRIVATE_USE_SURROGATES

IntlChar::BLOCK_CODE_LOW_SURROGATES

IntlChar::BLOCK_CODE_PRIVATE_USE_AREA

IntlChar::BLOCK_CODE_PRIVATE_USE

IntlChar::BLOCK_CODE_CJK_COMPATIBILITY_IDEOGRAPHS

IntlChar::BLOCK_CODE_ALPHABETIC_PRESENTATION_FORMS

IntlChar::BLOCK_CODE_ARABIC_PRESENTATION_FORMS_A

IntlChar::BLOCK_CODE_COMBINING_HALF_MARKS

IntlChar::BLOCK_CODE_CJK_COMPATIBILITY_FORMS

IntlChar::BLOCK_CODE_SMALL_FORM_VARIANTS

IntlChar::BLOCK_CODE_ARABIC_PRESENTATION_FORMS_B

IntlChar::BLOCK_CODE_SPECIALS

IntlChar::BLOCK_CODE_HALFWIDTH_AND_FULLWIDTH_FORMS

IntlChar::BLOCK_CODE_OLD_ITALIC

IntlChar::BLOCK_CODE_GOTHIC

IntlChar::BLOCK_CODE_DESERET

IntlChar::BLOCK_CODE_BYZANTINE_MUSICAL_SYMBOLS

IntlChar::BLOCK_CODE_MUSICAL_SYMBOLS

IntlChar::BLOCK_CODE_MATHEMATICAL_ALPHANUMERIC_SYMBOLS

IntlChar::BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B

IntlChar::BLOCK_CODE_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT

IntlChar::BLOCK_CODE_TAGS

IntlChar::BLOCK_CODE_CYRILLIC_SUPPLEMENT

IntlChar::BLOCK_CODE_CYRILLIC_SUPPLEMENTARY

IntlChar::BLOCK_CODE_TAGALOG

IntlChar::BLOCK_CODE_HANUNOO

IntlChar::BLOCK_CODE_BUHID

IntlChar::BLOCK_CODE_TAGBANWA

IntlChar::BLOCK_CODE_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A

IntlChar::BLOCK_CODE_SUPPLEMENTAL_ARROWS_A

IntlChar::BLOCK_CODE_SUPPLEMENTAL_ARROWS_B

IntlChar::BLOCK_CODE_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B

IntlChar::BLOCK_CODE_SUPPLEMENTAL_MATHEMATICAL_OPERATORS

IntlChar::BLOCK_CODE_KATAKANA_PHONETIC_EXTENSIONS

IntlChar::BLOCK_CODE_VARIATION_SELECTORS

IntlChar::BLOCK_CODE_SUPPLEMENTARY_PRIVATE_USE_AREA_A

IntlChar::BLOCK_CODE_SUPPLEMENTARY_PRIVATE_USE_AREA_B

IntlChar::BLOCK_CODE_LIMBU

IntlChar::BLOCK_CODE_TAI_LE

IntlChar::BLOCK_CODE_KHMER_SYMBOLS

IntlChar::BLOCK_CODE_PHONETIC_EXTENSIONS

IntlChar::BLOCK_CODE_MISCELLANEOUS_SYMBOLS_AND_ARROWS

IntlChar::BLOCK_CODE_YIJING_HEXAGRAM_SYMBOLS

IntlChar::BLOCK_CODE_LINEAR_B_SYLLABARY

IntlChar::BLOCK_CODE_LINEAR_B_IDEOGRAMS

IntlChar::BLOCK_CODE_AEGEAN_NUMBERS

IntlChar::BLOCK_CODE_UGARITIC

IntlChar::BLOCK_CODE_SHAVIAN

IntlChar::BLOCK_CODE_OSMANYA

IntlChar::BLOCK_CODE_CYPRIOT_SYLLABARY

IntlChar::BLOCK_CODE_TAI_XUAN_JING_SYMBOLS

IntlChar::BLOCK_CODE_VARIATION_SELECTORS_SUPPLEMENT

IntlChar::BLOCK_CODE_ANCIENT_GREEK_MUSICAL_NOTATION

IntlChar::BLOCK_CODE_ANCIENT_GREEK_NUMBERS

IntlChar::BLOCK_CODE_ARABIC_SUPPLEMENT

IntlChar::BLOCK_CODE_BUGINESE

IntlChar::BLOCK_CODE_CJK_STROKES

IntlChar::BLOCK_CODE_COMBINING_DIACRITICAL_MARKS_SUPPLEMENT

IntlChar::BLOCK_CODE_COPTIC

IntlChar::BLOCK_CODE_ETHIOPIC_EXTENDED

IntlChar::BLOCK_CODE_ETHIOPIC_SUPPLEMENT

IntlChar::BLOCK_CODE_GEORGIAN_SUPPLEMENT

IntlChar::BLOCK_CODE_GLAGOLITIC

IntlChar::BLOCK_CODE_KHAROSHTHI

IntlChar::BLOCK_CODE_MODIFIER_TONE_LETTERS

IntlChar::BLOCK_CODE_NEW_TAI_LUE

IntlChar::BLOCK_CODE_OLD_PERSIAN

IntlChar::BLOCK_CODE_PHONETIC_EXTENSIONS_SUPPLEMENT

IntlChar::BLOCK_CODE_SUPPLEMENTAL_PUNCTUATION

IntlChar::BLOCK_CODE_SYLOTI_NAGRI

IntlChar::BLOCK_CODE_TIFINAGH

IntlChar::BLOCK_CODE_VERTICAL_FORMS

IntlChar::BLOCK_CODE_NKO

IntlChar::BLOCK_CODE_BALINESE

IntlChar::BLOCK_CODE_LATIN_EXTENDED_C

IntlChar::BLOCK_CODE_LATIN_EXTENDED_D

IntlChar::BLOCK_CODE_PHAGS_PA

IntlChar::BLOCK_CODE_PHOENICIAN

IntlChar::BLOCK_CODE_CUNEIFORM

IntlChar::BLOCK_CODE_CUNEIFORM_NUMBERS_AND_PUNCTUATION

IntlChar::BLOCK_CODE_COUNTING_ROD_NUMERALS

IntlChar::BLOCK_CODE_SUNDANESE

IntlChar::BLOCK_CODE_LEPCHA

IntlChar::BLOCK_CODE_OL_CHIKI

IntlChar::BLOCK_CODE_CYRILLIC_EXTENDED_A

IntlChar::BLOCK_CODE_VAI

IntlChar::BLOCK_CODE_CYRILLIC_EXTENDED_B

IntlChar::BLOCK_CODE_SAURASHTRA

IntlChar::BLOCK_CODE_KAYAH_LI

IntlChar::BLOCK_CODE_REJANG

IntlChar::BLOCK_CODE_CHAM

IntlChar::BLOCK_CODE_ANCIENT_SYMBOLS

IntlChar::BLOCK_CODE_PHAISTOS_DISC

IntlChar::BLOCK_CODE_LYCIAN

IntlChar::BLOCK_CODE_CARIAN

IntlChar::BLOCK_CODE_LYDIAN

IntlChar::BLOCK_CODE_MAHJONG_TILES

IntlChar::BLOCK_CODE_DOMINO_TILES

IntlChar::BLOCK_CODE_SAMARITAN

IntlChar::BLOCK_CODE_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED

IntlChar::BLOCK_CODE_TAI_THAM

IntlChar::BLOCK_CODE_VEDIC_EXTENSIONS

IntlChar::BLOCK_CODE_LISU

IntlChar::BLOCK_CODE_BAMUM

IntlChar::BLOCK_CODE_COMMON_INDIC_NUMBER_FORMS

IntlChar::BLOCK_CODE_DEVANAGARI_EXTENDED

IntlChar::BLOCK_CODE_HANGUL_JAMO_EXTENDED_A

IntlChar::BLOCK_CODE_JAVANESE

IntlChar::BLOCK_CODE_MYANMAR_EXTENDED_A

IntlChar::BLOCK_CODE_TAI_VIET

IntlChar::BLOCK_CODE_MEETEI_MAYEK

IntlChar::BLOCK_CODE_HANGUL_JAMO_EXTENDED_B

IntlChar::BLOCK_CODE_IMPERIAL_ARAMAIC

IntlChar::BLOCK_CODE_OLD_SOUTH_ARABIAN

IntlChar::BLOCK_CODE_AVESTAN

IntlChar::BLOCK_CODE_INSCRIPTIONAL_PARTHIAN

IntlChar::BLOCK_CODE_INSCRIPTIONAL_PAHLAVI

IntlChar::BLOCK_CODE_OLD_TURKIC

IntlChar::BLOCK_CODE_RUMI_NUMERAL_SYMBOLS

IntlChar::BLOCK_CODE_KAITHI

IntlChar::BLOCK_CODE_EGYPTIAN_HIEROGLYPHS

IntlChar::BLOCK_CODE_ENCLOSED_ALPHANUMERIC_SUPPLEMENT

IntlChar::BLOCK_CODE_ENCLOSED_IDEOGRAPHIC_SUPPLEMENT

IntlChar::BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C

IntlChar::BLOCK_CODE_MANDAIC

IntlChar::BLOCK_CODE_BATAK

IntlChar::BLOCK_CODE_ETHIOPIC_EXTENDED_A

IntlChar::BLOCK_CODE_BRAHMI

IntlChar::BLOCK_CODE_BAMUM_SUPPLEMENT

IntlChar::BLOCK_CODE_KANA_SUPPLEMENT

IntlChar::BLOCK_CODE_PLAYING_CARDS

IntlChar::BLOCK_CODE_MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS

IntlChar::BLOCK_CODE_EMOTICONS

IntlChar::BLOCK_CODE_TRANSPORT_AND_MAP_SYMBOLS

IntlChar::BLOCK_CODE_ALCHEMICAL_SYMBOLS

IntlChar::BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D

IntlChar::BLOCK_CODE_ARABIC_EXTENDED_A

IntlChar::BLOCK_CODE_ARABIC_MATHEMATICAL_ALPHABETIC_SYMBOLS

IntlChar::BLOCK_CODE_CHAKMA

IntlChar::BLOCK_CODE_MEETEI_MAYEK_EXTENSIONS

IntlChar::BLOCK_CODE_MEROITIC_CURSIVE

IntlChar::BLOCK_CODE_MEROITIC_HIEROGLYPHS

IntlChar::BLOCK_CODE_MIAO

IntlChar::BLOCK_CODE_SHARADA

IntlChar::BLOCK_CODE_SORA_SOMPENG

IntlChar::BLOCK_CODE_SUNDANESE_SUPPLEMENT

IntlChar::BLOCK_CODE_TAKRI

IntlChar::BLOCK_CODE_BASSA_VAH

IntlChar::BLOCK_CODE_CAUCASIAN_ALBANIAN

IntlChar::BLOCK_CODE_COPTIC_EPACT_NUMBERS

IntlChar::BLOCK_CODE_COMBINING_DIACRITICAL_MARKS_EXTENDED

IntlChar::BLOCK_CODE_DUPLOYAN

IntlChar::BLOCK_CODE_ELBASAN

IntlChar::BLOCK_CODE_GEOMETRIC_SHAPES_EXTENDED

IntlChar::BLOCK_CODE_GRANTHA

IntlChar::BLOCK_CODE_KHOJKI

IntlChar::BLOCK_CODE_KHUDAWADI

IntlChar::BLOCK_CODE_LATIN_EXTENDED_E

IntlChar::BLOCK_CODE_LINEAR_A

IntlChar::BLOCK_CODE_MAHAJANI

IntlChar::BLOCK_CODE_MANICHAEAN

IntlChar::BLOCK_CODE_MENDE_KIKAKUI

IntlChar::BLOCK_CODE_MODI

IntlChar::BLOCK_CODE_MRO

IntlChar::BLOCK_CODE_MYANMAR_EXTENDED_B

IntlChar::BLOCK_CODE_NABATAEAN

IntlChar::BLOCK_CODE_OLD_NORTH_ARABIAN

IntlChar::BLOCK_CODE_OLD_PERMIC

IntlChar::BLOCK_CODE_ORNAMENTAL_DINGBATS

IntlChar::BLOCK_CODE_PAHAWH_HMONG

IntlChar::BLOCK_CODE_PALMYRENE

IntlChar::BLOCK_CODE_PAU_CIN_HAU

IntlChar::BLOCK_CODE_PSALTER_PAHLAVI

IntlChar::BLOCK_CODE_SHORTHAND_FORMAT_CONTROLS

IntlChar::BLOCK_CODE_SIDDHAM

IntlChar::BLOCK_CODE_SINHALA_ARCHAIC_NUMBERS

IntlChar::BLOCK_CODE_SUPPLEMENTAL_ARROWS_C

IntlChar::BLOCK_CODE_TIRHUTA

IntlChar::BLOCK_CODE_WARANG_CITI

IntlChar::BLOCK_CODE_COUNT

IntlChar::BLOCK_CODE_INVALID_CODE

IntlChar::BPT_NONE

IntlChar::BPT_OPEN

IntlChar::BPT_CLOSE

IntlChar::BPT_COUNT

IntlChar::EA_NEUTRAL

IntlChar::EA_AMBIGUOUS

IntlChar::EA_HALFWIDTH

IntlChar::EA_FULLWIDTH

IntlChar::EA_NARROW

IntlChar::EA_WIDE

IntlChar::EA_COUNT

IntlChar::UNICODE_CHAR_NAME

IntlChar::UNICODE_10_CHAR_NAME

IntlChar::EXTENDED_CHAR_NAME

IntlChar::CHAR_NAME_ALIAS

IntlChar::CHAR_NAME_CHOICE_COUNT

IntlChar::SHORT_PROPERTY_NAME

IntlChar::LONG_PROPERTY_NAME

IntlChar::PROPERTY_NAME_CHOICE_COUNT

IntlChar::DT_NONE

IntlChar::DT_CANONICAL

IntlChar::DT_COMPAT

IntlChar::DT_CIRCLE

IntlChar::DT_FINAL

IntlChar::DT_FONT

IntlChar::DT_FRACTION

IntlChar::DT_INITIAL

IntlChar::DT_ISOLATED

IntlChar::DT_MEDIAL

IntlChar::DT_NARROW

IntlChar::DT_NOBREAK

IntlChar::DT_SMALL

IntlChar::DT_SQUARE

IntlChar::DT_SUB

IntlChar::DT_SUPER

IntlChar::DT_VERTICAL

IntlChar::DT_WIDE

IntlChar::DT_COUNT

IntlChar::JT_NON_JOINING

IntlChar::JT_JOIN_CAUSING

IntlChar::JT_DUAL_JOINING

IntlChar::JT_LEFT_JOINING

IntlChar::JT_RIGHT_JOINING

IntlChar::JT_TRANSPARENT

IntlChar::JT_COUNT

IntlChar::JG_NO_JOINING_GROUP

IntlChar::JG_AIN

IntlChar::JG_ALAPH

IntlChar::JG_ALEF

IntlChar::JG_BEH

IntlChar::JG_BETH

IntlChar::JG_DAL

IntlChar::JG_DALATH_RISH

IntlChar::JG_E

IntlChar::JG_FEH

IntlChar::JG_FINAL_SEMKATH

IntlChar::JG_GAF

IntlChar::JG_GAMAL

IntlChar::JG_HAH

IntlChar::JG_TEH_MARBUTA_GOAL

IntlChar::JG_HAMZA_ON_HEH_GOAL

IntlChar::JG_HE

IntlChar::JG_HEH

IntlChar::JG_HEH_GOAL

IntlChar::JG_HETH

IntlChar::JG_KAF

IntlChar::JG_KAPH

IntlChar::JG_KNOTTED_HEH

IntlChar::JG_LAM

IntlChar::JG_LAMADH

IntlChar::JG_MEEM

IntlChar::JG_MIM

IntlChar::JG_NOON

IntlChar::JG_NUN

IntlChar::JG_PE

IntlChar::JG_QAF

IntlChar::JG_QAPH

IntlChar::JG_REH

IntlChar::JG_REVERSED_PE

IntlChar::JG_SAD

IntlChar::JG_SADHE

IntlChar::JG_SEEN

IntlChar::JG_SEMKATH

IntlChar::JG_SHIN

IntlChar::JG_SWASH_KAF

IntlChar::JG_SYRIAC_WAW

IntlChar::JG_TAH

IntlChar::JG_TAW

IntlChar::JG_TEH_MARBUTA

IntlChar::JG_TETH

IntlChar::JG_WAW

IntlChar::JG_YEH

IntlChar::JG_YEH_BARREE

IntlChar::JG_YEH_WITH_TAIL

IntlChar::JG_YUDH

IntlChar::JG_YUDH_HE

IntlChar::JG_ZAIN

IntlChar::JG_FE

IntlChar::JG_KHAPH

IntlChar::JG_ZHAIN

IntlChar::JG_BURUSHASKI_YEH_BARREE

IntlChar::JG_FARSI_YEH

IntlChar::JG_NYA

IntlChar::JG_ROHINGYA_YEH

IntlChar::JG_MANICHAEAN_ALEPH

IntlChar::JG_MANICHAEAN_AYIN

IntlChar::JG_MANICHAEAN_BETH

IntlChar::JG_MANICHAEAN_DALETH

IntlChar::JG_MANICHAEAN_DHAMEDH

IntlChar::JG_MANICHAEAN_FIVE

IntlChar::JG_MANICHAEAN_GIMEL

IntlChar::JG_MANICHAEAN_HETH

IntlChar::JG_MANICHAEAN_HUNDRED

IntlChar::JG_MANICHAEAN_KAPH

IntlChar::JG_MANICHAEAN_LAMEDH

IntlChar::JG_MANICHAEAN_MEM

IntlChar::JG_MANICHAEAN_NUN

IntlChar::JG_MANICHAEAN_ONE

IntlChar::JG_MANICHAEAN_PE

IntlChar::JG_MANICHAEAN_QOPH

IntlChar::JG_MANICHAEAN_RESH

IntlChar::JG_MANICHAEAN_SADHE

IntlChar::JG_MANICHAEAN_SAMEKH

IntlChar::JG_MANICHAEAN_TAW

IntlChar::JG_MANICHAEAN_TEN

IntlChar::JG_MANICHAEAN_TETH

IntlChar::JG_MANICHAEAN_THAMEDH

IntlChar::JG_MANICHAEAN_TWENTY

IntlChar::JG_MANICHAEAN_WAW

IntlChar::JG_MANICHAEAN_YODH

IntlChar::JG_MANICHAEAN_ZAYIN

IntlChar::JG_STRAIGHT_WAW

IntlChar::JG_COUNT

IntlChar::GCB_OTHER

IntlChar::GCB_CONTROL

IntlChar::GCB_CR

IntlChar::GCB_EXTEND

IntlChar::GCB_L

IntlChar::GCB_LF

IntlChar::GCB_LV

IntlChar::GCB_LVT

IntlChar::GCB_T

IntlChar::GCB_V

IntlChar::GCB_SPACING_MARK

IntlChar::GCB_PREPEND

IntlChar::GCB_REGIONAL_INDICATOR

IntlChar::GCB_COUNT

IntlChar::WB_OTHER

IntlChar::WB_ALETTER

IntlChar::WB_FORMAT

IntlChar::WB_KATAKANA

IntlChar::WB_MIDLETTER

IntlChar::WB_MIDNUM

IntlChar::WB_NUMERIC

IntlChar::WB_EXTENDNUMLET

IntlChar::WB_CR

IntlChar::WB_EXTEND

IntlChar::WB_LF

IntlChar::WB_MIDNUMLET

IntlChar::WB_NEWLINE

IntlChar::WB_REGIONAL_INDICATOR

IntlChar::WB_HEBREW_LETTER

IntlChar::WB_SINGLE_QUOTE

IntlChar::WB_DOUBLE_QUOTE

IntlChar::WB_COUNT

IntlChar::SB_OTHER

IntlChar::SB_ATERM

IntlChar::SB_CLOSE

IntlChar::SB_FORMAT

IntlChar::SB_LOWER

IntlChar::SB_NUMERIC

IntlChar::SB_OLETTER

IntlChar::SB_SEP

IntlChar::SB_SP

IntlChar::SB_STERM

IntlChar::SB_UPPER

IntlChar::SB_CR

IntlChar::SB_EXTEND

IntlChar::SB_LF

IntlChar::SB_SCONTINUE

IntlChar::SB_COUNT

IntlChar::LB_UNKNOWN

IntlChar::LB_AMBIGUOUS

IntlChar::LB_ALPHABETIC

IntlChar::LB_BREAK_BOTH

IntlChar::LB_BREAK_AFTER

IntlChar::LB_BREAK_BEFORE

IntlChar::LB_MANDATORY_BREAK

IntlChar::LB_CONTINGENT_BREAK

IntlChar::LB_CLOSE_PUNCTUATION

IntlChar::LB_COMBINING_MARK

IntlChar::LB_CARRIAGE_RETURN

IntlChar::LB_EXCLAMATION

IntlChar::LB_GLUE

IntlChar::LB_HYPHEN

IntlChar::LB_IDEOGRAPHIC

IntlChar::LB_INSEPARABLE

IntlChar::LB_INSEPERABLE

IntlChar::LB_INFIX_NUMERIC

IntlChar::LB_LINE_FEED

IntlChar::LB_NONSTARTER

IntlChar::LB_NUMERIC

IntlChar::LB_OPEN_PUNCTUATION

IntlChar::LB_POSTFIX_NUMERIC

IntlChar::LB_PREFIX_NUMERIC

IntlChar::LB_QUOTATION

IntlChar::LB_COMPLEX_CONTEXT

IntlChar::LB_SURROGATE

IntlChar::LB_SPACE

IntlChar::LB_BREAK_SYMBOLS

IntlChar::LB_ZWSPACE

IntlChar::LB_NEXT_LINE

IntlChar::LB_WORD_JOINER

IntlChar::LB_H2

IntlChar::LB_H3

IntlChar::LB_JL

IntlChar::LB_JT

IntlChar::LB_JV

IntlChar::LB_CLOSE_PARENTHESIS

IntlChar::LB_CONDITIONAL_JAPANESE_STARTER

IntlChar::LB_HEBREW_LETTER

IntlChar::LB_REGIONAL_INDICATOR

IntlChar::LB_COUNT

IntlChar::NT_NONE

IntlChar::NT_DECIMAL

IntlChar::NT_DIGIT

IntlChar::NT_NUMERIC

IntlChar::NT_COUNT

IntlChar::HST_NOT_APPLICABLE

IntlChar::HST_LEADING_JAMO

IntlChar::HST_VOWEL_JAMO

IntlChar::HST_TRAILING_JAMO

IntlChar::HST_LV_SYLLABLE

IntlChar::HST_LVT_SYLLABLE

IntlChar::HST_COUNT

IntlChar::FOLD_CASE_DEFAULT

IntlChar::FOLD_CASE_EXCLUDE_SPECIAL_I

Historique

Version | Description
7.0.6 | La constante IntlChar::NO_NUMERIC_VALUE a été ajoutée.

Sommaire

  • IntlChar::charAge — Get the "age" of the code point
  • IntlChar::charDigitValue — Get the decimal digit value of a decimal digit character
  • IntlChar::charDirection — Get bidirectional category value for a code point
  • IntlChar::charFromName — Find Unicode character by name and return its code point value
  • IntlChar::charMirror — Get the "mirror-image" character for a code point
  • IntlChar::charName — Retrieve the name of a Unicode character
  • IntlChar::charType — Get the general category value for a code point
  • IntlChar::chr — Return Unicode character by code point value
  • IntlChar::digit — Get the decimal digit value of a code point for a given radix
  • IntlChar::enumCharNames — Enumerate all assigned Unicode characters within a range
  • IntlChar::enumCharTypes — Enumerate all code points with their Unicode general categories
  • IntlChar::foldCase — Perform case folding on a code point
  • IntlChar::forDigit — Get character representation for a given digit and radix
  • IntlChar::getBidiPairedBracket — Get the paired bracket character for a code point
  • IntlChar::getBlockCode — Get the Unicode allocation block containing a code point
  • IntlChar::getCombiningClass — Get the combining class of a code point
  • IntlChar::getFC_NFKC_Closure — Get the FC_NFKC_Closure property for a code point
  • IntlChar::getIntPropertyMaxValue — Get the max value for a Unicode property
  • IntlChar::getIntPropertyMinValue — Get the min value for a Unicode property
  • IntlChar::getIntPropertyValue — Get the value for a Unicode property for a code point
  • IntlChar::getNumericValue — Get the numeric value for a Unicode code point
  • IntlChar::getPropertyEnum — Get the property constant value for a given property name
  • IntlChar::getPropertyName — Get the Unicode name for a property
  • IntlChar::getPropertyValueEnum — Get the property value for a given value name
  • IntlChar::getPropertyValueName — Get the Unicode name for a property value
  • IntlChar::getUnicodeVersion — Get the Unicode version
  • IntlChar::hasBinaryProperty — Check a binary Unicode property for a code point
  • IntlChar::isalnum — Check if code point is an alphanumeric character
  • IntlChar::isalpha — Check if code point is a letter character
  • IntlChar::isbase — Check if code point is a base character
  • IntlChar::isblank — Check if code point is a "blank" or "horizontal space" character
  • IntlChar::iscntrl — Check if code point is a control character
  • IntlChar::isdefined — Check whether the code point is defined
  • IntlChar::isdigit — Check if code point is a digit character
  • IntlChar::isgraph — Check if code point is a graphic character
  • IntlChar::isIDIgnorable — Check if code point is an ignorable character
  • IntlChar::isIDPart — Check if code point is permissible in an identifier
  • IntlChar::isIDStart — Check if code point is permissible as the first character in an identifier
  • IntlChar::isISOControl — Check if code point is an ISO control code
  • IntlChar::isJavaIDPart — Check if code point is permissible in a Java identifier
  • IntlChar::isJavaIDStart — Check if code point is permissible as the first character in a Java identifier
  • IntlChar::isJavaSpaceChar — Check if code point is a space character according to Java
  • IntlChar::islower — Check if code point is a lowercase letter
  • IntlChar::isMirrored — Check if code point has the Bidi_Mirrored property
  • IntlChar::isprint — Check if code point is a printable character
  • IntlChar::ispunct — Check if code point is punctuation character
  • IntlChar::isspace — Check if code point is a space character
  • IntlChar::istitle — Check if code point is a titlecase letter
  • IntlChar::isUAlphabetic — Check if code point has the Alphabetic Unicode property
  • IntlChar::isULowercase — Check if code point has the Lowercase Unicode property
  • IntlChar::isupper — Check if code point has the general category "Lu" (uppercase letter)
  • IntlChar::isUUppercase — Check if code point has the Uppercase Unicode property
  • IntlChar::isUWhiteSpace — Check if code point has the White_Space Unicode property
  • IntlChar::isWhitespace — Check if code point is a whitespace character according to ICU
  • IntlChar::isxdigit — Check if code point is a hexadecimal digit
  • IntlChar::ord — Return Unicode code point value of character
  • IntlChar::tolower — Make Unicode character lowercase
  • IntlChar::totitle — Make Unicode character titlecase
  • IntlChar::toupper — Make Unicode character uppercase


Get the "age" of the code point

  • « IntlChar
  • IntlChar::charDigitValue »
  • PHP Manual
  • IntlChar
  • Get the "age" of the code point

IntlChar::charAge

(PHP 7, PHP 8)

IntlChar::charAge — Get the "age" of the code point

Description

public static IntlChar::charAge(int|string $codepoint): ?array

Gets the "age" of the code point.

The "age" is the Unicode version when the code point was first designated (as a non-character or for Private Use) or assigned a character. This can be useful to avoid emitting code points to receiving processes that do not accept newer characters.

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

The Unicode version number, as an array. For example, version 1.3.31.2 would be represented as [1, 3, 31, 2]. Returns null on failure.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::charage("\u{2603}"));
var_dump(IntlChar::charage("\u{1F576}"));
?>

L'exemple ci-dessus va afficher :

array(4) {
  [0]=>
  int(1)
  [1]=>
  int(1)
  [2]=>
  int(0)
  [3]=>
  int(0)
}
array(4) {
  [0]=>
  int(7)
  [1]=>
  int(0)
  [2]=>
  int(0)
  [3]=>
  int(0)
}

Voir aussi

  • IntlChar::getUnicodeVersion() - Get the Unicode version
  • IntlChar::getIntPropertyMinValue() - Get the min value for a Unicode property
  • IntlChar::getIntPropertyValue() - Get the value for a Unicode property for a code point


Get the decimal digit value of a decimal digit character

  • « IntlChar::charAge
  • IntlChar::charDirection »
  • PHP Manual
  • IntlChar
  • Get the decimal digit value of a decimal digit character

IntlChar::charDigitValue

(PHP 7, PHP 8)

IntlChar::charDigitValue — Get the decimal digit value of a decimal digit character

Description

public static IntlChar::charDigitValue(int|string $codepoint): ?int

Returns the decimal digit value of a decimal digit character.

Such characters have the general category "Nd" (decimal digit numbers) and a Numeric_Type of Decimal.

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

The decimal digit value of codepoint, or -1 if it is not a decimal digit character. Returns null on failure.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::charDigitValue("1"));
var_dump(IntlChar::charDigitValue("\u{0662}"));
var_dump(IntlChar::charDigitValue("\u{0E53}"));
?>

L'exemple ci-dessus va afficher :

int(1)
int(2)
int(3)

Voir aussi

  • IntlChar::getNumericValue() - Get the numeric value for a Unicode code point


Get bidirectional category value for a code point

  • « IntlChar::charDigitValue
  • IntlChar::charFromName »
  • PHP Manual
  • IntlChar
  • Get bidirectional category value for a code point

IntlChar::charDirection

(PHP 7, PHP 8)

IntlChar::charDirection — Get bidirectional category value for a code point

Description

public static IntlChar::charDirection(int|string $codepoint): ?int

Returns the bidirectional category value for the code point, which is used in the » Unicode bidirectional algorithm (UAX #9).

Note:

Some unassigned code points have bidi values of R or AL because they are in blocks that are reserved for Right-To-Left scripts.

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

The bidirectional category value; one of the following constants:

  • IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT
  • IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT
  • IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER
  • IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER_SEPARATOR
  • IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER_TERMINATOR
  • IntlChar::CHAR_DIRECTION_ARABIC_NUMBER
  • IntlChar::CHAR_DIRECTION_COMMON_NUMBER_SEPARATOR
  • IntlChar::CHAR_DIRECTION_BLOCK_SEPARATOR
  • IntlChar::CHAR_DIRECTION_SEGMENT_SEPARATOR
  • IntlChar::CHAR_DIRECTION_WHITE_SPACE_NEUTRAL
  • IntlChar::CHAR_DIRECTION_OTHER_NEUTRAL
  • IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT_EMBEDDING
  • IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT_OVERRIDE
  • IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_ARABIC
  • IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_EMBEDDING
  • IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_OVERRIDE
  • IntlChar::CHAR_DIRECTION_POP_DIRECTIONAL_FORMAT
  • IntlChar::CHAR_DIRECTION_DIR_NON_SPACING_MARK
  • IntlChar::CHAR_DIRECTION_BOUNDARY_NEUTRAL
  • IntlChar::CHAR_DIRECTION_FIRST_STRONG_ISOLATE
  • IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT_ISOLATE
  • IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_ISOLATE
  • IntlChar::CHAR_DIRECTION_POP_DIRECTIONAL_ISOLATE
  • IntlChar::CHAR_DIRECTION_CHAR_DIRECTION_COUNT
Returns null on failure.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::charDirection("A") === IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT);
var_dump(IntlChar::charDirection("\u{05E9}") === IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT);
var_dump(IntlChar::charDirection("+") === IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER_SEPARATOR);
var_dump(IntlChar::charDirection(".") === IntlChar::CHAR_DIRECTION_COMMON_NUMBER_SEPARATOR);
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(true)
bool(true)
bool(true)


Find Unicode character by name and return its code point value

  • « IntlChar::charDirection
  • IntlChar::charMirror »
  • PHP Manual
  • IntlChar
  • Find Unicode character by name and return its code point value

IntlChar::charFromName

(PHP 7, PHP 8)

IntlChar::charFromName — Find Unicode character by name and return its code point value

Description

public static IntlChar::charFromName(string $name, int $type = IntlChar::UNICODE_CHAR_NAME): ?int

Finds a Unicode character by its name and returns its code point value.

The name is matched exactly and completely. If the name does not correspond to a code point, null is returned.

A Unicode 1.0 name is matched only if it differs from the modern name. Unicode names are all uppercase. Extended names are lowercase followed by an uppercase hexadecimal number, and within angle brackets.

Liste de paramètres

name

Full name of the Unicode character.

type

Which set of names to use for the lookup. Can be any of these constants:

  • IntlChar::UNICODE_CHAR_NAME (default)
  • IntlChar::UNICODE_10_CHAR_NAME
  • IntlChar::EXTENDED_CHAR_NAME
  • IntlChar::CHAR_NAME_ALIAS
  • IntlChar::CHAR_NAME_CHOICE_COUNT

Valeurs de retour

The Unicode value of the code point with the given name (as an int), or null if there is no such code point.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::charFromName("LATIN CAPITAL LETTER A"));
var_dump(IntlChar::charFromName("SNOWMAN"));
var_dump(IntlChar::charFromName("RECYCLING SYMBOL FOR TYPE-1 PLASTICS"));
var_dump(IntlChar::charFromName("A RANDOM STRING WHICH DOESN'T CORRESPOND TO ANY UNICODE CHARACTER"));
?>

L'exemple ci-dessus va afficher :

int(65)
int(9731)
int(9843)
NULL

Voir aussi

  • IntlChar::charName() - Retrieve the name of a Unicode character
  • IntlChar::enumCharNames() - Enumerate all assigned Unicode characters within a range


Get the "mirror-image" character for a code point

  • « IntlChar::charFromName
  • IntlChar::charName »
  • PHP Manual
  • IntlChar
  • Get the "mirror-image" character for a code point

IntlChar::charMirror

(PHP 7, PHP 8)

IntlChar::charMirror — Get the "mirror-image" character for a code point

Description

public static IntlChar::charMirror(int|string $codepoint): int|string|null

Maps the specified character to a "mirror-image" character.

For characters with the Bidi_Mirrored property, implementations sometimes need a "poor man's" mapping to another Unicode character (code point) such that the default glyph may serve as the mirror-image of the default glyph of the specified character. This is useful for text conversion to and from codepages with visual order, and for displays without glyph selection capabilities.

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns another Unicode code point that may serve as a mirror-image substitute, or codepoint itself if there is no such mapping or codepoint does not have the Bidi_Mirrored property.

Le type retourné sera entier tant que le codepoint a été passé en une chaîne de type chaîne de caractères encodée en UTF-8, auquel cas, une chaîne de caractères est retournée. En cas d'échec, retourne null.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::charMirror("A"));
var_dump(IntlChar::charMirror("<"));
var_dump(IntlChar::charMirror("("));
?>

L'exemple ci-dessus va afficher :

string(1) "A"
string(1) ">"
string(2) ")"

Voir aussi

  • IntlChar::isMirrored() - Check if code point has the Bidi_Mirrored property
  • IntlChar::PROPERTY_BIDI_MIRRORED


Retrieve the name of a Unicode character

  • « IntlChar::charMirror
  • IntlChar::charType »
  • PHP Manual
  • IntlChar
  • Retrieve the name of a Unicode character

IntlChar::charName

(PHP 7, PHP 8)

IntlChar::charName — Retrieve the name of a Unicode character

Description

public static IntlChar::charName(int|string $codepoint, int $type = IntlChar::UNICODE_CHAR_NAME): ?string

Retrieves the name of a Unicode character.

Depending on type, the resulting character name is the "modern" name or the name that was defined in Unicode version 1.0. The name contains only "invariant" characters like A-Z, 0-9, space, and '-'. Unicode 1.0 names are only retrieved if they are different from the modern names and if ICU contains the data for them.

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

type

Which set of names to use for the lookup. Can be any of these constants:

  • IntlChar::UNICODE_CHAR_NAME (default)
  • IntlChar::UNICODE_10_CHAR_NAME
  • IntlChar::EXTENDED_CHAR_NAME
  • IntlChar::CHAR_NAME_ALIAS
  • IntlChar::CHAR_NAME_CHOICE_COUNT

Valeurs de retour

The corresponding name, or an empty string if there is no name for this character, or null if there is no such code point.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::charName("."));
var_dump(IntlChar::charName(".", IntlChar::UNICODE_CHAR_NAME));
var_dump(IntlChar::charName("\u{2603}"));
var_dump(IntlChar::charName("\u{0000}"));
?>

L'exemple ci-dessus va afficher :

string(9) "FULL STOP"
string(9) "FULL STOP"
string(7) "SNOWMAN"
string(0) ""

Voir aussi

  • IntlChar::charFromName() - Find Unicode character by name and return its code point value
  • IntlChar::enumCharNames() - Enumerate all assigned Unicode characters within a range


Get the general category value for a code point

  • « IntlChar::charName
  • IntlChar::chr »
  • PHP Manual
  • IntlChar
  • Get the general category value for a code point

IntlChar::charType

(PHP 7, PHP 8)

IntlChar::charType — Get the general category value for a code point

Description

public static IntlChar::charType(int|string $codepoint): ?int

Returns the general category value for the code point.

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns the general category type, which may be one of the following constants:

  • IntlChar::CHAR_CATEGORY_UNASSIGNED
  • IntlChar::CHAR_CATEGORY_GENERAL_OTHER_TYPES
  • IntlChar::CHAR_CATEGORY_UPPERCASE_LETTER
  • IntlChar::CHAR_CATEGORY_LOWERCASE_LETTER
  • IntlChar::CHAR_CATEGORY_TITLECASE_LETTER
  • IntlChar::CHAR_CATEGORY_MODIFIER_LETTER
  • IntlChar::CHAR_CATEGORY_OTHER_LETTER
  • IntlChar::CHAR_CATEGORY_NON_SPACING_MARK
  • IntlChar::CHAR_CATEGORY_ENCLOSING_MARK
  • IntlChar::CHAR_CATEGORY_COMBINING_SPACING_MARK
  • IntlChar::CHAR_CATEGORY_DECIMAL_DIGIT_NUMBER
  • IntlChar::CHAR_CATEGORY_LETTER_NUMBER
  • IntlChar::CHAR_CATEGORY_OTHER_NUMBER
  • IntlChar::CHAR_CATEGORY_SPACE_SEPARATOR
  • IntlChar::CHAR_CATEGORY_LINE_SEPARATOR
  • IntlChar::CHAR_CATEGORY_PARAGRAPH_SEPARATOR
  • IntlChar::CHAR_CATEGORY_CONTROL_CHAR
  • IntlChar::CHAR_CATEGORY_FORMAT_CHAR
  • IntlChar::CHAR_CATEGORY_PRIVATE_USE_CHAR
  • IntlChar::CHAR_CATEGORY_SURROGATE
  • IntlChar::CHAR_CATEGORY_DASH_PUNCTUATION
  • IntlChar::CHAR_CATEGORY_START_PUNCTUATION
  • IntlChar::CHAR_CATEGORY_END_PUNCTUATION
  • IntlChar::CHAR_CATEGORY_CONNECTOR_PUNCTUATION
  • IntlChar::CHAR_CATEGORY_OTHER_PUNCTUATION
  • IntlChar::CHAR_CATEGORY_MATH_SYMBOL
  • IntlChar::CHAR_CATEGORY_CURRENCY_SYMBOL
  • IntlChar::CHAR_CATEGORY_MODIFIER_SYMBOL
  • IntlChar::CHAR_CATEGORY_OTHER_SYMBOL
  • IntlChar::CHAR_CATEGORY_INITIAL_PUNCTUATION
  • IntlChar::CHAR_CATEGORY_FINAL_PUNCTUATION
  • IntlChar::CHAR_CATEGORY_CHAR_CATEGORY_COUNT

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::charType("A") === IntlChar::CHAR_CATEGORY_UPPERCASE_LETTER);
var_dump(IntlChar::charType(".") === IntlChar::CHAR_CATEGORY_OTHER_PUNCTUATION);
var_dump(IntlChar::charType("\t") === IntlChar::CHAR_CATEGORY_CONTROL_CHAR);
var_dump(IntlChar::charType("\u{2603}") === IntlChar::CHAR_CATEGORY_OTHER_SYMBOL);
var_dump(IntlChar::charType("multiple chars") === null);
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(true)
bool(true)
bool(true)
bool(true)


Return Unicode character by code point value

  • « IntlChar::charType
  • IntlChar::digit »
  • PHP Manual
  • IntlChar
  • Return Unicode character by code point value

IntlChar::chr

(PHP 7, PHP 8)

IntlChar::chr — Return Unicode character by code point value

Description

public static IntlChar::chr(int|string $codepoint): ?string

Returns a string containing the character specified by the Unicode code point value.

This function complements IntlChar::ord().

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

A string containing the single character specified by the Unicode code point value, or null on failure.

Exemples

Exemple #1 Test de différents codepoint

<?php
$values = ["A", 63, 123, 9731];
foreach ($values as $value) {
var_dump(IntlChar::chr($value));
}
?>

L'exemple ci-dessus va afficher :

string(1) "A"
string(1) "?"
string(1) "{"
string(3) "?"

Voir aussi

  • IntlChar::ord() - Return Unicode code point value of character
  • mb_chr() - Retourne un caractère par sa valeur de point de code Unicode
  • chr() - Générer une chaîne d'un octet à partir d'un nombre


Get the decimal digit value of a code point for a given radix

  • « IntlChar::chr
  • IntlChar::enumCharNames »
  • PHP Manual
  • IntlChar
  • Get the decimal digit value of a code point for a given radix

IntlChar::digit

(PHP 7, PHP 8)

IntlChar::digit — Get the decimal digit value of a code point for a given radix

Description

public static IntlChar::digit(int|string $codepoint, int $base = 10): int|false|null

Returns the decimal digit value of the code point in the specified radix.

If the radix is not in the range 2<=radix<=36 or if the value of codepoint is not a valid digit in the specified radix, false is returned. A character is a valid digit if at least one of the following is true:

  • The character has a decimal digit value. Such characters have the general category "Nd" (decimal digit numbers) and a Numeric_Type of Decimal. In this case the value is the character's decimal digit value.
  • The character is one of the uppercase Latin letters 'A' through 'Z'. In this case the value is c-'A'+10.
  • The character is one of the lowercase Latin letters 'a' through 'z'. In this case the value is ch-'a'+10.
  • Latin letters from both the ASCII range (0061..007A, 0041..005A) as well as from the Fullwidth ASCII range (FF41..FF5A, FF21..FF3A) are recognized.

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

base

The radix (defaults to 10).

Valeurs de retour

Returns the numeric value represented by the character in the specified radix, or false if there is no value or if the value exceeds the radix. Returns null on failure.

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 Test de différents codepoint

<?php
var_dump(IntlChar::digit("0"));
var_dump(IntlChar::digit("3"));
var_dump(IntlChar::digit("A"));
var_dump(IntlChar::digit("A", 16));
?>

L'exemple ci-dessus va afficher :

int(0)
int(3)
bool(false)
int(10)

Voir aussi

  • IntlChar::forDigit() - Get character representation for a given digit and radix
  • IntlChar::charDigitValue() - Get the decimal digit value of a decimal digit character
  • IntlChar::isdigit() - Check if code point is a digit character
  • IntlChar::PROPERTY_NUMERIC_TYPE


Enumerate all assigned Unicode characters within a range

  • « IntlChar::digit
  • IntlChar::enumCharTypes »
  • PHP Manual
  • IntlChar
  • Enumerate all assigned Unicode characters within a range

IntlChar::enumCharNames

(PHP 7, PHP 8)

IntlChar::enumCharNames — Enumerate all assigned Unicode characters within a range

Description

public static IntlChar::enumCharNames(
int|string $start,
int|string $end,
callable $callback,
int $type = IntlChar::UNICODE_CHAR_NAME
): bool

Enumerate all assigned Unicode characters between the start and limit code points (start inclusive, limit exclusive) and call a function for each, passing the code point value and the character name.

For Unicode 1.0 names, only those are enumerated that differ from the modern names.

Liste de paramètres

start

The first code point in the enumeration range.

end

One more than the last code point in the enumeration range (the first one after the range).

callback

The function that is to be called for each character name. The following three arguments will be passed into it:

  • int $codepoint - The numeric code point value
  • int $nameChoice - The same value as the type parameter below
  • string $name - The name of the character

type

Selector for which kind of names to enumerate. Can be any of these constants:

  • IntlChar::UNICODE_CHAR_NAME (default)
  • IntlChar::UNICODE_10_CHAR_NAME
  • IntlChar::EXTENDED_CHAR_NAME
  • IntlChar::CHAR_NAME_ALIAS
  • IntlChar::CHAR_NAME_CHOICE_COUNT

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.3.0 | This method now returns false on failure; previously it returns null.

Exemples

Exemple #1 Enumerating over a sample range of code points

<?php
IntlChar::enumCharNames(0x2600, 0x2610, function($codepoint, $nameChoice, $name) {
printf("U+%04x %s\n", $codepoint, $name);
});
?>

L'exemple ci-dessus va afficher :

U+2600 BLACK SUN WITH RAYS
U+2601 CLOUD
U+2602 UMBRELLA
U+2603 SNOWMAN
U+2604 COMET
U+2605 BLACK STAR
U+2606 WHITE STAR
U+2607 LIGHTNING
U+2608 THUNDERSTORM
U+2609 SUN
U+260a ASCENDING NODE
U+260b DESCENDING NODE
U+260c CONJUNCTION
U+260d OPPOSITION
U+260e BLACK TELEPHONE
U+260f WHITE TELEPHONE

Voir aussi

  • IntlChar::charName() - Retrieve the name of a Unicode character
  • IntlChar::charFromName() - Find Unicode character by name and return its code point value


Enumerate all code points with their Unicode general categories

  • « IntlChar::enumCharNames
  • IntlChar::foldCase »
  • PHP Manual
  • IntlChar
  • Enumerate all code points with their Unicode general categories

IntlChar::enumCharTypes

(PHP 7, PHP 8)

IntlChar::enumCharTypes — Enumerate all code points with their Unicode general categories

Description

public static IntlChar::enumCharTypes(callable $callback): void

Enumerates efficiently all code points with their Unicode general categories. This is useful for building data structures, for enumerating all assigned code points, etc.

For each contiguous range of code points with a given general category ("character type"), the callback function is called. Adjacent ranges have different types. The Unicode Standard guarantees that the numeric value of the type is 0..31.

Liste de paramètres

callback

The function that is to be called for each contiguous range of code points with the same general category. The following three arguments will be passed into it:

  • int $start - The starting code point of the range
  • int $end - The ending code point of the range
  • int $name - The category type (one of the IntlChar::CHAR_CATEGORY_* constants)

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Enumerating over a sample range of code points

<?php
IntlChar::enumCharTypes(function($start, $end, $type) {
printf("U+%04x through U+%04x are in category %d\n", $start, $end, $type);
});
?>

L'exemple ci-dessus va afficher :

U+0000 through U+0020 are in category 15
U+0020 through U+0021 are in category 12
U+0021 through U+0024 are in category 23
U+0024 through U+0025 are in category 25
U+0025 through U+0028 are in category 23
U+0028 through U+0029 are in category 20
U+0029 through U+002a are in category 21
U+002a through U+002b are in category 23
U+002b through U+002c are in category 24
U+002c through U+002d are in category 23
U+002d through U+002e are in category 19
U+002e through U+0030 are in category 23
U+0030 through U+003a are in category 9
...


Perform case folding on a code point

  • « IntlChar::enumCharTypes
  • IntlChar::forDigit »
  • PHP Manual
  • IntlChar
  • Perform case folding on a code point

IntlChar::foldCase

(PHP 7, PHP 8)

IntlChar::foldCase — Perform case folding on a code point

Description

public static IntlChar::foldCase(int|string $codepoint, int $options = IntlChar::FOLD_CASE_DEFAULT): int|string|null

The given character is mapped to its case folding equivalent; if the character has no case folding equivalent, the character itself is returned.

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

options

Either IntlChar::FOLD_CASE_DEFAULT (default) or IntlChar::FOLD_CASE_EXCLUDE_SPECIAL_I.

Valeurs de retour

Returns the Simple_Case_Folding of the code point, if any; otherwise the code point itself on success, or null on failure.


Get character representation for a given digit and radix

  • « IntlChar::foldCase
  • IntlChar::getBidiPairedBracket »
  • PHP Manual
  • IntlChar
  • Get character representation for a given digit and radix

IntlChar::forDigit

(PHP 7, PHP 8)

IntlChar::forDigit — Get character representation for a given digit and radix

Description

public static IntlChar::forDigit(int $digit, int $base = 10): int

Determines the character representation for a specific digit in the specified radix.

If the value of radix is not a valid radix, or the value of digit is not a valid digit in the specified radix, the null character (U+0000) is returned.

The radix argument is valid if it is greater than or equal to 2 and less than or equal to 36. The digit argument is valid if 0 <= digit < radix.

If the digit is less than 10, then '0' + digit is returned. Otherwise, the value 'a' + digit - 10 is returned.

Liste de paramètres

digit

The number to convert to a character.

base

The radix (defaults to 10).

Valeurs de retour

The character representation (as a string) of the specified digit in the specified radix.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::forDigit(0));
var_dump(IntlChar::forDigit(3));
var_dump(IntlChar::forDigit(3, 10));
var_dump(IntlChar::forDigit(10));
var_dump(IntlChar::forDigit(10, 16));
?>

L'exemple ci-dessus va afficher :

int(48)
int(51)
int(51)
int(0)
int(97)

Voir aussi

  • IntlChar::digit() - Get the decimal digit value of a code point for a given radix
  • IntlChar::charDigitValue() - Get the decimal digit value of a decimal digit character
  • IntlChar::isdigit() - Check if code point is a digit character
  • IntlChar::PROPERTY_NUMERIC_TYPE


Get the paired bracket character for a code point

  • « IntlChar::forDigit
  • IntlChar::getBlockCode »
  • PHP Manual
  • IntlChar
  • Get the paired bracket character for a code point

IntlChar::getBidiPairedBracket

(PHP 7, PHP 8)

IntlChar::getBidiPairedBracket — Get the paired bracket character for a code point

Description

public static IntlChar::getBidiPairedBracket(int|string $codepoint): int|string|null

Maps the specified character to its paired bracket character.

For Bidi_Paired_Bracket_Type!=None, this is the same as IntlChar::charMirror(). Otherwise codepoint itself is returned.

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns the paired bracket code point, or codepoint itself if there is no such mapping. Returns null on failure.

Le type retourné sera entier tant que le codepoint a été passé en une chaîne de type chaîne de caractères encodée en UTF-8, auquel cas, une chaîne de caractères est retournée. En cas d'échec, retourne null.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::getBidiPairedBracket(91));
var_dump(IntlChar::getBidiPairedBracket('['));
?>

L'exemple ci-dessus va afficher :

int(93)
string(1) "]"

Voir aussi

  • IntlChar::charMirror() - Get the "mirror-image" character for a code point
  • IntlChar::PROPERTY_BIDI_PAIRED_BRACKET
  • IntlChar::PROPERTY_BIDI_PAIRED_BRACKET_TYPE


Get the Unicode allocation block containing a code point

  • « IntlChar::getBidiPairedBracket
  • IntlChar::getCombiningClass »
  • PHP Manual
  • IntlChar
  • Get the Unicode allocation block containing a code point

IntlChar::getBlockCode

(PHP 7, PHP 8)

IntlChar::getBlockCode — Get the Unicode allocation block containing a code point

Description

public static IntlChar::getBlockCode(int|string $codepoint): ?int

Returns the Unicode allocation block that contains the character.

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns the block value for codepoint. See the IntlChar::BLOCK_CODE_* constants for possible return values. Returns null on failure.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::getBlockCode("A") === IntlChar::BLOCK_CODE_BASIC_LATIN);
var_dump(IntlChar::getBlockCode("F") === IntlChar::BLOCK_CODE_GREEK);
var_dump(IntlChar::getBlockCode("\u{2603}") === IntlChar::BLOCK_CODE_MISCELLANEOUS_SYMBOLS);
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(true)
bool(true)


Get the combining class of a code point

  • « IntlChar::getBlockCode
  • IntlChar::getFC_NFKC_Closure »
  • PHP Manual
  • IntlChar
  • Get the combining class of a code point

IntlChar::getCombiningClass

(PHP 7, PHP 8)

IntlChar::getCombiningClass — Get the combining class of a code point

Description

public static IntlChar::getCombiningClass(int|string $codepoint): ?int

Returns the combining class of the code point.

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns the combining class of the character. Returns null on failure.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::getCombiningClass("A"));
var_dump(IntlChar::getCombiningClass("\u{0334}"));
var_dump(IntlChar::getCombiningClass("\u{0358}"));
?>

L'exemple ci-dessus va afficher :

int(0)
int(1)
int(232)


Get the FC_NFKC_Closure property for a code point

  • « IntlChar::getCombiningClass
  • IntlChar::getIntPropertyMaxValue »
  • PHP Manual
  • IntlChar
  • Get the FC_NFKC_Closure property for a code point

IntlChar::getFC_NFKC_Closure

(PHP 7, PHP 8)

IntlChar::getFC_NFKC_Closure — Get the FC_NFKC_Closure property for a code point

Description

public static IntlChar::getFC_NFKC_Closure(int|string $codepoint): string|false|null

Gets the FC_NFKC_Closure property string for a character.

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns the FC_NFKC_Closure property string for the codepoint, or an empty string if there is none. Returns null or false on failure.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::getFC_NFKC_Closure("\u{2121}"));
var_dump(IntlChar::getFC_NFKC_Closure("\u{1D2D}"));
?>

L'exemple ci-dessus va afficher :

string(3) "tel"
string(2) "æ"


Get the max value for a Unicode property

  • « IntlChar::getFC_NFKC_Closure
  • IntlChar::getIntPropertyMinValue »
  • PHP Manual
  • IntlChar
  • Get the max value for a Unicode property

IntlChar::getIntPropertyMaxValue

(PHP 7, PHP 8)

IntlChar::getIntPropertyMaxValue — Get the max value for a Unicode property

Description

public static IntlChar::getIntPropertyMaxValue(int $property): int

Gets the maximum value for an enumerated/integer/binary Unicode property.

Liste de paramètres

property

La propriété Unicode à chercher (voir la constante IntlChar::PROPERTY_*).

Valeurs de retour

The maximum value returned by IntlChar::getIntPropertyValue() for a Unicode property. <=0 if the property selector is out of range.

Exemples

Exemple #1 Test de différentes propriétés

<?php
var_dump(IntlChar::getIntPropertyMaxValue(IntlChar::PROPERTY_BIDI_CLASS));
var_dump(IntlChar::getIntPropertyMaxValue(IntlChar::PROPERTY_SCRIPT));
var_dump(IntlChar::getIntPropertyMaxValue(IntlChar::PROPERTY_IDEOGRAPHIC));
var_dump(IntlChar::getIntPropertyMaxValue(999999999)); // Some made-up value
?>

L'exemple ci-dessus va afficher :

int(22)
int(166)
int(1)
int(-1)

Voir aussi

  • IntlChar::hasBinaryProperty() - Check a binary Unicode property for a code point
  • IntlChar::getIntPropertyMinValue() - Get the min value for a Unicode property
  • IntlChar::getIntPropertyValue() - Get the value for a Unicode property for a code point
  • IntlChar::getUnicodeVersion() - Get the Unicode version


Get the min value for a Unicode property

  • « IntlChar::getIntPropertyMaxValue
  • IntlChar::getIntPropertyValue »
  • PHP Manual
  • IntlChar
  • Get the min value for a Unicode property

IntlChar::getIntPropertyMinValue

(PHP 7, PHP 8)

IntlChar::getIntPropertyMinValue — Get the min value for a Unicode property

Description

public static IntlChar::getIntPropertyMinValue(int $property): int

Gets the minimum value for an enumerated/integer/binary Unicode property.

Liste de paramètres

property

La propriété Unicode à chercher (voir la constante IntlChar::PROPERTY_*).

Valeurs de retour

The minimum value returned by IntlChar::getIntPropertyValue() for a Unicode property. 0 if the property selector is out of range.

Exemples

Exemple #1 Test de différentes propriétés

<?php
var_dump(IntlChar::getIntPropertyMinValue(IntlChar::PROPERTY_BIDI_CLASS));
var_dump(IntlChar::getIntPropertyMinValue(IntlChar::PROPERTY_SCRIPT));
var_dump(IntlChar::getIntPropertyMinValue(IntlChar::PROPERTY_IDEOGRAPHIC));
var_dump(IntlChar::getIntPropertyMinValue(999999999)); // Some made-up value
?>

L'exemple ci-dessus va afficher :

int(0)
int(0)
int(0)
int(0)

Voir aussi

  • IntlChar::hasBinaryProperty() - Check a binary Unicode property for a code point
  • IntlChar::getIntPropertyMaxValue() - Get the max value for a Unicode property
  • IntlChar::getIntPropertyValue() - Get the value for a Unicode property for a code point
  • IntlChar::getUnicodeVersion() - Get the Unicode version


Get the value for a Unicode property for a code point

  • « IntlChar::getIntPropertyMinValue
  • IntlChar::getNumericValue »
  • PHP Manual
  • IntlChar
  • Get the value for a Unicode property for a code point

IntlChar::getIntPropertyValue

(PHP 7, PHP 8)

IntlChar::getIntPropertyValue — Get the value for a Unicode property for a code point

Description

public static IntlChar::getIntPropertyValue(int|string $codepoint, int $property): ?int

Gets the property value for an enumerated or integer Unicode property for a code point. Also returns binary and mask property values.

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

property

La propriété Unicode à chercher (voir la constante IntlChar::PROPERTY_*).

Valeurs de retour

Returns the numeric value that is directly the property value or, for enumerated properties, corresponds to the numeric value of the enumerated constant of the respective property value enumeration type. Returns null on failure.

Returns 0 or 1 (for false/true) for binary Unicode properties.

Returns a bit-mask for mask properties.

Returns 0 if property is out of bounds or if the Unicode version does not have data for the property at all, or not for this code point.

Exemples

Exemple #1 Test de différentes propriétés

<?php
var_dump(IntlChar::getIntPropertyValue("A", IntlChar::PROPERTY_ALPHABETIC) === 1);
var_dump(IntlChar::getIntPropertyValue("[", IntlChar::PROPERTY_BIDI_MIRRORED) === 1);
var_dump(IntlChar::getIntPropertyValue("F", IntlChar::PROPERTY_BLOCK) === IntlChar::BLOCK_CODE_GREEK);
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(true)
bool(true)

Voir aussi

  • IntlChar::hasBinaryProperty() - Check a binary Unicode property for a code point
  • IntlChar::getIntPropertyMinValue() - Get the min value for a Unicode property
  • IntlChar::getIntPropertyMaxValue() - Get the max value for a Unicode property
  • IntlChar::getUnicodeVersion() - Get the Unicode version


Get the numeric value for a Unicode code point

  • « IntlChar::getIntPropertyValue
  • IntlChar::getPropertyEnum »
  • PHP Manual
  • IntlChar
  • Get the numeric value for a Unicode code point

IntlChar::getNumericValue

(PHP 7, PHP 8)

IntlChar::getNumericValue — Get the numeric value for a Unicode code point

Description

public static IntlChar::getNumericValue(int|string $codepoint): ?float

Gets the numeric value for a Unicode code point as defined in the Unicode Character Database.

For characters without any numeric values in the Unicode Character Database, this function will return IntlChar::NO_NUMERIC_VALUE.

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Numeric value of codepoint, or IntlChar::NO_NUMERIC_VALUE if none is defined. This constant was added in PHP 7.0.6, prior to this version the literal value (float)-123456789 may be used instead. Returns null on failure.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::getNumericValue("4"));
var_dump(IntlChar::getNumericValue("x"));
var_dump(IntlChar::getNumericValue("\u{216C}"));
?>

L'exemple ci-dessus va afficher :

float(4)
float(-123456789)
float(50)


Get the property constant value for a given property name

  • « IntlChar::getNumericValue
  • IntlChar::getPropertyName »
  • PHP Manual
  • IntlChar
  • Get the property constant value for a given property name

IntlChar::getPropertyEnum

(PHP 7, PHP 8)

IntlChar::getPropertyEnum — Get the property constant value for a given property name

Description

public static IntlChar::getPropertyEnum(string $alias): int

Returns the property constant value for a given property name, as specified in the Unicode database file PropertyAliases.txt. Short, long, and any other variants are recognized.

In addition, this function maps the synthetic names "gcm" / "General_Category_Mask" to the property IntlChar::PROPERTY_GENERAL_CATEGORY_MASK. These names are not in PropertyAliases.txt.

This function complements IntlChar::getPropertyName().

Liste de paramètres

alias

The property name to be matched. The name is compared using "loose matching" as described in PropertyAliases.txt.

Valeurs de retour

Returns an IntlChar::PROPERTY_ constant value, or IntlChar::PROPERTY_INVALID_CODE if the given name does not match any property.

Exemples

Exemple #1 Test de différentes propriétés

<?php
var_dump(IntlChar::getPropertyEnum('Bidi_Class') === IntlChar::PROPERTY_BIDI_CLASS);
var_dump(IntlChar::getPropertyEnum('script') === IntlChar::PROPERTY_SCRIPT);
var_dump(IntlChar::getPropertyEnum('IDEOGRAPHIC') === IntlChar::PROPERTY_IDEOGRAPHIC);
var_dump(IntlChar::getPropertyEnum('Some made-up string') === IntlChar::PROPERTY_INVALID_CODE);
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(true)
bool(true)
bool(true)

Voir aussi

  • IntlChar::getPropertyName() - Get the Unicode name for a property


Get the Unicode name for a property

  • « IntlChar::getPropertyEnum
  • IntlChar::getPropertyValueEnum »
  • PHP Manual
  • IntlChar
  • Get the Unicode name for a property

IntlChar::getPropertyName

(PHP 7, PHP 8)

IntlChar::getPropertyName — Get the Unicode name for a property

Description

public static IntlChar::getPropertyName(int $property, int $type = IntlChar::LONG_PROPERTY_NAME): string|false

Returns the Unicode name for a given property, as given in the Unicode database file PropertyAliases.txt.

In addition, this function maps the property IntlChar::PROPERTY_GENERAL_CATEGORY_MASK to the synthetic names "gcm" / "General_Category_Mask". These names are not in PropertyAliases.txt.

This function complements IntlChar::getPropertyEnum().

Liste de paramètres

property

La propriété Unicode à chercher (voir la constante IntlChar::PROPERTY_*).

IntlChar::PROPERTY_INVALID_CODE should not be used. Also, if property is out of range, false is returned.

type

Selector for which name to get. If out of range, false is returned.

All properties have a long name. Most have a short name, but some do not. Unicode allows for additional names; if present these will be returned by adding 1, 2, etc. to IntlChar::LONG_PROPERTY_NAME.

Valeurs de retour

Returns the name, or false if either the property or the type is out of range.

If a given type returns false, then all larger values of type will return false, with one exception: if false is returned for IntlChar::SHORT_PROPERTY_NAME, then IntlChar::LONG_PROPERTY_NAME (and higher) may still return a non-false value.

Exemples

Exemple #1 Test de différentes propriétés

<?php
var_dump(IntlChar::getPropertyName(IntlChar::PROPERTY_BIDI_CLASS));
var_dump(IntlChar::getPropertyName(IntlChar::PROPERTY_BIDI_CLASS, IntlChar::SHORT_PROPERTY_NAME));
var_dump(IntlChar::getPropertyName(IntlChar::PROPERTY_BIDI_CLASS, IntlChar::LONG_PROPERTY_NAME));
var_dump(IntlChar::getPropertyName(IntlChar::PROPERTY_BIDI_CLASS, IntlChar::LONG_PROPERTY_NAME + 1));
?>

L'exemple ci-dessus va afficher :

string(10) "Bidi_Class"
string(2) "bc"
string(10) "Bidi_Class"
bool(false)

Voir aussi

  • IntlChar::getPropertyEnum() - Get the property constant value for a given property name


Get the property value for a given value name

  • « IntlChar::getPropertyName
  • IntlChar::getPropertyValueName »
  • PHP Manual
  • IntlChar
  • Get the property value for a given value name

IntlChar::getPropertyValueEnum

(PHP 7, PHP 8)

IntlChar::getPropertyValueEnum — Get the property value for a given value name

Description

public static IntlChar::getPropertyValueEnum(int $property, string $name): int

Returns the property value integer for a given value name, as specified in the Unicode database file PropertyValueAliases.txt. Short, long, and any other variants are recognized.

Note:

Some of the names in PropertyValueAliases.txt will only be recognized with IntlChar::PROPERTY_GENERAL_CATEGORY_MASK, not IntlChar::PROPERTY_GENERAL_CATEGORY. These include:

  • "C" / "Other"
  • "L" / "Letter"
  • "LC" / "Cased_Letter"
  • "M" / "Mark"
  • "N" / "Number"
  • "P" / "Punctuation"
  • "S" / "Symbol"
  • "Z" / "Separator"

Liste de paramètres

property

La propriété Unicode à chercher (voir la constante IntlChar::PROPERTY_*).

If out of range, or this method doesn't work with the given value, IntlChar::PROPERTY_INVALID_CODE is returned.

name

The value name to be matched. The name is compared using "loose matching" as described in PropertyValueAliases.txt.

Valeurs de retour

Returns the corresponding value integer, or IntlChar::PROPERTY_INVALID_CODE if the given name does not match any value of the given property, or if the property is invalid.

Exemples

Exemple #1 Test de différentes propriétés

<?php
var_dump(IntlChar::getPropertyValueEnum(IntlChar::PROPERTY_BLOCK, 'greek') === IntlChar::BLOCK_CODE_GREEK);
var_dump(IntlChar::getPropertyValueEnum(IntlChar::PROPERTY_BIDI_CLASS, 'RIGHT_TO_LEFT') === IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT);
var_dump(IntlChar::getPropertyValueEnum(IntlChar::PROPERTY_BIDI_CLASS, 'some made-up string') === IntlChar::PROPERTY_INVALID_CODE);
var_dump(IntlChar::getPropertyValueEnum(123456789, 'RIGHT_TO_LEFT') === IntlChar::PROPERTY_INVALID_CODE);
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(true)
bool(true)
bool(true)


Get the Unicode name for a property value

  • « IntlChar::getPropertyValueEnum
  • IntlChar::getUnicodeVersion »
  • PHP Manual
  • IntlChar
  • Get the Unicode name for a property value

IntlChar::getPropertyValueName

(PHP 7, PHP 8)

IntlChar::getPropertyValueName — Get the Unicode name for a property value

Description

public static IntlChar::getPropertyValueName(int $property, int $value, int $type = IntlChar::LONG_PROPERTY_NAME): string|false

Returns the Unicode name for a given property value, as given in the Unicode database file PropertyValueAliases.txt.

Note:

Some of the names in PropertyValueAliases.txt can only be retrieved using IntlChar::PROPERTY_GENERAL_CATEGORY_MASK, not IntlChar::PROPERTY_GENERAL_CATEGORY. These include:

  • "C" / "Other"
  • "L" / "Letter"
  • "LC" / "Cased_Letter"
  • "M" / "Mark"
  • "N" / "Number"
  • "P" / "Punctuation"
  • "S" / "Symbol"
  • "Z" / "Separator"

Liste de paramètres

property

La propriété Unicode à chercher (voir la constante IntlChar::PROPERTY_*).

If out of range, or this method doesn't work with the given value, false is returned.

value

Selector for a value for the given property. If out of range, false is returned.

In general, valid values range from 0 up to some maximum. There are a couple exceptions:

  • IntlChar::PROPERTY_BLOCK values begin at the non-zero value IntlChar::BLOCK_CODE_BASIC_LATIN
  • IntlChar::PROPERTY_CANONICAL_COMBINING_CLASS values are not contiguous and range from 0..240.

type

Selector for which name to get. If out of range, false is returned.

All values have a long name. Most have a short name, but some do not. Unicode allows for additional names; if present these will be returned by adding 1, 2, etc. to IntlChar::LONG_PROPERTY_NAME.

Valeurs de retour

Returns the name, or false if either the property or the type is out of range. Returns null on failure.

If a given type returns false, then all larger values of type will return false, with one exception: if false is returned for IntlChar::SHORT_PROPERTY_NAME, then IntlChar::LONG_PROPERTY_NAME (and higher) may still return a non-false value.

Exemples

Exemple #1 Test de différentes propriétés

<?php
var_dump(IntlChar::getPropertyValueName(IntlChar::PROPERTY_BLOCK, IntlChar::BLOCK_CODE_GREEK));
var_dump(IntlChar::getPropertyValueName(IntlChar::PROPERTY_BLOCK, IntlChar::BLOCK_CODE_GREEK, IntlChar::SHORT_PROPERTY_NAME));
var_dump(IntlChar::getPropertyValueName(IntlChar::PROPERTY_BLOCK, IntlChar::BLOCK_CODE_GREEK, IntlChar::LONG_PROPERTY_NAME));
var_dump(IntlChar::getPropertyValueName(IntlChar::PROPERTY_BLOCK, IntlChar::BLOCK_CODE_GREEK, IntlChar::LONG_PROPERTY_NAME + 1));
?>

L'exemple ci-dessus va afficher :

string(16) "Greek_And_Coptic"
string(5) "Greek"
string(16) "Greek_And_Coptic"
bool(false)


Get the Unicode version

  • « IntlChar::getPropertyValueName
  • IntlChar::hasBinaryProperty »
  • PHP Manual
  • IntlChar
  • Get the Unicode version

IntlChar::getUnicodeVersion

(PHP 7, PHP 8)

IntlChar::getUnicodeVersion — Get the Unicode version

Description

public static IntlChar::getUnicodeVersion(): array

Gets the Unicode version information.

The version array is filled in with the version information for the Unicode standard that is currently used by ICU. For example, Unicode version 3.1.1 is represented as an array with the values [3, 1, 1, 0].

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

An array containing the Unicode version number.

Exemples

Exemple #1 Test de différentes propriétés

<?php
var_dump(IntlChar::getUnicodeVersion());
?>

L'exemple ci-dessus va afficher :

array(4) {
  [0]=>
  int(7)
  [1]=>
  int(0)
  [2]=>
  int(0)
  [3]=>
  int(0)
}

Voir aussi

  • IntlChar::charAge() - Get the "age" of the code point


Check a binary Unicode property for a code point

  • « IntlChar::getUnicodeVersion
  • IntlChar::isalnum »
  • PHP Manual
  • IntlChar
  • Check a binary Unicode property for a code point

IntlChar::hasBinaryProperty

(PHP 7, PHP 8)

IntlChar::hasBinaryProperty — Check a binary Unicode property for a code point

Description

public static IntlChar::hasBinaryProperty(int|string $codepoint, int $property): ?bool

Checks a binary Unicode property for a code point.

Unicode, especially in version 3.2, defines many more properties than the original set in UnicodeData.txt.

The properties APIs are intended to reflect Unicode properties as defined in the Unicode Character Database (UCD) and Unicode Technical Reports (UTR). For details about the properties see » http://www.unicode.org/ucd/. For names of Unicode properties see the UCD file PropertyAliases.txt.

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

property

La propriété Unicode à chercher (voir la constante IntlChar::PROPERTY_*).

Valeurs de retour

Returns true or false according to the binary Unicode property value for codepoint. Also false if property is out of bounds or if the Unicode version does not have data for the property at all, or not for this code point. Returns null on failure.

Exemples

Exemple #1 Test de différentes propriétés

<?php
var_dump(IntlChar::hasBinaryProperty("A", IntlChar::PROPERTY_ALPHABETIC));
var_dump(IntlChar::hasBinaryProperty("A", IntlChar::PROPERTY_CASE_SENSITIVE));
var_dump(IntlChar::hasBinaryProperty("A", IntlChar::PROPERTY_BIDI_MIRRORED));
var_dump(IntlChar::hasBinaryProperty("[", IntlChar::PROPERTY_ALPHABETIC));
var_dump(IntlChar::hasBinaryProperty("[", IntlChar::PROPERTY_CASE_SENSITIVE));
var_dump(IntlChar::hasBinaryProperty("[", IntlChar::PROPERTY_BIDI_MIRRORED));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(true)
bool(false)
bool(false)
bool(false)
bool(true)

Voir aussi

  • IntlChar::getIntPropertyValue() - Get the value for a Unicode property for a code point
  • IntlChar::getUnicodeVersion() - Get the Unicode version


Check if code point is an alphanumeric character

  • « IntlChar::hasBinaryProperty
  • IntlChar::isalpha »
  • PHP Manual
  • IntlChar
  • Check if code point is an alphanumeric character

IntlChar::isalnum

(PHP 7, PHP 8)

IntlChar::isalnum — Check if code point is an alphanumeric character

Description

public static IntlChar::isalnum(int|string $codepoint): ?bool

Determines whether the specified code point is an alphanumeric character (letter or digit). true for characters with general categories "L" (letters) and "Nd" (decimal digit numbers).

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns true if codepoint is an alphanumeric character, false if not. Returns null on failure.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::isalnum("A"));
var_dump(IntlChar::isalnum("1"));
var_dump(IntlChar::isalnum("\u{2603}"));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(true)
bool(false)

Voir aussi

  • IntlChar::isalpha() - Check if code point is a letter character
  • IntlChar::isdigit() - Check if code point is a digit character
  • ctype_alnum() - Vérifie qu'une chaîne est alphanumérique


Check if code point is a letter character

  • « IntlChar::isalnum
  • IntlChar::isbase »
  • PHP Manual
  • IntlChar
  • Check if code point is a letter character

IntlChar::isalpha

(PHP 7, PHP 8)

IntlChar::isalpha — Check if code point is a letter character

Description

public static IntlChar::isalpha(int|string $codepoint): ?bool

Determines whether the specified code point is a letter character. true for general categories "L" (letters).

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns true if codepoint is a letter character, false if not. Returns null on failure.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::isalpha("A"));
var_dump(IntlChar::isalpha("1"));
var_dump(IntlChar::isalpha("\u{2603}"));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)
bool(false)

Voir aussi

  • IntlChar::isalnum() - Check if code point is an alphanumeric character
  • IntlChar::isdigit() - Check if code point is a digit character
  • ctype_alpha() - Vérifie qu'une chaîne est alphabétique


Check if code point is a base character

  • « IntlChar::isalpha
  • IntlChar::isblank »
  • PHP Manual
  • IntlChar
  • Check if code point is a base character

IntlChar::isbase

(PHP 7, PHP 8)

IntlChar::isbase — Check if code point is a base character

Description

public static IntlChar::isbase(int|string $codepoint): ?bool

Determines whether the specified code point is a base character. true for general categories "L" (letters), "N" (numbers), "Mc" (spacing combining marks), and "Me" (enclosing marks).

Note:

This is different from the Unicode definition in chapter 3.5, conformance clause D13, which defines base characters to be all characters (not Cn) that do not graphically combine with preceding characters (M) and that are neither control (Cc) or format (Cf) characters.

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns true if codepoint is a base character, false if not. Returns null on failure.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::isbase("A"));
var_dump(IntlChar::isbase("1"));
var_dump(IntlChar::isbase("\u{2603}"));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(true)
bool(false)

Voir aussi

  • IntlChar::isalpha() - Check if code point is a letter character
  • IntlChar::isdigit() - Check if code point is a digit character


Check if code point is a "blank" or "horizontal space" character

  • « IntlChar::isbase
  • IntlChar::iscntrl »
  • PHP Manual
  • IntlChar
  • Check if code point is a "blank" or "horizontal space" character

IntlChar::isblank

(PHP 7, PHP 8)

IntlChar::isblank — Check if code point is a "blank" or "horizontal space" character

Description

public static IntlChar::isblank(int|string $codepoint): ?bool

Determines whether the specified code point is a "blank" or "horizontal space", a character that visibly separates words on a line.

The following are equivalent definitions:

  • true for Unicode White_Space characters except for "vertical space controls" where "vertical space controls" are the following characters: U+000A (LF) U+000B (VT) U+000C (FF) U+000D (CR) U+0085 (NEL) U+2028 (LS) U+2029 (PS)
  • true for U+0009 (TAB) and characters with general category "Zs" (space separators) except Zero Width Space (ZWSP, U+200B).

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns true if codepoint is either a "blank" or "horizontal space" character, false if not. Returns null on failure.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::isblank("A"));
var_dump(IntlChar::isblank(" "));
var_dump(IntlChar::isblank("\t"));
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)
bool(true)

Voir aussi

  • IntlChar::isspace() - Check if code point is a space character
  • IntlChar::isJavaSpaceChar() - Check if code point is a space character according to Java
  • IntlChar::isUWhiteSpace() - Check if code point has the White_Space Unicode property
  • IntlChar::isWhitespace() - Check if code point is a whitespace character according to ICU


Check if code point is a control character

  • « IntlChar::isblank
  • IntlChar::isdefined »
  • PHP Manual
  • IntlChar
  • Check if code point is a control character

IntlChar::iscntrl

(PHP 7, PHP 8)

IntlChar::iscntrl — Check if code point is a control character

Description

public static IntlChar::iscntrl(int|string $codepoint): ?bool

Determines whether the specified code point is a control character.

A control character is one of the following:

  • ISO 8-bit control character (U+0000..U+001f and U+007f..U+009f)
  • IntlChar::CHAR_CATEGORY_CONTROL_CHAR (Cc)
  • IntlChar::CHAR_CATEGORY_FORMAT_CHAR (Cf)
  • IntlChar::CHAR_CATEGORY_LINE_SEPARATOR (Zl)
  • IntlChar::CHAR_CATEGORY_PARAGRAPH_SEPARATOR (Zp)

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns true if codepoint is a control character, false if not. Returns null on failure.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::iscntrl("A"));
var_dump(IntlChar::iscntrl(" "));
var_dump(IntlChar::iscntrl("\n"));
var_dump(IntlChar::iscntrl("\u{200e}"));
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(false)
bool(true)
bool(true)

Voir aussi

  • IntlChar::isprint() - Check if code point is a printable character
  • IntlChar::PROPERTY_DEFAULT_IGNORABLE_CODE_POINT
  • ctype_cntrl() - Vérifie qu'un caractère est un caractère de contrôle


Check whether the code point is defined

  • « IntlChar::iscntrl
  • IntlChar::isdigit »
  • PHP Manual
  • IntlChar
  • Check whether the code point is defined

IntlChar::isdefined

(PHP 7, PHP 8)

IntlChar::isdefined — Check whether the code point is defined

Description

public static IntlChar::isdefined(int|string $codepoint): ?bool

Determines whether the specified code point is "defined", which usually means that it is assigned a character.

true for general categories other than "Cn" (other, not assigned).

Note:

Note that non-character code points (e.g., U+FDD0) are not "defined" (they are Cn), but surrogate code points are "defined" (Cs).

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns true if codepoint is a defined character, false if not. Returns null on failure.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::isdefined("A"));
var_dump(IntlChar::isdefined(" "));
var_dump(IntlChar::isdefined("\u{FDD0}"));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(true)
bool(false)

Voir aussi

  • IntlChar::isdigit() - Check if code point is a digit character
  • IntlChar::isalpha() - Check if code point is a letter character
  • IntlChar::isalnum() - Check if code point is an alphanumeric character
  • IntlChar::isupper() - Check if code point has the general category "Lu" (uppercase letter)
  • IntlChar::islower() - Check if code point is a lowercase letter
  • IntlChar::istitle() - Check if code point is a titlecase letter


Check if code point is a digit character

  • « IntlChar::isdefined
  • IntlChar::isgraph »
  • PHP Manual
  • IntlChar
  • Check if code point is a digit character

IntlChar::isdigit

(PHP 7, PHP 8)

IntlChar::isdigit — Check if code point is a digit character

Description

public static IntlChar::isdigit(int|string $codepoint): ?bool

Determines whether the specified code point is a digit character.

true for characters with general category "Nd" (decimal digit numbers). Beginning with Unicode 4, this is the same as testing for the Numeric_Type of Decimal.

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns true if codepoint is a digit character, false if not. Returns null on failure.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::isdigit("A"));
var_dump(IntlChar::isdigit("1"));
var_dump(IntlChar::isdigit("\t"));
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)
bool(false)

Voir aussi

  • IntlChar::isalpha() - Check if code point is a letter character
  • IntlChar::isalnum() - Check if code point is an alphanumeric character
  • IntlChar::isxdigit() - Check if code point is a hexadecimal digit
  • ctype_digit() - Vérifie qu'une chaîne est un entier


Check if code point is a graphic character

  • « IntlChar::isdigit
  • IntlChar::isIDIgnorable »
  • PHP Manual
  • IntlChar
  • Check if code point is a graphic character

IntlChar::isgraph

(PHP 7, PHP 8)

IntlChar::isgraph — Check if code point is a graphic character

Description

public static IntlChar::isgraph(int|string $codepoint): ?bool

Determines whether the specified code point is a "graphic" character (printable, excluding spaces).

true for all characters except those with general categories "Cc" (control codes), "Cf" (format controls), "Cs" (surrogates), "Cn" (unassigned), and "Z" (separators).

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns true if codepoint is a "graphic" character, false if not. Returns null on failure.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::isgraph("A"));
var_dump(IntlChar::isgraph("1"));
var_dump(IntlChar::isgraph("\u{2603}"));
var_dump(IntlChar::isgraph("\n"));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(true)
bool(true)
bool(false)

Voir aussi

  • ctype_graph() - Vérifie qu'une chaîne est imprimable


Check if code point is an ignorable character

  • « IntlChar::isgraph
  • IntlChar::isIDPart »
  • PHP Manual
  • IntlChar
  • Check if code point is an ignorable character

IntlChar::isIDIgnorable

(PHP 7, PHP 8)

IntlChar::isIDIgnorable — Check if code point is an ignorable character

Description

public static IntlChar::isIDIgnorable(int|string $codepoint): ?bool

Determines if the specified character should be regarded as an ignorable character in an identifier.

true for characters with general category "Cf" (format controls) as well as non-whitespace ISO controls (U+0000..U+0008, U+000E..U+001B, U+007F..U+009F).

Note:

Note that Unicode just recommends to ignore Cf (format controls).

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns true if codepoint is ignorable in identifiers, false if not. Returns null on failure.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::isIDIgnorable("A"));
var_dump(IntlChar::isIDIgnorable(" "));
var_dump(IntlChar::isIDIgnorable("\u{007F}"));
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(false)
bool(true)

Voir aussi

  • IntlChar::isIDStart() - Check if code point is permissible as the first character in an identifier
  • IntlChar::isIDPart() - Check if code point is permissible in an identifier
  • IntlChar::PROPERTY_DEFAULT_IGNORABLE_CODE_POINT


Check if code point is permissible in an identifier

  • « IntlChar::isIDIgnorable
  • IntlChar::isIDStart »
  • PHP Manual
  • IntlChar
  • Check if code point is permissible in an identifier

IntlChar::isIDPart

(PHP 7, PHP 8)

IntlChar::isIDPart — Check if code point is permissible in an identifier

Description

public static IntlChar::isIDPart(int|string $codepoint): ?bool

Determines if the specified character is permissible in an identifier.

true for characters with general categories "L" (letters), "Nl" (letter numbers), "Nd" (decimal digits), "Mc" and "Mn" (combining marks), "Pc" (connecting punctuation), and u_isIDIgnorable(c).

Note:

This is almost the same as Unicode's ID_Continue (IntlChar::PROPERTY_ID_CONTINUE) except that Unicode recommends to ignore Cf which is less than IntlChar::isIDIgnorable().

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns true if codepoint is the code point may occur in an identifier, false if not. Returns null on failure.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::isIDPart("A"));
var_dump(IntlChar::isIDPart("$"));
var_dump(IntlChar::isIDPart("\n"));
var_dump(IntlChar::isIDPart("\u{2603}"));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)
bool(false)
bool(false)

Voir aussi

  • IntlChar::isIDIgnorable() - Check if code point is an ignorable character
  • IntlChar::isIDStart() - Check if code point is permissible as the first character in an identifier
  • IntlChar::PROPERTY_ID_CONTINUE


Check if code point is permissible as the first character in an identifier

  • « IntlChar::isIDPart
  • IntlChar::isISOControl »
  • PHP Manual
  • IntlChar
  • Check if code point is permissible as the first character in an identifier

IntlChar::isIDStart

(PHP 7, PHP 8)

IntlChar::isIDStart — Check if code point is permissible as the first character in an identifier

Description

public static IntlChar::isIDStart(int|string $codepoint): ?bool

Determines if the specified character is permissible as the first character in an identifier according to Unicode (The Unicode Standard, Version 3.0, chapter 5.16 Identifiers).

true for characters with general categories "L" (letters) and "Nl" (letter numbers).

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns true if codepoint may start an identifier, false if not. Returns null on failure.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::isIDStart("A"));
var_dump(IntlChar::isIDStart("$"));
var_dump(IntlChar::isIDStart("\n"));
var_dump(IntlChar::isIDStart("\u{2603}"));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)
bool(false)
bool(false)

Voir aussi

  • IntlChar::isalpha() - Check if code point is a letter character
  • IntlChar::isIDPart() - Check if code point is permissible in an identifier
  • IntlChar::PROPERTY_ID_START


Check if code point is an ISO control code

  • « IntlChar::isIDStart
  • IntlChar::isJavaIDPart »
  • PHP Manual
  • IntlChar
  • Check if code point is an ISO control code

IntlChar::isISOControl

(PHP 7, PHP 8)

IntlChar::isISOControl — Check if code point is an ISO control code

Description

public static IntlChar::isISOControl(int|string $codepoint): ?bool

Determines whether the specified code point is an ISO control code.

true for U+0000..U+001f and U+007f..U+009f (general category "Cc").

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns true if codepoint is an ISO control code, false if not. Returns null on failure.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::isISOControl(" "));
var_dump(IntlChar::isISOControl("\n"));
var_dump(IntlChar::isISOControl("\u{200e}"));
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)
bool(false)

Voir aussi

  • IntlChar::iscntrl() - Check if code point is a control character


Check if code point is permissible in a Java identifier

  • « IntlChar::isISOControl
  • IntlChar::isJavaIDStart »
  • PHP Manual
  • IntlChar
  • Check if code point is permissible in a Java identifier

IntlChar::isJavaIDPart

(PHP 7, PHP 8)

IntlChar::isJavaIDPart — Check if code point is permissible in a Java identifier

Description

public static IntlChar::isJavaIDPart(int|string $codepoint): ?bool

Determines if the specified character is permissible in a Java identifier.

In addition to IntlChar::isIDPart(), true for characters with general category "Sc" (currency symbols).

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns true if codepoint may occur in a Java identifier, false if not. Returns null on failure.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::isJavaIDPart("A"));
var_dump(IntlChar::isJavaIDPart("$"));
var_dump(IntlChar::isJavaIDPart("\n"));
var_dump(IntlChar::isJavaIDPart("\u{2603}"));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(true)
bool(false)
bool(false)

Voir aussi

  • IntlChar::isIDIgnorable() - Check if code point is an ignorable character
  • IntlChar::isIDPart() - Check if code point is permissible in an identifier
  • IntlChar::isJavaIDStart() - Check if code point is permissible as the first character in a Java identifier
  • IntlChar::isalpha() - Check if code point is a letter character
  • IntlChar::isdigit() - Check if code point is a digit character


Check if code point is permissible as the first character in a Java identifier

  • « IntlChar::isJavaIDPart
  • IntlChar::isJavaSpaceChar »
  • PHP Manual
  • IntlChar
  • Check if code point is permissible as the first character in a Java identifier

IntlChar::isJavaIDStart

(PHP 7, PHP 8)

IntlChar::isJavaIDStart — Check if code point is permissible as the first character in a Java identifier

Description

public static IntlChar::isJavaIDStart(int|string $codepoint): ?bool

Determines if the specified character is permissible as the start of a Java identifier.

In addition to IntlChar::isIDStart(), true for characters with general categories "Sc" (currency symbols) and "Pc" (connecting punctuation).

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns true if codepoint may start a Java identifier, false if not. Returns null on failure.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::isJavaIDStart("A"));
var_dump(IntlChar::isJavaIDStart("$"));
var_dump(IntlChar::isJavaIDStart("\n"));
var_dump(IntlChar::isJavaIDStart("\u{2603}"));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(true)
bool(false)
bool(false)

Voir aussi

  • IntlChar::isIDStart() - Check if code point is permissible as the first character in an identifier
  • IntlChar::isJavaIDPart() - Check if code point is permissible in a Java identifier
  • IntlChar::isalpha() - Check if code point is a letter character


Check if code point is a space character according to Java

  • « IntlChar::isJavaIDStart
  • IntlChar::islower »
  • PHP Manual
  • IntlChar
  • Check if code point is a space character according to Java

IntlChar::isJavaSpaceChar

(PHP 7, PHP 8)

IntlChar::isJavaSpaceChar — Check if code point is a space character according to Java

Description

public static IntlChar::isJavaSpaceChar(int|string $codepoint): ?bool

Determine if the specified code point is a space character according to Java.

true for characters with general categories "Z" (separators), which does not include control codes (e.g., TAB or Line Feed).

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns true if codepoint is a space character according to Java, false if not. Returns null on failure.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::isJavaSpaceChar("A"));
var_dump(IntlChar::isJavaSpaceChar(" "));
var_dump(IntlChar::isJavaSpaceChar("\n"));
var_dump(IntlChar::isJavaSpaceChar("\t"));
var_dump(IntlChar::isJavaSpaceChar("\u{00A0}"));
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)
bool(false)
bool(false)
bool(true)

Voir aussi

  • IntlChar::isspace() - Check if code point is a space character
  • IntlChar::isWhitespace() - Check if code point is a whitespace character according to ICU
  • IntlChar::isUWhiteSpace() - Check if code point has the White_Space Unicode property


Check if code point is a lowercase letter

  • « IntlChar::isJavaSpaceChar
  • IntlChar::isMirrored »
  • PHP Manual
  • IntlChar
  • Check if code point is a lowercase letter

IntlChar::islower

(PHP 7, PHP 8)

IntlChar::islower — Check if code point is a lowercase letter

Description

public static IntlChar::islower(int|string $codepoint): ?bool

Determines whether the specified code point has the general category "Ll" (lowercase letter).

Note:

This misses some characters that are also lowercase but have a different general category value. In order to include those, use IntlChar::isULowercase().

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns true if codepoint is an Ll lowercase letter, false if not. Returns null on failure.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::islower("A"));
var_dump(IntlChar::islower("a"));
var_dump(IntlChar::islower("F"));
var_dump(IntlChar::islower("f"));
var_dump(IntlChar::islower("1"));
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)
bool(false)
bool(true)
bool(false)

Voir aussi

  • IntlChar::isupper() - Check if code point has the general category "Lu" (uppercase letter)
  • IntlChar::istitle() - Check if code point is a titlecase letter
  • IntlChar::tolower() - Make Unicode character lowercase
  • IntlChar::toupper() - Make Unicode character uppercase
  • IntlChar::PROPERTY_LOWERCASE
  • ctype_lower() - Vérifie qu'une chaîne est en minuscules


Check if code point has the Bidi_Mirrored property

  • « IntlChar::islower
  • IntlChar::isprint »
  • PHP Manual
  • IntlChar
  • Check if code point has the Bidi_Mirrored property

IntlChar::isMirrored

(PHP 7, PHP 8)

IntlChar::isMirrored — Check if code point has the Bidi_Mirrored property

Description

public static IntlChar::isMirrored(int|string $codepoint): ?bool

Determines whether the code point has the Bidi_Mirrored property.

This property is set for characters that are commonly used in Right-To-Left contexts and need to be displayed with a "mirrored" glyph.

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns true if codepoint has the Bidi_Mirrored property, false if not. Returns null on failure.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::isMirrored("A"));
var_dump(IntlChar::isMirrored("<"));
var_dump(IntlChar::isMirrored("("));
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)
bool(true)

Voir aussi

  • IntlChar::charMirror() - Get the "mirror-image" character for a code point
  • IntlChar::PROPERTY_BIDI_MIRRORED


Check if code point is a printable character

  • « IntlChar::isMirrored
  • IntlChar::ispunct »
  • PHP Manual
  • IntlChar
  • Check if code point is a printable character

IntlChar::isprint

(PHP 7, PHP 8)

IntlChar::isprint — Check if code point is a printable character

Description

public static IntlChar::isprint(int|string $codepoint): ?bool

Determines whether the specified code point is a printable character.

true for general categories other than "C" (controls).

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns true if codepoint is a printable character, false if not. Returns null on failure.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::isprint("A"));
var_dump(IntlChar::isprint(" "));
var_dump(IntlChar::isprint("\n"));
var_dump(IntlChar::isprint("\u{200e}"));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(true)
bool(false)
bool(false)

Voir aussi

  • IntlChar::iscntrl() - Check if code point is a control character
  • IntlChar::PROPERTY_DEFAULT_IGNORABLE_CODE_POINT
  • ctype_print() - Vérifie qu'une chaîne est imprimable


Check if code point is punctuation character

  • « IntlChar::isprint
  • IntlChar::isspace »
  • PHP Manual
  • IntlChar
  • Check if code point is punctuation character

IntlChar::ispunct

(PHP 7, PHP 8)

IntlChar::ispunct — Check if code point is punctuation character

Description

public static IntlChar::ispunct(int|string $codepoint): ?bool

Determines whether the specified code point is a punctuation character.

true for characters with general categories "P" (punctuation).

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns true if codepoint is a punctuation character, false if not. Returns null on failure.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::ispunct("."));
var_dump(IntlChar::ispunct(","));
var_dump(IntlChar::ispunct("\n"));
var_dump(IntlChar::ispunct("$"));

L'exemple ci-dessus va afficher :

bool(true)
bool(true)
bool(false)
bool(false)

Voir aussi

  • ctype_punct() - Vérifie qu'une chaîne contient de la ponctuation


Check if code point is a space character

  • « IntlChar::ispunct
  • IntlChar::istitle »
  • PHP Manual
  • IntlChar
  • Check if code point is a space character

IntlChar::isspace

(PHP 7, PHP 8)

IntlChar::isspace — Check if code point is a space character

Description

public static IntlChar::isspace(int|string $codepoint): ?bool

Determines if the specified character is a space character or not.

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns true if codepoint is a space character, false if not. Returns null on failure.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::isspace("A"));
var_dump(IntlChar::isspace(" "));
var_dump(IntlChar::isspace("\n"));
var_dump(IntlChar::isspace("\t"));
var_dump(IntlChar::isspace("\u{00A0}"));
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)
bool(true)
bool(true)
bool(true)

Voir aussi

  • IntlChar::isJavaSpaceChar() - Check if code point is a space character according to Java
  • IntlChar::isWhitespace() - Check if code point is a whitespace character according to ICU
  • IntlChar::isUWhiteSpace() - Check if code point has the White_Space Unicode property
  • ctype_space() - Vérifie qu'une chaîne n'est faite que de caractères blancs


Check if code point is a titlecase letter

  • « IntlChar::isspace
  • IntlChar::isUAlphabetic »
  • PHP Manual
  • IntlChar
  • Check if code point is a titlecase letter

IntlChar::istitle

(PHP 7, PHP 8)

IntlChar::istitle — Check if code point is a titlecase letter

Description

public static IntlChar::istitle(int|string $codepoint): ?bool

Determines whether the specified code point is a titlecase letter.

true for general category "Lt" (titlecase letter).

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns true if codepoint is a titlecase letter, false if not. Returns null on failure.

Exemples

Exemple #1 Test de différents codepoint

<?php
// Latin Capital Letter Dz with Caron U+01C4
var_dump(IntlChar::istitle("?"));
// Latin Capital Letter D with Small Letter Z with Caron U+01C5
var_dump(IntlChar::istitle("?"));
// Latin Small Letter Dz with Caron U+01C6
var_dump(IntlChar::istitle("?"));

// Greek Capital Letter Alpha with Prosgegrammeni U+1FBC
var_dump(IntlChar::istitle("?"));
// Greek Small Letter Alpha with Ypogegrammeni U+1FB3
var_dump(IntlChar::istitle("?"));
// Greek Capital Letter Alpha U+0391
var_dump(IntlChar::istitle("?"));
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)
bool(false)
bool(true)
bool(false)
bool(false)

Voir aussi

  • IntlChar::isupper() - Check if code point has the general category "Lu" (uppercase letter)
  • IntlChar::islower() - Check if code point is a lowercase letter
  • IntlChar::totitle() - Make Unicode character titlecase


Check if code point has the Alphabetic Unicode property

  • « IntlChar::istitle
  • IntlChar::isULowercase »
  • PHP Manual
  • IntlChar
  • Check if code point has the Alphabetic Unicode property

IntlChar::isUAlphabetic

(PHP 7, PHP 8)

IntlChar::isUAlphabetic — Check if code point has the Alphabetic Unicode property

Description

public static IntlChar::isUAlphabetic(int|string $codepoint): ?bool

Check if a code point has the Alphabetic Unicode property.

This is the same as IntlChar::hasBinaryProperty($codepoint, IntlChar::PROPERTY_ALPHABETIC)

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns true if codepoint has the Alphabetic Unicode property, false if not. Returns null on failure.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::isUAlphabetic("A"));
var_dump(IntlChar::isUAlphabetic("1"));
var_dump(IntlChar::isUAlphabetic("\u{2603}"));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)
bool(false)

Voir aussi

  • IntlChar::isalpha() - Check if code point is a letter character
  • IntlChar::hasBinaryProperty() - Check a binary Unicode property for a code point
  • IntlChar::PROPERTY_ALPHABETIC


Check if code point has the Lowercase Unicode property

  • « IntlChar::isUAlphabetic
  • IntlChar::isupper »
  • PHP Manual
  • IntlChar
  • Check if code point has the Lowercase Unicode property

IntlChar::isULowercase

(PHP 7, PHP 8)

IntlChar::isULowercase — Check if code point has the Lowercase Unicode property

Description

public static IntlChar::isULowercase(int|string $codepoint): ?bool

Check if a code point has the Lowercase Unicode property.

This is the same as IntlChar::hasBinaryProperty($codepoint, IntlChar::PROPERTY_LOWERCASE)

Note:

This is different than IntlChar::islower() and will return true for more characters.

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns true if codepoint has the Lowercase Unicode property, false if not. Returns null on failure.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::isULowercase("A"));
var_dump(IntlChar::isULowercase("a"));
var_dump(IntlChar::isULowercase("F"));
var_dump(IntlChar::isULowercase("f"));
var_dump(IntlChar::isULowercase("1"));
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)
bool(false)
bool(true)
bool(false)

Voir aussi

  • IntlChar::islower() - Check if code point is a lowercase letter
  • IntlChar::hasBinaryProperty() - Check a binary Unicode property for a code point
  • IntlChar::PROPERTY_LOWERCASE


Check if code point has the general category "Lu" (uppercase letter)

  • « IntlChar::isULowercase
  • IntlChar::isUUppercase »
  • PHP Manual
  • IntlChar
  • Check if code point has the general category "Lu" (uppercase letter)

IntlChar::isupper

(PHP 7, PHP 8)

IntlChar::isupper — Check if code point has the general category "Lu" (uppercase letter)

Description

public static IntlChar::isupper(int|string $codepoint): ?bool

Determines whether the specified code point has the general category "Lu" (uppercase letter).

Note:

This misses some characters that are also uppercase but have a different general category value. In order to include those, use IntlChar::isUUppercase().

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns true if codepoint is an Lu uppercase letter, false if not. Returns null on failure.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::isupper("A"));
var_dump(IntlChar::isupper("a"));
var_dump(IntlChar::isupper("F"));
var_dump(IntlChar::isupper("f"));
var_dump(IntlChar::isupper("1"));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)
bool(true)
bool(false)
bool(false)

Voir aussi

  • IntlChar::islower() - Check if code point is a lowercase letter
  • IntlChar::istitle() - Check if code point is a titlecase letter
  • IntlChar::tolower() - Make Unicode character lowercase
  • IntlChar::toupper() - Make Unicode character uppercase
  • IntlChar::PROPERTY_UPPERCASE
  • ctype_upper() - Vérifie qu'une chaîne est en majuscules


Check if code point has the Uppercase Unicode property

  • « IntlChar::isupper
  • IntlChar::isUWhiteSpace »
  • PHP Manual
  • IntlChar
  • Check if code point has the Uppercase Unicode property

IntlChar::isUUppercase

(PHP 7, PHP 8)

IntlChar::isUUppercase — Check if code point has the Uppercase Unicode property

Description

public static IntlChar::isUUppercase(int|string $codepoint): ?bool

Check if a code point has the Uppercase Unicode property.

This is the same as IntlChar::hasBinaryProperty($codepoint, IntlChar::PROPERTY_UPPERCASE)

Note:

This is different than IntlChar::isupper() and will return true for more characters.

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns true if codepoint has the Uppercase Unicode property, false if not. Returns null on failure.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::isUUppercase("A"));
var_dump(IntlChar::isUUppercase("a"));
var_dump(IntlChar::isUUppercase("F"));
var_dump(IntlChar::isUUppercase("f"));
var_dump(IntlChar::isUUppercase("1"));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)
bool(true)
bool(false)
bool(false)

Voir aussi

  • IntlChar::isupper() - Check if code point has the general category "Lu" (uppercase letter)
  • IntlChar::hasBinaryProperty() - Check a binary Unicode property for a code point
  • IntlChar::PROPERTY_UPPERCASE


Check if code point has the White_Space Unicode property

  • « IntlChar::isUUppercase
  • IntlChar::isWhitespace »
  • PHP Manual
  • IntlChar
  • Check if code point has the White_Space Unicode property

IntlChar::isUWhiteSpace

(PHP 7, PHP 8)

IntlChar::isUWhiteSpace — Check if code point has the White_Space Unicode property

Description

public static IntlChar::isUWhiteSpace(int|string $codepoint): ?bool

Check if a code point has the White_Space Unicode property.

This is the same as IntlChar::hasBinaryProperty($codepoint, IntlChar::PROPERTY_WHITE_SPACE)

Note:

This is different from both IntlChar::isspace() and IntlChar::isWhitespace().

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns true if codepoint has the White_Space Unicode property, false if not. Returns null on failure.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::isUWhiteSpace("A"));
var_dump(IntlChar::isUWhiteSpace(" "));
var_dump(IntlChar::isUWhiteSpace("\n"));
var_dump(IntlChar::isUWhiteSpace("\t"));
var_dump(IntlChar::isUWhiteSpace("\u{00A0}"));
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)
bool(true)
bool(true)
bool(true)

Voir aussi

  • IntlChar::isspace() - Check if code point is a space character
  • IntlChar::isWhitespace() - Check if code point is a whitespace character according to ICU
  • IntlChar::isJavaSpaceChar() - Check if code point is a space character according to Java
  • IntlChar::hasBinaryProperty() - Check a binary Unicode property for a code point
  • IntlChar::PROPERTY_WHITE_SPACE


Check if code point is a whitespace character according to ICU

  • « IntlChar::isUWhiteSpace
  • IntlChar::isxdigit »
  • PHP Manual
  • IntlChar
  • Check if code point is a whitespace character according to ICU

IntlChar::isWhitespace

(PHP 7, PHP 8)

IntlChar::isWhitespace — Check if code point is a whitespace character according to ICU

Description

public static IntlChar::isWhitespace(int|string $codepoint): ?bool

Determines if the specified code point is a whitespace character according to ICU.

A character is considered to be a ICU whitespace character if and only if it satisfies one of the following criteria:

  • It is a Unicode Separator character (categories "Z" = "Zs" or "Zl" or "Zp"), but is not also a non-breaking space (U+00A0 NBSP or U+2007 Figure Space or U+202F Narrow NBSP).
  • It is U+0009 HORIZONTAL TABULATION.
  • It is U+000A LINE FEED.
  • It is U+000B VERTICAL TABULATION.
  • It is U+000C FORM FEED.
  • It is U+000D CARRIAGE RETURN.
  • It is U+001C FILE SEPARATOR.
  • It is U+001D GROUP SEPARATOR.
  • It is U+001E RECORD SEPARATOR.
  • It is U+001F UNIT SEPARATOR.

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns true if codepoint is a whitespace character according to ICU, false if not. Returns null on failure.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::iswhitespace("A"));
var_dump(IntlChar::iswhitespace(" "));
var_dump(IntlChar::iswhitespace("\n"));
var_dump(IntlChar::iswhitespace("\t"));
var_dump(IntlChar::iswhitespace("\u{00A0}"));
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)
bool(true)
bool(true)
bool(false)

Voir aussi

  • IntlChar::isspace() - Check if code point is a space character
  • IntlChar::isJavaSpaceChar() - Check if code point is a space character according to Java
  • IntlChar::isUWhiteSpace() - Check if code point has the White_Space Unicode property


Check if code point is a hexadecimal digit

  • « IntlChar::isWhitespace
  • IntlChar::ord »
  • PHP Manual
  • IntlChar
  • Check if code point is a hexadecimal digit

IntlChar::isxdigit

(PHP 7, PHP 8)

IntlChar::isxdigit — Check if code point is a hexadecimal digit

Description

public static IntlChar::isxdigit(int|string $codepoint): ?bool

Determines whether the specified code point is a hexadecimal digit.

true for characters with general category "Nd" (decimal digit numbers) as well as Latin letters a-f and A-F in both ASCII and Fullwidth ASCII. (That is, for letters with code points 0041..0046, 0061..0066, FF21..FF26, FF41..FF46.)

This is equivalent to IntlChar::digit($codepoint, 16) >= 0.

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns true if codepoint is a hexadecimal character, false if not. Returns null on failure.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::isxdigit("A"));
var_dump(IntlChar::isxdigit("1"));
var_dump(IntlChar::isxdigit("\u{2603}"));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(true)
bool(false)

Notes

Note:

In order to narrow the definition of hexadecimal digits to only ASCII characters use:

<?php
$isASCIIHexadecimal = IntlChar::ord($codepoint) <= 0x7F && IntlChar::isxdigit($codepoint);
?>

Voir aussi

  • IntlChar::isdigit() - Check if code point is a digit character
  • ctype_xdigit() - Vérifie qu'un caractère représente un nombre hexadécimal


Return Unicode code point value of character

  • « IntlChar::isxdigit
  • IntlChar::tolower »
  • PHP Manual
  • IntlChar
  • Return Unicode code point value of character

IntlChar::ord

(PHP 7, PHP 8)

IntlChar::ord — Return Unicode code point value of character

Description

public static IntlChar::ord(int|string $character): ?int

Returns the Unicode code point value of the given character.

This function complements IntlChar::chr().

Liste de paramètres

character

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns the Unicode code point value as an integer.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::ord("A"));
var_dump(IntlChar::ord(" "));
var_dump(IntlChar::ord("\u{2603}"));
?>

L'exemple ci-dessus va afficher :

int(65)
int(32)
int(9731)

Voir aussi

  • IntlChar::chr() - Return Unicode character by code point value
  • mb_ord() - Récupère le point de code Unicode d'un caractère
  • ord() - Convertit le premier octet d'une chaîne en une valeur entre 0 et 255


Make Unicode character lowercase

  • « IntlChar::ord
  • IntlChar::totitle »
  • PHP Manual
  • IntlChar
  • Make Unicode character lowercase

IntlChar::tolower

(PHP 7, PHP 8)

IntlChar::tolower — Make Unicode character lowercase

Description

public static IntlChar::tolower(int|string $codepoint): int|string|null

The given character is mapped to its lowercase equivalent. If the character has no lowercase equivalent, the original character itself is returned.

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns the Simple_Lowercase_Mapping of the code point, if any; otherwise the code point itself. Returns null on failure.

Le type retourné sera entier tant que le codepoint a été passé en une chaîne de type chaîne de caractères encodée en UTF-8, auquel cas, une chaîne de caractères est retournée. En cas d'échec, retourne null.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::tolower("A"));
var_dump(IntlChar::tolower("a"));
var_dump(IntlChar::tolower("F"));
var_dump(IntlChar::tolower("f"));
var_dump(IntlChar::tolower("1"));
var_dump(IntlChar::tolower(ord("A")));
var_dump(IntlChar::tolower(ord("a")));
?>

L'exemple ci-dessus va afficher :

string(1) "a"
string(1) "a"
string(2) "f"
string(2) "f"
string(1) "1"
int(97)
int(97)

Voir aussi

  • IntlChar::totitle() - Make Unicode character titlecase
  • IntlChar::toupper() - Make Unicode character uppercase
  • mb_strtolower() - Met tous les caractères en minuscules


Make Unicode character titlecase

  • « IntlChar::tolower
  • IntlChar::toupper »
  • PHP Manual
  • IntlChar
  • Make Unicode character titlecase

IntlChar::totitle

(PHP 7, PHP 8)

IntlChar::totitle — Make Unicode character titlecase

Description

public static IntlChar::totitle(int|string $codepoint): int|string|null

The given character is mapped to its titlecase equivalent. If the character has no titlecase equivalent, the original character itself is returned.

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns the Simple_Titlecase_Mapping of the code point, if any; otherwise the code point itself. Returns null on failure.

Le type retourné sera entier tant que le codepoint a été passé en une chaîne de type chaîne de caractères encodée en UTF-8, auquel cas, une chaîne de caractères est retournée. En cas d'échec, retourne null.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::totitle("?"));
var_dump(IntlChar::totitle("?"));
var_dump(IntlChar::totitle("F"));
var_dump(IntlChar::totitle("f"));
var_dump(IntlChar::totitle("1"));
var_dump(IntlChar::totitle("?");
var_dump(IntlChar::totitle(ord("A")));
?>

L'exemple ci-dessus va afficher :

string(1) "?"
string(1) "?"
string(2) "F"
string(2) "f"
string(1) "1"
string(1) "?"
int(65)

Voir aussi

  • IntlChar::tolower() - Make Unicode character lowercase
  • IntlChar::toupper() - Make Unicode character uppercase
  • IntlChar::istitle() - Check if code point is a titlecase letter
  • mb_convert_case() - Modifie la casse d'une chaîne


Make Unicode character uppercase

  • « IntlChar::totitle
  • IntlException »
  • PHP Manual
  • IntlChar
  • Make Unicode character uppercase

IntlChar::toupper

(PHP 7, PHP 8)

IntlChar::toupper — Make Unicode character uppercase

Description

public static IntlChar::toupper(int|string $codepoint): int|string|null

The given character is mapped to its uppercase equivalent. If the character has no uppercase equivalent, the character itself is returned.

Liste de paramètres

codepoint

La valeur codepoint de type entier (i.e. 0x2603 pour U+2603 SNOWMAN), ou le caractère encodé en UTF-8 de type chaîne de caractères (i.e. "\u{2603}")

Valeurs de retour

Returns the Simple_Uppercase_Mapping of the code point, if any; otherwise the code point itself.

Le type retourné sera entier tant que le codepoint a été passé en une chaîne de type chaîne de caractères encodée en UTF-8, auquel cas, une chaîne de caractères est retournée. En cas d'échec, retourne null.

Exemples

Exemple #1 Test de différents codepoint

<?php
var_dump(IntlChar::toupper("A"));
var_dump(IntlChar::toupper("a"));
var_dump(IntlChar::toupper("F"));
var_dump(IntlChar::toupper("f"));
var_dump(IntlChar::toupper("1"));
var_dump(IntlChar::toupper(ord("A")));
var_dump(IntlChar::toupper(ord("a")));
?>

L'exemple ci-dessus va afficher :

string(1) "A"
string(1) "A"
string(2) "F"
string(2) "F"
string(1) "1"
int(65)
int(65)

Voir aussi

  • IntlChar::tolower() - Make Unicode character lowercase
  • IntlChar::totitle() - Make Unicode character titlecase
  • mb_strtoupper() - Met tous les caractères en majuscules


Exception class for intl errors

(PHP 5 > 5.5.0, PHP 7, PHP 8, 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

class IntlException extends Exception {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The IntlIterator class

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

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

class IntlIterator implements Iterator {
/* Méthodes */
public current(): mixed
public key(): mixed
public next(): void
public rewind(): void
public valid(): bool
}

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

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlIterator::current — Récupère l'élément courant

Description

public IntlIterator::current(): mixed

Avertissement

Cette fonction est actuellement non documentée ; 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

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlIterator::key — Récupère la clé courante

Description

public IntlIterator::key(): mixed

Avertissement

Cette fonction est actuellement non documentée ; 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

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlIterator::next — Se déplace sur l'élément suivant

Description

public IntlIterator::next(): void

Avertissement

Cette fonction est actuellement non documentée ; 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

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlIterator::rewind — Re-positionne l'itérateur au premier élément

Description

public IntlIterator::rewind(): void

Avertissement

Cette fonction est actuellement non documentée ; 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

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

IntlIterator::valid — Vérifie si la position courant est valide

Description

public IntlIterator::valid(): bool

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8, PECL intl >= 1.0.0)

intl_error_name — Lit le nom symbolique d'un code d'erreur donné

Description

intl_error_name(int $errorCode): string

Retourne le nom du code d'erreur ICU.

Liste de paramètres

errorCode

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 ) );
?>

Résultat de l'exemple ci-dessus est 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, PHP 8, PECL intl >= 1.0.0)

intl_get_error_code — Lit le dernier code d'erreur

Description

intl_get_error_code(): int

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8, PECL intl >= 1.0.0)

intl_get_error_message — Lit la description de la dernière erreur

Description

intl_get_error_message(): string

Lit le message d'erreur de la dernière fonction d'internationalisation appelée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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 multioctets »
  • PHP Manual
  • Fonctions intl
  • Vérifie si un code d'erreur indique un échec

intl_is_failure

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

intl_is_failure — Vérifie si un code d'erreur indique un échec

Description

intl_is_failure(int $errorCode): bool

Liste de paramètres

errorCode

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 );
?>

Résultat de l'exemple ci-dessus est 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 multioctets

  • 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 multioctets en PHP
  • Prérequis de l'encodage en PHP
  • Fonctions sur les chaînes de caractères multioctets
    • mb_check_encoding — Vérifie si les chaînes sont valide pour l'encodage spécifié
    • mb_chr — Retourne un caractère par sa valeur de point de code Unicode
    • mb_convert_case — Modifie la casse d'une chaîne
    • mb_convert_encoding — Convertir une chaîne d'un codage de caractères à un autre
    • 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 MIME
    • 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 multioctets
    • 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 régulières
    • 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 multioctets qui correspond au masque
    • mb_ereg_search_init — Configure les chaînes et les expressions régulières pour le support des caractères multioctets
    • 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 multioctets
    • mb_ereg_search_setpos — Choisit le point de départ de la recherche par expression rationnelle
    • mb_ereg_search — Recherche par expression rationnelle multioctets
    • mb_ereg — Recherche par expression rationnelle avec support des caractères multioctets
    • mb_eregi_replace — Expression rationnelle avec support des caractères multioctets, sans tenir compte de la casse
    • mb_eregi — Expression rationnelle insensible à la casse avec le support des caractères multioctets
    • 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 — Définit/Récupère le langage courant
    • mb_list_encodings — Retourne un tableau contenant tous les encodages supportés
    • mb_ord — Récupère le point de code Unicode d'un caractère
    • 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 régulières multioctets
    • mb_regex_set_options — Lit et modifie les options des fonctions d'expression rationnelle à support de caractères multioctets
    • mb_scrub — Remplacez les séquences d'octets mal formées par le caractère de substitution.
    • mb_send_mail — Envoie un mail encodé
    • mb_split — Scinde une chaîne en tableau avec une expression rationnelle multioctets
    • mb_str_pad — Pad a multibyte string to a certain length with another multibyte string
    • mb_str_split — Pour une chaîne multi-octets donnée, renvoie un tableau de ses caractères
    • 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 — Définit/Récupère 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 multioctets ont été développées pour résoudre ce type de problème.

Lorsque vous manipulez des chaînes de caractères multioctets, 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 multioctets 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 (listés dans Encodages de caractères pris en charge).


Installation

mbstring est une extension PHP. L'extension doit être activé avec l'option configure. Voir la section installation pour plus de détails.

Les options de configurations suivantes sont liées à l'extension 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. Antérieur à PHP 7.3.0, si libmbfl est déjà installé sur le système, --with-libmbfl[=DIR] peut être spécifié pour utiliser la bibliothèque installée.

  • --disable-mbregex : Désactive les fonctions d'expression régulières avec le support de caractère multioctets.

    Oniguruma est nécessaire pour les fonctions d'expression régulière avec le support de caractère multioctets. À partir de PHP 7.4.0, pkg-config est utilisé pour détecter la bibliothèque libonig. Antérieur à PHP 7.4.0, Oniguruma était inclue avec mbstring, mais il était possible de compiler contre une version de libonig déjà installé en passant --with-onig[=DIR].

    Il est possible de désactiver la vérification du backtrack (retour sur ses pas) des regex multioctets en spécifiant --disable-mbregex-backtrack.


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" | INI_ALL |
mbstring.detect_order | NULL | INI_ALL |
mbstring.http_input | "pass" | INI_ALL | Obsolète
mbstring.http_output | "pass" | INI_ALL | Obsolète
mbstring.internal_encoding | NULL | INI_ALL | Obsolète
mbstring.substitute_character | NULL | INI_ALL |
mbstring.func_overload | "0" | INI_SYSTEM | Obsolète à partir de PHP 7.2.0; supprimée à partir de PHP 8.0.0.
mbstring.encoding_translation | "0" | INI_PERDIR |
mbstring.http_output_conv_mimetypes | "^(text/|application/xhtml\+xml)" | INI_ALL |
mbstring.strict_detection | "0" | INI_ALL |
mbstring.regex_retry_limit | "1000000" | INI_ALL | Disponible à partir de PHP 7.4.0.
mbstring.regex_stack_limit | "100000" | INI_ALL | Disponible à partir de PHP 7.3.5.
Pour plus de détails sur les modes INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

mbstring.language string

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

Active la détection et la traduction des données d'entrées HTTP vers le codage interne mbstring.

mbstring.internal_encoding string
Avertissement

Cette fonctionnalité obsolète sera certainement supprimée dans le futur.

Définit l'encodage interne par défaut.

Les utilisateurs devraient laisser cette option vide et définir plutôt l'option default_charset.

mbstring.http_input string
Avertissement

Cette fonctionnalité obsolète sera certainement supprimée dans le futur.

Définit l'encodage de réception HTTP par défaut.

Les utilisateurs devraient laisser cette option vide et définir plutôt l'option default_charset.

mbstring.http_output string
Avertissement

Cette fonctionnalité obsolète sera certainement supprimée dans le futur.

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 devraient laisser vide cette option et définir plutôt l'option default_charset.

mbstring.detect_order string

Définit l'ordre de détection des encodages par défaut. Voir aussi mb_detect_order().

mbstring.substitute_character string

Définit l'encodage de substitution par défaut : il est utilisé pour les caractères invalides. Voir mb_substitute_character() pour les valeurs supportées.

mbstring.func_overload string
Avertissement

Cette fonctionnalité est OBSOLÈTE à partir de PHP 7.2.0, et SUPPRIMÉE à partir de PHP 8.0.0. Dépendre de cette fonctionnalité est fortement déconseillé.

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.http_output_conv_mimetypes string

mbstring.strict_detection bool

Active la détection stricte de l'encodage. Voir mb_detect_encoding() pour une description et des exemples.

mbstring.regex_retry_limit int

Limite la quantité de retour en arrière qui peut être effectuée pendant une correspondance mbregex.

Ce paramètre ne prend effet que lors de la liaison avec oniguruma >= 6.8.0.

mbstring.regex_stack_limit int

Limite la profondeur de la pile des expressions régulières mbstring.

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 (int)
Supprimée à partir de PHP 8.0.0.
MB_OVERLOAD_STRING (int)
Supprimée à partir de PHP 8.0.0.
MB_OVERLOAD_REGEX (int)
Supprimée à partir de PHP 8.0.0.
MB_CASE_UPPER (int)
Convertit tous les caractères en majuscule. Ceci modifie la longueur de la chaînes. C'est le mode utilisé par la fonction mb_strtoupper().
MB_CASE_LOWER (int)
Convertit tous les caractères en minuscule. Ceci modifie la longueur de la chaînes. C'est le mode utilisé par la fonction mb_strtolower().
MB_CASE_TITLE (int)
Réalise une conversion de la casse du titre, basé sur les propriétés unicode Cased et CaseIgnorable. En particulier, ceci améliore la gestion des guillemets, et des apostrophes. Ceci peut modifier la longueur de la chaînes.
MB_CASE_FOLD (int)
Réalise une conversion totale de la casse, qui supprime les distinctions dûes à la casse dans la chaîne. Ceci est utilisé pour réaliser des correspondances insensible à la casse. Ceci peut modifier la longueur de la chaîne. Disponible depuis PHP 7.3.
MB_CASE_LOWER_SIMPLE (int)
Réalise une conversion simple en minuscule. Ceci ne modifie pas la longueur de la chaîne de caractères. Disponible à partir de PHP 7.3.
MB_CASE_UPPER_SIMPLE (int)
Réalise une conversion simple en majuscule. Ceci ne modifie pas la longueur de la chaîne de caractères. Disponible à partir de PHP 7.3.
MB_CASE_TITLE_SIMPLE (int)
Réalise une conversion simple du titre. Ceci ne modifie pas la longueur de la chaîne. Disponible à partir de PHP 7.3.
MB_CASE_FOLD_SIMPLE (int)
Réalise une conversion de la casse simple, qui supprime les distinctions de casse présentes dans la chaîne. Ceci est utilisé pour la correspondance insensible à la casse. Ceci ne modifie pas la longueur de la chaîne. Utilisé pour les opérations insensibles à la casse, en interne par l'extension MBString. Disponible à partir de PHP 7.3.
MB_ONIGURUMA_VERSION (string)
La version de Oniguruma, par exemple 6.9.4. Disponible à partir de PHP 7.4.


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 big endian.
UTF-16LE | Unicode | Voir ci-dessus. | Contrairement à UTF-16, les chaînes sont supposées être au format little 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 |  |  |
ISO-8859-16 |  |  |
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 |  |  |
KOI8-U |  |  |


Cas des caractères japonais

Les caractères japonais ne peuvent être représentés qu'avec des encodages multioctets 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 multioctets 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.
  • Les emojis 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:

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
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*
  • ISO-8859-16*
  • byte2be
  • byte2le
  • byte4be
  • byte4le
  • BASE64
  • HTML-ENTITIES (alias: HTML)
  • 7bit
  • 8bit
  • EUC-CN*
  • CP936
  • GB18030
  • HZ
  • EUC-TW*
  • CP950
  • BIG-5*
  • EUC-KR*
  • UHC (alias: CP949)
  • ISO-2022-KR
  • Windows-1251 (alias: CP1251)
  • Windows-1252 (alias: CP1252)
  • CP866 (alias: IBM866)
  • KOI8-R*
  • KOI8-U*
  • ArmSCII-8 (alias: ArmSCII8)

* : encodages également utilisables dans les expressions régulières.

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 multioctets en PHP

Avertissement

Cette fonctionnalité est OBSOLÈTE à partir de PHP 7.2.0, et SUPPRIMÉE à partir de PHP 8.0.0. Dépendre de cette fonctionnalité est fortement déconseillé.

Vous pourriez trouver difficile de faire fonctionner une application PHP existante dans un environnement multioctets. 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 multioctets.

Mbstring supporte aussi la surcharge de fonctions, pour permettre le support des chaînes multioctets 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éfini à 1 pour surcharger la fonction mail(), 2 pour les fonctions de chaînes, 4 pour les fonctions d'expression régulières. 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()

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 multioctets :

    • 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 multioctets

Références

Les jeux de caractères multioctets 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

    » https://resources.oreilly.com/examples/9781565922242/blob/master/doc/cjk.inf

Sommaire

  • mb_check_encoding — Vérifie si les chaînes sont valide pour l'encodage spécifié
  • mb_chr — Retourne un caractère par sa valeur de point de code Unicode
  • mb_convert_case — Modifie la casse d'une chaîne
  • mb_convert_encoding — Convertir une chaîne d'un codage de caractères à un autre
  • 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 MIME
  • 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 multioctets
  • 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 régulières
  • 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 multioctets qui correspond au masque
  • mb_ereg_search_init — Configure les chaînes et les expressions régulières pour le support des caractères multioctets
  • 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 multioctets
  • mb_ereg_search_setpos — Choisit le point de départ de la recherche par expression rationnelle
  • mb_ereg_search — Recherche par expression rationnelle multioctets
  • mb_ereg — Recherche par expression rationnelle avec support des caractères multioctets
  • mb_eregi_replace — Expression rationnelle avec support des caractères multioctets, sans tenir compte de la casse
  • mb_eregi — Expression rationnelle insensible à la casse avec le support des caractères multioctets
  • 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 — Définit/Récupère le langage courant
  • mb_list_encodings — Retourne un tableau contenant tous les encodages supportés
  • mb_ord — Récupère le point de code Unicode d'un caractère
  • 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 régulières multioctets
  • mb_regex_set_options — Lit et modifie les options des fonctions d'expression rationnelle à support de caractères multioctets
  • mb_scrub — Remplacez les séquences d'octets mal formées par le caractère de substitution.
  • mb_send_mail — Envoie un mail encodé
  • mb_split — Scinde une chaîne en tableau avec une expression rationnelle multioctets
  • mb_str_pad — Pad a multibyte string to a certain length with another multibyte string
  • mb_str_split — Pour une chaîne multi-octets donnée, renvoie un tableau de ses caractères
  • 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 — Définit/Récupère 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 les chaînes sont valide pour l'encodage spécifié

  • « Fonctions sur les chaînes de caractères multioctets
  • mb_chr »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multioctets
  • Vérifie si les chaînes sont valide pour l'encodage spécifié

mb_check_encoding

(PHP 4 >= 4.4.3, PHP 5 >= 5.1.3, PHP 7, PHP 8)

mb_check_encoding — Vérifie si les chaînes sont valide pour l'encodage spécifié

Description

mb_check_encoding(array|string|null $value = null, ?string $encoding = null): bool

Vérifie si le flux d'octets est valide pour l'encodage spécifique. Si value est de type tableau, toutes les clés et les valeurs sont validées de manière récursive. Il est utile pour prévenir ce que l'on appelle « l'attaque par encodage invalide ».

Liste de paramètres

value

Le flux d'octets ou tableau à vérifier. Si elle est omise, cette fonction vérifie toutes les entrées depuis le début de la requête.

Avertissement

À partir de PHP 8.1.0, l'omission de ce paramètre ou le passage de null est obsolète.

encoding

Encodage attendu.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | L'appel de cette fonction avec null comme value ou sans argument est obsolète.
8.0.0 | value et encoding sont désormais nullable.
7.2.0 | Cette fonction accepte maintenant également un tableau comme valeur de value. Auparavant, seules les chaîne de caractères était prises en charge.


Retourne un caractère par sa valeur de point de code Unicode

  • « mb_check_encoding
  • mb_convert_case »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multioctets
  • Retourne un caractère par sa valeur de point de code Unicode

mb_chr

(PHP 7 >= 7.2.0, PHP 8)

mb_chr — Retourne un caractère par sa valeur de point de code Unicode

Description

mb_chr(int $codepoint, ?string $encoding = null): string|false

Retourne une chaîne contenant le caractère spécifié par la valeur du point de code Unicode, encodé dans l'encodage spécifié.

Cette fonction complémente mb_ord().

Liste de paramètres

codepoint

Une valeur de point de code Unicode, e.g. 128024 pour U+1F418 ELEPHANT

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis ou null, l'encodage de caractères interne sera utilisé.

Valeurs de retour

Une chaîne contenant le caractère demandé, si il peut être représenté dans l'encodage spécifié ou false si une erreur survient.

Historique

Version | Description
8.0.0 | encoding est désormais nullable.

Exemples

Exemple #1 Test de différents codepoint

<?php
$values = [65, 63, 0x20AC, 128024];
foreach ($values as $value) {
var_dump(mb_chr($value, 'UTF-8'));
var_dump(mb_chr($value, 'ISO-8859-1'));
}
?>

L'exemple ci-dessus va afficher :

string(1) "A"
string(1) "A"
string(1) "?"
string(1) "?"
string(3) "€"
bool(false)
string(4) "??"
bool(false)

Voir aussi

  • mb_internal_encoding() - Lit/modifie l'encodage interne
  • mb_ord() - Récupère le point de code Unicode d'un caractère
  • IntlChar::ord() - Return Unicode code point value of character
  • chr() - Générer une chaîne d'un octet à partir d'un nombre


Modifie la casse d'une chaîne

  • « mb_chr
  • mb_convert_encoding »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multioctets
  • Modifie la casse d'une chaîne

mb_convert_case

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

mb_convert_case — Modifie la casse d'une chaîne

Description

mb_convert_case(string $string, int $mode, ?string $encoding = null): string

Effectue la modification de la casse de la chaîne spécifiée, suivant le mode spécifié.

Liste de paramètres

string

La chaîne à convertir.

mode

Le mode de conversion. Peut être un parmi : MB_CASE_UPPER, MB_CASE_LOWER, MB_CASE_TITLE, MB_CASE_FOLD, MB_CASE_UPPER_SIMPLE, MB_CASE_LOWER_SIMPLE, MB_CASE_TITLE_SIMPLE, MB_CASE_FOLD_SIMPLE.

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis ou null, l'encodage de caractères interne sera utilisé.

Valeurs de retour

La chaîne dont la casse a été changée, suivant le mode fourni.

Historique

Version | Description
7.3.0 | Ajout du support de MB_CASE_FOLD, MB_CASE_UPPER_SIMPLE, MB_CASE_LOWER_SIMPLE, MB_CASE_TITLE_SIMPLE, et MB_CASE_FOLD_SIMPLE en tant que mode.

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
?>

Notes

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/reports/tr21/.

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


Convertir une chaîne d'un codage de caractères à un autre

  • « mb_convert_case
  • mb_convert_kana »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multioctets
  • Convertir une chaîne d'un codage de caractères à un autre

mb_convert_encoding

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_convert_encoding — Convertir une chaîne d'un codage de caractères à un autre

Description

mb_convert_encoding(array|string $string, string $to_encoding, array|string|null $from_encoding = null): array|string|false

Convertit la string à partir de from_encoding, ou l'encodage interne actuel, en to_encoding. optionnellement depuis from_encoding. Si string est un tableau, toutes ses valeurs chaîne de caractères seront convertit récursivement.

Liste de paramètres

string

La chaîne de caractères ou tableau à convertir.

to_encoding

L'encodage désiré du résultat.

from_encoding

L'encodage actuel utilisé pour interpréter la string. Plusieurs encodages peuvent être spécifiés sous forme de tableau (tableau) ou de liste séparée par des virgules. Dans ce cas, l'encodage correct sera deviné en utilisant le même algorithme que mb_detect_encoding().

Si from_encoding est omis ou null, le paramètre mbstring.internal_encoding sera utilisé s'il est défini, sinon le paramètre default_charset sera utilisé.

Voir encodages pris en charge pour les valeurs valides de to_encoding et from_encoding.

Valeurs de retour

La chaîne de caractères ou tableau encodé en cas de succès, ou false si une erreur survient.

Erreurs / Exceptions

À partir de PHP 8.0.0, une ValueError est lancée si la valeur de to_encoding ou from_encoding est un encodage invalide. Antérieur à PHP 8.0.0, une E_WARNING était émise à la place.

Historique

Version | Description
8.2.0 | mb_convert_encoding() ne renverra plus les encodages non textuels suivants : "Base64", "QPrint", "UUencode", "HTML entities", "7 bit" et "8 bit".
8.0.0 | mb_convert_encoding() lancera désormais une ValueError quand to_encoding est passé un encodage invalide.
8.0.0 | mb_convert_encoding() lancera désormais une ValueError quand from_encoding est passé un encodage invalide.
8.0.0 | from_encoding est désormais nullable.
7.2.0 | Cette fonction accepte désormais un tableau en tant que string. Auparavant, seulement les chaîne de caractères étaient supportées.

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");

/* Si mbstring.language est "Japanese", "auto" est étendu à "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
  • UConverter::transcode() - Convertit une chaîne d'un jeu de caractères à un autre
  • iconv() - Convertit une chaîne de caractères à partir d'un encodage vers un autre


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 multioctets
  • Convertit un "kana" en un autre ("zen-kaku", "han-kaku" et plus)

mb_convert_kana

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_convert_kana — Convertit un "kana" en un autre ("zen-kaku", "han-kaku" et plus)

Description

mb_convert_kana(string $string, string $mode = "KV", ?string $encoding = null): string

Effectue une conversion "han-kaku" - "zen-kaku" sur la chaîne string. Cette fonction est uniquement utile pour les japonais.

Liste de paramètres

string

La chaîne à convertir.

mode

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 ou null, l'encodage de caractères interne sera utilisé.

Valeurs de retour

La chaîne convertie.

Erreurs / Exceptions

Lance une ValueError si la combinaison de différents mode n'est pas valide. Par exemple "sS".

Historique

Version | Description
8.2.0 | Une ValueError est désormais lancée si la combinaison de différents modes n'est pas valide.
8.0.0 | encoding est désormais nullable.

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" alphanumérique 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 multioctets
  • Convertit l'encodage de variables

mb_convert_variables

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_convert_variables — Convertit l'encodage de variables

Description

mb_convert_variables(
string $to_encoding,
array|string $from_encoding,
mixed &$var,
mixed &...$vars
): string|false

Convertit l'encodage des variables var et 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.

var

var 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.

vars

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 multioctets
  • Décode un en-tête MIME

mb_decode_mimeheader

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_decode_mimeheader — Décode un en-tête MIME

Description

mb_decode_mimeheader(string $string): string

Décode la chaîne encodée string dans l'en-tête MIME.

Liste de paramètres

string

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 MIME


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 multioctets
  • Décode les entités HTML en caractères

mb_decode_numericentity

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_decode_numericentity — Décode les entités HTML en caractères

Description

mb_decode_numericentity(string $string, array $map, ?string $encoding = null): string

Convertit la chaîne d'entités HTML string en chaîne.

Liste de paramètres

string

La chaîne de caractères à décoder.

map

mapest un tableau qui spécifie les codes à convertir.

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis ou null, l'encodage de caractères interne sera utilisé.

is_hex

Ce paramètre est inutilisé.

Valeurs de retour

La chaîne de caractères convertie.

Historique

Version | Description
8.0.0 | encoding est désormais nullable.

Exemples

Exemple #1 Exemple avec map

<?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
?>

Exemple #2 L'exemple map échappe la chaîne JavaScript

<?php
function escape_javascript_string($str) {
$map = [
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,0,0, // 49
0,0,0,0,0,0,0,0,1,1,
1,1,1,1,1,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,1,1,1,1,1,1,0,0,0, // 99
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1, // 149
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1, // 199
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1, // 249
1,1,1,1,1,1,1, // 255
];
// L'encodage de char est UTF-8
$mblen = mb_strlen($str, 'UTF-8');
$utf32 = bin2hex(mb_convert_encoding($str, 'UTF-32', 'UTF-8'));
for ($i=0, $encoded=''; $i < $mblen; $i++) {
$u = substr($utf32, $i*8, 8);
$v = base_convert($u, 16, 10);
if ($v < 256 && $map[$v]) {
$encoded .= '\\x'.substr($u, 6,2);
} else if ($v == 2028) {
$encoded .= '\\u2028';
} else if ($v == 2029) {
$encoded .= '\\u2029';
} else {
$encoded .= mb_convert_encoding(hex2bin($u), 'UTF-8', 'UTF-32');
}
}
return $encoded;
}

// Données de tests
$convmap = [ 0x0, 0xffff, 0, 0xffff ];
$msg = '';
for ($i=0; $i < 1000; $i++) {
// chr() ne peut pas générer de données correctes UTF-8 plus grande valeur que 128, utilisez mb_decode_numericentity().
$msg .= mb_decode_numericentity('&#'.$i.';', $convmap, 'UTF-8');
}

// var_dump($msg);
var_dump(escape_javascript_string($msg));

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 multioctets
  • Détecte un encodage

mb_detect_encoding

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_detect_encoding — Détecte un encodage

Description

mb_detect_encoding(string $string, array|string|null $encodings = null, bool $strict = false): string|false

Détecte l'encodage le plus probable pour la chaîne de caractères string depuis une liste ordonnée de candidats.

La détection automatique du jeu d'encodage prévu n'est jamais totalement fiable ; sans information additionnelles, c'est similaire à décoder une chaîne chiffré sans la clé. Il est toujours préférable d'utiliser une indication du jeu d'encodage stocké ou transmis avec les données, tel que l'en-tête HTTP "Content-Type".

Cette fonction est le plus utilise avec les encodages multioctets, où pas toutes les séquences d'octets forment une chaîne valide. Si la chaîne d'entrée contient un telle séquence, cet encodage sera rejeté, et le prochain encodage sera vérifié.

Liste de paramètres

string

La string étant inspecté.

encodings

Une liste d'encodage de caractères à essayer, dans l'ordre. Cette liste peut être spécifier comme un tableau de chaîne de caractères, en tant qu'une chaîne de caractères unique séparé par des virgules.

Si encodings est omis ou null, le detect_order actuel (défini avec l'option de configuration mbstring.detect_order, ou la fonction mb_detect_order()) sera utilisé.

strict

Contrôle le comportement quand string n'est valide dans aucun des encodings listé. Si strict est défini à false, l'encodage qui correspond le plus sera retourné ; si strict est défini à true, false sera retourné.

La valeur par défaut de strict peut être définie avec l'option de configuration mbstring.strict_detection.

Valeurs de retour

L'encodage de caractère détecté, ou false si la chaîne n'est pas valide dans un seul des encodages listé.

Historique

Version | Description
8.2.0 | mb_detect_encoding() ne renverra plus les encodages non textuels suivants : "Base64", "QPrint", "UUencode", "HTML entities", "7 bit" et "8 bit".

Exemples

Exemple #1 Exemple avec mb_detect_encoding()

<?php
// Détecte l'encodage avec le detect_order actuel
echo mb_detect_encoding($str);

// "auto" est modifié selon mbstring.language
echo mb_detect_encoding($str, "auto");

// Spécifie le paramètre "encodings" avec une liste à virgules
echo mb_detect_encoding($str, "JIS, eucjp-win, sjis-win");

// Utilisation d'un tableau pour spécifie le paramètre "encodings"
$encodings = [
"ASCII",
"JIS",
"EUC-JP"
];
echo mb_detect_encoding($str, $encodings);
?>

Exemple #2 Effet du paramètre strict

<?php
// 'áéóú' encoded in ISO-8859-1
$str = "\xE1\xE9\xF3\xFA";

// The string is not valid ASCII or UTF-8, but UTF-8 is considered a closer match
var_dump(mb_detect_encoding($str, ['ASCII', 'UTF-8'], false));
var_dump(mb_detect_encoding($str, ['ASCII', 'UTF-8'], true));

// If a valid encoding is found, the strict parameter does not change the result
var_dump(mb_detect_encoding($str, ['ASCII', 'UTF-8', 'ISO-8859-1'], false));
var_dump(mb_detect_encoding($str, ['ASCII', 'UTF-8', 'ISO-8859-1'], true));
?>

L'exemple ci-dessus va afficher :

string(5) "UTF-8"
bool(false)
string(10) "ISO-8859-1"
string(10) "ISO-8859-1"

Dans certain cas, la même séquences d'octet peut former une chaîne valide dans différents encodages de caractères, et il est impossible de déterminer quelle interprétation était prévu. Un exemple, parmi tant d'autres, la séquence d'octets "\xC4\xA2" pourrait être :

  • "Ä¢" (U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS suivi de U+00A2 CENT SIGN) encodé dans un de ISO-8859-1, ISO-8859-15, ou Windows-1252
  • "??" (U+0424 CYRILLIC CAPITAL LETTER EF suivi de U+0402 CYRILLIC CAPITAL LETTER DJE) encodé en ISO-8859-5
  • "G" (U+0122 LATIN CAPITAL LETTER G WITH CEDILLA) encodé en UTF-8

Exemple #3 Effet de l'ordre quand plusieurs encodages correspondent

<?php
$str = "\xC4\xA2";

// The string is valid in all three encodings, so the first one listed will be returned
var_dump(mb_detect_encoding($str, ['UTF-8', 'ISO-8859-1', 'ISO-8859-5']));
var_dump(mb_detect_encoding($str, ['ISO-8859-1', 'ISO-8859-5', 'UTF-8']));
var_dump(mb_detect_encoding($str, ['ISO-8859-5', 'UTF-8', 'ISO-8859-1']));
?>

L'exemple ci-dessus va afficher :

string(5) "UTF-8"
string(10) "ISO-8859-1"
string(10) "ISO-8859-5"

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 multioctets
  • Lit/modifie l'ordre de détection des encodages

mb_detect_order

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_detect_order — Lit/modifie l'ordre de détection des encodages

Description

mb_detect_order(array|string|null $encoding = null): array|bool

Remplace l'ordre de détection des encodages courant par encoding.

Liste de paramètres

encoding

encoding est un tableau, ou une liste d'encodages séparés par une virgule. Voir les encodages supportés.

Si encoding est omis ou null, 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

Lors de la définition de l'ordre de détection de codage, true est retourné en cas de succès ou false en cas d'échec.

Lors de l'obtention de l'ordre de détection de l'encodage, un tableau ordonné des encodages est retourné.

Historique

Version | Description
8.0.0 | encoding est désormais nullable.

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 MIME

  • « mb_detect_order
  • mb_encode_numericentity »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multioctets
  • Encode une chaîne pour un en-tête MIME

mb_encode_mimeheader

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_encode_mimeheader — Encode une chaîne pour un en-tête MIME

Description

mb_encode_mimeheader(
string $string,
?string $charset = null,
?string $transfer_encoding = null,
string $newline = "\r\n",
int $indent = 0
): string

Encode une chaîne de caractères string donnée en un en-tête MIME.

Liste de paramètres

string

La chaîne de caractères à encoder. Son encodage devrait être identique à mb_internal_encoding().

charset

charset est le nom de l'encodage utilisé par la chaîne string. La valeur par défaut est déterminée par les paramètres courants du NLS (mbstring.language).

transfer_encoding

transfer_encoding est l'encodage de transfert. Il peut être "B" (Base64) ou "Q" (Quoted-Printable). Par défaut, c'est "B".

newline

newline 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 string).

Valeurs de retour

Une version convertie de la chaîne de caractères en ASCII.

Historique

Version | Description
8.0.0 | charset et transfer_encoding sont désormais nullable.

Exemples

Exemple #1 Exemple avec mb_encode_mimeheader()

<?php
$name = "??"; // kanji
$mbox = "kru";
$doma = "gtinn.mon";
$addr = '"' . addcslashes(mb_encode_mimeheader($name, "UTF-7", "Q"), '"') . '" <' . $mbox . "@" . $doma . ">";
echo $addr;
?>

L'exemple ci-dessus va afficher :

"=?UTF-7?Q?+WSqQzg-?=" <kru@gtinn.mon>

Notes

Note:

Cette fonction n'est pas conçue 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 multioctets
  • Encode les caractères en référence numérique HTML

mb_encode_numericentity

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_encode_numericentity — Encode les caractères en référence numérique HTML

Description

mb_encode_numericentity(
string $string,
array $map,
?string $encoding = null,
bool $hex = false
): string

Convertit les codes des caractères spécifiés de la chaîne de caractères string en référence numérique HTML.

Liste de paramètres

string

La chaîne de caractères à encoder.

map

map est un tableau qui spécifie les codes à convertir.

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis ou null, l'encodage de caractères interne sera utilisé.

hex

Si l'entité de référence retourné devrait être en notation hexadécimale (sinon il est en notation décimale).

Valeurs de retour

La chaîne de caractères convertie.

Historique

Version | Description
8.0.0 | encoding est désormais nullable.

Exemples

Exemple #1 Exemple avec map

<?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
?>

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 multioctets
  • Récupère les aliases d'un type d'encodage connu

mb_encoding_aliases

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

mb_encoding_aliases — Récupère les aliases d'un type d'encodage connu

Description

mb_encoding_aliases(string $encoding): array

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 d'alias d'encodage. ou false si une erreur survient

Erreurs / Exceptions

Lève une ValueError si encoding est inconnu.

Historique

Version | Description
8.0.0 | Si le paramètre encoding est inconnu, une ValueError est désormais levée ; précédemment, une E_WARNING était émise, et la fonction retournait false.

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";

}
?>

Résultat de l'exemple ci-dessus est 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 multioctets

  • « mb_encoding_aliases
  • mb_ereg_replace_callback »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multioctets
  • Expression rationnelle POSIX pour les chaînes multioctets

mb_ereg_match

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_ereg_match — Expression rationnelle POSIX pour les chaînes multioctets

Description

mb_ereg_match(string $pattern, string $string, ?string $options = null): bool

Exécute l'expression rationnelle POSIX pour les chaînes multioctets.

Note: pattern est uniquement associé au début de string.

Liste de paramètres

pattern

L'expression rationnelle.

string

La chaîne à évaluer.

options

L'option de recherche. Pour plus d'explications, consultez mb_regex_set_options().

Valeurs de retour

string retourne true si string vérifie l'expression rationnelle pattern, false sinon.

Historique

Version | Description
8.0.0 | options is nullable now.

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 régulières multioctets
  • mb_ereg() - Recherche par expression rationnelle avec support des caractères multioctets


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 multioctets
  • 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, PHP 8)

mb_ereg_replace_callback — Rechercher et remplacer par expression régulière avec support multi octets utilisant une fonction de callback

Description

mb_ereg_replace_callback(
string $pattern,
callable $callback,
string $string,
?string $options = null
): string|false|null

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ères string. 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.

options

L'option de recherche. Pour plus d'explications, consultez mb_regex_set_options().

Valeurs de retour

Retourne un string en cas de succès, ou false en cas d'erreur. Si string n'est pas valide pour l'encodage courant, null est retourné.

Historique

Version | Description
8.0.0 | options est désormais nullable.
7.1.0 | Cette fonction vérifie si string est valide pour l'encodage courant.

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() utilisant les fonctions anonymes

<?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);
?>

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 régulières multioctets
  • mb_ereg_replace() - Remplace des segments de chaîne à l'aide des expressions régulières
  • Fonctions anonymes


Remplace des segments de chaîne à l'aide des expressions régulières

  • « mb_ereg_replace_callback
  • mb_ereg_search_getpos »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multioctets
  • Remplace des segments de chaîne à l'aide des expressions régulières

mb_ereg_replace

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_ereg_replace — Remplace des segments de chaîne à l'aide des expressions régulières

Description

mb_ereg_replace(
string $pattern,
string $replacement,
string $string,
?string $options = null
): string|false|null

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 multi octets peuvent être utilisés dans pattern.

replacement

Le texte de remplacement.

string

La chaîne à analyser.

options
L'option de recherche. Pour plus d'explications, consultez mb_regex_set_options().

Valeurs de retour

La chaîne résultante en cas de succès, ou false si une erreur survient. Si string n'est pas valide pour l'encodage courant, null est retourné.

Historique

Version | Description
8.0.0 | options est désormais nullable.
7.1.0 | Cette fonction vérifie si string est valide pour l'encodage courant.
7.1.0 | Le modificateur e est désormais obsolète.

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 régulières multioctets
  • mb_eregi_replace() - Expression rationnelle avec support des caractères multioctets, 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 multioctets
  • 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, PHP 8)

mb_ereg_search_getpos — Retourne la position du début du prochain segment repéré par une expression rationnelle

Description

mb_ereg_search_getpos(): int

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 régulières multioctets
  • mb_ereg_search_setpos() - Choisit le point de départ de la recherche par expression rationnelle


Lit le dernier segment de chaîne multioctets qui correspond au masque

  • « mb_ereg_search_getpos
  • mb_ereg_search_init »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multioctets
  • Lit le dernier segment de chaîne multioctets qui correspond au masque

mb_ereg_search_getregs

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_ereg_search_getregs — Lit le dernier segment de chaîne multioctets qui correspond au masque

Description

mb_ereg_search_getregs(): array|false

Lit le dernier segment de chaîne multioctets 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 régulières multioctets
  • mb_ereg_search_init() - Configure les chaînes et les expressions régulières pour le support des caractères multioctets


Configure les chaînes et les expressions régulières pour le support des caractères multioctets

  • « mb_ereg_search_getregs
  • mb_ereg_search_pos »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multioctets
  • Configure les chaînes et les expressions régulières pour le support des caractères multioctets

mb_ereg_search_init

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_ereg_search_init — Configure les chaînes et les expressions régulières pour le support des caractères multioctets

Description

mb_ereg_search_init(string $string, ?string $pattern = null, ?string $options = null): bool

mb_ereg_search_init() configure
string et pattern
pour supporter les expressions régulières multioctets. 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.

options

L'option de recherche. Pour plus d'explications, consultez mb_regex_set_options().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | pattern and options are nullable now.

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 régulières multioctets
  • mb_ereg_search_regs() - Retourne le segment de chaîne trouvé par une expression rationnelle multioctets


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 multioctets
  • 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, PHP 8)

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

mb_ereg_search_pos(?string $pattern = null, ?string $options = null): array|false

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.

options

L'option de recherche. Pour plus d'explications, consultez mb_regex_set_options().

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é.

Historique

Version | Description
8.0.0 | pattern and options are nullable now.

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 régulières multioctets
  • mb_ereg_search_init() - Configure les chaînes et les expressions régulières pour le support des caractères multioctets


Retourne le segment de chaîne trouvé par une expression rationnelle multioctets

  • « mb_ereg_search_pos
  • mb_ereg_search_setpos »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multioctets
  • Retourne le segment de chaîne trouvé par une expression rationnelle multioctets

mb_ereg_search_regs

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_ereg_search_regs — Retourne le segment de chaîne trouvé par une expression rationnelle multioctets

Description

mb_ereg_search_regs(?string $pattern = null, ?string $options = null): array|false

Retourne le segment de chaîne trouvé par une expression rationnelle multioctets.

Liste de paramètres

pattern

Le masque de recherche.

options

L'option de recherche. Pour plus d'explications, consultez mb_regex_set_options().

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.

Historique

Version | Description
8.0.0 | pattern and options are nullable now.

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 régulières multioctets
  • mb_ereg_search_init() - Configure les chaînes et les expressions régulières pour le support des caractères multioctets


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 multioctets
  • 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, PHP 8)

mb_ereg_search_setpos — Choisit le point de départ de la recherche par expression rationnelle

Description

mb_ereg_search_setpos(int $offset): bool

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

offset

La position à définir. Si elle est négative, elle compte à partir de la fin de la chaîne.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
7.1.0 | La prise en charge d'une offset négative a été ajoutée.

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 régulières multioctets
  • mb_ereg_search_init() - Configure les chaînes et les expressions régulières pour le support des caractères multioctets


Recherche par expression rationnelle multioctets

  • « mb_ereg_search_setpos
  • mb_ereg »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multioctets
  • Recherche par expression rationnelle multioctets

mb_ereg_search

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_ereg_search — Recherche par expression rationnelle multioctets

Description

mb_ereg_search(?string $pattern = null, ?string $options = null): bool

Recherche par expression rationnelle multioctets.

Liste de paramètres

pattern

Le masque de recherche.

options

L'option de recherche. Pour plus d'explications, consultez mb_regex_set_options().

Valeurs de retour

mb_ereg_search() retourne true si la chaîne multioctets 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é.

Historique

Version | Description
8.0.0 | pattern and options are nullable now.

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 régulières multioctets
  • mb_ereg_search_init() - Configure les chaînes et les expressions régulières pour le support des caractères multioctets


Recherche par expression rationnelle avec support des caractères multioctets

  • « mb_ereg_search
  • mb_eregi_replace »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multioctets
  • Recherche par expression rationnelle avec support des caractères multioctets

mb_ereg

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_ereg — Recherche par expression rationnelle avec support des caractères multioctets

Description

mb_ereg(string $pattern, string $string, array &$matches = null): bool

Recherche par expression rationnelle avec support des caractères multioctets.

Liste de paramètres

pattern

Le masque de recherche.

string

La chaîne sur laquelle porte la recherche.

matches

Si des correspondances sont trouvées pour les sous-chaînes entre parenthèses de pattern et si la fonction est appelée avec le troisième argument matches, les correspondances seront stockées dans les éléments du tableau matches. Si aucune correspondance n'est trouvée, matches a pour valeur un tableau vide.

$matches[1] contiendra la sous-chaîne qui commence à la première parenthèse gauche; $matches[2] contiendra la sous-chaîne commençant à la seconde, et ainsi de suite. $matches[0] contiendra une copie de la chaîne complète assortie.

Valeurs de retour

Retourne si une correspondence de pattern a été trouvé dans string.

Historique

Version | Description
8.0.0 | Cette fonction retourne désormais true en cas de succès. Auparavant, elle retournait la longueur d'octet de la chaîne trouvé, si une correspondence pour pattern était trouvé dans string et que matches était fournis. Si la paramètre optionnel matches n'était pas fournis ou que la longueur de la chaîne correspondante était 0, cette fonction retournait 1.
7.1.0 | mb_ereg() va maintenant affecter matches à un array vide, si rien ne correspond. Auparavant, les matches n'étaient pas modifiées dans ce cas.

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 régulières multioctets
  • mb_eregi() - Expression rationnelle insensible à la casse avec le support des caractères multioctets


Expression rationnelle avec support des caractères multioctets, sans tenir compte de la casse

  • « mb_ereg
  • mb_eregi »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multioctets
  • Expression rationnelle avec support des caractères multioctets, sans tenir compte de la casse

mb_eregi_replace

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_eregi_replace — Expression rationnelle avec support des caractères multioctets, sans tenir compte de la casse

Description

mb_eregi_replace(
string $pattern,
string $replacement,
string $string,
?string $options = null
): string|false|null

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 multi octets peuvent être utilisés. La casse sera ignorée.

replacement

Le texte de substitution.

string

La chaîne recherchée.

options
Les options de recherche. Voir mb_regex_set_options() pour des explications.

Valeurs de retour

La chaîne résultante, ou false si une erreur survient. Si string n'est pas valide pour l'encodage courant, null est retourné.

Historique

Version | Description
8.0.0 | options est désormais nullable.
7.1.0 | Cette fonction vérifie si string est valide pour l'encodage courant.
7.1.0 | Le modificateur e est désormais obsolète.

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 régulières multioctets
  • mb_ereg_replace() - Remplace des segments de chaîne à l'aide des expressions régulières


Expression rationnelle insensible à la casse avec le support des caractères multioctets

  • « mb_eregi_replace
  • mb_get_info »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multioctets
  • Expression rationnelle insensible à la casse avec le support des caractères multioctets

mb_eregi

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_eregi — Expression rationnelle insensible à la casse avec le support des caractères multioctets

Description

mb_eregi(string $pattern, string $string, array &$matches = null): bool

Exécute l'expression rationnelle insensible à la casse avec le support des caractères multioctets.

Liste de paramètres

pattern

L'expression rationnelle.

string

La chaîne à chercher.

matches

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 matches, les résultats seront enregistrés dans matches.

$matches[1] contiendra la première parenthèse capturante (celle qui commence le plus tôt), $matches[2] contiendra la deuxième parenthèse capturante (celle qui commence après la première), et ainsi de suite. $matches[0] contient une copie de la chaîne.

Valeurs de retour

Retourne si une correspondence de pattern a été trouvé dans string.

Historique

Version | Description
8.0.0 | Cette fonction retourne désormais true en cas de succès. Auparavant, elle retournait la longueur d'octet de la chaîne trouvé, si une correspondence pour pattern était trouvé dans string et que matches était fournis. Si la paramètre optionnel matches n'était pas fournis ou que la longueur de la chaîne correspondante était 0, cette fonction retournait 1.
7.1.0 | mb_eregi() définira désormais matches en un tableau vide, s'il n'y a aucune correspondance. Auparavant, matches n'était pas modifié dans ce cas.

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 régulières multioctets
  • mb_ereg() - Recherche par expression rationnelle avec support des caractères multioctets


Lit la configuration interne de l'extension mbstring

  • « mb_eregi
  • mb_http_input »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multioctets
  • Lit la configuration interne de l'extension mbstring

mb_get_info

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_get_info — Lit la configuration interne de l'extension mbstring

Description

mb_get_info(string $type = "all"): array|string|int|false

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", "all", "internal_encoding", "http_input", "http_output", "http_output_conv_mimetypes", "mail_charset", "mail_header_encoding", "mail_body_encoding", "illegal_chars", "encoding_translation", "language", "detect_order", "substitute_character" et "strict_detection" sera retourné.

Si type est spécifié en tant que "internal_encoding", "http_input", "http_output", "http_output_conv_mimetypes", "mail_charset", "mail_header_encoding", "mail_body_encoding", "illegal_chars", "encoding_translation", "language", "detect_order", "substitute_character" ou "strict_detection" la paramètre spécifié sera retourné.

Valeurs de retour

Un array d'informations si type n'est pas spécifié, sinon, un type spécifique, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | Les types "func_overload" et "func_overload_list" ne sont désormais plus supporté.

Voir aussi

  • mb_regex_encoding() - Définit/Récupère l'encodage des caractères pour les expressions régulières multioctets
  • 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 multioctets
  • Détecte le type d'encodage d'un caractère HTTP

mb_http_input

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_http_input — Détecte le type d'encodage d'un caractère HTTP

Description

mb_http_input(?string $type = null): array|string|false

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, "I" pour la liste complète (retournera array). Si type est omis, il prend la valeur du dernier type utilisé.

Valeurs de retour

Le nom de l'encodage des caractères en fonction de type, ou un tableau de nom de jeux d'encodage, si type est "I". Si mb_http_input() ne traite pas l'entrée HTTP spécifiée, elle retournera false.

Historique

Version | Description
8.0.0 | type est désormais nullable.

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 multioctets
  • Lit/modifie l'encodage d'affichage

mb_http_output

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_http_output — Lit/modifie l'encodage d'affichage

Description

mb_http_output(?string $encoding = null): string|bool

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.

Historique

Version | Description
8.0.0 | encoding est désormais nullable.

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 multioctets
  • Lit/modifie l'encodage interne

mb_internal_encoding

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_internal_encoding — Lit/modifie l'encodage interne

Description

mb_internal_encoding(?string $encoding = null): string|bool

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 multioctets.

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 multioctets n'est pas changé. Si encoding est omis, mb_internal_encoding() retourne le nom de l'encodage courant.

Erreurs / Exceptions

À partir de PHP 8.0.0, une ValueError est lancée si la valeur de encoding est un encodage invalide. Antérieur à PHP 8.0.0, une E_WARNING était émise à la place.

Historique

Version | Description
8.0.0 | encoding est désormais nullable.
8.0.0 | Lance désormais une ValueError si encoding est un encodage invalide. Auparavant, une E_WARNING était émise à la place.

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 régulières multioctets


Définit/Récupère le langage courant

  • « mb_internal_encoding
  • mb_list_encodings »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multioctets
  • Définit/Récupère le langage courant

mb_language

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_language — Définit/Récupère le langage courant

Description

mb_language(?string $language = null): string|bool

Définit/Récupère le langage courant.

Liste de paramètres

language

Utilisé pour encoder les courriels électroniques. Les langages valides sont énuméré dans le tableau suivant. mb_send_mail() utilise cette option pour encoder les e-mails.

Language | Charset | Encoding | Alias
German/de | ISO-8859-15 | Quoted-Printable | Deutsch
English/en | ISO-8859-1 | Quoted-Printable
Armenian/hy | ArmSCII-8 | Quoted-Printable
Japanese/ja | ISO-2022-JP | BASE64
Korean/ko | ISO-2022-KR | BASE64
neutral | UTF-8 | BASE64
Russian/ru | KOI8-R | Quoted-Printable
Turkish/tr | ISO-8859-9 | Quoted-Printable
Ukrainian/ua | KOI8-U | Quoted-Printable
uni | UTF-8 | BASE64 | universal
Simplified Chinese/zh-cn | HZ | BASE64
Traditional Chinese/zh-tw | BIG-5 | BASE64

Valeurs de retour

Si language est fourni et language est valide, retourne true. Sinon, retourne false. Lorsque language est omit ou null, retourne le nom du langage courant, en tant que chaîne de caractères.

Historique

Version | Description
8.0.0 | language est désormais nullable.

Voir aussi

  • mb_send_mail() - Envoie un mail encodé


Retourne un tableau contenant tous les encodages supportés

  • « mb_language
  • mb_ord »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multioctets
  • Retourne un tableau contenant tous les encodages supportés

mb_list_encodings

(PHP 5, PHP 7, PHP 8)

mb_list_encodings — Retourne un tableau contenant tous les encodages supportés

Description

mb_list_encodings(): array

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());

?>

Résultat de l'exemple ci-dessus est 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
)

Voir aussi

  • mb_encoding_aliases() - Récupère les aliases d'un type d'encodage connu


Récupère le point de code Unicode d'un caractère

  • « mb_list_encodings
  • mb_output_handler »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multioctets
  • Récupère le point de code Unicode d'un caractère

mb_ord

(PHP 7 >= 7.2.0, PHP 8)

mb_ord — Récupère le point de code Unicode d'un caractère

Description

mb_ord(string $string, ?string $encoding = null): int|false

Retourne le point de code Unicode pour le caractère fournit.

Cette fonction complémente mb_chr().

Liste de paramètres

string

Une chaîne de caractère

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis ou null, l'encodage de caractères interne sera utilisé.

Valeurs de retour

Le point de code Unicode pour le premier caractère de string ou false si une erreur survient.

Historique

Version | Description
8.0.0 | encoding est désormais nullable.

Exemples

Exemple #1 Un example basique de mb_ord()

<?php
var_dump(mb_ord("A", "UTF-8"));
var_dump(mb_ord("??", "UTF-8"));
var_dump(mb_ord("\x80", "ISO-8859-1"));
var_dump(mb_ord("\x80", "Windows-1252"));
?>

L'exemple ci-dessus va afficher :

int(65)
int(128024)
int(128)
int(8364)

Voir aussi

  • mb_internal_encoding() - Lit/modifie l'encodage interne
  • mb_chr() - Retourne un caractère par sa valeur de point de code Unicode
  • IntlChar::ord() - Return Unicode code point value of character
  • ord() - Convertit le premier octet d'une chaîne en une valeur entre 0 et 255


Fonction de traitement des affichages

  • « mb_ord
  • mb_parse_str »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multioctets
  • Fonction de traitement des affichages

mb_output_handler

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_output_handler — Fonction de traitement des affichages

Description

mb_output_handler(string $string, int $status): string

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

string

Le contenu du buffer de sortie.

status

Le statut du buffer de sortie.

Valeurs de retour

La chaîne convertie.

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, 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.

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 multioctets
  • 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, PHP 8)

mb_parse_str — Analyse les données HTTP GET/POST/COOKIE et assigne les variables globales

Description

mb_parse_str(string $string, array &$result): bool

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

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.

Historique

Version | Description
8.0.0 | Le second paramètre n'est plus optionnel.
7.2.0 | Un appel à la fonction mb_parse_str() sans le second paramètre est devenu obsolète.

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 multioctets
  • Détecte l'encodage MIME

mb_preferred_mime_name

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_preferred_mime_name — Détecte l'encodage MIME

Description

mb_preferred_mime_name(string $encoding): string|false

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, ou false si aucun jeu de caractère n'est préféré pour l'encoding donnée.

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 régulières multioctets

  • « mb_preferred_mime_name
  • mb_regex_set_options »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multioctets
  • Définit/Récupère l'encodage des caractères pour les expressions régulières multioctets

mb_regex_encoding

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_regex_encoding — Définit/Récupère l'encodage des caractères pour les expressions régulières multioctets

Description

mb_regex_encoding(?string $encoding = null): string|bool

Définit/Récupère l'encodage des caractères pour les expressions régulières multioctets.

Liste de paramètres

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis ou null, l'encodage de caractères 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 régulières multioctets sera retourné.

Historique

Version | Description
8.0.0 | encoding est désormais nullable.

Voir aussi

  • mb_internal_encoding() - Lit/modifie l'encodage interne
  • mb_ereg() - Recherche par expression rationnelle avec support des caractères multioctets


Lit et modifie les options des fonctions d'expression rationnelle à support de caractères multioctets

  • « mb_regex_encoding
  • mb_scrub »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multioctets
  • Lit et modifie les options des fonctions d'expression rationnelle à support de caractères multioctets

mb_regex_set_options

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

mb_regex_set_options — Lit et modifie les options des fonctions d'expression rationnelle à support de caractères multioctets

Description

mb_regex_set_options(?string $options = null): string

Configure les options par défaut avec les nouvelles valeurs contenues dans options, pour les fonctions d'expression rationnelle à support de caractères multioctets.

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 | Historique
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 | Obsolète à partir de PHP 7.1.0 et supprimée à partir de PHP 8.0.0

Note:

L'option "e" n'a pas d'effet lorsqu'elle est définie par la mb_regex_set_options(). Utilisez-la avec mb_ereg_replace() ou mb_eregi_replace().

Modes de syntaxe de l'expression rationnelle (un seul peut être défini)
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

Les options précédentes. Si le paramètre options est omis ou null, une chaîne de caractères décrivant les options courantes sera retourné.

Historique

Version | Description
8.0.0 | Si le paramètre options est fourni et non null, les options précédentes sont retournées. Auparavant, les options courantes étaient retournées.
8.0.0 | options est désormais nullable.
8.0.0 | L'option "e" lance désormais une ValueError.
7.1.0 | L'option "e" émet désormais une E_DEPRECATED.

Voir aussi

  • mb_split() - Scinde une chaîne en tableau avec une expression rationnelle multioctets
  • mb_ereg() - Recherche par expression rationnelle avec support des caractères multioctets
  • mb_eregi() - Expression rationnelle insensible à la casse avec le support des caractères multioctets


Remplacez les séquences d'octets mal formées par le caractère de substitution.

  • « mb_regex_set_options
  • mb_send_mail »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multioctets
  • Remplacez les séquences d'octets mal formées par le caractère de substitution.

mb_scrub

(PHP 7 >= 7.2.0, PHP 8)

mb_scrub — Remplacez les séquences d'octets mal formées par le caractère de substitution.

Description

mb_scrub(string $string, ?string $encoding = null): string

Effectuez une conversion de jeu de caractères depuis l'encodage spécifié, ou depuis l'encodage par défaut si aucun encodage n'a été spécifié, vers le même encodage. Cela a pour effet de remplacer toute séquence d'octets invalide par le caractère de substitution.

Liste de paramètres

string

La chaîne d'entrée.

encoding

L'encodage utilisé pour interpréter string. S'il est omis ou null, le paramètre mbstring.internal_encoding sera utilisé s'il est défini, sinon le paramètre default_charset sera utilisé.

Valeurs de retour

Le résultat chaîne de caractères avec les séquences d'octets invalides remplacées.

Historique

Version | Description
8.0.0 | encoding est désormais nullable.


Envoie un mail encodé

  • « mb_scrub
  • mb_split »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multioctets
  • Envoie un mail encodé

mb_send_mail

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_send_mail — Envoie un mail encodé

Description

mb_send_mail(
string $to,
string $subject,
string $message,
array|string $additional_headers = [],
?string $additional_params = null
): bool

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 de caractères ou tableau à 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.

Si un tableau est fourni, ses clés sont les noms des en-têtes et ses valeurs sont les valeurs respectives des en-têtes.

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_params

additional_params 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.

Historique

Version | Description
8.0.0 | additional_params is nullable now.
7.2.0 | Le paramètre additional_headers accepte désormais un tableau.

Voir aussi

  • mail() - Envoi de mail
  • mb_encode_mimeheader() - Encode une chaîne pour un en-tête MIME
  • mb_language() - Définit/Récupère le langage courant


Scinde une chaîne en tableau avec une expression rationnelle multioctets

  • « mb_send_mail
  • mb_str_pad »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multioctets
  • Scinde une chaîne en tableau avec une expression rationnelle multioctets

mb_split

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

mb_split — Scinde une chaîne en tableau avec une expression rationnelle multioctets

Description

mb_split(string $pattern, string $string, int $limit = -1): array|false

Scinde la chaîne multioctets 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, ou false si une erreur survient.

Notes

Note:

L'encodage de caractères spécifié par mb_regex_encoding() sera utilisé comme encodage pour cette fonction par défaut.

Voir aussi

  • mb_regex_encoding() - Définit/Récupère l'encodage des caractères pour les expressions régulières multioctets
  • mb_ereg() - Recherche par expression rationnelle avec support des caractères multioctets


Pad a multibyte string to a certain length with another multibyte string

  • « mb_split
  • mb_str_split »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multioctets
  • Pad a multibyte string to a certain length with another multibyte string

mb_str_pad

(PHP 8 >= PHP 8.3.0)

mb_str_pad — Pad a multibyte string to a certain length with another multibyte string

Description

mb_str_pad(
string $string,
int $length,
string $pad_string = " ",
int $pad_type = STR_PAD_RIGHT,
?string $encoding = null
): string

This function returns the string padded on the left, the right, or both sides to the specified padding length, where the length is measured in Unicode codepoints. If the optional argument pad_string is not supplied, the string is padded with spaces, otherwise it is padded with characters from pad_string up to the limit.

Liste de paramètres

string

The input string.

length

If the value of length is negative, less than, or equal to the length of the input string, no padding takes place, and string will be returned.

pad_string

Note:

The pad_string may be truncated if the required number of padding characters can't be evenly divided by the pad_string's length.

pad_type

Optional argument pad_type can be STR_PAD_RIGHT, STR_PAD_LEFT, or STR_PAD_BOTH. By default STR_PAD_RIGHT.

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis ou null, l'encodage de caractères interne sera utilisé.

Valeurs de retour

Returns the padded string.

Exemples

Exemple #1 mb_str_pad() example

<?php
var_dump(mb_str_pad('??', 6, '???', STR_PAD_RIGHT)); // string(18) "??????"
var_dump(mb_str_pad('??', 6, '???', STR_PAD_LEFT)); // string(18) "??????"
var_dump(mb_str_pad('??', 6, '???', STR_PAD_BOTH)); // string(18) "??????"

var_dump(mb_str_pad("??", 3, "?", STR_PAD_LEFT)); // string(10) "????"
?>


Pour une chaîne multi-octets donnée, renvoie un tableau de ses caractères

  • « mb_str_pad
  • mb_strcut »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multioctets
  • Pour une chaîne multi-octets donnée, renvoie un tableau de ses caractères

mb_str_split

(PHP 7 >= 7.4.0, PHP 8)

mb_str_split — Pour une chaîne multi-octets donnée, renvoie un tableau de ses caractères

Description

mb_str_split(string $string, int $length = 1, ?string $encoding = null): array

Cette fonction renverra un tableau de chaînes, c'est une version de str_split() avec une prise en charge des encodages de taille de caractère variable ainsi que des encodages de taille fixe de caractères de 1, 2 ou 4 octets. Si le paramètre length est spécifié, la chaîne est décomposée en blocs de la longueur spécifiée en caractères (et non en octets). Le paramètre encoding est facultatif mais il est recommandé de le fournir.

Liste de paramètres

string

La chaîne de caractères à diviser en caractères ou en morceaux.

length

Si spécifié, chaque élément du tableau retourné sera composé de plusieurs caractères au lieu d'un seul caractère.

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis ou null, l'encodage de caractères interne sera utilisé.

Une chaîne de caractères spécifiant l'un des encodages pris en charge.

Valeurs de retour

mb_str_split() renvoie un tableau de chaînes de caractères.

Historique

Version | Description
8.0.0 | encoding est désormais nullable.
8.0.0 | Cette fonction ne renvoie plus false en cas d'échec.

Voir aussi

  • str_split() - Convertit une chaîne de caractères en tableau


Coupe une partie de chaîne

  • « mb_str_split
  • mb_strimwidth »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multioctets
  • Coupe une partie de chaîne

mb_strcut

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_strcut — Coupe une partie de chaîne

Description

mb_strcut(
string $string,
int $start,
?int $length = null,
?string $encoding = null
): string

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 multioctets, 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

string

La chaîne à couper.

start

Si start est positif, la chaîne retournée commencera à l'octet numéro start, dans la chaîne string. Le premier caractère est numéroté zéro. En effet, dans la chaîne 'abcdef', l'octet à la position 0 est 'a', l'octet à la position 2 est 'c', et ainsi de suite.

Si start est négatif, la chaîne retournée commencera à l'octet numéro start à compter de la fin de la chaîne string. Cependant, si le nombre négatif passé en paramètre start est supérieur à la longueur de la chaîne, la portion retournée commencera depuis le début de la chaîne string.

length

Longueur en octets. Si ce paramètre est omis, ou vaut NULL, tous les octets jusqu'à la fin de la chaîne seront extraits.

Si length est négatif, la chaîne retournée se finira à la position length en comptant en arrière depuis la fin de la chaîne string. Cependant, si le nombre négatif passé au paramètre length est plus grand que le nombre de caractères après la position start, une chaîne vide sera retourné.

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis ou null, l'encodage de caractères interne sera utilisé.

Valeurs de retour

mb_strcut() retourne la portion de la chaîne string qui commence au caractère start et a la longueur de length caractères.

Historique

Version | Description
8.0.0 | encoding est désormais nullable.

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 multioctets
  • Tronque une chaîne

mb_strimwidth

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_strimwidth — Tronque une chaîne

Description

mb_strimwidth(
string $string,
int $start,
int $width,
string $trim_marker = "",
?string $encoding = null
): string

Tronque la chaîne string à la longueur width spécifié, où les caractères à demi-chasse comptent en tant que 1, et les caractères à pleine chasse comptent en tant que 2. Voir » http://www.unicode.org/reports/tr11/ pour plus de détails concernant les chasses des caractères Asiatique de l'Est.

Liste de paramètres

string

La chaîne à tronquer.

start

start est la position de départ, en nombre de caractères depuis le début de la chaîne (premier caractère est 0), ou si la position est négative, nombre de caractères à partir de la fin de la chaîne de caractères.

width

La largeur de la troncation souhaitée. Si une largeur négative est spécifiée, il faut compter à partir de la fin de la chaîne.

Note:

Fournir une largeur négative est obsolète à partir de PHP 8.3.0.

trim_marker

trim_marker 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 ou null, l'encodage de caractères interne sera utilisé.

Valeurs de retour

La chaîne tronquée. Si trim_marker est définit, trim_marker remplace les derniers caractères pour correspondre à la taille width.

Historique

Version | Description
8.3.0 | Fournir une width négative à mb_strimwidth() est désormais obsolète.
8.0.0 | encoding est désormais nullable.
7.1.0 | Support pour starts et widths négatifs a été ajouté.

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 multioctets
  • 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, PHP 8)

mb_stripos — Trouve la première occurrence d'une chaîne dans une autre, sans tenir compte de la casse

Description

mb_stripos(
string $haystack,
string $needle,
int $offset = 0,
?string $encoding = null
): int|false

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. Une position négative compte à partir de la fin de la chaîne de caractères.

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é.

Historique

Version | Description
8.0.0 | needle accepte désormais une chaîne vide.
8.0.0 | encoding est désormais nullable.
7.1.0 | Support pour offsets négatifs a été ajouté.

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 multioctets
  • 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, PHP 8)

mb_stristr — Trouve la première occurrence d'une chaîne dans une autre, sans tenir compte de la casse

Description

mb_stristr(
string $haystack,
string $needle,
bool $before_needle = false,
?string $encoding = null
): string|false

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é.

Historique

Version | Description
8.0.0 | needle accepte désormais une chaîne vide.
8.0.0 | encoding est désormais nullable.

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 multioctets
  • Retourne la taille d'une chaîne

mb_strlen

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_strlen — Retourne la taille d'une chaîne

Description

mb_strlen(string $string, ?string $encoding = null): int

Récupère la taille de la chaîne fournie.

Liste de paramètres

string

La chaîne à analyser.

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis ou null, l'encodage de caractères interne sera utilisé.

Valeurs de retour

Retourne le nombre de caractères dans la chaîne string, avec l'encodage encoding. Un caractère multioctets est alors compté pour 1.

Erreurs / Exceptions

Si l'encodage est inconnue, une erreur de niveau E_WARNING est générée.

Historique

Version | Description
8.0.0 | encoding est désormais nullable.

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 multioctets
  • 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, PHP 8)

mb_strpos — Repère la première occurrence d'un caractère dans une chaîne

Description

mb_strpos(
string $haystack,
string $needle,
int $offset = 0,
?string $encoding = null
): int|false

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 multioctets. 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é. Une position négative compte à partir de la fin de la chaîne de caractères.

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis ou null, l'encodage de caractères 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.

Historique

Version | Description
8.0.0 | needle accepte désormais une chaîne vide.
8.0.0 | encoding est désormais nullable.
7.1.0 | Support pour offsets négatifs a été ajouté.

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 multioctets
  • 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, PHP 8)

mb_strrchr — Trouve la dernière occurrence d'un caractère d'une chaîne dans une autre

Description

mb_strrchr(
string $haystack,
string $needle,
bool $before_needle = false,
?string $encoding = null
): string|false

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

before_needle

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é.

Historique

Version | Description
8.0.0 | needle accepte désormais une chaîne vide.
8.0.0 | encoding est désormais nullable.

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 multioctets
  • 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, PHP 8)

mb_strrichr — Trouve la dernière occurrence d'un caractère d'une chaîne dans une autre, insensible à la casse

Description

mb_strrichr(
string $haystack,
string $needle,
bool $before_needle = false,
?string $encoding = null
): string|false

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

before_needle

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é.

Historique

Version | Description
8.0.0 | needle accepte désormais une chaîne vide.
8.0.0 | encoding est désormais nullable.

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 multioctets
  • 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, PHP 8)

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

mb_strripos(
string $haystack,
string $needle,
int $offset = 0,
?string $encoding = null
): int|false

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é.

Historique

Version | Description
8.0.0 | needle accepte désormais une chaîne vide.
8.0.0 | encoding est désormais nullable.

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 multioctets
  • 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, PHP 8)

mb_strrpos — Repère la dernière occurrence d'un caractère dans une chaîne

Description

mb_strrpos(
string $haystack,
string $needle,
int $offset = 0,
?string $encoding = null
): int|false

mb_strrpos() effectue une recherche de type strpos(), en tenant compte des caractères multioctets. 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 ou null, l'encodage de caractères 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
8.0.0 | needle accepte désormais une chaîne vide.
8.0.0 | Passer encoding comme troisième argument au lieu de offset a été supprimée.
8.0.0 | encoding est désormais nullable.

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 multioctets
  • Trouve la première occurrence d'une chaîne dans une autre

mb_strstr

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

mb_strstr — Trouve la première occurrence d'une chaîne dans une autre

Description

mb_strstr(
string $haystack,
string $needle,
bool $before_needle = false,
?string $encoding = null
): string|false

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é.

Historique

Version | Description
8.0.0 | needle accepte désormais une chaîne vide.
8.0.0 | encoding est désormais nullable.

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 multioctets
  • Met tous les caractères en minuscules

mb_strtolower

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

mb_strtolower — Met tous les caractères en minuscules

Description

mb_strtolower(string $string, ?string $encoding = null): string

Retourne la chaîne string après avoir converti tous les caractères alphabétiques en minuscules.

Liste de paramètres

string

La chaîne à mettre en minuscule.

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis ou null, l'encodage de caractères interne sera utilisé.

Valeurs de retour

Retourne la chaîne string dont tous les caractères alphabétiques ont été mis en minuscule.

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?? ?????? ?????
?>

Notes

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 (ç).

Pour plus d'informations sur les propriétés de l'Unicode, voyez » http://www.unicode.org/reports/tr21/.

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 multioctets
  • Met tous les caractères en majuscules

mb_strtoupper

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

mb_strtoupper — Met tous les caractères en majuscules

Description

mb_strtoupper(string $string, ?string $encoding = null): string

Retourne la chaîne string après avoir converti tous les caractères alphabétiques en majuscules.

Liste de paramètres

string

La chaîne à mettre en majuscules.

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis ou null, l'encodage de caractères interne sera utilisé.

Valeurs de retour

Retourne la chaîne string dont tous les caractères ont été mis en majuscule.

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
?>

Notes

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 tous les caractères qui sont considérés comme alphabétiques comme le c cédille (ç).

Pour plus d'informations sur les propriétés de l'Unicode, voyez » http://www.unicode.org/reports/tr21/.

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 multioctets
  • Retourne la taille d'une chaîne

mb_strwidth

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_strwidth — Retourne la taille d'une chaîne

Description

mb_strwidth(string $string, ?string $encoding = null): int

Retourne la chasse de string string, où les caractères à demi-chasse comptent en tant que 1, et les caractères à pleine chasse comptent en tant que 2. Voir » http://www.unicode.org/reports/tr11/ pour plus de détails concernant les chasse des caractères Asiatique de l'Est.

Les caractères à pleine chasse sont : U+1100-U+115F, U+11A3-U+11A7, U+11FA-U+11FF, U+2329-U+232A, U+2E80-U+2E99, U+2E9B-U+2EF3, U+2F00-U+2FD5, U+2FF0-U+2FFB, U+3000-U+303E, U+3041-U+3096, U+3099-U+30FF, U+3105-U+312D, U+3131-U+318E, U+3190-U+31BA, U+31C0-U+31E3, U+31F0-U+321E, U+3220-U+3247, U+3250-U+32FE, U+3300-U+4DBF, U+4E00-U+A48C, U+A490-U+A4C6, U+A960-U+A97C, U+AC00-U+D7A3, U+D7B0-U+D7C6, U+D7CB-U+D7FB, U+F900-U+FAFF, U+FE10-U+FE19, U+FE30-U+FE52, U+FE54-U+FE66, U+FE68-U+FE6B, U+FF01-U+FF60, U+FFE0-U+FFE6, U+1B000-U+1B001, U+1F200-U+1F202, U+1F210-U+1F23A, U+1F240-U+1F248, U+1F250-U+1F251, U+20000-U+2FFFD, U+30000-U+3FFFD. Tous les autres caractères sont des caractères à demi chasse.

Liste de paramètres

string

La chaîne à analyser.

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis ou null, l'encodage de caractères interne sera utilisé.

Valeurs de retour

La taille de la string string.

Historique

Version | Description
8.0.0 | encoding est désormais nullable.

Exemples

Exemple #1 Exemple mb_strwidth()

<?php
var_dump(
mb_strwidth('a'), // LATIN SMALL LETTER A
mb_strwidth("\u{ff41}") // FULLWIDTH LATIN SMALL LETTER A
);
?>

L'exemple ci-dessus va afficher :

int(1)
int(2)

Voir aussi

  • mb_strimwidth() - Tronque une chaîne
  • mb_internal_encoding() - Lit/modifie l'encodage interne


Définit/Récupère les caractères de substitution

  • « mb_strwidth
  • mb_substr_count »
  • PHP Manual
  • Fonctions sur les chaînes de caractères multioctets
  • Définit/Récupère les caractères de substitution

mb_substitute_character

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_substitute_character — Définit/Récupère les caractères de substitution

Description

mb_substitute_character(string|int|null $substitute_character = null): string|int|bool

Spécifie le caractère de substitution des caractères invalides, ou des encodages invalides. Les caractères invalides peuvent être remplacés par "none" (pas d'affichage, ils sont supprimés), une chaîne de caractères ou une valeur entier (valeur d'un code de caractère Unicode).

Ce paramétrage affecte mb_convert_encoding(),
mb_convert_variables(),
mb_output_handler(),
et mb_send_mail().

Liste de paramètres

substitute_character

Spécifie une valeur Unicode sous la forme d'un entier, ou bien une chaîne de caractères sous ces formes :

  • "none" : pas d'affichage
  • "long" : affiche la valeur hexadécimale (Exemple : U+3000, JIS+7E7E)
  • "entity" : affiche l'entité du caractère (Exemple : &#x200;)

Valeurs de retour

Si substitute_character est fourni, mb_substitute_character() retourne true en cas de succès, et false en cas d'erreur. Si substitute_character est omis, mb_substitute_character() retourne une valeur Unicode, ou bien "none"/"long".

Historique

Version | Description
8.0.0 | Passer une chaîne vide à substitute_character n'est plus supporté; "none" devrait être fourni à la place.
8.0.0 | encoding est désormais nullable.

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 multioctets
  • Compte le nombre d'occurrences d'une sous-chaîne

mb_substr_count

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

mb_substr_count — Compte le nombre d'occurrences d'une sous-chaîne

Description

mb_substr_count(string $haystack, string $needle, ?string $encoding = null): int

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 ou null, l'encodage de caractères interne sera utilisé.

Valeurs de retour

Retourne le nombre de fois où la chaîne needle apparaît dans la chaîne haystack.

Historique

Version | Description
8.0.0 | encoding est désormais nullable.

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 multioctets
  • Lit une sous-chaîne

mb_substr

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_substr — Lit une sous-chaîne

Description

mb_substr(
string $string,
int $start,
?int $length = null,
?string $encoding = null
): string

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 string. La position du premier caractère est 0, le second, un, etc...

Liste de paramètres

string

La chaîne à extraire depuis la sous-chaîne.

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.

length

Nombre maximal de caractères à utiliser depuis string. 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 ou null, l'encodage de caractères interne sera utilisé.

Valeurs de retour

mb_substr() retourne la portion de la chaîne string qui commence au caractère start et a la longueur de length caractères.

Historique

Version | Description
8.0.0 | encoding est désormais nullable.

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
  • PSpell\Dictionary — The PSpell\Dictionary class
  • PSpell\Config — The PSpell\Config class


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 F.A.Q 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 nécessite au moins la version 0.50 d'aspell.


Types de ressources

Antérieur à PHP 8.1.0, il y avait deux types de ressource dans cette extension. Le premier étant le lien d'identification de dictionnaire, le second est une ressource qui tiens la configuration pspell.


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 (int)
PSPELL_NORMAL (int)
PSPELL_BAD_SPELLERS (int)
PSPELL_RUN_TOGETHER (int)


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, PHP 8)

pspell_add_to_personal — Ajoute le mot au dictionnaire personnel

Description

pspell_add_to_personal(PSpell\Dictionary $dictionary, string $word): bool

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

Une instance de PSpell\Dictionary.

word

Le Mot ajouté.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | La paramètre dictionary attend désormais une instance de PSpell\Dictionary ; auparavant, une ressource était expected.

Exemples

Exemple #1 pspell_add_to_personal()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
$pspell = pspell_new_config($pspell_config);

pspell_add_to_personal($pspell, "Vlad");
pspell_save_wordlist($pspell);
?>

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, PHP 8)

pspell_add_to_session — Ajoute le mot au dictionnaire personnel de la session courante

Description

pspell_add_to_session(PSpell\Dictionary $dictionary, string $word): bool

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

Une instance de PSpell\Dictionary.

word

Le mot ajouté.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | La paramètre dictionary attend désormais une instance de PSpell\Dictionary ; auparavant, une ressource était expected.


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, PHP 8)

pspell_check — Vérifie un mot

Description

pspell_check(PSpell\Dictionary $dictionary, string $word): bool

pspell_check() vérifie l'orthographe d'un mot.

Liste de paramètres

dictionary

Une instance de PSpell\Dictionary.

word

Le mot testé.

Valeurs de retour

Retourne true si l'orthographe est correcte, false sinon.

Historique

Version | Description
8.1.0 | La paramètre dictionary attend désormais une instance de PSpell\Dictionary ; auparavant, une ressource était expected.

Exemples

Exemple #1 Exemple avec pspell_check()

<?php
$pspell = pspell_new ("fr");

if (pspell_check($pspell, "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, PHP 8)

pspell_clear_session — Remet à zéro la session courante

Description

pspell_clear_session(PSpell\Dictionary $dictionary): bool

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

Une instance de PSpell\Dictionary.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | La paramètre dictionary attend désormais une instance de PSpell\Dictionary ; auparavant, une ressource était expected.

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 = pspell_new_config($pspell_config);

pspell_add_to_personal($pspell, "Vlad");
pspell_clear_session($pspell);
pspell_save_wordlist($pspell); //"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, PHP 8)

pspell_config_create — Crée une configuration utilisée pour ouvrir un dictionnaire

Description

pspell_config_create(
string $language,
string $spelling = "",
string $jargon = "",
string $encoding = ""
): PSpell\Config

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 instance de PSpell\Config.

Historique

Version | Description
8.1.0 | Retourne désormais une instance de PSpell\Config ; auparavant, une ressource était retournée.

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 = 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, PHP 8)

pspell_config_data_dir — Dossier qui contient les fichiers de données linguistiques

Description

pspell_config_data_dir(PSpell\Config $config, string $directory): bool

Avertissement

Cette fonction est actuellement non documentée ; 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.

Historique

Version | Description
8.1.0 | Le paramètre config attend désormais une instance de PSpell\Config ; auparavant, une ressource était expected.


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, PHP 8)

pspell_config_dict_dir — Endroit où se trouve le fichier global des mots

Description

pspell_config_dict_dir(PSpell\Config $config, string $directory): bool

Avertissement

Cette fonction est actuellement non documentée ; 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.

Historique

Version | Description
8.1.0 | Le paramètre config attend désormais une instance de PSpell\Config ; auparavant, une ressource était expected.


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, PHP 8)

pspell_config_ignore — Ignore les mots de moins de N caractères

Description

pspell_config_ignore(PSpell\Config $config, int $min_length): bool

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

config

Une instance de PSpell\Config.

min_length

Les mots de moins de min_length caractères seront ignorés.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre config attend désormais une instance de PSpell\Config ; auparavant, une ressource était expected.

Exemples

Exemple #1 pspell_config_ignore()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_ignore($pspell_config, 5);
$pspell = pspell_new_config($pspell_config);
pspell_check($pspell, "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, PHP 8)

pspell_config_mode — Change le mode de suggestion

Description

pspell_config_mode(PSpell\Config $config, int $mode): bool

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

config

Une instance de PSpell\Config.

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.

Historique

Version | Description
8.1.0 | Le paramètre config attend désormais une instance de PSpell\Config ; auparavant, une ressource était expected.

Exemples

Exemple #1 Exemple avec pspell_config_mode()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_mode($pspell_config, PSPELL_FAST);
$pspell = pspell_new_config($pspell_config);
pspell_check($pspell, "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, PHP 8)

pspell_config_personal — Choisit le fichier qui contient le dictionnaire personnel

Description

pspell_config_personal(PSpell\Config $config, string $filename): bool

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

config

Une instance de PSpell\Config.

filename

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.

Historique

Version | Description
8.1.0 | Le paramètre config attend désormais une instance de PSpell\Config ; auparavant, une ressource était expected.

Exemples

Exemple #1 pspell_config_personal()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
$pspell = pspell_new_config($pspell_config);
pspell_check($pspell, "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, PHP 8)

pspell_config_repl — Choisit le fichier qui contient les paires de remplacement

Description

pspell_config_repl(PSpell\Config $config, string $filename): bool

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

config

Une instance de PSpell\Config.

filename

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.

Historique

Version | Description
8.1.0 | Le paramètre config attend désormais une instance de PSpell\Config ; auparavant, une ressource était expected.

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 = pspell_new_config($pspell_config);
pspell_check($pspell, "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, PHP 8)

pspell_config_runtogether — Considère deux mots accolés comme un composé

Description

pspell_config_runtogether(PSpell\Config $config, bool $allow): bool

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

config

Une instance de PSpell\Config.

allow

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.

Historique

Version | Description
8.1.0 | Le paramètre config attend désormais une instance de PSpell\Config ; auparavant, une ressource était expected.

Exemples

Exemple #1 pspell_config_runtogether()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_runtogether($pspell_config, true);
$pspell = pspell_new_config($pspell_config);
pspell_check($pspell, "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, PHP 8)

pspell_config_save_repl — Détermine s'il faut sauver les paires de remplacement avec le dictionnaire

Description

pspell_config_save_repl(PSpell\Config $config, bool $save): bool

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

config

Une instance de PSpell\Config.

save

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.

Historique

Version | Description
8.1.0 | Le paramètre config attend désormais une instance de PSpell\Config ; auparavant, une ressource était expected.

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, PHP 8)

pspell_new_config — Charge un nouveau dictionnaire avec les paramètres spécifiés dans une configuration

Description

pspell_new_config(PSpell\Config $config): PSpell\Dictionary|false

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 une instance de PSpell\Dictionary en cas de succès, ou false si une erreur survient

Historique

Version | Description
8.1.0 | Le paramètre config attend désormais une instance de PSpell\Config ; auparavant, une ressource était expected.
8.1.0 | Retourne désormais une instance de PSpell\Dictionary ; auparavant, une ressource était retournée.

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 = 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, PHP 8)

pspell_new_personal — Charge un nouveau dictionnaire avec un dictionnaire personnel

Description

pspell_new_personal(
string $filename,
string $language,
string $spelling = "",
string $jargon = "",
string $encoding = "",
int $mode = 0
): PSpell\Dictionary|false

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

filename

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 une instance de PSpell\Dictionary en cas de succès, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Retourne désormais une instance de PSpell\Dictionary ; auparavant, une ressource était retournée.

Exemples

Exemple #1 pspell_new_personal()

<?php
$pspell = 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, PHP 8)

pspell_new — Charge un nouveau dictionnaire

Description

pspell_new(
string $language,
string $spelling = "",
string $jargon = "",
string $encoding = "",
int $mode = 0
): PSpell\Dictionary|false

pspell_new() ouvre un nouveau dictionnaire et retourne un instance de PSpell\Dictionary, 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 une instance de PSpell\Dictionary en cas de succès, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Retourne désormais une instance de PSpell\Dictionary ; auparavant, une ressource était retournée.

Exemples

Exemple #1 pspell_new()

<?php
$pspell = 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, PHP 8)

pspell_save_wordlist — Sauve le dictionnaire personnel dans un fichier

Description

pspell_save_wordlist(PSpell\Dictionary $dictionary): bool

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

Une instance de PSpell\Dictionary.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | La paramètre dictionary attend désormais une instance de PSpell\Dictionary ; auparavant, une ressource était expected.

Exemples

Exemple #1 pspell_add_to_personal()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/tmp/dicts/newdict");
$pspell = pspell_new_config($pspell_config);

pspell_add_to_personal($pspell, "Vlad");
pspell_save_wordlist($pspell);
?>

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, PHP 8)

pspell_store_replacement — Enregistre une paire de remplacement pour un mot

Description

pspell_store_replacement(PSpell\Dictionary $dictionary, string $misspelled, string $correct): bool

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

Une instance de PSpell\Dictionary.

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.

Historique

Version | Description
8.1.0 | La paramètre dictionary attend désormais une instance de PSpell\Dictionary ; auparavant, une ressource était expected.

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 = pspell_new_config($pspell_config);

pspell_store_replacement($pspell, $misspelled, $correct);
pspell_save_wordlist($pspell);
?>

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
  • PSpell\Dictionary »
  • PHP Manual
  • Fonctions Pspell
  • Suggère l'orthographe d'un mot

pspell_suggest

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

pspell_suggest — Suggère l'orthographe d'un mot

Description

pspell_suggest(PSpell\Dictionary $dictionary, string $word): array|false

pspell_suggest() retourne un tableau de suggestions pour le mot word.

Liste de paramètres

dictionary

Une instance de PSpell\Dictionary.

word

Le mot testé.

Valeurs de retour

Retourne un tableau de suggestions pour le mot word.

Historique

Version | Description
8.1.0 | La paramètre dictionary attend désormais une instance de PSpell\Dictionary ; auparavant, une ressource était expected.

Exemples

Exemple #1 Exemple avec pspell_suggest()

<?php
$pspell = pspell_new("en");

if (!pspell_check($pspell, "testt")) {
$suggestions = pspell_suggest($pspell, "testt");

foreach ($suggestions as $suggestion) {
echo "Orthographes suggérées : $suggestion<br />";
}
}
?>


The PSpell\Dictionary class

(PHP 8 >= 8.1.0)

Introduction

Une classe complètement opaque qui remplace la ressource pspell à partir de PHP 8.1.0.

Synopsis de la classe

final class PSpell\Dictionary {
}


The PSpell\Config class

(PHP 8 >= 8.1.0)

Introduction

Une classe complètement opaque qui remplace la ressource pspell config à partir de PHP 8.1.0.

Synopsis de la classe

final class PSpell\Config {
}


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 est délié et déplacer dans » PECL à partir de PHP 7.4.0. Considérer l'utilisation des extensions Chaînes Multioctets ou iconv à la place.

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

PHP 7.4

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 7.4.0

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 : » https://pecl.php.net/package/recode.

PHP < 7.4

Pour utiliser les fonctions définies dans ce module PHP doit être compilé 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 après 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 et YAZ ne peuvent être utilisées simultanément puisqu'elles utilisent un symbole interne commun. Note: Yaz 2.0 et supérieur ne souffre plus de 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 < 7.4.0)

recode_file — Recodage de fichier à fichier, en fonction de la demande

Description

recode_file(string $request, resource $input, resource $output): bool

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 < 7.4.0)

recode_string — Recode une chaîne en fonction de la requête

Description

recode_string(string $request, string $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.
  • mb_convert_encoding() - Convertir une chaîne d'un codage de caractères à un autre
  • UConverter::transcode() - Convertit une chaîne d'un jeu de caractères à un autre
  • iconv() - Convertit une chaîne de caractères à partir d'un encodage vers un autre


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 < 7.4.0)

recode — Alias de recode_string()

Description

Cette fonction est un alias de : recode_string().


Génération et traitement des images

  • 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
    • GdImage — La classe GdImage
    • GdFont — La classe GdFont
  • 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 — La classe ImagickKernel


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
    • exif_tagname — Lit le nom d'en-tête EXIF d'un index
    • exif_thumbnail — Récupère la miniature d'une image
    • 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. Elles sont communément présente dans les images JPEG et TIFF.


Pré-requis

Votre PHP doit être compilé avec l'option --enable-exif. Pour activer la prise en charge des tags EXIF multibyte l'extension mbstring doit être activée lors de la compilation avec --enable-mbstring. PHP n'a besoin d'aucune bibliothèque additionnelle pour faire fonctionner le module exif.

Windows seulement : L'extension mbstring est toujour activée. Notez que l'extension mbstring doit être chargée avant EXIF dans php.ini.


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" | INI_ALL |
exif.decode_unicode_motorola | "UCS-2BE" | INI_ALL |
exif.decode_unicode_intel | "UCS-2LE" | INI_ALL |
exif.encode_jis | "" | INI_ALL |
exif.decode_jis_motorola | "JIS" | INI_ALL |
exif.decode_jis_intel | "JIS" | INI_ALL |
Pour plus de détails sur les modes 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 (int)
Cette constante a la valeur 1 si mbstring est activé, sinon sa valeur est 0.

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
  • exif_tagname — Lit le nom d'en-tête EXIF d'un index
  • exif_thumbnail — Récupère la miniature d'une image
  • 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, PHP 8)

exif_imagetype — Détermine le type d'une image

Description

exif_imagetype(string $filename): int|false

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.

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
18 | IMAGETYPE_WEBP
19 | IMAGETYPE_AVIF

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
7.1.0 | Ajout de la prise en charge de WebP.
8.1.0 | Ajout de la prise en charge de AVIF.

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

  • « exif_imagetype
  • exif_tagname »
  • PHP Manual
  • Fonctions Exif
  • Lit les en-têtes EXIF dans les images

exif_read_data

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

exif_read_data — Lit les en-têtes EXIF dans les images

Description

exif_read_data(
resource|string $file,
?string $required_sections = null,
bool $as_arrays = false,
bool $read_thumbnail = false
): array|false

exif_read_data() lit les en-têtes EXIF des images. 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).

Liste de paramètres

file

L'emplacement du fichier image. Il peut s'agir soit d'un chemin d'accès au fichier (les wrappers de flux sont également pris en charge comme d'habitude), soit d'un flux resource.

required_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.

as_arrays

Spécifie si chaque section doit devenir un tableau ou non. Les required_sections COMPUTED, THUMBNAIL et COMMENT seront toujours transformées en tableau, car elle contiennent des noms qui risquent d'être en conflit.

read_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 index 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.

Erreurs / Exceptions

Des erreurs de niveau E_WARNING et/ou E_NOTICE peuvent être levé pour des tags non supportés ou autres conditions d'erreur potentielle, mais la fonction tente quand même de lire toutes les informations compréhensibles.

Historique

Version | Description
8.0.0 | required_sections est désormais nullable.
7.2.0

Le support des formats EXIF suivants a été ajouté :

  • Samsung
  • DJI
  • Panasonic
  • Sony
  • Pentax
  • Minolta
  • Sigma/Foveon
  • AGFA
  • Kyocera
  • Ricoh
  • Epson

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.

Résultat de l'exemple ci-dessus est 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

Exemple #2 exif_read_data() avec les flux disponible depuis PHP 7.2.0

<?php
// Ouvrir le fichier, cela devrait être en mode binaire
$fp = fopen('/path/to/image.jpg', 'rb');

if (!$fp) {
echo 'Error: Unable to open image for reading';
exit;
}

// Essayez de lire les en-têtes EXIF
$headers = exif_read_data($fp);

if (!$headers) {
echo 'Error: Unable to read exif headers';
exit;
}

// Afficher les entêtes 'COMPUTED'
echo 'EXIF Headers:' . PHP_EOL;

foreach ($headers['COMPUTED'] as $header => $value) {
printf(' %s => %s%s', $header, $value, PHP_EOL);
}
?>

Résultat de l'exemple ci-dessus est similaire à :

EXIF Headers:
 Height => 576
 Width => 1024
 IsColor => 1
 ByteOrderMotorola => 0
 ApertureFNumber => f/5.6
 UserComment =>
 UserCommentEncoding => UNDEFINED
 Copyright => Denis
 Thumbnail.FileType => 2
 Thumbnail.MimeType => image/jpeg

Notes

Note:

Si mbstring est activé, EXIF va tenter de traiter l'Unicode et de choisir un jeu de caractères comme spécifié par exif.decode_unicode_motorola et exif.decode_unicode_intel. L'extension EXIF ne tentera pas de déterminer l'encodage de lui même, et il appartient à l'utilisateur de spécifier correctement l'encodage à utiliser pour le décodage en définissant l'une des deux directives INI avant d'appeler exif_read_data().

Note:

Si le paramètre file est utilisé pour passer un flux à la fonction, alors le flux doit être repositionnable. Notez que la position du pointeur d'un fichier n'est pas modifié après le retour de cette fonction.

Voir aussi

  • exif_thumbnail() - Récupère la miniature d'une image
  • getimagesize() - Retourne la taille d'une image
  • Liste des protocoles et des gestionnaires supportés


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, PHP 8)

exif_tagname — Lit le nom d'en-tête EXIF d'un index

Description

exif_tagname(int $index): string|false

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

  • « exif_tagname
  • read_exif_data »
  • PHP Manual
  • Fonctions Exif
  • Récupère la miniature d'une image

exif_thumbnail

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

exif_thumbnail — Récupère la miniature d'une image

Description

exif_thumbnail(
resource|string $file,
int &$width = null,
int &$height = null,
int &$image_type = null
): string|false

exif_thumbnail() lit la miniature de l'image.

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

file

Localisation du fichier image. Il peut s'agir soit d'un chemin d'accès au fichier, soit d'un flux ressource.

width

La largeur retournée de la miniature retournée.

height

La hauteur retournée de la miniature retournée.

image_type

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.

Historique

Version | Description
7.2.0 | Le paramètre file supporte les fichiers locaux ou les ressources de flux.

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';
}
?>

Notes

Note:

Si le paramètre file est utilisé pour passer un flux à la fonction, alors le flux doit être repositionnable. Notez que la position du pointeur d'un fichier n'est pas modifié après le retour de cette fonction.

Voir aussi

  • exif_read_data() - Lit les en-têtes EXIF dans les images
  • 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()

Avertissement

Cet alias est OBSOLÈTE en PHP 7.2.0, et SUPPRIMÉ à partir de PHP 8.0.0.

Description

Cette fonction est un alias de : exif_read_data().

Historique

Version | Description
7.2.0 | Cet alias de fonction a été déconseillé.


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ée, en utilisant optionnellement une zone de découpe
    • imageaffinematrixconcat — Concatène deux matrices de transformation affine
    • imageaffinematrixget — Obtenir une matrice de transformation affine
    • imagealphablending — Modifie le mode de blending d'une image
    • imageantialias — Utiliser ou non les fonctions d'antialias
    • imagearc — Dessine une ellipse partielle
    • imageavif — Affichage de l'image vers le navigateur ou dans un fichier
    • imagebmp — Affiche ou enregistre une image BMP au navigateur ou dans un fichier
    • 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
    • imagecreatefromavif — Crée une nouvelle image depuis un fichier ou une URL
    • imagecreatefrombmp — Crée une nouvelle image depuis un fichier ou 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
    • 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
    • imagecreatefromtga — Crée une nouvelle image depuis un fichier ou une URL
    • 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 sur le rectangle donné
    • 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 — Récupère le rectangle de coupure
    • imagegetinterpolation — Récupère la méthode d'interpolation
    • 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 — Dessine un polygone ouvert
    • 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
    • imagerectangle — Dessine un rectangle
    • imageresolution — Récupère ou définit la résoltion de l'image
    • imagerotate — Fait tourner une image d'un angle
    • imagesavealpha — Détermine si les informations complètes du canal alpha doivent être conservées lors de la sauvegardes d'images
    • imagescale — Met à l'échelle une image en utilisant une hauteur et une largeur fournies
    • imagesetbrush — Modifie la brosse pour le dessin des lignes
    • imagesetclip — Définit le rectangle de coupure
    • 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
  • GdImage — La classe GdImage
  • GdFont — La classe GdFont


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.

Attention

Tandis que la version empaqueter de librairie GD utilise le gestionaire de mémoire Zend pour alouer de la mémoire, mais les versions système non, donc memory_limit ne s'applique pas.

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 |
PNG | true | true |
GIF | true | true |
XBM | true | true |
XPM | true | false |
WBMP | true | true |
WebP | true | true |
BMP | true | true | Disponible à partir de PHP 7.2.0

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.

Note: libgd-2.1.0 ou supérieur est requis. Alternativement, utilisez la bibliothèque GD fourni avec PHP.

Note: La bibliothèque GD requiert zlib >= 1.2.0.4.

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 |  |
avif |  |
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 |
xpm | » http://www.ibiblio.org/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.
webp |  |

Vous pouvez vouloir étendre GD pour le faire fonction neravec des polices de caractères différentes. La bibliothèque » FreeType 2 est supportée.


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. À partir de PHP 7.4.0, --with-gd devient --enable-gd (s'il faut activer l'extension tout) et --with-external-gd (pour choisir d'utiliser une libgd externe, plutôt que celle fournie).

Sous Windows, vous devez inclure la bibliothèque php_gd.dll comme extension dans le fichier php.ini. Antérieur à PHP 8.0.0, la DLL était nommée php_gd2.dll.

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
avif | Pour activer le support de la bibliothèque avif, ajouter l'option --with-avif. Disponible à partir de PHP 8.1.0.
jpeg | Pour activer le support de la bibliothèque JPEG, ajouter l'option --with-jpeg-dir=DIR. Jpeg 6b, 7 ou 8 est supporté. À partir de PHP 7.4.0, utiliser à la place --with-jpeg
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. À partir de PHP 7.4.0, --with-png-dir et --with-zlib-dir ont été supprimée. libpng et zlib sont nécessaire.
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. À partir de PHP 7.4.0, utiliser à la place --with-xpm
webp | Pour activer la prise en charge de WebP, ajoutez --with-vpx-dir=DIR. À partir de PHP 7.4.0, utiliser à la place --with-webp

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. À partir de PHP 7.4.0 utilisez --with-freetype à la place, qui dépend de pkg-config.
Chaînes TrueType | Pour activer le support des chaînes de caractères TrueType, ajoutez l'option --enable-gd-native-ttf. (Cette option n'a aucun effet et a été supprimée depuis PHP 7.2.0.)


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 | "1" | INI_ALL |
Pour plus de détails sur les modes 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 (main pas les érreurs) créées par libjpeg(-turbo).

Historique pour gd.jpeg_ignore_warning
Version | Description
7.1.0 | La valeur par défaut de gd.jpeg_ignore_warning a été changé de 0 à 1.

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 si vous utilisez la librairie GD intégrée.


Types de ressources

Cette extension définit les types de ressources suivantes :

Liste des ressource dans GD
Nom | Description | Notes
gd | Ressource Image, utilisé par des fonctions comme imagecreatefrompng() | Antérieur à PHP 8.0.0
gd font | Ressource Police créé en interne par imageloadfont() | Antérieur à PHP 8.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.

GD_VERSION (string)
La version GD de PHP.
GD_MAJOR_VERSION (int)
La version majeur GD de PHP.
GD_MINOR_VERSION (int)
La version mineure GD de PHP.
GD_RELEASE_VERSION (int)
La version GD fourni avec PHP.
GD_EXTRA_VERSION (string)
La version "extra" GD (beta/rc..) de PHP.
GD_BUNDLED (int)
Lorsque la version interne de GD est utilisée, cette constante vaut 1, sinon, elle vaut 0.
IMG_AVIF (int)
Utilisée comme valeur retournée par la fonction imagetypes() (Disponible à partir de PHP 8.1.0)
IMG_BMP (int)
Utilisée comme valeur retournée par la fonction imagetypes()
IMG_GIF (int)
Utilisée comme valeur retournée par la fonction imagetypes()
IMG_JPG (int)
Utilisée comme valeur retournée par la fonction imagetypes()
IMG_JPEG (int)
Utilisée comme valeur retournée par la fonction imagetypes()

Note:

Cette constante à la même valeur que IMG_JPG

IMG_PNG (int)
Utilisée comme valeur retournée par la fonction imagetypes()
IMG_WBMP (int)
Utilisée comme valeur retournée par la fonction imagetypes()
IMG_XPM (int)
Utilisée comme valeur retournée par la fonction imagetypes()
IMG_WEBP (int)
Utilisée comme valeur retournée par la fonction imagetypes() (Disponible à partir de PHP 7.0.10)
IMG_WEBP_LOSSLESS (int)
(Disponible à partir de PHP 8.1.0)
IMG_COLOR_TILED (int)
Option spéciale de couleur qui peut être utilisée à la place d'une couleur allouée avec la fonction imagecolorallocate() ou la fonction imagecolorallocatealpha().
IMG_COLOR_STYLED (int)
Option spéciale de couleur qui peut être utilisée à la place d'une couleur allouée avec la fonction imagecolorallocate() ou la fonction imagecolorallocatealpha().
IMG_COLOR_BRUSHED (int)
Option spéciale de couleur qui peut être utilisée à la place d'une couleur allouée avec la fonction imagecolorallocate() ou la fonction imagecolorallocatealpha().
IMG_COLOR_STYLEDBRUSHED (int)
Option spéciale de couleur qui peut être utilisée à la place d'une couleur allouée avec la fonction imagecolorallocate() ou la fonction imagecolorallocatealpha().
IMG_COLOR_TRANSPARENT (int)
Option spéciale de couleur qui peut être utilisée à la place d'une couleur allouée avec la fonction imagecolorallocate() ou la fonction imagecolorallocatealpha().
IMG_AFFINE_TRANSLATE (int)
Un type de constante de transformation affinée utilisé par la fonction imageaffinematrixget().
IMG_AFFINE_SCALE (int)
Un type de constante de transformation affinée utilisé par la fonction imageaffinematrixget().
IMG_AFFINE_ROTATE (int)
Un type de constante de transformation affinée utilisé par la fonction imageaffinematrixget().
IMG_AFFINE_SHEAR_HORIZONTAL (int)
Un type de constante de transformation affinée utilisé par la fonction imageaffinematrixget().
IMG_AFFINE_SHEAR_VERTICAL (int)
Un type de constante de transformation affinée utilisé par la fonction imageaffinematrixget().
IMG_ARC_ROUNDED (int)
Une constante de style utilisée par la fonction imagefilledarc().

Note:

Cette constante à la même valeur que IMG_ARC_PIE

IMG_ARC_PIE (int)
Une constante de style utilisée par la fonction imagefilledarc().
IMG_ARC_CHORD (int)
Une constante de style utilisée par la fonction imagefilledarc().
IMG_ARC_NOFILL (int)
Une constante de style utilisée par la fonction imagefilledarc().
IMG_ARC_EDGED (int)
Une constante de style utilisée par la fonction imagefilledarc().
IMG_GD2_RAW (int)
Un type de constante utilisé par la fonction imagegd2().
IMG_GD2_COMPRESSED (int)
Un type de constante utilisé par la fonction imagegd2().
IMG_EFFECT_REPLACE (int)
Un effet d'alpha blending utilisé par la fonction imagelayereffect().
IMG_EFFECT_ALPHABLEND (int)
Un effet d'alpha blending utilisé par la fonction imagelayereffect().
IMG_EFFECT_NORMAL (int)
Un effet d'alpha blending utilisé par la fonction imagelayereffect().
IMG_EFFECT_OVERLAY (int)
Un effet d'alpha blending utilisé par la fonction imagelayereffect().
IMG_EFFECT_MULTIPLY (int)
Un effet d'alpha blending utilisé par la fonction imagelayereffect().
IMG_FILTER_NEGATE (int)
Un filtre spécial GD utilisé par la fonction imagefilter().
IMG_FILTER_GRAYSCALE (int)
Un filtre spécial GD utilisé par la fonction imagefilter().
IMG_FILTER_BRIGHTNESS (int)
Un filtre spécial GD utilisé par la fonction imagefilter().
IMG_FILTER_CONTRAST (int)
Un filtre spécial GD utilisé par la fonction imagefilter().
IMG_FILTER_COLORIZE (int)
Un filtre spécial GD utilisé par la fonction imagefilter().
IMG_FILTER_EDGEDETECT (int)
Un filtre spécial GD utilisé par la fonction imagefilter().
IMG_FILTER_GAUSSIAN_BLUR (int)
Un filtre spécial GD utilisé par la fonction imagefilter().
IMG_FILTER_SELECTIVE_BLUR (int)
Un filtre spécial GD utilisé par la fonction imagefilter().
IMG_FILTER_EMBOSS (int)
Un filtre spécial GD utilisé par la fonction imagefilter().
IMG_FILTER_MEAN_REMOVAL (int)
Un filtre spécial GD utilisé par la fonction imagefilter().
IMG_FILTER_SMOOTH (int)
Un filtre spécial GD utilisé par la fonction imagefilter().
IMG_FILTER_PIXELATE (int)
Un filtre spécial GD utilisé par la fonction imagefilter().
IMG_FILTER_SCATTER (int)
Un filtre spécial GD utilisé par la fonction imagefilter(). (Disponible à partir de PHP 7.4.0)
IMAGETYPE_GIF (int)
Une constante de type d'image utilisée par la fonction image_type_to_mime_type() et la fonction image_type_to_extension().
IMAGETYPE_JPEG (int)
Une constante de type d'image utilisée par la fonction image_type_to_mime_type() et la fonction image_type_to_extension().
IMAGETYPE_JPEG2000 (int)
Une constante de type d'image utilisée par la fonction image_type_to_mime_type() et la fonction image_type_to_extension().
IMAGETYPE_PNG (int)
Une constante de type d'image utilisée par la fonction image_type_to_mime_type() et la fonction image_type_to_extension().
IMAGETYPE_SWF (int)
Une constante de type d'image utilisée par la fonction image_type_to_mime_type() et la fonction image_type_to_extension().
IMAGETYPE_PSD (int)
Une constante de type d'image utilisée par la fonction image_type_to_mime_type() et la fonction image_type_to_extension().
IMAGETYPE_BMP (int)
Une constante de type d'image utilisée par la fonction image_type_to_mime_type() et la fonction image_type_to_extension().
IMAGETYPE_WBMP (int)
Une constante de type d'image utilisée par la fonction image_type_to_mime_type() et la fonction image_type_to_extension().
IMAGETYPE_XBM (int)
Une constante de type d'image utilisée par la fonction image_type_to_mime_type() et la fonction image_type_to_extension().
IMAGETYPE_TIFF_II (int)
Une constante de type d'image utilisée par la fonction image_type_to_mime_type() et la fonction image_type_to_extension().
IMAGETYPE_TIFF_MM (int)
Une constante de type d'image utilisée par la fonction image_type_to_mime_type() et la fonction image_type_to_extension().
IMAGETYPE_IFF (int)
Une constante de type d'image utilisée par la fonction image_type_to_mime_type() et la fonction image_type_to_extension().
IMAGETYPE_JB2 (int)
Une constante de type d'image utilisée par la fonction image_type_to_mime_type() et la fonction image_type_to_extension().
IMAGETYPE_JPC (int)
Une constante de type d'image utilisée par la fonction image_type_to_mime_type() et la fonction image_type_to_extension().
IMAGETYPE_JP2 (int)
Une constante de type d'image utilisée par la fonction image_type_to_mime_type() et la fonction image_type_to_extension().
IMAGETYPE_JPX (int)
Une constante de type d'image utilisée par la fonction image_type_to_mime_type() et la fonction image_type_to_extension().
IMAGETYPE_SWC (int)
Une constante de type d'image utilisée par la fonction image_type_to_mime_type() et la fonction image_type_to_extension().
IMAGETYPE_ICO (int)
Une constante de type d'image utilisée par la fonction image_type_to_mime_type() et la fonction image_type_to_extension().
IMAGETYPE_WEBP (int)
Une constante de type d'image utilisée par la fonction image_type_to_mime_type() et la fonction image_type_to_extension(). (Disponible à partir de PHP 7.1.0)
IMAGETYPE_AVIF (int)
Une constante de type d'image utilisée par la fonction image_type_to_mime_type() et la fonction image_type_to_extension(). (Disponible à partir de PHP 8.1.0)
PNG_NO_FILTER (int)
Un filtre PNG spécial, utilisé par la fonction imagepng().
PNG_FILTER_NONE (int)
Un filtre PNG spécial, utilisé par la fonction imagepng().
PNG_FILTER_SUB (int)
Un filtre PNG spécial, utilisé par la fonction imagepng().
PNG_FILTER_UP (int)
Un filtre PNG spécial, utilisé par la fonction imagepng().
PNG_FILTER_AVG (int)
Un filtre PNG spécial, utilisé par la fonction imagepng().
PNG_FILTER_PAETH (int)
Un filtre PNG spécial, utilisé par la fonction imagepng().
PNG_ALL_FILTERS (int)
Un filtre PNG spécial, utilisé par la fonction imagepng().
IMG_FLIP_VERTICAL (int)
Utilisé avec la fonction imageflip(), disponible à partir de PHP 5.5.0.
IMG_FLIP_HORIZONTAL (int)
Utilisé avec la fonction imageflip(), disponible à partir de PHP 5.5.0.
IMG_FLIP_BOTH (int)
Utilisé avec la fonction imageflip(), disponible à partir de PHP 5.5.0.
IMG_BELL (int)
Utilisé avec la fonction imagesetinterpolation(), disponible à partir de PHP 5.5.0.
IMG_BESSEL (int)
Utilisé avec la fonction imagesetinterpolation(), disponible à partir de PHP 5.5.0.
IMG_BILINEAR_FIXED (int)
Utilisé avec la fonction imagesetinterpolation(), disponible à partir de PHP 5.5.0.
IMG_BICUBIC (int)
Utilisé avec la fonction imagesetinterpolation(), disponible à partir de PHP 5.5.0.
IMG_BICUBIC (int)
Utilisé avec la fonction imagesetinterpolation(), disponible à partir de PHP 5.5.0.
IMG_BLACKMAN (int)
Utilisé avec la fonction imagesetinterpolation(), disponible à partir de PHP 5.5.0.
IMG_BOX (int)
Utilisé avec la fonction imagesetinterpolation(), disponible à partir de PHP 5.5.0.
IMG_BSPLINE (int)
Utilisé avec la fonction imagesetinterpolation(), disponible à partir de PHP 5.5.0.
IMG_CATMULLROM (int)
Utilisé avec la fonction imagesetinterpolation(), disponible à partir de PHP 5.5.0.
IMG_GAUSSIAN (int)
Utilisé avec la fonction imagesetinterpolation(), disponible à partir de PHP 5.5.0.
IMG_GENERALIZED_CUBIC (int)
Utilisé avec la fonction imagesetinterpolation(), disponible à partir de PHP 5.5.0.
IMG_HERMITE (int)
Utilisé avec la fonction imagesetinterpolation(), disponible à partir de PHP 5.5.0.
IMG_HAMMING (int)
Utilisé avec la fonction imagesetinterpolation(), disponible à partir de PHP 5.5.0.
IMG_HANNING (int)
Utilisé avec la fonction imagesetinterpolation(), disponible à partir de PHP 5.5.0.
IMG_MITCHELL (int)
Utilisé avec la fonction imagesetinterpolation(), disponible à partir de PHP 5.5.0.
IMG_POWER (int)
Utilisé avec la fonction imagesetinterpolation(), disponible à partir de PHP 5.5.0.
IMG_QUADRATIC (int)
Utilisé avec la fonction imagesetinterpolation(), disponible à partir de PHP 5.5.0.
IMG_SINC (int)
Utilisé avec la fonction imagesetinterpolation(), disponible à partir de PHP 5.5.0.
IMG_NEAREST_NEIGHBOUR (int)
Utilisé avec la fonction imagesetinterpolation(), disponible à partir de PHP 5.5.0.
IMG_WEIGHTED4 (int)
Utilisé avec la fonction imagesetinterpolation(), disponible à partir de PHP 5.5.0.
IMG_TRIANGLE (int)
Utilisé avec la fonction imagesetinterpolation(), disponible à partir de 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);
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ée, en utilisant optionnellement une zone de découpe
  • imageaffinematrixconcat — Concatène deux matrices de transformation affine
  • imageaffinematrixget — Obtenir une matrice de transformation affine
  • imagealphablending — Modifie le mode de blending d'une image
  • imageantialias — Utiliser ou non les fonctions d'antialias
  • imagearc — Dessine une ellipse partielle
  • imageavif — Affichage de l'image vers le navigateur ou dans un fichier
  • imagebmp — Affiche ou enregistre une image BMP au navigateur ou dans un fichier
  • 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
  • imagecreatefromavif — Crée une nouvelle image depuis un fichier ou une URL
  • imagecreatefrombmp — Crée une nouvelle image depuis un fichier ou 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
  • 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
  • imagecreatefromtga — Crée une nouvelle image depuis un fichier ou une URL
  • 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 sur le rectangle donné
  • 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 — Récupère le rectangle de coupure
  • imagegetinterpolation — Récupère la méthode d'interpolation
  • 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 — Dessine un polygone ouvert
  • 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
  • imagerectangle — Dessine un rectangle
  • imageresolution — Récupère ou définit la résoltion de l'image
  • imagerotate — Fait tourner une image d'un angle
  • imagesavealpha — Détermine si les informations complètes du canal alpha doivent être conservées lors de la sauvegardes d'images
  • imagescale — Met à l'échelle une image en utilisant une hauteur et une largeur fournies
  • imagesetbrush — Modifie la brosse pour le dessin des lignes
  • imagesetclip — Définit le rectangle de coupure
  • 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, PHP 8)

gd_info — Retourne des informations à propos de la bibliothèque GD installée

Description

gd_info(): array

Retourne des informations à propos de la bibliothèque GD installée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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.
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 bool. true si le support WebP est inclus.
AVIF Support | Valeur bool. true si le support AVIF est inclus. Disponible à partir de PHP 8.1.0.

Exemples

Exemple #1 Exemple avec gd_info()

<?php
var_dump(gd_info());
?>

Résultat de l'exemple ci-dessus est similaire à :

array(9) {
  ["GD Version"]=>
  string(24) "bundled (2.1.0 compatible)"
  ["FreeType 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)
  ["AVIF Support"]=>
  bool(false)
}

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
  • imageavif() - 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


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, PHP 8)

getimagesize — Retourne la taille d'une image

Description

getimagesize(string $filename, array &$image_info = null): array|false

getimagesize() détermine la taille de toute image supportée 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 image_info.

Attention

Cette fonction s'attend à ce que filename soit un fichier image valide. Si un fichier non image est fourni, il peut être détecté de manière incorrecte en tant qu'image et la fonction retournera avec succès, mais le tableau peut contenir des valeurs absurdes.

N'utilisez pas getimagesize() pour vérifier qu'un fichier donné est une image valide. Utilisez à la place une solution prévue pour cela telle que l'extension FileInfo.

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.

Note: Les images GIF consistant d'un ou plusieurs cadres, où chaque cadre peut occuper uniquement une partie de l'image. La taille de l'image qui est rapportée par getimagesize() est la taille globale (lu depuis le descripteur logique de l'écran).

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.

image_info

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.

Note:

image_info supporte uniquement les fichiers JFIF.

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
8.2.0 | Retourne les dimensions actuelles de l'image, bits et chaînes des images AVIF; précédemment, les dimensions étaient reportées en tant que 0x0, et bits et chaînes n'étaient pas reportées du tout.
7.1.0 | Ajout du support de WebP.

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
  • exif_thumbnail() - Récupère la miniature d'une image
  • imagesx() - Retourne la largeur d'une image
  • imagesy() - Retourne la hauteur de l'image


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, PHP 8)

getimagesizefromstring — Récupère la taille d'une image depuis une chaîne

Description

getimagesizefromstring(string $string, array &$image_info = null): array|false

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

string

Les données de l'image, sous la forme d'une chaîne.

image_info

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, PHP 8)

image_type_to_extension — Retourne l'extension du fichier pour le type d'image

Description

image_type_to_extension(int $image_type, bool $include_dot = true): string|false

image_type_to_extension() retourne l'extension pour la constante IMAGETYPE_XXX fournie.

Liste de paramètres

image_type

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, ou false si une erreur survient.

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, PHP 8)

image_type_to_mime_type — Lit le Mime-Type d'un type d'image

Description

image_type_to_mime_type(int $image_type): string

Détermine le type MIME (Mime-Type), à utiliser dans l'en-tête HTTP Content-type.

Liste de paramètres

image_type

Une des constantes IMAGETYPE_XXX.

Valeurs de retour

Les valeurs retournées sont les suivantes

Valeurs des constantes retournées
image_type | 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
IMAGETYPE_WEBP | image/webp
IMAGETYPE_AVIF | image/avif

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
  • exif_thumbnail() - Récupère la miniature d'une image


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

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.3.0, et a été SUPPRIMÉE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

image2wbmp(resource $image, string $filename = ?, int $foreground = ?): bool

image2wbmp() affiche ou enregistre une version WBMP de l'image image fournie.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'image, tel que imagecreatetruecolor().

filename

Chemin vers le fichier de sauvegarde. S'il n'est pas fourni, le flux de l'image sera directement affiché.

foreground

La couleur du premier plan peut être définit avec ce paramètre en fournissant un idantifiant obtenu avec imagecolorallocate(). La couleur du premier plan par défaut est noir.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Attention

Toutefois, si libgd ne parvient pas à produire l'image, cette fonction retourne true.

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);

?>

Voir aussi

  • imagewbmp() - Affichage de l'image vers le navigateur ou dans un fichier


Retourne une image contenant l'image source transformée, en utilisant optionnellement une zone de découpe

  • « image2wbmp
  • imageaffinematrixconcat »
  • PHP Manual
  • Fonctions GD et images
  • Retourne une image contenant l'image source transformée, en utilisant optionnellement une zone de découpe

imageaffine

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

imageaffine — Retourne une image contenant l'image source transformée, en utilisant optionnellement une zone de découpe

Description

imageaffine(GdImage $image, array $affine, ?array $clip = null): GdImage|false

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

image

Un objet GdImage, 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"; ou null.

Valeurs de retour

Retourne l'objet d'image liée en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | clip est désormais nullable.
8.0.0 | En cas de succès, cette fonction retourne désormais une instance de GDImage ; auparavant, une resource était retournée.


Concatène deux matrices de transformation affine

  • « imageaffine
  • imageaffinematrixget »
  • PHP Manual
  • Fonctions GD et images
  • Concatène deux matrices de transformation affine

imageaffinematrixconcat

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

imageaffinematrixconcat — Concatène deux matrices de transformation affine

Description

imageaffinematrixconcat(array $matrix1, array $matrix2): array|false

Retourne la concaténation de deux matrices de transformation affine, ce qui est utile si plusieurs transformations doivent être appliquées à la même image en une seule fois.

Liste de paramètres

matrix1

Une matrice de transformation affine (un tableau avec des clés de 0 à 5 et nombres décimaux en valeur).

matrix2

Une matrice de transformation affine (un tableau avec des clés de 0 à 5 et nombres décimaux en valeur).

Valeurs de retour

Une matrice de transformation affine (un tableau avec des clés de 0 à 5 et nombres décimaux en valeur). ou false si une erreur survient.

Exemples

Exemple #1 Exemple pour imageaffinematrixconcat()

<?php
$m1 = imageaffinematrixget(IMG_AFFINE_TRANSLATE, array('x' => 2, 'y' => 3));
$m2 = imageaffinematrixget(IMG_AFFINE_SCALE, array('x' => 4, 'y' => 5));
$matrix = imageaffinematrixconcat($m1, $m2);
print_r($matrix);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => 4
    [1] => 0
    [2] => 0
    [3] => 5
    [4] => 8
    [5] => 15
)

Voir aussi

  • imageaffine() - Retourne une image contenant l'image source transformée, en utilisant optionnellement une zone de découpe
  • imageaffinematrixget() - Obtenir une matrice de transformation affine


Obtenir une matrice de transformation affine

  • « imageaffinematrixconcat
  • imagealphablending »
  • PHP Manual
  • Fonctions GD et images
  • Obtenir une matrice de transformation affine

imageaffinematrixget

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

imageaffinematrixget — Obtenir une matrice de transformation affine

Description

imageaffinematrixget(int $type, array|float $options): array|false

Retourne une matrice de transformation affine.

Liste de paramètres

type

Une constante parmi IMG_AFFINE_*.

options

Si type est IMG_AFFINE_TRANSLATE ou IMG_AFFINE_SCALE, options doit être un array avec les clés x et y, les deux étant des valeurs float.

Si type est IMG_AFFINE_ROTATE, IMG_AFFINE_SHEAR_HORIZONTAL ou IMG_AFFINE_SHEAR_VERTICAL, options doit être une valeur float spécifiant l'angle.

Valeurs de retour

Une matrice de transformation affine (un tableau avec des clés de 0 à 5 et nombres décimaux en valeur). ou false si une erreur survient.

Exemples

Exemple #1 Exemple pour imageaffinematrixget()

<?php
$matrix = imageaffinematrixget(IMG_AFFINE_TRANSLATE, array('x' => 2, 'y' => 3));
print_r($matrix);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => 1
    [1] => 0
    [2] => 0
    [3] => 1
    [4] => 2
    [5] => 3
)

Voir aussi

  • imageaffine() - Retourne une image contenant l'image source transformée, en utilisant optionnellement une zone de découpe
  • imageaffinematrixconcat() - Concatène deux matrices de transformation affine


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, PHP 8)

imagealphablending — Modifie le mode de blending d'une image

Description

imagealphablending(GdImage $image, bool $enable): bool

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

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

enable

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.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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, PHP 8)

imageantialias — Utiliser ou non les fonctions d'antialias

Description

imageantialias(GdImage $image, bool $enable): bool

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

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

enable

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.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.
7.2.0 | imageantialias() est maintenant généralement disponible. Auparavant, elle était seulement disponible si PHP a été compilé avec la version groupée de la bibliothèque GD.

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);
?>

Résultat de l'exemple ci-dessus est similaire à :

Affichage de l'exemple : Une comparaison de 2 lignes, dont une avec un anti-aliasing

Voir aussi

  • imagecreatetruecolor() - Crée une nouvelle image en couleurs vraies


Dessine une ellipse partielle

  • « imageantialias
  • imageavif »
  • PHP Manual
  • Fonctions GD et images
  • Dessine une ellipse partielle

imagearc

(PHP 4, PHP 5, PHP 7, PHP 8)

imagearc — Dessine une ellipse partielle

Description

imagearc(
GdImage $image,
int $center_x,
int $center_y,
int $width,
int $height,
int $start_angle,
int $end_angle,
int $color
): bool

imagearc() dessine une ellipse partielle, centrée sur les coordonnées fournies.

Liste de paramètres

image

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

center_x

X : coordonnée du centre.

center_y

Y : coordonnée du centre.

width

La largeur de l'ellipse.

height

La hauteur de l'ellipse.

start_angle

L'angle de début de l'ellipse, en degrés.

end_angle

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 identificateur de couleur créé avec imagecolorallocate().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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);

?>

Résultat de l'exemple ci-dessus est 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


Affichage de l'image vers le navigateur ou dans un fichier

  • « imagearc
  • imagebmp »
  • PHP Manual
  • Fonctions GD et images
  • Affichage de l'image vers le navigateur ou dans un fichier

imageavif

(PHP 8 >= 8.1.0)

imageavif — Affichage de l'image vers le navigateur ou dans un fichier

Description

imageavif(
GdImage $image,
resource|string|null $file = null,
int $quality = -1,
int $speed = -1
): bool

Affiche ou sauvegarde une image au format AVIF en utilisant l'image fournie.

Liste de paramètres

image

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

file

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 non-défini ou null, le flux brute de l'image sera affiché directement.

quality

quality est un paramètre optionnel dont la plage varie de 0 (pire qualité, plus petit fichier) à 100 (meilleure qualité, plus grand fichier). Si -1 est passé en paramètre, la valeur par défaut 30 sera utilisée.

speed

speed est un paramètre optionnel dont la plage varie de 0 (encodage lent, plus petit fichier) à 10 (encodage rapide, plus grand fichier). Si -1 est passé en paramètre, la valeur par défaut 6 sera utilisée.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Attention

Toutefois, si libgd ne parvient pas à produire l'image, cette fonction retourne true.

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


Affiche ou enregistre une image BMP au navigateur ou dans un fichier

  • « imageavif
  • imagechar »
  • PHP Manual
  • Fonctions GD et images
  • Affiche ou enregistre une image BMP au navigateur ou dans un fichier

imagebmp

(PHP 7 >= 7.2.0, PHP 8)

imagebmp — Affiche ou enregistre une image BMP au navigateur ou dans un fichier

Description

imagebmp(GdImage $image, resource|string|null $file = null, bool $compressed = true): bool

Affiche ou enregistre une version BMP de l'image fournit.

Liste de paramètres

image

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

file

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 non-défini ou null, le flux brute de l'image sera affiché directement.

Note:

null est invalide si l'argument compressed est inutilisé.

compressed

Si le BMP doit être compréssé avec run-length encoding (RLE), ou pas.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Attention

Toutefois, si libgd ne parvient pas à produire l'image, cette fonction retourne true.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.
8.0.0 | Le type de compressed est désormais booléen ; auparavant c'était entier.

Exemples

Exemple #1 Enregistrer un fichier BMP

<?php
// Créer une image vierge et ajouter du texte
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);

imagestring($im, 1, 5, 5, 'BMP with PHP', $text_color);

// Save the image
imagebmp($im, 'php.bmp');

// Free up memory
imagedestroy($im);
?>


Dessine un caractère horizontalement

  • « imagebmp
  • imagecharup »
  • PHP Manual
  • Fonctions GD et images
  • Dessine un caractère horizontalement

imagechar

(PHP 4, PHP 5, PHP 7, PHP 8)

imagechar — Dessine un caractère horizontalement

Description

imagechar(
GdImage $image,
GdFont|int $font,
int $x,
int $y,
string $char,
int $color
): bool

imagechar() dessine le premier caractère de la chaîne char 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

Un objet GdImage, 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 une instance de GdFont retourné par imageloadfont().

x

X : coordonnée de départ.

y

Y : coordonnée de départ.

char

Le caractère à dessiner.

color

Un identificateur de couleur créé avec imagecolorallocate().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre font accepte désormais une instance de GdFont et un entier; auparavant seulement un entier était accepté.
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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);

?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

imagecharup — Dessine un caractère verticalement

Description

imagecharup(
GdImage $image,
GdFont|int $font,
int $x,
int $y,
string $char,
int $color
): bool

Dessine le premier caractère de la chaîne char verticalement dans l'image image fournie.

Liste de paramètres

image

Un objet GdImage, 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 une instance de GdFont retourné par imageloadfont().

x

X : coordonnée de départ.

y

Y : coordonnée de départ.

char

Le caractère à dessiner.

color

Un identificateur de couleur créé avec imagecolorallocate().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre font accepte désormais une instance de GdFont et un entier; auparavant seulement un entier était accepté.
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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);

?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

imagecolorallocate — Alloue une couleur pour une image

Description

imagecolorallocate(
GdImage $image,
int $red,
int $green,
int $blue
): int|false

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

Un objet GdImage, 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
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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, PHP 8)

imagecolorallocatealpha — Alloue une couleur à une image

Description

imagecolorallocatealpha(
GdImage $image,
int $red,
int $green,
int $blue,
int $alpha
): int|false

imagecolorallocatealpha() se comporte comme imagecolorallocate() avec en plus le paramètre de transparence alpha.

Liste de paramètres

image

Un objet GdImage, 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
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

Exemples

Exemple #1 Exemple d'utilisation de 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);
?>

Résultat de l'exemple ci-dessus est similaire à :

Sortie de l'exemple : imagecolorallocatealpha()

Exemple #2 Conversion de valeur alpha typique pour l'utiliser avec imagecolorallocatealpha()

Généralement les valeurs alpha 0 désignent les pixels complètement transparant, et le canal alpha a 8 bits. Pour convertir de telle valeurs alpha pour être compatible avec imagecolorallocatealpha(), un peu d'arithmetique simple est suffisante :

<?php
$alpha8 = 0; // fully transparent
var_dump(127 - ($alpha8 >> 1));
$alpha8 = 255; // fully opaque
var_dump(127 - ($alpha8 >> 1));
?>

L'exemple ci-dessus va afficher :

int(127)
int(0)

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, PHP 8)

imagecolorat — Retourne l'index de la couleur d'un pixel donné

Description

imagecolorat(GdImage $image, int $x, int $y): int|false

Retourne l'index de la couleur du pixel situé aux coordonnées spécifiées, dans l'image image.

Si 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

Un objet GdImage, 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 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
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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);
?>

Résultat de l'exemple ci-dessus est 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);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

imagecolorclosest — Retourne l'index de la couleur la plus proche d'une couleur donnée

Description

imagecolorclosest(
GdImage $image,
int $red,
int $green,
int $blue
): int

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

Un objet GdImage, 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.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

imagecolorclosestalpha — Retourne la couleur la plus proche, en tenant compte du canal alpha

Description

imagecolorclosestalpha(
GdImage $image,
int $red,
int $green,
int $blue,
int $alpha
): int

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

Un objet GdImage, 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);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

imagecolorclosesthwb — Lit l'index de la couleur spécifiée avec sa teinte, blanc et noir

Description

imagecolorclosesthwb(
GdImage $image,
int $red,
int $green,
int $blue
): int

Lit l'index de la couleur spécifiée avec sa teinte, blanc et noir.

Liste de paramètres

image

Un objet GdImage, 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.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

Exemples

Exemple #1 Exemple avec imagecolorclosesthwb()

<?php
$im = imagecreatefromgif('php.gif');

echo 'HWB : ' . imagecolorclosesthwb($im, 116, 115, 152);

imagedestroy($im);
?>

Résultat de l'exemple ci-dessus est similaire à :

HWB: 33

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, PHP 8)

imagecolordeallocate — Supprime une couleur d'une image

Description

imagecolordeallocate(GdImage $image, int $color): bool

Supprime la couleur color précédemment allouée avec la fonction imagecolorallocate(), pour l'image image.

Liste de paramètres

image

Un objet GdImage, 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.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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, PHP 8)

imagecolorexact — Retourne l'index de la couleur donnée

Description

imagecolorexact(
GdImage $image,
int $red,
int $green,
int $blue
): int

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

Un objet GdImage, 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.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

imagecolorexactalpha — Retourne l'index d'une couleur avec son canal alpha

Description

imagecolorexactalpha(
GdImage $image,
int $red,
int $green,
int $blue,
int $alpha
): int

Retourne l'index d'une couleur avec son canal alpha.

Liste de paramètres

image

Un objet GdImage, 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.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

imagecolormatch — Fait correspondre un peu plus les couleurs de la version palette d'une image aux couleurs de sa version truecolor

Description

imagecolormatch(GdImage $image1, GdImage $image2): bool

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

Un objet d'image truecolor.

image2

Un objet 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.

Historique

Version | Description
8.0.0 | image1 et image2 attend désormais des instances de GdImage ; auparavant, resources étaient attendues

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, PHP 8)

imagecolorresolve — Retourne l'index de la couleur donnée, ou la plus proche possible

Description

imagecolorresolve(
GdImage $image,
int $red,
int $green,
int $blue
): int

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

Un objet GdImage, 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.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

imagecolorresolvealpha — Retourne un index de couleur ou son alternative la plus proche, y compris le canal alpha

Description

imagecolorresolvealpha(
GdImage $image,
int $red,
int $green,
int $blue,
int $alpha
): int

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

Un objet GdImage, 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.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

imagecolorset — Change la couleur dans une palette à l'index donné

Description

imagecolorset(
GdImage $image,
int $color,
int $red,
int $green,
int $blue,
int $alpha = 0
): ?false

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

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

color

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

The function returns null on success, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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, PHP 8)

imagecolorsforindex — Retourne la couleur associée à un index

Description

imagecolorsforindex(GdImage $image, int $color): array

Retourne la couleur associée à un index spécifié.

Liste de paramètres

image

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

color

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.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.
8.0.0 | La fonction imagecolorsforindex() lance désormais une exception ValueError si color est hors de portée; auparavant, false était retourné à la place.

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);

?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

imagecolorstotal — Calcule le nombre de couleurs d'une palette

Description

imagecolorstotal(GdImage $image): int

Retourne le nombre de couleurs de la palette de l'image.

Liste de paramètres

image

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

Valeurs de retour

Retourne le nombre de couleurs de la palette pour l'image image ou 0 pour les images truecolor.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

imagecolortransparent — Définit la couleur transparente

Description

imagecolortransparent(GdImage $image, ?int $color = null): int

Récupère ou définit la couleur transparente pour l'image fournit.

Liste de paramètres

image

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

color

Un identificateur de couleur créé avec 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 est null, et que l'image n'a pas de couleur transparente, l'identifiant retourné sera -1.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.
8.0.0 | color est désormais nullable.

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);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

imageconvolution — Applique une matrice de la convolution 3x3, en utilisant le coefficient et l'excentrage

Description

imageconvolution(
GdImage $image,
array $matrix,
float $divisor,
float $offset
): bool

imageconvolution() applique une matrice de la convolution 3x3, en utilisant le coefficient div et l'excentrage offset.

Liste de paramètres

image

Un objet GdImage, 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.

divisor

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.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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

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, PHP 8)

imagecopy — Copie une partie d'une image

Description

imagecopy(
GdImage $dst_image,
GdImage $src_image,
int $dst_x,
int $dst_y,
int $src_x,
int $src_y,
int $src_width,
int $src_height
): bool

Copie une partie de l'image src_image sur l'image de destination dst_image, en commençant aux coordonnées src_x, src_y et sur la largeur de src_width et la hauteur de src_height. La portion ainsi définie sera copiée et placée aux coordonnées dst_x et dst_y.

Liste de paramètres

dst_image

Ressource cible de l'image.

src_image

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_width

Largeur de la source.

src_height

Hauteur de la source.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | dst_image et src_image attendent désormais des instances de GdImage ; auparavant, des resources étaient attendues.

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);
?>

Résultat de l'exemple ci-dessus est similaire à :

Affichage de l'exemple : Copie une partie du logo PHP.net

Voir aussi

  • imagecrop() - Recadre une image sur le rectangle donné


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, PHP 8)

imagecopymerge — Copie et fusionne une partie d'une image

Description

imagecopymerge(
GdImage $dst_image,
GdImage $src_image,
int $dst_x,
int $dst_y,
int $src_x,
int $src_y,
int $src_width,
int $src_height,
int $pct
): bool

Copie une partie de l'image src_image dans l'image de destination dst_image en commençant aux coordonnées (src_x, src_y), avec la largeur src_width et la hauteur src_height. 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_image

Ressource cible de l'image.

src_image

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_width

Largeur de la source.

src_height

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.

Historique

Version | Description
8.0.0 | dst_image et src_image attendent désormais des instances de GdImage ; auparavant, des resources étaient attendues.

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, PHP 8)

imagecopymergegray — Copie et fusionne une partie d'une image en niveaux de gris

Description

imagecopymergegray(
GdImage $dst_image,
GdImage $src_image,
int $dst_x,
int $dst_y,
int $src_x,
int $src_y,
int $src_width,
int $src_height,
int $pct
): bool

imagecopymergegray() copie une partie de l'image src_image dans l'image de destination dst_image commençant aux coordonnées (src_x, src_y), avec la largeur src_width et la hauteur src_height. 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_image

Ressource cible de l'image.

src_image

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_width

Largeur de la source.

src_height

Hauteur de la source.

pct

Le paramètre src_image 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.

Historique

Version | Description
8.0.0 | dst_image et src_image attendent désormais des instances de GdImage ; auparavant, des resources étaient attendues.

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, PHP 8)

imagecopyresampled — Copie, redimensionne, rééchantillonne une image

Description

imagecopyresampled(
GdImage $dst_image,
GdImage $src_image,
int $dst_x,
int $dst_y,
int $src_x,
int $src_y,
int $dst_width,
int $dst_height,
int $src_width,
int $src_height
): bool

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_width et d'une hauteur src_height à la position (src_x,src_y) et le placera dans une zone rectangulaire dst_image d'une largeur de dst_width et d'une hauteur de dst_height à 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

Ressource cible de l'image.

src_image

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_width

Largeur de la destination.

dst_height

Hauteur de la destination.

src_width

Largeur de la source.

src_height

Hauteur de la source.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | dst_image et src_image attendent désormais des instances de GdImage ; auparavant, des resources étaient attendues.

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);
?>

Résultat de l'exemple ci-dessus est 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);
?>

Résultat de l'exemple ci-dessus est 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
  • imagescale() - Met à l'échelle une image en utilisant une hauteur et une largeur fournies
  • imagecrop() - Recadre une image sur le rectangle donné


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, PHP 8)

imagecopyresized — Copie et redimensionne une partie d'une image

Description

imagecopyresized(
GdImage $dst_image,
GdImage $src_image,
int $dst_x,
int $dst_y,
int $src_x,
int $src_y,
int $dst_width,
int $dst_height,
int $src_width,
int $src_height
): bool

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_width et d'une hauteur src_height à la position (src_x,src_y) et le placera dans une zone rectangulaire dst_image d'une largeur de dst_width et d'une hauteur de dst_height à 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

Ressource cible de l'image.

src_image

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_width

Largeur de la destination.

dst_height

Hauteur de la destination.

src_width

Largeur de la source.

src_height

Hauteur de la source.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | dst_image et src_image attendent désormais des instances de GdImage ; auparavant, des resources étaient attendues.

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);
?>

Résultat de l'exemple ci-dessus est 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
  • imagescale() - Met à l'échelle une image en utilisant une hauteur et une largeur fournies
  • imagecrop() - Recadre une image sur le rectangle donné


Crée une nouvelle image à palette

  • « imagecopyresized
  • imagecreatefromavif »
  • PHP Manual
  • Fonctions GD et images
  • Crée une nouvelle image à palette

imagecreate

(PHP 4, PHP 5, PHP 7, PHP 8)

imagecreate — Crée une nouvelle image à palette

Description

imagecreate(int $width, int $height): GdImage|false

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 objet d'image en cas de succès, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | En cas de succès, cette fonction retourne désormais une instance de GDImage ; auparavant, une resource était retournée.

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);
?>

Résultat de l'exemple ci-dessus est 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 depuis un fichier ou une URL

  • « imagecreate
  • imagecreatefrombmp »
  • PHP Manual
  • Fonctions GD et images
  • Crée une nouvelle image depuis un fichier ou une URL

imagecreatefromavif

(PHP 8 >= 8.1.0)

imagecreatefromavif — Crée une nouvelle image depuis un fichier ou une URL

Description

imagecreatefromavif(string $filename): GdImage|false

imagecreatefromavif() retourne un objet image obtenu à partir du fichier filename.

Liste de paramètres

filename

Chemin vers l'image AVIF.

Valeurs de retour

Retourne un objet d'image en cas de succès, ou false si une erreur survient.


Crée une nouvelle image depuis un fichier ou une URL

  • « imagecreatefromavif
  • imagecreatefromgd2 »
  • PHP Manual
  • Fonctions GD et images
  • Crée une nouvelle image depuis un fichier ou une URL

imagecreatefrombmp

(PHP 7 >= 7.2.0, PHP 8)

imagecreatefrombmp — Crée une nouvelle image depuis un fichier ou une URL

Description

imagecreatefrombmp(string $filename): GdImage|false

imagecreatefrombmp() retourne un identifiant d'image représentant l'image obtenue à partir du nom de fichier fournit.

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 les variables prédéfinies qu'elles fournissent.

Liste de paramètres

filename

Chemin de l'image BMP.

Valeurs de retour

Retourne un objet d'image en cas de succès, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | En cas de succès, cette fonction retourne désormais une instance de GDImage ; auparavant, une resource était retournée.

Exemples

Exemple #1 Convertit une image BMP en image PNG en utilisant imagecreatefrombmp()

<?php
// Load the BMP file
$im = imagecreatefrombmp('./example.bmp');

// Le convertit en fichier PNG avec les paramètres par défault
imagepng($im, './example.png');
imagedestroy($im);
?>


Crée une nouvelle image à partir d'un fichier GD2 ou d'une URL

  • « imagecreatefrombmp
  • 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, PHP 8)

imagecreatefromgd2 — Crée une nouvelle image à partir d'un fichier GD2 ou d'une URL

Description

imagecreatefromgd2(string $filename): GdImage|false

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 les variables prédéfinies qu'elles fournissent.

Liste de paramètres

filename

Chemin vers l'image GD2.

Valeurs de retour

Retourne un objet d'image en cas de succès, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | En cas de succès, cette fonction retourne désormais une instance de GDImage ; auparavant, une resource était retournée.

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
if(function_exists('imagefilter'))
{
imagefilter($im, IMG_FILTER_NEGATE);
}

// Sauvegarde de l'image
imagegd2($im, './test_updated.gd2');
imagedestroy($im);
?>

Notes

Avertissement

Les formats d'image GD et GD2 sont des formats d'images propriétaire de libgd. Ils doivent être considérés obsolète, et devraient seulement être utilisé lors du développement et la phase de test.


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, PHP 8)

imagecreatefromgd2part — Crée une nouvelle image à partir d'une partie de fichier GD2 ou d'une URL

Description

imagecreatefromgd2part(
string $filename,
int $x,
int $y,
int $width,
int $height
): GdImage|false

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 les variables prédéfinies qu'elles fournissent.

Liste de paramètres

filename

Chemin vers l'image GD2.

x

Coordonnée en X du point source.

y

Coordonnée en Y du point source.

width

Largeur de la source.

height

Hauteur de la source.

Valeurs de retour

Retourne un objet d'image en cas de succès, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | En cas de succès, cette fonction retourne désormais une instance de GDImage ; auparavant, une resource était retournée.

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
if(function_exists('imagefilter'))
{
imagefilter($im, IMG_FILTER_EMBOSS);
}

// Sauvegarde de l'image optimisée
imagegd2($im, './test_emboss.gd2');
imagedestroy($im);
?>

Notes

Avertissement

Les formats d'image GD et GD2 sont des formats d'images propriétaire de libgd. Ils doivent être considérés obsolète, et devraient seulement être utilisé lors du développement et la phase de test.


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, PHP 8)

imagecreatefromgd — Crée une nouvelle image à partir d'un fichier GD ou d'une URL

Description

imagecreatefromgd(string $filename): GdImage|false

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 les variables prédéfinies qu'elles fournissent.

Liste de paramètres

filename

Chemin vers un fichier GD.

Valeurs de retour

Retourne un objet d'image en cas de succès, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | En cas de succès, cette fonction retourne désormais une instance de GDImage ; auparavant, une resource était retournée.

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(!$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);
?>

Notes

Avertissement

Les formats d'image GD et GD2 sont des formats d'images propriétaire de libgd. Ils doivent être considérés obsolète, et devraient seulement être utilisé lors du développement et la phase de test.


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, PHP 8)

imagecreatefromgif — Crée une nouvelle image depuis un fichier ou une URL

Description

imagecreatefromgif(string $filename): GdImage|false

imagecreatefromgif() retourne un identifiant d'image qui représente l'image obtenue à partir du fichier dont le nom est donné par filename.

Attention

Lors de la lecture en mémoire de fichiers GIF animés, seule la première frame est retournée par l'objet de l'image. La taille de l'image n'est pas forcément ce qui est rapporté par getimagesize().

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 les variables prédéfinies qu'elles fournissent.

Liste de paramètres

filename

Chemin vers l'image GIF.

Valeurs de retour

Retourne un objet d'image en cas de succès, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | En cas de succès, cette fonction retourne désormais une instance de GDImage ; auparavant, une resource était retournée.

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);
?>

Résultat de l'exemple ci-dessus est similaire à :

Affichage de l'exemple : imagecreatefromgif()


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, PHP 8)

imagecreatefromjpeg — Crée une nouvelle image depuis un fichier ou une URL

Description

imagecreatefromjpeg(string $filename): GdImage|false

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 les variables prédéfinies qu'elles fournissent.

Liste de paramètres

filename

Chemin vers l'image JPEG.

Valeurs de retour

Retourne un objet d'image en cas de succès, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | En cas de succès, cette fonction retourne désormais une instance de GDImage ; auparavant, une resource était retournée.

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);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

imagecreatefrompng — Crée une nouvelle image depuis un fichier ou une URL

Description

imagecreatefrompng(string $filename): GdImage|false

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 les variables prédéfinies qu'elles fournissent.

Liste de paramètres

filename

Chemin vers l'image PNG.

Valeurs de retour

Retourne un objet d'image en cas de succès, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | En cas de succès, cette fonction retourne désormais une instance de GDImage ; auparavant, une resource était retournée.

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);
?>

Résultat de l'exemple ci-dessus est similaire à :

Exemple avec la fonction imagecreatefrompng()


Crée une image à partir d'une chaîne

  • « imagecreatefrompng
  • imagecreatefromtga »
  • 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, PHP 8)

imagecreatefromstring — Crée une image à partir d'une chaîne

Description

imagecreatefromstring(string $data): GdImage|false

imagecreatefromstring() retourne un identifiant d'image représentant l'image obtenue depuis la chaîne data. Le type de l'image sera automatiquement détecté si vous avez compilé PHP avec les supports : JPEG, PNG, GIF, BMP, WBMP, GD2, WEBP, et AVIF.

Liste de paramètres

data

Une chaîne contenant les données de l'image.

Valeurs de retour

Un objet 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.

Erreurs / Exceptions

imagecreatefromstring() émet une erreur de niveau E_WARNING si les données ne sont pas dans un format reconnu.

Historique

Version | Description
8.0.0 | En cas de succès, cette fonction retourne désormais une instance de GDImage ; auparavant, une resource était retournée.
7.3.0 | WEBP est désormais supporté (si supporté par la libgd utilisé).

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.';
}
?>

Résultat de l'exemple ci-dessus est 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
  • imagecreatefromwbmp »
  • PHP Manual
  • Fonctions GD et images
  • Crée une nouvelle image depuis un fichier ou une URL

imagecreatefromtga

(PHP 7 >= 7.4.0, PHP 8)

imagecreatefromtga — Crée une nouvelle image depuis un fichier ou une URL

Description

imagecreatefromtga(string $filename): GdImage|false

imagecreatefromtga() retourne un objet image représentant l'image obtenue à partir du nom de fichier donné.

Liste de paramètres

filename

Chemin d'accès à l'image TGA Truevision.

Valeurs de retour

Retourne un objet d'image en cas de succès, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | En cas de succès, cette fonction retourne désormais une instance GDImage; précédemment, une ressource était retournée.


Crée une nouvelle image depuis un fichier ou une URL

  • « imagecreatefromtga
  • 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, PHP 8)

imagecreatefromwbmp — Crée une nouvelle image depuis un fichier ou une URL

Description

imagecreatefromwbmp(string $filename): GdImage|false

imagecreatefromwbmp() retourne une ressource d'image PHP, représentant l'image filename.

Note: Les images WBMP sont Wireless Bitmaps, et non Windows Bitmaps. Le dernier peut être chargé grâce à imagecreatefrombmp().

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 les variables prédéfinies qu'elles fournissent.

Liste de paramètres

filename

Chemin vers l'image WBMP.

Valeurs de retour

Retourne un objet d'image en cas de succès, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | En cas de succès, cette fonction retourne désormais une instance de GDImage ; auparavant, une resource était retournée.

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.4.0, PHP 7, PHP 8)

imagecreatefromwebp — Crée une nouvelle image depuis un fichier ou une URL

Description

imagecreatefromwebp(string $filename): GdImage|false

imagecreatefromwebp() retourne un identifiant d'image représentant l'image obtenue depuis le fichier fourni. Notez que les fichiers WebP animés ne peuvent pas être lus.

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 les variables prédéfinies qu'elles fournissent.

Liste de paramètres

filename

Chemin vers l'image WebP.

Valeurs de retour

Retourne un objet d'image en cas de succès, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | En cas de succès, cette fonction retourne désormais une instance de GDImage ; auparavant, une resource était retournée.

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, PHP 8)

imagecreatefromxbm — Crée une nouvelle image depuis un fichier ou une URL

Description

imagecreatefromxbm(string $filename): GdImage|false

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 les variables prédéfinies qu'elles fournissent.

Liste de paramètres

filename

Chemin vers l'image XBM.

Valeurs de retour

Retourne un objet d'image en cas de succès, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | En cas de succès, cette fonction retourne désormais une instance de GDImage ; auparavant, une resource était retournée.

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, PHP 8)

imagecreatefromxpm — Crée une nouvelle image depuis un fichier ou une URL

Description

imagecreatefromxpm(string $filename): GdImage|false

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 les variables prédéfinies qu'elles fournissent.

Liste de paramètres

filename

Chemin vers l'image XPM.

Valeurs de retour

Retourne un objet d'image en cas de succès, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | En cas de succès, cette fonction retourne désormais une instance de GDImage ; auparavant, une resource était retournée.

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);
?>


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, PHP 8)

imagecreatetruecolor — Crée une nouvelle image en couleurs vraies

Description

imagecreatetruecolor(int $width, int $height): GdImage|false

imagecreatetruecolor() retourne un objet représentant une image noire.

Liste de paramètres

width

Largeur de l'image.

height

Hauteur de l'image.

Valeurs de retour

Retourne un objet d'image en cas de succès, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | En cas de succès, cette fonction retourne désormais une instance de GDImage ; auparavant, une resource était retournée.

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);
?>

Résultat de l'exemple ci-dessus est 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 sur le rectangle donné

  • « imagecreatetruecolor
  • imagecropauto »
  • PHP Manual
  • Fonctions GD et images
  • Recadre une image sur le rectangle donné

imagecrop

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

imagecrop — Recadre une image sur le rectangle donné

Description

imagecrop(GdImage $image, array $rectangle): GdImage|false

Recadre une image à la zone rectangulaire donnée et retourne l'image résultante. L'image n'est pas modifiée.

Liste de paramètres

image

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

rectangle

array contenant les clés x, y, width et height.

Valeurs de retour

Retourne l'objet' de l'image recadrée en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | En cas de succès, cette fonction retourne désormais une instance de GDImage ; auparavant, une resource était retournée.

Exemples

Exemple #1 Exemple avec imagecrop()

Cet exemple montre comment rogner une image sur une zone carrée.

<?php
$im = imagecreatefrompng('example.png');
$size = min(imagesx($im), imagesy($im));
$im2 = imagecrop($im, ['x' => 0, 'y' => 0, 'width' => $size, 'height' => $size]);
if ($im2 !== FALSE) {
imagepng($im2, 'example-cropped.png');
imagedestroy($im2);
}
imagedestroy($im);
?>

Voir aussi

  • imagecropauto() - Recadre une image automatiquement en utilisant un des modes disponibles


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, PHP 8)

imagecropauto — Recadre une image automatiquement en utilisant un des modes disponibles

Description

imagecropauto(
GdImage $image,
int $mode = IMG_CROP_DEFAULT,
float $threshold = 0.5,
int $color = -1
): GdImage|false

Rogne automatiquement une image selon le mode.

Liste de paramètres

image

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

mode

Une constante parmi :

IMG_CROP_DEFAULT
Identique à IMG_CROP_TRANSPARENT. Antérieur à PHP 7.4.0, la bibliothèque libgd intégré utilisait IMG_CROP_SIDES en tant que solution de replis, si l'image n'avait pas de couleur de transparance.
IMG_CROP_TRANSPARENT
Rogne le fond transparent.
IMG_CROP_BLACK
Rogne le fond noir.
IMG_CROP_WHITE
Rogne le fond blanc.
IMG_CROP_SIDES
Utilise les 4 coins de l'image pour tenter de détecter l'arrière-plan à rogner.
IMG_CROP_THRESHOLD
Rogne l'image en utilisant le seuil threshold et color.
threshold

Spécifie la tolérance en pourcentage à utiliser lors de la comparaison de la couleur d'image et de la couleur à rogner. La méthode utilisée pour calculer la différence de couleur est basée sur la distance des couleurs dans le cube RVB(a).

Utilisé uniquement en mode IMG_CROP_THRESHOLD.

Note: Antérieur à PHP 7.4.0, la bibliothèque libgd intégré utilisait un algorithme quelque peu différent, donc le même threshold produisait des résultats différents pour libgd système et intégré.

color

Soit une valeur de couleur RVB, soit un index de palette.

Utilisé uniquement en mode IMG_CROP_THRESHOLD.

Valeurs de retour

Retourne l'objet de l'image rognée en cas de succès ou false si une erreur survient. false sera aussi retourné si toute l'image a été rognée.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.
8.0.0 | En cas de succès, cette fonction retourne désormais une instance de GDImage ; auparavant, une resource était retournée.
7.4.0 | Le comportement de imagecropauto de la bibliothèque libgd intégré a été syncrhonisé avec celle de libgd système : IMG_CROP_DEFAULT n'utilise plus IMG_CROP_SIDES comme solution de replis et la tolérance de rognage utilise désormais le même algorithme que libgd système.
7.4.0 | La valeur par défaut de mode a été modifié en IMG_CROP_AUTO. Auparavant, la valeur par défaut était -1 qui correspond à IMG_CROP_DEFAULT, mais passer -1 est désormais obsolète.

Exemples

Exemple #1 Rognage automatique correcte

Comme indiqué dans la section valeur de retour, imagecropauto() retourne false si l'image entière a été rognée. Dans cet exemple, nous avons un objet d'image $im qui ne devrait être automatiquement rognée que s'il ya quelque chose à rogner; Sinon, nous voulons conserver à l'image originale.

<?php
$cropped = imagecropauto($im, IMG_CROP_DEFAULT);
if ($cropped !== false) { // Si un nouveau objet d'image a été retournée
imagedestroy($im); // nous détruisons l'image originale
$im = $cropped; // et assignons l'image rognée à $im
}
?>

Voir aussi

  • imagecrop() - Recadre une image sur le rectangle donné


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, PHP 8)

imagedashedline — Dessine une ligne pointillée

Description

imagedashedline(
GdImage $image,
int $x1,
int $y1,
int $x2,
int $y2,
int $color
): bool

imagedashedline() est obsolète. Utilisez plutôt
une combinaison des fonctions imagesetstyle() et
imageline().

Liste de paramètres

image

Un objet GdImage, 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 identificateur de couleur créé avec imagecolorallocate().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

imagedestroy — Détruit une image

Description

imagedestroy(GdImage $image): bool

Note:

Cette fonction n'a aucun effet. Antérieur à PHP 8.0.0, cette fonction était utilisé pour fermer une ressource.

Antérieur à PHP 8.0.0, imagedestroy() libère toute la mémoire associée à l'image image.

Liste de paramètres

image

Un objet GdImage, 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.

Historique

Version | Description
8.0.0 | Cette fonction est désormais un NOP.
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

Exemples

Exemple #1 Utilisation de imagedestroy() antérieur à PHP 8.0.0

<?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, PHP 8)

imageellipse — Dessine une ellipse

Description

imageellipse(
GdImage $image,
int $center_x,
int $center_y,
int $width,
int $height,
int $color
): bool

Dessine une ellipse centrée sur le point spécifié.

Liste de paramètres

image

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

center_x

X : coordonnée du centre.

center_y

Y : coordonnée du centre.

width

La largeur de l'ellipse.

height

La hauteur de l'ellipse.

color

La couleur de l'ellipse. Un identificateur de couleur créé avec imagecolorallocate().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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);

?>

Résultat de l'exemple ci-dessus est similaire à :

Affichage de l'exemple : imageellipse()

Notes

Note:

imageellipse() ignore imagesetthickness().

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, PHP 8)

imagefill — Remplissage

Description

imagefill(
GdImage $image,
int $x,
int $y,
int $color
): bool

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

Un objet GdImage, 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 identificateur de couleur créé avec imagecolorallocate().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

imagefilledarc — Dessine un arc partiel et le remplit

Description

imagefilledarc(
GdImage $image,
int $center_x,
int $center_y,
int $width,
int $height,
int $start_angle,
int $end_angle,
int $color,
int $style
): bool

Dessine un arc partiel, centré aux coordonnées spécifiées dans l'image fournie.

Liste de paramètres

image

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

center_x

X : coordonnée du centre.

center_y

Y : coordonnée du centre.

width

La largeur de l'arc.

height

La hauteur de l'arc.

start_angle

L'angle de début de l'arc, en degrés.

end_angle

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 identificateur de couleur créé avec 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.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

imagefilledellipse — Dessine une ellipse pleine

Description

imagefilledellipse(
GdImage $image,
int $center_x,
int $center_y,
int $width,
int $height,
int $color
): bool

Dessine une ellipse centrée sur les coordonnées spécifiées sur l'image fournie.

Liste de paramètres

image

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

center_x

X : coordonnée du centre.

center_y

Y : coordonnée du centre.

width

La largeur de l'ellipse.

height

La hauteur de l'ellipse.

color

La couleur de remplissage. Un identificateur de couleur créé avec imagecolorallocate().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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);

?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

imagefilledpolygon — Dessine un polygone rempli

Description

Signature à partir de PHP 8.0.0 (non supportée avec les arguments nommés)

imagefilledpolygon(GdImage $image, array $points, int $color): bool

Signature alternative (obsolète à partir de PHP 8.1.0)

imagefilledpolygon(
GdImage $image,
array $points,
int $num_points,
int $color
): bool

imagefilledpolygon() dessine un polygone rempli dans l'image image.

Liste de paramètres

image

Un objet GdImage, 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

Nombre total de points (sommets), qui doivent être d'au moins 3.

Si ce paramètre est omis conformément à la deuxième signature, points doit avoir un nombre pair d'éléments, et num_points est assumé d'être count($points)/2.
color

Un identificateur de couleur créé avec imagecolorallocate().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre num_points a été rendu obsolète.
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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);
?>

Résultat de l'exemple ci-dessus est similaire à :

Affichage de l'exemple : imagefilledpolygon()

Voir aussi

  • imagepolygon() - Dessine un polygone


Dessine un rectangle rempli

  • « imagefilledpolygon
  • imagefilltoborder »
  • PHP Manual
  • Fonctions GD et images
  • Dessine un rectangle rempli

imagefilledrectangle

(PHP 4, PHP 5, PHP 7, PHP 8)

imagefilledrectangle — Dessine un rectangle rempli

Description

imagefilledrectangle(
GdImage $image,
int $x1,
int $y1,
int $x2,
int $y2,
int $color
): bool

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

Un objet GdImage, 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 identificateur de couleur créé avec imagecolorallocate().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

imagefilltoborder — Remplit une région avec une couleur spécifique

Description

imagefilltoborder(
GdImage $image,
int $x,
int $y,
int $border_color,
int $color
): bool

imagefilltoborder() remplit avec la couleur color toute la région à l'intérieur de la région limitée par la couleur border_color. 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

Un objet GdImage, 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_color

La couleur de la bordure. Un identificateur de couleur créé avec imagecolorallocate().

color

La couleur de remplissage. Un identificateur de couleur créé avec imagecolorallocate().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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);
?>

Résultat de l'exemple ci-dessus est similaire à :

Affichage de l'exemple : imagefilltoborder()

Notes

L'algorithme ne se souvient pas explicitement de quel pixels ont déjà été définit, mais plutôt l'infère à partir de la couleur du pixel, donc il ne peut pas faire la distinction entre un pixel qui viens juste d'être définit et un pixel qui était déjà présent. Ceci signifie que choisir toute couleur de remplissage qui est déjà présente dans l'image peut produire des résultats indésirables.


Applique un filtre à une image

  • « imagefilltoborder
  • imageflip »
  • PHP Manual
  • Fonctions GD et images
  • Applique un filtre à une image

imagefilter

(PHP 5, PHP 7, PHP 8)

imagefilter — Applique un filtre à une image

Description

imagefilter(GdImage $image, int $filter, array|int|float|bool ...$args): bool

imagefilter() applique le filtre donné filter sur l'image.

Liste de paramètres

image

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

filter

filter peut être l'un des éléments suivants :

  • IMG_FILTER_NEGATE : Inverse toutes les couleurs de l'image.
  • IMG_FILTER_GRAYSCALE : Convertit l'image en niveaux de gris en changeant les composantes rouge, verte et bleue en leur somme pondérée en utilisant les mêmes coefficients que le calcul luma REC.601 (Y'). Les composantes alpha sont conservées. Pour les images de la palette, le résultat peut être différent en raison des limitations de la palette.
  • IMG_FILTER_BRIGHTNESS : Modifie la luminosité de l'image. Utilisez args pour définir le niveau de luminosité. La plage de luminosité est comprise entre -255 et 255.
  • IMG_FILTER_CONTRAST : Modifie le contraste de l'image. Utilisez args pour définir le niveau de contraste.
  • IMG_FILTER_COLORIZE : similaire à IMG_FILTER_GRAYSCALE, sauf qu'il est possible de spécifier la couleur. Utilisez args, arg2 et arg3 sous la forme red, green, blue et arg4 pour le canal alpha. La plage de chaque couleur est comprise entre 0 et 255.
  • IMG_FILTER_EDGEDETECT : Utilise la détection des contours pour mettre en évidence les contours de l'image.
  • IMG_FILTER_EMBOSS : Permet d'embosser l'image.
  • IMG_FILTER_GAUSSIAN_BLUR : Floute l'image à l'aide de la méthode gaussienne.
  • IMG_FILTER_SELECTIVE_BLUR : Floute l'image.
  • IMG_FILTER_MEAN_REMOVAL : Utilise la suppression de la moyenne pour obtenir un effet "croquis".
  • IMG_FILTER_SMOOTH : Rend l'image plus lisse. Utilisez args pour définir le niveau de lissage.
  • IMG_FILTER_PIXELATE : Applique un effet de pixellisation à l'image, utilisez args pour définir la taille du bloc et arg2 pour définir le mode d'effet de pixellisation.
  • IMG_FILTER_SCATTER : Applique un effet de dispersion à l'image, utilisez args et arg2 pour définir l'intensité de l'effet et arg3 pour n'appliquer l'effet que sur certaines couleurs de pixels.

args

  • IMG_FILTER_BRIGHTNESS : Niveau de luminosité.
  • IMG_FILTER_CONTRAST : Niveau de contraste.
  • IMG_FILTER_COLORIZE : Valeur du composant rouge.
  • IMG_FILTER_SMOOTH : Niveau de lissage.
  • IMG_FILTER_PIXELATE : Taille du bloc en pixels.
  • IMG_FILTER_SCATTER : Niveau de soustraction de l'effet. Il ne doit pas être supérieur ou égal au niveau d'addition défini avec arg2.

arg2

  • IMG_FILTER_COLORIZE : Valeur du composant vert.
  • IMG_FILTER_PIXELATE : Utilisation ou non de l'effet de pixellisation avancé (la valeur par défaut est false).
  • IMG_FILTER_SCATTER : Niveau d'addition de l'effet.

arg3

  • IMG_FILTER_COLORIZE : Valeur du composant bleu.
  • IMG_FILTER_SCATTER : Tableau optionnel de valeurs de couleur indexées pour appliquer l'effet.

arg4

  • IMG_FILTER_COLORIZE canal Alpha, une valeur entre 0 et 127. 0 indique une opacité totale tandis que 127 indique une transparence totale.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.
7.4.0 | La prise en charge de la dispersion (IMG_FILTER_SCATTER) a été ajoutée.

Exemples

Exemple #1 Exemple de niveaux de gris avec imagefilter()

<?php
$im = imagecreatefrompng('dave.png');

if($im && imagefilter($im, IMG_FILTER_GRAYSCALE))
{
echo 'Image converted to grayscale.';

imagepng($im, 'dave.png');
}
else
{
echo 'Conversion to grayscale failed.';
}

imagedestroy($im);
?>

Exemple #2 Exemple de luminosité avec imagefilter()

<?php
$im = imagecreatefrompng('sean.png');

if($im && imagefilter($im, IMG_FILTER_BRIGHTNESS, 20))
{
echo 'Image brightness changed.';

imagepng($im, 'sean.png');
imagedestroy($im);
}
else
{
echo 'Image brightness change failed.';
}
?>

Exemple #3 Exemple de colorisation avec imagefilter()

<?php
$im = imagecreatefrompng('philip.png');

/* R, G, B, so 0, 255, 0 is green */
if($im && imagefilter($im, IMG_FILTER_COLORIZE, 0, 255, 0))
{
echo 'Image successfully shaded green.';

imagepng($im, 'philip.png');
imagedestroy($im);
}
else
{
echo 'Green shading failed.';
}
?>

Exemple #4 Exemple de négatif avec imagefilter()

<?php
// Defini la fonction negate afin qu'elle soit portable pour
// les versions de php sans 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 successfully converted to negative colors.';

imagejpeg($im, 'kalle.jpg', 100);
imagedestroy($im);
}
else
{
echo 'Converting to negative colors failed.';
}
?>

Exemple #5 Exemple de pixellisation avec imagefilter()

<?php
// Charge le logo PHP, nous devons créer deux instances
// pour voir les différences
$logo1 = imagecreatefrompng('./php.png');
$logo2 = imagecreatefrompng('./php.png');

// Création de l'instance d'image sur laquelle nous voulons
// voir les différences
$output = imagecreatetruecolor(imagesx($logo1) * 2, imagesy($logo1));

// Applique la pixellisation sur chaque instance avec une
// taille de bloque de 3
imagefilter($logo1, IMG_FILTER_PIXELATE, 3);
imagefilter($logo2, IMG_FILTER_PIXELATE, 3, true);

// Fusionne les différences sur l'image de sortie
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);

// Affiche les différences
header('Content-Type: image/png');
imagepng($output);
imagedestroy($output);
?>

Résultat de l'exemple ci-dessus est similaire à :

Sortie de l'exemple de pixellisation avec imagefilter

Exemple #6 Exemple de dispersion avec imagefilter()

<?php
// Charge l'image
$logo = imagecreatefrompng('./php.png');

// Applique un effet de diffusion très doux à l'image
imagefilter($logo, IMG_FILTER_SCATTER, 3, 5);

// Affiche l'image avec l'effet de dispersion
header('Content-Type: image/png');
imagepng($logo);
imagedestroy($logo);
?>

Résultat de l'exemple ci-dessus est similaire à :

Sortie de l'exemple de dispersion avec imagefilte

Notes

Note: Le résultat de IMG_FILTER_SCATTER est toujours aléatoire.

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, PHP 8)

imageflip — Retourne une image en utilisant le mode fourni

Description

imageflip(GdImage $image, int $mode): bool

Retourne l'image image en utilisant le mode fourni.

Liste de paramètres

image

Un objet GdImage, 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.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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);
?>

Résultat de l'exemple ci-dessus est 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);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

imagefontheight — Retourne la hauteur de la police

Description

imagefontheight(GdFont|int $font): int

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 une instance de GdFont retourné par imageloadfont().

Valeurs de retour

Retourne la hauteur de la police, en pixels.

Historique

Version | Description
8.1.0 | Le paramètre font accepte désormais une instance de GdFont et un entier; auparavant seulement un entier était accepté.

Exemples

Exemple #1 Exemple avec imagefontheight() et des polices internes

<?php
echo 'Hauteur de la police : ' . imagefontheight(4);
?>

Résultat de l'exemple ci-dessus est 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);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

imagefontwidth — Retourne la largeur de la police

Description

imagefontwidth(GdFont|int $font): int

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 une instance de GdFont retourné par imageloadfont().

Valeurs de retour

Retourne la largeur de la police.

Historique

Version | Description
8.1.0 | Le paramètre font accepte désormais une instance de GdFont et un entier; auparavant seulement un entier était accepté.

Exemples

Exemple #1 Exemple avec imagefontwidth() et les polices internes

<?php
echo 'Largeur de la police : ' . imagefontwidth(4);
?>

Résultat de l'exemple ci-dessus est 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);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

imageftbbox — Calcule le rectangle d'encadrement pour un texte, en utilisant la police courante et freetype2

Description

imageftbbox(
float $size,
float $angle,
string $font_filename,
string $string,
array $options = []
): array|false

imageftbbox() calcule le rectangle d'encadrement pour le texte text, en utilisant la police courante et freetype2.

Note:

Antérieur à PHP 8.0.0, imageftbbox() était une variante étendue de imagettfbbox() qui en plus supporte extrainfo. À partir de PHP 8.0.0, imagettfbbox() est un alias de imageftbbox().

Liste de paramètres

size

La taille de la police de caractères en point.

angle

Angle, en degrés, dans lequel le paramètre string sera mesuré.

font_filename

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.

string

La chaîne à mesurer.

options

Index possibles pour le tableau options
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.

En cas d'échec, false est retourné.

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, PHP 8)

imagefttext — Écrit du texte dans une image avec la police courante FreeType 2

Description

imagefttext(
GdImage $image,
float $size,
float $angle,
int $x,
int $y,
int $color,
string $font_filename,
string $text,
array $options = []
): array|false

Note:

Antérieur à PHP 8.0.0, imagefttext() était une variante étendue de imagettftext() qui en plus supporte extrainfo. À partir de PHP 8.0.0, imagefttext() est un alias de imagefttext().

Liste de paramètres

image

Un objet GdImage, 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().

font_filename

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.

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.

options

Indexes possibles pour le tableau options
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

En cas d'échec, false est retourné.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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, PHP 8)

imagegammacorrect — Applique une correction gamma à l'image GD

Description

imagegammacorrect(GdImage $image, float $input_gamma, float $output_gamma): bool

Applique une correction gamma à l'image GD image.

Liste de paramètres

image

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

input_gamma

Le facteur gamma d'entrée.

output_gamma

Le facteur gamma de sortie.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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, PHP 8)

imagegd2 — Génère une image au format GD2, vers le navigateur ou un fichier

Description

imagegd2(
GdImage $image,
?string $file = null,
int $chunk_size = 128,
int $mode = IMG_GD2_RAW
): bool

Génère une image au format GD2, vers le fichier file.

Liste de paramètres

image

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

file

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 non-défini ou null, le flux brute de l'image sera affiché directement.

chunk_size

Taille de la pièce.

mode

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.

Attention

Toutefois, si libgd ne parvient pas à produire l'image, cette fonction retourne true.

Historique

Version | Description
8.0.3 | file is now nullable.
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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.

Avertissement

Les formats d'image GD et GD2 sont des formats d'images propriétaire de libgd. Ils doivent être considérés obsolète, et devraient seulement être utilisé lors du développement et la phase de test.

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, PHP 8)

imagegd — Génère une image au format GD, vers le navigateur ou un fichier

Description

imagegd(GdImage $image, ?string $file = null): bool

Génère une image GD vers le fichier file.

Liste de paramètres

image

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

file

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 non-défini ou 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.

Attention

Toutefois, si libgd ne parvient pas à produire l'image, cette fonction retourne true.

Historique

Version | Description
8.0.3 | file est désormais nullable.
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.
7.2.0 | imagegd() permet maintenant de produire des images TrueColor. Auparavant, elles ont été implicitement converties en palette.

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.

Avertissement

Les formats d'image GD et GD2 sont des formats d'images propriétaire de libgd. Ils doivent être considérés obsolète, et devraient seulement être utilisé lors du développement et la phase de test.

Voir aussi

  • imagegd2() - Génère une image au format GD2, vers le navigateur ou un fichier


Récupère le rectangle de coupure

  • « imagegd
  • imagegetinterpolation »
  • PHP Manual
  • Fonctions GD et images
  • Récupère le rectangle de coupure

imagegetclip

(PHP 7 >= 7.2.0, PHP 8)

imagegetclip — Récupère le rectangle de coupure

Description

imagegetclip(GdImage $image): array

imagegetclip() récupère le rectangle de coupure actuel, c'est à dire la zone au-delà de laquelle aucun pixel ne sera dessiné.

Liste de paramètres

image

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

Valeurs de retour

La fonction retourne un tableau indexé avec les coordonnées du rectangle de coupure avec les entrées suivantes :

  • la coordonnée x du coin supérieur gauche
  • la coordonnée y du coin supérieur gauche
  • la coordonnée x du coin inférieur droite
  • la coordonnée y du coin inférieur droite

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

Exemples

Exemple #1 Exemple avec imagegetclip()

Définir et récupérer le rectangle de coupure.

<?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() - Définit le rectangle de coupure


Récupère la méthode d'interpolation

  • « imagegetclip
  • imagegif »
  • PHP Manual
  • Fonctions GD et images
  • Récupère la méthode d'interpolation

imagegetinterpolation

(PHP 8)

imagegetinterpolation — Récupère la méthode d'interpolation

Description

imagegetinterpolation(GdImage $image): int

Récupère la méthode d'interpolation actuellement définie pour l'image.

Liste de paramètres

image

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

Valeurs de retour

Retourne la méthode d'interpolation.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

Voir aussi

  • imagesetinterpolation() - Défini la méthode d'interpolation


Affichage de l'image vers le navigateur ou dans un fichier

  • « imagegetinterpolation
  • 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, PHP 8)

imagegif — Affichage de l'image vers le navigateur ou dans un fichier

Description

imagegif(GdImage $image, resource|string|null $file = null): bool

imagegif() crée un fichier image GIF dans file 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

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

file

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 non-défini ou 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.

Attention

Toutefois, si libgd ne parvient pas à produire l'image, cette fonction retourne true.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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 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:

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, PHP 8)

imagegrabscreen — Capture l'écran complet

Description

imagegrabscreen(): GdImage|false

imagegrabscreen() effectue une capture de la totalité de l'écran.

Note:

Cette fonction n'est disponible que sous Windows.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet image en cas de succès, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | En cas de succès, cette fonction retourne désormais une instance de GDImage ; auparavant, une resource était retournée.

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);
?>

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, PHP 8)

imagegrabwindow — Capture une fenêtre

Description

imagegrabwindow(int $handle, bool $client_area = false): GdImage|false

Capture une fenêtre ou l'espace de son client, en utilisant un gestionnaire de fenêtre (propriété HWND de l'instance COM).

Note:

Cette fonction n'est disponible que sous Windows.

Liste de paramètres

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 un objet 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.

Historique

Version | Description
8.0.0 | En cas de succès, cette fonction retourne désormais une instance de GDImage ; auparavant, une resource était retournée.
8.0.0 | client_area attend désormais un bool ; auparavant il s'attendait à un int.

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);
?>

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, PHP 8)

imageinterlace — Active ou désactive l'entrelacement

Description

imageinterlace(GdImage $image, ?bool $enable = null): bool

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

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

interlace

Si true, l'image sera entrelacée, si false le bit d'entrelacement est désactivé. Passer null fera que le comportement d'entrelacement n'est pas changé.

Valeurs de retour

Retourne true si l'entrelacement est activé pour l'image, false sinon.

Historique

Version | Description
8.0.5 | imageinterlace() retourne désormais un bool ; auparavant un int était retourné (non-zéro pour les images entrelacé, zéro sinon).
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.
8.0.0 | enable attend désormais un bool ; auparavant il s'attendait à un int.

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, PHP 8)

imageistruecolor — Détermine si une image est une image truecolor

Description

imageistruecolor(GdImage $image): bool

imageistruecolor()détermine si l'image image est une image truecolor.

Liste de paramètres

image

Un objet GdImage, 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.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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, PHP 8)

imagejpeg — Affichage de l'image vers le navigateur ou dans un fichier

Description

imagejpeg(GdImage $image, resource|string|null $file = null, int $quality = -1): bool

imagejpeg() crée un fichier JPEG depuis l'image fournie.

Liste de paramètres

image

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

file

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 non-défini ou null, le flux brute de l'image sera affiché directement.

quality

quality est optionnel, et prend des valeurs dans l'intervalle 0 (pire qualité, petit fichier) à 100 (meilleure qualité, gros fichier). Par défaut (-1), utilise la valeur de la qualité IJG par défaut (environ 75).

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Attention

Toutefois, si libgd ne parvient pas à produire l'image, cette fonction retourne true.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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);
?>

Résultat de l'exemple ci-dessus est 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().

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, PHP 8)

imagelayereffect — Active l'option d'alpha blending, pour utiliser les effets de libgd

Description

imagelayereffect(GdImage $image, int $effect): bool

Active l'option d'alpha blending, pour utiliser les effets libgd.

Liste de paramètres

image

Un objet GdImage, 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
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.
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);
?>

Résultat de l'exemple ci-dessus est similaire à :

Affichage de l'exemple : imagelayereffect()


Dessine une ligne

  • « imagelayereffect
  • imageloadfont »
  • PHP Manual
  • Fonctions GD et images
  • Dessine une ligne

imageline

(PHP 4, PHP 5, PHP 7, PHP 8)

imageline — Dessine une ligne

Description

imageline(
GdImage $image,
int $x1,
int $y1,
int $x2,
int $y2,
int $color
): bool

Dessine une ligne entre deux points fournis.

Liste de paramètres

image

Un objet GdImage, 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 identificateur de couleur créé avec imagecolorallocate().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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, PHP 8)

imageloadfont — Charge une nouvelle police

Description

imageloadfont(string $filename): GdFont|false

imageloadfont() charge une nouvelle police utilisateur et retourne son identifiant.

Liste de paramètres

filename

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

Retourne une instance GdFont, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Retourne désormais une instance de GdFont; auparavant, un entier était retourné.

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


Dessine un polygone ouvert

  • « imageloadfont
  • imagepalettecopy »
  • PHP Manual
  • Fonctions GD et images
  • Dessine un polygone ouvert

imageopenpolygon

(PHP 7 >= 7.2.0, PHP 8)

imageopenpolygon — Dessine un polygone ouvert

Description

Signature à partir de PHP 8.0.0 (non supportée avec les arguments nommés)

imageopenpolygon(GdImage $image, array $points, int $color): bool

Signature alternative (obsolète à partir de PHP 8.1.0)

imageopenpolygon(
GdImage $image,
array $points,
int $num_points,
int $color
): bool

imageopenpolygon() dessine un polygone ouvert sur l'image. Contrairement à imagepolygon(), aucune ligne est dessiné entre le dernier et le premier point.

Liste de paramètres

image

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

points

Un tableau contenant les sommets du polygone, par exemple :

points[0] | = x0
points[1] | = y0
points[2] | = x1
points[3] | = y1

num_points

Nombre total de points (sommets), qui doivent être d'au moins 3.

Si ce paramètre est omis conformément à la deuxième signature, points doit avoir un nombre pair d'éléments, et num_points est assumé d'être count($points)/2.
color

Un identificateur de couleur créé avec imagecolorallocate().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre num_points a été rendu obsolète.
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

Exemples

Exemple #1 Exemple avec imageopenpolygon()

<?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);
?>

Résultat de l'exemple ci-dessus est similaire à :

Sortie de l'exemple : 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, PHP 8)

imagepalettecopy — Copie la palette d'une image à l'autre

Description

imagepalettecopy(GdImage $dst, GdImage $src): void

imagepalettecopy() copie la palette de l'image src dans l'image dst.

Liste de paramètres

dst

L'objet de l'image de destination.

src

L'objet de l'image source.

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version | Description
8.0.0 | dst et src attendent désormais des instances de GdImage ; auparavant, des resources étaient attendues.

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, PHP 8)

imagepalettetotruecolor — Convertit une image basée sur une palette en couleur vraie

Description

imagepalettetotruecolor(GdImage $image): bool

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

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

Valeurs de retour

Retourne true si la conversion a été un succès, ou si l'image source est déjà en couleur vraie, sinon, retourne false.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

Exemples

Exemple #1 Convertit n'importe quelle objet 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, PHP 8)

imagepng — Envoie une image PNG vers un navigateur ou un fichier

Description

imagepng(
GdImage $image,
resource|string|null $file = null,
int $quality = -1,
int $filters = -1
): bool

imagepng() affiche ou sauvegarde une image au format PNG en utilisant l'image image.

Liste de paramètres

image

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

file

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 non-défini ou 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. La valeur par défaut (-1) utilise la compression par défaut de zlib. Pour plus d'informations voir le » manuel zlib.

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. La valeur par défaut (-1) désactive le filtrage.

Attention

La paramètre filters est ignoré par system libgd.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Attention

Toutefois, si libgd ne parvient pas à produire l'image, cette fonction retourne true.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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() - Détermine si les informations complètes du canal alpha doivent être conservées lors de la sauvegardes d'images


Dessine un polygone

  • « imagepng
  • imagerectangle »
  • PHP Manual
  • Fonctions GD et images
  • Dessine un polygone

imagepolygon

(PHP 4, PHP 5, PHP 7, PHP 8)

imagepolygon — Dessine un polygone

Description

Signature à partir de PHP 8.0.0 (non supportée avec les arguments nommés)

imagepolygon(GdImage $image, array $points, int $color): bool

Signature alternative (obsolète à partir de PHP 8.1.0)

imagepolygon(
GdImage $image,
array $points,
int $num_points,
int $color
): bool

imagepolygon() dessine un polygone dans l'image image.

Liste de paramètres

image

Un objet GdImage, 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

Nombre total de points (sommets), qui doivent être d'au moins 3.

Si ce paramètre est omis conformément à la deuxième signature, points doit avoir un nombre pair d'éléments, et num_points est assumé d'être count($points)/2.
color

Un identificateur de couleur créé avec imagecolorallocate().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre num_points a été rendu obsolète.
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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);
?>

Résultat de l'exemple ci-dessus est similaire à :

Affichage de l'exemple : imagepolygon()

Voir aussi

  • imagefilledpolygon() - Dessine un polygone rempli
  • imageopenpolygon() - Dessine un polygone ouvert
  • imagecreate() - Crée une nouvelle image à palette
  • imagecreatetruecolor() - Crée une nouvelle image en couleurs vraies


Dessine un rectangle

  • « imagepolygon
  • imageresolution »
  • PHP Manual
  • Fonctions GD et images
  • Dessine un rectangle

imagerectangle

(PHP 4, PHP 5, PHP 7, PHP 8)

imagerectangle — Dessine un rectangle

Description

imagerectangle(
GdImage $image,
int $x1,
int $y1,
int $x2,
int $y2,
int $color
): bool

imagerectangle() dessine un rectangle aux coordonnées spécifiées.

Liste de paramètres

image

Un objet GdImage, 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 identificateur de couleur créé avec imagecolorallocate().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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);
?>

Résultat de l'exemple ci-dessus est similaire à :

Affichage de l'exemple : imagerectangle()


Récupère ou définit la résoltion de l'image

  • « imagerectangle
  • imagerotate »
  • PHP Manual
  • Fonctions GD et images
  • Récupère ou définit la résoltion de l'image

imageresolution

(PHP 7 >= 7.2.0, PHP 8)

imageresolution — Récupère ou définit la résoltion de l'image

Description

imageresolution(GdImage $image, ?int $resolution_x = null, ?int $resolution_y = null): array|bool

imageresolution() permet de définir et récupérer la résolution d'une image en DPI (dots per inch/point par pouce). Si les paramètres optionnel sont null, la résolution actuelle est retournée dans un tableau indexé, Si uniquement resolution_x n'est pas null, la résolution horizontale et verticale sont définit à cette valeur. Si aucun des paramètres optionnels sont null, la résolution horizontale et verticale sont définit à ces valeurs respectivement.

La résolution est uniquement utilisé en tant que méta données quand les images sont lu et écrit à des formats supportant ce genre d'information (actuellement PNG et JPEG). Ceci n'affecte pas les opérations de dessin. La résolution par défaut des nouvelles images est 96 DPI.

Liste de paramètres

image

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

resolution_x

La résolution horizontale en DPI/PPP.

resolution_y

La résolution verticale en DPI/PPP.

Valeurs de retour

Quand utilisé en tant que récupérateur, ceci retourne un tableau indexé avec les résolutions horizontale et verticale en cas de succès, ou false si une erreur survient. Quand utilisé en tant que définisseur, ceci retourne true en cas de succès, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | resolution_x et resolution_y sont désormais nullable.

Exemples

Exemple #1 Définir et récupérer la résolution d'une 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, PHP 8)

imagerotate — Fait tourner une image d'un angle

Description

imagerotate(GdImage $image, float $angle, int $background_color): GdImage|false

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

Un objet GdImage, 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.

background_color

Spécifie la couleur des zones qui seront découvertes après la rotation.

Valeurs de retour

Retourne un objet d'image correspondant à l'image après rotation, ou false si une erreur survient.

Historique

Version | Description
8.3.0 | Le paramètre inutilisé ignore_transparent a été complètement supprimé.
8.0.0 | En cas de succès, cette fonction retourne désormais une instance de GDImage ; auparavant, une resource était retournée.
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.
8.0.0 | Le paramètre inutilisé ignore_transparent attend désormais un bool ; auparavant il s'attendait à un int.

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);
?>

Résultat de l'exemple ci-dessus est 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


Détermine si les informations complètes du canal alpha doivent être conservées lors de la sauvegardes d'images

  • « imagerotate
  • imagescale »
  • PHP Manual
  • Fonctions GD et images
  • Détermine si les informations complètes du canal alpha doivent être conservées lors de la sauvegardes d'images

imagesavealpha

(PHP 4 >= 4.3.2, PHP 5, PHP 7, PHP 8)

imagesavealpha — Détermine si les informations complètes du canal alpha doivent être conservées lors de la sauvegardes d'images

Description

imagesavealpha(GdImage $image, bool $enable): bool

imagesavealpha() définit le drapeau qui détermine si les informations du canal alpha (en opposition à la transparence à couleur unique) doivent être conservées lors de la sauvegarde d'images. Cela est supporte seulement pour les formats d'images qui supportent la totalité des informations de chaines alpha, par exemple PNG, WebP et AVIF.

Note: imagesavealpha() est seulement significatif pour les images PNG, comme les chaînes alpha pleines sont toujours sauvegardées pour WebP et AVIF. Il n'est pas recommendé de se reposer sur ce comportement, cela pourrait changer dans le futur. Donc, imagesavealpha() devrait être appelé intentionellement aussi pour les images WebP et AVIF.

Le alphablending doit être désactivé (imagealphablending($im, false)) pour conserver le canal alpha en premier lieu.

Liste de paramètres

image

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

enable

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.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

Exemples

Exemple #1 Utilisation simple de imagesavealpha()

<?php
// Charge une image PNG avec un canal alpha
$png = imagecreatefrompng('./alphachannel_example.png');

// Désactiver le alpha blending
imagealphablending($png, false);

// Faire les opérations désirées

// Définir le drapeau alpha
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, PHP 8)

imagescale — Met à l'échelle une image en utilisant une hauteur et une largeur fournies

Description

imagescale(
GdImage $image,
int $width,
int $height = -1,
int $mode = IMG_BILINEAR_FIXED
): GdImage|false

imagescale() met à l'échelle une image en utilisant l'algorithme d'interpolation donné.

Note:

Contrairement à beaucoup d'autres fonctions d'image, imagescale() ne modifie pas l'image fournit ; à la place, une nouvelle image est retournée.

Liste de paramètres

image

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

width

La largeur à utiliser pour la mise à l'échelle de l'image.

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é.

mode

Une des constantes IMG_NEAREST_NEIGHBOUR, IMG_BILINEAR_FIXED, IMG_BICUBIC, IMG_BICUBIC_FIXED ou toute autre (utilisera deux passages).

Note: IMG_WEIGHTED4 n'est pas encore pris en charge.

Valeurs de retour

Retourne l'objet de l'image mise à l'échelle en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | En cas de succès, cette fonction retourne désormais une instance de GDImage ; auparavant, une resource était retournée.
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

Voir aussi

  • imagecopyresized() - Copie et redimensionne une partie d'une image
  • imagecopyresampled() - Copie, redimensionne, rééchantillonne une image


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, PHP 8)

imagesetbrush — Modifie la brosse pour le dessin des lignes

Description

imagesetbrush(GdImage $image, GdImage $brush): bool

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.

Attention

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.

Liste de paramètres

image

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

brush

Un objet d'image.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | image et brush attendent désormais des instances de GdImage ; auparavant, des resources étaient attendues.

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);
?>

Résultat de l'exemple ci-dessus est similaire à :

Affichage de l'exemple : imagesetbrush()


Définit le rectangle de coupure

  • « imagesetbrush
  • imagesetinterpolation »
  • PHP Manual
  • Fonctions GD et images
  • Définit le rectangle de coupure

imagesetclip

(PHP 7 >= 7.2.0, PHP 8)

imagesetclip — Définit le rectangle de coupure

Description

imagesetclip(
GdImage $image,
int $x1,
int $y1,
int $x2,
int $y2
): bool

imagesetclip() définit le rectangle de coupure actuel, c'est à dire la zone au-delà de laquelle aucun pixel ne sera dessiné.

Liste de paramètres

image

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

x1

La coordonée x du coin supérieur gauche.

y1

La coordonée y du coin supérieur gauche.

x2

La coordonée x du coin inférieur droite.

y2

La coordonée y du coin inférieur droite.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

Voir aussi

  • imagegetclip() - Récupère le rectangle de coupure


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, PHP 8)

imagesetinterpolation — Défini la méthode d'interpolation

Description

imagesetinterpolation(GdImage $image, int $method = IMG_BILINEAR_FIXED): bool

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

Un objet GdImage, 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.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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()

Voir aussi

  • imagegetinterpolation() - Récupère la méthode d'interpolation


Dessine un pixel

  • « imagesetinterpolation
  • imagesetstyle »
  • PHP Manual
  • Fonctions GD et images
  • Dessine un pixel

imagesetpixel

(PHP 4, PHP 5, PHP 7, PHP 8)

imagesetpixel — Dessine un pixel

Description

imagesetpixel(
GdImage $image,
int $x,
int $y,
int $color
): bool

imagesetpixel() dessine un pixel aux coordonnées spécifiées.

Liste de paramètres

image

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

x

X : coordonnée.

y

Y : coordonnée.

color

Un identificateur de couleur créé avec imagecolorallocate().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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);

?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

imagesetstyle — Configure le style pour le dessin des lignes

Description

imagesetstyle(GdImage $image, array $style): bool

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

Un objet GdImage, 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. Notez que style ne doit pas être un tableau array vide.

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);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

imagesetthickness — Modifie l'épaisseur d'un trait

Description

imagesetthickness(GdImage $image, int $thickness): bool

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

Un objet GdImage, 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.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

imagesettile — Modifie l'image utilisée pour le carrelage

Description

imagesettile(GdImage $image, GdImage $tile): bool

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.

Attention

Vous n'avez rien à faire lorsque vous en avez terminé avec une brosse, mais si vous détruisez l'image de brosse (ou laissez PHP le détruire), 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

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

tile

L'objet' 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.

Historique

Version | Description
8.0.0 | image et tile attendent désormais des instances de GdImage ; auparavant, des resources étaient attendues.

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);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

imagestring — Dessine une chaîne horizontale

Description

imagestring(
GdImage $image,
GdFont|int $font,
int $x,
int $y,
string $string,
int $color
): bool

Dessine une chaîne aux coordonnées spécifiées.

Liste de paramètres

image

Un objet GdImage, 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 une instance de GdFont retourné par 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 identificateur de couleur créé avec imagecolorallocate().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre font accepte désormais une instance de GdFont et un entier; auparavant seulement un entier était accepté.
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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);
?>

Résultat de l'exemple ci-dessus est similaire à :

Affichage de l'exemple : imagestring()

Voir aussi

  • imagestringup() - Dessine une chaîne verticale
  • 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, PHP 8)

imagestringup — Dessine une chaîne verticale

Description

imagestringup(
GdImage $image,
GdFont|int $font,
int $x,
int $y,
string $string,
int $color
): bool

Dessine une chaîne sur une ligne verticale dans l'image image aux coordonnées spécifiées.

Liste de paramètres

image

Un objet GdImage, 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 une instance de GdFont retourné par 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 identificateur de couleur créé avec imagecolorallocate().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre font accepte désormais une instance de GdFont et un entier; auparavant seulement un entier était accepté.
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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);
?>

Résultat de l'exemple ci-dessus est similaire à :

Affichage de l'exemple : imagestringup()

Voir aussi

  • imagestring() - Dessine une chaîne horizontale
  • 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, PHP 8)

imagesx — Retourne la largeur d'une image

Description

imagesx(GdImage $image): int

Retourne la largeur de l'objet image image.

Liste de paramètres

image

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

Valeurs de retour

Retourne la largeur de l'image image.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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, PHP 8)

imagesy — Retourne la hauteur de l'image

Description

imagesy(GdImage $image): int

Retourne la hauteur de l'image image.

Liste de paramètres

image

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

Valeurs de retour

Retourne la hauteur de l'image image.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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, PHP 8)

imagetruecolortopalette — Convertit une image en couleurs vraies en image à palette

Description

imagetruecolortopalette(GdImage $image, bool $dither, int $num_colors): bool

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

Un objet GdImage, 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.

num_colors

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.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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, PHP 8)

imagettfbbox — Retourne le rectangle entourant un texte et dessiné avec une police TrueType

Description

imagettfbbox(
float $size,
float $angle,
string $font_filename,
string $string,
array $options = []
): array|false

Calcule et retourne le rectangle entourant le texte text, écrit avec une police truetype.

Note:

Antérieur à PHP 8.0.0, imageftbbox() était une variante étendue de imagettfbbox() qui en plus supporte extrainfo. À partir de PHP 8.0.0, imagettfbbox() est un alias de imageftbbox().

Liste de paramètres

size

La taille de la police de caractères en point.

angle

L'angle, en degrés, dans lequel le paramètre string sera mesuré.

fontfile

Le chemin d'accès à la police TrueType que vous souhaitez utiliser.

Selon la version de la bibliothèque GD que PHP utilise, quand fontfile ne commence pas par une premier / alors .ttf sera ajouté au nom de fichier et la bibliothèque essaiera de rechercher ce nom de fichier le long d'un chemin de police défini par la bibliothèque.

Lorsque vous utilisez des versions de la bibliothèque GD inférieure à 2.0.18, un caractère espace, plutôt qu'un point-virgule, a été utilisé comme séparateur de chemin d'accès pour différents fichiers de police. L'utilisation involontaire de cette fonctionnalité se traduira par le message d'avertissement: Avertissement: impossible de trouver/ouvrir la police. Pour ces versions affectées, la seule solution consiste à déplacer la police vers un chemin qui ne contient pas d'espaces.

Dans de nombreux cas où une police réside dans le même répertoire que le script en l'utilisant l'astuce suivante permettra d'atténuer les problèmes d'inclusion.

<?php
// Définir la variable d'environnement pour GD
putenv('GDFONTPATH=' . realpath('.'));

// Nommez la police à utiliser (Notez l'absence de l'extension .ttf)
$font = 'SomeFont';
?>

Note:

Notez que open_basedir ne s'applique pas à fontfile.

string

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.

Historique

Version | Description
8.0.0 | Le paramètre options a été ajouté.

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'est disponible que si si PHP est compilé avec le support Freetype (--with-freetype-dir=DIR)

Voir aussi

  • imagettftext() - Dessine un texte avec une police TrueType
  • imageftbbox() - Calcule le rectangle d'encadrement pour un texte, en utilisant la police courante et freetype2


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, PHP 8)

imagettftext — Dessine un texte avec une police TrueType

Description

imagettftext(
GdImage $image,
float $size,
float $angle,
int $x,
int $y,
int $color,
string $font_filename,
string $text,
array $options = []
): array|false

imagettftext() dessine le texte text avec la police TrueType fontfile.

Note:

Antérieur à PHP 8.0.0, imagefttext() était une variante étendue de imagettftext() qui en plus supporte extrainfo. À partir de PHP 8.0.0, imagefttext() est un alias de imagefttext().

Liste de paramètres

image

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

size

La taille de la police de caractères en point.

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 d'accès à la police TrueType que vous souhaitez utiliser.

Selon la version de la bibliothèque GD que PHP utilise, quand fontfile ne commence pas par une premier / alors .ttf sera ajouté au nom de fichier et la bibliothèque essaiera de rechercher ce nom de fichier le long d'un chemin de police défini par la bibliothèque.

Lorsque vous utilisez des versions de la bibliothèque GD inférieure à 2.0.18, un caractère espace, plutôt qu'un point-virgule, a été utilisé comme séparateur de chemin d'accès pour différents fichiers de police. L'utilisation involontaire de cette fonctionnalité se traduira par le message d'avertissement: Avertissement: impossible de trouver/ouvrir la police. Pour ces versions affectées, la seule solution consiste à déplacer la police vers un chemin qui ne contient pas d'espaces.

Dans de nombreux cas où une police réside dans le même répertoire que le script en l'utilisant l'astuce suivante permettra d'atténuer les problèmes d'inclusion.

<?php
// Définir la variable d'environnement pour GD
putenv('GDFONTPATH=' . realpath('.'));

// Nommez la police à utiliser (Notez l'absence de l'extension .ttf)
$font = 'SomeFont';
?>

Note:

Notez que open_basedir ne s'applique pas à fontfile.

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
8.0.0 | Le paramètre options a été ajouté.

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);
?>

Résultat de l'exemple ci-dessus est similaire à :

Affichage de l'exemple : imagettftext()

Notes

Note: Cette fonction n'est disponible que si si PHP est compilé avec le support Freetype (--with-freetype-dir=DIR)

Voir aussi

  • imagettfbbox() - Retourne le rectangle entourant un texte et dessiné avec une police TrueType
  • imagefttext() - Écrit du texte dans une image avec la police courante FreeType 2


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, PHP 8)

imagetypes — Retourne les types d'images supportés par la version courante de PHP

Description

imagetypes(): int

Retourne un champ d'octets correspondant aux formats d'images supportés par la version PHP utilisée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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_AVIF | IMG_BMP | IMG_GIF | IMG_JPG | IMG_PNG | IMG_WBMP | IMG_XPM | IMG_WEBP.

Historique

Version | Description
8.1.0 | Ajout de la constante IMG_AVIF.
7.2.0 | Ajout de la constante IMG_BMP.
7.0.10 | Ajout de la constante IMG_WEBP.

Exemples

Exemple #1 Exemple avec imagetypes()

<?php
if (imagetypes() & IMG_PNG) {
echo "Le type PNG est supporté";
}
?>

Voir aussi

  • gd_info() - Retourne des informations à propos de la bibliothèque GD installée


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, PHP 8)

imagewbmp — Affichage de l'image vers le navigateur ou dans un fichier

Description

imagewbmp(GdImage $image, resource|string|null $file = null, ?int $foreground_color = null): bool

imagewbmp() affiche ou sauvegarde une version WBMP de l'image image.

Liste de paramètres

image

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

file

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 non-défini ou null, le flux brute de l'image sera affiché directement.

foreground_color

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.

Attention

Toutefois, si libgd ne parvient pas à produire l'image, cette fonction retourne true.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.
8.0.0 | foreground_color est désormais nullable.

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);
?>

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.4.0, PHP 7, PHP 8)

imagewebp — Affiche une image WebP vers un navigateur ou un fichier

Description

imagewebp(GdImage $image, resource|string|null $file = null, int $quality = -1): bool

Affiche ou sauvegarde une version WebP de l'image fournie.

Liste de paramètres

image

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

file

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 non-défini ou null, le flux brute de l'image sera affiché directement.

quality

quality plage de 0 (la pire qualité, plus petit fichier) à 100 (meilleure qualité, plus grand fichier).

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Attention

Toutefois, si libgd ne parvient pas à produire l'image, cette fonction retourne true.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.

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, PHP 8)

imagexbm — Génère une image au format XBM

Description

imagexbm(GdImage $image, ?string $filename, ?int $foreground_color = null): bool

Affiche ou sauvegarde une version XBM de l'image image.

Note: imagexbm() n'applique pas de rembourrage, de sorte que la largeur de l'image doit être un multiple de 8. Cette restriction ne s'applique plus à partir de PHP 7.0.9, respectivement.

Liste de paramètres

image

Un objet GdImage, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

filename

Chemin d'accès où le fichier sera enregistré, sous la forme d'une chaîne de caractères. S'il n'est pas défini, le flux d'images RAW sera directement affiché sur la sortie standart.

Le nom de fichier filename (sans l'extension .xbm) est également utilisé pour les identificateur C duXBM, auquel cas les caractères non alphanumériques des paramètres régionaux actuels sont remplacés par des soulignements. Si filename a la valeur null, image est utilisée pour générer les identificateurs C.

foreground_color

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. Toutes les autres couleurs sont traitées comme arrière-plan.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Attention

Toutefois, si libgd ne parvient pas à produire l'image, cette fonction retourne true.

Historique

Version | Description
8.0.0 | image attend une instance de GdImage désormais; auparavant, une resource gd était attendue.
8.0.0 | foreground_color est désormais nullable.
8.0.0 | Le quatrième paramètre, qui n'était pas utilisé, a été supprimé.

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);
?>


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, PHP 8)

iptcembed — Intègre des données binaires IPTC dans une image JPEG

Description

iptcembed(string $iptc_data, string $filename, int $spool = 0): string|bool

iptcembed() intègre des données binaires IPTC dans une image JPEG.

Liste de paramètres

iptc_data

Les données à écrire.

filename

Chemin vers le fichier JPEG.

spool

Le drapeau de la bobine. Si la bobine est inférieur à 2, alors le fichier JPEG sera retourné sous la forme d'une chaîne de caractères. Autrement le fichier JPEG sera envoyé à STDOUT.

Valeurs de retour

Si spool est inférieur à 2, le fichier JPEG sera retourné, ou false si une erreur survient. Sinon retourne true en cas de succès 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';

// Définit les étiquettes IPTC
$iptc = array(
'2#120' => 'Test image',
'2#116' => 'Copyright 2008-2009, The PHP Group'
);

// Conversion des étiquettes 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, PHP 8)

iptcparse — Analyse un bloc binaire IPTC et recherche les balises simples

Description

iptcparse(string $iptc_block): array|false

Analyse un bloc binaire » IPTC et recherche les balises simples.

Liste de paramètres

iptc_block

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

Cette fonctionnalité est OBSOLÈTE à partir de PHP 7.2.0 et a été SUPPRIMÉE à partir de PHP 8.0.0.

Description

jpeg2wbmp(
string $jpegname,
string $wbmpname,
int $dest_height,
int $dest_width,
int $threshold
): bool

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.

Attention

Toutefois, si libgd ne parvient pas à produire l'image, cette fonction retourne true.

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
  • GdImage »
  • 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

Cette fonctionnalité est OBSOLÈTE à partir de PHP 7.2.0 et a été SUPPRIMÉE à partir de PHP 8.0.0.

Description

png2wbmp(
string $pngname,
string $wbmpname,
int $dest_height,
int $dest_width,
int $threshold
): bool

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.

Attention

Toutefois, si libgd ne parvient pas à produire l'image, cette fonction retourne true.

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


La classe GdImage

(PHP 8)

Introduction

Une classe totalement opaque qui remplace les ressources gd à partir de PHP 8.0.0.

Synopsis de la classe

final class GdImage {
}


La classe GdFont

(PHP 8 >= 8.1.0)

Introduction

Une classe complètement opaque qui remplace la ressource gd font à partir de PHP 8.1.0.

Synopsis de la classe

final class GdFont {
}


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 — Fait un rendu de l'objet GmagickDraw sur 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 — Crée une image miroir horizontale
    • 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 — Définit la qualité de compression par défaut de l'objet
    • 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 — Alias de Gmagick::writeimage
    • 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 — Trace une ligne
    • 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+. 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 : » https://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 (int)
Noir
Gmagick::COLOR_BLUE (int)
Bleu
Gmagick::COLOR_CYAN (int)
Cyan
Gmagick::COLOR_GREEN (int)
Vert
Gmagick::COLOR_RED (int)
Rouge
Gmagick::COLOR_YELLOW (int)
Jaune
Gmagick::COLOR_MAGENTA (int)
Magenta
Gmagick::COLOR_OPACITY (int)
Opacité
Gmagick::COLOR_ALPHA (int)
Alpha
Gmagick::COLOR_FUZZ (int)
Fuzz
Constantes relatives aux opérateurs composite
Gmagick::COMPOSITE_DEFAULT (int)
L'opérateur composite par défaut
Gmagick::COMPOSITE_UNDEFINED (int)
Opérateur composite indéfini
Gmagick::COMPOSITE_NO (int)
Aucun opérateur composite de défini
Gmagick::COMPOSITE_ADD (int)
Le résultat d'une image + une image
Gmagick::COMPOSITE_ATOP (int)
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 (int)
Mélange l'image
Gmagick::COMPOSITE_BUMPMAP (int)
Identique à COMPOSITE_MULTIPLY, mis à part que le source est converti d'abord en niveaux de gris.
Gmagick::COMPOSITE_CLEAR (int)
Rend la cible de l'image transparent
Gmagick::COMPOSITE_COLORBURN (int)
Noircit l'image de destination pour refléter l'image source
Gmagick::COMPOSITE_COLORDODGE (int)
Éclaircit l'image de destination pour refléter l'image source
Gmagick::COMPOSITE_COLORIZE (int)
Colorise l'image cible en utilisant l'image composite
Gmagick::COMPOSITE_COPYBLACK (int)
Copie les noirs depuis la source vers la cible
Gmagick::COMPOSITE_COPYBLUE (int)
Copie les bleus depuis la source vers la cible
Gmagick::COMPOSITE_COPY (int)
Copie l'image source sur l'image cible
Gmagick::COMPOSITE_COPYCYAN (int)
Copie le cyan depuis la source vers la cible
Gmagick::COMPOSITE_COPYGREEN (int)
Copie le vert depuis la source vers la cible
Gmagick::COMPOSITE_COPYMAGENTA (int)
Copie le magenta depuis la source vers la cible
Gmagick::COMPOSITE_COPYOPACITY (int)
Copie l'opacité depuis la source vers la cible
Gmagick::COMPOSITE_COPYRED (int)
Copie le rouge depuis la source vers la cible
Gmagick::COMPOSITE_COPYYELLOW (int)
Copie le jaune depuis la source vers la cible
Gmagick::COMPOSITE_DARKEN (int)
Assombrit l'image cible
Gmagick::COMPOSITE_DSTATOP (int)
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 (int)
La cible est conservée sans modification
Gmagick::COMPOSITE_DSTIN (int)
La partie de la source remplace la cible
Gmagick::COMPOSITE_DSTOUT (int)
La partie à l'exterieur de la source remplace la cible
Gmagick::COMPOSITE_DSTOVER (int)
La cible remplace la source
Gmagick::COMPOSITE_DIFFERENCE (int)
Soustrait la plus sombre des deux couleurs élémentaires depuis la plus claire
Gmagick::COMPOSITE_DISPLACE (int)
Décale les pixels de l'image cible tel que défini par la source
Gmagick::COMPOSITE_DISSOLVE (int)
Dissous la source dans la cible
Gmagick::COMPOSITE_EXCLUSION (int)
Produit un effet similaire à Gmagick::COMPOSITE_DIFFERENCE, mais apparaît avec un contraste plus faible
Gmagick::COMPOSITE_HARDLIGHT (int)
Multiplie ou superpose les couleurs, en fonction de la valeur de couleur de source
Gmagick::COMPOSITE_HUE (int)
Modifie la teinte de la cible telle que définie par la source
Gmagick::COMPOSITE_IN (int)
Effectue un composite de la source dans la cible
Gmagick::COMPOSITE_LIGHTEN (int)
Eclaircit la cible telle que définie par la source
Gmagick::COMPOSITE_LUMINIZE (int)
Illumine la cible telle que définie par la source
Gmagick::COMPOSITE_MINUS (int)
Soustrait la source de la cible
Gmagick::COMPOSITE_MODULATE (int)
Module la luminosité cible, la saturation et la teinte tel que défini par la source
Gmagick::COMPOSITE_MULTIPLY (int)
Multiplie la cible à la source
Gmagick::COMPOSITE_OUT (int)
Effectue un composite des parties extérieures de la source sur la cible
Gmagick::COMPOSITE_OVER (int)
Effectue un composite par dessus la cible
Gmagick::COMPOSITE_OVERLAY (int)
Supperpose la source sur la cible
Gmagick::COMPOSITE_PLUS (int)
Ajoute la source à la cible
Gmagick::COMPOSITE_REPLACE (int)
Remplace la cible par la source
Gmagick::COMPOSITE_SATURATE (int)
Sature la cible tel que défini par la source
Gmagick::COMPOSITE_SCREEN (int)
La source et la destination sont complémentés, puis multipliés, puis remplace la destination
Gmagick::COMPOSITE_SOFTLIGHT (int)
Assombrie ou éclaire les couleurs, suivant la source
Gmagick::COMPOSITE_SRCATOP (int)
La partie de la source se trouvant dans la destination est composé sur la destination
Gmagick::COMPOSITE_SRC (int)
La source est copiée vers la destination
Gmagick::COMPOSITE_SRCIN (int)
La partie de la source se trouvant dans la destination remplace la destination
Gmagick::COMPOSITE_SRCOUT (int)
La partie de la source se trouvant en dehors de la destination remplace la destination
Gmagick::COMPOSITE_SRCOVER (int)
La source remplace la destination
Gmagick::COMPOSITE_SUBTRACT (int)
Soustrait les couleurs de l'image source dans l'image de destination
Gmagick::COMPOSITE_THRESHOLD (int)
La source est composée de la cible, telle que définie par la source
Gmagick::COMPOSITE_XOR (int)
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 (int)
Gmagick::MONTAGEMODE_UNFRAME (int)
Gmagick::MONTAGEMODE_CONCATENATE (int)
Constantes de style
Gmagick::STYLE_NORMAL (int)
Gmagick::STYLE_ITALIC (int)
Gmagick::STYLE_OBLIQUE (int)
Gmagick::STYLE_ANY (int)
Constantes de filtre
Gmagick::FILTER_UNDEFINED (int)
Gmagick::FILTER_POINT (int)
Gmagick::FILTER_BOX (int)
Gmagick::FILTER_TRIANGLE (int)
Gmagick::FILTER_HERMITE (int)
Gmagick::FILTER_HANNING (int)
Gmagick::FILTER_HAMMING (int)
Gmagick::FILTER_BLACKMAN (int)
Gmagick::FILTER_GAUSSIAN (int)
Gmagick::FILTER_QUADRATIC (int)
Gmagick::FILTER_CUBIC (int)
Gmagick::FILTER_CATROM (int)
Gmagick::FILTER_MITCHELL (int)
Gmagick::FILTER_LANCZOS (int)
Gmagick::FILTER_BESSEL (int)
Gmagick::FILTER_SINC (int)
Constantes de type d'image
Gmagick::IMGTYPE_UNDEFINED (int)
Gmagick::IMGTYPE_BILEVEL (int)
Gmagick::IMGTYPE_GRAYSCALE (int)
Gmagick::IMGTYPE_GRAYSCALEMATTE (int)
Gmagick::IMGTYPE_PALETTE (int)
Gmagick::IMGTYPE_PALETTEMATTE (int)
Gmagick::IMGTYPE_TRUECOLOR (int)
Gmagick::IMGTYPE_TRUECOLORMATTE (int)
Gmagick::IMGTYPE_COLORSEPARATION (int)
Gmagick::IMGTYPE_COLORSEPARATIONMATTE (int)
Gmagick::IMGTYPE_OPTIMIZE (int)
Constantes de résolution
Gmagick::RESOLUTION_UNDEFINED (int)
Gmagick::RESOLUTION_PIXELSPERINCH (int)
Gmagick::RESOLUTION_PIXELSPERCENTIMETER (int)
Constantes de compression
Gmagick::COMPRESSION_UNDEFINED (int)
Gmagick::COMPRESSION_NO (int)
Gmagick::COMPRESSION_BZIP (int)
Gmagick::COMPRESSION_FAX (int)
Gmagick::COMPRESSION_GROUP4 (int)
Gmagick::COMPRESSION_JPEG (int)
Gmagick::COMPRESSION_JPEG2000 (int)
Gmagick::COMPRESSION_LOSSLESSJPEG (int)
Gmagick::COMPRESSION_LZW (int)
Gmagick::COMPRESSION_RLE (int)
Gmagick::COMPRESSION_ZIP (int)
Constantes de dessin
Gmagick::PAINT_POINT (int)
Gmagick::PAINT_REPLACE (int)
Gmagick::PAINT_FLOODFILL (int)
Gmagick::PAINT_FILLTOBORDER (int)
Gmagick::PAINT_RESET (int)
Constantes de gravité
Gmagick::GRAVITY_NORTHWEST (int)
Gmagick::GRAVITY_NORTH (int)
Gmagick::GRAVITY_NORTHEAST (int)
Gmagick::GRAVITY_WEST (int)
Gmagick::GRAVITY_CENTER (int)
Gmagick::GRAVITY_EAST (int)
Gmagick::GRAVITY_SOUTHWEST (int)
Gmagick::GRAVITY_SOUTH (int)
Gmagick::GRAVITY_SOUTHEAST (int)
Constantes d'étirement
Gmagick::STRETCH_NORMAL (int)
Gmagick::STRETCH_ULTRACONDENSED (int)
Gmagick::STRETCH_CONDENSED (int)
Gmagick::STRETCH_SEMICONDENSED (int)
Gmagick::STRETCH_SEMIEXPANDED (int)
Gmagick::STRETCH_EXPANDED (int)
Gmagick::STRETCH_EXTRAEXPANDED (int)
Gmagick::STRETCH_ULTRAEXPANDED (int)
Gmagick::STRETCH_ANY (int)
Constantes d'alignement
Gmagick::ALIGN_UNDEFINED (int)
Gmagick::ALIGN_LEFT (int)
Gmagick::ALIGN_CENTER (int)
Gmagick::ALIGN_RIGHT (int)
Constantes de décoration
Gmagick::DECORATION_NO (int)
Gmagick::DECORATION_UNDERLINE (int)
Gmagick::DECORATION_OVERLINE (int)
Gmagick::DECORATION_LINETROUGH (int)
Constantes de bruit
Gmagick::NOISE_UNIFORM (int)
Gmagick::NOISE_GAUSSIAN (int)
Gmagick::NOISE_MULTIPLICATIVEGAUSSIAN (int)
Gmagick::NOISE_IMPULSE (int)
Gmagick::NOISE_LAPLACIAN (int)
Gmagick::NOISE_POISSON (int)
Constantes de canal
Gmagick::CHANNEL_UNDEFINED (int)
Gmagick::CHANNEL_RED (int)
Gmagick::CHANNEL_GRAY (int)
Gmagick::CHANNEL_CYAN (int)
Gmagick::CHANNEL_GREEN (int)
Gmagick::CHANNEL_MAGENTA (int)
Gmagick::CHANNEL_BLUE (int)
Gmagick::CHANNEL_YELLOW (int)
Gmagick::CHANNEL_ALPHA (int)
Gmagick::CHANNEL_OPACITY (int)
Gmagick::CHANNEL_MATTE (int)
Gmagick::CHANNEL_BLACK (int)
Gmagick::CHANNEL_INDEX (int)
Gmagick::CHANNEL_ALL (int)
Constantes de mesure
Gmagick::METRIC_UNDEFINED (int)
Gmagick::METRIC_MEANABSOLUTEERROR (int)
Gmagick::METRIC_MEANSQUAREERROR (int)
Gmagick::METRIC_PEAKABSOLUTEERROR (int)
Gmagick::METRIC_PEAKSIGNALTONOISERATIO (int)
Gmagick::METRIC_ROOTMEANSQUAREDERROR (int)
Constantes de pixel
Gmagick::PIXEL_CHAR (int)
Gmagick::PIXEL_DOUBLE (int)
Gmagick::PIXEL_FLOAT (int)
Gmagick::PIXEL_INTEGER (int)
Gmagick::PIXEL_LONG (int)
Gmagick::PIXEL_QUANTUM (int)
Gmagick::PIXEL_SHORT (int)
Constantes d'espace de couleurs
Gmagick::COLORSPACE_UNDEFINED (int)
Gmagick::COLORSPACE_RGB (int)
Gmagick::COLORSPACE_GRAY (int)
Gmagick::COLORSPACE_TRANSPARENT (int)
Gmagick::COLORSPACE_OHTA (int)
Gmagick::COLORSPACE_LAB (int)
Gmagick::COLORSPACE_XYZ (int)
Gmagick::COLORSPACE_YCBCR (int)
Gmagick::COLORSPACE_YCC (int)
Gmagick::COLORSPACE_YIQ (int)
Gmagick::COLORSPACE_YPBPR (int)
Gmagick::COLORSPACE_YUV (int)
Gmagick::COLORSPACE_CMYK (int)
Gmagick::COLORSPACE_SRGB (int)
Gmagick::COLORSPACE_HSB (int)
Gmagick::COLORSPACE_HSL (int)
Gmagick::COLORSPACE_HWB (int)
Gmagick::COLORSPACE_REC601LUMA (int)
Gmagick::COLORSPACE_REC709LUMA (int)
Gmagick::COLORSPACE_LOG (int)
Constantes de méthode pour les pixels virtuels
Gmagick::VIRTUALPIXELMETHOD_UNDEFINED (int)
Gmagick::VIRTUALPIXELMETHOD_BACKGROUND (int)
Gmagick::VIRTUALPIXELMETHOD_CONSTANT (int)
Gmagick::VIRTUALPIXELMETHOD_EDGE (int)
Gmagick::VIRTUALPIXELMETHOD_MIRROR (int)
Gmagick::VIRTUALPIXELMETHOD_TILE (int)
Gmagick::VIRTUALPIXELMETHOD_TRANSPARENT (int)
Constantes de prévisualisation
Gmagick::PREVIEW_UNDEFINED (int)
Gmagick::PREVIEW_ROTATE (int)
Gmagick::PREVIEW_SHEAR (int)
Gmagick::PREVIEW_ROLL (int)
Gmagick::PREVIEW_HUE (int)
Gmagick::PREVIEW_SATURATION (int)
Gmagick::PREVIEW_BRIGHTNESS (int)
Gmagick::PREVIEW_GAMMA (int)
Gmagick::PREVIEW_SPIFF (int)
Gmagick::PREVIEW_DULL (int)
Gmagick::PREVIEW_GRAYSCALE (int)
Gmagick::PREVIEW_QUANTIZE (int)
Gmagick::PREVIEW_DESPECKLE (int)
Gmagick::PREVIEW_REDUCENOISE (int)
Gmagick::PREVIEW_ADDNOISE (int)
Gmagick::PREVIEW_SHARPEN (int)
Gmagick::PREVIEW_BLUR (int)
Gmagick::PREVIEW_THRESHOLD (int)
Gmagick::PREVIEW_EDGEDETECT (int)
Gmagick::PREVIEW_SPREAD (int)
Gmagick::PREVIEW_SOLARIZE (int)
Gmagick::PREVIEW_SHADE (int)
Gmagick::PREVIEW_RAISE (int)
Gmagick::PREVIEW_SEGMENT (int)
Gmagick::PREVIEW_SWIRL (int)
Gmagick::PREVIEW_IMPLODE (int)
Gmagick::PREVIEW_WAVE (int)
Gmagick::PREVIEW_OILPAINT (int)
Gmagick::PREVIEW_CHARCOALDRAWING (int)
Gmagick::PREVIEW_JPEG (int)
Constantes de rendu
Gmagick::RENDERINGINTENT_UNDEFINED (int)
Gmagick::RENDERINGINTENT_SATURATION (int)
Gmagick::RENDERINGINTENT_PERCEPTUAL (int)
Gmagick::RENDERINGINTENT_ABSOLUTE (int)
Gmagick::RENDERINGINTENT_RELATIVE (int)
Constantes de règle de remplissage
Gmagick::FILLRULE_UNDEFINED (int)
Gmagick::FILLRULE_EVENODD (int)
Gmagick::FILLRULE_NONZERO (int)
Constantes Pathunit
Gmagick::PATHUNITS_UNDEFINED (int)
Gmagick::PATHUNITS_USERSPACE (int)
Gmagick::PATHUNITS_USERSPACEONUSE (int)
Gmagick::PATHUNITS_OBJECTBOUNDINGBOX (int)
Constantes Linecap
Gmagick::LINECAP_UNDEFINED (int)
Gmagick::LINECAP_BUTT (int)
Gmagick::LINECAP_ROUND (int)
Gmagick::LINECAP_SQUARE (int)
Constantes de jointure de lignes
Gmagick::LINEJOIN_UNDEFINED (int)
Gmagick::LINEJOIN_MITER (int)
Gmagick::LINEJOIN_ROUND (int)
Gmagick::LINEJOIN_BEVEL (int)
Constantes de type de ressources
Gmagick::RESOURCETYPE_UNDEFINED (int)
Gmagick::RESOURCETYPE_AREA (int)
Gmagick::RESOURCETYPE_DISK (int)
Gmagick::RESOURCETYPE_FILE (int)
Gmagick::RESOURCETYPE_MAP (int)
Gmagick::RESOURCETYPE_MEMORY (int)
Constantes d'orientation
Gmagick::ORIENTATION_UNDEFINED (int)
Gmagick::ORIENTATION_TOPLEFT (int)
Gmagick::ORIENTATION_TOPRIGHT (int)
Gmagick::ORIENTATION_BOTTOMRIGHT (int)
Gmagick::ORIENTATION_BOTTOMLEFT (int)
Gmagick::ORIENTATION_LEFTTOP (int)
Gmagick::ORIENTATION_RIGHTTOP (int)
Gmagick::ORIENTATION_RIGHTBOTTOM (int)
Gmagick::ORIENTATION_LEFTBOTTOM (int)
Constantes d'entrelacement
Gmagick::INTERLACE_UNDEFINED (int)
Gmagick::INTERLACE_NO (int)
Gmagick::INTERLACE_NONE (int)
Gmagick::INTERLACE_LINE (int)
Gmagick::INTERLACE_PLANE (int)
Gmagick::INTERLACE_PARTITION (int)


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

class Gmagick {
/* Méthodes */
public __construct(string $filename = ?)
public addimage(Gmagick $source): Gmagick
public addnoiseimage(int $noise_type): Gmagick
public annotateimage(
GmagickDraw $GmagickDraw,
float $x,
float $y,
float $angle,
string $text
): Gmagick
public blurimage(float $radius, float $sigma, int $channel = ?): Gmagick
public borderimage(GmagickPixel $color, int $width, int $height): Gmagick
public charcoalimage(float $radius, float $sigma): Gmagick
public chopimage(
int $width,
int $height,
int $x,
int $y
): Gmagick
public clear(): Gmagick
public commentimage(string $comment): Gmagick
public compositeimage(
Gmagick $source,
int $COMPOSE,
int $x,
int $y
): Gmagick
public cropimage(
int $width ,
int $height ,
int $x,
int $y
): Gmagick
public cropthumbnailimage(int $width, int $height): Gmagick
public current(): Gmagick
public cyclecolormapimage(int $displace): Gmagick
public deconstructimages(): Gmagick
public despeckleimage(): Gmagick
public destroy(): bool
public drawimage(GmagickDraw $GmagickDraw): Gmagick
public edgeimage(float $radius): Gmagick
public embossimage(float $radius, float $sigma): Gmagick
public enhanceimage(): Gmagick
public equalizeimage(): Gmagick
public flipimage(): Gmagick
public flopimage(): Gmagick
public frameimage(
GmagickPixel $color,
int $width,
int $height,
int $inner_bevel,
int $outer_bevel
): Gmagick
public gammaimage(float $gamma): Gmagick
public getcopyright(): string
public getfilename(): string
public getimagebackgroundcolor(): GmagickPixel
public getimageblueprimary(): array
public getimagebordercolor(): GmagickPixel
public getimagechanneldepth(int $channel_type): int
public getimagecolors(): int
public getimagecolorspace(): int
public getimagecompose(): int
public getimagedelay(): int
public getimagedepth(): int
public getimagedispose(): int
public getimageextrema(): array
public getimagefilename(): string
public getimageformat(): string
public getimagegamma(): float
public getimagegreenprimary(): array
public getimageheight(): int
public getimagehistogram(): array
public getimageindex(): int
public getimageinterlacescheme(): int
public getimageiterations(): int
public getimagematte(): int
public getimagemattecolor(): GmagickPixel
public getimageprofile(string $name): string
public getimageredprimary(): array
public getimagerenderingintent(): int
public getimageresolution(): array
public getimagescene(): int
public getimagesignature(): string
public getimagetype(): int
public getimageunits(): int
public getimagewhitepoint(): array
public getimagewidth(): int
public getpackagename(): string
public getquantumdepth(): array
public getreleasedate(): string
public getsamplingfactors(): array
public getsize(): array
public getversion(): array
public hasnextimage(): mixed
public haspreviousimage(): mixed
public implodeimage(float $radius): mixed
public labelimage(string $label): mixed
public levelimage(
float $blackPoint,
float $gamma,
float $whitePoint,
int $channel = Gmagick::CHANNEL_DEFAULT
): mixed
public magnifyimage(): mixed
public mapimage(gmagick $gmagick, bool $dither): Gmagick
public medianfilterimage(float $radius): void
public minifyimage(): Gmagick
public modulateimage(float $brightness, float $saturation, float $hue): Gmagick
public motionblurimage(float $radius, float $sigma, float $angle): Gmagick
public newimage(
int $width,
int $height,
string $background,
string $format = ?
): Gmagick
public nextimage(): bool
public normalizeimage(int $channel = ?): Gmagick
public oilpaintimage( float $radius ): Gmagick
public previousimage(): bool
public profileimage(string $name, string $profile): Gmagick
public quantizeimage(
int $numColors,
int $colorspace,
int $treeDepth,
bool $dither,
bool $measureError
): Gmagick
public quantizeimages(
int $numColors,
int $colorspace,
int $treeDepth,
bool $dither,
bool $measureError
): Gmagick
public queryfontmetrics(GmagickDraw $draw, string $text): array
public queryfonts(string $pattern = "*"): array
public queryformats(string $pattern = "*"): array
public radialblurimage(float $angle, int $channel = Gmagick::CHANNEL_DEFAULT): Gmagick
public raiseimage(
int $width,
int $height,
int $x,
int $y,
bool $raise
): Gmagick
public read(string $filename): Gmagick
public readimage(string $filename): Gmagick
public readimageblob(string $imageContents, string $filename = ?): Gmagick
public readimagefile(resource $fp, string $filename = ?): Gmagick
public reducenoiseimage(float $radius): Gmagick
public removeimage(): Gmagick
public removeimageprofile(string $name): string
public resampleimage(
float $xResolution,
float $yResolution,
int $filter,
float $blur
): Gmagick
public resizeimage(
int $width,
int $height,
int $filter,
float $blur,
bool $fit = false
): Gmagick
public rollimage(int $x, int $y): Gmagick
public rotateimage(mixed $color, float $degrees): Gmagick
public scaleimage(int $width, int $height, bool $fit = false): Gmagick
public separateimagechannel(int $channel): Gmagick
setCompressionQuality( int $quality = 75 ): Gmagick
public setfilename(string $filename): Gmagick
public setimagebackgroundcolor(GmagickPixel $color): Gmagick
public setimageblueprimary(float $x, float $y): Gmagick
public setimagebordercolor(GmagickPixel $color): Gmagick
public setimagechanneldepth(int $channel, int $depth): Gmagick
public setimagecolorspace(int $colorspace): Gmagick
public setimagecompose(int $composite): Gmagick
public setimagedelay(int $delay): Gmagick
public setimagedepth(int $depth): Gmagick
public setimagedispose(int $disposeType): Gmagick
public setimagefilename(string $filename): Gmagick
public setimageformat(string $imageFormat): Gmagick
public setimagegamma(float $gamma): Gmagick
public setimagegreenprimary(float $x, float $y): Gmagick
public setimageindex(int $index): Gmagick
public setimageinterlacescheme(int $interlace): Gmagick
public setimageiterations(int $iterations): Gmagick
public setimageprofile(string $name, string $profile): Gmagick
public setimageredprimary(float $x, float $y): Gmagick
public setimagerenderingintent(int $rendering_intent): Gmagick
public setimageresolution(float $xResolution, float $yResolution): Gmagick
public setimagescene(int $scene): Gmagick
public setimagetype(int $imgType): Gmagick
public setimageunits(int $resolution): Gmagick
public setimagewhitepoint(float $x, float $y): Gmagick
public setsamplingfactors(array $factors): Gmagick
public setsize(int $columns, int $rows): Gmagick
public shearimage(mixed $color, float $xShear, float $yShear): Gmagick
public solarizeimage(int $threshold): Gmagick
public spreadimage(float $radius): Gmagick
public stripimage(): Gmagick
public swirlimage(float $degrees): Gmagick
public thumbnailimage(int $width, int $height, bool $fit = false): Gmagick
public trimimage(float $fuzz): Gmagick
public writeimage(string $filename, bool $all_frames = false): Gmagick
}

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 — Fait un rendu de l'objet GmagickDraw sur 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 — Crée une image miroir horizontale
  • 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 — Définit la qualité de compression par défaut de l'objet
  • 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 — Alias de Gmagick::writeimage
  • 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::addimage(Gmagick $source): 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::addnoiseimage(int $noise_type): Gmagick

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::annotateimage(
GmagickDraw $GmagickDraw,
float $x,
float $y,
float $angle,
string $text
): Gmagick

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 GmagickDraw 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::blurimage(float $radius, float $sigma, int $channel = ?): Gmagick

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::borderimage(GmagickPixel $color, int $width, int $height): Gmagick

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::charcoalimage(float $radius, float $sigma): Gmagick

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::chopimage(
int $width,
int $height,
int $x,
int $y
): Gmagick

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::clear(): Gmagick

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::commentimage(string $comment): Gmagick

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::compositeimage(
Gmagick $source,
int $COMPOSE,
int $x,
int $y
): Gmagick

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.

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::cropimage(
int $width ,
int $height ,
int $x,
int $y
): Gmagick

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::cropthumbnailimage(int $width, int $height): Gmagick

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::current(): Gmagick

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::cyclecolormapimage(int $displace): Gmagick

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 Gmagick::deconstructimages(): Gmagick

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 Gmagick.

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::despeckleimage(): Gmagick

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
/* ... */
?>

Résultat de l'exemple ci-dessus est similaire à :

...


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::destroy(): bool

Détruit l'objet Gmagick et libère toutes les ressources associé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.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Fait un rendu de l'objet GmagickDraw sur l'image courante

  • « Gmagick::destroy
  • Gmagick::edgeimage »
  • PHP Manual
  • Gmagick
  • Fait un rendu de l'objet GmagickDraw sur l'image courante

Gmagick::drawimage

(PECL gmagick >= Unknown)

Gmagick::drawimage — Fait un rendu de l'objet GmagickDraw sur l'image courante

Description

public Gmagick::drawimage(GmagickDraw $GmagickDraw): Gmagick

Fait un rendu de l'objet GmagickDraw sur l'image courante.

Liste de paramètres

GmagickDraw

L'opération de dessin à exécuter sur l'image.

Valeurs de retour

L'objet GmagickDraw dessiné.

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::edgeimage(float $radius): Gmagick

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::embossimage(float $radius, float $sigma): Gmagick

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::enhanceimage(): Gmagick

Applique un filtre digital qui améliore la qualité d'une image contenant du bruit.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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::equalizeimage(): Gmagick

Égalise l'histogramme de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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::flipimage(): Gmagick

Crée une image miroir verticale en reflétant les pixels autour du centre de l'axe X.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'objet Gmagick reflété.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.

Voir aussi

  • Gmagick::flopimage() - Crée une image miroir horizontale


Crée une image miroir horizontale

  • « Gmagick::flipimage
  • Gmagick::frameimage »
  • PHP Manual
  • Gmagick
  • Crée une image miroir horizontale

Gmagick::flopimage

(PECL gmagick >= Unknown)

Gmagick::flopimage — Crée une image miroir horizontale

Description

public Gmagick::flopimage(): Gmagick

Crée une image miroir horizontale en reflétant les pixels autour du centre de l'axe Y.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'objet Gmagick reflété.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.

Voir aussi

  • Gmagick::flipimage() - Crée une image miroir verticale


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::frameimage(
GmagickPixel $color,
int $width,
int $height,
int $inner_bevel,
int $outer_bevel
): Gmagick

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::gammaimage(float $gamma): Gmagick

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 Gmagick::getcopyright(): string

Retourne le copyright de l'API GraphicsMagick.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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 Gmagick::getfilename(): string

Retourne le nom du fichier associé avec une séquence d'image.

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.

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 Gmagick::getimagebackgroundcolor(): GmagickPixel

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 Gmagick::getimageblueprimary(): array

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 Gmagick::getimagebordercolor(): GmagickPixel

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 Gmagick::getimagechanneldepth(int $channel_type): int

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 Gmagick::getimagecolors(): int

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 Gmagick::getimagecolorspace(): int

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 Gmagick::getimagecompose(): int

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 Gmagick::getimagedelay(): int

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 Gmagick::getimagedepth(): int

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 Gmagick::getimagedispose(): int

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 Gmagick::getimageextrema(): array

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 Gmagick::getimagefilename(): string

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 Gmagick::getimageformat(): string

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 Gmagick::getimagegamma(): float

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 Gmagick::getimagegreenprimary(): array

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 Gmagick::getimageheight(): int

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 Gmagick::getimagehistogram(): array

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 Gmagick::getimageindex(): int

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 Gmagick::getimageinterlacescheme(): int

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 Gmagick::getimageiterations(): int

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 Gmagick::getimagematte(): int

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 Gmagick::getimagemattecolor(): GmagickPixel

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 Gmagick::getimageprofile(string $name): string

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 Gmagick::getimageredprimary(): array

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 Gmagick::getimagerenderingintent(): int

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 baguette magique.

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 Gmagick::getimageresolution(): array

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 Gmagick::getimagescene(): int

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 Gmagick::getimagesignature(): string

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 Gmagick::getimagetype(): int

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 Gmagick::getimageunits(): int

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 Gmagick::getimagewhitepoint(): array

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 Gmagick::getimagewidth(): int

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 Gmagick::getpackagename(): string

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 Gmagick::getquantumdepth(): array

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 Gmagick::getreleasedate(): string

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 Gmagick::getsamplingfactors(): array

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 Gmagick::getsize(): array

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 Gmagick::getversion(): array

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 Gmagick::hasnextimage(): mixed

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 Gmagick::haspreviousimage(): mixed

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 Gmagick::implodeimage(float $radius): mixed

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 Gmagick::labelimage(string $label): mixed

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 Gmagick::levelimage(
float $blackPoint,
float $gamma,
float $whitePoint,
int $channel = Gmagick::CHANNEL_DEFAULT
): mixed

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 Gmagick::magnifyimage(): mixed

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::mapimage(gmagick $gmagick, bool $dither): Gmagick

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 Gmagick::medianfilterimage(float $radius): void

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 Gmagick::minifyimage(): Gmagick

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.

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 Gmagick::modulateimage(float $brightness, float $saturation, float $hue): Gmagick

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.

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 Gmagick::motionblurimage(float $radius, float $sigma, float $angle): Gmagick

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 Gmagick::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.

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 Gmagick::newimage(
int $width,
int $height,
string $background,
string $format = ?
): Gmagick

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.

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 Gmagick::nextimage(): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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 Gmagick::normalizeimage(int $channel = ?): Gmagick

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.

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 Gmagick::oilpaintimage( float $radius ): Gmagick

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 Gmagick::previousimage(): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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 Gmagick::profileimage(string $name, string $profile): Gmagick

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.

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 Gmagick::quantizeimage(
int $numColors,
int $colorspace,
int $treeDepth,
bool $dither,
bool $measureError
): Gmagick

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 Gmagick::quantizeimages(
int $numColors,
int $colorspace,
int $treeDepth,
bool $dither,
bool $measureError
): Gmagick

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 Gmagick::queryfontmetrics(GmagickDraw $draw, string $text): array

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 Gmagick::queryfonts(string $pattern = "*"): array

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 Gmagick::queryformats(string $pattern = "*"): array

Retourne les formats supportés par Gmagick.

Liste de paramètres

pattern

Spécifie un string contenant un masque.

Valeurs de retour

L'objet Gmagick.

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 Gmagick::radialblurimage(float $angle, int $channel = Gmagick::CHANNEL_DEFAULT): Gmagick

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.

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 Gmagick::raiseimage(
int $width,
int $height,
int $x,
int $y,
bool $raise
): Gmagick

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.

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 Gmagick::read(string $filename): Gmagick

Lit une image depuis un fichier.

Liste de paramètres

filename

Le nom du fichier image.

Valeurs de retour

Un objet Gmagick.

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 Gmagick::readimage(string $filename): Gmagick

Lit une image depuis un fichier.

Liste de paramètres

filename

Le nom du fichier image.

Valeurs de retour

Un objet Gmagick.

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 Gmagick::readimageblob(string $imageContents, string $filename = ?): Gmagick

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.

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 Gmagick::readimagefile(resource $fp, string $filename = ?): Gmagick

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.

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 Gmagick::reducenoiseimage(float $radius): Gmagick

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.

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 Gmagick::removeimage(): Gmagick

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.

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 Gmagick::removeimageprofile(string $name): string

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

Le profil nommé

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 Gmagick::resampleimage(
float $xResolution,
float $yResolution,
int $filter,
float $blur
): Gmagick

É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 Gmagick::resizeimage(
int $width,
int $height,
int $filter,
float $blur,
bool $fit = false
): Gmagick

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.

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 Gmagick::rollimage(int $x, int $y): Gmagick

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::rotateimage(mixed $color, float $degrees): Gmagick

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::scaleimage(int $width, int $height, bool $fit = false): Gmagick

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.

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::separateimagechannel(int $channel): Gmagick

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

Une des constantes de canaux (Gmagick::CHANNEL_*).

Valeurs de retour

L'objet Gmagick.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Définit la qualité de compression par défaut de l'objet

  • « Gmagick::separateimagechannel
  • Gmagick::setfilename »
  • PHP Manual
  • Gmagick
  • Définit la qualité de compression par défaut de l'objet

Gmagick::setCompressionQuality

(No version information available, might only be in Git)

Gmagick::setCompressionQuality — Définit la qualité de compression par défaut de l'objet

Description

Gmagick::setCompressionQuality( int $quality = 75 ): Gmagick

Définit la qualité de compression par défaut de l'objet.

Liste de paramètres

quality

Valeurs de retour

L'objet Gmagick.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.

Exemples

Exemple #1 Exemple avec 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::setfilename(string $filename): Gmagick

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.

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::setimagebackgroundcolor(GmagickPixel $color): Gmagick

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.

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::setimageblueprimary(float $x, float $y): Gmagick

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.

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::setimagebordercolor(GmagickPixel $color): Gmagick

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.

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::setimagechanneldepth(int $channel, int $depth): Gmagick

Définit la profondeur d'un canal particulier de l'image.

Liste de paramètres

channel

Une des constantes de canaux (Gmagick::CHANNEL_*).

depth

La profondeur de l'image, en octets.

Valeurs de retour

L'objet Gmagick.

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::setimagecolorspace(int $colorspace): Gmagick

Définit l'espace de couleurs de l'image.

Liste de paramètres

colorspace

Une des constantes d'espace de couleurs de l'image (Gmagick::COLORSPACE_*).

Valeurs de retour

L'objet Gmagick.

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::setimagecompose(int $composite): Gmagick

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::setimagedelay(int $delay): Gmagick

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.

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::setimagedepth(int $depth): Gmagick

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.

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::setimagedispose(int $disposeType): Gmagick

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.

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::setimagefilename(string $filename): Gmagick

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.

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::setimageformat(string $imageFormat): Gmagick

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.

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::setimagegamma(float $gamma): Gmagick

Définit le gamma de l'image.

Liste de paramètres

gamma

Le gamma de l'image.

Valeurs de retour

L'objet Gmagick.

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::setimagegreenprimary(float $x, float $y): Gmagick

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.

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::setimageindex(int $index): Gmagick

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.

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::setimageinterlacescheme(int $interlace): Gmagick

Définit le schéma d'entrelacement de l'image.

Liste de paramètres

interlace

Une des constantes des schémas d'entrelacement de l'image (Gmagick::INTERLACE_*).

Valeurs de retour

L'objet Gmagick.

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::setimageiterations(int $iterations): Gmagick

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.

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::setimageprofile(string $name, string $profile): Gmagick

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::setimageredprimary(float $x, float $y): Gmagick

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::setimagerenderingintent(int $rendering_intent): Gmagick

Définit l'image de rendu.

Liste de paramètres

rendering_intent

Une des constantes de rendu d'image (Gmagick::RENDERINGINTENT_*).

Valeurs de retour

L'objet Gmagick.

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::setimageresolution(float $xResolution, float $yResolution): Gmagick

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::setimagescene(int $scene): Gmagick

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.

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::setimagetype(int $imgType): Gmagick

Définit le type de l'image.

Liste de paramètres

imgType

Une des constantes de type d'image (Gmagick::IMGTYPE_*).

Valeurs de retour

L'objet Gmagick.

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::setimageunits(int $resolution): Gmagick

Définit les unités à utiliser pour la résolution de l'image.

Liste de paramètres

resolution

Une des constantes de résolution (Gmagick::RESOLUTION_*).

Valeurs de retour

L'objet Gmagick.

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::setimagewhitepoint(float $x, float $y): Gmagick

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.

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::setsamplingfactors(array $factors): Gmagick

Définit les facteurs d'échantillonnage de l'image.

Liste de paramètres

factors

Un tableau de floats, représentant le facteur d'échantillonnage pour chaque composant de couleur (dans l'ordre RVB).

Valeurs de retour

L'objet Gmagick.

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::setsize(int $columns, int $rows): Gmagick

Définit la taille de l'objet Gmagick. Définissez la taille avant de lire une image brute au format Gmagick::COLORSPACE_RGB, Gmagick::COLORSPACE_GRAY, ou Gmagick::COLORSPACE_CMYK.

Liste de paramètres

columns

La largeur, en pixels.

rows

La hauteur, en pixels.

Valeurs de retour

L'objet Gmagick.

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::shearimage(mixed $color, float $xShear, float $yShear): Gmagick

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.

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::solarizeimage(int $threshold): Gmagick

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.

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::spreadimage(float $radius): Gmagick

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.

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::stripimage(): Gmagick

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.

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::swirlimage(float $degrees): Gmagick

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.

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::thumbnailimage(int $width, int $height, bool $fit = false): Gmagick

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.

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::trimimage(float $fuzz): Gmagick

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.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


Alias de Gmagick::writeimage

  • « Gmagick::trimimage
  • Gmagick::writeimage »
  • PHP Manual
  • Gmagick
  • Alias de Gmagick::writeimage

Gmagick::write

(PECL gmagick >= Unknown)

Gmagick::write — Alias de Gmagick::writeimage()

Description

Cette méthode est un alias de: Gmagick::writeimage().


É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::writeimage(string $filename, bool $all_frames = false): Gmagick

É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.

Erreurs / Exceptions

Émet une exception GmagickException en cas d'erreur.


La classe GmagickDraw

(PECL gmagick >= Unknown)

Introduction

Synopsis de la classe

class GmagickDraw {
/* Méthodes */
public annotate(float $x, float $y, string $text): GmagickDraw
public arc(
float $sx,
float $sy,
float $ex,
float $ey,
float $sd,
float $ed
): GmagickDraw
public bezier(array $coordinate_array): GmagickDraw
public ellipse(
float $ox,
float $oy,
float $rx,
float $ry,
float $start,
float $end
): GmagickDraw
public getfillcolor(): GmagickPixel
public getfillopacity(): float
public getfont(): mixed
public getfontsize(): float
public getfontstyle(): int
public getfontweight(): int
public getstrokecolor(): GmagickPixel
public getstrokeopacity(): float
public getstrokewidth(): float
public gettextdecoration(): int
public gettextencoding(): mixed
public line(
float $sx,
float $sy,
float $ex,
float $ey
): GmagickDraw
public point(float $x, float $y): GmagickDraw
public polygon(array $coordinates): GmagickDraw
public polyline(array $coordinate_array): GmagickDraw
public rectangle(
float $x1,
float $y1,
float $x2,
float $y2
): GmagickDraw
public rotate(float $degrees): GmagickDraw
public roundrectangle(
float $x1,
float $y1,
float $x2,
float $y2,
float $rx,
float $ry
): GmagickDraw
public scale(float $x, float $y): GmagickDraw
public setfillcolor(mixed $color): GmagickDraw
public setfillopacity(float $fill_opacity): GmagickDraw
public setfont(string $font): GmagickDraw
public setfontsize(float $pointsize): GmagickDraw
public setfontstyle(int $style): GmagickDraw
public setfontweight(int $weight): GmagickDraw
public setstrokecolor(mixed $color): GmagickDraw
public setstrokeopacity(float $stroke_opacity): GmagickDraw
public setstrokewidth(float $width): GmagickDraw
public settextdecoration(int $decoration): GmagickDraw
public settextencoding(string $encoding): GmagickDraw
}

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 — Trace une ligne
  • 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::annotate(float $x, float $y, string $text): GmagickDraw

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.


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::arc(
float $sx,
float $sy,
float $ex,
float $ey,
float $sd,
float $ed
): GmagickDraw

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.


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::bezier(array $coordinate_array): GmagickDraw

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.


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::ellipse(
float $ox,
float $oy,
float $rx,
float $ry,
float $start,
float $end
): GmagickDraw

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.


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 GmagickDraw::getfillcolor(): GmagickPixel

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 GmagickDraw::getfillopacity(): float

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 GmagickDraw::getfont(): mixed

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 GmagickDraw::getfontsize(): float

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 GmagickDraw::getfontstyle(): int

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 GmagickDraw::getfontweight(): int

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 GmagickDraw::getstrokecolor(): GmagickPixel

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 GmagickDraw::getstrokeopacity(): float

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 float, 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 GmagickDraw::getstrokewidth(): float

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 float 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 GmagickDraw::gettextdecoration(): int

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 GmagickDraw::gettextencoding(): mixed

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.


Trace une ligne

  • « GmagickDraw::gettextencoding
  • GmagickDraw::point »
  • PHP Manual
  • GmagickDraw
  • Trace une ligne

GmagickDraw::line

(PECL gmagick >= Unknown)

GmagickDraw::line — Trace une ligne

Description

public GmagickDraw::line(
float $sx,
float $sy,
float $ex,
float $ey
): GmagickDraw

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::point(float $x, float $y): GmagickDraw

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.


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::polygon(array $coordinates): GmagickDraw

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.


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::polyline(array $coordinate_array): GmagickDraw

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.


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::rectangle(
float $x1,
float $y1,
float $x2,
float $y2
): GmagickDraw

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.


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::rotate(float $degrees): GmagickDraw

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.


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::roundrectangle(
float $x1,
float $y1,
float $x2,
float $y2,
float $rx,
float $ry
): GmagickDraw

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.


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::scale(float $x, float $y): GmagickDraw

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.


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::setfillcolor(mixed $color): GmagickDraw

Définit la couleur de remplissage à utiliser pour dessiner des objets pleins.

Liste de paramètres

color

Objet GmagickPixel ou string 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::setfillopacity(float $fill_opacity): GmagickDraw

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.


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::setfont(string $font): GmagickDraw

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.


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::setfontsize(float $pointsize): GmagickDraw

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.


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::setfontstyle(int $style): GmagickDraw

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.


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::setfontweight(int $weight): GmagickDraw

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.


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::setstrokecolor(mixed $color): GmagickDraw

Définit la couleur à utiliser pour tracer les contours de l'objet.

Liste de paramètres

color

Objet GmagickPixel ou string 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::setstrokeopacity(float $stroke_opacity): GmagickDraw

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.


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::setstrokewidth(float $width): GmagickDraw

Définit la largeur des contours de l'objet.

Liste de paramètres

width

La largeur des contours.

Valeurs de retour

L'objet GmagickDraw.


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::settextdecoration(int $decoration): GmagickDraw

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.


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::settextencoding(string $encoding): GmagickDraw

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.


La classe GmagickPixel

(PECL gmagick >= Unknown)

Introduction

Synopsis de la classe

class GmagickPixel {
/* Méthodes */
public __construct(string $color = ?)
public getcolor(bool $as_array = false, bool $normalize_array = false): mixed
public getcolorcount(): int
public getcolorvalue(int $color): float
public setcolor(string $color): GmagickPixel
public setcolorvalue(int $color, float $value): GmagickPixel
}

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).


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 GmagickPixel::getcolor(bool $as_array = false, bool $normalize_array = false): mixed

Retourne la couleur décrite par l'objet GmagickPixel, sous la forme d'une chaîne de caractères ou 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

true pour normalise les valeurs de couleur.

Valeurs de retour

Une chaîne de caractères ou un tableau des valeurs de canaux, dont chacun est normalisé si true est fourni pour normalize_array. É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 GmagickPixel::getcolorcount(): int

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 GmagickPixel::getcolorvalue(int $color): float

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::setcolor(string $color): GmagickPixel

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::setcolorvalue(int $color, float $value): GmagickPixel

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 — Adjusts the levels of a particular image channel
    • Imagick::averageImages — Moyenne d'un jeu d'images
    • Imagick::blackThresholdImage — Force tous les pixels au-delà d'un seuil à noir
    • Imagick::blueShiftImage — Mutes the colors of the image
    • Imagick::blurImage — Ajoute un filtre de flou à une image
    • Imagick::borderImage — Encadre une image avec un bord
    • Imagick::brightnessContrastImage — Change the brightness and/or contrast of an image
    • Imagick::charcoalImage — Simule un dessin au fusain
    • Imagick::chopImage — Supprime une région d'une image et retaille
    • Imagick::clampImage — Restricts the color range from 0 to the quantum depth.
    • 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 — Clips along the named paths from the 8BIM profile, if present
    • 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 — Apply color transformation to an image
    • 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 — Get the number of images
    • 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 — Deletes an image property
    • 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 — Applies a custom convolution kernel to the image
    • 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 — Implements the discrete Fourier transform (DFT)
    • 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 — Vérifie si l'image a un canal alpha
    • Imagick::getImageArtifact — Récupère l'artefact de l'image
    • Imagick::getImageAttribute — Returns a named attribute
    • 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::getImageMatte — Indique si l'image a un canal mat
    • Imagick::getImageMatteColor — Retourne la couleur mate de l'image
    • Imagick::getImageMimeType — Returns the image mime-type
    • 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 — Returns the ImageMagick quantum range
    • Imagick::getQuantumDepth — Lit la profondeur quantique
    • Imagick::getQuantumRange — Retourne l'intervalle quantique de Imagick
    • Imagick::getRegistry — Get a StringRegistry entry
    • 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 — Formats a string with image details
    • 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 — Implements the inverse discrete Fourier transform (DFT)
    • 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 — List all the registry settings
    • 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 — Applies a user supplied kernel to the image according to the given morphology method.
    • 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 — Reads image from an array of filenames
    • 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 — Rotational blurs an image
    • 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 — Selectively blur an image within a contrast threshold
    • 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 — Sets an image attribute
    • Imagick::setImageBackgroundColor — Configure la couleur de fond d'image
    • Imagick::setImageBias — Configure le biais pour les convolutions
    • Imagick::setImageBiasQuantum — Sets the image bias
    • 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 — Set a callback to be called during processing
    • Imagick::setRegistry — Sets the ImageMagick registry entry named key to value
    • Imagick::setResolution — Configure la résolution de l'image
    • Imagick::setResourceLimit — Définit la limite pour une ressource particulière
    • 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 — Takes all images from the current image pointer to the end of the image list and smushs them
    • 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 — Modifies image using a statistics function
    • 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 — Searches for a subimage in the current image and returns a similarity image
    • 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 — Gets the font stretch to use when annotating with text
    • 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 — Récupère l'espace entre les mots d'un texte.
    • ImagickDraw::getTextInterwordSpacing — Récupère l'espace entre les mots d'un texte.
    • ImagickDraw::getTextKerning — Récupère le crénage d'un texte.
    • 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 — Resets the vector graphics
    • 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 — Définie la résolution
    • 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 — Défine l'espace entre les lignes d'un texte
    • ImagickDraw::setTextInterwordSpacing — Définie l'espace entre les mots d'un texte
    • ImagickDraw::setTextKerning — Définie le crénage d'un texte
    • 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 — Returns the color of the pixel in an array as Quantum values
    • ImagickPixel::getColorValue — Récupère la valeur normalisée du canal de la couleur fournie
    • ImagickPixel::getColorValueQuantum — Gets the quantum value of a color in the ImagickPixel
    • ImagickPixel::getHSL — Retourne la couleur HSL normalisée de l'objet ImagickPixel
    • ImagickPixel::getIndex — Gets the colormap index of the pixel wand
    • ImagickPixel::isPixelSimilar — Vérifie la distance entre cette couleur et une autre
    • ImagickPixel::isPixelSimilarQuantum — Returns whether two colors differ by less than the specified distance
    • ImagickPixel::isSimilar — Vérifie la distance entre 2 couleurs
    • ImagickPixel::setColor — Définit la couleur
    • ImagickPixel::setColorCount — Sets the color count associated with this color
    • ImagickPixel::setColorValue — Définit la valeur normalisée d'un des canaux
    • ImagickPixel::setColorValueQuantum — Sets the quantum value of a color element of the ImagickPixel
    • ImagickPixel::setHSL — Définit la couleur HSL normalisée
    • ImagickPixel::setIndex — Sets the colormap index of the pixel wand
  • 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 — La classe ImagickKernel
    • ImagickKernel::addKernel — Attach another kernel to a kernel list
    • ImagickKernel::addUnityKernel — Adds a Unity Kernel to the kernel list
    • ImagickKernel::fromBuiltIn — Create a kernel from a builtin in kernel
    • ImagickKernel::fromMatrix — Create a kernel from a 2d matrix of values
    • ImagickKernel::getMatrix — Get the 2d matrix of values used in this kernel
    • ImagickKernel::scale — Scales a kernel list by the given amount
    • ImagickKernel::separate — Separates a linked set of kernels and returns an array of ImagickKernels


Introduction

Imagick est une extension PHP native pour créer et modifier les images, en utilisant l'API ImageMagick.

À propos d'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 les plates-formes différent de Windows

ImageMagick >= 6.2.4 est nécessaire. 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 : » https://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. Ces paquets contiennent déjà la DLL d'extension (php_imagick.dll) qui doit être placée dans le extension_dir. Ils contiennent également les DLL d'ImageMagick, qui doivent être placées quelque part dans le PATH. À partir de Imagick 3.6.0, ils contiennent également des fichiers de configuration XML dans config; pour les utiliser à la place des valeurs par défaut intégrées, ils doivent être placés dans %USERPROFILE%/.config/ImageMagick, ou alternativement dans le chemin donné par la variable d'environnement MAGICK_CONFIGURE_PATH. Reportez-vous à la » Documentation sur les fichiers de configuration d'ImageMagick pour plus de détails.


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 | INI_ALL | Disponible depuis 2.1.0
imagick.progress_monitor | false | INI_SYSTEM | Disponible depuis Imagick 2.2.2
imagick.skip_version_check | false | INI_SYSTEM | Disponible depuis Imagick 3.3.0
Pour plus de détails sur les modes 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 bool

Fixes un bogue sur le dessin lorsque les locales utilisent le caractère ',' comme séparateurs.

imagick.progress_monitor bool

Utilisé pour activer la surveillance de la progression de l'image.

imagick.skip_version_check bool

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 (int)
Couleur noire
imagick::COLOR_BLUE (int)
Couleur bleue
imagick::COLOR_CYAN (int)
Couleur cyan
imagick::COLOR_GREEN (int)
Couleur verte
imagick::COLOR_RED (int)
Couleur rouge
imagick::COLOR_YELLOW (int)
Couleur jaune
imagick::COLOR_MAGENTA (int)
Couleur magenta
imagick::COLOR_OPACITY (int)
Couleur de l'opacité
imagick::COLOR_ALPHA (int)
Couleur de l'alpha
imagick::COLOR_FUZZ (int)
Couleur du fuzz
Constantes de disposition

Constantes relatvies aux type de disposition

imagick::DISPOSE_UNRECOGNIZED (int)
Type de disposition non reconnu
imagick::DISPOSE_UNDEFINED (int)
Type de disposition non défini
imagick::DISPOSE_NONE (int)
Aucun type de disposition
imagick::DISPOSE_BACKGROUND (int)
Disposition du fond
imagick::DISPOSE_PREVIOUS (int)
Disposition précédente
Constantes d'opérateur de composition
imagick::COMPOSITE_DEFAULT (int)
L'opérateur de composition par défaut.
imagick::COMPOSITE_UNDEFINED (int)
Opérateur de composition indéfini
imagick::COMPOSITE_NO (int)
Pas d'opérateur de composition défini
imagick::COMPOSITE_ADD (int)
Le résultat de image + image
imagick::COMPOSITE_ATOP (int)
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 (int)
Combine les images image (blending)
imagick::COMPOSITE_BUMPMAP (int)
La même chose que COMPOSITE_MULTIPLY, hormis le fait que la source est d'abord convertie en niveaux de gris
imagick::COMPOSITE_CLEAR (int)
Rend l'image cible transparent
imagick::COMPOSITE_COLORBURN (int)
Assombrit l'image de destination pour refléter l'image source
imagick::COMPOSITE_COLORDODGE (int)
Éclaire l'image de destination pour refléter l'image source
imagick::COMPOSITE_COLORIZE (int)
Colorie l'image cible avec l'image composée
imagick::COMPOSITE_COPYBLACK (int)
Copie le noir de la source vers la cible
imagick::COMPOSITE_COPYBLUE (int)
Copie le bleu de la source vers la cible
imagick::COMPOSITE_COPY (int)
Copie la source vers la cible
imagick::COMPOSITE_COPYCYAN (int)
Copie le Cyan de la source vers la cible
imagick::COMPOSITE_COPYGREEN (int)
Copie le vert de la source vers la cible
imagick::COMPOSITE_COPYMAGENTA (int)
Copie le magenta de la source vers la cible
imagick::COMPOSITE_COPYOPACITY (int)
Copie l'opacité de la source vers la cible
imagick::COMPOSITE_COPYRED (int)
Copie le rouge de la source vers la cible
imagick::COMPOSITE_COPYYELLOW (int)
Copie le jaune de la source vers la cible
imagick::COMPOSITE_DARKEN (int)
Assombrit l'image cible
imagick::COMPOSITE_DSTATOP (int)
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 (int)
La cible est laissée intacte
imagick::COMPOSITE_DSTIN (int)
La partie à l'intérieur de la source remplace la cible
imagick::COMPOSITE_DSTOUT (int)
La partie à l'extérieur de la source remplace la cible
imagick::COMPOSITE_DSTOVER (int)
La cible remplace la source
imagick::COMPOSITE_DIFFERENCE (int)
Soustrait la couleur sombre de la couleur claire
imagick::COMPOSITE_DISPLACE (int)
Décale les pixels de la cible tel que défini par la source
imagick::COMPOSITE_DISSOLVE (int)
Dissous la source dans la cible
imagick::COMPOSITE_EXCLUSION (int)
Produit un effet similaire à imagick::COMPOSITE_DIFFERENCE, mais avec un contraste plus faible
imagick::COMPOSITE_HARDLIGHT (int)
Multiplie ou screene les couleurs, dépendemment de la valeur de la couleur source
imagick::COMPOSITE_HUE (int)
Modifie la hue de la cible, tel que défini par la source
imagick::COMPOSITE_IN (int)
Compose la source dans la cible
imagick::COMPOSITE_LIGHTEN (int)
Éclaircit la cible, tel que défini par la source
imagick::COMPOSITE_LUMINIZE (int)
Illumine la cible tel que défini par la source
imagick::COMPOSITE_MINUS (int)
Soustrait la source de la cible
imagick::COMPOSITE_MODULATE (int)
Module la clarté de la cible, sa saturation et sa hue tel que défini par la cible
imagick::COMPOSITE_MULTIPLY (int)
Multiplie la cible avec la source
imagick::COMPOSITE_OUT (int)
Compose l'extérieur de la source dans la cible
imagick::COMPOSITE_OVER (int)
Compose la source sur la cible
imagick::COMPOSITE_OVERLAY (int)
Surimprime la source sur la cible
imagick::COMPOSITE_PLUS (int)
Ajoute la source sur la cible
imagick::COMPOSITE_REPLACE (int)
Remplace la cible avec la source
imagick::COMPOSITE_SATURATE (int)
Sature la cible tel que défini par la source
imagick::COMPOSITE_SCREEN (int)
La source et cible sont complétées puis multipliées et finalement elles remplacent la cible
imagick::COMPOSITE_SOFTLIGHT (int)
Assombrit ou éclaire les couleurs, en fonction de la source
imagick::COMPOSITE_SRCATOP (int)
La partie de la source qui est dans la cible et composée sur la cible
imagick::COMPOSITE_SRC (int)
La source est copiée sur la destination
imagick::COMPOSITE_SRCIN (int)
La partie de la source qui est dans la destination, remplace la destination.
imagick::COMPOSITE_SRCOUT (int)
La partie de la source qui est hors de la destination remplace la destination
imagick::COMPOSITE_SRCOVER (int)
La source remplaces la cible
imagick::COMPOSITE_SUBTRACT (int)
Soustrait les couleurs dans la source dans la cible
imagick::COMPOSITE_THRESHOLD (int)
La source est composée sur la cible, tel que défini par les seuils de la source
imagick::COMPOSITE_XOR (int)
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 (int)
imagick::MONTAGEMODE_UNFRAME (int)
imagick::MONTAGEMODE_CONCATENATE (int)
Constantes de style

imagick::STYLE_NORMAL (int)
imagick::STYLE_ITALIC (int)
imagick::STYLE_OBLIQUE (int)
imagick::STYLE_ANY (int)
Constantes de filtres

imagick::FILTER_UNDEFINED (int)
imagick::FILTER_POINT (int)
imagick::FILTER_BOX (int)
imagick::FILTER_TRIANGLE (int)
imagick::FILTER_HERMITE (int)
imagick::FILTER_HANNING (int)
imagick::FILTER_HAMMING (int)
imagick::FILTER_BLACKMAN (int)
imagick::FILTER_GAUSSIAN (int)
imagick::FILTER_QUADRATIC (int)
imagick::FILTER_CUBIC (int)
imagick::FILTER_CATROM (int)
imagick::FILTER_MITCHELL (int)
imagick::FILTER_LANCZOS (int)
imagick::FILTER_BESSEL (int)
imagick::FILTER_SINC (int)
Constantes de type d'images

imagick::IMGTYPE_UNDEFINED (int)
imagick::IMGTYPE_BILEVEL (int)
imagick::IMGTYPE_GRAYSCALE (int)
imagick::IMGTYPE_GRAYSCALEMATTE (int)
imagick::IMGTYPE_PALETTE (int)
imagick::IMGTYPE_PALETTEMATTE (int)
imagick::IMGTYPE_TRUECOLOR (int)
imagick::IMGTYPE_TRUECOLORMATTE (int)
imagick::IMGTYPE_COLORSEPARATION (int)
imagick::IMGTYPE_COLORSEPARATIONMATTE (int)
imagick::IMGTYPE_OPTIMIZE (int)
Constantes de résolution

imagick::RESOLUTION_UNDEFINED (int)
imagick::RESOLUTION_PIXELSPERINCH (int)
imagick::RESOLUTION_PIXELSPERCENTIMETER (int)
Constantes de compression

imagick::COMPRESSION_UNDEFINED (int)
imagick::COMPRESSION_NO (int)
imagick::COMPRESSION_BZIP (int)
imagick::COMPRESSION_FAX (int)
imagick::COMPRESSION_GROUP4 (int)
imagick::COMPRESSION_JPEG (int)
imagick::COMPRESSION_JPEG2000 (int)
imagick::COMPRESSION_LOSSLESSJPEG (int)
imagick::COMPRESSION_LZW (int)
imagick::COMPRESSION_RLE (int)
imagick::COMPRESSION_ZIP (int)
imagick::COMPRESSION_DXT1 (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.0 ou supérieur.
imagick::COMPRESSION_DXT3 (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.0 ou supérieur.
imagick::COMPRESSION_DXT5 (int)
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 (int)
imagick::PAINT_REPLACE (int)
imagick::PAINT_FLOODFILL (int)
imagick::PAINT_FILLTOBORDER (int)
imagick::PAINT_RESET (int)
Constantes de gravité

imagick::GRAVITY_NORTHWEST (int)
imagick::GRAVITY_NORTH (int)
imagick::GRAVITY_NORTHEAST (int)
imagick::GRAVITY_WEST (int)
imagick::GRAVITY_CENTER (int)
imagick::GRAVITY_EAST (int)
imagick::GRAVITY_SOUTHWEST (int)
imagick::GRAVITY_SOUTH (int)
imagick::GRAVITY_SOUTHEAST (int)
Constantes d'étirement

imagick::STRETCH_NORMAL (int)
imagick::STRETCH_ULTRACONDENSED (int)
imagick::STRETCH_CONDENSED (int)
imagick::STRETCH_SEMICONDENSED (int)
imagick::STRETCH_SEMIEXPANDED (int)
imagick::STRETCH_EXPANDED (int)
imagick::STRETCH_EXTRAEXPANDED (int)
imagick::STRETCH_ULTRAEXPANDED (int)
imagick::STRETCH_ANY (int)
Constantes d'alignement

imagick::ALIGN_UNDEFINED (int)
imagick::ALIGN_LEFT (int)
imagick::ALIGN_CENTER (int)
imagick::ALIGN_RIGHT (int)
Constantes de décoration

imagick::DECORATION_NO (int)
imagick::DECORATION_UNDERLINE (int)
imagick::DECORATION_OVERLINE (int)
imagick::DECORATION_LINETROUGH (int)
Constantes de bruit

imagick::NOISE_UNIFORM (int)
imagick::NOISE_GAUSSIAN (int)
imagick::NOISE_MULTIPLICATIVEGAUSSIAN (int)
imagick::NOISE_IMPULSE (int)
imagick::NOISE_LAPLACIAN (int)
imagick::NOISE_POISSON (int)
imagick::NOISE_RANDOM (int)
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 (int)
imagick::CHANNEL_RED (int)
imagick::CHANNEL_GRAY (int)
imagick::CHANNEL_CYAN (int)
imagick::CHANNEL_GREEN (int)
imagick::CHANNEL_MAGENTA (int)
imagick::CHANNEL_BLUE (int)
imagick::CHANNEL_YELLOW (int)
imagick::CHANNEL_ALPHA (int)
imagick::CHANNEL_OPACITY (int)
imagick::CHANNEL_MATTE (int)
imagick::CHANNEL_BLACK (int)
imagick::CHANNEL_INDEX (int)
imagick::CHANNEL_ALL (int)
imagick::CHANNEL_DEFAULT (int)
Constantes de métriques

imagick::METRIC_UNDEFINED (int)
imagick::METRIC_MEANABSOLUTEERROR (int)
imagick::METRIC_MEANSQUAREERROR (int)
imagick::METRIC_PEAKABSOLUTEERROR (int)
imagick::METRIC_PEAKSIGNALTONOISERATIO (int)
imagick::METRIC_ROOTMEANSQUAREDERROR (int)
Constantes de pixels

imagick::PIXEL_CHAR (int)
imagick::PIXEL_DOUBLE (int)
imagick::PIXEL_FLOAT (int)
imagick::PIXEL_INTEGER (int)
Seulement disponible avec ImageMagick < 7.
imagick::PIXEL_LONG (int)
imagick::PIXEL_QUANTUM (int)
imagick::PIXEL_SHORT (int)
Constantes d'opérateurs d'évaluation

imagick::EVALUATE_UNDEFINED (int)
imagick::EVALUATE_ADD (int)
imagick::EVALUATE_AND (int)
imagick::EVALUATE_DIVIDE (int)
imagick::EVALUATE_LEFTSHIFT (int)
imagick::EVALUATE_MAX (int)
imagick::EVALUATE_MIN (int)
imagick::EVALUATE_MULTIPLY (int)
imagick::EVALUATE_OR (int)
imagick::EVALUATE_RIGHTSHIFT (int)
imagick::EVALUATE_SET (int)
imagick::EVALUATE_SUBTRACT (int)
imagick::EVALUATE_XOR (int)
imagick::EVALUATE_POW (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_LOG (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_THRESHOLD (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_THRESHOLDBLACK (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_THRESHOLDWHITE (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_GAUSSIANNOISE (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_IMPULSENOISE (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_LAPLACIANNOISE (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_MULTIPLICATIVENOISE (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_POISSONNOISE (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_UNIFORMNOISE (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_COSINE (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_SINE (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.4 ou supérieur.
imagick::EVALUATE_ADDMODULUS (int)
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 (int)
imagick::COLORSPACE_RGB (int)
imagick::COLORSPACE_GRAY (int)
imagick::COLORSPACE_TRANSPARENT (int)
imagick::COLORSPACE_OHTA (int)
imagick::COLORSPACE_LAB (int)
imagick::COLORSPACE_XYZ (int)
imagick::COLORSPACE_YCBCR (int)
imagick::COLORSPACE_YCC (int)
imagick::COLORSPACE_YIQ (int)
imagick::COLORSPACE_YPBPR (int)
imagick::COLORSPACE_YUV (int)
imagick::COLORSPACE_CMYK (int)
imagick::COLORSPACE_SRGB (int)
imagick::COLORSPACE_HSB (int)
imagick::COLORSPACE_HSL (int)
imagick::COLORSPACE_HWB (int)
imagick::COLORSPACE_REC601LUMA (int)
imagick::COLORSPACE_REC709LUMA (int)
imagick::COLORSPACE_LOG (int)
imagick::COLORSPACE_CMY (int)
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 (int)
imagick::VIRTUALPIXELMETHOD_BACKGROUND (int)
imagick::VIRTUALPIXELMETHOD_CONSTANT (int)
imagick::VIRTUALPIXELMETHOD_EDGE (int)
imagick::VIRTUALPIXELMETHOD_MIRROR (int)
imagick::VIRTUALPIXELMETHOD_TILE (int)
imagick::VIRTUALPIXELMETHOD_TRANSPARENT (int)
imagick::VIRTUALPIXELMETHOD_MASK (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.2 ou supérieur.
imagick::VIRTUALPIXELMETHOD_BLACK (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.2 ou supérieur.
imagick::VIRTUALPIXELMETHOD_GRAY (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.2 ou supérieur.
imagick::VIRTUALPIXELMETHOD_WHITE (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.2 ou supérieur.
imagick::VIRTUALPIXELMETHOD_HORIZONTALTILE (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.3 ou supérieur.
imagick::VIRTUALPIXELMETHOD_VERTICALTILE (int)
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 (int)
imagick::PREVIEW_ROTATE (int)
imagick::PREVIEW_SHEAR (int)
imagick::PREVIEW_ROLL (int)
imagick::PREVIEW_HUE (int)
imagick::PREVIEW_SATURATION (int)
imagick::PREVIEW_BRIGHTNESS (int)
imagick::PREVIEW_GAMMA (int)
imagick::PREVIEW_SPIFF (int)
imagick::PREVIEW_DULL (int)
imagick::PREVIEW_GRAYSCALE (int)
imagick::PREVIEW_QUANTIZE (int)
imagick::PREVIEW_DESPECKLE (int)
imagick::PREVIEW_REDUCENOISE (int)
imagick::PREVIEW_ADDNOISE (int)
imagick::PREVIEW_SHARPEN (int)
imagick::PREVIEW_BLUR (int)
imagick::PREVIEW_THRESHOLD (int)
imagick::PREVIEW_EDGEDETECT (int)
imagick::PREVIEW_SPREAD (int)
imagick::PREVIEW_SOLARIZE (int)
imagick::PREVIEW_SHADE (int)
imagick::PREVIEW_RAISE (int)
imagick::PREVIEW_SEGMENT (int)
imagick::PREVIEW_SWIRL (int)
imagick::PREVIEW_IMPLODE (int)
imagick::PREVIEW_WAVE (int)
imagick::PREVIEW_OILPAINT (int)
imagick::PREVIEW_CHARCOALDRAWING (int)
imagick::PREVIEW_JPEG (int)
Constantes de rendu

imagick::RENDERINGINTENT_UNDEFINED (int)
imagick::RENDERINGINTENT_SATURATION (int)
imagick::RENDERINGINTENT_PERCEPTUAL (int)
imagick::RENDERINGINTENT_ABSOLUTE (int)
imagick::RENDERINGINTENT_RELATIVE (int)
Constantes d'entrelacement

imagick::INTERLACE_UNDEFINED (int)
imagick::INTERLACE_NO (int)
imagick::INTERLACE_LINE (int)
imagick::INTERLACE_PLANE (int)
imagick::INTERLACE_PARTITION (int)
imagick::INTERLACE_GIF (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.4 ou supérieur.
imagick::INTERLACE_JPEG (int)
imagick::INTERLACE_PNG (int)
Constantes de remplissage

imagick::FILLRULE_UNDEFINED (int)
imagick::FILLRULE_EVENODD (int)
imagick::FILLRULE_NONZERO (int)
Constantes de chemin de dessin

imagick::PATHUNITS_UNDEFINED (int)
imagick::PATHUNITS_USERSPACE (int)
imagick::PATHUNITS_USERSPACEONUSE (int)
imagick::PATHUNITS_OBJECTBOUNDINGBOX (int)
Constantes de bout de lignes

imagick::LINECAP_UNDEFINED (int)
imagick::LINECAP_BUTT (int)
imagick::LINECAP_ROUND (int)
imagick::LINECAP_SQUARE (int)
Constantes de jointures de lignes

imagick::LINEJOIN_UNDEFINED (int)
imagick::LINEJOIN_MITER (int)
imagick::LINEJOIN_ROUND (int)
imagick::LINEJOIN_BEVEL (int)
Constantes de type de ressource

imagick::RESOURCETYPE_UNDEFINED (int)
imagick::RESOURCETYPE_AREA (int)
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 (int)
Défini la taille maximale de l'espace disque autorisée à stocker le cache des pixels.
imagick::RESOURCETYPE_FILE (int)
Défini le nombre maximal de fichiers de cache de pixels ouverts.
imagick::RESOURCETYPE_MAP (int)
Défini la taille maximale de mémoire en octets, à allouer au cache de pixels.
imagick::RESOURCETYPE_MEMORY (int)
Défini la taille maximale de la mémoire, en octets, à allouer au cache de pixels.
imagick::RESOURCETYPE_THREAD (int)
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 (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.
imagick::LAYERMETHOD_COALESCE (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.
imagick::LAYERMETHOD_COMPAREANY (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.
imagick::LAYERMETHOD_COMPARECLEAR (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.
imagick::LAYERMETHOD_COMPAREOVERLAY (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.
imagick::LAYERMETHOD_DISPOSE (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.
imagick::LAYERMETHOD_OPTIMIZE (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.
imagick::LAYERMETHOD_OPTIMIZEPLUS (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.2.9 ou supérieur.
imagick::LAYERMETHOD_OPTIMIZEIMAGE (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::LAYERMETHOD_OPTIMIZETRANS (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::LAYERMETHOD_REMOVEDUPS (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::LAYERMETHOD_REMOVEZERO (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::LAYERMETHOD_COMPOSITE (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::LAYERMETHOD_MERGE (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.7 ou supérieur.
imagick::LAYERMETHOD_FLATTEN (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.7 ou supérieur.
imagick::LAYERMETHOD_MOSAIC (int)
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 (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::ORIENTATION_TOPLEFT (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::ORIENTATION_TOPRIGHT (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::ORIENTATION_BOTTOMRIGHT (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::ORIENTATION_BOTTOMLEFT (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::ORIENTATION_LEFTTOP (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::ORIENTATION_RIGHTTOP (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::ORIENTATION_RIGHTBOTTOM (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.0 ou supérieur.
imagick::ORIENTATION_LEFTBOTTOM (int)
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 (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.
imagick::DISTORTION_AFFINE (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.
imagick::DISTORTION_AFFINEPROJECTION (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.
imagick::DISTORTION_ARC (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.
imagick::DISTORTION_BILINEAR (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.
imagick::DISTORTION_PERSPECTIVE (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.
imagick::DISTORTION_PERSPECTIVEPROJECTION (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.
imagick::DISTORTION_SCALEROTATETRANSLATE (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.6 ou supérieur.
imagick::DISTORTION_POLYNOMIAL (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::DISTORTION_POLAR (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::DISTORTION_DEPOLAR (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::DISTORTION_BARREL (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::DISTORTION_BARRELINVERSE (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::DISTORTION_SHEPARDS (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::DISTORTION_SENTINEL (int)
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 (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.8 ou supérieur.
imagick::ALPHACHANNEL_DEACTIVATE (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.8 ou supérieur.
imagick::ALPHACHANNEL_RESET (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.8 ou supérieur.
imagick::ALPHACHANNEL_SET (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.8 ou supérieur.
imagick::ALPHACHANNEL_UNDEFINED (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::ALPHACHANNEL_COPY (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::ALPHACHANNEL_EXTRACT (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::ALPHACHANNEL_OPAQUE (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::ALPHACHANNEL_SHAPE (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::ALPHACHANNEL_TRANSPARENT (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::ALPHACHANNEL_BACKGROUND (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.5.3 ou supérieur.
imagick::ALPHACHANNEL_REMOVE (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.7.8 ou supérieur.
imagick::ALPHACHANNEL_ASSOCIATE (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.9.0 ou supérieur.
imagick::ALPHACHANNEL_DISSOCIATE (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.9.0 ou supérieur.
imagick::ALPHACHANNEL_ON (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 7.0.0 ou supérieur.
imagick::ALPHACHANNEL_OFF (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 7.0.0 ou supérieur.
imagick::ALPHACHANNEL_DISCRETE (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 7.0.0 ou supérieur.
Constantes SPARSECOLORMETHOD

imagick::SPARSECOLORMETHOD_UNDEFINED (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::SPARSECOLORMETHOD_BARYCENTRIC (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::SPARSECOLORMETHOD_BILINEAR (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::SPARSECOLORMETHOD_POLYNOMIAL (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::SPARSECOLORMETHOD_SPEPARDS (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::SPARSECOLORMETHOD_VORONOI (int)
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 (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.9 ou supérieur.
imagick::FUNCTION_POLYNOMIAL (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.9 ou supérieur.
imagick::FUNCTION_SINUSOID (int)
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 (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.2 ou supérieur.
imagick::INTERPOLATE_AVERAGE (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.2 ou supérieur.
imagick::INTERPOLATE_BICUBIC (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.2 ou supérieur.
imagick::INTERPOLATE_BILINEAR (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.2 ou supérieur.
imagick::INTERPOLATE_FILTER (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.2 ou supérieur.
imagick::INTERPOLATE_INTEGER (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.2 ou supérieur.
imagick::INTERPOLATE_MESH (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.2 ou supérieur.
imagick::INTERPOLATE_NEARESTNEIGHBOR (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.3.2 ou supérieur.
imagick::INTERPOLATE_SPLINE (int)
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 (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::DITHERMETHOD_NO (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::DITHERMETHOD_RIEMERSMA (int)
Cette constante n'est disponible que si Imagick a été compilé avec ImageMagick version 6.4.6 ou supérieur.
imagick::DITHERMETHOD_FLOYDSTEINBERG (int)
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;
?>

Résultat de l'exemple ci-dessus est 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;
?>

Résultat de l'exemple ci-dessus est 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;
?>

Résultat de l'exemple ci-dessus est similaire à :

Affichage de l'exemple : Création d'un logo PHP avec Imagick


La classe Imagick

(PECL imagick 2, PECL imagick 3)

Synopsis de la classe

class Imagick implements Iterator {
public __construct(mixed $files = ?)
public adaptiveBlurImage(float $radius, float $sigma, int $channel = Imagick::CHANNEL_DEFAULT): bool
public adaptiveResizeImage(
int $columns,
int $rows,
bool $bestfit = false,
bool $legacy = false
): bool
public adaptiveSharpenImage(float $radius, float $sigma, int $channel = Imagick::CHANNEL_DEFAULT): bool
public adaptiveThresholdImage(int $width, int $height, int $offset): bool
public addImage(Imagick $source): bool
public addNoiseImage(int $noise_type, int $channel = Imagick::CHANNEL_DEFAULT): bool
public affineTransformImage(ImagickDraw $matrix): bool
public animateImages(string $x_server): bool
public annotateImage(
ImagickDraw $draw_settings,
float $x,
float $y,
float $angle,
string $text
): bool
public appendImages(bool $stack): Imagick
public autoLevelImage(int $channel = Imagick::CHANNEL_DEFAULT): bool
public averageImages(): Imagick
public blackThresholdImage(mixed $threshold): bool
public blueShiftImage(float $factor = 1.5): bool
public blurImage(float $radius, float $sigma, int $channel = ?): bool
public borderImage(mixed $bordercolor, int $width, int $height): bool
public brightnessContrastImage(float $brightness, float $contrast, int $channel = Imagick::CHANNEL_DEFAULT): bool
public charcoalImage(float $radius, float $sigma): bool
public chopImage(
int $width,
int $height,
int $x,
int $y
): bool
public clampImage(int $channel = Imagick::CHANNEL_DEFAULT): bool
public clear(): bool
public clipImage(): bool
public clipImagePath(string $pathname, string $inside): void
public clipPathImage(string $pathname, bool $inside): bool
public clone(): Imagick
public clutImage(Imagick $lookup_table, int $channel = Imagick::CHANNEL_DEFAULT): bool
public coalesceImages(): Imagick
public colorFloodfillImage(
mixed $fill,
float $fuzz,
mixed $bordercolor,
int $x,
int $y
): bool
public colorizeImage(mixed $colorize, mixed $opacity, bool $legacy = false): bool
public colorMatrixImage(array $color_matrix = Imagick::CHANNEL_DEFAULT): bool
public combineImages(int $channelType): Imagick
public commentImage(string $comment): bool
public compareImageChannels(Imagick $image, int $channelType, int $metricType): array
public compareImageLayers(int $method): Imagick
public compareImages(Imagick $compare, int $metric): array
public compositeImage(
Imagick $composite_object,
int $composite,
int $x,
int $y,
int $channel = Imagick::CHANNEL_DEFAULT
): bool
public contrastImage(bool $sharpen): bool
public contrastStretchImage(float $black_point, float $white_point, int $channel = Imagick::CHANNEL_DEFAULT): bool
public convolveImage(array $kernel, int $channel = Imagick::CHANNEL_DEFAULT): bool
public count(int $mode = 0): int
public cropImage(
int $width,
int $height,
int $x,
int $y
): bool
public cropThumbnailImage(int $width, int $height, bool $legacy = false): bool
public current(): Imagick
public cycleColormapImage(int $displace): bool
public decipherImage(string $passphrase): bool
public deconstructImages(): Imagick
public deleteImageArtifact(string $artifact): bool
public deleteImageProperty(string $name): bool
public deskewImage(float $threshold): bool
public despeckleImage(): bool
public destroy(): bool
public displayImage(string $servername): bool
public displayImages(string $servername): bool
public distortImage(int $method, array $arguments, bool $bestfit): bool
public drawImage(ImagickDraw $draw): bool
public edgeImage(float $radius): bool
public embossImage(float $radius, float $sigma): bool
public encipherImage(string $passphrase): bool
public enhanceImage(): bool
public equalizeImage(): bool
public evaluateImage(int $op, float $constant, int $channel = Imagick::CHANNEL_DEFAULT): bool
public exportImagePixels(
int $x,
int $y,
int $width,
int $height,
string $map,
int $STORAGE
): array
public extentImage(
int $width,
int $height,
int $x,
int $y
): bool
public filter(ImagickKernel $ImagickKernel, int $channel = Imagick::CHANNEL_UNDEFINED): bool
public flattenImages(): Imagick
public flipImage(): bool
public floodFillPaintImage(
mixed $fill,
float $fuzz,
mixed $target,
int $x,
int $y,
bool $invert,
int $channel = Imagick::CHANNEL_DEFAULT
): bool
public flopImage(): bool
public forwardFourierTransformimage(bool $magnitude): bool
public frameImage(
mixed $matte_color,
int $width,
int $height,
int $inner_bevel,
int $outer_bevel
): bool
public functionImage(int $function, array $arguments, int $channel = Imagick::CHANNEL_DEFAULT): bool
public fxImage(string $expression, int $channel = Imagick::CHANNEL_DEFAULT): Imagick
public gammaImage(float $gamma, int $channel = Imagick::CHANNEL_DEFAULT): bool
public gaussianBlurImage(float $radius, float $sigma, int $channel = Imagick::CHANNEL_DEFAULT): bool
public getColorspace(): int
public getCompression(): int
public getCompressionQuality(): int
public static getCopyright(): string
public getFilename(): string
public getFont(): string
public getFormat(): string
public getGravity(): int
public static getHomeURL(): string
public getImage(): Imagick
public getImageAlphaChannel(): bool
public getImageArtifact(string $artifact): string
public getImageAttribute(string $key): string
public getImageBackgroundColor(): ImagickPixel
public getImageBlob(): string
public getImageBluePrimary(): array
public getImageBorderColor(): ImagickPixel
public getImageChannelDepth(int $channel): int
public getImageChannelDistortion(Imagick $reference, int $channel, int $metric): float
public getImageChannelDistortions(Imagick $reference, int $metric, int $channel = Imagick::CHANNEL_DEFAULT): float
public getImageChannelExtrema(int $channel): array
public getImageChannelKurtosis(int $channel = Imagick::CHANNEL_DEFAULT): array
public getImageChannelMean(int $channel): array
public getImageChannelRange(int $channel): array
public getImageChannelStatistics(): array
public getImageClipMask(): Imagick
public getImageColormapColor(int $index): ImagickPixel
public getImageColors(): int
public getImageColorspace(): int
public getImageCompose(): int
public getImageCompression(): int
public getImageCompressionQuality(): int
public getImageDelay(): int
public getImageDepth(): int
public getImageDispose(): int
public getImageDistortion(MagickWand $reference, int $metric): float
public getImageExtrema(): array
public getImageFilename(): string
public getImageFormat(): string
public getImageGamma(): float
public getImageGeometry(): array
public getImageGravity(): int
public getImageGreenPrimary(): array
public getImageHeight(): int
public getImageHistogram(): array
public getImageIndex(): int
public getImageInterlaceScheme(): int
public getImageInterpolateMethod(): int
public getImageIterations(): int
public getImageLength(): int
public getImageMatte(): bool
public getImageMatteColor(): ImagickPixel
public getImageMimeType(): string
public getImageOrientation(): int
public getImagePage(): array
public getImagePixelColor(int $x, int $y): ImagickPixel
public getImageProfile(string $name): string
public getImageProfiles(string $pattern = "*", bool $include_values = true): array
public getImageProperties(string $pattern = "*", bool $include_values = true): array
public getImageProperty(string $name): string
public getImageRedPrimary(): array
public getImageRegion(
int $width,
int $height,
int $x,
int $y
): Imagick
public getImageRenderingIntent(): int
public getImageResolution(): array
public getImagesBlob(): string
public getImageScene(): int
public getImageSignature(): string
public getImageSize(): int
public getImageTicksPerSecond(): int
public getImageTotalInkDensity(): float
public getImageType(): int
public getImageUnits(): int
public getImageVirtualPixelMethod(): int
public getImageWhitePoint(): array
public getImageWidth(): int
public getInterlaceScheme(): int
public getIteratorIndex(): int
public getNumberImages(): int
public getOption(string $key): string
public static getPackageName(): string
public getPage(): array
public getPixelIterator(): ImagickPixelIterator
public getPixelRegionIterator(
int $x,
int $y,
int $columns,
int $rows
): ImagickPixelIterator
public getPointSize(): float
public static getQuantum(): int
public static getQuantumDepth(): array
public static getQuantumRange(): array
public static getRegistry(string $key): string
public static getReleaseDate(): string
public static getResource(int $type): int
public static getResourceLimit(int $type): int
public getSamplingFactors(): array
public getSize(): array
public getSizeOffset(): int
public static getVersion(): array
public haldClutImage(Imagick $clut, int $channel = Imagick::CHANNEL_DEFAULT): bool
public hasNextImage(): bool
public hasPreviousImage(): bool
public identifyFormat(string $embedText): string|false
public identifyImage(bool $appendRawOutput = false): array
public implodeImage(float $radius): bool
public importImagePixels(
int $x,
int $y,
int $width,
int $height,
string $map,
int $storage,
array $pixels
): bool
public inverseFourierTransformImage(Imagick $complement, bool $magnitude): bool
public labelImage(string $label): bool
public levelImage(
float $blackPoint,
float $gamma,
float $whitePoint,
int $channel = Imagick::CHANNEL_DEFAULT
): bool
public linearStretchImage(float $blackPoint, float $whitePoint): bool
public liquidRescaleImage(
int $width,
int $height,
float $delta_x,
float $rigidity
): bool
public static listRegistry(): array
public magnifyImage(): bool
public mapImage(Imagick $map, bool $dither): bool
public matteFloodfillImage(
float $alpha,
float $fuzz,
mixed $bordercolor,
int $x,
int $y
): bool
public medianFilterImage(float $radius): bool
public mergeImageLayers(int $layer_method): Imagick
public minifyImage(): bool
public modulateImage(float $brightness, float $saturation, float $hue): bool
public montageImage(
ImagickDraw $draw,
string $tile_geometry,
string $thumbnail_geometry,
int $mode,
string $frame
): Imagick
public morphImages(int $number_frames): Imagick
public morphology(
int $morphologyMethod,
int $iterations,
ImagickKernel $ImagickKernel,
int $channel = Imagick::CHANNEL_DEFAULT
): bool
public mosaicImages(): Imagick
public motionBlurImage(
float $radius,
float $sigma,
float $angle,
int $channel = Imagick::CHANNEL_DEFAULT
): bool
public negateImage(bool $gray, int $channel = Imagick::CHANNEL_DEFAULT): bool
public newImage(
int $cols,
int $rows,
mixed $background,
string $format = ?
): bool
public newPseudoImage(int $columns, int $rows, string $pseudoString): bool
public nextImage(): bool
public normalizeImage(int $channel = Imagick::CHANNEL_DEFAULT): bool
public oilPaintImage(float $radius): bool
public opaquePaintImage(
mixed $target,
mixed $fill,
float $fuzz,
bool $invert,
int $channel = Imagick::CHANNEL_DEFAULT
): bool
public optimizeImageLayers(): bool
public orderedPosterizeImage(string $threshold_map, int $channel = Imagick::CHANNEL_DEFAULT): bool
public paintFloodfillImage(
mixed $fill,
float $fuzz,
mixed $bordercolor,
int $x,
int $y,
int $channel = Imagick::CHANNEL_DEFAULT
): bool
public paintOpaqueImage(
mixed $target,
mixed $fill,
float $fuzz,
int $channel = Imagick::CHANNEL_DEFAULT
): bool
public paintTransparentImage(mixed $target, float $alpha, float $fuzz): bool
public pingImage(string $filename): bool
public pingImageBlob(string $image): bool
public pingImageFile(resource $filehandle, string $fileName = ?): bool
public polaroidImage(ImagickDraw $properties, float $angle): bool
public posterizeImage(int $levels, bool $dither): bool
public previewImages(int $preview): bool
public previousImage(): bool
public profileImage(string $name, ?string $profile): bool
public quantizeImage(
int $numberColors,
int $colorspace,
int $treedepth,
bool $dither,
bool $measureError
): bool
public quantizeImages(
int $numberColors,
int $colorspace,
int $treedepth,
bool $dither,
bool $measureError
): bool
public queryFontMetrics(ImagickDraw $properties, string $text, bool $multiline = ?): array
public static queryFonts(string $pattern = "*"): array
public static queryFormats(string $pattern = "*"): array
public radialBlurImage(float $angle, int $channel = Imagick::CHANNEL_DEFAULT): bool
public raiseImage(
int $width,
int $height,
int $x,
int $y,
bool $raise
): bool
public randomThresholdImage(float $low, float $high, int $channel = Imagick::CHANNEL_DEFAULT): bool
public readImage(string $filename): bool
public readImageBlob(string $image, string $filename = ?): bool
public readImageFile(resource $filehandle, string $fileName = null): bool
public readImages(array $filenames): bool
public recolorImage(array $matrix): bool
public reduceNoiseImage(float $radius): bool
public remapImage(Imagick $replacement, int $DITHER): bool
public removeImage(): bool
public removeImageProfile(string $name): string
public render(): bool
public resampleImage(
float $x_resolution,
float $y_resolution,
int $filter,
float $blur
): bool
public resetImagePage(string $page): bool
public resizeImage(
int $columns,
int $rows,
int $filter,
float $blur,
bool $bestfit = false,
bool $legacy = false
): bool
public rollImage(int $x, int $y): bool
public rotateImage(mixed $background, float $degrees): bool
public rotationalBlurImage(float $angle, int $channel = Imagick::CHANNEL_DEFAULT): bool
public roundCorners(
float $x_rounding,
float $y_rounding,
float $stroke_width = 10,
float $displace = 5,
float $size_correction = -6
): bool
public sampleImage(int $columns, int $rows): bool
public scaleImage(
int $columns,
int $rows,
bool $bestfit = false,
bool $legacy = false
): bool
public segmentImage(
int $COLORSPACE,
float $cluster_threshold,
float $smooth_threshold,
bool $verbose = false
): bool
public selectiveBlurImage(
float $radius,
float $sigma,
float $threshold,
int $channel = Imagick::CHANNEL_DEFAULT
): bool
public separateImageChannel(int $channel): bool
public sepiaToneImage(float $threshold): bool
public setBackgroundColor(mixed $background): bool
public setColorspace(int $COLORSPACE): bool
public setCompression(int $compression): bool
public setCompressionQuality(int $quality): bool
public setFilename(string $filename): bool
public setFirstIterator(): bool
public setFont(string $font): bool
public setFormat(string $format): bool
public setGravity(int $gravity): bool
public setImage(Imagick $replace): bool
public setImageAlphaChannel(int $mode): bool
public setImageArtifact(string $artifact, string $value): bool
public setImageAttribute(string $key, string $value): bool
public setImageBackgroundColor(mixed $background): bool
public setImageBias(float $bias): bool
public setImageBiasQuantum(float $bias): void
public setImageBluePrimary(float $x, float $y): bool
public setImageBorderColor(mixed $border): bool
public setImageChannelDepth(int $channel, int $depth): bool
public setImageClipMask(Imagick $clip_mask): bool
public setImageColormapColor(int $index, ImagickPixel $color): bool
public setImageColorspace(int $colorspace): bool
public setImageCompose(int $compose): bool
public setImageCompression(int $compression): bool
public setImageCompressionQuality(int $quality): bool
public setImageDelay(int $delay): bool
public setImageDepth(int $depth): bool
public setImageDispose(int $dispose): bool
public setImageExtent(int $columns, int $rows): bool
public setImageFilename(string $filename): bool
public setImageFormat(string $format): bool
public setImageGamma(float $gamma): bool
public setImageGravity(int $gravity): bool
public setImageGreenPrimary(float $x, float $y): bool
public setImageIndex(int $index): bool
public setImageInterlaceScheme(int $interlace_scheme): bool
public setImageInterpolateMethod(int $method): bool
public setImageIterations(int $iterations): bool
public setImageMatte(bool $matte): bool
public setImageMatteColor(mixed $matte): bool
public setImageOpacity(float $opacity): bool
public setImageOrientation(int $orientation): bool
public setImagePage(
int $width,
int $height,
int $x,
int $y
): bool
public setImageProfile(string $name, string $profile): bool
public setImageProperty(string $name, string $value): bool
public setImageRedPrimary(float $x, float $y): bool
public setImageRenderingIntent(int $rendering_intent): bool
public setImageResolution(float $x_resolution, float $y_resolution): bool
public setImageScene(int $scene): bool
public setImageTicksPerSecond(int $ticks_per_second): bool
public setImageType(int $image_type): bool
public setImageUnits(int $units): bool
public setImageVirtualPixelMethod(int $method): bool
public setImageWhitePoint(float $x, float $y): bool
public setInterlaceScheme(int $interlace_scheme): bool
public setIteratorIndex(int $index): bool
public setLastIterator(): bool
public setOption(string $key, string $value): bool
public setPage(
int $width,
int $height,
int $x,
int $y
): bool
public setPointSize(float $point_size): bool
public setProgressMonitor(callable $callback): bool
public static setRegistry(string $key, string $value): bool
public setResolution(float $x_resolution, float $y_resolution): bool
public static setResourceLimit(int $type, int $limit): bool
public setSamplingFactors(array $factors): bool
public setSize(int $columns, int $rows): bool
public setSizeOffset(int $columns, int $rows, int $offset): bool
public setType(int $image_type): bool
public shadeImage(bool $gray, float $azimuth, float $elevation): bool
public shadowImage(
float $opacity,
float $sigma,
int $x,
int $y
): bool
public sharpenImage(float $radius, float $sigma, int $channel = Imagick::CHANNEL_DEFAULT): bool
public shaveImage(int $columns, int $rows): bool
public shearImage(mixed $background, float $x_shear, float $y_shear): bool
public sigmoidalContrastImage(
bool $sharpen,
float $alpha,
float $beta,
int $channel = Imagick::CHANNEL_DEFAULT
): bool
public sketchImage(float $radius, float $sigma, float $angle): bool
public smushImages(bool $stack, int $offset): Imagick
public solarizeImage(int $threshold): bool
public sparseColorImage(int $SPARSE_METHOD, array $arguments, int $channel = Imagick::CHANNEL_DEFAULT): bool
public spliceImage(
int $width,
int $height,
int $x,
int $y
): bool
public spreadImage(float $radius): bool
public statisticImage(
int $type,
int $width,
int $height,
int $channel = Imagick::CHANNEL_DEFAULT
): bool
public steganoImage(Imagick $watermark_wand, int $offset): Imagick
public stereoImage(Imagick $offset_wand): bool
public stripImage(): bool
public subImageMatch(Imagick $Imagick, array &$offset = ?, float &$similarity = ?): Imagick
swirlImage(float $degrees): bool
textureImage(Imagick $texture_wand): Imagick
public thresholdImage(float $threshold, int $channel = Imagick::CHANNEL_DEFAULT): bool
public thumbnailImage(
int $columns,
int $rows,
bool $bestfit = false,
bool $fill = false,
bool $legacy = false
): bool
public tintImage(mixed $tint, mixed $opacity, bool $legacy = false): bool
public __toString(): string
public transformImage(string $crop, string $geometry): Imagick
public transformImageColorspace(int $colorspace): bool
public transparentPaintImage(
mixed $target,
float $alpha,
float $fuzz,
bool $invert
): bool
public transposeImage(): bool
public transverseImage(): bool
public trimImage(float $fuzz): bool
public uniqueImageColors(): bool
public unsharpMaskImage(
float $radius,
float $sigma,
float $amount,
float $threshold,
int $channel = Imagick::CHANNEL_DEFAULT
): bool
public valid(): bool
public vignetteImage(
float $blackPoint,
float $whitePoint,
int $x,
int $y
): bool
public waveImage(float $amplitude, float $length): bool
public whiteThresholdImage(mixed $threshold): bool
public writeImage(string $filename = NULL): bool
public writeImageFile(resource $filehandle, string $format = ?): bool
public writeImages(string $filename, bool $adjoin): bool
public writeImagesFile(resource $filehandle, string $format = ?): bool
}

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 — Adjusts the levels of a particular image channel
  • Imagick::averageImages — Moyenne d'un jeu d'images
  • Imagick::blackThresholdImage — Force tous les pixels au-delà d'un seuil à noir
  • Imagick::blueShiftImage — Mutes the colors of the image
  • Imagick::blurImage — Ajoute un filtre de flou à une image
  • Imagick::borderImage — Encadre une image avec un bord
  • Imagick::brightnessContrastImage — Change the brightness and/or contrast of an image
  • Imagick::charcoalImage — Simule un dessin au fusain
  • Imagick::chopImage — Supprime une région d'une image et retaille
  • Imagick::clampImage — Restricts the color range from 0 to the quantum depth.
  • 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 — Clips along the named paths from the 8BIM profile, if present
  • 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 — Apply color transformation to an image
  • 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 — Get the number of images
  • 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 — Deletes an image property
  • 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 — Applies a custom convolution kernel to the image
  • 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 — Implements the discrete Fourier transform (DFT)
  • 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 — Vérifie si l'image a un canal alpha
  • Imagick::getImageArtifact — Récupère l'artefact de l'image
  • Imagick::getImageAttribute — Returns a named attribute
  • 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::getImageMatte — Indique si l'image a un canal mat
  • Imagick::getImageMatteColor — Retourne la couleur mate de l'image
  • Imagick::getImageMimeType — Returns the image mime-type
  • 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 — Returns the ImageMagick quantum range
  • Imagick::getQuantumDepth — Lit la profondeur quantique
  • Imagick::getQuantumRange — Retourne l'intervalle quantique de Imagick
  • Imagick::getRegistry — Get a StringRegistry entry
  • 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 — Formats a string with image details
  • 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 — Implements the inverse discrete Fourier transform (DFT)
  • 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 — List all the registry settings
  • 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 — Applies a user supplied kernel to the image according to the given morphology method.
  • 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 — Reads image from an array of filenames
  • 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 — Rotational blurs an image
  • 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 — Selectively blur an image within a contrast threshold
  • 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 — Sets an image attribute
  • Imagick::setImageBackgroundColor — Configure la couleur de fond d'image
  • Imagick::setImageBias — Configure le biais pour les convolutions
  • Imagick::setImageBiasQuantum — Sets the image bias
  • 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 — Set a callback to be called during processing
  • Imagick::setRegistry — Sets the ImageMagick registry entry named key to value
  • Imagick::setResolution — Configure la résolution de l'image
  • Imagick::setResourceLimit — Définit la limite pour une ressource particulière
  • 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 — Takes all images from the current image pointer to the end of the image list and smushs them
  • 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 — Modifies image using a statistics function
  • 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 — Searches for a subimage in the current image and returns a similarity image
  • 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, PECL imagick 3)

Imagick::adaptiveBlurImage — Ajout un flou adaptatif à l'image

Description

public Imagick::adaptiveBlurImage(float $radius, float $sigma, int $channel = Imagick::CHANNEL_DEFAULT): bool

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;

?>

Résultat de l'exemple ci-dessus est 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, PECL imagick 3)

Imagick::adaptiveResizeImage — Redimensionne adaptativement une image par triangulation

Description

public Imagick::adaptiveResizeImage(
int $columns,
int $rows,
bool $bestfit = false,
bool $legacy = false
): bool

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
PECL imagick 2.1.0 | Ajout d'un paramètre optionnel de fit.
PECL imagick 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, PECL imagick 3)

Imagick::adaptiveSharpenImage — Augmente le contraste de l'image

Description

public Imagick::adaptiveSharpenImage(float $radius, float $sigma, int $channel = Imagick::CHANNEL_DEFAULT): bool

Augment le contraste adaptativement, en l'augmentant au niveau des bords, et en le diminuant dans le cœur. 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, PECL imagick 3)

Imagick::adaptiveThresholdImage — Sélectionne le niveau de chaque pixel, à partir d'un intervalle d'intensité

Description

public Imagick::adaptiveThresholdImage(int $width, int $height, int $offset): bool

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, PECL imagick 3)

Imagick::addImage — Ajoute une nouvelle image à la liste d'image Imagick

Description

public Imagick::addImage(Imagick $source): bool

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, PECL imagick 3)

Imagick::addNoiseImage — Ajoute un bruit blanc à une image

Description

public Imagick::addNoiseImage(int $noise_type, int $channel = Imagick::CHANNEL_DEFAULT): bool

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, PECL imagick 3)

Imagick::affineTransformImage — Transforme une image

Description

public Imagick::affineTransformImage(ImagickDraw $matrix): bool

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 = deg2rad(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

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::animateImages — Anime une ou plusieurs images

Description

public Imagick::animateImages(string $x_server): bool

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, PECL imagick 3)

Imagick::annotateImage — Annote une image avec un texte

Description

public Imagick::annotateImage(
ImagickDraw $draw_settings,
float $x,
float $y,
float $angle,
string $text
): bool

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, PECL imagick 3)

Imagick::appendImages — Ajoute un jeu d'images

Description

public Imagick::appendImages(bool $stack): Imagick

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;
?>

Résultat de l'exemple ci-dessus est similaire à :

Affichage de l'exemple : Imagick::appendImages()


Adjusts the levels of a particular image channel

  • « Imagick::appendImages
  • Imagick::averageImages »
  • PHP Manual
  • Imagick
  • Adjusts the levels of a particular image channel

Imagick::autoLevelImage

(PECL imagick 3 >= 3.3.0)

Imagick::autoLevelImage — Adjusts the levels of a particular image channel

Description

public Imagick::autoLevelImage(int $channel = Imagick::CHANNEL_DEFAULT): bool

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

Retourne true en cas de succès.

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, PECL imagick 3)

Imagick::averageImages — Moyenne d'un jeu d'images

Avertissement

Cette fonction est OBSOLÈTE à partir de Imagick 3.4.4. Dépendre de cette fonctionnalité est fortement déconseillé.

Description

public Imagick::averageImages(): Imagick

Fait la moyenne d'un jeu d'images.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::blackThresholdImage — Force tous les pixels au-delà d'un seuil à noir

Description

public Imagick::blackThresholdImage(mixed $threshold): bool

É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
PECL imagick 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();
}

?>


Mutes the colors of the image

  • « Imagick::blackThresholdImage
  • Imagick::blurImage »
  • PHP Manual
  • Imagick
  • Mutes the colors of the image

Imagick::blueShiftImage

(PECL imagick 3 >= 3.3.0)

Imagick::blueShiftImage — Mutes the colors of the image

Description

public Imagick::blueShiftImage(float $factor = 1.5): bool

Mutes the colors of the image to simulate a scene at nighttime in the moonlight.

Liste de paramètres

factor

Valeurs de retour

Retourne true en cas de succès.

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, PECL imagick 3)

Imagick::blurImage — Ajoute un filtre de flou à une image

Description

public Imagick::blurImage(float $radius, float $sigma, int $channel = ?): bool

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, PECL imagick 3)

Imagick::borderImage — Encadre une image avec un bord

Description

public Imagick::borderImage(mixed $bordercolor, int $width, int $height): bool

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
PECL imagick 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();
}

?>


Change the brightness and/or contrast of an image

  • « Imagick::borderImage
  • Imagick::charcoalImage »
  • PHP Manual
  • Imagick
  • Change the brightness and/or contrast of an image

Imagick::brightnessContrastImage

(PECL imagick 3 >= 3.3.0)

Imagick::brightnessContrastImage — Change the brightness and/or contrast of an image

Description

public Imagick::brightnessContrastImage(float $brightness, float $contrast, int $channel = Imagick::CHANNEL_DEFAULT): bool

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

Retourne true en cas de succès.

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, PECL imagick 3)

Imagick::charcoalImage — Simule un dessin au fusain

Description

public Imagick::charcoalImage(float $radius, float $sigma): bool

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, PECL imagick 3)

Imagick::chopImage — Supprime une région d'une image et retaille

Description

public Imagick::chopImage(
int $width,
int $height,
int $x,
int $y
): bool

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


Restricts the color range from 0 to the quantum depth.

  • « Imagick::chopImage
  • Imagick::clear »
  • PHP Manual
  • Imagick
  • Restricts the color range from 0 to the quantum depth.

Imagick::clampImage

(PECL imagick 3 >= 3.3.0)

Imagick::clampImage — Restricts the color range from 0 to the quantum depth.

Description

public Imagick::clampImage(int $channel = Imagick::CHANNEL_DEFAULT): bool

Restricts the color range from 0 to the quantum depth.

Liste de paramètres

channel

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.


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, PECL imagick 3)

Imagick::clear — Libère toutes les ressources associées à un objet Imagick

Description

public Imagick::clear(): bool

Libère toutes les ressources associées à un objet Imagick.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::clipImage — S'aligne sur le premier chemin d'un profil 8BIM

Description

public Imagick::clipImage(): bool

S'aligne sur le premier chemin d'un profil 8BIM, si présent.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Clips along the named paths from the 8BIM profile, if present

  • « Imagick::clipImage
  • Imagick::clipPathImage »
  • PHP Manual
  • Imagick
  • Clips along the named paths from the 8BIM profile, if present

Imagick::clipImagePath

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::clipImagePath — Clips along the named paths from the 8BIM profile, if present

Description

public Imagick::clipImagePath(string $pathname, string $inside): void

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 est actuellement non documentée ; 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, PECL imagick 3)

Imagick::clipPathImage — Suit le chemin d'un profil 8BIM

Description

public Imagick::clipPathImage(string $pathname, bool $inside): bool

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, PECL imagick 3)

Imagick::clone — Fait une copie exacte d'un objet Imagick

Description

public Imagick::clone(): Imagick

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une copie de l'objet Imagick.

Historique

Version | Description
PECL imagick 3.1.0 | Cette méthode est devenue obsolète en faveur du 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;
?>


Remplace les couleurs d'une image

  • « Imagick::clone
  • Imagick::coalesceImages »
  • PHP Manual
  • Imagick
  • Remplace les couleurs d'une image

Imagick::clutImage

(PECL imagick 2, PECL imagick 3)

Imagick::clutImage — Remplace les couleurs d'une image

Description

public Imagick::clutImage(Imagick $lookup_table, int $channel = Imagick::CHANNEL_DEFAULT): bool

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, PECL imagick 3)

Imagick::coalesceImages — Compose un jeu d'images

Description

public Imagick::coalesceImages(): Imagick

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::colorFloodfillImage — Change la couleur d'un pixel

Avertissement

Cette fonction est OBSOLÈTE à partir de Imagick 3.4.4. Dépendre de cette fonctionnalité est fortement déconseillé.

Description

public Imagick::colorFloodfillImage(
mixed $fill,
float $fuzz,
mixed $bordercolor,
int $x,
int $y
): bool

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
PECL imagick 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, PECL imagick 3)

Imagick::colorizeImage — Mélange la couleur de remplissage avec l'image

Description

public Imagick::colorizeImage(mixed $colorize, mixed $opacity, bool $legacy = false): bool

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
PECL imagick 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();
}

?>


Apply color transformation to an image

  • « Imagick::colorizeImage
  • Imagick::combineImages »
  • PHP Manual
  • Imagick
  • Apply color transformation to an image

Imagick::colorMatrixImage

(PECL imagick 3 >= 3.3.0)

Imagick::colorMatrixImage — Apply color transformation to an image

Description

public Imagick::colorMatrixImage(array $color_matrix = Imagick::CHANNEL_DEFAULT): bool

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

Retourne true en cas de succès.

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, PECL imagick 3)

Imagick::combineImages — Combine plusieurs images en une seule

Description

public Imagick::combineImages(int $channelType): Imagick

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, PECL imagick 3)

Imagick::commentImage — Ajoute un commentaire à une image

Description

public Imagick::commentImage(string $comment): bool

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, PECL imagick 3)

Imagick::compareImageChannels — Retourne la différence entre plusieurs images

Description

public Imagick::compareImageChannels(Imagick $image, int $channelType, int $metricType): array

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, PECL imagick 3)

Imagick::compareImageLayers — Retourne la région d'encadrement maximale entre deux images

Description

public Imagick::compareImageLayers(int $method): Imagick

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, PECL imagick 3)

Imagick::compareImages — Compare une image avec une image reconstituée

Description

public Imagick::compareImages(Imagick $compare, int $metric): array

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 un tableau contenant une image reconstruite et la différence entre les images.

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, PECL imagick 3)

Imagick::compositeImage — Compose une image avec une autre

Description

public Imagick::compositeImage(
Imagick $composite_object,
int $composite,
int $x,
int $y,
int $channel = Imagick::CHANNEL_DEFAULT
): bool

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, PECL imagick 3)

Imagick::__construct — Le constructeur Imagick

Description

public 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.

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, PECL imagick 3)

Imagick::contrastImage — Change le contraste de l'image

Description

public Imagick::contrastImage(bool $sharpen): bool

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, PECL imagick 3)

Imagick::contrastStretchImage — Améliore le contraste d'une image

Description

public Imagick::contrastStretchImage(float $black_point, float $white_point, int $channel = Imagick::CHANNEL_DEFAULT): bool

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, PECL imagick 3)

Imagick::convolveImage — Applique un noyau de convolution à une image

Description

public Imagick::convolveImage(array $kernel, int $channel = Imagick::CHANNEL_DEFAULT): bool

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();
}

?>


Get the number of images

  • « Imagick::convolveImage
  • Imagick::cropImage »
  • PHP Manual
  • Imagick
  • Get the number of images

Imagick::count

(PECL imagick 3 >= 3.3.0)

Imagick::count — Get the number of images

Description

public Imagick::count(int $mode = 0): int

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

Returns the number of images.


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, PECL imagick 3)

Imagick::cropImage — Extrait une région d'une image

Description

public Imagick::cropImage(
int $width,
int $height,
int $x,
int $y
): bool

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, PECL imagick 3)

Imagick::cropThumbnailImage — Crée une miniature par retaillage

Description

public Imagick::cropThumbnailImage(int $width, int $height, bool $legacy = false): bool

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, PECL imagick 3)

Imagick::current — Retourne une référence sur l'objet imagick courant

Description

public Imagick::current(): Imagick

Retourne une référence sur l'objet courant, à partir d'une référence de séquence.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::cycleColormapImage — Déplace la carte des couleurs d'une image

Description

public Imagick::cycleColormapImage(int $displace): bool

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

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::decipherImage — Déchiffre une image

Description

public Imagick::decipherImage(string $passphrase): bool

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, PECL imagick 3)

Imagick::deconstructImages — Retourne les différences de certains pixels entre deux images

Description

public Imagick::deconstructImages(): Imagick

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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

(PECL imagick 3)

Imagick::deleteImageArtifact — Supprime l'artefact d'une image

Description

public Imagick::deleteImageArtifact(string $artifact): bool

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


Deletes an image property

  • « Imagick::deleteImageArtifact
  • Imagick::deskewImage »
  • PHP Manual
  • Imagick
  • Deletes an image property

Imagick::deleteImageProperty

(PECL imagick 3 >= 3.3.0)

Imagick::deleteImageProperty — Deletes an image property

Description

public Imagick::deleteImageProperty(string $name): bool

Deletes an image property.

Liste de paramètres

name

The name of the property to delete.

Valeurs de retour

Retourne true en cas de succès.


Supprime le biais de l'image

  • « Imagick::deleteImageProperty
  • Imagick::despeckleImage »
  • PHP Manual
  • Imagick
  • Supprime le biais de l'image

Imagick::deskewImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3 >= 3.3.0)

Imagick::deskewImage — Supprime le biais de l'image

Description

public Imagick::deskewImage(float $threshold): bool

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, PECL imagick 3)

Imagick::despeckleImage — Réduit le bruit speckle d'une image

Description

public Imagick::despeckleImage(): bool

Réduit le bruit speckle d'une image, en préservant les bords de l'image original.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::destroy — Détruit un objet Imagick

Description

public Imagick::destroy(): bool

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::displayImage — Affiche une image

Description

public Imagick::displayImage(string $servername): bool

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, PECL imagick 3)

Imagick::displayImages — Affiche une image ou une séquence

Description

public Imagick::displayImages(string $servername): bool

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 >= 2.0.1, PECL imagick 3)

Imagick::distortImage — Déforme une image avec différentes méthodes

Description

public Imagick::distortImage(int $method, array $arguments, bool $bestfit): bool

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;
?>

Résultat de l'exemple ci-dessus est 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, PECL imagick 3)

Imagick::drawImage — Affiche un objet ImagickDraw dans l'image courante

Description

public Imagick::drawImage(ImagickDraw $draw): bool

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, PECL imagick 3)

Imagick::edgeImage — Renforce les bords dans l'image

Description

public Imagick::edgeImage(float $radius): bool

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, PECL imagick 3)

Imagick::embossImage — Retourne une image en niveau de gris, avec un effet 3D

Description

public Imagick::embossImage(float $radius, float $sigma): bool

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

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::encipherImage — Chiffre une image

Description

public Imagick::encipherImage(string $passphrase): bool

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, PECL imagick 3)

Imagick::enhanceImage — Améliore la qualité d'une image bruitée

Description

public Imagick::enhanceImage(): bool

Améliore la qualité d'une image bruitée avec un filtre numérique.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::equalizeImage — Égalise l'histogramme d'une image

Description

public Imagick::equalizeImage(): bool

Égalise l'histogramme d'une image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::evaluateImage — Applique une expression à une image

Description

public Imagick::evaluateImage(int $op, float $constant, int $channel = Imagick::CHANNEL_DEFAULT): bool

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.

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::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;
?>


Exporte les pixels bruts de l'image

  • « Imagick::evaluateImage
  • Imagick::extentImage »
  • PHP Manual
  • Imagick
  • Exporte les pixels bruts de l'image

Imagick::exportImagePixels

(PECL imagick 2 >=2.3.0, PECL imagick 3)

Imagick::exportImagePixels — Exporte les pixels bruts de l'image

Description

public Imagick::exportImagePixels(
int $x,
int $y,
int $width,
int $height,
string $map,
int $STORAGE
): array

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

Valeurs de retour

Retourne un tableau contenant les valeurs des pixels.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

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)
}


Définit la taille de l'image

  • « Imagick::exportImagePixels
  • Imagick::filter »
  • PHP Manual
  • Imagick
  • Définit la taille de l'image

Imagick::extentImage

(PECL imagick 2, PECL imagick 3)

Imagick::extentImage — Définit la taille de l'image

Description

public Imagick::extentImage(
int $width,
int $height,
int $x,
int $y
): bool

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


Applies a custom convolution kernel to the image

  • « Imagick::extentImage
  • Imagick::flattenImages »
  • PHP Manual
  • Imagick
  • Applies a custom convolution kernel to the image

Imagick::filter

(PECL imagick 3 >= 3.3.0)

Imagick::filter — Applies a custom convolution kernel to the image

Avertissement

Cette fonction est OBSOLÈTE à partir de Imagick 3.4.4. Dépendre de cette fonctionnalité est fortement déconseillé.

Description

public Imagick::filter(ImagickKernel $ImagickKernel, int $channel = Imagick::CHANNEL_UNDEFINED): bool

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

Retourne true en cas de succès.

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, PECL imagick 3)

Imagick::flattenImages — Fusionne une séquence d'images

Avertissement

Cette fonction est OBSOLÈTE à partir de Imagick 3.4.4. Dépendre de cette fonctionnalité est fortement déconseillé.

Description

public Imagick::flattenImages(): Imagick

Fusionne une séquence d'images. Ceci est pratique pour combiner une série de couches Photoshop en une seule image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::flipImage — Crée une image par miroir vertical

Description

public Imagick::flipImage(): bool

Crée une image par miroir vertical, à l'aide d'une symétrie autour de l'axe des abscisses.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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();
}

?>

Voir aussi

  • Imagick::flopimage() - Crée une image par miroir horizontal


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

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::floodFillPaintImage — Modifie la valeur de la couleur de chaque pixel correspondant à la cible

Description

public Imagick::floodFillPaintImage(
mixed $fill,
float $fuzz,
mixed $target,
int $x,
int $y,
bool $invert,
int $channel = Imagick::CHANNEL_DEFAULT
): bool

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");
?>

Résultat de l'exemple ci-dessus est 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, PECL imagick 3)

Imagick::flopImage — Crée une image par miroir horizontal

Description

public Imagick::flopImage(): bool

Crée une image par miroir horizontal, à l'aide d'une symétrie autour de l'axe des ordonnées.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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();
}

?>

Voir aussi

  • Imagick::flipimage() - Crée une image par miroir vertical


Implements the discrete Fourier transform (DFT)

  • « Imagick::flopImage
  • Imagick::frameImage »
  • PHP Manual
  • Imagick
  • Implements the discrete Fourier transform (DFT)

Imagick::forwardFourierTransformImage

(PECL imagick 3 >= 3.3.0)

Imagick::forwardFourierTransformImage — Implements the discrete Fourier transform (DFT)

Description

public Imagick::forwardFourierTransformimage(bool $magnitude): bool

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

Retourne true en cas de succès.

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, PECL imagick 3)

Imagick::frameImage — Ajoute un bord 3D

Description

public Imagick::frameImage(
mixed $matte_color,
int $width,
int $height,
int $inner_bevel,
int $outer_bevel
): bool

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
PECL imagick 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

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::functionImage — Applique une fonction sur l'image

Description

public Imagick::functionImage(int $function, array $arguments, int $channel = Imagick::CHANNEL_DEFAULT): bool

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();
?>

Résultat de l'exemple ci-dessus est 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();
?>

Résultat de l'exemple ci-dessus est 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();
?>

Résultat de l'exemple ci-dessus est 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, PECL imagick 3)

Imagick::fxImage — Évalue une expression pour chaque pixel d'une image

Description

public Imagick::fxImage(string $expression, int $channel = Imagick::CHANNEL_DEFAULT): Imagick

É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, PECL imagick 3)

Imagick::gammaImage — Applique une correction gamma à l'image

Description

public Imagick::gammaImage(float $gamma, int $channel = Imagick::CHANNEL_DEFAULT): bool

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, PECL imagick 3)

Imagick::gaussianBlurImage — Ajoute du flou à image

Description

public Imagick::gaussianBlurImage(float $radius, float $sigma, int $channel = Imagick::CHANNEL_DEFAULT): bool

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 3)

Imagick::getColorspace — Récupère l'espace de couleurs

Description

public Imagick::getColorspace(): int

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getCompression — Lit le type de compression

Description

public Imagick::getCompression(): int

Lit le type de compression.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getCompressionQuality — Lit la qualité de la compression

Description

public Imagick::getCompressionQuality(): int

Lit la qualité de la compression.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getCopyright — Retourne le copyright de l'API ImageMagick API

Description

public static Imagick::getCopyright(): string

Retourne le copyright de l'API ImageMagick API.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getFilename — Lit le nom du fichier associé à une séquence

Description

public Imagick::getFilename(): string

Lit le nom du fichier associé à une séquence.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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 >= 2.1.0, PECL imagick 3)

Imagick::getFont — Récupère la police de caractères

Description

public Imagick::getFont(): string

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getFormat — Retourne le format de l'image Imagick

Description

public Imagick::getFormat(): string

Retourne le format de l'image Imagick.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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

(PECL imagick 2, PECL imagick 3)

Imagick::getGravity — Récupère la gravité

Description

public Imagick::getGravity(): int

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getHomeURL — Retourne l'URL de ImageMagick

Description

public static Imagick::getHomeURL(): string

Retourne l'URL de ImageMagick.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getImage — Retourne un nouvel objet Imagick

Description

public Imagick::getImage(): Imagick

Retourne un nouvel objet Imagick.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un nouvel objet Imagick.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Vérifie si l'image a un canal alpha

  • « Imagick::getImage
  • Imagick::getImageArtifact »
  • PHP Manual
  • Imagick
  • Vérifie si l'image a un canal alpha

Imagick::getImageAlphaChannel

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::getImageAlphaChannel — Vérifie si l'image a un canal alpha

Description

public Imagick::getImageAlphaChannel(): bool

Retourne si l'image a un canal alpha.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true si l'image a une valeur de canal alpha et false sinon, c'est-à-dire que l'image est RGB plutôt que RGBA ou CMYK plutôt que CMYKA.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Historique

Version | Description
imagick 3.6.0 | Retourne un booléen maintenant ; auparavant, un entier était retourné.


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

(PECL imagick 3)

Imagick::getImageArtifact — Récupère l'artefact de l'image

Description

public Imagick::getImageArtifact(string $artifact): string

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


Returns a named attribute

  • « Imagick::getImageArtifact
  • Imagick::getImageBackgroundColor »
  • PHP Manual
  • Imagick
  • Returns a named attribute

Imagick::getImageAttribute

(PECL imagick 2, PECL imagick 3)

Imagick::getImageAttribute — Returns a named attribute

Avertissement

Cette fonction est OBSOLÈTE à partir de Imagick 3.4.4. Dépendre de cette fonctionnalité est fortement déconseillé.

Description

public Imagick::getImageAttribute(string $key): string

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, PECL imagick 3)

Imagick::getImageBackgroundColor — Retourne la couleur de fond

Description

public Imagick::getImageBackgroundColor(): ImagickPixel

Retourne la couleur de fond.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getImageBlob — Retourne la séquence d'images comme un blob

Description

public Imagick::getImageBlob(): string

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().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getImageBluePrimary — Retourne la chromacité de la couleur bleue

Description

public Imagick::getImageBluePrimary(): array

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, PECL imagick 3)

Imagick::getImageBorderColor — Retourne la couleur de bordure de l'image

Description

public Imagick::getImageBorderColor(): ImagickPixel

Retourne la couleur de bordure de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getImageChannelDepth — Lit la profondeur d'un des canaux de l'image

Description

public Imagick::getImageChannelDepth(int $channel): int

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, PECL imagick 3)

Imagick::getImageChannelDistortion — Compare les canaux d'une image reconstituée

Description

public Imagick::getImageChannelDistortion(Imagick $reference, int $channel, int $metric): float

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

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::getImageChannelDistortions — Récupère les distorsions d'un canal

Description

public Imagick::getImageChannelDistortions(Imagick $reference, int $metric, int $channel = Imagick::CHANNEL_DEFAULT): float

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 float, 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, PECL imagick 3)

Imagick::getImageChannelExtrema — Lit les extrêmes pour les canaux de l'image

Avertissement

Cette fonction est OBSOLÈTE à partir de Imagick 3.4.4. Dépendre de cette fonctionnalité est fortement déconseillé.

Description

public Imagick::getImageChannelExtrema(int $channel): array

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

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::getImageChannelKurtosis — Le but de getImageChannelKurtosis

Description

public Imagick::getImageChannelKurtosis(int $channel = Imagick::CHANNEL_DEFAULT): array

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, PECL imagick 3)

Imagick::getImageChannelMean — Lit la moyenne et la déviation standard

Description

public Imagick::getImageChannelMean(int $channel): array

Récupère la moyenne et la déviation standard d'un ou plusieurs des canaux 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 un tableau avec les membres "mean" et "standardDeviation".

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.2.1, PECL imagick 3)

Imagick::getImageChannelRange — Récupère l'intervalle du canal

Description

public Imagick::getImageChannelRange(int $channel): array

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, PECL imagick 3)

Imagick::getImageChannelStatistics — Retourne des statistiques sur chaque canal de l'image

Description

public Imagick::getImageChannelStatistics(): array

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::getImageClipMask — Récupère le masque du clip de l'image

Avertissement

Cette fonction est OBSOLÈTE à partir de Imagick 3.4.4. Dépendre de cette fonctionnalité est fortement déconseillé.

Description

public Imagick::getImageClipMask(): Imagick

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getImageColormapColor — Retourne la couleur à l'index de la carte de couleurs

Description

public Imagick::getImageColormapColor(int $index): ImagickPixel

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, PECL imagick 3)

Imagick::getImageColors — Lit le nombre de couleurs uniques de l'image

Description

public Imagick::getImageColors(): int

Lit le nombre de couleurs uniques de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un int, le nombre de couleur unique dans l'image.


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, PECL imagick 3)

Imagick::getImageColorspace — Lit l'espace de couleurs de l'image

Description

public Imagick::getImageColorspace(): int

Lit l'espace de couleurs de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un entier qui peut être comparé aux contantes COLORSPACE.


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, PECL imagick 3)

Imagick::getImageCompose — Retourne l'opérateur de composition associé à une image

Description

public Imagick::getImageCompose(): int

Retourne l'opérateur de composition associé à une image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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 3 >= 3.3.0)

Imagick::getImageCompression — Lit le type de compression de l'image

Description

public Imagick::getImageCompression(): int

Lit le type de compression de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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.2, PECL imagick 3)

Imagick::getImageCompressionQuality — Lit la qualité de compression de l'image

Description

public Imagick::getImageCompressionQuality(): int

Lit la qualité de compression de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getImageDelay — Lit le délai de l'image

Description

public Imagick::getImageDelay(): int

Lit le délai de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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 2, PECL imagick 3)

Imagick::getImageDepth — Lit la profondeur de l'image

Description

public Imagick::getImageDepth(): int

Lit la profondeur de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getImageDispose — Lit la méthode de récupération

Description

public Imagick::getImageDispose(): int

Lit la méthode de récupération.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getImageDistortion — Compare une image à une image reconstituée

Description

public Imagick::getImageDistortion(MagickWand $reference, int $metric): float

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, PECL imagick 3)

Imagick::getImageExtrema — Lit les extrêmes d'une image

Avertissement

Cette fonction est OBSOLÈTE à partir de Imagick 3.4.4. Dépendre de cette fonctionnalité est fortement déconseillé.

Description

public Imagick::getImageExtrema(): array

Lit les extrêmes d'une image. Retourne un tableau associatif, avec les clés "min" et "max".

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getImageFilename — Retourne le nom d'un fichier pour une image dans une séquence

Description

public Imagick::getImageFilename(): string

Retourne le nom d'un fichier pour une image dans une séquence.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getImageFormat — Retourne le format d'une image dans une séquence

Description

public Imagick::getImageFormat(): string

Retourne le format d'une image dans une séquence.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getImageGamma — Lit le gamma de l'image

Description

public Imagick::getImageGamma(): float

Lit 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

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, PECL imagick 3)

Imagick::getImageGeometry — Lit les dimensions de l'image dans un tableau

Description

public Imagick::getImageGeometry(): array

Retourne la largeur et la hauteur de l'image sous forme de tableau associatif.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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 Utilisation de Imagick::getImageGeometry()

<?php
$imagick = new Imagick();
$imagick->newImage(100, 200, "black");
print_r($imagick->getImageGeometry());
?>

L'exemple ci-dessus va afficher :

Array
(
    [width] => 100
    [height] => 200
)


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

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::getImageGravity — Récupère la gravité de l'image

Description

public Imagick::getImageGravity(): int

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getImageGreenPrimary — Retourne la chromacité de la couleur verte

Description

public Imagick::getImageGreenPrimary(): array
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Retourne la chromacité de la couleur verte. Retourne un tableau avec les clés "x" et "y".

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getImageHeight — Retourne la hauteur de l'image

Description

public Imagick::getImageHeight(): int

Retourne 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

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, PECL imagick 3)

Imagick::getImageHistogram — Retourne l'histogramme de l'image

Description

public Imagick::getImageHistogram(): array

Retourne l'histogramme de l'image, sous forme d'un tableau d'objets ImagickPixel.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getImageIndex — Lit l'index de l'image courante

Avertissement

Cette fonction est OBSOLÈTE à partir de Imagick 3.4.4. Dépendre de cette fonctionnalité est fortement déconseillé.

Description

public Imagick::getImageIndex(): int

Retourne l'index de l'image courante dans la séquence Imagick. Cette méthode est obsolète. Reportez-vous à la fonction Imagick::getIteratorIndex().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getImageInterlaceScheme — Lit le schéma d'entrelacement de l'image

Description

public Imagick::getImageInterlaceScheme(): int

Lit 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 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, PECL imagick 3)

Imagick::getImageInterpolateMethod — Retourne la méthode d'interpolation

Description

public Imagick::getImageInterpolateMethod(): int

Retourne la méthode d'interpolation de l'image spécifiée. La méthode est une des constantes Imagick::INTERPOLATE_*.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getImageIterations — Lit les itérations de l'image

Description

public Imagick::getImageIterations(): int

Lit 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.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Retourne la taille de l'image en octets

  • « Imagick::getImageIterations
  • Imagick::getImageMatte »
  • PHP Manual
  • Imagick
  • Retourne la taille de l'image en octets

Imagick::getImageLength

(PECL imagick 2, PECL imagick 3)

Imagick::getImageLength — Retourne la taille de l'image en octets

Description

public Imagick::getImageLength(): int

Retourne la taille de l'image en octets.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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';
?>


Indique si l'image a un canal mat

  • « Imagick::getImageLength
  • Imagick::getImageMatteColor »
  • PHP Manual
  • Imagick
  • Indique si l'image a un canal mat

Imagick::getImageMatte

(PECL imagick 2, PECL imagick 3)

Imagick::getImageMatte — Indique si l'image a un canal mat

Avertissement

Cette fonction est OBSOLÈTE à partir de Imagick 3.4.4. Dépendre de cette fonctionnalité est fortement déconseillé.

Description

public Imagick::getImageMatte(): bool

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true en cas de succès.


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, PECL imagick 3)

Imagick::getImageMatteColor — Retourne la couleur mate de l'image

Avertissement

Cette fonction est OBSOLÈTE à partir de Imagick 3.4.4. Dépendre de cette fonctionnalité est fortement déconseillé.

Description

public Imagick::getImageMatteColor(): ImagickPixel

Retourne la couleur mate de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet ImagickPixel en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Returns the image mime-type

  • « Imagick::getImageMatteColor
  • Imagick::getImageOrientation »
  • PHP Manual
  • Imagick
  • Returns the image mime-type

Imagick::getImageMimeType

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::getImageMimeType — Returns the image mime-type

Description

public Imagick::getImageMimeType(): string

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, PECL imagick 3)

Imagick::getImageOrientation — Lit l'orientation de l'image

Description

public Imagick::getImageOrientation(): int

Lit l'orientation de l'image. La valeur retournée est une des constantes d'orientation.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getImagePage — Retourne la géométrie de la page

Description

public Imagick::getImagePage(): array

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".

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getImagePixelColor — Retourne la couleur d'un pixel

Description

public Imagick::getImagePixelColor(int $x, int $y): ImagickPixel

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, PECL imagick 3)

Imagick::getImageProfile — Retourne un profil d'une image

Description

public Imagick::getImageProfile(string $name): string

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, PECL imagick 3)

Imagick::getImageProfiles — Retourne les profils de l'image

Description

public Imagick::getImageProfiles(string $pattern = "*", bool $include_values = true): array

Retourne les profils de l'image qui correspondent à un modèle. Si false 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.

include_values

S'il faut retourner seulement les noms des profils. Si false est fourni, seul le nom des propriétés seront 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, PECL imagick 3)

Imagick::getImageProperties — Retourne les propriétés EXIF de l'image

Description

public Imagick::getImageProperties(string $pattern = "*", bool $include_values = true): array

Retourne toutes les propriétés de l'image, qui satisfont un modèle. Si false 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.

include_values

S'il faut retourner uniquement les noms des propriétés. Si false est fourni, alors seul le noms des propriétés seront 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, PECL imagick 3)

Imagick::getImageProperty — Retourne une propriété d'une image

Description

public Imagick::getImageProperty(string $name): string

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)

Valeurs de retour

Retourne une propriété d'une image, ou false si le nom demandé n'existe pas.

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


Retourne la chromacité du point rouge

  • « Imagick::getImageProperty
  • Imagick::getImageRegion »
  • PHP Manual
  • Imagick
  • Retourne la chromacité du point rouge

Imagick::getImageRedPrimary

(PECL imagick 2, PECL imagick 3)

Imagick::getImageRedPrimary — Retourne la chromacité du point rouge

Description

public Imagick::getImageRedPrimary(): array

Retourne la chromacité du point rouge sous la forme d'un tableau avec les clés "x" et "y".

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getImageRegion — Extrait une région d'une image

Description

public Imagick::getImageRegion(
int $width,
int $height,
int $x,
int $y
): Imagick

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, PECL imagick 3)

Imagick::getImageRenderingIntent — Lit la méthode de rendu de l'image

Description

public Imagick::getImageRenderingIntent(): int

Lit la méthode de rendu de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getImageResolution — Lit les résolutions en X et Y d'une image

Description

public Imagick::getImageResolution(): array

Lit les résolutions en X et Y d'une image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getImagesBlob — Retourne toutes les images de la séquence en un BLOB

Description

public Imagick::getImagesBlob(): string

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().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getImageScene — Retourne la scène de l'image

Description

public Imagick::getImageScene(): int

Retourne 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

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, PECL imagick 3)

Imagick::getImageSignature — Génère une signature SHA-256

Description

public Imagick::getImageSignature(): string

Génère une signature SHA-256 de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getImageSize — Retourne la taille de l'image en octets

Avertissement

Cette fonction est OBSOLÈTE à partir de Imagick 3.4.4. Dépendre de cette fonctionnalité est fortement déconseillé.

Description

public Imagick::getImageSize(): int

Retourne la taille de l'image en octets. Cette méthode est obsolète en faveur de la méthode Imagick::getImageLength()

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getImageTicksPerSecond — Lit les ticks-par-seconde de l'image

Description

public Imagick::getImageTicksPerSecond(): int

Lit les ticks-par-seconde de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getImageTotalInkDensity — Lit la densité totale d'encre de l'image

Description

public Imagick::getImageTotalInkDensity(): float

Lit la densité totale d'encre de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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 2, PECL imagick 3)

Imagick::getImageType — Lit le type possible d'image

Description

public Imagick::getImageType(): int

Retourne le type possible d'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getImageUnits — Retourne les unités de résolution de l'image

Description

public Imagick::getImageUnits(): int

Retourne les unités de résolution de l'image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getImageVirtualPixelMethod — Retourne la méthode du pixel virtuel

Description

public Imagick::getImageVirtualPixelMethod(): int

Retourne la méthode du pixel virtuel pour l'image spécifiée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getImageWhitePoint — Retourne la chromacité du point blanc

Description

public Imagick::getImageWhitePoint(): array

Retourne la chromacité du point blanc, sous la forme d'un tableau associatif avec les clés "x" et "y".

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getImageWidth — Retourne la largeur de l'image

Description

public Imagick::getImageWidth(): int

Retourne 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

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, PECL imagick 3)

Imagick::getInterlaceScheme — Lit le schéma d'entrelacement de l'objet

Description

public Imagick::getInterlaceScheme(): int

Lit le schéma d'entrelacement de l'objet.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getIteratorIndex — Lit l'index de l'image active courante

Description

public Imagick::getIteratorIndex(): int

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getNumberImages — Retourne le nombre d'images d'un objet

Description

public Imagick::getNumberImages(): int

Retourne le nombre d'image d'un objet Imagick.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getOption — Retourne la valeur d'une option

Description

public Imagick::getOption(string $key): string
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

Imagick::getPackageName — Retourne le nom du paquet ImageMagick

Description

public static Imagick::getPackageName(): string

Retourne le nom du paquet ImageMagick.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getPage — Retourne la géométrie de la page

Description

public Imagick::getPage(): array

Retourne la géométrie de l'objet Imagick, sous forme d'un tableau associatif, avec les clés "width", "height", "x" et "y".

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getPixelIterator — Retourne un MagickPixelIterator

Description

public Imagick::getPixelIterator(): ImagickPixelIterator

Retourne un MagickPixelIterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getPixelRegionIterator — Lit un objet ImagickPixelIterator pour une section d'image

Description

public Imagick::getPixelRegionIterator(
int $x,
int $y,
int $columns,
int $rows
): ImagickPixelIterator
Avertissement

Cette fonction est actuellement non documentée ; 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

(PECL imagick 2 >= 2.1.0, PECL imagick 3)

Imagick::getPointSize — Récupère la taille du point

Description

public Imagick::getPointSize(): float

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un nombre décimal contenant la taille du point.

Voir aussi

  • Imagick::setPointSize() - Définit la taille du point


Returns the ImageMagick quantum range

  • « Imagick::getPointSize
  • Imagick::getQuantumDepth »
  • PHP Manual
  • Imagick
  • Returns the ImageMagick quantum range

Imagick::getQuantum

(PECL imagick 3 >= 3.3.0)

Imagick::getQuantum — Returns the ImageMagick quantum range

Description

public static Imagick::getQuantum(): int

Returns the ImageMagick quantum range. If HDRI was enabled then the type is a float, if not it is an int.

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, PECL imagick 3)

Imagick::getQuantumDepth — Lit la profondeur quantique

Description

public static Imagick::getQuantumDepth(): array
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Retourne la profondeur quantique.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau avec les membres "quantumDepthLong" et "quantumDepthString".

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, PECL imagick 3)

Imagick::getQuantumRange — Retourne l'intervalle quantique de Imagick

Description

public static Imagick::getQuantumRange(): array

Retourne l'intervalle quantique de l'instance Imagick.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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.


Get a StringRegistry entry

  • « Imagick::getQuantumRange
  • Imagick::getReleaseDate »
  • PHP Manual
  • Imagick
  • Get a StringRegistry entry

Imagick::getRegistry

(PECL imagick 3 >= 3.3.0)

Imagick::getRegistry — Get a StringRegistry entry

Description

public static Imagick::getRegistry(string $key): string

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, PECL imagick 3)

Imagick::getReleaseDate — Retourne la date de publication de ImageMagick

Description

public static Imagick::getReleaseDate(): string

Retourne la date de publication de ImageMagick, sous forme de chaîne.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getResource — Retourne la consommation de mémoire de la ressource

Description

public static Imagick::getResource(int $type): int

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, PECL imagick 3)

Imagick::getResourceLimit — Retourne la limite de la ressource

Description

public static Imagick::getResourceLimit(int $type): int

Retourne la limite de la ressource.

Liste de paramètres

type

L'une des constantes de type de ressources. L'unité dépend du type de la ressource à limiter.

Valeurs de retour

Retourne la limite de la ressource spécifiée, en megaoctets.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Voir aussi

  • Imagick::setResourceLimit() - Définit la limite pour une ressource particulière


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, PECL imagick 3)

Imagick::getSamplingFactors — Lit le facteur d'échantillonnage horizontal et vertical

Description

public Imagick::getSamplingFactors(): array

Lit 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 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, PECL imagick 3)

Imagick::getSize — Retourne la taille associée avec un objet Imagick

Description

public Imagick::getSize(): array

Obtenir la taille associée avec un objet Imagick, précédemment défini par Imagick::setSize().

Note:

Cette méthode retourne simplement la taille qui a été définie à l'aide de Imagick::setSize(). Si vous souhaitez obtenir la largeur/hauteur réelle de l'image, utilisez Imagick::getImageWidth() et Imagick::getImageHeight().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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).

Exemples

Exemple #1 Obtention de la taille d'une image RVB brute définie à 200x400, après mise à l'échelle à 400x800 (par rapport à la largeur/hauteur)

<?php
//Set size first and then load the raw image
$img = new Imagick();
$img->setSize(200, 400);
$img->readImage("image.rgb");

$img->scaleImage(400, 800);

$size = $img->getSize();
print_r($size);

echo $img->getImageWidth()."x".$img->getImageHeight();
?>

L'exemple ci-dessus va afficher :

Array
(
    [columns] => 200
    [rows] => 400
)
400x800


Retourne la taille de la position

  • « Imagick::getSize
  • Imagick::getVersion »
  • PHP Manual
  • Imagick
  • Retourne la taille de la position

Imagick::getSizeOffset

(PECL imagick 2, PECL imagick 3)

Imagick::getSizeOffset — Retourne la taille de la position

Description

public Imagick::getSizeOffset(): int

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::getVersion — Retourne l'API de ImageMagick API

Description

public static Imagick::getVersion(): array

Retourne la version de l'APIImageMagick API, sous forme de chaîne et de nombre.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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

(PECL imagick 3)

Imagick::haldClutImage — Remplace les couleurs de l'image

Description

public Imagick::haldClutImage(Imagick $clut, int $channel = Imagick::CHANNEL_DEFAULT): bool

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, PECL imagick 3)

Imagick::hasNextImage — Vérifie si un objet a une image suivante

Description

public Imagick::hasNextImage(): bool

Retourne true si l'objet a encore des images, pour passer en revue la liste.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::hasPreviousImage — Vérifie si un objet a une image précédente

Description

public Imagick::hasPreviousImage(): bool

Retourne true si l'objet a une image précédente, pour pouvoir passer en revue la liste en ordre inverse.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true si l'objet a une image précédente, et false sinon.


Formats a string with image details

  • « Imagick::hasPreviousImage
  • Imagick::identifyImage »
  • PHP Manual
  • Imagick
  • Formats a string with image details

Imagick::identifyFormat

(PECL imagick 3 >= 3.3.0)

Imagick::identifyFormat — Formats a string with image details

Description

public Imagick::identifyFormat(string $embedText): string|false

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

Returns format ou false si une erreur survient.

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, PECL imagick 3)

Imagick::identifyImage — Identifie une image et lit ses attributs

Description

public Imagick::identifyImage(bool $appendRawOutput = false): array

Identifie une image et retourne ses attributs. Les attributs sont sa largeur, hauteur, taille et d'autres.

Liste de paramètres

appendRawOutput

Si true, la sortie brute est ajoutée au tableau

Valeurs de retour

Identifie une image et retourne ses attributs. Les attributs sont sa largeur, hauteur, taille et d'autres.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

Exemples

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
)


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, PECL imagick 3)

Imagick::implodeImage — Crée une nouvelle copie d'image

Description

public Imagick::implodeImage(float $radius): bool

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

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::importImagePixels — Importe des pixels dans une image

Description

public Imagick::importImagePixels(
int $x,
int $y,
int $width,
int $height,
string $map,
int $storage,
array $pixels
): bool

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;

?>

Résultat de l'exemple ci-dessus est similaire à :

Sortie de l'exemple : Imagick::importImagePixels()


Implements the inverse discrete Fourier transform (DFT)

  • « Imagick::importImagePixels
  • Imagick::labelImage »
  • PHP Manual
  • Imagick
  • Implements the inverse discrete Fourier transform (DFT)

Imagick::inverseFourierTransformImage

(PECL imagick 3 >= 3.3.0)

Imagick::inverseFourierTransformImage — Implements the inverse discrete Fourier transform (DFT)

Description

public Imagick::inverseFourierTransformImage(Imagick $complement, bool $magnitude): bool

Implements the inverse discrete Fourier transform (DFT) of the image either as a magnitude / phase or real / imaginary image pair.

Avertissement

Cette fonction est actuellement non documentée ; 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

Retourne true en cas de succès.


Ajoute un libelle à une image

  • « Imagick::inverseFourierTransformImage
  • Imagick::levelImage »
  • PHP Manual
  • Imagick
  • Ajoute un libelle à une image

Imagick::labelImage

(PECL imagick 2, PECL imagick 3)

Imagick::labelImage — Ajoute un libelle à une image

Description

public Imagick::labelImage(string $label): bool

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, PECL imagick 3)

Imagick::levelImage — Ajuste les niveaux de l'image

Description

public Imagick::levelImage(
float $blackPoint,
float $gamma,
float $whitePoint,
int $channel = Imagick::CHANNEL_DEFAULT
): bool

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, PECL imagick 3)

Imagick::linearStretchImage — Étire la saturation de l'intensité de l'image

Description

public Imagick::linearStretchImage(float $blackPoint, float $whitePoint): bool

É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

(PECL imagick 2 >= 2.2.0, PECL imagick 3)

Imagick::liquidRescaleImage — Anime une ou plusieurs images

Description

public Imagick::liquidRescaleImage(
int $width,
int $height,
float $delta_x,
float $rigidity
): bool

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


List all the registry settings

  • « Imagick::liquidRescaleImage
  • Imagick::magnifyImage »
  • PHP Manual
  • Imagick
  • List all the registry settings

Imagick::listRegistry

(PECL imagick 3 >= 3.3.0)

Imagick::listRegistry — List all the registry settings

Description

public static Imagick::listRegistry(): array

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, PECL imagick 3)

Imagick::magnifyImage — Double la taille d'une image, proportionnellement

Description

public Imagick::magnifyImage(): bool

Cette méthode est un raccourci pour doubler la taille d'une image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::mapImage — Remplace la couleur d'une image par celle d'une image de référence

Avertissement

Cette fonction est OBSOLÈTE à partir de Imagick 3.4.4. Dépendre de cette fonctionnalité est fortement déconseillé.

Description

public Imagick::mapImage(Imagick $map, bool $dither): bool

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, PECL imagick 3)

Imagick::matteFloodfillImage — Change la transparence d'une couleur

Avertissement

Cette fonction est OBSOLÈTE à partir de Imagick 3.4.4. Dépendre de cette fonctionnalité est fortement déconseillé.

Description

public Imagick::matteFloodfillImage(
float $alpha,
float $fuzz,
mixed $bordercolor,
int $x,
int $y
): bool

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
PECL imagick 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, PECL imagick 3)

Imagick::medianFilterImage — Applique un filtre numérique

Avertissement

Cette fonction est OBSOLÈTE à partir de Imagick 3.4.4. Dépendre de cette fonctionnalité est fortement déconseillé.

Description

public Imagick::medianFilterImage(float $radius): bool

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 >= 2.1.0, PECL imagick 3)

Imagick::mergeImageLayers — Fusionne les calques de l'image

Description

public Imagick::mergeImageLayers(int $layer_method): Imagick

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.

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();
}

?>

Voir aussi

  • Imagick::flattenImages() - Fusionne une séquence d'images


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, PECL imagick 3)

Imagick::minifyImage — Met à l'échelle une image proportionnellement pour la réduire de moitié de taille

Description

public Imagick::minifyImage(): bool

Cette fonction est un raccourci pratique pour mettre à l'échelle une image proportionnellement pour la réduire de moitié de taille.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::modulateImage — Contrôle la saturation, l'intensité et la teinte

Description

public Imagick::modulateImage(float $brightness, float $saturation, float $hue): bool

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, PECL imagick 3)

Imagick::montageImage — Crée une image composite

Description

public Imagick::montageImage(
ImagickDraw $draw,
string $tile_geometry,
string $thumbnail_geometry,
int $mode,
string $frame
): Imagick

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

Crée une image composé et la retourne en tant que nouvel object Imagick.


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, PECL imagick 3)

Imagick::morphImages — Réalise un morphing entre deux images

Description

public Imagick::morphImages(int $number_frames): Imagick

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.


Applies a user supplied kernel to the image according to the given morphology method.

  • « Imagick::morphImages
  • Imagick::mosaicImages »
  • PHP Manual
  • Imagick
  • Applies a user supplied kernel to the image according to the given morphology method.

Imagick::morphology

(PECL imagick 3 >= 3.3.0)

Imagick::morphology — Applies a user supplied kernel to the image according to the given morphology method.

Description

public Imagick::morphology(
int $morphologyMethod,
int $iterations,
ImagickKernel $ImagickKernel,
int $channel = Imagick::CHANNEL_DEFAULT
): bool

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

Retourne true en cas de succès.

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 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 function to get an image silhouette Imagick::morphology()

<?php
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, PECL imagick 3)

Imagick::mosaicImages — Forme une mosaïque d'images

Avertissement

Cette fonction est OBSOLÈTE à partir de Imagick 3.4.4. Dépendre de cette fonctionnalité est fortement déconseillé.

Description

public Imagick::mosaicImages(): Imagick

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::motionBlurImage — Ajout un flou de déplacement

Description

public Imagick::motionBlurImage(
float $radius,
float $sigma,
float $angle,
int $channel = Imagick::CHANNEL_DEFAULT
): bool

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, PECL imagick 3)

Imagick::negateImage — Effectue la négation des couleurs d'une image de référence

Description

public Imagick::negateImage(bool $gray, int $channel = Imagick::CHANNEL_DEFAULT): bool

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, PECL imagick 3)

Imagick::newImage — Crée une nouvelle image

Description

public Imagick::newImage(
int $cols,
int $rows,
mixed $background,
string $format = ?
): bool

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
PECL imagick 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, PECL imagick 3)

Imagick::newPseudoImage — Crée une nouvelle image

Description

public Imagick::newPseudoImage(int $columns, int $rows, string $pseudoString): bool

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, PECL imagick 3)

Imagick::nextImage — Passe à la prochaine image

Description

public Imagick::nextImage(): bool

Passe à la prochaine image dans la liste de l'objet Imagick.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::normalizeImage — Améliore le contraste de l'image

Description

public Imagick::normalizeImage(int $channel = Imagick::CHANNEL_DEFAULT): bool

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, PECL imagick 3)

Imagick::oilPaintImage — Simule une peinture à l'huile

Description

public Imagick::oilPaintImage(float $radius): bool

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

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::opaquePaintImage — Modifie la valeur de la couleur de tous les pixels correspondant à la cible

Description

public Imagick::opaquePaintImage(
mixed $target,
mixed $fill,
float $fuzz,
bool $invert,
int $channel = Imagick::CHANNEL_DEFAULT
): bool

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, PECL imagick 3)

Imagick::optimizeImageLayers — Supprime les portions récurrents d'images à optimiser

Description

public Imagick::optimizeImageLayers(): bool

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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.2, PECL imagick 3)

Imagick::orderedPosterizeImage — Effectue un dither ordonné

Avertissement

Cette fonction est OBSOLÈTE à partir de Imagick 3.4.4. Dépendre de cette fonctionnalité est fortement déconseillé.

Description

public Imagick::orderedPosterizeImage(string $threshold_map, int $channel = Imagick::CHANNEL_DEFAULT): bool

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, PECL imagick 3)

Imagick::colorFloodfillImage — Change les pixels qui sont d'une couleur

Avertissement

Cette fonction est OBSOLÈTE à partir de Imagick 3.4.4. Dépendre de cette fonctionnalité est fortement déconseillé.

Description

public Imagick::paintFloodfillImage(
mixed $fill,
float $fuzz,
mixed $bordercolor,
int $x,
int $y,
int $channel = Imagick::CHANNEL_DEFAULT
): bool

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, PECL imagick 3)

Imagick::paintOpaqueImage — Change les pixels qui sont d'une couleur

Avertissement

Cette fonction est OBSOLÈTE à partir de Imagick 3.4.4. Dépendre de cette fonctionnalité est fortement déconseillé.

Description

public Imagick::paintOpaqueImage(
mixed $target,
mixed $fill,
float $fuzz,
int $channel = Imagick::CHANNEL_DEFAULT
): bool

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
PECL imagick 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, PECL imagick 3)

Imagick::paintTransparentImage — Remplit les pixels avec une couleur

Avertissement

Cette fonction est OBSOLÈTE à partir de Imagick 3.4.4. Dépendre de cette fonctionnalité est fortement déconseillé.

Description

public Imagick::paintTransparentImage(mixed $target, float $alpha, float $fuzz): bool

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
PECL imagick 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, PECL imagick 3)

Imagick::pingImage — Lit des attributs simples sans ouvrir une image

Description

public Imagick::pingImage(string $filename): bool

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, PECL imagick 3)

Imagick::pingImageBlob — Lit rapidement les attributs

Description

public Imagick::pingImageBlob(string $image): bool

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, PECL imagick 3)

Imagick::pingImageFile — Lit les attributs simples d'une image

Description

public Imagick::pingImageFile(resource $filehandle, string $fileName = ?): bool

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, PECL imagick 3)

Imagick::polaroidImage — Simule une photo Polaroid

Description

public Imagick::polaroidImage(ImagickDraw $properties, float $angle): bool

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, PECL imagick 3)

Imagick::posterizeImage — Réduit une image à un nombre limité de couleurs

Description

public Imagick::posterizeImage(int $levels, bool $dither): bool

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, PECL imagick 3)

Imagick::previewImages — Teste rapidement différents paramètres pour un traitement d'images

Description

public Imagick::previewImages(int $preview): bool

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, PECL imagick 3)

Imagick::previousImage — Passe à l'image précédente dans une séquence d'images

Description

public Imagick::previousImage(): bool

Passe à l'image précédente dans une séquence d'images Imagick.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::profileImage — Ajoute ou retire un profil d'une image

Description

public Imagick::profileImage(string $name, ?string $profile): bool

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, PECL imagick 3)

Imagick::quantizeImage — Analyse les couleurs dans une référence d'image

Description

public Imagick::quantizeImage(
int $numberColors,
int $colorspace,
int $treedepth,
bool $dither,
bool $measureError
): bool

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, PECL imagick 3)

Imagick::quantizeImages — Analyse les couleurs d'une séquence d'images

Description

public Imagick::quantizeImages(
int $numberColors,
int $colorspace,
int $treedepth,
bool $dither,
bool $measureError
): bool

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, PECL imagick 3)

Imagick::queryFontMetrics — Retourne un tableau représentant les dimensions de la police

Description

public Imagick::queryFontMetrics(ImagickDraw $properties, string $text, bool $multiline = ?): array

Retourne un tableau multidimensionnel 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, PECL imagick 3)

Imagick::queryFonts — Retourne la liste de polices configurés

Description

public static Imagick::queryFonts(string $pattern = "*"): array

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, PECL imagick 3)

Imagick::queryFormats — Retourne les formats supportés par Imagick

Description

public static Imagick::queryFormats(string $pattern = "*"): array

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, PECL imagick 3)

Imagick::radialBlurImage — Flou radial d'une image

Avertissement

Cette fonction est OBSOLÈTE à partir de Imagick 3.4.4. Dépendre de cette fonctionnalité est fortement déconseillé.

Description

public Imagick::radialBlurImage(float $angle, int $channel = Imagick::CHANNEL_DEFAULT): bool

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, PECL imagick 3)

Imagick::raiseImage — Crée un effet 3D de bouton

Description

public Imagick::raiseImage(
int $width,
int $height,
int $x,
int $y,
bool $raise
): bool

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, PECL imagick 3)

Imagick::randomThresholdImage — Crée une image en deux couleurs, à haut contraste

Description

public Imagick::randomThresholdImage(float $low, float $high, int $channel = Imagick::CHANNEL_DEFAULT): bool

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 2, PECL imagick 3)

Imagick::readImage — Lit une image depuis un fichier

Description

public Imagick::readImage(string $filename): bool

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, PECL imagick 3)

Imagick::readImageBlob — Lit une image depuis une chaîne binaire

Description

public Imagick::readImageBlob(string $image, string $filename = ?): bool

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 $imagick;
}

?>


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, PECL imagick 3)

Imagick::readImageFile — Lit une image à partir d'une ressource fichier

Description

public Imagick::readImageFile(resource $filehandle, string $fileName = null): bool

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.


Reads image from an array of filenames

  • « Imagick::readImageFile
  • Imagick::recolorImage »
  • PHP Manual
  • Imagick
  • Reads image from an array of filenames

Imagick::readimages

(PECL imagick 2, PECL imagick 3)

Imagick::readimages — Reads image from an array of filenames

Description

public Imagick::readImages(array $filenames): bool

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

Retourne true en cas de succès.


Recolore l'image

  • « Imagick::readimages
  • Imagick::reduceNoiseImage »
  • PHP Manual
  • Imagick
  • Recolore l'image

Imagick::recolorImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::recolorImage — Recolore l'image

Avertissement

Cette fonction est OBSOLÈTE à partir de Imagick 3.4.4. Dépendre de cette fonctionnalité est fortement déconseillé.

Description

public Imagick::recolorImage(array $matrix): bool

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.

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();
}

?>

Voir aussi

  • Imagick::displayImage() - Affiche une image


Adoucit les contours d'une image

  • « Imagick::recolorImage
  • Imagick::remapImage »
  • PHP Manual
  • Imagick
  • Adoucit les contours d'une image

Imagick::reduceNoiseImage

(PECL imagick 2, PECL imagick 3)

Imagick::reduceNoiseImage — Adoucit les contours d'une image

Avertissement

Cette fonction est OBSOLÈTE à partir de Imagick 3.4.4. Dépendre de cette fonctionnalité est fortement déconseillé.

Description

public Imagick::reduceNoiseImage(float $radius): bool

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

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::remapImage — Reconfigure les couleurs de l'image

Description

public Imagick::remapImage(Imagick $replacement, int $DITHER): bool

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, PECL imagick 3)

Imagick::removeImage — Retire une image de la liste

Description

public Imagick::removeImage(): bool

Retire une image de la liste.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::removeImageProfile — Supprime le profil de l'image et le retourne

Description

public Imagick::removeImageProfile(string $name): string

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, PECL imagick 3)

Imagick::render — Affiche toute les commandes de dessins précédentes

Description

public Imagick::render(): bool

Affiche toute les commandes de dessins précédentes.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::resampleImage — Rééchantillonne l'image

Description

public Imagick::resampleImage(
float $x_resolution,
float $y_resolution,
int $filter,
float $blur
): bool

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

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::resetImagePage — Réinitialise la page de l'image

Description

public Imagick::resetImagePage(string $page): bool

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, PECL imagick 3)

Imagick::resizeImage — Redimensionne une image

Description

public Imagick::resizeImage(
int $columns,
int $rows,
int $filter,
float $blur,
bool $bestfit = false,
bool $legacy = false
): bool

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
PECL imagick 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ù > 1 correspond à totalement flou, et < 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, PECL imagick 3)

Imagick::rollImage — Décale une image

Description

public Imagick::rollImage(int $x, int $y): bool

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, PECL imagick 3)

Imagick::rotateImage — Tourne une image

Description

public Imagick::rotateImage(mixed $background, float $degrees): bool

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
PECL imagick 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();
}

?>


Rotational blurs an image

  • « Imagick::rotateImage
  • Imagick::roundCorners »
  • PHP Manual
  • Imagick
  • Rotational blurs an image

Imagick::rotationalBlurImage

(PECL imagick 3 >= 3.3.0)

Imagick::rotationalBlurImage — Rotational blurs an image

Description

public Imagick::rotationalBlurImage(float $angle, int $channel = Imagick::CHANNEL_DEFAULT): bool

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

Retourne true en cas de succès.

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, PECL imagick 3)

Imagick::roundCorners — Arrondit les coins d'un image

Avertissement

Cette fonction est OBSOLÈTE à partir de Imagick 3.4.4. Dépendre de cette fonctionnalité est fortement déconseillé.

Description

public Imagick::roundCorners(
float $x_rounding,
float $y_rounding,
float $stroke_width = 10,
float $displace = 5,
float $size_correction = -6
): bool

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. Cette méthode n'est pas disponible si Imagick a été compilé avec ImageMagick version 7.0.0 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

Valeurs de retour

Retourne true en cas de succès.

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");
?>


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, PECL imagick 3)

Imagick::sampleImage — Met à l'échelle une image avec échantillonnage de pixels

Description

public Imagick::sampleImage(int $columns, int $rows): bool

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, PECL imagick 3)

Imagick::scaleImage — Met à l'échelle la taille de l'image

Description

public Imagick::scaleImage(
int $columns,
int $rows,
bool $bestfit = false,
bool $legacy = false
): bool

Met à l'échelle la taille de l'image, aux dimensions voulues. Dans le cas où l'un des paramètres est égale à 0, il sera automatiquement calculé.

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

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
PECL imagick 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

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::segmentImage — Segmente une image

Description

public Imagick::segmentImage(
int $COLORSPACE,
float $cluster_threshold,
float $smooth_threshold,
bool $verbose = false
): bool

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);

?>


Selectively blur an image within a contrast threshold

  • « Imagick::segmentImage
  • Imagick::separateImageChannel »
  • PHP Manual
  • Imagick
  • Selectively blur an image within a contrast threshold

Imagick::selectiveBlurImage

(PECL imagick 3 >= 3.3.0)

Imagick::selectiveBlurImage — Selectively blur an image within a contrast threshold

Description

public Imagick::selectiveBlurImage(
float $radius,
float $sigma,
float $threshold,
int $channel = Imagick::CHANNEL_DEFAULT
): bool

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

Retourne true en cas de succès.

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, PECL imagick 3)

Imagick::separateImageChannel — Sépare un canal d'une image

Description

public Imagick::separateImageChannel(int $channel): bool

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, PECL imagick 3)

Imagick::sepiaToneImage — Passe une image en tons sépia

Description

public Imagick::sepiaToneImage(float $threshold): bool

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, PECL imagick 3)

Imagick::setBackgroundColor — Configure la couleur de fond par défaut

Description

public Imagick::setBackgroundColor(mixed $background): bool

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
PECL imagick 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

(PECL imagick 3)

Imagick::setColorspace — Définit l'espace de couleurs

Description

public Imagick::setColorspace(int $COLORSPACE): bool

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, PECL imagick 3)

Imagick::setCompression — Configure le type de compression de l'objet

Description

public Imagick::setCompression(int $compression): bool

Configure le type de compression de l'objet.

Liste de paramètres

compression

Le type de compression. Voir les constantes Imagick::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 2, PECL imagick 3)

Imagick::setCompressionQuality — Configure la compression par défaut de l'objet

Description

public Imagick::setCompressionQuality(int $quality): bool

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

Un entier entre 1 et 100, 1 = compression élevé, 100 compression faible.

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, PECL imagick 3)

Imagick::setFilename — Configure le nom du fichier d'image avant d'y accéder

Description

public Imagick::setFilename(string $filename): bool

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, PECL imagick 3)

Imagick::setFirstIterator — Place l'itérateur de Imagick sur la première image

Description

public Imagick::setFirstIterator(): bool

Place l'itérateur de Imagick sur la première image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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 >= 2.1.0, PECL imagick 3)

Imagick::setFont — Configure la police

Description

public Imagick::setFont(string $font): bool

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.

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 */
?>

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


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, PECL imagick 3)

Imagick::setFormat — Configure le format de l'objet Imagick

Description

public Imagick::setFormat(string $format): bool

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

(PECL imagick 2 >= 2.2.0, PECL imagick 3)

Imagick::setGravity — Définit la gravité

Description

public Imagick::setGravity(int $gravity): bool

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, PECL imagick 3)

Imagick::setImage — Remplace l'image dans l'objet

Description

public Imagick::setImage(Imagick $replace): bool

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

(PECL imagick 2 >= 2.1.0, PECL imagick 3)

Imagick::setImageAlphaChannel — Définit le canal alpha de l'image

Description

public Imagick::setImageAlphaChannel(int $mode): bool

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

(PECL imagick 3)

Imagick::setImageArtifact — Définit l'artefact de l'image

Description

public Imagick::setImageArtifact(string $artifact, string $value): bool

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.

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();
}

?>

Voir aussi

  • Imagick::getImageArtifact() - Récupère l'artefact de l'image
  • Imagick::deleteImageArtifact() - Supprime l'artefact d'une image


Sets an image attribute

  • « Imagick::setImageArtifact
  • Imagick::setImageBackgroundColor »
  • PHP Manual
  • Imagick
  • Sets an image attribute

Imagick::setImageAttribute

(PECL imagick 2, PECL imagick 3)

Imagick::setImageAttribute — Sets an image attribute

Avertissement

Cette fonction est OBSOLÈTE à partir de Imagick 3.4.4. Dépendre de cette fonctionnalité est fortement déconseillé.

Description

public Imagick::setImageAttribute(string $key, string $value): bool

Sets an image attribute.

Liste de paramètres

key

value

Valeurs de retour

Retourne true en cas de succès.


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, PECL imagick 3)

Imagick::setImageBackgroundColor — Configure la couleur de fond d'image

Description

public Imagick::setImageBackgroundColor(mixed $background): bool

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
PECL imagick 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, PECL imagick 3)

Imagick::setImageBias — Configure le biais pour les convolutions

Avertissement

Cette fonction est OBSOLÈTE à partir de Imagick 3.4.4. Dépendre de cette fonctionnalité est fortement déconseillé.

Description

public Imagick::setImageBias(float $bias): bool

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();
}

?>


Sets the image bias

  • « Imagick::setImageBias
  • Imagick::setImageBluePrimary »
  • PHP Manual
  • Imagick
  • Sets the image bias

Imagick::setImageBiasQuantum

(PECL imagick 3 >= 3.3.0)

Imagick::setImageBiasQuantum — Sets the image bias

Avertissement

Cette fonction est OBSOLÈTE à partir de Imagick 3.4.4. Dépendre de cette fonctionnalité est fortement déconseillé.

Description

public Imagick::setImageBiasQuantum(float $bias): void

Sets the image bias. Bias should be scaled with 0 (no adjustment) to 1 (quantum value).

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, PECL imagick 3)

Imagick::setImageBluePrimary — Configure la chromacité du point bleu

Description

public Imagick::setImageBluePrimary(float $x, float $y): bool

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, PECL imagick 3)

Imagick::setImageBorderColor — Configure la couleur de bordure

Description

public Imagick::setImageBorderColor(mixed $border): bool

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
PECL imagick 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, PECL imagick 3)

Imagick::setImageChannelDepth — Configure la profondeur d'un canal

Description

public Imagick::setImageChannelDepth(int $channel, int $depth): bool

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

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::setImageClipMask — Définit le masque du clip de l'image

Avertissement

Cette fonction est OBSOLÈTE à partir de Imagick 3.4.4. Dépendre de cette fonctionnalité est fortement déconseillé.

Description

public Imagick::setImageClipMask(Imagick $clip_mask): bool

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, PECL imagick 3)

Imagick::setImageColormapColor — Configure une couleur de la carte

Description

public Imagick::setImageColormapColor(int $index, ImagickPixel $color): bool

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, PECL imagick 3)

Imagick::setImageColorspace — Configure l'espace de couleurs de l'image

Description

public Imagick::setImageColorspace(int $colorspace): bool

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, PECL imagick 3)

Imagick::setImageCompose — Configure l'opérateur de composition de l'image

Description

public Imagick::setImageCompose(int $compose): bool

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, PECL imagick 3)

Imagick::setImageCompression — Configure la compression de l'image

Description

public Imagick::setImageCompression(int $compression): bool

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

(PECL imagick 2, PECL imagick 3)

Imagick::setImageCompressionQuality — Spécifie la qualité de compression de l'image

Description

public Imagick::setImageCompressionQuality(int $quality): bool

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, PECL imagick 3)

Imagick::setImageDelay — Configure le délai de l'image

Description

public Imagick::setImageDelay(int $delay): bool

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, PECL imagick 3)

Imagick::setImageDepth — Configure la profondeur de l'image

Description

public Imagick::setImageDepth(int $depth): bool

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, PECL imagick 3)

Imagick::setImageDispose — Configure la méthode de récupération

Description

public Imagick::setImageDispose(int $dispose): bool

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, PECL imagick 3)

Imagick::setImageExtent — Configure la taille d'une image

Description

public Imagick::setImageExtent(int $columns, int $rows): bool

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, PECL imagick 3)

Imagick::setImageFilename — Configure le nom de fichier d'une image dans une séquence

Description

public Imagick::setImageFilename(string $filename): bool

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, PECL imagick 3)

Imagick::setImageFormat — Configure le format d'une image dans une séquence

Description

public Imagick::setImageFormat(string $format): bool

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, PECL imagick 3)

Imagick::setImageGamma — Configure la correction gamma

Description

public Imagick::setImageGamma(float $gamma): bool

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

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::setImageGravity — Définit la gravité de l'image

Description

public Imagick::setImageGravity(int $gravity): bool

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, PECL imagick 3)

Imagick::setImageGreenPrimary — Configure la chromacité du point vert

Description

public Imagick::setImageGreenPrimary(float $x, float $y): bool

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, PECL imagick 3)

Imagick::setImageIndex — Modifie la position de l'itérateur

Avertissement

Cette fonction est OBSOLÈTE à partir de Imagick 3.4.4. Dépendre de cette fonctionnalité est fortement déconseillé.

Description

public Imagick::setImageIndex(int $index): bool

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, PECL imagick 3)

Imagick::setImageInterlaceScheme — Configure la méthode d'entrelacement de l'image

Description

public Imagick::setImageInterlaceScheme(int $interlace_scheme): bool

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, PECL imagick 3)

Imagick::setImageInterpolateMethod — Configure la méthode d'interpolation de l'image

Description

public Imagick::setImageInterpolateMethod(int $method): bool

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, PECL imagick 3)

Imagick::setImageIterations — Configure les itérations de l'image

Description

public Imagick::setImageIterations(int $iterations): bool

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, PECL imagick 3)

Imagick::setImageMatte — Configure le canal mate de l'image

Description

public Imagick::setImageMatte(bool $matte): bool

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, PECL imagick 3)

Imagick::setImageMatteColor — Configure la couleur mate

Avertissement

Cette fonction est OBSOLÈTE à partir de Imagick 3.4.4. Dépendre de cette fonctionnalité est fortement déconseillé.

Description

public Imagick::setImageMatteColor(mixed $matte): bool

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
PECL imagick 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, PECL imagick 3)

Imagick::setImageOpacity — Configure le niveau d'opacité de l'image

Avertissement

Cette fonction est OBSOLÈTE à partir de Imagick 3.4.4. Dépendre de cette fonctionnalité est fortement déconseillé.

Description

public Imagick::setImageOpacity(float $opacity): bool

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, PECL imagick 3)

Imagick::setImageOrientation — Configure l'orientation de l'image

Description

public Imagick::setImageOrientation(int $orientation): bool

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, PECL imagick 3)

Imagick::setImagePage — Configure la géométrie de la page de l'image

Description

public Imagick::setImagePage(
int $width,
int $height,
int $x,
int $y
): bool

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, PECL imagick 3)

Imagick::setImageProfile — Ajoute un profil à un objet Imagick

Description

public Imagick::setImageProfile(string $name, string $profile): bool

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, PECL imagick 3)

Imagick::setImageProperty — Configure une propriété d'image

Description

public Imagick::setImageProperty(string $name, string $value): bool

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

Valeurs de retour

Retourne true en cas de succès.

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


Configure la chromacité du point rouge

  • « Imagick::setImageProperty
  • Imagick::setImageRenderingIntent »
  • PHP Manual
  • Imagick
  • Configure la chromacité du point rouge

Imagick::setImageRedPrimary

(PECL imagick 2, PECL imagick 3)

Imagick::setImageRedPrimary — Configure la chromacité du point rouge

Description

public Imagick::setImageRedPrimary(float $x, float $y): bool

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, PECL imagick 3)

Imagick::setImageRenderingIntent — Configure le type de rendu de l'image

Description

public Imagick::setImageRenderingIntent(int $rendering_intent): bool

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, PECL imagick 3)

Imagick::setImageResolution — Configure la résolution de l'image

Description

public Imagick::setImageResolution(float $x_resolution, float $y_resolution): bool

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, PECL imagick 3)

Imagick::setImageScene — Configure la scène de l'image

Description

public Imagick::setImageScene(int $scene): bool

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, PECL imagick 3)

Imagick::setImageTicksPerSecond — Configure le nombre e tick par seconde de l'image

Description

public Imagick::setImageTicksPerSecond(int $ticks_per_second): bool

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, PECL imagick 3)

Imagick::setImageType — Configure le type d'image

Description

public Imagick::setImageType(int $image_type): bool

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, PECL imagick 3)

Imagick::setImageUnits — Configure les unités de résolutions de l'image

Description

public Imagick::setImageUnits(int $units): bool

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, PECL imagick 3)

Imagick::setImageVirtualPixelMethod — Configure la méthode du point virtuel de l'image

Description

public Imagick::setImageVirtualPixelMethod(int $method): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

Imagick::setImageWhitePoint — Configure la chromacité du point blanc

Description

public Imagick::setImageWhitePoint(float $x, float $y): bool

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, PECL imagick 3)

Imagick::setInterlaceScheme — Configure la compression de l'image

Description

public Imagick::setInterlaceScheme(int $interlace_scheme): bool

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, PECL imagick 3)

Imagick::setIteratorIndex — Déplace l'itérateur

Description

public Imagick::setIteratorIndex(int $index): bool

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 >= 2.0.1, PECL imagick 3)

Imagick::setLastIterator — Positionne l'itérateur Imagick à la dernière image

Description

public Imagick::setLastIterator(): bool

Positionne l'itérateur Imagick à la dernière image.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::setOption — Configure une option d'un objet Imagick

Description

public Imagick::setOption(string $key, string $value): bool

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, PECL imagick 3)

Imagick::setPage — Configure la géométrie de la page de l'objet Imagick

Description

public Imagick::setPage(
int $width,
int $height,
int $x,
int $y
): bool

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 >= 2.1.0, PECL imagick 3)

Imagick::setPointSize — Définit la taille du point

Description

public Imagick::setPointSize(float $point_size): bool

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.

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 */
?>

Voir aussi

  • Imagick::getPointSize() - Récupère la taille du point


Set a callback to be called during processing

  • « Imagick::setPointSize
  • Imagick::setRegistry »
  • PHP Manual
  • Imagick
  • Set a callback to be called during processing

Imagick::setProgressMonitor

(PECL imagick 3 >= 3.3.0)

Imagick::setProgressMonitor — Set a callback to be called during processing

Description

public Imagick::setProgressMonitor(callable $callback): bool

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.

callback ( mixed $offset , mixed $span ): bool
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

Retourne true en cas de succès.

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);
}
}

?>


Sets the ImageMagick registry entry named key to value

  • « Imagick::setProgressMonitor
  • Imagick::setResolution »
  • PHP Manual
  • Imagick
  • Sets the ImageMagick registry entry named key to value

Imagick::setRegistry

(PECL imagick 3 >= 3.3.0)

Imagick::setRegistry — Sets the ImageMagick registry entry named key to value

Description

public static Imagick::setRegistry(string $key, string $value): bool

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

Retourne true en cas de succès.


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, PECL imagick 3)

Imagick::setResolution — Configure la résolution de l'image

Description

public Imagick::setResolution(float $x_resolution, float $y_resolution): bool

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


Définit la limite pour une ressource particulière

  • « Imagick::setResolution
  • Imagick::setSamplingFactors »
  • PHP Manual
  • Imagick
  • Définit la limite pour une ressource particulière

Imagick::setResourceLimit

(PECL imagick 2, PECL imagick 3)

Imagick::setResourceLimit — Définit la limite pour une ressource particulière

Description

public static Imagick::setResourceLimit(int $type, int $limit): bool

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 de type de ressources.

limit

L'une des constantes de type de ressources. L'unité dépend du type de la ressource à limiter.

Valeurs de retour

Retourne true en cas de succès.

Voir aussi

  • Imagick::getResourceLimit() - Retourne la limite de la ressource


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, PECL imagick 3)

Imagick::setSamplingFactors — Configure les facteurs d'échantillonnage de l'image

Description

public Imagick::setSamplingFactors(array $factors): bool

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, PECL imagick 3)

Imagick::setSize — Configure la taille de l'objet Imagick

Description

public Imagick::setSize(int $columns, int $rows): bool

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, PECL imagick 3)

Imagick::setSizeOffset — Configure la taille et la position de l'objet Imagick

Description

public Imagick::setSizeOffset(int $columns, int $rows, int $offset): bool

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, PECL imagick 3)

Imagick::setType — Configure l'attribut de l'image

Description

public Imagick::setType(int $image_type): bool

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, PECL imagick 3)

Imagick::shadeImage — Crée un effet 3D

Description

public Imagick::shadeImage(bool $gray, float $azimuth, float $elevation): bool

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, PECL imagick 3)

Imagick::shadowImage — Simule une ombre sur l'image

Description

public Imagick::shadowImage(
float $opacity,
float $sigma,
int $x,
int $y
): bool

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, PECL imagick 3)

Imagick::sharpenImage — Aiguise une image

Description

public Imagick::sharpenImage(float $radius, float $sigma, int $channel = Imagick::CHANNEL_DEFAULT): bool

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, PECL imagick 3)

Imagick::shaveImage — Supprime les pixels du bord de l'image

Description

public Imagick::shaveImage(int $columns, int $rows): bool

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, PECL imagick 3)

Imagick::shearImage — Crée un parallélogramme

Description

public Imagick::shearImage(mixed $background, float $x_shear, float $y_shear): bool

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
PECL imagick 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, PECL imagick 3)

Imagick::sigmoidalContrastImage — Ajuste le contraste de l'image

Description

public Imagick::sigmoidalContrastImage(
bool $sharpen,
float $alpha,
float $beta,
int $channel = Imagick::CHANNEL_DEFAULT
): bool

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.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

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;
}

?>


Simule un crayon à main levée

  • « Imagick::sigmoidalContrastImage
  • Imagick::smushImages »
  • PHP Manual
  • Imagick
  • Simule un crayon à main levée

Imagick::sketchImage

(PECL imagick 2, PECL imagick 3)

Imagick::sketchImage — Simule un crayon à main levée

Description

public Imagick::sketchImage(float $radius, float $sigma, float $angle): bool

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();
}

?>


Takes all images from the current image pointer to the end of the image list and smushs them

  • « Imagick::sketchImage
  • Imagick::solarizeImage »
  • PHP Manual
  • Imagick
  • Takes all images from the current image pointer to the end of the image list and smushs them

Imagick::smushImages

(PECL imagick 3 >= 3.3.0)

Imagick::smushImages — Takes all images from the current image pointer to the end of the image list and smushs them

Description

public Imagick::smushImages(bool $stack, int $offset): Imagick

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, PECL imagick 3)

Imagick::solarizeImage — Applique un effet de solarisation à l'image

Description

public Imagick::solarizeImage(int $threshold): bool

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

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::sparseColorImage — Interpole les couleurs

Description

public Imagick::sparseColorImage(int $SPARSE_METHOD, array $arguments, int $channel = Imagick::CHANNEL_DEFAULT): bool

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, PECL imagick 3)

Imagick::spliceImage — Joint une couleur solide dans l'image

Description

public Imagick::spliceImage(
int $width,
int $height,
int $x,
int $y
): bool

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, PECL imagick 3)

Imagick::spreadImage — Bouge aléatoirement chaque pixel d'un bloc

Description

public Imagick::spreadImage(float $radius): bool
Avertissement

Cette fonction est actuellement non documentée ; 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();
}

?>


Modifies image using a statistics function

  • « Imagick::spreadImage
  • Imagick::steganoImage »
  • PHP Manual
  • Imagick
  • Modifies image using a statistics function

Imagick::statisticImage

(PECL imagick 3 >= 3.3.0)

Imagick::statisticImage — Modifies image using a statistics function

Description

public Imagick::statisticImage(
int $type,
int $width,
int $height,
int $channel = Imagick::CHANNEL_DEFAULT
): bool

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

Retourne true en cas de succès.

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, PECL imagick 3)

Imagick::steganoImage — Cache un filigrane digital dans l'image

Description

public Imagick::steganoImage(Imagick $watermark_wand, int $offset): Imagick

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, PECL imagick 3)

Imagick::stereoImage — Fusionne 2 images

Description

public Imagick::stereoImage(Imagick $offset_wand): bool

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, PECL imagick 3)

Imagick::stripImage — Supprime d'une image tous les profiles et les commentaires

Description

public Imagick::stripImage(): bool

Supprime d'une image tous les profiles et les commentaires.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true en cas de succès.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.


Searches for a subimage in the current image and returns a similarity image

  • « Imagick::stripImage
  • Imagick::swirlImage »
  • PHP Manual
  • Imagick
  • Searches for a subimage in the current image and returns a similarity image

Imagick::subImageMatch

(PECL imagick 3 >= 3.3.0)

Imagick::subImageMatch — Searches for a subimage in the current image and returns a similarity image

Description

public Imagick::subImageMatch(Imagick $Imagick, array &$offset = ?, float &$similarity = ?): Imagick

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, PECL imagick 3)

Imagick::swirlImage — Tourbillonne les pixels du centre de l'image

Description

Imagick::swirlImage(float $degrees): bool

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, PECL imagick 3)

Imagick::textureImage — Répète les carreaux de la texture d'une image

Description

Imagick::textureImage(Imagick $texture_wand): Imagick

Répète les carreaux de la texture d'une image via le canevas de l'image.

Liste de paramètres

texture_wand

Objet Imagick à utiliser comme image de texture

Valeurs de retour

Retourne un nouvel objet Imagick, qui a la texture répétée appliquée.

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, PECL imagick 3)

Imagick::thresholdImage — Modifie la valeur des pixels individuels, basée sur un seuil

Description

public Imagick::thresholdImage(float $threshold, int $channel = Imagick::CHANNEL_DEFAULT): bool

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, PECL imagick 3)

Imagick::thumbnailImage — Modifie la taille d'une image

Description

public Imagick::thumbnailImage(
int $columns,
int $rows,
bool $bestfit = false,
bool $fill = false,
bool $legacy = false
): bool

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, PECL imagick 3)

Imagick::tintImage — Applique un vecteur de couleur à chaque pixel de l'image

Description

public Imagick::tintImage(mixed $tint, mixed $opacity, bool $legacy = false): bool

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
PECL imagick 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

(PECL imagick 2, PECL imagick 3)

Imagick::__toString — Returns the image as a string

Description

public Imagick::__toString(): string

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, PECL imagick 3)

Imagick::transformImage — Méthode de convenance pour définir la taille de rognage et la géométrie de l'image

Avertissement

Cette fonction est OBSOLÈTE à partir de Imagick 3.4.4. Dépendre de cette fonctionnalité est fortement déconseillé.

Description

public Imagick::transformImage(string $crop, string $geometry): Imagick

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

(PECL imagick 3)

Imagick::transformImageColorspace — Transforms an image to a new colorspace

Description

public Imagick::transformImageColorspace(int $colorspace): bool

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

Retourne true en cas de succès.

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


Colorise les pixels transparents

  • « Imagick::transformImageColorspace
  • Imagick::transposeImage »
  • PHP Manual
  • Imagick
  • Colorise les pixels transparents

Imagick::transparentPaintImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::transparentPaintImage — Colorise les pixels transparents

Description

public Imagick::transparentPaintImage(
mixed $target,
float $alpha,
float $fuzz,
bool $invert
): bool

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, PECL imagick 3)

Imagick::transposeImage — Applique une symétrie verticale

Description

public Imagick::transposeImage(): bool

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true en cas de succès.

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();
}

?>

Voir aussi

  • Imagick::transverseImage() - Crée un miroir horizontal de l'image


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, PECL imagick 3)

Imagick::transverseImage — Crée un miroir horizontal de l'image

Description

public Imagick::transverseImage(): bool

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true en cas de succès.

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();
}

?>

Voir aussi

  • Imagick::transposeImage() - Applique une symétrie verticale


Supprime les bords de l'image

  • « Imagick::transverseImage
  • Imagick::uniqueImageColors »
  • PHP Manual
  • Imagick
  • Supprime les bords de l'image

Imagick::trimImage

(PECL imagick 2, PECL imagick 3)

Imagick::trimImage — Supprime les bords de l'image

Description

public Imagick::trimImage(float $fuzz): bool

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
  • imagecropauto() - Recadre une image automatiquement en utilisant un des modes disponibles


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,PECL imagick 3)

Imagick::uniqueImageColors — Ne conserve qu'une couleur de pixel

Description

public Imagick::uniqueImageColors(): bool

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PECL imagick 3)

Imagick::unsharpMaskImage — Rend une image plus nette

Description

public Imagick::unsharpMaskImage(
float $radius,
float $sigma,
float $amount,
float $threshold,
int $channel = Imagick::CHANNEL_DEFAULT
): bool

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, PECL imagick 3)

Imagick::valid — Vérifie si l'élément courant est valide

Description

public Imagick::valid(): bool

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 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, PECL imagick 3)

Imagick::vignetteImage — Ajout un filtre vignette à l'image

Description

public Imagick::vignetteImage(
float $blackPoint,
float $whitePoint,
int $x,
int $y
): bool

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.

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();
}

?>

Voir aussi

  • Imagick::waveImage() - Ajoute un filtre de vagues à l'image
  • Imagick::swirlImage() - Tourbillonne les pixels du centre de l'image


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, PECL imagick 3)

Imagick::waveImage — Ajoute un filtre de vagues à l'image

Description

public Imagick::waveImage(float $amplitude, float $length): bool

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.

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();
}

?>

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


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, PECL imagick 3)

Imagick::whiteThresholdImage — Force tous les pixels en dessous du seuil en blanc

Description

public Imagick::whiteThresholdImage(mixed $threshold): bool

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
PECL imagick 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 2 >= 2.3.0, PECL imagick 3)

Imagick::writeImage — Écrit une image dans le fichier spécifié

Description

public Imagick::writeImage(string $filename = NULL): bool

É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

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::writeImageFile — Écrit une image dans un descripteur de fichier

Description

public Imagick::writeImageFile(resource $filehandle, string $format = ?): bool

É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.

format

Le format de l'image. La liste des spécificateurs de format valides dépend du jeu de fonctionnalités compilé d'ImageMagick, et peut être interrogée au moment de l'exécution via Imagick::queryFormats().

Valeurs de retour

Retourne true en cas de succès.

Voir aussi

  • Imagick::queryFormats() - Retourne les formats supportés par Imagick


É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 2 >= 2.3.0, PECL imagick 3)

Imagick::writeImages — Écrit une image ou une séquence d'images

Description

public Imagick::writeImages(string $filename, bool $adjoin): bool

É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

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::writeImagesFile — Écrits des frames dans un descripteur de fichiers

Description

public Imagick::writeImagesFile(resource $filehandle, string $format = ?): bool

É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.

format

Le format de l'image. La liste des spécificateurs de format valides dépend du jeu de fonctionnalités compilé d'ImageMagick, et peut être interrogée au moment de l'exécution via Imagick::queryFormats().

Valeurs de retour

Retourne true en cas de succès.

Voir aussi

  • Imagick::queryFormats() - Retourne les formats supportés par Imagick


La classe ImagickDraw

(PECL imagick 2, PECL imagick 3)

Synopsis de la classe

class ImagickDraw {
public affine(array $affine): bool
public annotation(float $x, float $y, string $text): bool
public arc(
float $sx,
float $sy,
float $ex,
float $ey,
float $sd,
float $ed
): bool
public bezier(array $coordinates): bool
public circle(
float $ox,
float $oy,
float $px,
float $py
): bool
public clear(): bool
public clone(): ImagickDraw
public color(float $x, float $y, int $paintMethod): bool
public comment(string $comment): bool
public composite(
int $compose,
float $x,
float $y,
float $width,
float $height,
Imagick $compositeWand
): bool
public __construct()
public destroy(): bool
public ellipse(
float $ox,
float $oy,
float $rx,
float $ry,
float $start,
float $end
): bool
public getClipPath(): string
public getClipRule(): int
public getClipUnits(): int
public getFillColor(): ImagickPixel
public getFillOpacity(): float
public getFillRule(): int
public getFont(): string
public getFontFamily(): string
public getFontSize(): float
public getFontStretch(): int
public getFontStyle(): int
public getFontWeight(): int
public getGravity(): int
public getStrokeAntialias(): bool
public getStrokeColor(): ImagickPixel
public getStrokeDashArray(): array
public getStrokeDashOffset(): float
public getStrokeLineCap(): int
public getStrokeLineJoin(): int
public getStrokeMiterLimit(): int
public getStrokeOpacity(): float
public getStrokeWidth(): float
public getTextAlignment(): int
public getTextAntialias(): bool
public getTextDecoration(): int
public getTextEncoding(): string
public getTextInterlineSpacing(): float
public getTextInterwordSpacing(): float
public getTextKerning(): float
public getTextUnderColor(): ImagickPixel
public getVectorGraphics(): string
public line(
float $sx,
float $sy,
float $ex,
float $ey
): bool
public matte(float $x, float $y, int $paintMethod): bool
public pathClose(): bool
public pathCurveToAbsolute(
float $x1,
float $y1,
float $x2,
float $y2,
float $x,
float $y
): bool
public pathCurveToQuadraticBezierAbsolute(
float $x1,
float $y1,
float $x,
float $y
): bool
public pathCurveToQuadraticBezierRelative(
float $x1,
float $y1,
float $x,
float $y
): bool
public pathCurveToQuadraticBezierSmoothAbsolute(float $x, float $y): bool
public pathCurveToQuadraticBezierSmoothRelative(float $x, float $y): bool
public pathCurveToRelative(
float $x1,
float $y1,
float $x2,
float $y2,
float $x,
float $y
): bool
public pathCurveToSmoothAbsolute(
float $x2,
float $y2,
float $x,
float $y
): bool
public pathCurveToSmoothRelative(
float $x2,
float $y2,
float $x,
float $y
): bool
public pathEllipticArcAbsolute(
float $rx,
float $ry,
float $x_axis_rotation,
bool $large_arc_flag,
bool $sweep_flag,
float $x,
float $y
): bool
public pathEllipticArcRelative(
float $rx,
float $ry,
float $x_axis_rotation,
bool $large_arc_flag,
bool $sweep_flag,
float $x,
float $y
): bool
public pathFinish(): bool
public pathLineToAbsolute(float $x, float $y): bool
public pathLineToHorizontalAbsolute(float $x): bool
public pathLineToHorizontalRelative(float $x): bool
public pathLineToRelative(float $x, float $y): bool
public pathLineToVerticalAbsolute(float $y): bool
public pathLineToVerticalRelative(float $y): bool
public pathMoveToAbsolute(float $x, float $y): bool
public pathMoveToRelative(float $x, float $y): bool
public pathStart(): bool
public point(float $x, float $y): bool
public polygon(array $coordinates): bool
public polyline(array $coordinates): bool
public pop(): bool
public popClipPath(): bool
public popDefs(): bool
public popPattern(): bool
public push(): bool
public pushClipPath(string $clip_mask_id): bool
public pushDefs(): bool
public pushPattern(
string $pattern_id,
float $x,
float $y,
float $width,
float $height
): bool
public rectangle(
float $x1,
float $y1,
float $x2,
float $y2
): bool
public render(): bool
public resetVectorGraphics(): bool
public rotate(float $degrees): bool
public roundRectangle(
float $x1,
float $y1,
float $x2,
float $y2,
float $rx,
float $ry
): bool
public scale(float $x, float $y): bool
public setClipPath(string $clip_mask): bool
public setClipRule(int $fill_rule): bool
public setClipUnits(int $clip_units): bool
public setFillAlpha(float $opacity): bool
public setFillColor(ImagickPixel $fill_pixel): bool
public setFillOpacity(float $fillOpacity): bool
public setFillPatternURL(string $fill_url): bool
public setFillRule(int $fill_rule): bool
public setFont(string $font_name): bool
public setFontFamily(string $font_family): bool
public setFontSize(float $pointsize): bool
public setFontStretch(int $fontStretch): bool
public setFontStyle(int $style): bool
public setFontWeight(int $font_weight): bool
public setGravity(int $gravity): bool
public setResolution(float $x_resolution, float $y_resolution): bool
public setStrokeAlpha(float $opacity): bool
public setStrokeAntialias(bool $stroke_antialias): bool
public setStrokeColor(ImagickPixel $stroke_pixel): bool
public setStrokeDashArray(array $dashArray): bool
public setStrokeDashOffset(float $dash_offset): bool
public setStrokeLineCap(int $linecap): bool
public setStrokeLineJoin(int $linejoin): bool
public setStrokeMiterLimit(int $miterlimit): bool
public setStrokeOpacity(float $stroke_opacity): bool
public setStrokePatternURL(string $stroke_url): bool
public setStrokeWidth(float $stroke_width): bool
public setTextAlignment(int $alignment): bool
public setTextAntialias(bool $antiAlias): bool
public setTextDecoration(int $decoration): bool
public setTextEncoding(string $encoding): bool
public setTextInterlineSpacing(float $spacing): bool
public setTextInterwordSpacing(float $spacing): bool
public setTextKerning(float $kerning): bool
public setTextUnderColor(ImagickPixel $under_color): bool
public setVectorGraphics(string $xml): bool
public setViewbox(
int $x1,
int $y1,
int $x2,
int $y2
): bool
public skewX(float $degrees): bool
public skewY(float $degrees): bool
public translate(float $x, float $y): bool
}

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 — Gets the font stretch to use when annotating with text
  • 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 — Récupère l'espace entre les mots d'un texte.
  • ImagickDraw::getTextInterwordSpacing — Récupère l'espace entre les mots d'un texte.
  • ImagickDraw::getTextKerning — Récupère le crénage d'un texte.
  • 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 — Resets the vector graphics
  • 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 — Définie la résolution
  • 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 — Défine l'espace entre les lignes d'un texte
  • ImagickDraw::setTextInterwordSpacing — Définie l'espace entre les mots d'un texte
  • ImagickDraw::setTextKerning — Définie le crénage d'un texte
  • 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, PECL imagick 3)

ImagickDraw::affine — Ajuste la matrice de transformation affine courante

Description

public ImagickDraw::affine(array $affine): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::annotation — Dessine un texte sur une image

Description

public ImagickDraw::annotation(float $x, float $y, string $text): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::arc — Dessine un arc

Description

public ImagickDraw::arc(
float $sx,
float $sy,
float $ex,
float $ey,
float $sd,
float $ed
): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::bezier — Dessine une courbe de Bézier

Description

public ImagickDraw::bezier(array $coordinates): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::circle — Dessine un cercle

Description

public ImagickDraw::circle(
float $ox,
float $oy,
float $px,
float $py
): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::clear — Efface tout l'objet ImagickDraw

Description

public ImagickDraw::clear(): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::clone — Fait une copie exacte de l'objet ImagickDraw

Description

public ImagickDraw::clone(): ImagickDraw
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Fait une copie exacte de l'objet ImagickDraw.

Valeurs de retour

Retourne une copie exacte de l'objet ImagickDraw.


Dessine une couleur sur une image

  • « ImagickDraw::clone
  • ImagickDraw::comment »
  • PHP Manual
  • ImagickDraw
  • Dessine une couleur sur une image

ImagickDraw::color

(PECL imagick 2, PECL imagick 3)

ImagickDraw::color — Dessine une couleur sur une image

Description

public ImagickDraw::color(float $x, float $y, int $paintMethod): bool
Avertissement

Cette fonction est actuellement non documentée ; 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 PAINT (imagick::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, PECL imagick 3)

ImagickDraw::comment — Ajoute un commentaire

Description

public ImagickDraw::comment(string $comment): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::composite — Compose une image avec une autre

Description

public ImagickDraw::composite(
int $compose,
float $x,
float $y,
float $width,
float $height,
Imagick $compositeWand
): bool
Avertissement

Cette fonction est actuellement non documentée ; 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 d'opérateur de composition (imagick::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, PECL imagick 3)

ImagickDraw::__construct — Le constructeur ImagickDraw

Description

public ImagickDraw::__construct()
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::destroy — Libère toutes les ressources associées à un objet ImageDraw

Description

public ImagickDraw::destroy(): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::ellipse — Dessine une ellipse sur une image

Description

public ImagickDraw::ellipse(
float $ox,
float $oy,
float $rx,
float $ry,
float $start,
float $end
): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::getClipPath — Retourne l'identifiant du chemin courant

Description

public ImagickDraw::getClipPath(): string
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::getClipRule — Retourne la règle de remplissage courante pour les polygones

Description

public ImagickDraw::getClipRule(): int
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Retourne la règle de remplissage courante pour les polygones.

Valeurs de retour

Retourne une constante FILLRULE (imagick::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, PECL imagick 3)

ImagickDraw::getClipUnits — Retourne l'unité d'interprétation des chemins

Description

public ImagickDraw::getClipUnits(): int
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::getFillColor — Retourne la couleur de remplissage

Description

public ImagickDraw::getFillColor(): ImagickPixel
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::getFillOpacity — Retourne l'opacité de dessin

Description

public ImagickDraw::getFillOpacity(): float
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::getFillRule — Retourne la règle de remplissage

Description

public ImagickDraw::getFillRule(): int
Avertissement

Cette fonction est actuellement non documentée ; 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 (imagick::FILLRULE_*).


Retourne la police

  • « ImagickDraw::getFillRule
  • ImagickDraw::getFontFamily »
  • PHP Manual
  • ImagickDraw
  • Retourne la police

ImagickDraw::getFont

(PECL imagick 2, PECL imagick 3)

ImagickDraw::getFont — Retourne la police

Description

public ImagickDraw::getFont(): string
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::getFontFamily — Retourne la famille de police

Description

public ImagickDraw::getFontFamily(): string
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::getFontSize — Retourne la taille de la police

Description

public ImagickDraw::getFontSize(): float
Avertissement

Cette fonction est actuellement non documentée ; 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.


Gets the font stretch to use when annotating with text

  • « ImagickDraw::getFontSize
  • ImagickDraw::getFontStyle »
  • PHP Manual
  • ImagickDraw
  • Gets the font stretch to use when annotating with text

ImagickDraw::getFontStretch

(PECL imagick 2 >=2.3.0, PECL imagick 3)

ImagickDraw::getFontStretch — Gets the font stretch to use when annotating with text

Description

public ImagickDraw::getFontStretch(): int

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, PECL imagick 3)

ImagickDraw::getFontStyle — Retourne le style de la police

Description

public ImagickDraw::getFontStyle(): int
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Retourne le style de la police.

Valeurs de retour

Retourne une constante STYLE (imagick::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, PECL imagick 3)

ImagickDraw::getFontWeight — Retourne le poids de la police

Description

public ImagickDraw::getFontWeight(): int
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::getGravity — Retourne la gravité de placement de texte

Description

public ImagickDraw::getGravity(): int
Avertissement

Cette fonction est actuellement non documentée ; 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 (imagick::GRAVITY_*) en cas de succès, ou 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, PECL imagick 3)

ImagickDraw::getStrokeAntialias — Retourne la configuration d'anti-aliasing de trait

Description

public ImagickDraw::getStrokeAntialias(): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::getStrokeColor — Retourne la couleur des contours d'objets

Description

public ImagickDraw::getStrokeColor(): ImagickPixel
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::getStrokeDashArray — Retourne un tableau représentant le motif de pointillés

Description

public ImagickDraw::getStrokeDashArray(): array
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::getStrokeDashOffset — Retourne l'offset du pointillé dans le motif

Description

public ImagickDraw::getStrokeDashOffset(): float
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::getStrokeLineCap — Retourne la forme à utiliser pour dessiner les bouts de sous-chemins

Description

public ImagickDraw::getStrokeLineCap(): int
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Retourne la forme à utiliser pour dessiner les bouts de sous-chemins.

Valeurs de retour

Retourne une constante LINECAP (imagick::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, PECL imagick 3)

ImagickDraw::getStrokeLineJoin — Retourne la forme à utiliser pour dessiner les coins d'un chemin

Description

public ImagickDraw::getStrokeLineJoin(): int
Avertissement

Cette fonction est actuellement non documentée ; 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 LINEJOIN (imagick::LINEJOIN_*), 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, PECL imagick 3)

ImagickDraw::getStrokeMiterLimit — Retourne la 'miterLimit'

Description

public ImagickDraw::getStrokeMiterLimit(): int
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::getStrokeOpacity — Retourne l'opacité des contours d'un objet

Description

public ImagickDraw::getStrokeOpacity(): float
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Retourne l'opacité des contours d'un objet.

Valeurs de retour

Retourne un float 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, PECL imagick 3)

ImagickDraw::getStrokeWidth — Retourne la largeur du trait utilisé

Description

public ImagickDraw::getStrokeWidth(): float
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Retourne la largeur du trait utilisé.

Valeurs de retour

Retourne un float 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, PECL imagick 3)

ImagickDraw::getTextAlignment — Retourne l'alignement du texte

Description

public ImagickDraw::getTextAlignment(): int
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Retourne l'alignement du texte.

Valeurs de retour

Retourne une constante ALIGN (imagick::ALIGN_*), ou 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, PECL imagick 3)

ImagickDraw::getTextAntialias — Retourne la configuration de l'anti-aliasing de texte

Description

public ImagickDraw::getTextAntialias(): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::getTextDecoration — Retourne la décoration du texte

Description

public ImagickDraw::getTextDecoration(): int
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Retourne la décoration du texte d'annotation.

Valeurs de retour

Retourne une constante DECORATION (imagick::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, PECL imagick 3)

ImagickDraw::getTextEncoding — Retourne le jeu de caractères utilisé pour les annotations de texte

Description

public ImagickDraw::getTextEncoding(): string
Avertissement

Cette fonction est actuellement non documentée ; 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é.


Récupère l'espace entre les mots d'un texte.

  • « ImagickDraw::getTextEncoding
  • ImagickDraw::getTextInterwordSpacing »
  • PHP Manual
  • ImagickDraw
  • Récupère l'espace entre les mots d'un texte.

ImagickDraw::getTextInterlineSpacing

(PECL imagick 3 >= 3.1.0)

ImagickDraw::getTextInterlineSpacing — Récupère l'espace entre les mots d'un texte.

Description

public ImagickDraw::getTextInterlineSpacing(): float

Récupère l'espace entre les mots d'un texte.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère l'espace entre les mots d'un texte.

  • « ImagickDraw::getTextInterlineSpacing
  • ImagickDraw::getTextKerning »
  • PHP Manual
  • ImagickDraw
  • Récupère l'espace entre les mots d'un texte.

ImagickDraw::getTextInterwordSpacing

(PECL imagick 2 >= 2.3.0, PECL imagick 3 >= 3.1.0)

ImagickDraw::getTextInterwordSpacing — Récupère l'espace entre les mots d'un texte.

Description

public ImagickDraw::getTextInterwordSpacing(): float

Récupère l'espace entre les mots d'un texte.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupère le crénage d'un texte.

  • « ImagickDraw::getTextInterwordSpacing
  • ImagickDraw::getTextUnderColor »
  • PHP Manual
  • ImagickDraw
  • Récupère le crénage d'un texte.

ImagickDraw::getTextKerning

(PECL imagick 2 >= 2.3.0, PECL imagick 3 >= 3.1.0)

ImagickDraw::getTextKerning — Récupère le crénage d'un texte.

Description

public ImagickDraw::getTextKerning(): float

Récupère le crénage d'un texte.

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, PECL imagick 3)

ImagickDraw::getTextUnderColor — Retourne la couleur sous le texte

Description

public ImagickDraw::getTextUnderColor(): ImagickPixel
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::getVectorGraphics — Retourne une chaîne contenant le vecteur graphique

Description

public ImagickDraw::getVectorGraphics(): string
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::line — Dessine une ligne

Description

public ImagickDraw::line(
float $sx,
float $sy,
float $ex,
float $ey
): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::matte — Dessine sur le canal d'opacité de l'image

Description

public ImagickDraw::matte(float $x, float $y, int $paintMethod): bool
Avertissement

Cette fonction est actuellement non documentée ; 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

Une des constantes PAINT (imagick::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, PECL imagick 3)

ImagickDraw::pathClose — Ajoute un élément de chemin au chemin courant

Description

public ImagickDraw::pathClose(): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::pathCurveToAbsolute — Dessine une courbe de Bézier cubique, en coordonnées absolues

Description

public ImagickDraw::pathCurveToAbsolute(
float $x1,
float $y1,
float $x2,
float $y2,
float $x,
float $y
): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::pathCurveToQuadraticBezierAbsolute — Dessine une courbe de Bézier quadratique, en coordonnées absolues

Description

public ImagickDraw::pathCurveToQuadraticBezierAbsolute(
float $x1,
float $y1,
float $x,
float $y
): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::pathCurveToQuadraticBezierRelative — Dessine une courbe de Bézier quadratique, en coordonnées relatives

Description

public ImagickDraw::pathCurveToQuadraticBezierRelative(
float $x1,
float $y1,
float $x,
float $y
): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute — Dessine une courbe de Bézier de puissance 4, en coordonnées absolues

Description

public ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute(float $x, float $y): bool

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 Exemple avec 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, PECL imagick 3)

ImagickDraw::pathCurveToQuadraticBezierSmoothRelative — Dessine une courbe de Bézier de puissance 4, en coordonnées relatives

Description

public ImagickDraw::pathCurveToQuadraticBezierSmoothRelative(float $x, float $y): bool
Avertissement

Cette fonction est actuellement non documentée ; 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 Exemple avec 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, PECL imagick 3)

ImagickDraw::pathCurveToRelative — Dessine une courbe de Bézier cubique, en coordonnées relatives

Description

public ImagickDraw::pathCurveToRelative(
float $x1,
float $y1,
float $x2,
float $y2,
float $x,
float $y
): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::pathCurveToSmoothAbsolute — Dessine une courbe de Bézier, en coordonnées absolues

Description

public ImagickDraw::pathCurveToSmoothAbsolute(
float $x2,
float $y2,
float $x,
float $y
): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::pathCurveToSmoothRelative — Dessine une courbe de Bézier, en coordonnées relatives

Description

public ImagickDraw::pathCurveToSmoothRelative(
float $x2,
float $y2,
float $x,
float $y
): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::pathEllipticArcAbsolute — Dessine un arc d'ellipse, en coordonnées absolues

Description

public ImagickDraw::pathEllipticArcAbsolute(
float $rx,
float $ry,
float $x_axis_rotation,
bool $large_arc_flag,
bool $sweep_flag,
float $x,
float $y
): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::pathEllipticArcRelative — Dessine un arc d'ellipse, en coordonnées relatives

Description

public ImagickDraw::pathEllipticArcRelative(
float $rx,
float $ry,
float $x_axis_rotation,
bool $large_arc_flag,
bool $sweep_flag,
float $x,
float $y
): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::pathFinish — Termine le chemin courant

Description

public ImagickDraw::pathFinish(): bool
Avertissement

Cette fonction est actuellement non documentée ; 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)

ImagickDraw::pathLineToAbsolute — Dessine une ligne de chemin, en coordonnées absolues

Description

public ImagickDraw::pathLineToAbsolute(float $x, float $y): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::pathLineToHorizontalAbsolute — Dessine une ligne de chemin horizontale, en coordonnées absolues

Description

public ImagickDraw::pathLineToHorizontalAbsolute(float $x): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::pathLineToHorizontalRelative — Dessine une ligne de chemin horizontale, en coordonnées relatives

Description

public ImagickDraw::pathLineToHorizontalRelative(float $x): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::pathLineToRelative — Dessine une ligne de chemin, en coordonnées relatives

Description

public ImagickDraw::pathLineToRelative(float $x, float $y): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::pathLineToVerticalAbsolute — Dessine une ligne de chemin verticale, en coordonnées absolues

Description

public ImagickDraw::pathLineToVerticalAbsolute(float $y): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::pathLineToVerticalRelative — Dessine une ligne de chemin verticale, en coordonnées relatives

Description

public ImagickDraw::pathLineToVerticalRelative(float $y): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::pathMoveToAbsolute — Commence un nouveau sous-chemin, en coordonnées absolues

Description

public ImagickDraw::pathMoveToAbsolute(float $x, float $y): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::pathMoveToRelative — Commence un nouveau sous-chemin, en coordonnées relatives

Description

public ImagickDraw::pathMoveToRelative(float $x, float $y): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::pathStart — Déclare le début d'une chemin de dessin

Description

public ImagickDraw::pathStart(): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::point — Dessine un point

Description

public ImagickDraw::point(float $x, float $y): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::polygon — Dessine un polygone

Description

public ImagickDraw::polygon(array $coordinates): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::polyline — Dessine une ligne brisée

Description

public ImagickDraw::polyline(array $coordinates): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::pop — Détruit l'objet ImagickDraw courant dans la pile, et retourne son précédent

Description

public ImagickDraw::pop(): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::popClipPath — Termine la définition d'un chemin

Description

public ImagickDraw::popClipPath(): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::popDefs — Termine une définition de liste

Description

public ImagickDraw::popDefs(): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::popPattern — Termine une définition de motif

Description

public ImagickDraw::popPattern(): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::push — Clone l'objet ImagickDraw courant et le pousse dans la pile

Description

public ImagickDraw::push(): bool
Avertissement

Cette fonction est actuellement non documentée ; 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 ImagickDraw::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, PECL imagick 3)

ImagickDraw::pushClipPath — Commence la définition d'un chemin

Description

public ImagickDraw::pushClipPath(string $clip_mask_id): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::pushDefs — Indique que la commande suivante créée des éléments nommés pour pré-traitement

Description

public ImagickDraw::pushDefs(): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::pushPattern — Configure un espace de dessin

Description

public ImagickDraw::pushPattern(
string $pattern_id,
float $x,
float $y,
float $width,
float $height
): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::rectangle — Dessine un rectangle

Description

public ImagickDraw::rectangle(
float $x1,
float $y1,
float $x2,
float $y2
): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::render — Effectue le rendu de tous les dessins à l'image

Description

public ImagickDraw::render(): bool
Avertissement

Cette fonction est actuellement non documentée ; 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.


Resets the vector graphics

  • « ImagickDraw::render
  • ImagickDraw::rotate »
  • PHP Manual
  • ImagickDraw
  • Resets the vector graphics

ImagickDraw::resetVectorGraphics

(PECL imagick 2, PECL imagick 3)

ImagickDraw::resetVectorGraphics — Resets the vector graphics

Description

public ImagickDraw::resetVectorGraphics(): bool

Resets the vector graphics.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true en cas de succès.


Applique une rotation

  • « ImagickDraw::resetVectorGraphics
  • ImagickDraw::roundRectangle »
  • PHP Manual
  • ImagickDraw
  • Applique une rotation

ImagickDraw::rotate

(PECL imagick 2, PECL imagick 3)

ImagickDraw::rotate — Applique une rotation

Description

public ImagickDraw::rotate(float $degrees): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::roundRectangle — Dessine un rectangle aux coins arrondis

Description

public ImagickDraw::roundRectangle(
float $x1,
float $y1,
float $x2,
float $y2,
float $rx,
float $ry
): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::scale — Ajuste le facteur de mise à l'échelle

Description

public ImagickDraw::scale(float $x, float $y): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::setClipPath — Associe un chemin avec une image

Description

public ImagickDraw::setClipPath(string $clip_mask): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::setClipRule — Configure la règle de remplissage du polygone à utiliser avec les chemins

Description

public ImagickDraw::setClipRule(int $fill_rule): bool
Avertissement

Cette fonction est actuellement non documentée ; 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 des constantes FILLRULE (imagick::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, PECL imagick 3)

ImagickDraw::setClipUnits — Configure le mode d'interprétation des unités de chemin

Description

public ImagickDraw::setClipUnits(int $clip_units): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::setFillAlpha — Configure l'opacité de la couleur de remplissage

Description

public ImagickDraw::setFillAlpha(float $opacity): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::setFillColor — Configure la couleur de dessin des objets remplis

Description

public ImagickDraw::setFillColor(ImagickPixel $fill_pixel): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::setFillOpacity — Configure l'opacité à utiliser pour le remplissage

Description

public ImagickDraw::setFillOpacity(float $fillOpacity): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::setFillPatternURL — Configure l'URL du motif de remplissage des surfaces

Description

public ImagickDraw::setFillPatternURL(string $fill_url): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::setFillRule — Configure la règle de remplissage des polygones

Description

public ImagickDraw::setFillRule(int $fill_rule): bool
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Configure la règle de remplissage des polygones.

Liste de paramètres

fill_rule

Une des constantes FILLRULE (imagick::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, PECL imagick 3)

ImagickDraw::setFont — Configure la police complète pour les textes

Description

public ImagickDraw::setFont(string $font_name): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::setFontFamily — Configure la famille de police pour les textes

Description

public ImagickDraw::setFontFamily(string $font_family): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::setFontSize — Configure la taille de point pour les textes

Description

public ImagickDraw::setFontSize(float $pointsize): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::setFontStretch — Configure l'étirement du texte

Description

public ImagickDraw::setFontStretch(int $fontStretch): bool
Avertissement

Cette fonction est actuellement non documentée ; 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 des constantes STRETCH (imagick::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, PECL imagick 3)

ImagickDraw::setFontStyle — Configure le style de police

Description

public ImagickDraw::setFontStyle(int $style): bool
Avertissement

Cette fonction est actuellement non documentée ; 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 des constantes STYLE (imagick::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, PECL imagick 3)

ImagickDraw::setFontWeight — Configure le poids de la police

Description

public ImagickDraw::setFontWeight(int $font_weight): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::setGravity — Configure la gravité de placement de texte

Description

public ImagickDraw::setGravity(int $gravity): bool
Avertissement

Cette fonction est actuellement non documentée ; 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 des constantes GRAVITY (imagick::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();
}

?>


Définie la résolution

  • « ImagickDraw::setGravity
  • ImagickDraw::setStrokeAlpha »
  • PHP Manual
  • ImagickDraw
  • Définie la résolution

ImagickDraw::setResolution

(PECL imagick 3 >= 3.1.0)

ImagickDraw::setResolution — Définie la résolution

Description

public ImagickDraw::setResolution(float $x_resolution, float $y_resolution): bool

Définie la résolution.

Liste de paramètres

x_resolution

y_resolution

Valeurs de retour

Retourne true en cas de succès.


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, PECL imagick 3)

ImagickDraw::setStrokeAlpha — Spécifie l'opacité des contours d'objets

Description

public ImagickDraw::setStrokeAlpha(float $opacity): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::setStrokeAntialias — Contrôle l'anti-aliasing des pointillés

Description

public ImagickDraw::setStrokeAntialias(bool $stroke_antialias): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::setStrokeColor — Configure la couleur utilisée pour dessiner les objets

Description

public ImagickDraw::setStrokeColor(ImagickPixel $stroke_pixel): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::setStrokeDashArray — Spécifie le motif de pointillé

Description

public ImagickDraw::setStrokeDashArray(array $dashArray): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::setStrokeDashOffset — Spécifie la position dans le motif pour commencer le pointillé

Description

public ImagickDraw::setStrokeDashOffset(float $dash_offset): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::setStrokeLineCap — Spécifie la forme à utiliser à la fin des sous-chemins

Description

public ImagickDraw::setStrokeLineCap(int $linecap): bool
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Spécifie la forme à utiliser à la fin des sous-chemins.

Liste de paramètres

linecap

Une des constantes LINECAP (imagick::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, PECL imagick 3)

ImagickDraw::setStrokeLineJoin — Spécifie la forme à utiliser pour dessiner les fins de lignes

Description

public ImagickDraw::setStrokeLineJoin(int $linejoin): bool
Avertissement

Cette fonction est actuellement non documentée ; 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 des constantes LINEJOIN (imagick::LINEJOIN_*).

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, PECL imagick 3)

ImagickDraw::setStrokeMiterLimit — Spécifie la limiter miter

Description

public ImagickDraw::setStrokeMiterLimit(int $miterlimit): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::setStrokeOpacity — Spécifie l'opacité pour dessiner les contours

Description

public ImagickDraw::setStrokeOpacity(float $stroke_opacity): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::setStrokePatternURL — Configure le motif utilisé pour dessiner les contours

Description

public ImagickDraw::setStrokePatternURL(string $stroke_url): bool
Avertissement

Cette fonction est actuellement non documentée ; 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

Retourne true en cas de succès.


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, PECL imagick 3)

ImagickDraw::setStrokeWidth — Configure la largeur du trait pour dessiner les contours

Description

public ImagickDraw::setStrokeWidth(float $stroke_width): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::setTextAlignment — Spécifie l'alignement du texte

Description

public ImagickDraw::setTextAlignment(int $alignment): bool
Avertissement

Cette fonction est actuellement non documentée ; 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 des constantes ALIGN (imagick::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, PECL imagick 3)

ImagickDraw::setTextAntialias — Contrôle l'anti-alisasing du texte

Description

public ImagickDraw::setTextAntialias(bool $antiAlias): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::setTextDecoration — Spécifie les ornements de texte

Description

public ImagickDraw::setTextDecoration(int $decoration): bool
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Spécifie les ornements de texte utilisé pour les annotations.

Liste de paramètres

decoration

Une des constantes DECORATION (imagick::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, PECL imagick 3)

ImagickDraw::setTextEncoding — Spécifie le jeu de caractères

Description

public ImagickDraw::setTextEncoding(string $encoding): bool
Avertissement

Cette fonction est actuellement non documentée ; 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.


Défine l'espace entre les lignes d'un texte

  • « ImagickDraw::setTextEncoding
  • ImagickDraw::setTextInterwordSpacing »
  • PHP Manual
  • ImagickDraw
  • Défine l'espace entre les lignes d'un texte

ImagickDraw::setTextInterlineSpacing

(PECL imagick 3 >= 3.1.0)

ImagickDraw::setTextInterlineSpacing — Défine l'espace entre les lignes d'un texte

Description

public ImagickDraw::setTextInterlineSpacing(float $spacing): bool

Défine l'espace entre les lignes d'un texte.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

spacing

Valeurs de retour

Retourne true en cas de succès.


Définie l'espace entre les mots d'un texte

  • « ImagickDraw::setTextInterlineSpacing
  • ImagickDraw::setTextKerning »
  • PHP Manual
  • ImagickDraw
  • Définie l'espace entre les mots d'un texte

ImagickDraw::setTextInterwordSpacing

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

ImagickDraw::setTextInterwordSpacing — Définie l'espace entre les mots d'un texte

Description

public ImagickDraw::setTextInterwordSpacing(float $spacing): bool

Définie l'espace entre les mots d'un texte.

Liste de paramètres

spacing

Valeurs de retour

Retourne true en cas de succès.


Définie le crénage d'un texte

  • « ImagickDraw::setTextInterwordSpacing
  • ImagickDraw::setTextUnderColor »
  • PHP Manual
  • ImagickDraw
  • Définie le crénage d'un texte

ImagickDraw::setTextKerning

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

ImagickDraw::setTextKerning — Définie le crénage d'un texte

Description

public ImagickDraw::setTextKerning(float $kerning): bool

Définie le crénage d'un texte.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

kerning

Valeurs de retour

Retourne true en cas de succès.


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, PECL imagick 3)

ImagickDraw::setTextUnderColor — Spécifie la couleur de fond d'une rectangle

Description

public ImagickDraw::setTextUnderColor(ImagickPixel $under_color): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::setVectorGraphics — Configure le vecteur graphique

Description

public ImagickDraw::setVectorGraphics(string $xml): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::setViewbox — Configure la taille du canevas

Description

public ImagickDraw::setViewbox(
int $x1,
int $y1,
int $x2,
int $y2
): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::skewX — Biaise les coordonnées dans la direction horizontale

Description

public ImagickDraw::skewX(float $degrees): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::skewY — Incline les coordonnées dans la direction verticale

Description

public ImagickDraw::skewY(float $degrees): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickDraw::translate — Applique une translation

Description

public ImagickDraw::translate(float $x, float $y): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

Synopsis de la classe

class ImagickPixel {
public clear(): bool
public __construct(string $color = ?)
public destroy(): bool
public getColor(int $normalized = 0): array
public getColorAsString(): string
public getColorCount(): int
public getColorQuantum(): array
public getColorValue(int $color): float
public getColorValueQuantum(int $color): int|float
public getHSL(): array
public getIndex(): int
public isPixelSimilar(ImagickPixel $color, float $fuzz): bool
public isPixelSimilarQuantum(string $color, string $fuzz = ?): bool
public isSimilar(ImagickPixel $color, float $fuzz): bool
public setColor(string $color): bool
public setcolorcount(int $colorCount): bool
public setColorValue(int $color, float $value): bool
public setColorValueQuantum(int $color, int|float $value): bool
public setHSL(float $hue, float $saturation, float $luminosity): bool
public setIndex(int $index): bool
}

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 — Returns the color of the pixel in an array as Quantum values
  • ImagickPixel::getColorValue — Récupère la valeur normalisée du canal de la couleur fournie
  • ImagickPixel::getColorValueQuantum — Gets the quantum value of a color in the ImagickPixel
  • ImagickPixel::getHSL — Retourne la couleur HSL normalisée de l'objet ImagickPixel
  • ImagickPixel::getIndex — Gets the colormap index of the pixel wand
  • ImagickPixel::isPixelSimilar — Vérifie la distance entre cette couleur et une autre
  • ImagickPixel::isPixelSimilarQuantum — Returns whether two colors differ by less than the specified distance
  • ImagickPixel::isSimilar — Vérifie la distance entre 2 couleurs
  • ImagickPixel::setColor — Définit la couleur
  • ImagickPixel::setColorCount — Sets the color count associated with this color
  • ImagickPixel::setColorValue — Définit la valeur normalisée d'un des canaux
  • ImagickPixel::setColorValueQuantum — Sets the quantum value of a color element of the ImagickPixel
  • ImagickPixel::setHSL — Définit la couleur HSL normalisée
  • ImagickPixel::setIndex — Sets the colormap index of the pixel wand


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, PECL imagick 3)

ImagickPixel::clear — Supprime toutes les ressources associées avec l'objet

Description

public ImagickPixel::clear(): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickPixel::__construct — Le constructeur ImagickPixel

Description

public ImagickPixel::__construct(string $color = ?)
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickPixel::destroy — Libère les ressources associées avec l'objet

Description

public ImagickPixel::destroy(): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickPixel::getColor — Retourne la couleur

Description

public ImagickPixel::getColor(int $normalized = 0): array

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

Normalise les valeurs de couleurs. Les valeurs possible sont 0, 1 ou 2.

Liste des valeurs possible pour normalized
normalized | Description
0 | Les valeurs RGB sont retournées en tant que ints dans l'intervalle (inclusive) 0 à 255. La valeur alpha est retournée en tant que int et est soit 0 ou 1.
1 | Les valeurs RGBA sont retournées en tant que floats dans l'intervalle (inclusive) 0 à 1.
2 | Les valeurs RGBA sont retournées en tant que ints dans l'intervalle (inclusive) 0 à 255.

Valeurs de retour

Un tableau des valeurs des canaux. Lance ImagickPixelException en cas d'erreur.

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(1);

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 >= 2.1.0, PECL imagick 3)

ImagickPixel::getColorAsString — Retourne une couleur

Description

public ImagickPixel::getColorAsString(): string

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, PECL imagick 3)

ImagickPixel::getColorCount — Retourne le nombre de couleurs associé avec une couleur

Description

public ImagickPixel::getColorCount(): int

Retourne le nombre de couleurs associé avec la couleur.

Le nombre de pixels de l'image ayant la même couleur que ce ImagickPixel.

ImagickPixel::getColorCount semble fonctionner uniquement pour les objets ImagickPixel créés via Imagick::getImageHistogram()

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 ou lance une exception ImagickPixelException si une erreur survient.

Exemples

Exemple #1 ImagickPixel getColorCount()

<?php
$imagick = new \Imagick();
$imagick->newPseudoImage(640, 480, "magick:logo");
$histogramElements = $imagick->getImageHistogram();
$lastColor = array_pop($histogramElements);
echo "Last pixel color count is: ".$lastColor->getColorCount();
?>

La sortie pour ce sera similaire à :

Last pixel color count is: 256244


Returns the color of the pixel in an array as Quantum values

  • « ImagickPixel::getColorCount
  • ImagickPixel::getColorValue »
  • PHP Manual
  • ImagickPixel
  • Returns the color of the pixel in an array as Quantum values

ImagickPixel::getColorQuantum

(No version information available, might only be in Git)

ImagickPixel::getColorQuantum — Returns the color of the pixel in an array as Quantum values

Description

public ImagickPixel::getColorQuantum(): array

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 est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns an array with keys "r", "g", "b", "a".


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, PECL imagick 3)

ImagickPixel::getColorValue — Récupère la valeur normalisée du canal de la couleur fournie

Description

public ImagickPixel::getColorValue(int $color): float

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


Gets the quantum value of a color in the ImagickPixel

  • « ImagickPixel::getColorValue
  • ImagickPixel::getHSL »
  • PHP Manual
  • ImagickPixel
  • Gets the quantum value of a color in the ImagickPixel

ImagickPixel::getColorValueQuantum

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

ImagickPixel::getColorValueQuantum — Gets the quantum value of a color in the ImagickPixel

Description

public ImagickPixel::getColorValueQuantum(int $color): int|float

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, PECL imagick 3)

ImagickPixel::getHSL — Retourne la couleur HSL normalisée de l'objet ImagickPixel

Description

public ImagickPixel::getHSL(): array

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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.


Gets the colormap index of the pixel wand

  • « ImagickPixel::getHSL
  • ImagickPixel::isPixelSimilar »
  • PHP Manual
  • ImagickPixel
  • Gets the colormap index of the pixel wand

ImagickPixel::getIndex

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

ImagickPixel::getIndex — Gets the colormap index of the pixel wand

Description

public ImagickPixel::getIndex(): int

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

(PECL imagick 3 >= 3.3.0)

ImagickPixel::isPixelSimilar — Vérifie la distance entre cette couleur et une autre

Description

public ImagickPixel::isPixelSimilar(ImagickPixel $color, float $fuzz): bool

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.


Returns whether two colors differ by less than the specified distance

  • « ImagickPixel::isPixelSimilar
  • ImagickPixel::isSimilar »
  • PHP Manual
  • ImagickPixel
  • Returns whether two colors differ by less than the specified distance

ImagickPixel::isPixelSimilarQuantum

(PECL imagick 3 >= 3.3.0)

ImagickPixel::isPixelSimilarQuantum — Returns whether two colors differ by less than the specified distance

Description

public ImagickPixel::isPixelSimilarQuantum(string $color, string $fuzz = ?): bool

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, PECL imagick 3)

ImagickPixel::isSimilar — Vérifie la distance entre 2 couleurs

Description

public ImagickPixel::isSimilar(ImagickPixel $color, float $fuzz): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickPixel::setColor — Définit la couleur

Description

public ImagickPixel::setColor(string $color): bool
Avertissement

Cette fonction est actuellement non documentée ; 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();
}

?>


Sets the color count associated with this color

  • « ImagickPixel::setColor
  • ImagickPixel::setColorValue »
  • PHP Manual
  • ImagickPixel
  • Sets the color count associated with this color

ImagickPixel::setColorCount

(PECL imagick 2, PECL imagick 3)

ImagickPixel::setColorCount — Sets the color count associated with this color

Description

public ImagickPixel::setcolorcount(int $colorCount): bool

Sets the color count associated with this color.

Liste de paramètres

colorCount

Valeurs de retour

Retourne true en cas de succès.


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, PECL imagick 3)

ImagickPixel::setColorValue — Définit la valeur normalisée d'un des canaux

Description

public ImagickPixel::setColorValue(int $color, float $value): bool

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
)


Sets the quantum value of a color element of the ImagickPixel

  • « ImagickPixel::setColorValue
  • ImagickPixel::setHSL »
  • PHP Manual
  • ImagickPixel
  • Sets the quantum value of a color element of the ImagickPixel

ImagickPixel::setColorValueQuantum

(PECL imagick 2 >=2.3.0, PECL imagick 3)

ImagickPixel::setColorValueQuantum — Sets the quantum value of a color element of the ImagickPixel

Description

public ImagickPixel::setColorValueQuantum(int $color, int|float $value): bool

Sets the quantum value of a color element of the ImagickPixel.

Avertissement

Cette fonction est actuellement non documentée ; 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

Retourne true en cas de succès.

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, PECL imagick 3)

ImagickPixel::setHSL — Définit la couleur HSL normalisée

Description

public ImagickPixel::setHSL(float $hue, float $saturation, float $luminosity): bool

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.


Sets the colormap index of the pixel wand

  • « ImagickPixel::setHSL
  • ImagickPixelIterator »
  • PHP Manual
  • ImagickPixel
  • Sets the colormap index of the pixel wand

ImagickPixel::setIndex

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

ImagickPixel::setIndex — Sets the colormap index of the pixel wand

Description

public ImagickPixel::setIndex(int $index): bool

Sets the colormap index of the pixel wand.

Liste de paramètres

index

Valeurs de retour

Retourne true en cas de succès.


La classe ImagickPixelIterator

(PECL imagick 2, PECL imagick 3)

Synopsis de la classe

class ImagickPixelIterator {
public clear(): bool
public __construct(Imagick $wand)
public destroy(): bool
public getCurrentIteratorRow(): array
public getIteratorRow(): int
public getNextIteratorRow(): array
public getPreviousIteratorRow(): array
public newPixelIterator(Imagick $wand): bool
public newPixelRegionIterator(
Imagick $wand,
int $x,
int $y,
int $columns,
int $rows
): bool
public resetIterator(): bool
public setIteratorFirstRow(): bool
public setIteratorLastRow(): bool
public setIteratorRow(int $row): bool
public syncIterator(): bool
}

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, PECL imagick 3)

ImagickPixelIterator::clear — Efface toutes les ressources associées à PixelIterator

Description

public ImagickPixelIterator::clear(): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickPixelIterator::__construct — Le constructeur ImagickPixelIterator

Description

public ImagickPixelIterator::__construct(Imagick $wand)
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickPixelIterator::destroy — Libère les ressources associées à PixelIterator

Description

public ImagickPixelIterator::destroy(): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickPixelIterator::getCurrentIteratorRow — Retourne la ligne courante des objets ImagickPixel

Description

public ImagickPixelIterator::getCurrentIteratorRow(): array
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickPixelIterator::getIteratorRow — Retourne la ligne courante de l'itérateur de pixel

Description

public ImagickPixelIterator::getIteratorRow(): int
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickPixelIterator::getNextIteratorRow — Retourne la prochaine ligne de l'itérateur de pixel

Description

public ImagickPixelIterator::getNextIteratorRow(): array
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickPixelIterator::getPreviousIteratorRow — Retourne la ligne précédente

Description

public ImagickPixelIterator::getPreviousIteratorRow(): array
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickPixelIterator::newPixelIterator — Retourne un nouveau pixel de l'itérateur

Description

public ImagickPixelIterator::newPixelIterator(Imagick $wand): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickPixelIterator::newPixelRegionIterator — Retourne un nouveau pixel de l'itérateur

Description

public ImagickPixelIterator::newPixelRegionIterator(
Imagick $wand,
int $x,
int $y,
int $columns,
int $rows
): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickPixelIterator::resetIterator — Réinitialise l'itérateur de pixel

Description

public ImagickPixelIterator::resetIterator(): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickPixelIterator::setIteratorFirstRow — Définit l'itérateur de pixel sur la première ligne de pixels

Description

public ImagickPixelIterator::setIteratorFirstRow(): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickPixelIterator::setIteratorLastRow — Définit l'itérateur de pixel sur la dernière ligne de pixels

Description

public ImagickPixelIterator::setIteratorLastRow(): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickPixelIterator::setIteratorRow — Définit la ligne de l'itérateur de pixel

Description

public ImagickPixelIterator::setIteratorRow(int $row): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PECL imagick 3)

ImagickPixelIterator::syncIterator — Synchronise l'itérateur de pixel

Description

public ImagickPixelIterator::syncIterator(): bool
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Synchronise l'itérateur de pixel.

Valeurs de retour

Retourne true en cas de succès.


La classe ImagickKernel

(PECL imagick >= 3.3.0)

Introduction

Synopsis de la classe

class ImagickKernel {
/* Méthodes */
public addKernel(ImagickKernel $ImagickKernel): void
public addUnityKernel(float $scale): void
public static fromBuiltin(int $kernelType, string $kernelString): ImagickKernel
public static fromMatrix(array $matrix, array $origin = ?): ImagickKernel
public getMatrix(): array
public scale(float $scale, int $normalizeFlag = ?): void
public separate(): array
}

Sommaire

  • ImagickKernel::addKernel — Attach another kernel to a kernel list
  • ImagickKernel::addUnityKernel — Adds a Unity Kernel to the kernel list
  • ImagickKernel::fromBuiltIn — Create a kernel from a builtin in kernel
  • ImagickKernel::fromMatrix — Create a kernel from a 2d matrix of values
  • ImagickKernel::getMatrix — Get the 2d matrix of values used in this kernel
  • ImagickKernel::scale — Scales a kernel list by the given amount
  • ImagickKernel::separate — Separates a linked set of kernels and returns an array of ImagickKernels


Attach another kernel to a kernel list

  • « ImagickKernel
  • ImagickKernel::addUnityKernel »
  • PHP Manual
  • ImagickKernel
  • Attach another kernel to a kernel list

ImagickKernel::addKernel

(PECL imagick >= 3.3.0)

ImagickKernel::addKernel — Attach another kernel to a kernel list

Description

public ImagickKernel::addKernel(ImagickKernel $ImagickKernel): void

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();

}

?>


Adds a Unity Kernel to the kernel list

  • « ImagickKernel::addKernel
  • ImagickKernel::fromBuiltIn »
  • PHP Manual
  • ImagickKernel
  • Adds a Unity Kernel to the kernel list

ImagickKernel::addUnityKernel

(PECL imagick >= 3.3.0)

ImagickKernel::addUnityKernel — Adds a Unity Kernel to the kernel list

Description

public ImagickKernel::addUnityKernel(float $scale): 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();

}

?>


Create a kernel from a builtin in kernel

  • « ImagickKernel::addUnityKernel
  • ImagickKernel::fromMatrix »
  • PHP Manual
  • ImagickKernel
  • Create a kernel from a builtin in kernel

ImagickKernel::fromBuiltIn

(PECL imagick >= 3.3.0)

ImagickKernel::fromBuiltIn — Create a kernel from a builtin in kernel

Description

public static ImagickKernel::fromBuiltin(int $kernelType, string $kernelString): ImagickKernel

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);

?>


Create a kernel from a 2d matrix of values

  • « ImagickKernel::fromBuiltIn
  • ImagickKernel::getMatrix »
  • PHP Manual
  • ImagickKernel
  • Create a kernel from a 2d matrix of values

ImagickKernel::fromMatrix

(PECL imagick >= 3.3.0)

ImagickKernel::fromMatrix — Create a kernel from a 2d matrix of values

Description

public static ImagickKernel::fromMatrix(array $matrix, array $origin = ?): ImagickKernel

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 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();
}

?>


Get the 2d matrix of values used in this kernel

  • « ImagickKernel::fromMatrix
  • ImagickKernel::scale »
  • PHP Manual
  • ImagickKernel
  • Get the 2d matrix of values used in this kernel

ImagickKernel::getMatrix

(PECL imagick >= 3.3.0)

ImagickKernel::getMatrix — Get the 2d matrix of values used in this kernel

Description

public ImagickKernel::getMatrix(): array

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;

?>


Scales a kernel list by the given amount

  • « ImagickKernel::getMatrix
  • ImagickKernel::separate »
  • PHP Manual
  • ImagickKernel
  • Scales a kernel list by the given amount

ImagickKernel::scale

(PECL imagick >= 3.3.0)

ImagickKernel::scale — Scales a kernel list by the given amount

Description

public ImagickKernel::scale(float $scale, int $normalizeFlag = ?): void

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.

Liste de paramètres

scale

normalizeFlag

  • Imagick::NORMALIZE_KERNEL_NONE
  • Imagick::NORMALIZE_KERNEL_VALUE
  • Imagick::NORMALIZE_KERNEL_CORRELATE
  • Imagick::NORMALIZE_KERNEL_PERCENT

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;
?>


Separates a linked set of kernels and returns an array of ImagickKernels

  • « ImagickKernel::scale
  • Extensions relatives aux emails »
  • PHP Manual
  • ImagickKernel
  • Separates a linked set of kernels and returns an array of ImagickKernels

ImagickKernel::separate

(PECL imagick >= 3.3.0)

ImagickKernel::separate — Separates a linked set of kernels and returns an array of ImagickKernels

Description

public ImagickKernel::separate(): array

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

  • IMAP — IMAP, POP3 et NNTP
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions IMAP
    • IMAP\Connection — La classe IMAP\Connection
  • Mail
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Mail
  • Mailparse
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Mailparse


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_is_open — Vérifier si le flux IMAP est toujours valide
    • 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_mutf7_to_utf8 — Décode une chaîne de caractère UTF-7 modifié en UTF-8
    • 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_to_mutf7 — Encode une chaîne de caractère UTF-8 en UTF-7 modifié
    • imap_utf8 — Convertit du texte au format MIME en UTF-8
  • IMAP\Connection — La classe IMAP\Connection


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.

Avertissement

L'extension IMAP n'est pas sécurisé au niveaux des threads ; elle ne doit pas être utilisée avec ZTS.


Pré-requis

Cette extension requiert la bibliothèque C cliente. Téléchargez cette dernière version à » https://github.com/uw-imap/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.

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

L'extension IMAP n'est pas sécurisée au niveau des threads ; elle ne doit pas être utilisée avec ZTS.

Avertissement

Les extensions IMAP, recode et YAZ ne peuvent être utilisées simultanément puisqu'elles utilisent un symbole interne commun. Note: Yaz 2.0 et supérieur ne souffre plus de ce problème.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

IMAP Options de configuration
Nom | Défaut | Modifiable | Historique
imap.enable_insecure_rsh | "0" | INI_SYSTEM | Disponible à partir de PHP 7.1.25, 7.2.13 et 7.3.0. Auparavant, c'était activé implicitement.
Pour plus de détails sur les modes INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

imap.enable_insecure_rsh bool

Établir une connecion à un serveur peut invoquer des commandes rsh ou ssh, sauf si cette option php.ini est désactivé.

Avertissement

Ni PHP ni la librairy IMAP filtre les noms des boîtes au lettres avant de les passer aux commandes rsh ou ssh, par conséquent passer des données non fiable à cette fonction sans désactiver cette option php.ini est dangereux.


Types de ressources

Antérieur à PHP 8.1.0, cette extension utilisait un type de ressource imap retourné par imap_open() qui fait référence à un flux IMAP ouvert.


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 (int)
Obsolète à partir de PHP 8.1.0.
OP_DEBUG (int)
OP_READONLY (int)
Ouvre une boîte aux lettres en lecture seule
OP_ANONYMOUS (int)
Ne pas utiliser, ou modifier le fichier .newsrc pour les news, (NNTP uniquement).
OP_SHORTCACHE (int)
OP_SILENT (int)
OP_PROTOTYPE (int)
OP_HALFOPEN (int)
Pour les noms IMAP et NNTP, ouvre une connexion mais n'ouvre pas une boîte aux lettres.
OP_EXPUNGE (int)
OP_SECURE (int)
CL_EXPUNGE (int)
purger automatiquement la boîte aux lettres lors de l'appel de imap_close()
FT_UID (int)
Le paramètre est un UID.
FT_PEEK (int)
Ne pas lever le drapeau \Seen (Message lu) s'il n'est pas déjà levé.
FT_NOT (int)
FT_INTERNAL (int)
La chaîne renvoyée est au format interne, et ne va pas canoniser les CRLF.
FT_PREFETCHTEXT (int)
ST_UID (int)
la séquence contient des UID au lieu de numéros de séquence
ST_SILENT (int)
ST_SET (int)
CP_UID (int)
La séquence de nombres contient des UID
CP_MOVE (int)
Efface les messages après copie avec imap_mail_copy()
SE_UID (int)
Retourne des UID à la place de numéros
SE_FREE (int)
SE_NOPREFETCH (int)
Ne pas prétélécharger les messages trouvés
SO_FREE (int)
SO_NOSERVER (int)
SA_MESSAGES (int)
SA_RECENT (int)
SA_UNSEEN (int)
SA_UIDNEXT (int)
SA_UIDVALIDITY (int)
SA_ALL (int)
LATT_NOINFERIORS (int)
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 (int)
Ceci est juste un container, pas une boîte aux lettres (vous ne pouvez pas l'ouvrir).
LATT_MARKED (int)
Cette boîte aux lettres est marquée. Utilisé uniquement avec UW-IMAPD.
LATT_UNMARKED (int)
Cette boîte aux lettres n'est pas marquée. Utilisé uniquement avec UW-IMAPD.
LATT_REFERRAL (int)
Ce conteneur a une référence vers une boîte aux lettres distante.
LATT_HASCHILDREN (int)
Cette boîte aux lettres a des inférieurs sélectionnables.
LATT_HASNOCHILDREN (int)
Cette boîte aux lettres n'a pas d'inférieurs sélectionnables.
SORTDATE (int)
Critère de tri pour imap_sort() : Date du message
SORTARRIVAL (int)
Critère de tri pour imap_sort() : Date d'arrivée
SORTFROM (int)
Critère de tri pour imap_sort() : Nom de la première boîte aux lettres de l'adresse d'origine (From address)
SORTSUBJECT (int)
Critère de tri pour imap_sort() : Sujet du message
SORTTO (int)
Critère de tri pour imap_sort() : Nom de la première boîte aux lettres de destination (To address)
SORTCC (int)
Critère de tri pour imap_sort() : Nom de la boîte aux lettres de copie cachée (cc address)
SORTSIZE (int)
Critère de tri pour imap_sort() : Taille du message en octets
TYPETEXT (int)
Type de corps primaire : texte non formaté
TYPEMULTIPART (int)
Type de corps primaire : plusieurs parties
TYPEMESSAGE (int)
Type de corps primaire : message encapsulé
TYPEAPPLICATION (int)
Type de corps primaire : données d'application
TYPEAUDIO (int)
Type de corps primaire : audio
TYPEIMAGE (int)
Type de corps primaire : image statique
TYPEVIDEO (int)
Type de corps primaire : vidéo
TYPEMODEL (int)
Type de corps primaire : modèle
TYPEOTHER (int)
Type de corps primaire : inconnue
ENC7BIT (int)
Encodage du corps : données sémantique SMTP 7 bit
ENC8BIT (int)
Encodage du corps : données sémantique SMTP 8 bit
ENCBINARY (int)
Encodage du corps : données binaire 8 bit
ENCBASE64 (int)
Encodage du corps : données encodé en base-64
ENCQUOTEDPRINTABLE (int)
Encodage du corps : données 8-7-bit lisibles par l'Homme
ENCOTHER (int)
Encodage du corps : inconnue
IMAP_OPENTIMEOUT (int)
IMAP_READTIMEOUT (int)
IMAP_WRITETIMEOUT (int)
IMAP_CLOSETIMEOUT (int)
IMAP_GC_ELT (int)
Collecte de la mémoire, suppression des caches d'éléments de message.
IMAP_GC_ENV (int)
Collecte de la mémoire, suppression des enveloppes et corps.
IMAP_GC_TEXTS (int)
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_is_open — Vérifier si le flux IMAP est toujours valide
  • 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_mutf7_to_utf8 — Décode une chaîne de caractère UTF-7 modifié en UTF-8
  • 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_to_mutf7 — Encode une chaîne de caractère UTF-8 en 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, PHP 8)

imap_8bit — Convertit une chaîne à 8 bits en une chaîne encodée en Quoted-Printable

Description

imap_8bit(string $string): string|false

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, ou false si une erreur survient.

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, PHP 8)

imap_alerts — Retourne toutes les alertes

Description

imap_alerts(): array|false

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

imap_append — Ajoute un message dans une boîte aux lettres

Description

imap_append(
IMAP\Connection $imap,
string $folder,
string $message,
?string $options = null,
?string $internal_date = null
): bool

Ajoute un message au folder spécifié.

Liste de paramètres

imap

Une instance de IMAP\Connection.

folder

Le nom de la boîte aux lettres, voir la documentation sur la fonction imap_open() pour plus d'informations

Avertissement

Passer des données qui ne sont pas digne de confiance à ce paramètre est dangereux, sauf si, imap.enable_insecure_rsh est désactivé.

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 folder

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
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.
8.0.0 | options et internal_date sont désormais nullable.

Exemples

Exemple #1 Exemple avec imap_append()

<?php
$imap = imap_open("{imap.example.org}INBOX.Drafts", "username", "password");

$check = imap_check($imap);
echo "Msg Count before append: ". $check->Nmsgs . "\n";

imap_append($imap, "{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($imap);
echo "Nombre de messages après ajout : ". $check->Nmsgs . "\n";

imap_close($imap);
?>


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, PHP 8)

imap_base64 — Décode un texte encodé en BASE64

Description

imap_base64(string $string): string|false

Décode le texte string encodé en BASE64.

Liste de paramètres

string

Le texte encodé.

Valeurs de retour

Retourne le texte décodé, sous la forme d'une chaîne de caractères, ou false si une erreur survient.

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, PHP 8)

imap_binary — Convertit une chaîne à 8 bits en une chaîne à base64

Description

imap_binary(string $string): string|false

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, ou false si une erreur survient.

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, PHP 8)

imap_body — Lit le corps d'un message

Description

imap_body(IMAP\Connection $imap, int $message_num, int $flags = 0): string|false

imap_body() retourne le corps du message numéro message_num 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

Une instance de IMAP\Connection.

message_num

Le numéro du message

flags

Le paramètre flags optionnel est un masque qui peut contenir les valeurs suivantes :

  • FT_UID - message_num 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, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.


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, PHP 8)

imap_bodystruct — Lit la structure d'une section du corps d'un mail

Description

imap_bodystruct(IMAP\Connection $imap, int $message_num, string $section): stdClass|false

Lit la structure d'une section spécifié du corps d'un mail.

Liste de paramètres

imap

Une instance de IMAP\Connection.

message_num

Le numéro du message

section

La section du corps à lire

Valeurs de retour

Retourne les informations dans un objet, ou false si une erreur survient. 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().

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.

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, PHP 8)

imap_check — Vérifie la boîte aux lettres courante

Description

imap_check(IMAP\Connection $imap): stdClass|false

Vérifie les informations de la boîte aux lettres courante.

Liste de paramètres

imap

Une instance de IMAP\Connection.

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.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.

Exemples

Exemple #1 Exemple avec imap_check()

<?php

$imap = imap_check($imap_stream);
var_dump($imap);

?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

imap_clearflag_full — Supprime un flag (drapeau) sur un message

Description

imap_clearflag_full(
IMAP\Connection $imap,
string $sequence,
string $flag,
int $options = 0
): true

imap_clearflag_full() efface le flag flag dans les messages de la séquence sequence, du flux imap stream.

Liste de paramètres

imap

Une instance de IMAP\Connection.

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

Retourne toujours true.

Erreurs / Exceptions

Lance une exception ValueError si le paramètre options est invalide.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.
8.0.0 | Une exception ValueError est désormais lancée pour des valeurs invalides du paramètre options. Auparavant, un avertissement était émis et la fonction retournait false.

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, PHP 8)

imap_close — Termine un flux IMAP

Description

imap_close(IMAP\Connection $imap, int $flags = 0): true

Termine un flux IMAP.

Liste de paramètres

imap

Une instance de IMAP\Connection.

flags

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

Retourne toujours true.

Erreurs / Exceptions

Lance une exception ValueError si le paramètre flags est invalide.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.
8.0.0 | Une exception ValueError est désormais lancée pour des valeurs de paramètre flags invalides. Auparavant, un avertissement était émis et la fonction retournait false.

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, PHP 8)

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, PHP 8)

imap_createmailbox — Crée une nouvelle boîte aux lettres

Description

imap_createmailbox(IMAP\Connection $imap, string $mailbox): bool

Crée une nouvelle boîte aux lettres nommée mailbox.

Liste de paramètres

imap

Une instance de IMAP\Connection.

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()

Avertissement

Passer des données qui ne sont pas digne de confiance à ce paramètre est dangereux, sauf si, imap.enable_insecure_rsh est désactivé.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.

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, PHP 8)

imap_delete — Marque le fichier pour l'effacement, dans la boîte aux lettres courante

Description

imap_delete(IMAP\Connection $imap, string $message_nums, int $flags = 0): bool

Marque les messages message_nums 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

Une instance de IMAP\Connection.

message_nums

Une chaîne de caractères représentant un ou plusieurs messages dans un style de format d'une séquence IMAP4 ("n", "n:m", ou une combinaison de ceci, délimité par des virgules).

flags

Vous pouvez le définir à FT_UID qui demande à la fonction de traiter l'argument message_nums comme un UID.

Valeurs de retour

Retourne toujours true.

Erreurs / Exceptions

Lance une exception ValueError si le paramètre flags est invalide.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.
8.0.0 | Une exception ValueError est désormais lancée pour des valeurs de paramètre flags invalides. Auparavant, un avertissement était émis et la fonction retournait false.

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, PHP 8)

imap_deletemailbox — Efface une boîte aux lettres

Description

imap_deletemailbox(IMAP\Connection $imap, string $mailbox): bool

Efface la boîte aux lettres spécifiée.

Liste de paramètres

imap

Une instance de IMAP\Connection.

mailbox

Le nom de la boîte aux lettres, voir la documentation sur la fonction imap_open() pour plus de détails

Avertissement

Passer des données qui ne sont pas digne de confiance à ce paramètre est dangereux, sauf si, imap.enable_insecure_rsh est désactivé.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.

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, PHP 8)

imap_errors — Retourne toutes les erreurs IMAP survenues

Description

imap_errors(): array|false

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

imap_expunge — Efface tous les messages marqués pour l'effacement

Description

imap_expunge(IMAP\Connection $imap): true

Efface tous les messages marqués pour l'effacement par imap_delete(), imap_mail_move(), ou imap_setflag_full().

Liste de paramètres

imap

Une instance de IMAP\Connection.

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.


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, PHP 8)

imap_fetch_overview — Lit le sommaire des en-têtes de messages

Description

imap_fetch_overview(IMAP\Connection $imap, string $sequence, int $flags = 0): array|false

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

Une instance de IMAP\Connection.

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

flags

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
  • udate : l'horodatage UNIX de l'heure d'arrivée
The function returns false on failure.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.

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, PHP 8)

imap_fetchbody — Retourne une section extraite du corps d'un message

Description

imap_fetchbody(
IMAP\Connection $imap,
int $message_num,
string $section,
int $flags = 0
): string|false

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

Une instance de IMAP\Connection.

message_num

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.

flags

L'option imap_fetchbody() est un masque qui peut contenir les valeurs suivantes :

  • FT_UID - message_num 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, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.

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, PHP 8)

imap_fetchheader — Retourne l'en-tête d'un message

Description

imap_fetchheader(IMAP\Connection $imap, int $message_num, int $flags = 0): string|false

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

Une instance de IMAP\Connection.

message_num

Le numéro du message

flags

Les options possibles sont :

  • FT_UID - message_num 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, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.

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, PHP 8)

imap_fetchmime — Récupère les en-têtes MIME pour une section particulière du message

Description

imap_fetchmime(
IMAP\Connection $imap,
int $message_num,
string $section,
int $flags = 0
): string|false

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

Une instance de IMAP\Connection.

message_num

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.

flags

Un masque d'une ou plusieurs options suivantes :

  • FT_UID - Le paramètre message_num 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, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.

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, PHP 8)

imap_fetchstructure — Lit la structure d'un message

Description

imap_fetchstructure(IMAP\Connection $imap, int $message_num, int $flags = 0): stdClass|false

imap_fetchstructure() lit la structure du message msg_number.

Liste de paramètres

imap

Une instance de IMAP\Connection.

message_num

Le numéro du message

flags

Ce paramètre optionnel n'a qu'une seule option, FT_UID, qui demande à la fonction de traiter l'argument message_num comme un UID.

Valeurs de retour

Retourne un objet dont les propriétés sont listées dans la table ci-dessous, ou false si une erreur survient.

Objet retourné 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)
Valeur | Type | Constante
0 | texte | TYPETEXT
1 | multipart | TYPEMULTIPART
2 | message | TYPEMESSAGE
3 | application | TYPEAPPLICATION
4 | audio | TYPEAUDIO
5 | image | TYPEIMAGE
6 | vidéo | TYPEVIDEO
7 | modèle | TYPEMODEL
8 | autre | TYPEOTHER

Codage de transfert (peut varier suivant la bibliothèque utilisée)
Valeur | Type | Constante
0 | 7 bit | ENC7BIT
1 | 8 bit | ENC8BIT
2 | Binaire | ENCBINARY
3 | Base 64 | ENCBASE64
4 | Cité imprimable | ENCQUOTEDPRINTABLE
5 | Autre | ENCOTHER

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.

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, PHP 8)

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, PHP 8)

imap_gc — Efface le cache IMAP

Description

imap_gc(IMAP\Connection $imap, int $flags): true

Supprime toutes les entrées d'un type donné dans le cache IMAP.

Liste de paramètres

imap

Une instance de IMAP\Connection.

flags

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

Retourne toujours true.

Erreurs / Exceptions

Lance une exception ValueError si le paramètre flags est invalide.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.
8.0.0 | Une exception ValueError est désormais lancée pour des valeurs de paramètre flags invalides. Auparavant, un avertissement était émis et la fonction retournait false.

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, PHP 8)

imap_get_quota — Lit les quotas des boîtes aux lettres ainsi que des statistiques sur chacune d'elles

Description

imap_get_quota(IMAP\Connection $imap, string $quota_root): array|false

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

Une instance de IMAP\Connection.

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.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.

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.

Le imap donné doit être ouvert en tant qu'administrateur mail, sinon cette fonction échoue.

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, PHP 8)

imap_get_quotaroot — Lit les quotas de chaque utilisateur

Description

imap_get_quotaroot(IMAP\Connection $imap, string $mailbox): array|false

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

Une instance de IMAP\Connection.

mailbox

mailbox 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.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.

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 devrait être ouvert en tant que l'utilisateur dont la boite mail que vous voulez vérifier.

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, PHP 8)

imap_getacl — Retourne le ACL pour la boîte aux lettres

Description

imap_getacl(IMAP\Connection $imap, string $mailbox): array|false

Récupère l'ACL pour la boîte aux lettres donnée.

Liste de paramètres

imap

Une instance de IMAP\Connection.

mailbox

Le nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails.

Avertissement

Passer des données qui ne sont pas digne de confiance à ce paramètre est dangereux, sauf si, imap.enable_insecure_rsh est désactivé.

Valeurs de retour

Retourne un tableau associatif sous la forme "folder" => "acl", ou false si une erreur survient.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.

Exemples

Exemple #1 Exemple avec imap_getacl()

<?php

print_r(imap_getacl($imap, 'user.joecool'));

?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

imap_getmailboxes — Liste les boîtes aux lettres, et retourne les détails de chacune

Description

imap_getmailboxes(IMAP\Connection $imap, string $reference, string $pattern): array|false

Liste les boîtes aux lettres.

Liste de paramètres

imap

Une instance de IMAP\Connection.

reference

reference ne devrait être que le serveur sous la forme décrite dans imap_open()

Avertissement

Passer des données qui ne sont pas digne de confiance à ce paramètre est dangereux, sauf si, imap.enable_insecure_rsh est désactivé.

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.

  • LATT_REFERRAL - Ce conteneur a une référence vers une boîte aux lettres distante.

  • LATT_HASCHILDREN - Cette boîte aux lettres a des inférieurs sélectionnables.

  • LATT_HASNOCHILDREN - Cette boîte aux lettres n'a pas d'inférieurs sélectionnables.

Retourne false en cas d'échec.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.

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, PHP 8)

imap_getsubscribed — Liste toutes les boîtes aux lettres souscrites

Description

imap_getsubscribed(IMAP\Connection $imap, string $reference, string $pattern): array|false

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

Une instance de IMAP\Connection.

reference

reference ne devrait être que le serveur sous la forme décrite dans imap_open()

Avertissement

Passer des données qui ne sont pas digne de confiance à ce paramètre est dangereux, sauf si, imap.enable_insecure_rsh est désactivé.

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.
  • LATT_REFERRAL - Ce conteneur a une référence vers une boîte aux lettres distante.
  • LATT_HASCHILDREN - Cette boîte aux lettres a des inférieurs sélectionnables.
  • LATT_HASNOCHILDREN - Cette boîte aux lettres n'a pas d'inférieurs sélectionnables.
The function returns false on failure.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.


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()

Avertissement

Cet alias est SUPPRIMÉ à partir de PHP 8.0.0.

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, PHP 8)

imap_headerinfo — Lit l'en-tête du message

Description

imap_headerinfo(
IMAP\Connection $imap,
int $message_num,
int $from_length = 0,
int $subject_length = 0
): stdClass|false

Récupère les informations sur un numéro de message donné en lisant ses en-têtes.

Liste de paramètres

imap

Une instance de IMAP\Connection.

message_num

Le numéro du message

from_length

Nombre de caractères pour la propriété fetchfrom. Doit être plus grand ou égal à 0.

subject_length

Nombre de caractères pour la propriété fetchsubject. Doit être plus grand ou égal à 0.

defaulthost

Valeurs de retour

Retourne false en cas d'erreurs ou, en cas de succès, 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 from_length caractères
  • "fetchsubject" : Ligne "subject" formatée afin de tenir dans subject_length caractères

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.
8.0.0 | Le paramètre defaulthost inutilisé a été supprimé.

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_is_open »
  • 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, PHP 8)

imap_headers — Retourne les en-têtes de tous les messages d'une boîte aux lettres

Description

imap_headers(IMAP\Connection $imap): array|false

Retourne les en-têtes de tous les messages d'une boîte aux lettres.

Liste de paramètres

imap

Une instance de IMAP\Connection.

Valeurs de retour

Retourne un tableau de chaînes contenant les en-têtes des messages : une chaîne par message. Retourne false en cas d'échec.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.


Vérifier si le flux IMAP est toujours valide

  • « imap_headers
  • imap_last_error »
  • PHP Manual
  • Fonctions IMAP
  • Vérifier si le flux IMAP est toujours valide

imap_is_open

(PHP 8 >= 8.2.1)

imap_is_open — Vérifier si le flux IMAP est toujours valide

Description

imap_is_open(IMAP\Connection $imap): bool

Vérifie si le flux IMAP est toujours valide.

Liste de paramètres

imap

Une instance de IMAP\Connection.

Valeurs de retour

Retourne true si le flux est toujours valide, false sinon.

Exemples

Exemple #1 Exemple de imap_is_open()

<?php
$mbox = imap_open("{imap.example.org:143}INBOX", "username", "password") or die(implode(", ", imap_errors()));
imap_is_open($mbox);
// ...
?>


Retourne la dernière erreur survenue

  • « imap_is_open
  • imap_list »
  • PHP Manual
  • Fonctions IMAP
  • Retourne la dernière erreur survenue

imap_last_error

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_last_error — Retourne la dernière erreur survenue

Description

imap_last_error(): string|false

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

imap_list — Lit la liste des boîtes aux lettres

Description

imap_list(IMAP\Connection $imap, string $reference, string $pattern): array|false

Lit la liste des boîtes aux lettres.

Liste de paramètres

imap

Une instance de IMAP\Connection.

reference

reference ne devrait être que le serveur sous la forme décrite dans imap_open()

Avertissement

Passer des données qui ne sont pas digne de confiance à ce paramètre est dangereux, sauf si, imap.enable_insecure_rsh est désactivé.

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, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.

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, PHP 8)

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, PHP 8)

imap_listscan — Lit la liste des boîtes aux lettres, et y recherche une chaîne

Description

imap_listscan(
IMAP\Connection $imap,
string $reference,
string $pattern,
string $content
): array|false

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

Une instance de IMAP\Connection.

reference

reference ne devrait être que le serveur sous la forme décrite dans imap_open()

Avertissement

Passer des données qui ne sont pas digne de confiance à ce paramètre est dangereux, sauf si, imap.enable_insecure_rsh est désactivé.

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, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.

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, PHP 8)

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, PHP 8)

imap_lsub — Liste toutes les boîtes aux lettres enregistrées

Description

imap_lsub(IMAP\Connection $imap, string $reference, string $pattern): array|false

Récupère un tableau contenant toutes les boîtes aux lettres auxquelles vous avez souscrit.

Liste de paramètres

imap

Une instance de IMAP\Connection.

reference

reference ne devrait être que le serveur sous la forme décrite dans imap_open()

Avertissement

Passer des données qui ne sont pas digne de confiance à ce paramètre est dangereux, sauf si, imap.enable_insecure_rsh est désactivé.

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, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.

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, PHP 8)

imap_mail_compose — Crée un message MIME

Description

imap_mail_compose(array $envelope, array $bodies): string|false

Crée un message MIME basé sur l'enveloppe envelope et les sections bodies.

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" et "message_id", qui définie les en-têtes respectifs à la chaîne de caractères donnée. Pour définir des en-têtes additionnels, la clé "custom_headers" est supporté, qui attend un tableau de ces en-têtes, par exemple ["User-Agent: My Mail Client"].

bodies

Un tableau indexé des corps. Le premier corps est le corps principal du message ; seulement s'il est du type TYPEMULTIPART, les corps suivant seront traité ; ces corps constitue les corps des parties.

Structure d'un Tableau d'un Corps
Clé | Type | Description
type | int | Le type MIME. Un de TYPETEXT (par défault), TYPEMULTIPART, TYPEMESSAGE, TYPEAPPLICATION, TYPEAUDIO, TYPEIMAGE, TYPEMODEL ou TYPEOTHER.
encoding | int | Le Content-Transfer-Encoding. Un de ENC7BIT (par défault), ENC8BIT, ENCBINARY, ENCBASE64, ENCQUOTEDPRINTABLE or ENCOTHER.
charset | string | Le jeu d'encodage du paramètre du type MIME.
type.parameters | array | Un tableau associatif de nom de paramètre Content-Type et leur valeurs.
subtype | string | Le sous-type MIME, e.g. 'jpeg' pour TYPEIMAGE.
id | string | Le Content-ID.
description | string | Le Content-Description.
disposition.type | string | Le Content-Disposition, e.g. 'attachment'.
disposition | array | Un tableau associatif de nom de paramètre Content-Disposition et leur valeurs.
contents.data | string | La charge utile.
lines | int | La taille de la charge utile en lignes.
bytes | int | La taille de la charge utile en octets.
md5 | string | La checksum MD5 de la charge utile.

Valeurs de retour

Retourne le message MIME en tant que chaîne de caractères, ou false si une erreur survient.

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, PHP 8)

imap_mail_copy — Copie les messages spécifiés dans une boîte aux lettres

Description

imap_mail_copy(
IMAP\Connection $imap,
string $message_nums,
string $mailbox,
int $flags = 0
): bool

Copie les messages email spécifiés par message_nums dans la boîte aux lettres spécifiée.

Liste de paramètres

imap

Une instance de IMAP\Connection.

message_nums

message_nums 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

Avertissement

Passer des données qui ne sont pas digne de confiance à ce paramètre est dangereux, sauf si, imap.enable_insecure_rsh est désactivé.

flags

flags 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. Si ce drapeau est défini, la fonction se comporte de manière identique à imap_mail_move().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.

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, PHP 8)

imap_mail_move — Déplace des messages dans une boîte aux lettres

Description

imap_mail_move(
IMAP\Connection $imap,
string $message_nums,
string $mailbox,
int $flags = 0
): bool

imap_mail_move() déplace les messages spécifiés par message_nums dans la boîte aux lettres mailbox. À noter que les messages sont en réalité copiées à la boîte au lettres mailbox, et les messages originaux sont marquées pour être supprimés. Ceci implique que les messages dans mailbox sont assignées des nouveaux UIDs.

Liste de paramètres

imap

Une instance de IMAP\Connection.

message_nums

message_nums 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

Avertissement

Passer des données qui ne sont pas digne de confiance à ce paramètre est dangereux, sauf si, imap.enable_insecure_rsh est désactivé.

flags

flags 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.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.

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, PHP 8)

imap_mail — Envoie un message mail

Description

imap_mail(
string $to,
string $subject,
string $message,
?string $additional_headers = null,
?string $cc = null,
?string $bcc = null,
?string $return_path = null
): bool

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.

return_path

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.

Historique

Version | Description
8.0.0 | additional_headers, cc, bcc, et return_path sont désormais nullable.

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, PHP 8)

imap_mailboxmsginfo — Lit les informations à propos de la boîte aux lettres courante

Description

imap_mailboxmsginfo(IMAP\Connection $imap): stdClass

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

Une instance de IMAP\Connection.

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

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.

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, PHP 8)

imap_mime_header_decode — Décode les éléments MIME d'un en-tête

Description

imap_mime_header_decode(string $string): array|false

Décode un message MIME qui contient des données non ASCII (voir » RFC2047).

Liste de paramètres

string

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.

Cette fonction retourne false en cas d'échec.

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_mutf7_to_utf8 »
  • 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, PHP 8)

imap_msgno — Retourne le numéro de séquence du message pour un UID donné

Description

imap_msgno(IMAP\Connection $imap, int $message_uid): int

Retourne le numéro de séquence du message pour l'UID message_uid.

Cette fonction est l'inverse de la fonction imap_uid().

Liste de paramètres

imap

Une instance de IMAP\Connection.

message_uid

L'UID du message

Valeurs de retour

Retourne le numéro de séquence du message pour l'UID message_uid.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.

Voir aussi

  • imap_uid() - Retourne l'UID d'un message


Décode une chaîne de caractère UTF-7 modifié en UTF-8

  • « imap_msgno
  • imap_num_msg »
  • PHP Manual
  • Fonctions IMAP
  • Décode une chaîne de caractère UTF-7 modifié en UTF-8

imap_mutf7_to_utf8

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

imap_mutf7_to_utf8 — Décode une chaîne de caractère UTF-7 modifié en UTF-8

Description

imap_mutf7_to_utf8(string $string): string|false

Décode une chaîne de caractères UTF-7 modifié (comme spécifié dans la RFC 2060, section 5.1.3) en UTF-8.

Note:

Cette fonction est seulement disponible, si libcclient exporte utf8_to_mutf7().

Liste de paramètres

string

Une chaîne de caractères encodé en UTF-7 modifié.

Valeurs de retour

Retourne string convertit en UTF-8, ou false si une erreur survient.

Voir aussi

  • imap_utf8_to_mutf7() - Encode une chaîne de caractère UTF-8 en UTF-7 modifié


Retourne le nombre de messages dans la boîte aux lettres courante

  • « imap_mutf7_to_utf8
  • 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, PHP 8)

imap_num_msg — Retourne le nombre de messages dans la boîte aux lettres courante

Description

imap_num_msg(IMAP\Connection $imap): int|false

Retourne le nombre de messages dans la boîte aux lettres courante.

Liste de paramètres

imap

Une instance de IMAP\Connection.

Valeurs de retour

Retourne le nombre de messages dans la boîte aux lettres courante, sous la forme d'un entier, ou false en cas d'erreur.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.

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, PHP 8)

imap_num_recent — Retourne le nombre de messages récents dans la boîte aux lettres courante

Description

imap_num_recent(IMAP\Connection $imap): int

Retourne le nombre de messages récents dans la boîte aux lettres courante.

Liste de paramètres

imap

Une instance de IMAP\Connection.

Valeurs de retour

Retourne le nombre de messages récents dans la boîte aux lettres courante, sous la forme d'un entier.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.

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, PHP 8)

imap_open — Ouvre un flux IMAP vers une boîte aux lettres

Description

imap_open(
string $mailbox,
string $user,
string $password,
int $flags = 0,
int $retries = 0,
array $options = []
): IMAP\Connection|false

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().

Avertissement

Passer des données qui ne sont pas digne de confiance à ce paramètre est dangereux, sauf si, imap.enable_insecure_rsh est désactivé.

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 autosigné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)

user

Le nom d'utilisateur

password

Le mot de passe associé avec l'utilisateur user

flags

flags 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ébogage 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

retries

Le nombre maximal de tentatives de connexion.

options

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 une instance de IMAP\Connection en cas de succès, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Retourne désormais une instance de IMAP\Connection ; auparavant, une ressource était retournée.

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 autosigné
// 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, PHP 8)

imap_ping — Vérifie que le flux IMAP est toujours actif

Description

imap_ping(IMAP\Connection $imap): bool

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

Une instance de IMAP\Connection.

Valeurs de retour

Retourne true si le flux est toujours actif, false sinon.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.

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, PHP 8)

imap_qprint — Convertit une chaîne à guillemets en une chaîne à 8 bits

Description

imap_qprint(string $string): string|false

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, ou false si une erreur survient.

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, PHP 8)

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, PHP 8)

imap_renamemailbox — Renomme une boîte aux lettres

Description

imap_renamemailbox(IMAP\Connection $imap, string $from, string $to): bool

imap_renamemailbox() renomme la boîte aux lettres from en to (voir la fonction imap_open() pour le format des noms mbox).

Liste de paramètres

imap

Une instance de IMAP\Connection.

from

L'ancien nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails

Avertissement

Passer des données qui ne sont pas digne de confiance à ce paramètre est dangereux, sauf si, imap.enable_insecure_rsh est désactivé.

to

Le nouveau nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails

Avertissement

Passer des données qui ne sont pas digne de confiance à ce paramètre est dangereux, sauf si, imap.enable_insecure_rsh est désactivé.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.

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, PHP 8)

imap_reopen — Réouvre un flux IMAP vers une nouvelle boîte aux lettres

Description

imap_reopen(
IMAP\Connection $imap,
string $mailbox,
int $flags = 0,
int $retries = 0
): bool

Réouvre la connexion spécifiée au serveur IMAP ou NNTP, avec une nouvelle boîtes aux lettres.

Liste de paramètres

imap

Une instance de IMAP\Connection.

mailbox

Le nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails

Avertissement

Passer des données qui ne sont pas digne de confiance à ce paramètre est dangereux, sauf si, imap.enable_insecure_rsh est désactivé.

flags

flags 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()).

retries

Le nombre maximal de tentatives de connexion

Valeurs de retour

Retourne true si le flux est réouvert, false sinon.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.

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, PHP 8)

imap_rfc822_parse_adrlist — Analyse une adresse email

Description

imap_rfc822_parse_adrlist(string $string, string $default_hostname): array

Analyse la chaîne address, tel que définie dans la » RFC2822.

Liste de paramètres

string

Une chaîne de caractères contenant les adresses

default_hostname

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, PHP 8)

imap_rfc822_parse_headers — Analyse un en-tête mail

Description

imap_rfc822_parse_headers(string $headers, string $default_hostname = "UNKNOWN"): stdClass

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

default_hostname

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, PHP 8)

imap_rfc822_write_address — Retourne une adresse email formatée correctement

Description

imap_rfc822_write_address(string $mailbox, string $hostname, string $personal): string|false

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

Avertissement

Passer des données qui ne sont pas digne de confiance à ce paramètre est dangereux, sauf si, imap.enable_insecure_rsh est désactivé.

hostname

La partie hôte de l'email

personal

Le nom du propriétaire du compte

Valeurs de retour

Retourne une adresse email formatée correctement selon la » RFC2822, ou false si une erreur survient.

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, PHP 8)

imap_savebody — Sauvegarde une partie spécifique du corps dans un fichier

Description

imap_savebody(
IMAP\Connection $imap,
resource|string|int $file,
int $message_num,
string $section = "",
int $flags = 0
): bool

Sauvegarde une partie du corps du message spécifié.

Liste de paramètres

imap

Une instance de IMAP\Connection.

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().

message_num

Le numéro du message

section

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.

flags

Un masque qui contient une ou plusieurs des valeurs suivantes :

  • FT_UID - Le numéro message_num 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.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.

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, PHP 8)

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, PHP 8)

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, PHP 8)

imap_search — Retourne un tableau de messages après recherche

Description

imap_search(
IMAP\Connection $imap,
string $criteria,
int $flags = SE_FREE,
string $charset = ""
): array|false

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 la » RFC1176, et en particulier, la section "tag SEARCH search_criteria").

Liste de paramètres

imap

Une instance de IMAP\Connection.

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

flags

Les valeurs pour flags sont SE_UID, qui fait que le tableau réponse contient les UID plutôt que les numéros de séquence.

charset

Jeu de caractères MIME à utiliser lors de la recherche de chaîne de caractères.

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é.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.

Exemples

Exemple #1 Exemple avec imap_search()

<?php
$imap = imap_open('{imap.example.com:993/imap/ssl}INBOX', 'foo@example.com', 'pass123', OP_READONLY);

$some = imap_search($imap, 'SUBJECT "HOWTO be Awesome" SINCE "8 August 2008"', SE_UID);
$msgnos = imap_search($imap, 'ALL');
$uids = imap_search($imap, 'ALL', SE_UID);

print_r($some);
print_r($msgnos);
print_r($uids);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

imap_set_quota — Modifie le quota d'une boîte aux lettres

Description

imap_set_quota(IMAP\Connection $imap, string $quota_root, int $mailbox_size): bool

Modifie le quota de la boîte aux lettres quota_root.

Liste de paramètres

imap

Une instance de IMAP\Connection.

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.

mailbox_size

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.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.

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 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, PHP 8)

imap_setacl — Modifie le ACL de la boîte aux lettres

Description

imap_setacl(
IMAP\Connection $imap,
string $mailbox,
string $user_id,
string $rights
): bool

Définit l'ACL pour la boîte aux lettres donnée.

Liste de paramètres

imap

Une instance de IMAP\Connection.

mailbox

Le nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails

Avertissement

Passer des données qui ne sont pas digne de confiance à ce paramètre est dangereux, sauf si, imap.enable_insecure_rsh est désactivé.

user_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.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.

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, PHP 8)

imap_setflag_full — Positionne un drapeau sur un message

Description

imap_setflag_full(
IMAP\Connection $imap,
string $sequence,
string $flag,
int $options = 0
): true

imap_setflag_full() affecte le flag spécifié aux messages de la sequence donnée.

Liste de paramètres

imap

Une instance de IMAP\Connection.

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

Retourne toujours true.

Erreurs / Exceptions

Lance une exception ValueError si le paramètre options est invalide.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.
8.0.0 | Une exception ValueError est désormais lancée pour des valeurs de paramètre options invalides. Auparavant, un avertissement était émis et la fonction retournait false.

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, PHP 8)

imap_sort — Trie des messages

Description

imap_sort(
IMAP\Connection $imap,
int $criteria,
bool $reverse,
int $flags = 0,
?string $search_criteria = null,
?string $charset = null
): array|false

Récupère et trie les numéros de messages en fonction des paramètres donnés.

Liste de paramètres

imap

Une instance de IMAP\Connection.

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

S'il faut trier en ordre inverse.

flags

Les flags 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

Critères de recherche IMAP2-format. Pour plus de détails voir imap_search().

charset

Jeu de caractères MIME à utiliser lors de la recherche de chaîne de caractères.

Valeurs de retour

Retourne un tableau de numéros de messages triés en fonction des paramètres fournis, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.
8.0.0 | reverse est un bool au lieu de int.
8.0.0 | search_criteria et charset sont désormais nullable.


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, PHP 8)

imap_status — Retourne les informations de statut sur une boîte aux lettres

Description

imap_status(IMAP\Connection $imap, string $mailbox, int $flags): stdClass|false

Retourne les informations de statut sur la boîte aux lettres mailbox.

Liste de paramètres

imap

Une instance de IMAP\Connection.

mailbox

Le nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails

Avertissement

Passer des données qui ne sont pas digne de confiance à ce paramètre est dangereux, sauf si, imap.enable_insecure_rsh est désactivé.

flags

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, ou false si une erreur survient. 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.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.

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, PHP 8)

imap_subscribe — Souscrit à une boîte aux lettres

Description

imap_subscribe(IMAP\Connection $imap, string $mailbox): bool

Souscrit à une boîte aux lettres.

Liste de paramètres

imap

Une instance de IMAP\Connection.

mailbox

Le nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails

Avertissement

Passer des données qui ne sont pas digne de confiance à ce paramètre est dangereux, sauf si, imap.enable_insecure_rsh est désactivé.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.

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, PHP 8)

imap_thread — Retourne l'arbre des messages organisés par thread

Description

imap_thread(IMAP\Connection $imap, int $flags = SE_FREE): array|false

Retourne l'arbre des messages organisés par thread.

Liste de paramètres

imap

Une instance de IMAP\Connection.

flags

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"]

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.

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, PHP 8)

imap_timeout — Configure ou retourne le timeout

Description

imap_timeout(int $timeout_type, int $timeout = -1): int|bool

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, PHP 8)

imap_uid — Retourne l'UID d'un message

Description

imap_uid(IMAP\Connection $imap, int $message_num): int|false

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

Une instance de IMAP\Connection.

message_num

Le numéro du message.

Valeurs de retour

L'UID d'un message donné.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.

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, PHP 8)

imap_undelete — Enlève la marque d'effacement d'un message

Description

imap_undelete(IMAP\Connection $imap, string $message_nums, int $flags = 0): true

Enlève la marque d'effacement du message message_nums, placée avec imap_delete() ou imap_mail_move().

Liste de paramètres

imap

Une instance de IMAP\Connection.

message_nums

Une chaîne de caractères représentant un ou plusieurs messages dans un style de format d'une séquence IMAP4 ("n", "n:m", ou une combinaison de ceci, délimité par des virgules).

flags

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.

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, PHP 8)

imap_unsubscribe — Termine la souscription à une boîte aux lettres

Description

imap_unsubscribe(IMAP\Connection $imap, string $mailbox): bool

Termine la souscription à la boîte aux lettres mailbox.

Liste de paramètres

imap

Une instance de IMAP\Connection.

mailbox

Le nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails.

Avertissement

Passer des données qui ne sont pas digne de confiance à ce paramètre est dangereux, sauf si, imap.enable_insecure_rsh est désactivé.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | La paramètre imap attend désormais une instance de IMAP\Connection ; auparavant, une ressource imap était attendue.

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, PHP 8)

imap_utf7_decode — Décode une chaîne encodée en UTF-7 modifié

Description

imap_utf7_decode(string $string): string|false

imap_utf7_decode() décode la chaîne UTF-7 string 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

string

L'encodage UTF-7 modifié est défini dans la » RFC 2060, section 5.1.3.

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 string, ou false si string contient une séquence UTF-7 modifiée invalide ou si string 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_to_mutf7 »
  • 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, PHP 8)

imap_utf7_encode — Convertit une chaîne ISO-8859-1 en texte UTF-7 modifié

Description

imap_utf7_encode(string $string): string

Convertit une chaîne string 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

string

Une chaîne de caractères ISO-8859-1.

Valeurs de retour

Retourne les données string encodées avec l'encodage UTF-7 modifié tel que défini dans la » RFC 2060, section 5.1.3.

Voir aussi

  • imap_utf7_decode() - Décode une chaîne encodée en UTF-7 modifié


Encode une chaîne de caractère UTF-8 en UTF-7 modifié

  • « imap_utf7_encode
  • imap_utf8 »
  • PHP Manual
  • Fonctions IMAP
  • Encode une chaîne de caractère UTF-8 en UTF-7 modifié

imap_utf8_to_mutf7

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

imap_utf8_to_mutf7 — Encode une chaîne de caractère UTF-8 en UTF-7 modifié

Description

imap_utf8_to_mutf7(string $string): string|false

Encode une chaîne de caractères UTF-8 en UTF-7 modifié (comme spécifié dans la RFC 2060, section 5.1.3).

Note:

Cette fonction est seulement disponible, si libcclient exporte utf8_to_mutf7().

Liste de paramètres

string

Une chaîne de caractères encodé en UTF-8.

Valeurs de retour

Retourne string converti en UTF-7 modifié, ou false si une erreur survient.

Voir aussi

  • imap_mutf7_to_utf8() - Décode une chaîne de caractère UTF-7 modifié en UTF-8


Convertit du texte au format MIME en UTF-8

  • « imap_utf8_to_mutf7
  • IMAP\Connection »
  • PHP Manual
  • Fonctions IMAP
  • Convertit du texte au format MIME en UTF-8

imap_utf8

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_utf8 — Convertit du texte au format MIME en UTF-8

Description

imap_utf8(string $mime_encoded_text): string

Convertit le texte mime_encoded_text en UTF-8, si le jeu de caractères déclaré est connu de libc-client. Sinon, le texte founi sera décodé, mais pas converti 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 la chaîne de caractères décodé et si possible, converti en UTF-8.

Exemples

Exemple #1 Utilisation de base de la fonction imap_utf8()

<?php
echo imap_utf8("Johannes =?ISO-8859-1?Q?Schl=FCter?=");
?>

Résultat de l'exemple ci-dessus est similaire à :

Johannes Schlu¨ter

Voir aussi

  • imap_mime_header_decode() - Décode les éléments MIME d'un en-tête


La classe IMAP\Connection

(PHP 8 >= 8.1.0)

Introduction

Une classe complètement opaque qui remplace la ressource imap à partir de PHP 8.1.0.

Synopsis de la classe

final class IMAP\Connection {
}


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" | INI_PERDIR |
mail.log | NULL | INI_SYSTEM|INI_PERDIR |
mail.force_extra_parameters | NULL | INI_SYSTEM|INI_PERDIR |
SMTP | "localhost" | INI_ALL |
smtp_port | "25" | INI_ALL |
sendmail_from | NULL | INI_ALL |
sendmail_path | "/usr/sbin/sendmail -t -i" | INI_SYSTEM |
Pour plus de détails sur les modes 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().

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.

sendmail_from string

Sous Windows seulement : valeur du champ "From:" qui doit être utilisée lors de l'envoi de mail via SMTP (uniquement sous Windows). 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

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.4.0, et a été SUPPRIMÉE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

ezmlm_hash(string $addr): int

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, PHP 8)

mail — Envoi de mail

Description

mail(
string $to,
string $subject,
string $message,
array|string $additional_headers = [],
string $additional_params = ""
): bool

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 , Autre destinataire

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)

String ou array à 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.

Si un array est passé, ses clés sont les noms d'en-tête et ses valeurs sont les valeurs d'en-tête respectives.

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 définit également l'en-tête Return-Path lors de l'envoi direct via SMTP (Windows uniquement).

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_params (optionnel)

Le paramètre additional_params 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
7.2.0 | Le paramètre additional_headers accepte maintenant les array.

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 array d'en-têtes supplémentaires

Cet exemple envoie le même courrier que l'exemple ci-dessus, mais passe les en-têtes supplémentaires en tant que tableau (disponible depuis PHP 7.2.0).

<?php
$to = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = array(
'From' => 'webmaster@example.com',
'Reply-To' => 'webmaster@example.com',
'X-Mailer' => 'PHP/' . phpversion()
);

mail($to, $subject, $message, $headers);
?>

Exemple #4 Envoi d'un mail avec un paramètre de ligne de commande additionnel

Le paramètre additional_params 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 #5 Envoi de mail HTML

Il est également possible d'envoyer des mails HTML avec la fonction mail().

<?php
// Plusieurs destinataires
$to = 'johny@example.com, sally@example.com'; // notez la virgule

// 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';
$headers[] = 'Content-type: text/html; charset=iso-8859-1';

// En-têtes additionnels
$headers[] = 'To: Mary <mary@example.com>, Kelly <kelly@example.com>';
$headers[] = 'From: Anniversaire <anniversaire@example.com>';
$headers[] = 'Cc: anniversaire_archive@example.com';
$headers[] = 'Bcc: anniversaire_verif@example.com';

// Envoi
mail($to, $subject, $message, implode("\r\n", $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 SMTP (uniquement sous Windows) de la fonction mail() diffère de manière significative avec l'implémentation de sendmail. 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

  • mb_send_mail() - Envoie un mail encodé
  • 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 peu couteux en ressources lorsqu'il traite de gros messages.

Note:

Mailparse nécessite l'extension mbstring.


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 : » https://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. Les binaires Windows (les fichiers DLL) pour cette extension PECL sont disponibles sur le site web PECL.

Il est nécessaire que l'extension mbstring soit chargé avant mailparse.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Mailparse Options de configuration
Nom | Défaut | Modifiable | Historique
mailparse.def_charset | "us-ascii" | INI_SYSTEM |
Pour plus de détails sur les modes INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

mailparse.def_charset string

Le jeu de caractère par défaut.


Types de ressources

Mailparse définit le type de ressource mailparse_mail_structure, qui est retourné par mailparse_msg_create() et mailparse_msg_parse_file().


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.


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

mailparse_determine_best_xfer_encoding(resource $fp): string

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);

?>

Résultat de l'exemple ci-dessus est 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

mailparse_msg_create(): resource

Crée une ressource email MIME.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un gestionnaire qui pourra être utilisé pour analyser un message.

Notes

Note:

Il est recommandé d'appeler mailparse_msg_free() sur le résultat de cette fonction, quand il n'est plus nécessaire, pour éviter des fuites de mémoires.

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

mailparse_msg_extract_part_file(resource $mimemail, mixed $filename, callable $callbackfunc = ?): string

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

mailparse_msg_extract_part(resource $mimemail, string $msgbody, callable $callbackfunc = ?): void
Avertissement

Cette fonction est actuellement non documentée ; 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

mailparse_msg_extract_whole_part_file(resource $mimemail, string $filename, callable $callbackfunc = ?): string
Avertissement

Cette fonction est actuellement non documentée ; 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

mailparse_msg_free(resource $mimemail): bool

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

mailparse_msg_get_part_data(resource $mimemail): array
Avertissement

Cette fonction est actuellement non documentée ; 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

mailparse_msg_get_part(resource $mimemail, string $mimesection): resource
Avertissement

Cette fonction est actuellement non documentée ; 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

mailparse_msg_get_structure(resource $mimemail): array
Avertissement

Cette fonction est actuellement non documentée ; 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

mailparse_msg_parse_file(string $filename): resource

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.

Note:

Le message contenu dans le paramètre filename est supposé se terminer avec un caractère de nouvelle ligne (CRLF) ; sinon, la dernière ligne du message ne sera pas analysée.

Valeurs de retour

Retourne une ressource MIME représentant la structure, ou false si une erreur survient.

Notes

Note:

Il est recommandé d'appeler mailparse_msg_free() sur le résultat de cette fonction, quand il n'est plus nécessaire, pour éviter des fuites de mémoires.

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

mailparse_msg_parse(resource $mimemail, string $data): bool

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

Note:

Le bloc final d'un data est supposé être un caractère de nouvelle ligne (CRLF) ; sinon, la dernière ligne du message se sera pas analysée.

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

mailparse_rfc822_parse_addresses(string $addresses): array

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

mailparse_stream_encode(resource $sourcefp, resource $destfp, string $encoding): bool

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
  • Extensions sur les mathématiques »
  • 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

mailparse_uudecode_all(resource $fp): array

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


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
  • Math — Fonctions mathématiques
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Math
  • Statistics
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Statistic Fonctions
  • 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 — Définit ou récupère la précision par défaut pour toutes les fonctions bc math
    • 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 BCMath, qui supporte n'importe quelle précision et n'importe quelle taille de nombres jusqu'à 2147483647 (ou 0x7FFFFFFF) chiffres décimals, s'il y a suffisamment de mémoire, représentés sous la forme d'une chaîne de caractères.

Les nombres BCMath valides (c.à.d. bien formés) sont des chaînes qui correspondent à l'expression régulière /^[+-]?[0-9]*(\.[0-9]*)?$/.

Attention

Le passage de valeurs de type nombre décimal à une fonction BCMath qui attend une chaîne de caractères comme opérande peut ne pas avoir l'effet désiré en raison de la façon dont PHP convertit les valeurs nombre décimal en chaîne de caractères, à savoir que la chaîne de caractères peut être en notation exponentielle (ce qui n'est pas pris en charge par BCMath), et que, antérieur à PHP 8.0.0, le séparateur décimal dépend de la locale (tandis que BCMath attend toujours un point décimal).

<?php
$num1 = 0; // (string) 0 => '0'
$num2 = -0.000005; // (string) -0.000005 => '-5.05E-6'
echo bcadd($num1, $num2, 6); // => '0.000000'

setlocale(LC_NUMERIC, 'de_DE'); // utilise une virgule décimale
$num2 = 1.2; // (string) 1.2 => '1,2'
echo bcsub($num1, $num2, 1); // => '0.0'
?>


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" | INI_ALL |
Pour plus de détails sur les modes INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

bcmath.scale int

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 — Définit ou récupère la précision par défaut pour toutes les fonctions bc math
  • 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, PHP 8)

bcadd — Additionne deux nombres de grande taille

Description

bcadd(string $num1, string $num2, ?int $scale = null): string

Additionne num1 et num2.

Liste de paramètres

num1

L'opérande gauche, sous la forme d'une chaîne de caractères.

num2

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 chiffres 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.

Historique

Version | Description
8.0.0 | scale est désormais nullable.

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, PHP 8)

bccomp — Compare deux nombres de grande taille

Description

bccomp(string $num1, string $num2, ?int $scale = null): int

Compare l'opérande num1 avec l'opérande num2 et retourne le résultat sous forme d'un entier.

Liste de paramètres

num1

L'opérande de gauche, sous la forme d'une chaîne de caractères.

num2

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 num1 est plus grand que l'opérande num2, -1 sinon.

Historique

Version | Description
8.0.0 | scale est désormais nullable.

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, PHP 8)

bcdiv — Divise deux nombres de grande taille

Description

bcdiv(string $num1, string $num2, ?int $scale = null): string

Divise l'opérande num1 par l'opérande num2.

Liste de paramètres

num1

Le dividende, sous la forme d'une chaîne de caractères.

num2

Le diviseur, sous la forme d'une chaîne de caractères.

scale

Ce paramètre optionnel est utilisé pour définir le nombre de chiffres 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 num2 vaut 0.

Historique

Version | Description
8.0.0 | scale est désormais nullable.

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, PHP 8)

bcmod — Retourne le reste d'une division entre nombres de grande taille

Description

bcmod(string $num1, string $num2, ?int $scale = null): string

Retourne le reste de la division entre num1 en utilisant num2. Sauf si num2 est égal à zéro, le résultat à le même signe que num1.

Liste de paramètres

num1

Le dividende, sous la forme d'une chaîne de caractères.

num2

Le diviseur, 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 num2 vaut 0.

Historique

Version | Description
8.0.0 | scale est désormais nullable.
7.2.0 | num1 et num2 ne sont plus tronqués en entier. Le comportement de bcmod() suit fmod() plutôt que l'opérateur %.
7.2.0 | Le paramètre scale a été ajouté.

Exemples

Exemple #1 Exemple avec bcmod()

<?php
bcscale(0);
echo bcmod( '5', '3'); // 2
echo bcmod( '5', '-3'); // 2
echo bcmod('-5', '3'); // -2
echo bcmod('-5', '-3'); // -2
?>

Exemple #2 bcmod() aved des décimales

<?php
bcscale(1);
echo bcmod('5.7', '1.3'); // 0.5 depuis PHP 7.2.0; 0 precédement
?>

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, PHP 8)

bcmul — Multiplie deux nombres de grande taille

Description

bcmul(string $num1, string $num2, ?int $scale = null): string

Multiplie l'opérande num1 par l'opérande num2.

Liste de paramètres

num1

L'opérande de gauche, sous la forme d'une chaîne de caractères.

num2

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 chiffres 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.

Historique

Version | Description
8.0.0 | scale est désormais nullable.
7.3.0 | bcmul() retourne désormais les nombres avec la précision demandé. Auparavant, les nombres retournés pouvait omettre les zéros décimaux trainant à la fin.

Exemples

Exemple #1 Exemple avec bcmul()

<?php
echo bcmul('1.34747474747', '35', 3); // 47.161
echo bcmul('2', '4'); // 8
?>

Notes

Note:

Antérieur à PHP 7.3.0 bcmul() peut retourner un résultat 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 bcmul('5', '2', 2); // affiche "10", pas "10.00"
?>

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, PHP 8)

bcpow — Élève un nombre à une puissance donnée

Description

bcpow(string $num, string $exponent, ?int $scale = null): string

Élève num à la puissance exponent.

Liste de paramètres

num

La base, sous la forme d'une chaîne de caractères.

exponent

L'exposant, sous la forme d'une chaîne de caractères. Si l'exposant n'est pas intégral, il est tronqué. L'intervale valide de l'exposant dépend de la platforme, mais c'est au minimum de -2147483648 à 2147483647.

scale

Ce paramètre optionnel est utilisé pour définir le nombre de chiffres 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.

Historique

Version | Description
7.3.0 | bcpow() retourne désormais les nombres avec la précision demandé. Auparavant, les nombres retournés pouvait omettre les zéros décimaux trainant à la fin.

Exemples

Exemple #1 Exemple avec bcpow()

<?php

echo bcpow('4.2', '3', 2); // 74.08

?>

Notes

Note:

Antérieur à PHP 7.3.0 bcpow() peut retourner un résultat 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, PHP 8)

bcpowmod — Calcule le reste modulo d'un nombre élevé à une puissance

Description

bcpowmod(
string $num,
string $exponent,
string $modulus,
?int $scale = null
): string

Utilise la méthode d'exponentiation rapide pour élever le nombre num à la puissance exponent, et en calculant le reste modulo modulus.

Liste de paramètres

num

La base, sous la forme d'une chaîne de caractères (c'est-à-dire que l'échelle doit être nulle).

exponent

L'exposant, sous la forme d'une chaîne de caractères non négarive (c'est-à-dire que l'échelle doit être nulle).

modulus

Le modulo, sous la forme d'une chaîne de caractères (c'est-à-dire que l'échelle doit être nulle).

scale

Ce paramètre optionnel est utilisé pour définir le nombre de chiffres 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 false si modulus vaut 0 ou exponent est négatif.

Historique

Version | Description
8.0.0 | scale est désormais nullable.

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.

?>

Notes

Note:

Comme cette méthode utilise les opérations de modulo, les nombres non positifs risquent de donner des résultats inattendus.

Voir aussi

  • bcpow() - Élève un nombre à une puissance donnée
  • bcmod() - Retourne le reste d'une division entre nombres de grande taille


Définit ou récupère la précision par défaut pour toutes les fonctions bc math

  • « bcpowmod
  • bcsqrt »
  • PHP Manual
  • Fonctions BC Math
  • Définit ou récupère la précision par défaut pour toutes les fonctions bc math

bcscale

(PHP 4, PHP 5, PHP 7, PHP 8)

bcscale — Définit ou récupère la précision par défaut pour toutes les fonctions bc math

Description

bcscale(int $scale): int

Définit la précision par défaut pour tous les appels ultérieurs aux fonctions bc math qui omettent le paramètre de précision.

bcscale(null $scale = null): int

Récupère le facteur de précision actuel.

Liste de paramètres

scale

Le facteur de précision.

Valeurs de retour

Retourne l'ancienne précision quand utilisé en tant que définisseur. Sinon la précision actuelle est retournée.

Historique

Version | Description
8.0.0 | scale est désormais nullable.
7.3.0 | bcscale() peut désormais être utilisée pour récupérer la précision actuelle ; quand elle est utilisée pour définir une nouvelle précision, elle retourne désormais l'ancienne précision. Auparavant, scale était obligatoire, et bcscale() retournait toujours true.

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, PHP 8)

bcsqrt — Récupère la racine carrée d'un nombre de grande taille

Description

bcsqrt(string $num, ?int $scale = null): string

Retourne la racine carrée de l'opérande num.

Liste de paramètres

num

L'opérande, sous la forme d'une chaîne de caractères BCMath numérique bien formée.

scale

Ce paramètre optionnel est utilisé pour définir le nombre de chiffres 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 num est négatif.

Erreurs / Exceptions

Cette fonction lance une erreur ValueError dans les cas suivants :

  • num n'est pas une chaîne numérique BCMath bien formée
  • num est inférieur à 0
  • scale est en dehors de la plage valide

Historique

Version | Description
8.0.0 | Si num n'est pas une chaîne numérique BCMath bien formée, ou est inférieur à 0, une ValueError est levée. Précédemment, E_WARNING était émis à la place.
8.0.0 | scale doit désormais être compris entre 0 et 2147483647. Précédemment, les échelles négatives étaient traitées silencieusement comme 0. scale est désormais nullable.

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, PHP 8)

bcsub — Soustrait un nombre de grande taille d'un autre

Description

bcsub(string $num1, string $num2, ?int $scale = null): string

Soustrait l'opérande num2 de l'opérande num1.

Liste de paramètres

num1

L'opérande de gauche, sous la forme d'une chaîne de caractères.

num2

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 chiffres 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.

Historique

Version | Description
8.0.0 | scale est désormais nullable.

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
  • Constantes pré-définies
  • Exemples
  • Fonctions GMP
    • gmp_abs — Valeur absolue GMP
    • gmp_add — Addition de 2 nombres GMP
    • gmp_and — ET logique
    • gmp_binomial — Calcul le coefficient binomial
    • 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 PGCD
    • 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_kronecker — Symbole Kronecker
    • gmp_lcm — Calcul le PPCM
    • 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_power — Vérifie si un nombre est une puissance parfaite
    • 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 — Récupérer un entier uniformément sélectionné
    • gmp_random_seed — Définit la graine RNG (Générateur de Nombres Aléatoire)
    • 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
    • GMP::__construct — Crée un nombre GMP
    • GMP::__serialize — Sérialise l'objet GMP
    • GMP::__unserialize — Désérialise le paramètre data en un objet GMP


Introduction

Ces fonctions permettent de travailler avec des nombres de taille arbitraire, en utilisant la bibliothèque GNU MP.

Note:

La plupart des fonctions GMP accepte des nombres GMP comme arguments. Ils sont montrés dans la documentation comme des objets GMP. La plupart de ces fonctions accepte également des arguments sous la forme numérique et de chaîne de caractères, tant qu'il est possible de les convertir plus tard en nombre. Ainsi, s'il existe une fonction plus performante qui peut fonctionner sur les arguments (entiers seulement), alors il sera utilisé à la place (cela est fait de manière transparente). Voir aussi la fonction gmp_init().

Note:

Depuis PHP 5.6, des opérateurs arithmétiques, sur les bits, et de comparaison peuvent être utilisé avec les objets GMP retournés depuis gmp_init() et les autres fonctions GMP.

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. Les entiers volumineux doivent être spécifiés en tant que chaînes - autrement, PHP les forces en nombre décimal, entraînant une perte de précision.

Note: Cette extension est disponible sur les plates-formes Windows.


Pré-requis

La librairie GMP peut être téléchargé depuis le site de » http://gmplib.org/#DOWNLOAD. Ce site propose aussi un manuel GMP.

Au moins la version 4.2 de GMP est requise, avec certaines fonctions nécessitant une version plus récente de la bibliothèque GMP.

Sous Windows, MPIR est requis à la place de GMP.


Installation

Pour pouvoir utiliser ces fonctions, vous devez compiler PHP avec GMP en utilisant l'option --with-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 (int)
GMP_ROUND_PLUSINF (int)
GMP_ROUND_MINUSINF (int)
GMP_MSW_FIRST (int)
GMP_LSW_FIRST (int)
GMP_LITTLE_ENDIAN (int)
GMP_BIG_ENDIAN (int)
GMP_NATIVE_ENDIAN (int)
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_binomial — Calcul le coefficient binomial
  • 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 PGCD
  • 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_kronecker — Symbole Kronecker
  • gmp_lcm — Calcul le PPCM
  • 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_power — Vérifie si un nombre est une puissance parfaite
  • 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 — Récupérer un entier uniformément sélectionné
  • gmp_random_seed — Définit la graine RNG (Générateur de Nombres Aléatoire)
  • 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, PHP 8)

gmp_abs — Valeur absolue GMP

Description

gmp_abs(GMP|int|string $num): GMP

Valeur absolue GMP.

Liste de paramètres

num

Un objet GMP, un entier, ou une chaîne de caractères numérique.

Valeurs de retour

Retourne la valeur absolue de num, 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, PHP 8)

gmp_add — Addition de 2 nombres GMP

Description

gmp_add(GMP|int|string $num1, GMP|int|string $num2): GMP

Addition de 2 nombres GMP.

Liste de paramètres

num1

Le premier opérande (augent).

Un objet GMP, un entier, ou une chaîne de caractères numérique.

num2

Le second opérande (augent).

Un objet GMP, un entier, ou une chaîne de caractères numérique.

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_binomial »
  • PHP Manual
  • Fonctions GMP
  • ET logique

gmp_and

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_and — ET logique

Description

gmp_and(GMP|int|string $num1, GMP|int|string $num2): GMP

Calcule le ET logique de 2 nombres GMP.

Liste de paramètres

num1

Un objet GMP, un entier, ou une chaîne de caractères numérique.

num2

Un objet GMP, un entier, ou une chaîne de caractères numérique.

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


Calcul le coefficient binomial

  • « gmp_and
  • gmp_clrbit »
  • PHP Manual
  • Fonctions GMP
  • Calcul le coefficient binomial

gmp_binomial

(PHP 7 >= 7.3.0, PHP 8)

gmp_binomial — Calcul le coefficient binomial

Description

gmp_binomial(GMP|int|string $n, int $k): GMP

Calcul le coefficient binomial C(n, k).

Liste de paramètres

n

Un objet GMP, un entier, ou une chaîne de caractères numérique.

k

Valeurs de retour

Retourne le coefficient binomial C(n, k).

Erreurs / Exceptions

Lance une ValueError si k est négatif. Antérieur à PHP 8.0.0, E_WARNING était émis à la place.

Historique

Version | Description
8.0.0 | Cette fonction ne retourne plus false en cas d'échec.


Annule un octet

  • « gmp_binomial
  • gmp_cmp »
  • PHP Manual
  • Fonctions GMP
  • Annule un octet

gmp_clrbit

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_clrbit — Annule un octet

Description

gmp_clrbit(GMP $num, int $index): void

Met l'octet index à 0 dans le nombre GMP num. L'index commence à zéro.

Liste de paramètres

num

Un objet GMP

index

L'index de l'octet à annuler. L'index 0 représent le dernier octet significatif.

Valeurs de retour

Un objet GMP.

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 un objet 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, PHP 8)

gmp_cmp — Compare des nombres GMP

Description

gmp_cmp(GMP|int|string $num1, GMP|int|string $num2): int

Compare deux nombres GMP.

Liste de paramètres

num1

Un objet GMP, un entier, ou une chaîne de caractères numérique.

num2

Un objet GMP, un entier, ou une chaîne de caractères numérique.

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, PHP 8)

gmp_com — Calcule le complémentaire d'un nombre

Description

gmp_com(GMP|int|string $num): GMP

Retourne le complémentaire de num.

Liste de paramètres

num

Un objet GMP, un entier, ou une chaîne de caractères numérique.

Valeurs de retour

Retourne le complémentaire de num, 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, PHP 8)

gmp_div_q — Divisions de 2 nombres GMP

Description

gmp_div_q(GMP|int|string $num1, GMP|int|string $num2, int $rounding_mode = GMP_ROUND_ZERO): GMP

Divise num1 par num2 et retourne le résultat entier.

Liste de paramètres

num1

Le nombre à diviser.

Un objet GMP, un entier, ou une chaîne de caractères numérique.

num2

Le nombre par lequel num1 est divisé.

Un objet GMP, un entier, ou une chaîne de caractères numérique.

rounding_mode

L'arrondi du résultat est défini par rounding_mode, 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.

Un objet GMP, un entier, ou une chaîne de caractères numérique.

Valeurs de retour

Un objet GMP.

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, PHP 8)

gmp_div_qr — Divise deux nombres GMP

Description

gmp_div_qr(GMP|int|string $num1, GMP|int|string $num2, int $rounding_mode = GMP_ROUND_ZERO): array

Divise num1 par num2.

Liste de paramètres

num1

Le nombre à diviser.

Un objet GMP, un entier, ou une chaîne de caractères numérique.

num1

Le diviseur.

Un objet GMP, un entier, ou une chaîne de caractères numérique.

rounding_mode

Voir la fonction gmp_div_q() pour une description de l'argument rounding_mode.

Valeurs de retour

Divise num1 par num2 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, PHP 8)

gmp_div_r — Reste de la division de deux nombres GMP

Description

gmp_div_r(GMP|int|string $num1, GMP|int|string $num2, int $rounding_mode = GMP_ROUND_ZERO): GMP

Calcul le reste de la division entière de num1 par num2. Le reste a le même signe que n, s'il est différent de zéro.

Liste de paramètres

num1

Le nombre à diviser.

Un objet GMP, un entier, ou une chaîne de caractères numérique.

num2

Le nombre par lequel num1 est divisé.

Un objet GMP, un entier, ou une chaîne de caractères numérique.

rounding_mode

Voir la fonction gmp_div_q() pour une description du paramètre rounding_mode.

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, PHP 8)

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, PHP 8)

gmp_divexact — Division exacte de nombres GMP

Description

gmp_divexact(GMP|int|string $num1, GMP|int|string $num2): GMP

Divise num1 par num2, en utilisant les algorithmes de "division exacte". Cette fonction ne fournit de résultats cohérents que s'il est su par avance que num2 divise num1.

Liste de paramètres

num1

Le nombre à diviser.

Un objet GMP, un entier, ou une chaîne de caractères numérique.

num2

Le diviseur.

Un objet GMP, un entier, ou une chaîne de caractères numérique.

Valeurs de retour

Un objet GMP.

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, PHP 8)

gmp_export — Exportation vers une chaîne binaire

Description

gmp_export(GMP|int|string $num, int $word_size = 1, int $flags = GMP_MSW_FIRST | GMP_NATIVE_ENDIAN): string

Exporte un nombre GMP vers une chaîne binaire.

Liste de paramètres

num

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.

flags

La valeur par défaut est GMP_MSW_FIRST | GMP_NATIVE_ENDIAN.

Valeurs de retour

Retourne une chaîne de caractères.

Historique

Version | Description
8.0.0 | Cette fonction ne retourne plus false en cas d'échec.

Exemples

Exemple #1 Exemple avec gmp_export()

<?php
$number = gmp_init(16705);
echo gmp_export($number) . "\n";
?>

L'exemple ci-dessus va afficher :

AA

Voir aussi

  • gmp_import() - Importation depuis une chaîne binaire


Factorielle GMP

  • « gmp_export
  • gmp_gcd »
  • PHP Manual
  • Fonctions GMP
  • Factorielle GMP

gmp_fact

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_fact — Factorielle GMP

Description

gmp_fact(GMP|int|string $num): GMP

Calcule la factorielle (num!) de num.

Liste de paramètres

num

Le nombre factoriel.

Un objet GMP, un entier, ou une chaîne de caractères numérique.

Valeurs de retour

Un objet GMP.

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 PGCD

  • « gmp_fact
  • gmp_gcdext »
  • PHP Manual
  • Fonctions GMP
  • Calcule le PGCD

gmp_gcd

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_gcd — Calcule le PGCD

Description

gmp_gcd(GMP|int|string $num1, GMP|int|string $num2): GMP

Calcule le PGCD (plus grand commun diviseur) de num1 et num2. Le résultat est toujours positif, même si l'un des deux (ou les deux) nombres est négatif. Le suffixe _gcd provient de l'anglais 'Greatest Common Divisor'.

Liste de paramètres

num1

Un objet GMP, un entier, ou une chaîne de caractères numérique.

num2

Un objet GMP, un entier, ou une chaîne de caractères numérique.

Valeurs de retour

Un nombre positif GMP qui se divise avec num1 et num2.

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

Voir aussi

  • gmp_lcm() - Calcul le PPCM


PGCD étendu

  • « gmp_gcd
  • gmp_hamdist »
  • PHP Manual
  • Fonctions GMP
  • PGCD étendu

gmp_gcdext

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_gcdext — PGCD étendu

Description

gmp_gcdext(GMP|int|string $num1, GMP|int|string $num2): array

Calcule les entiers g, s, et t, tels que a*s + b*t = g = gcd(a,b), où gcd est le pgcd de num1 et num2. 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

num1

Un objet GMP, un entier, ou une chaîne de caractères numérique.

num2

Un objet GMP, un entier, ou une chaîne de caractères numérique.

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, PHP 8)

gmp_hamdist — Distance de Hamming

Description

gmp_hamdist(GMP|int|string $num1, GMP|int|string $num2): int

Retourne la distance de Hamming entre num1 et num2. Les deux paramètres doivent être strictement positifs.

Liste de paramètres

num1

Un objet GMP, un entier, ou une chaîne de caractères numérique.

Doit être positif.

num2

Un objet GMP, un entier, ou une chaîne de caractères numérique.

Doit être positif.

Valeurs de retour

La distance de Hamming entre num1 et num2, sous la forme d'un int.

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, PHP 8)

gmp_import — Importation depuis une chaîne binaire

Description

gmp_import(string $data, int $word_size = 1, int $flags = GMP_MSW_FIRST | GMP_NATIVE_ENDIAN): GMP

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.

flags

La valeur par défaut est GMP_MSW_FIRST | GMP_NATIVE_ENDIAN.

Valeurs de retour

Retourne un nombre GMP.

Historique

Version | Description
8.0.0 | Cette fonction ne retourne plus false en cas d'échec.

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
258

Voir aussi

  • gmp_export() - Exportation vers une chaîne binaire


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, PHP 8)

gmp_init — Crée un nombre GMP

Description

gmp_init(int|string $num, int $base = 0): GMP

Crée un nombre GMP, à partir d'un entier ou d'une chaîne.

Liste de paramètres

num

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 à 62. 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, l'hexadécimal est présumé, si les deux premiers caractères sont 0b ou 0B, le binaire est présumé, sinon si le premier caractère est "0", l'octal est présumé, sinon, le décimal est présumé. Pour les bases jusqu'à 36, la casse est ignoré?; les lettres en majuscule et en minuscule ont la même valeur. Pour les bases de 37 à 62, les lettres majuscules représentent les valeurs usuelles de 10 à 35 tandis que les lettres minuscules représentent les valeurs 36 à 61.

Valeurs de retour

Un objet GMP.

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 cette fonction pour utiliser les entiers ou les 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().

Voir aussi

  • GMP::__construct() - Crée un nombre GMP


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, PHP 8)

gmp_intval — Convertit un nombre GMP en entier

Description

gmp_intval(GMP|int|string $num): int

convertit un nombre GMP en entier PHP natif.

Liste de paramètres

num

Un objet GMP, un entier, ou une chaîne de caractères numérique.

Valeurs de retour

Un entier, représentant le nombre num.

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é). Pour 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, PHP 8)

gmp_invert — Modulo inversé

Description

gmp_invert(GMP|int|string $num1, GMP|int|string $num2): GMP|false

Calcule l'inverse de num1 modulo num2.

Liste de paramètres

num1

Un objet GMP, un entier, ou une chaîne de caractères numérique.

num2

Un objet GMP, un entier, ou une chaîne de caractères numérique.

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_kronecker »
  • PHP Manual
  • Fonctions GMP
  • Symbole de Jacobi

gmp_jacobi

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_jacobi — Symbole de Jacobi

Description

gmp_jacobi(GMP|int|string $num1, GMP|int|string $num2): int

Calcule le » symbole de Jacobi de num1 et num2. num2 doit être positif et impair.

Liste de paramètres

num1

Un objet GMP, un entier, ou une chaîne de caractères numérique.

num2

Un objet GMP, un entier, ou une chaîne de caractères numérique.

Doit être positif et impair.

Valeurs de retour

Un objet GMP.

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

Voir aussi

  • gmp_kronecker() - Symbole Kronecker
  • gmp_legendre() - Symbole de Legendre


Symbole Kronecker

  • « gmp_jacobi
  • gmp_lcm »
  • PHP Manual
  • Fonctions GMP
  • Symbole Kronecker

gmp_kronecker

(PHP 7 >= 7.3.0, PHP 8)

gmp_kronecker — Symbole Kronecker

Description

gmp_kronecker(GMP|int|string $num1, GMP|int|string $num2): int

Cette fonction calcule le symbole Kronecker de num1 et num2.

Liste de paramètres

num1

Un objet GMP, un entier, ou une chaîne de caractères numérique.

num2

Un objet GMP, un entier, ou une chaîne de caractères numérique.

Valeurs de retour

Retourne le symbole Kronecker de num1 et num2.

Voir aussi

  • gmp_jacobi() - Symbole de Jacobi
  • gmp_legendre() - Symbole de Legendre


Calcul le PPCM

  • « gmp_kronecker
  • gmp_legendre »
  • PHP Manual
  • Fonctions GMP
  • Calcul le PPCM

gmp_lcm

(PHP 7 >= 7.3.0, PHP 8)

gmp_lcm — Calcul le PPCM

Description

gmp_lcm(GMP|int|string $num1, GMP|int|string $num2): GMP

Cette fonction calcule le plus petit commun multiple (ppcm) de num1 et num2.

Liste de paramètres

num1

Un objet GMP, un entier, ou une chaîne de caractères numérique.

num2

Un objet GMP, un entier, ou une chaîne de caractères numérique.

Valeurs de retour

Un objet GMP.

Voir aussi

  • gmp_gcd() - Calcule le PGCD


Symbole de Legendre

  • « gmp_lcm
  • gmp_mod »
  • PHP Manual
  • Fonctions GMP
  • Symbole de Legendre

gmp_legendre

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_legendre — Symbole de Legendre

Description

gmp_legendre(GMP|int|string $num1, GMP|int|string $num2): int

Calcule le » symbole de Legendre de num1 et num2. num2 doit être positif et impair.

Liste de paramètres

num1

Un objet GMP, un entier, ou une chaîne de caractères numérique.

num2

Un objet GMP, un entier, ou une chaîne de caractères numérique.

Doit être positif et impair.

Valeurs de retour

Un objet GMP.

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

Voir aussi

  • gmp_jacobi() - Symbole de Jacobi
  • gmp_kronecker() - Symbole Kronecker


Modulo GMP

  • « gmp_legendre
  • gmp_mul »
  • PHP Manual
  • Fonctions GMP
  • Modulo GMP

gmp_mod

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_mod — Modulo GMP

Description

gmp_mod(GMP|int|string $num1, GMP|int|string $num2): GMP

Calcule num1 modulo num2. Le résultat est toujours positif ou nul, car le signe de num2 est ignoré.

Liste de paramètres

num1

Un objet GMP, un entier, ou une chaîne de caractères numérique.

num2

Le modulo à évaluer.

Un objet GMP, un entier, ou une chaîne de caractères numérique.

Valeurs de retour

Un objet GMP.

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, PHP 8)

gmp_mul — Multiplication de 2 nombres GMP

Description

gmp_mul(GMP|int|string $num1, GMP|int|string $num2): GMP

Multiplie les nombres GMP num1 et num2.

Liste de paramètres

num1

Un nombre qui sera multiplié par num2.

Un objet GMP, un entier, ou une chaîne de caractères numérique.

num2

Un nombre qui sera multiplié par num1.

Un objet GMP, un entier, ou une chaîne de caractères numérique.

Valeurs de retour

Un objet GMP.

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, PHP 8)

gmp_neg — Opposé de nombre GMP

Description

gmp_neg(GMP|int|string $num): GMP

Retourne l'opposé de a (-1 * a).

Liste de paramètres

num

Un objet GMP, un entier, ou une chaîne de caractères numérique.

Valeurs de retour

Retourne -num, 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, PHP 8)

gmp_nextprime — Trouve le prochain nombre premier

Description

gmp_nextprime(GMP|int|string $num): GMP

Trouve le prochain nombre premier.

Liste de paramètres

num

Un objet GMP, un entier, ou une chaîne de caractères numérique.

Valeurs de retour

Retourne le prochain nombre premier plus grand que num, 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
2

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_power »
  • PHP Manual
  • Fonctions GMP
  • OU logique

gmp_or

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_or — OU logique

Description

gmp_or(GMP|int|string $num1, GMP|int|string $num2): GMP

Calcule le OU logique de a et b.

Liste de paramètres

num1

Un objet GMP, un entier, ou une chaîne de caractères numérique.

num2

Un objet GMP, un entier, ou une chaîne de caractères numérique.

Valeurs de retour

Un objet GMP.

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


Vérifie si un nombre est une puissance parfaite

  • « gmp_or
  • gmp_perfect_square »
  • PHP Manual
  • Fonctions GMP
  • Vérifie si un nombre est une puissance parfaite

gmp_perfect_power

(PHP 7 >= 7.3.0, PHP 8)

gmp_perfect_power — Vérifie si un nombre est une puissance parfaite

Description

gmp_perfect_power(GMP|int|string $num): bool

Vérifie si num est une puissance parfaite.

Liste de paramètres

num

Un objet GMP, un entier, ou une chaîne de caractères numérique.

Valeurs de retour

Retourne true si num est une puissance parfaite, false sinon.

Voir aussi

  • gmp_perfect_square() - Carré parfait GMP


Carré parfait GMP

  • « gmp_perfect_power
  • gmp_popcount »
  • PHP Manual
  • Fonctions GMP
  • Carré parfait GMP

gmp_perfect_square

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gmp_perfect_square — Carré parfait GMP

Description

gmp_perfect_square(GMP|int|string $num): bool

Vérifie si num est un carré parfait.

Liste de paramètres

num

Le nombre à vérifier.

Un objet GMP, un entier, ou une chaîne de caractères numérique.

Valeurs de retour

Retourne true si num 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_perfect_power() - Vérifie si un nombre est une puissance parfaite
  • 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, PHP 8)

gmp_popcount — Comptage de population

Description

gmp_popcount(GMP|int|string $num): int

Dénombre la population de num.

Liste de paramètres

num

Un objet GMP, un entier, ou une chaîne de caractères numérique.

Valeurs de retour

La population de num, sous la forme d'un int.

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, PHP 8)

gmp_pow — Puissance

Description

gmp_pow(GMP|int|string $num, int $exponent): GMP

Élève num à la puissance exponent.

Liste de paramètres

num

La base.

Un objet GMP, un entier, ou une chaîne de caractères numérique.

exponent

La puissance positive utilisée pour élever num.

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, PHP 8)

gmp_powm — Puissance et modulo

Description

gmp_powm(GMP|int|string $num, GMP|int|string $exponent, GMP|int|string $modulus): GMP

Calcule (num puissance exponent) modulo mod. Si exponent est négatif, le résultat est indéfini.

Liste de paramètres

num

La base.

Un objet GMP, un entier, ou une chaîne de caractères numérique.

exponent

La puissance positive utilisée pour élever num.

Un objet GMP, un entier, ou une chaîne de caractères numérique.

modulus

Le modulo.

Un objet GMP, un entier, ou une chaîne de caractères numérique.

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, PHP 8)

gmp_prob_prime — Nombre GMP probablement premier

Description

gmp_prob_prime(GMP|int|string $num, int $repetitions = 10): int

La fonction utilise le test de probabilité Miller-Rabin.

Liste de paramètres

num

Le nombre à vérifier.

Un objet GMP, un entier, ou une chaîne de caractères numérique.

repetitions

repetitions 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.

Un objet GMP, un entier, ou une chaîne de caractères numérique.

Valeurs de retour

Si gmp_prob_prime() retourne 0, num est défini comme non premier. Si gmp_prob_prime() retourne 1, alors num est "probablement" premier. Si gmp_prob_prime() retourne 2, alors num 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, PHP 8)

gmp_random_bits — Génère un nombre aléatoire

Description

gmp_random_bits(int $bits): GMP

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.

Attention

Cette fonction ne génère pas de valeurs cryptographiquement sûres, et ne doit pas être utilisée à des fins cryptographiques, ou à des fins qui exigent que les valeurs renvoyées soient indéchiffrables.

Si de l'aléatoire cryptographiquement sûre est requis, le Random\Randomizer peut être utilisé avec le moteur Random\Engine\Secure. Pour des cas d'usage simple, les fonctions random_int() et random_bytes() fournissent une API pratique et sûre qui est qui est soutenu par le CSPRNG du système d'exploitation.

Liste de paramètres

bits

Le nombre de bits à générer.

Valeurs de retour

Un nombre GMP aléatoire.

Erreurs / Exceptions

Si bits est moins que 1, une ValueError sera lancé.

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


Récupérer un entier uniformément sélectionné

  • « gmp_random_bits
  • gmp_random_seed »
  • PHP Manual
  • Fonctions GMP
  • Récupérer un entier uniformément sélectionné

gmp_random_range

(PHP 5 >= 5.6.3, PHP 7, PHP 8)

gmp_random_range — Récupérer un entier uniformément sélectionné

Description

gmp_random_range(GMP|int|string $min, GMP|int|string $max): GMP

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 inférieur à max.

Attention

Cette fonction ne génère pas de valeurs cryptographiquement sûres, et ne doit pas être utilisée à des fins cryptographiques, ou à des fins qui exigent que les valeurs renvoyées soient indéchiffrables.

Si de l'aléatoire cryptographiquement sûre est requis, le Random\Randomizer peut être utilisé avec le moteur Random\Engine\Secure. Pour des cas d'usage simple, les fonctions random_int() et random_bytes() fournissent une API pratique et sûre qui est qui est soutenu par le CSPRNG du système d'exploitation.

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. Retourne un objet GMP qui contient un entier uniformément sélectionné dans l'intervalle fermé [min, max]. min and max sont tous les deux des valeurs de retour possible.

Erreurs / Exceptions

Si max est inférieur à min, une ValueError sera lancé.

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


Définit la graine RNG (Générateur de Nombres Aléatoire)

  • « gmp_random_range
  • gmp_random »
  • PHP Manual
  • Fonctions GMP
  • Définit la graine RNG (Générateur de Nombres Aléatoire)

gmp_random_seed

(PHP 7, PHP 8)

gmp_random_seed — Définit la graine RNG (Générateur de Nombres Aléatoire)

Description

gmp_random_seed(GMP|int|string $seed): void

Liste de paramètres

seed

La graine à définir pour les fonctions gmp_random(), gmp_random_bits(), et gmp_random_range().

Un objet GMP, un entier, ou une chaîne de caractères numérique.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Lève une exception ValueError si le paramètre seed est invalide.

Historique

Version | Description
8.0.0 | Si le paramètre seed est invalide, gmd_random_seed() lève une exception ValueError dorénavant. Précédemment une alerte E_WARNING était émise.

Exemples

Exemple #1 Exemple avec gmp_random_seed()

<?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() - Récupérer un entier uniformément sélectionné


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

Avertissement

Cette fonctionnalité est OBSOLÈTE à partir de PHP 7.2.0 et a été SUPPRIMÉE à partir de PHP 8.0.0.

Description

gmp_random(int $limiter = 20): GMP

Génère un nombre aléatoire. Ce nombre sera compris entre zéro et (2 ** n) -1, où n est 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 32 ou 64, mais ce n'est pas garantit.

Attention

Cette fonction ne génère pas de valeurs cryptographiquement sûres, et ne doit pas être utilisée à des fins cryptographiques, ou à des fins qui exigent que les valeurs renvoyées soient indéchiffrables.

Si de l'aléatoire cryptographiquement sûre est requis, le Random\Randomizer peut être utilisé avec le moteur Random\Engine\Secure. Pour des cas d'usage simple, les fonctions random_int() et random_bytes() fournissent une API pratique et sûre qui est qui est soutenu par le CSPRNG du système d'exploitation.

Liste de paramètres

limiter

Le limiteur.

Un objet GMP, un entier, ou une chaîne de caractères numérique.

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, PHP 8)

gmp_root — Récupère la partie entière de la n-ème racine

Description

gmp_root(GMP|int|string $num, int $nth): GMP

Récupère la nth-ème racine de num et retourne la partie entière du résultat.

Liste de paramètres

num

Un objet GMP, un entier, ou une chaîne de caractères numérique.

nth

La racine positive à prendre de num.

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, PHP 8)

gmp_rootrem — Récupère la partie entière et le reste de la n-ème racine

Description

gmp_rootrem(GMP|int|string $num, int $nth): array

Récupère la nth-ème racine de num et retourne la partie entière et le reste du résultat.

Liste de paramètres

num

Un objet GMP, un entier, ou une chaîne de caractères numérique.

nth

La racine positive à prendre de num.

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, PHP 8)

gmp_scan0 — Recherche 0

Description

gmp_scan0(GMP|int|string $num1, int $start): int

Recherche dans num1, en commençant à la position start, vers les bits de poids lourd, jusqu'à ce qu'elle rencontre un bit à 0.

Liste de paramètres

num1

Le nombre à analyser.

Un objet GMP, un entier, ou une chaîne de caractères numérique.

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, PHP 8)

gmp_scan1 — Recherche 1

Description

gmp_scan1(GMP|int|string $num1, int $start): int

Recherche dans num1, en commençant à la position start, vers les bits de poids lourd, jusqu'à ce qu'elle rencontre un bit à 1.

Liste de paramètres

num1

Le nombre à analyser.

Un objet GMP, un entier, ou une chaîne de caractères numérique.

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, PHP 8)

gmp_setbit — Modifie un bit

Description

gmp_setbit(GMP $num, int $index, bool $value = true): void

Modifie le bit index dans num.

Liste de paramètres

num

Un objet GMP

index

L'index de l'octet à définir. L'index 0 représente l'octet le moins significatif.

value

true pour définir l'octet (défini à 1/on) ; false pour le ré-initialiser (défini à 0/off).

Valeurs de retour

Un objet GMP.

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 un objet 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, PHP 8)

gmp_sign — Signe du nombre GMP

Description

gmp_sign(GMP|int|string $num): int

Vérifie le signe d'un nombre.

Liste de paramètres

num

Soit un objet GMP, soit une chaîne numérique à condition qu'il soit possible de convertir ce dernier en un entier.

Valeurs de retour

Retourne le signe de num : 1 si num est positif, -1 s'il est négatif et 0 si num 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, PHP 8)

gmp_sqrt — Racine carrée GMP

Description

gmp_sqrt(GMP|int|string $num): GMP

Calcule la racine carrée GMP du nombre num.

Liste de paramètres

num

Un objet GMP, un entier, ou une chaîne de caractères numérique.

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, PHP 8)

gmp_sqrtrem — Racine carrée avec reste GMP

Description

gmp_sqrtrem(GMP|int|string $num): array

Calcule la racine carrée d'un nombre GMP, avec reste.

Liste de paramètres

num

Le nombre à traiter.

Un objet GMP, un entier, ou une chaîne de caractères numérique.

Valeurs de retour

Retourne un tableau dont le premier élément est la racine carrée entière de num (voir aussi gmp_sqrt()), et le second est le reste de (i.e., la différence entre num 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, PHP 8)

gmp_strval — Convertit un nombre GMP en chaîne

Description

gmp_strval(GMP|int|string $num, int $base = 10): string

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

num

Le nombre GMP qui doit être converti.

Un objet GMP, un entier, ou une chaîne de caractères numérique.

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.

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, PHP 8)

gmp_sub — Soustraction de 2 nombres GMP

Description

gmp_sub(GMP|int|string $num1, GMP|int|string $num2): GMP

Soustrait num2 de num1 et retourne le résultat.

Liste de paramètres

num1

Le nombre à soustraire.

Un objet GMP, un entier, ou une chaîne de caractères numérique.

num2

Le nombre à soustraire de num1.

Un objet GMP, un entier, ou une chaîne de caractères numérique.

Valeurs de retour

Un objet GMP.

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, PHP 8)

gmp_testbit — Teste si un octet est défini

Description

gmp_testbit(GMP|int|string $num, int $index): bool

Teste si un octet est défini.

Liste de paramètres

num

Un objet GMP, un entier, ou une chaîne de caractères numérique.

index

L'octet à tester

Valeurs de retour

Retourne true si l'octet est défini dans la ressource num, 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, PHP 8)

gmp_xor — OU exclusif logique

Description

gmp_xor(GMP|int|string $num1, GMP|int|string $num2): GMP

calcule le OU exclusif logique de a et b.

Liste de paramètres

num1

Un objet GMP, un entier, ou une chaîne de caractères numérique.

num2

Un objet GMP, un entier, ou une chaîne de caractères numérique.

Valeurs de retour

Un objet GMP.

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, PHP 8)

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.

Synopsis de la classe

class GMP {
/* Méthodes */
public __construct(int|string $num = 0, int $base = 0)
public __serialize(): array
public __unserialize(array $data): void
}

Sommaire

  • GMP::__construct — Crée un nombre GMP
  • GMP::__serialize — Sérialise l'objet GMP
  • GMP::__unserialize — Désérialise le paramètre data en un objet GMP


Crée un nombre GMP

  • « GMP
  • GMP::__serialize »
  • PHP Manual
  • GMP
  • Crée un nombre GMP

GMP::__construct

(PHP 8 >= 8.2.4)

GMP::__construct — Crée un nombre GMP

Description

public GMP::__construct(int|string $num = 0, int $base = 0)

Crée un nombre GMP, à partir d'un entier ou d'une chaîne.

Liste de paramètres

num

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 à 62. 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, l'hexadécimal est présumé, si les deux premiers caractères sont 0b ou 0B, le binaire est présumé, sinon si le premier caractère est "0", l'octal est présumé, sinon, le décimal est présumé. Pour les bases jusqu'à 36, la casse est ignoré?; les lettres en majuscule et en minuscule ont la même valeur. Pour les bases de 37 à 62, les lettres majuscules représentent les valeurs usuelles de 10 à 35 tandis que les lettres minuscules représentent les valeurs 36 à 61.

Voir aussi

  • gmp_init() - Crée un nombre GMP


Sérialise l'objet GMP

  • « GMP::__construct
  • GMP::__unserialize »
  • PHP Manual
  • GMP
  • Sérialise l'objet GMP

GMP::__serialize

(PHP 8 >= 8.1.0)

GMP::__serialize — Sérialise l'objet GMP

Description

public GMP::__serialize(): array

Avertissement

Cette fonction est actuellement non documentée ; 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ésérialise le paramètre data en un objet GMP

  • « GMP::__serialize
  • Math »
  • PHP Manual
  • GMP
  • Désérialise le paramètre data en un objet GMP

GMP::__unserialize

(PHP 8 >= 8.1.0)

GMP::__unserialize — Désérialise le paramètre data en un objet GMP

Description

public GMP::__unserialize(array $data): void

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

data

La valeur en cours de désérialisation.

Valeurs de retour

Aucune valeur n'est retournée.


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 — Retourne exp($num) - 1, calculé de manière précise même lorsque la valeur du nombre est proche de zéro
    • fdiv — Divides two numbers, according to IEEE 754
    • floor — Arrondit à l'entier inférieur
    • fmod — Retourne le reste de la division
    • hexdec — Convertit de hexadécimal en décimal
    • hypot — Calcul la longueur de l'hypoténuse d'un triangle à angle droit
    • intdiv — Division d'Entier
    • is_finite — Vérifie si un nombre flottant est fini
    • is_infinite — Vérifie si un nombre flottant est infini
    • is_nan — Vérifie si un nombre flottant est NAN
    • 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
    • octdec — Conversion d'octal en décimal
    • pi — Retourne la valeur de pi
    • pow — Expression exponentielle
    • rad2deg — Conversion de radians en degrés
    • round — Arrondit un nombre à virgule flottante
    • sin — Sinus
    • sinh — Sinus hyperbolique
    • sqrt — Racine carrée
    • tan — Tangente
    • tanh — Tangente hyperbolique


Introduction

Ces fonctions de mathématique sont uniquement capable de manipuler des valeurs qui sont dans la plage des types int et float. Pour manipuler des nombres plus larges, voir les fonctions précision mathématique arbitraire ou GNU Multiple Precision functions.

Voir aussi

  • arithmetic operators
  • Arbitrary precision math functions
  • GNU Multiple Precision functions


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) |
M_2_SQRTPI | 1.12837916709551257390 | 2/sqrt(pi) |
M_SQRT2 | 1.41421356237309504880 | sqrt(2) |
M_SQRT3 | 1.73205080756887729352 | sqrt(3) |
M_SQRT1_2 | 0.70710678118654752440 | 1/sqrt(2) |
M_LNPI | 1.14472988584940017414 | log_e(pi) |
M_EULER | 0.57721566490153286061 | Constante d'Euler |
PHP_ROUND_HALF_UP | 1 | Arrondi supérieur |
PHP_ROUND_HALF_DOWN | 2 | Arrondi inférieur |
PHP_ROUND_HALF_EVEN | 3 | Arrondi au nombre pair |
PHP_ROUND_HALF_ODD | 4 | Arrondi au nombre impair |
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'infini |


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 — Retourne exp($num) - 1, calculé de manière précise même lorsque la valeur du nombre est proche de zéro
  • fdiv — Divides two numbers, according to IEEE 754
  • floor — Arrondit à l'entier inférieur
  • fmod — Retourne le reste de la division
  • hexdec — Convertit de hexadécimal en décimal
  • hypot — Calcul la longueur de l'hypoténuse d'un triangle à angle droit
  • intdiv — Division d'Entier
  • is_finite — Vérifie si un nombre flottant est fini
  • is_infinite — Vérifie si un nombre flottant est infini
  • is_nan — Vérifie si un nombre flottant est NAN
  • 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
  • octdec — Conversion d'octal en décimal
  • pi — Retourne la valeur de pi
  • pow — Expression exponentielle
  • rad2deg — Conversion de radians en degrés
  • round — Arrondit un nombre à virgule flottante
  • sin — Sinus
  • sinh — Sinus hyperbolique
  • sqrt — Racine carrée
  • tan — Tangente
  • tanh — Tangente hyperbolique


Valeur absolue

  • « Fonctions Math
  • acos »
  • PHP Manual
  • Fonctions Math
  • Valeur absolue

abs

(PHP 4, PHP 5, PHP 7, PHP 8)

abs — Valeur absolue

Description

abs(int|float $num): int|float

Retourne la valeur absolue du nombre num.

Liste de paramètres

num

La valeur numérique à traiter

Valeurs de retour

La valeur absolue du nombre num. Si le nombre est un nombre décimal, alors le type de retour est aussi nombre décimal, sinon c'est entier (car nombre décimal généralement à une intervalle de valeur plus large que entier).

Historique

Version | Description
8.0.0 | num n'accepte plus les objets internes qui supporte les conversions numériques.

Exemples

Exemple #1 Exemple avec abs()

<?php
var_dump(abs(-4.2));
var_dump(abs(5));
var_dump(abs(-5));
?>

L'exemple ci-dessus va afficher :

float(4.2)
int(5)
int(5)

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, PHP 8)

acos — Arc cosinus

Description

acos(float $num): float

Retourne l'arc cosinus de num. acos() est la fonction inverse de cos(), ce qui signifie que $num == cos(acos($num)) pour chaque valeur de num qui est dans le domaine de la fonction acos().

Liste de paramètres

num

L'argument à traiter

Valeurs de retour

L'arc cosinus de num, 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, PHP 8)

acosh — Arc cosinus hyperbolique

Description

acosh(float $num): float

Retourne l'arc cosinus hyperbolique de num, c'est à dire la valeur dont le cosinus hyperbolique est num.

Liste de paramètres

num

La valeur à traiter

Valeurs de retour

L'arc cosinus hyperbolique de num.

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, PHP 8)

asin — Arc sinus

Description

asin(float $num): float

Retourne l'arc sinus de num (num en radians). asin() est la fonction inverse de sin(), ce qui signifie que $num == sin(asin($num)) pour chaque valeur de num qui est dans le domaine de la fonction asin().

Liste de paramètres

num

L'argument à traiter

Valeurs de retour

L'arc sinus de num, 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, PHP 8)

asinh — Arc sinus hyperbolique

Description

asinh(float $num): float

Retourne l'arc sinus hyperbolique de num, c'est à dire la valeur dont le sinus hyperbolique est num.

Liste de paramètres

num

L'argument à traiter

Valeurs de retour

L'arc sinus hyperbolique de num

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, PHP 8)

atan2 — Arc tangent de deux variables

Description

atan2(float $y, float $x): float

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, PHP 8)

atan — Arc tangente

Description

atan(float $num): float

Retourne l'arc tangent de num, en radians. atan() est la fonction inverse de tan(), ce qui signifie que $num == tan(atan($num)) pour chaque valeur de num qui est dans le domaine de la fonction atan().

Liste de paramètres

num

L'argument à traiter

Valeurs de retour

L'arc tangent de num, 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, PHP 8)

atanh — Arc tangente hyperbolique

Description

atanh(float $num): float

Retourne l'arc tangente hyperbolique de num, c'est à dire la valeur dont la tangente hyperbolique est num.

Liste de paramètres

num

L'argument à traiter

Valeurs de retour

L'arc tangente hyperbolique de num.

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, PHP 8)

base_convert — Convertit un nombre entre des bases arbitraires

Description

base_convert(string $num, int $from_base, int $to_base): string

Retourne une chaîne contenant l'argument num représenté dans la base to_base. La base de représentation de number est donnée par from_base. from_base et to_base 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. Le casse des lettres n'a pas d'importance, c'est à dire num est interprété de façon insensible à la casse.

Avertissement

base_convert() perdra la précision sur les grands nombres, à cause des propriétés interne du type float utilisé. Lire la section sur les nombres décimaux de ce manuel pour plus d'informations.

Liste de paramètres

num

Le nombre à convertir. Tout caractères invalides dans num sont ignorés silencieusement. À partir de PHP 7.4.0 fournir des caractères invalides est obsolète.

from_base

La base num dans laquelle il est

to_base

La base dans laquelle on doit convertir le nombre num

Valeurs de retour

Le nombre num converti dans la base to_base

Historique

Version | Description
7.4.0 | Passer des caractères invalides génèrera désormais une notice obsolète. Le résultat sera toujours calculé comme si les caractères invalides n'existaient pas.

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, PHP 8)

bindec — Convertit de binaire en décimal

Description

bindec(string $binary_string): int|float

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. Tout caractères invalides dans binary_string sont ignorés silencieusement. À partir de PHP 7.4.0 fournir des caractères invalides est obsolète.

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

Historique

Version | Description
7.4.0 | Passer des caractères invalides génèrera désormais une notice obsolète. Le résultat sera toujours calculé comme si les caractères invalides n'existaient pas.

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 sont retourné en tant que nombre décimal.

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, PHP 8)

ceil — Arrondit au nombre supérieur

Description

ceil(int|float $num): float

Retourne l'entier supérieur du nombre num.

Liste de paramètres

num

La valeur à arrondir

Valeurs de retour

La valeur num arrondie à l'entier supérieur. La valeur retournée est un nombre à virgule flottante (nombre décimal), car l'intervalle des valeurs d'un nombre décimal est généralement plus large que celle d'un entier.

Historique

Version | Description
8.0.0 | num n'accepte plus les objets internes qui supporte les conversions numériques.

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, PHP 8)

cos — Cosinus

Description

cos(float $num): float

cos() retourne le cosinus de num (num en radians).

Liste de paramètres

num

L'angle, en radians

Valeurs de retour

Le cosinus de num.

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, PHP 8)

cosh — Cosinus hyperbolique

Description

cosh(float $num): float

Retourne le cosinus hyperbolique de num, défini comme (exp($num) + exp(-$num))/2.

Liste de paramètres

num

L'argument à traiter

Valeurs de retour

Le cosinus hyperbolique de num.

Voir aussi

  • cos() - Cosinus
  • acosh() - Arc cosinus hyperbolique
  • sinh() - Sinus hyperbolique
  • tanh() - Tangente hyperbolique


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, PHP 8)

decbin — Convertit de décimal en binaire

Description

decbin(int $num): string

Retourne une chaîne contenant la représentation binaire de l'entier num donné en argument.

Liste de paramètres

num

Valeur décimale à convertir

Interval d'entrée sur des machines 32-bit
Paramètre num positif | Paramètre num 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 num positif | Paramètre num 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 num.

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() - Retourne une chaîne formatée, 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, PHP 8)

dechex — Convertit de décimal en hexadécimal

Description

dechex(int $num): string

Retourne une chaîne contenant la représentation hexadécimale de l'argument num 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

num

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 num.

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 suppose 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, PHP 8)

decoct — Convertit de décimal en octal

Description

decoct(int $num): string

Retourne une chaîne contenant la représentation octale du nombre donné num. Le nombre le plus grand qui puisse être converti est 4294967295 en décimal, ce qui donnera 37777777777. Pour les plates-formes 64 bits, il s'agit généralement de 9223372036854775807 en décimal résultant en 777777777777777777777.

Liste de paramètres

num

Valeur décimale à convertir

Valeurs de retour

Une représentation octale de num.

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, PHP 8)

deg2rad — Convertit un nombre de degrés en radians

Description

deg2rad(float $num): float

deg2rad() convertit num de degrés en radians.

Liste de paramètres

num

L'angle, en degrés

Valeurs de retour

L'équivalent, en radians, de num.

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, PHP 8)

exp — Calcul l'exponentielle de e

Description

exp(float $num): float

Retourne e, à la puissance num.

Note:

'e' est le logarithme naturel, ou approximativement 2.718282.

Liste de paramètres

num

L'argument à traiter

Valeurs de retour

'e', à la puissance num.

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


Retourne exp($num) - 1, calculé de manière précise même lorsque la valeur du nombre est proche de zéro

  • « exp
  • fdiv »
  • PHP Manual
  • Fonctions Math
  • Retourne exp($num) - 1, calculé de manière précise même lorsque la valeur du nombre est proche de zéro

expm1

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

expm1 — Retourne exp($num) - 1, calculé de manière précise même lorsque la valeur du nombre est proche de zéro

Description

expm1(float $num): float

expm1() retourne l'équivalent de exp($num) - 1 calculé de telle sorte qu'il sera précis, même si la valeur de l'argument num est proche de 0, un cas où l'expression exp($num) - 1 n'est pas précis, du fait de la soustraction de deux nombres quasi-égaux.

Liste de paramètres

num

L'argument à traiter

Valeurs de retour

e à la puissance num, moins un.

Voir aussi

  • log1p() - Calcule précisément log(1 + nombre)
  • exp() - Calcul l'exponentielle de e


Divides two numbers, according to IEEE 754

  • « expm1
  • floor »
  • PHP Manual
  • Fonctions Math
  • Divides two numbers, according to IEEE 754

fdiv

(PHP 8)

fdiv — Divides two numbers, according to IEEE 754

Description

fdiv(float $num1, float $num2): float

Returns the floating point result of dividing the num1 by the num2. If the num2 is zero, then one of INF, -INF, or NAN will be returned.

Note that in comparisons, NAN will never == or ===, any value, including itself.

Liste de paramètres

num1

The dividend (numerator)

num2

The divisor

Valeurs de retour

The floating point result of num1/num2

Exemples

Exemple #1 Using fdiv()

<?php
var_dump(fdiv(5.7, 1.3)); // float(4.384615384615385)
var_dump(fdiv(4, 2)); // float(2)
var_dump(fdiv(1.0, 0.0)); // float(INF)
var_dump(fdiv(-1.0, 0.0)); // float(-INF)
var_dump(fdiv(0.0, 0.0)); // float(NAN)
?>

Voir aussi

  • / - Floating-point division
  • intdiv() - Division d'Entier - Integer division
  • fmod() - Retourne le reste de la division - Modulus


Arrondit à l'entier inférieur

  • « fdiv
  • fmod »
  • PHP Manual
  • Fonctions Math
  • Arrondit à l'entier inférieur

floor

(PHP 4, PHP 5, PHP 7, PHP 8)

floor — Arrondit à l'entier inférieur

Description

floor(int|float $num): float

Retourne la valeur entière suivante la plus basse (en tant que float) en arrondissant la valeur num si nécessaire.

Liste de paramètres

num

La valeur numérique à arrondir

Valeurs de retour

floor() retourne l'entier inférieur du nombre num. La valeur retournée est un nombre à virgule flottante (nombre décimal).

Historique

Version | Description
8.0.0 | num n'accepte plus les objets internes qui supporte les conversions numériques.

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
  • hexdec »
  • PHP Manual
  • Fonctions Math
  • Retourne le reste de la division

fmod

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

fmod — Retourne le reste de la division

Description

fmod(float $num1, float $num2): float

Retourne le reste de la division de num1 par num2. Ce reste est un nombre à virgule flottante. Le reste (r) est défini par : num1 = i * num2 + r, pour un entier i. Si num2 n'est pas nul, r a le même signe que num1 et une taille inférieure à celle de num2.

Liste de paramètres

num1

Le dividende

num2

Le diviseur

Valeurs de retour

Le reste de la division de num1 par num2.

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
?>

Voir aussi

  • / - Division à virgule flottante
  • % - Modulo d'entier
  • intdiv() - Division d'Entier - Division d'entier


Convertit de hexadécimal en décimal

  • « fmod
  • hypot »
  • PHP Manual
  • Fonctions Math
  • Convertit de hexadécimal en décimal

hexdec

(PHP 4, PHP 5, PHP 7, PHP 8)

hexdec — Convertit de hexadécimal en décimal

Description

hexdec(string $hex_string): int|float

Retourne la valeur décimale équivalente à la chaîne de caractères hexadécimale représenté par l'argument hex_string. hexdec() convertit une chaîne de caractères hexadécimale en un nombre décimal.

hexdec() ignorera tout caractère non-hexadécimal qu'elle rencontrera. À partir de PHP 7.4.0 fournir des caractères invalides est obsolète.

Liste de paramètres

hex_string

La chaîne hexadécimale à convertir

Valeurs de retour

La représentation décimale de hex_string

Historique

Version | Description
7.4.0 | Passer des caractères invalides génèrera désormais une notice obsolète. Le résultat sera toujours calculé comme si les caractères invalides n'existaient pas.

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 sont retourné en tant que nombre décimal.

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, PHP 8)

hypot — Calcul la longueur de l'hypoténuse d'un triangle à angle droit

Description

hypot(float $x, float $y): float

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


Division d'Entier

  • « hypot
  • is_finite »
  • PHP Manual
  • Fonctions Math
  • Division d'Entier

intdiv

(PHP 7, PHP 8)

intdiv — Division d'Entier

Description

intdiv(int $num1, int $num2): int

Retourne le quotient entier de la division de num1 par num2.

Liste de paramètres

num1

Nombre à diviser.

num2

Nombre qui divise num1.

Valeurs de retour

Le quotient entier de la division de num1 par num2.

Erreurs / Exceptions

Si num2 est 0, une exception DivisionByZeroError sera émise. Si num1 est PHP_INT_MIN et que num2 est -1, dans ce cas là une exception ArithmeticError est émise.

Exemples

Exemple #1 Exemple de intdiv()

<?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

  • / - Division de nombre flotant
  • % - Modulo entier
  • fmod() - Retourne le reste de la division - Modulo de nombre flotant


Vérifie si un nombre flottant est fini

  • « intdiv
  • is_infinite »
  • PHP Manual
  • Fonctions Math
  • Vérifie si un nombre flottant est fini

is_finite

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

is_finite — Vérifie si un nombre flottant est fini

Description

is_finite(float $num): bool

Retourne si le num donné est un nombre flottant fini.

Un nombre flottant fini n'est ni NAN (is_nan()), ni infini (is_infinite()).

Liste de paramètres

num

Le nombre décimal à vérifier

Valeurs de retour

true si num n'est aucun de NAN, INF, -INF, sinon false.

Exemples

Exemple #1 Exemple de is_finite()

<?php
$float = 1.2345;
var_dump($float, is_finite($float));

$nan = sqrt(-1);
var_dump($nan, is_finite($nan));

$inf = 1e308 * 2;
var_dump($inf, is_finite($inf));
?>

L'exemple ci-dessus va afficher :

float(1.2345)
bool(true)
float(NAN)
bool(false)
float(INF)
bool(false)

Voir aussi

  • is_infinite() - Vérifie si un nombre flottant est infini
  • is_nan() - Vérifie si un nombre flottant est NAN


Vérifie si un nombre flottant est infini

  • « is_finite
  • is_nan »
  • PHP Manual
  • Fonctions Math
  • Vérifie si un nombre flottant est infini

is_infinite

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

is_infinite — Vérifie si un nombre flottant est infini

Description

is_infinite(float $num): bool

Retourne si le num donné est soit INF ou -INF.

Liste de paramètres

num

Le nombre décimal à vérifier

Valeurs de retour

Retourne si le num donné est soit INF ou -INF, sinon, false.

Exemples

Exemple #1 Exemple de is_infinite()

<?php
$inf = 1e308 * 2;

var_dump($inf, is_infinite($inf));

$negative_inf = -$inf;

var_dump($negative_inf, is_infinite($negative_inf));
?>

L'exemple ci-dessus va afficher :

float(INF)
bool(true)
float(-INF)
bool(true)

Voir aussi

  • is_finite() - Vérifie si un nombre flottant est fini
  • is_nan() - Vérifie si un nombre flottant est NAN


Vérifie si un nombre flottant est NAN

  • « is_infinite
  • log10 »
  • PHP Manual
  • Fonctions Math
  • Vérifie si un nombre flottant est NAN

is_nan

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

is_nan — Vérifie si un nombre flottant est NAN

Description

is_nan(float $num): bool

Retourne si le num donné est NAN (Not A Number).

NAN est retourné par les opérations mathématiques qui ne sont pas définies, par exemple lors du passage de paramètres en dehors du domaine d'entrée de la fonction. La racine carrée (sqrt()) n'est définie que pour les nombres positifs, le passage d'un nombre négatif résultera en un NAN. D'autres exemples d'opérations renvoyant NAN sont la division de INF par INF et toute opération impliquant une valeur NAN existante.

Note:

Malgré son nom Not A Number, NAN est une valeur valide de type nombre décimal.

Attention

NAN ne se compare pas égal à NAN. Pour vérifier si un nombre flottant est NAN, is_nan() doit être utilisé. La vérification de $float === NAN ne fonctionnera pas.

Liste de paramètres

num

Le nombre décimal à vérifier

Valeurs de retour

true si num est NAN, sinon false.

Exemples

Exemple #1 Exemple avec is_nan()

<?php
$nan = sqrt(-1);

var_dump($nan, is_nan($nan));
?>

L'exemple ci-dessus va afficher :

float(NAN)
bool(true)

Voir aussi

  • is_finite() - Vérifie si un nombre flottant est fini
  • is_infinite() - Vérifie si un nombre flottant est infini


Logarithme en base 10

  • « is_nan
  • log1p »
  • PHP Manual
  • Fonctions Math
  • Logarithme en base 10

log10

(PHP 4, PHP 5, PHP 7, PHP 8)

log10 — Logarithme en base 10

Description

log10(float $num): float

Retourne le logarithme en base 10 de num.

Liste de paramètres

num

L'argument à traiter

Valeurs de retour

Le logarithme en base 10 de num.

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, PHP 8)

log1p — Calcule précisément log(1 + nombre)

Description

log1p(float $num): float

log1p() retourne log(1 + num) calculé de telle sorte qu'il sera précis même si la valeur de num est proche de 0. log() ne peut retourner que log(1) dans ce cas par manque de précision.

Liste de paramètres

num

L'argument à traiter

Valeurs de retour

log(1 + num)

Voir aussi

  • expm1() - Retourne exp($num) - 1, calculé de manière précise même lorsque la valeur du nombre est proche de zéro
  • 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, PHP 8)

log — Logarithme naturel (népérien)

Description

log(float $num, float $base = M_E): float

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 num.

Liste de paramètres

num

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 num 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
  • error_log() - Envoi un message d'erreur vers le gestionnaire d'erreurs défini


La plus grande valeur

  • « log
  • min »
  • PHP Manual
  • Fonctions Math
  • La plus grande valeur

max

(PHP 4, PHP 5, PHP 7, PHP 8)

max — La plus grande valeur

Description

max(mixed $value, mixed ...$values): mixed

Signature alternative (non supporté avec les arguments nommés) :

max(array $value_array): 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îne de caractères non-numérique 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.

Attention

Soyez prudent lorsque vous passez des arguments avec des types différents, car max() peut produire des résultats imprévisibles.

Liste de paramètres

value

Toute valeur comparable.

values

Toute valeurs comparable.

value_array

Un tableau contenant les valeurs.

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.

Erreurs / Exceptions

Si un tableau vide est passé, la fonction max() lance une ValueError.

Historique

Version | Description
8.0.0 | max() lance désormais une ValueError en cas d'échec ; précédemment, false était renvoyé et une erreur E_WARNING était émise.
8.0.0 | Comme les comparaisons entre les chaînes et les nombres ont été changées, max() ne retourne plus une valeur différente basée sur l'ordre des arguments dans ces cas là.

Exemples

Exemple #1 Exemple avec max()

<?php
echo max(2, 3, 1, 6, 7); // 7
echo max(array(2, 4, 5)); // 5

// 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 dans un objet Countable


La plus petite valeur

  • « max
  • octdec »
  • PHP Manual
  • Fonctions Math
  • La plus petite valeur

min

(PHP 4, PHP 5, PHP 7, PHP 8)

min — La plus petite valeur

Description

min(mixed $value, mixed ...$values): mixed

Signature alternative (non supporté avec les arguments nommés) :

min(array $value_array): 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îne de caractères non-numérique 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.

Attention

Soyez prudent lorsque vous passez des arguments avec des types différents, car min() peut produire des résultats imprévisibles.

Liste de paramètres

value

Toute valeur comparable.

values

Toute valeurs comparable.

value_array

Un tableau contenant les valeurs.

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.

Erreurs / Exceptions

Si un tableau vide est passé, la fonction min() lance une ValueError.

Historique

Version | Description
8.0.0 | min() lance désormais une ValueError en cas d'échec ; précédemment, false était renvoyé et une erreur E_WARNING était émise.
8.0.0 | Comme les comparaisons entre les chaînes et les nombres ont été changées, min() ne retourne plus une valeur différente basée sur l'ordre des arguments dans ces cas là.

Exemples

Exemple #1 Exemple avec min()

<?php
echo min(2, 3, 1, 6, 7); // 1
echo min(array(2, 4, 5)); // 2

// 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 dans un objet Countable


Conversion d'octal en décimal

  • « min
  • pi »
  • PHP Manual
  • Fonctions Math
  • Conversion d'octal en décimal

octdec

(PHP 4, PHP 5, PHP 7, PHP 8)

octdec — Conversion d'octal en décimal

Description

octdec(string $octal_string): int|float

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. Tout caractères invalides dans octal_string sont ignorés silencieusement. À partir de PHP 7.4.0 fournir des caractères invalides est obsolète. Le nombre à convertir.

Valeurs de retour

La représentation décimale de octal_string

Historique

Version | Description
7.4.0 | Passer des caractères invalides génèrera désormais une notice obsolète. Le résultat sera toujours calculé comme si les caractères invalides n'existaient pas.

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 sont retourné en tant que nombre décimal.

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, PHP 8)

pi — Retourne la valeur de pi

Description

pi(): float

Retourne une approximation de pi. De plus, vous pouvez utiliser la constante M_PI, qui retourne un résultat identique à la fonction pi().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur de pi en tant que 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, PHP 8)

pow — Expression exponentielle

Description

pow(mixed $num, mixed $exponent): int|float|object

Retourne num élevé à la puissance exponent.

Note:

Il est possible d'utiliser l'opérateur ** à la place.

Liste de paramètres

num

La base à utiliser

exponent

L'exposent

Valeurs de retour

num élevé à la puissance exponent. 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 entier, sinon s'il sera retourné en tant que nombre décimal.

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(10, -1); // 0.1

echo pow(-1, 5.5); // NAN
?>

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
  • round »
  • PHP Manual
  • Fonctions Math
  • Conversion de radians en degrés

rad2deg

(PHP 4, PHP 5, PHP 7, PHP 8)

rad2deg — Conversion de radians en degrés

Description

rad2deg(float $num): float

Convertit num (supposé en radians) en degrés.

Liste de paramètres

num

Une valeur, en radians

Valeurs de retour

L'équivalent de num, 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


Arrondit un nombre à virgule flottante

  • « rad2deg
  • sin »
  • PHP Manual
  • Fonctions Math
  • Arrondit un nombre à virgule flottante

round

(PHP 4, PHP 5, PHP 7, PHP 8)

round — Arrondit un nombre à virgule flottante

Description

round(int|float $num, int $precision = 0, int $mode = PHP_ROUND_HALF_UP): float

Retourne la valeur arrondie de num à 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.

Liste de paramètres

num

La valeur à arrondir.

precision

Le nombre optionnel de décimales à arrondir.

Si le paramètre precision est positif, num sera arrondi en utilisant le paramètre precision pour définir le nombre significatif de digits après le point décimal.

Si le paramètre precision est négatif, num arrondi en utilisant le paramètre precision pour définir le nombre significatif de digits avant le point décimal, i.e. le multiple le plus proche de pow(10, -$precision), i.e. pour une precision de -1, num sera arrondi à 10, pour une precision de -2 à 100, etc.

mode

Utilisez une des constantes suivantes pour spécifier le mode d'arrondi.

Constantes | Description
PHP_ROUND_HALF_UP | Arrondit num en s'éloignant de zéro lorsqu'il est à mi-chemin, arrondissant ainsi 1.5 à 2, et -1.5 à -2.
PHP_ROUND_HALF_DOWN | Arrondit num en se rapprochant de zéro lorsqu'il est à mi-chemin, arrondissant ainsi 1.5 à 1, et -1.5 à -1.
PHP_ROUND_HALF_EVEN | Arrondit num à la valeur paire la plus proche lorsqu'il est à mi-chemin, arrondissant ainsi 1.5 et 2.5 à 2.
PHP_ROUND_HALF_ODD | Arrondit num à la valeur impaire la plus proche lorsqu'il est à mi-chemin, arrondissant ainsi 1.5 à 1 et 2.5 à 3.

Valeurs de retour

La valeur arrondie à la precision donnée en tant que nombre décimal.

Historique

Version | Description
8.0.0 | num n'accepte plus les objets internes qui supporte les conversions numériques.

Exemples

Exemple #1 Exemple avec round()

<?php
var_dump(round(3.4));
var_dump(round(3.5));
var_dump(round(3.6));
var_dump(round(3.6, 0));
var_dump(round(5.045, 2));
var_dump(round(5.055, 2));
var_dump(round(345, -2));
var_dump(round(345, -3));
var_dump(round(678, -2));
var_dump(round(678, -3));
?>

L'exemple ci-dessus va afficher :

float(3)
float(4)
float(4)
float(4)
float(5.05)
float(5.06)
float(300)
float(0)
float(700)
float(1000)

Exemple #2 Comment precision affecte un flottant

<?php
$number = 135.79;

var_dump(round($number, 3));
var_dump(round($number, 2));
var_dump(round($number, 1));
var_dump(round($number, 0));
var_dump(round($number, -1));
var_dump(round($number, -2));
var_dump(round($number, -3));
?>

L'exemple ci-dessus va afficher :

float(135.79)
float(135.79)
float(135.8)
float(136)
float(140)
float(100)
float(0)

Exemple #3 Exemple avec mode

<?php
echo "Mode d'arrondi avec 9.5" . PHP_EOL;
var_dump(round(9.5, 0, PHP_ROUND_HALF_UP));
var_dump(round(9.5, 0, PHP_ROUND_HALF_DOWN));
var_dump(round(9.5, 0, PHP_ROUND_HALF_EVEN));
var_dump(round(9.5, 0, PHP_ROUND_HALF_ODD));

echo PHP_EOL;
echo "Mode d'arrondi avec 8.5" . PHP_EOL;
var_dump(round(8.5, 0, PHP_ROUND_HALF_UP));
var_dump(round(8.5, 0, PHP_ROUND_HALF_DOWN));
var_dump(round(8.5, 0, PHP_ROUND_HALF_EVEN));
var_dump(round(8.5, 0, PHP_ROUND_HALF_ODD));
?>

L'exemple ci-dessus va afficher :

Mode d'arrondi avec 9.5
float(10)
float(9)
float(10)
float(9)

Mode d'arrondi avec 8.5
float(9)
float(8)
float(8)
float(9)

Exemple #4 Exemple avec mode et precision

<?php
echo "Utilisation de PHP_ROUND_HALF_UP avec une précision d'une décimale" . PHP_EOL;
var_dump(round( 1.55, 1, PHP_ROUND_HALF_UP));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_UP));

echo PHP_EOL;
echo "Utilisation de PHP_ROUND_HALF_DOWN avec une précision d'une décimale" . PHP_EOL;
var_dump(round( 1.55, 1, PHP_ROUND_HALF_DOWN));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_DOWN));

echo PHP_EOL;
echo "Utilisation de PHP_ROUND_HALF_EVEN avec une précision d'une décimale" . PHP_EOL;
var_dump(round( 1.55, 1, PHP_ROUND_HALF_EVEN));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_EVEN));

echo PHP_EOL;
echo "Utilisation de PHP_ROUND_HALF_ODD avec une précision d'une décimale" . PHP_EOL;
var_dump(round( 1.55, 1, PHP_ROUND_HALF_ODD));
var_dump(round(-1.55, 1, PHP_ROUND_HALF_ODD));
?>

L'exemple ci-dessus va afficher :

Utilisation de PHP_ROUND_HALF_UP avec une précision d'une décimale
float(1.6)
float(-1.6)

Utilisation de PHP_ROUND_HALF_DOWN avec une précision d'une décimale
float(1.5)
float(-1.5)

Utilisation de PHP_ROUND_HALF_EVEN avec une précision d'une décimale
float(1.6)
float(-1.6)

Utilisation de PHP_ROUND_HALF_ODD avec une précision d'une décimale
float(1.5)
float(-1.5)

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, PHP 8)

sin — Sinus

Description

sin(float $num): float

sin() retourne le sinus de num (num in radians).

Liste de paramètres

num

Une valeur, en radians

Valeurs de retour

Le sinus de num.

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, PHP 8)

sinh — Sinus hyperbolique

Description

sinh(float $num): float

Retourne le sinus hyperbolique de num, défini comme (exp($num) - exp(-$num))/2.

Liste de paramètres

num

L'argument à traiter

Valeurs de retour

Le sinus hyperbolique de num.

Voir aussi

  • sin() - Sinus
  • asinh() - Arc sinus hyperbolique
  • cosh() - Cosinus hyperbolique
  • tanh() - Tangente hyperbolique


Racine carrée

  • « sinh
  • tan »
  • PHP Manual
  • Fonctions Math
  • Racine carrée

sqrt

(PHP 4, PHP 5, PHP 7, PHP 8)

sqrt — Racine carrée

Description

sqrt(float $num): float

Retourne la racine carrée de num.

Liste de paramètres

num

L'argument à traiter

Valeurs de retour

La racine carrée de num 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
  • M_SQRTPI - sqrt(pi)
  • M_2_SQRTPI - 2/sqrt(pi)
  • M_SQRT2 - sqrt(2)
  • M_SQRT3 - sqrt(3)
  • M_SQRT1_2 - 1/sqrt(2)


Tangente

  • « sqrt
  • tanh »
  • PHP Manual
  • Fonctions Math
  • Tangente

tan

(PHP 4, PHP 5, PHP 7, PHP 8)

tan — Tangente

Description

tan(float $num): float

Retourne la tangente de num (num en radians).

Liste de paramètres

num

L'argument à traiter, en radians

Valeurs de retour

La tangente de num

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
  • Statistics »
  • PHP Manual
  • Fonctions Math
  • Tangente hyperbolique

tanh

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

tanh — Tangente hyperbolique

Description

tanh(float $num): float

Retourne la tangente hyperbolique de num, définie comme sinh($num)/cosh($num).

Liste de paramètres

num

L'argument à traiter

Valeurs de retour

La tangente hyperbolique de num.

Voir aussi

  • tan() - Tangente
  • atanh() - Arc tangente hyperbolique
  • sinh() - Sinus hyperbolique
  • cosh() - Cosinus hyperbolique


Statistics

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Statistic Fonctions
    • stats_absolute_deviation — Returns the absolute deviation of an array of values
    • stats_cdf_beta — Calculates any one parameter of the beta distribution given values for the others
    • stats_cdf_binomial — Calculates any one parameter of the binomial distribution given values for the others
    • stats_cdf_cauchy — Calculates any one parameter of the Cauchy distribution given values for the others
    • stats_cdf_chisquare — Calculates any one parameter of the chi-square distribution given values for the others
    • stats_cdf_exponential — Calculates any one parameter of the exponential distribution given values for the others
    • stats_cdf_f — Calculates any one parameter of the F distribution given values for the others
    • stats_cdf_gamma — Calculates any one parameter of the gamma distribution given values for the others
    • stats_cdf_laplace — Calculates any one parameter of the Laplace distribution given values for the others
    • stats_cdf_logistic — Calculates any one parameter of the logistic distribution given values for the others
    • stats_cdf_negative_binomial — Calculates any one parameter of the negative binomial distribution given values for the others
    • stats_cdf_noncentral_chisquare — Calculates any one parameter of the non-central chi-square distribution given values for the others
    • stats_cdf_noncentral_f — Calculates any one parameter of the non-central F distribution given values for the others
    • stats_cdf_noncentral_t — Calculates any one parameter of the non-central t-distribution give values for the others
    • stats_cdf_normal — Calculates any one parameter of the normal distribution given values for the others
    • stats_cdf_poisson — Calculates any one parameter of the Poisson distribution given values for the others
    • stats_cdf_t — Calculates any one parameter of the t-distribution given values for the others
    • stats_cdf_uniform — Calculates any one parameter of the uniform distribution given values for the others
    • stats_cdf_weibull — Calculates any one parameter of the Weibull distribution given values for the others
    • stats_covariance — Computes the covariance of two data sets
    • stats_dens_beta — Probability density function of the beta distribution
    • stats_dens_cauchy — Probability density function of the Cauchy distribution
    • stats_dens_chisquare — Probability density function of the chi-square distribution
    • stats_dens_exponential — Probability density function of the exponential distribution
    • stats_dens_f — Probability density function of the F distribution
    • stats_dens_gamma — Probability density function of the gamma distribution
    • stats_dens_laplace — Probability density function of the Laplace distribution
    • stats_dens_logistic — Probability density function of the logistic distribution
    • stats_dens_normal — Probability density function of the normal distribution
    • stats_dens_pmf_binomial — Probability mass function of the binomial distribution
    • stats_dens_pmf_hypergeometric — Probability mass function of the hypergeometric distribution
    • stats_dens_pmf_negative_binomial — Probability mass function of the negative binomial distribution
    • stats_dens_pmf_poisson — Probability mass function of the Poisson distribution
    • stats_dens_t — Probability density function of the t-distribution
    • stats_dens_uniform — Probability density function of the uniform distribution
    • stats_dens_weibull — Probability density function of the Weibull distribution
    • stats_harmonic_mean — Returns the harmonic mean of an array of values
    • stats_kurtosis — Computes the kurtosis of the data in the array
    • stats_rand_gen_beta — Generates a random deviate from the beta distribution
    • stats_rand_gen_chisquare — Generates a random deviate from the chi-square distribution
    • stats_rand_gen_exponential — Generates a random deviate from the exponential distribution
    • stats_rand_gen_f — Generates a random deviate from the F distribution
    • stats_rand_gen_funiform — Generates uniform float between low (exclusive) and high (exclusive)
    • stats_rand_gen_gamma — Generates a random deviate from the gamma distribution
    • stats_rand_gen_ibinomial_negative — Generates a random deviate from the negative binomial distribution
    • stats_rand_gen_ibinomial — Generates a random deviate from the binomial distribution
    • stats_rand_gen_int — Generates random integer between 1 and 2147483562
    • stats_rand_gen_ipoisson — Generates a single random deviate from a Poisson distribution
    • stats_rand_gen_iuniform — Generates integer uniformly distributed between LOW (inclusive) and HIGH (inclusive)
    • stats_rand_gen_noncentral_chisquare — Generates a random deviate from the non-central chi-square distribution
    • stats_rand_gen_noncentral_f — Generates a random deviate from the noncentral F distribution
    • stats_rand_gen_noncentral_t — Generates a single random deviate from a non-central t-distribution
    • stats_rand_gen_normal — Generates a single random deviate from a normal distribution
    • stats_rand_gen_t — Generates a single random deviate from a t-distribution
    • stats_rand_get_seeds — Get the seed values of the random number generator
    • stats_rand_phrase_to_seeds — Generate two seeds for the RGN random number generator
    • stats_rand_ranf — Generates a random floating point number between 0 and 1
    • stats_rand_setall — Set seed values to the random generator
    • stats_skew — Computes the skewness of the data in the array
    • stats_standard_deviation — Returns the standard deviation
    • stats_stat_binomial_coef — Returns a binomial coefficient
    • stats_stat_correlation — Returns the Pearson correlation coefficient of two data sets
    • stats_stat_factorial — Returns the factorial of an integer
    • stats_stat_independent_t — Returns the t-value from the independent two-sample t-test
    • stats_stat_innerproduct — Returns the inner product of two vectors
    • stats_stat_paired_t — Returns the t-value of the dependent t-test for paired samples
    • stats_stat_percentile — Returns the percentile value
    • stats_stat_powersum — Returns the power sum of a vector
    • stats_variance — Returns the variance


Introduction

This is the statistics extension. It contains few dozens of functions useful for statistical computations. It is a wrapper around 2 scientific libraries, namely DCDFLIB (Library of C routines for Cumulative Distributions Functions, Inverses, and Other parameters) by B. Brown & J. Lavato and RANDLIB by Barry Brown, James Lavato & Kathy Russell. Includes CD and PD functions.


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

No external libraries are needed. The extension comes bundled with the libraries used.


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 : » https://pecl.php.net/package/stats.

Les binaires Windows (les fichiers DLL) pour cette extension PECL sont disponibles sur le site web PECL.


  • « Types de ressources
  • Statistic Fonctions »
  • PHP Manual
  • Statistics
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Statistic Fonctions

Sommaire

  • stats_absolute_deviation — Returns the absolute deviation of an array of values
  • stats_cdf_beta — Calculates any one parameter of the beta distribution given values for the others
  • stats_cdf_binomial — Calculates any one parameter of the binomial distribution given values for the others
  • stats_cdf_cauchy — Calculates any one parameter of the Cauchy distribution given values for the others
  • stats_cdf_chisquare — Calculates any one parameter of the chi-square distribution given values for the others
  • stats_cdf_exponential — Calculates any one parameter of the exponential distribution given values for the others
  • stats_cdf_f — Calculates any one parameter of the F distribution given values for the others
  • stats_cdf_gamma — Calculates any one parameter of the gamma distribution given values for the others
  • stats_cdf_laplace — Calculates any one parameter of the Laplace distribution given values for the others
  • stats_cdf_logistic — Calculates any one parameter of the logistic distribution given values for the others
  • stats_cdf_negative_binomial — Calculates any one parameter of the negative binomial distribution given values for the others
  • stats_cdf_noncentral_chisquare — Calculates any one parameter of the non-central chi-square distribution given values for the others
  • stats_cdf_noncentral_f — Calculates any one parameter of the non-central F distribution given values for the others
  • stats_cdf_noncentral_t — Calculates any one parameter of the non-central t-distribution give values for the others
  • stats_cdf_normal — Calculates any one parameter of the normal distribution given values for the others
  • stats_cdf_poisson — Calculates any one parameter of the Poisson distribution given values for the others
  • stats_cdf_t — Calculates any one parameter of the t-distribution given values for the others
  • stats_cdf_uniform — Calculates any one parameter of the uniform distribution given values for the others
  • stats_cdf_weibull — Calculates any one parameter of the Weibull distribution given values for the others
  • stats_covariance — Computes the covariance of two data sets
  • stats_dens_beta — Probability density function of the beta distribution
  • stats_dens_cauchy — Probability density function of the Cauchy distribution
  • stats_dens_chisquare — Probability density function of the chi-square distribution
  • stats_dens_exponential — Probability density function of the exponential distribution
  • stats_dens_f — Probability density function of the F distribution
  • stats_dens_gamma — Probability density function of the gamma distribution
  • stats_dens_laplace — Probability density function of the Laplace distribution
  • stats_dens_logistic — Probability density function of the logistic distribution
  • stats_dens_normal — Probability density function of the normal distribution
  • stats_dens_pmf_binomial — Probability mass function of the binomial distribution
  • stats_dens_pmf_hypergeometric — Probability mass function of the hypergeometric distribution
  • stats_dens_pmf_negative_binomial — Probability mass function of the negative binomial distribution
  • stats_dens_pmf_poisson — Probability mass function of the Poisson distribution
  • stats_dens_t — Probability density function of the t-distribution
  • stats_dens_uniform — Probability density function of the uniform distribution
  • stats_dens_weibull — Probability density function of the Weibull distribution
  • stats_harmonic_mean — Returns the harmonic mean of an array of values
  • stats_kurtosis — Computes the kurtosis of the data in the array
  • stats_rand_gen_beta — Generates a random deviate from the beta distribution
  • stats_rand_gen_chisquare — Generates a random deviate from the chi-square distribution
  • stats_rand_gen_exponential — Generates a random deviate from the exponential distribution
  • stats_rand_gen_f — Generates a random deviate from the F distribution
  • stats_rand_gen_funiform — Generates uniform float between low (exclusive) and high (exclusive)
  • stats_rand_gen_gamma — Generates a random deviate from the gamma distribution
  • stats_rand_gen_ibinomial_negative — Generates a random deviate from the negative binomial distribution
  • stats_rand_gen_ibinomial — Generates a random deviate from the binomial distribution
  • stats_rand_gen_int — Generates random integer between 1 and 2147483562
  • stats_rand_gen_ipoisson — Generates a single random deviate from a Poisson distribution
  • stats_rand_gen_iuniform — Generates integer uniformly distributed between LOW (inclusive) and HIGH (inclusive)
  • stats_rand_gen_noncentral_chisquare — Generates a random deviate from the non-central chi-square distribution
  • stats_rand_gen_noncentral_f — Generates a random deviate from the noncentral F distribution
  • stats_rand_gen_noncentral_t — Generates a single random deviate from a non-central t-distribution
  • stats_rand_gen_normal — Generates a single random deviate from a normal distribution
  • stats_rand_gen_t — Generates a single random deviate from a t-distribution
  • stats_rand_get_seeds — Get the seed values of the random number generator
  • stats_rand_phrase_to_seeds — Generate two seeds for the RGN random number generator
  • stats_rand_ranf — Generates a random floating point number between 0 and 1
  • stats_rand_setall — Set seed values to the random generator
  • stats_skew — Computes the skewness of the data in the array
  • stats_standard_deviation — Returns the standard deviation
  • stats_stat_binomial_coef — Returns a binomial coefficient
  • stats_stat_correlation — Returns the Pearson correlation coefficient of two data sets
  • stats_stat_factorial — Returns the factorial of an integer
  • stats_stat_independent_t — Returns the t-value from the independent two-sample t-test
  • stats_stat_innerproduct — Returns the inner product of two vectors
  • stats_stat_paired_t — Returns the t-value of the dependent t-test for paired samples
  • stats_stat_percentile — Returns the percentile value
  • stats_stat_powersum — Returns the power sum of a vector
  • stats_variance — Returns the variance


Returns the absolute deviation of an array of values

  • « Statistic Fonctions
  • stats_cdf_beta »
  • PHP Manual
  • Statistic Fonctions
  • Returns the absolute deviation of an array of values

stats_absolute_deviation

(PECL stats >= 1.0.0)

stats_absolute_deviation — Returns the absolute deviation of an array of values

Description

stats_absolute_deviation(array $a): float

Returns the absolute deviation of the values in a.

Liste de paramètres

a

The input array

Valeurs de retour

Returns the absolute deviation of the values in a, or false if a is empty or is not an array.


Calculates any one parameter of the beta distribution given values for the others

  • « stats_absolute_deviation
  • stats_cdf_binomial »
  • PHP Manual
  • Statistic Fonctions
  • Calculates any one parameter of the beta distribution given values for the others

stats_cdf_beta

(PECL stats >= 1.0.0)

stats_cdf_beta — Calculates any one parameter of the beta distribution given values for the others

Description

stats_cdf_beta(
float $par1,
float $par2,
float $par3,
int $which
): float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the beta distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, alpha, and beta denotes cumulative distribution function, the value of the random variable, and shape parameters of the beta distribution, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | alpha | beta
2 | x | CDF | alpha | beta
3 | alpha | x | CDF | beta
4 | beta | x | CDF | alpha

Liste de paramètres

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Valeurs de retour

Returns CDF, x, alpha, or beta, determined by which.


Calculates any one parameter of the binomial distribution given values for the others

  • « stats_cdf_beta
  • stats_cdf_cauchy »
  • PHP Manual
  • Statistic Fonctions
  • Calculates any one parameter of the binomial distribution given values for the others

stats_cdf_binomial

(PECL stats >= 1.0.0)

stats_cdf_binomial — Calculates any one parameter of the binomial distribution given values for the others

Description

stats_cdf_binomial(
float $par1,
float $par2,
float $par3,
int $which
): float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the binomial distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, n, and p denotes cumulative distribution function, the number of successes, the number of trials, and the success rate for each trial, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | n | p
2 | x | CDF | n | p
3 | n | x | CDF | p
4 | p | x | CDF | n

Liste de paramètres

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Valeurs de retour

Returns CDF, x, n, or p, determined by which.


Calculates any one parameter of the Cauchy distribution given values for the others

  • « stats_cdf_binomial
  • stats_cdf_chisquare »
  • PHP Manual
  • Statistic Fonctions
  • Calculates any one parameter of the Cauchy distribution given values for the others

stats_cdf_cauchy

(PECL stats >= 1.0.0)

stats_cdf_cauchy — Calculates any one parameter of the Cauchy distribution given values for the others

Description

stats_cdf_cauchy(
float $par1,
float $par2,
float $par3,
int $which
): float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the Cauchy distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, x0, and gamma denotes cumulative distribution function, the value of the random variable, the location and the scale parameter of the Cauchy distribution, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | x0 | gamma
2 | x | CDF | x0 | gamma
3 | x0 | x | CDF | gamma
4 | gamma | x | CDF | x0

Liste de paramètres

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Valeurs de retour

Returns CDF, x, x0, or gamma, determined by which.


Calculates any one parameter of the chi-square distribution given values for the others

  • « stats_cdf_cauchy
  • stats_cdf_exponential »
  • PHP Manual
  • Statistic Fonctions
  • Calculates any one parameter of the chi-square distribution given values for the others

stats_cdf_chisquare

(PECL stats >= 1.0.0)

stats_cdf_chisquare — Calculates any one parameter of the chi-square distribution given values for the others

Description

stats_cdf_chisquare(float $par1, float $par2, int $which): float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the chi-square distribution. The kind of the return value and parameters (par1 and par2) are determined by which.

The following table lists the return value and parameters by which. CDF, x, and k denotes cumulative distribution function, the value of the random variable, and the degree of freedom of the chi-square distribution, respectively.

Return value and parameters
which | Return value | par1 | par2
1 | CDF | x | k
2 | x | CDF | k
3 | k | x | CDF

Liste de paramètres

par1

The first parameter

par2

The second parameter

which

The flag to determine what to be calculated

Valeurs de retour

Returns CDF, x, or k, determined by which.


Calculates any one parameter of the exponential distribution given values for the others

  • « stats_cdf_chisquare
  • stats_cdf_f »
  • PHP Manual
  • Statistic Fonctions
  • Calculates any one parameter of the exponential distribution given values for the others

stats_cdf_exponential

(PECL stats >= 1.0.0)

stats_cdf_exponential — Calculates any one parameter of the exponential distribution given values for the others

Description

stats_cdf_exponential(float $par1, float $par2, int $which): float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the exponential distribution. The kind of the return value and parameters (par1 and par2) are determined by which.

The following table lists the return value and parameters by which. CDF, x, and lambda denotes cumulative distribution function, the value of the random variable, and the rate parameter of the exponential distribution, respectively.

Return value and parameters
which | Return value | par1 | par2
1 | CDF | x | lambda
2 | x | CDF | lambda
3 | lambda | x | CDF

Liste de paramètres

par1

The first parameter

par2

The second parameter

which

The flag to determine what to be calculated

Valeurs de retour

Returns CDF, x, or lambda, determined by which.


Calculates any one parameter of the F distribution given values for the others

  • « stats_cdf_exponential
  • stats_cdf_gamma »
  • PHP Manual
  • Statistic Fonctions
  • Calculates any one parameter of the F distribution given values for the others

stats_cdf_f

(PECL stats >= 1.0.0)

stats_cdf_f — Calculates any one parameter of the F distribution given values for the others

Description

stats_cdf_f(
float $par1,
float $par2,
float $par3,
int $which
): float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the F distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, d1, and d2 denotes cumulative distribution function, the value of the random variable, and the degree of freedoms of the F distribution, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | d1 | d2
2 | x | CDF | d1 | d2
3 | d1 | x | CDF | d2
4 | d2 | x | CDF | d1

Liste de paramètres

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Valeurs de retour

Returns CDF, x, d1, or d2, determined by which.


Calculates any one parameter of the gamma distribution given values for the others

  • « stats_cdf_f
  • stats_cdf_laplace »
  • PHP Manual
  • Statistic Fonctions
  • Calculates any one parameter of the gamma distribution given values for the others

stats_cdf_gamma

(PECL stats >= 1.0.0)

stats_cdf_gamma — Calculates any one parameter of the gamma distribution given values for the others

Description

stats_cdf_gamma(
float $par1,
float $par2,
float $par3,
int $which
): float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the gamma distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, k, and theta denotes cumulative distribution function, the value of the random variable, and the shape and the scale parameter of the gamma distribution, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | k | theta
2 | x | CDF | k | theta
3 | k | x | CDF | theta
4 | theta | x | CDF | k

Liste de paramètres

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Valeurs de retour

Returns CDF, x, k, or theta, determined by which.


Calculates any one parameter of the Laplace distribution given values for the others

  • « stats_cdf_gamma
  • stats_cdf_logistic »
  • PHP Manual
  • Statistic Fonctions
  • Calculates any one parameter of the Laplace distribution given values for the others

stats_cdf_laplace

(PECL stats >= 1.0.0)

stats_cdf_laplace — Calculates any one parameter of the Laplace distribution given values for the others

Description

stats_cdf_laplace(
float $par1,
float $par2,
float $par3,
int $which
): float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the Laplace distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, mu, and b denotes cumulative distribution function, the value of the random variable, and the location and the scale parameter of the Laplace distribution, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | mu | b
2 | x | CDF | mu | b
3 | mu | x | CDF | b
4 | b | x | CDF | mu

Liste de paramètres

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Valeurs de retour

Returns CDF, x, mu, or b, determined by which.


Calculates any one parameter of the logistic distribution given values for the others

  • « stats_cdf_laplace
  • stats_cdf_negative_binomial »
  • PHP Manual
  • Statistic Fonctions
  • Calculates any one parameter of the logistic distribution given values for the others

stats_cdf_logistic

(PECL stats >= 1.0.0)

stats_cdf_logistic — Calculates any one parameter of the logistic distribution given values for the others

Description

stats_cdf_logistic(
float $par1,
float $par2,
float $par3,
int $which
): float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the logistic distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, mu, and s denotes cumulative distribution function, the value of the random variable, and the location and the scale parameter of the logistic distribution, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | mu | s
2 | x | CDF | mu | s
3 | mu | x | CDF | s
4 | s | x | CDF | mu

Liste de paramètres

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Valeurs de retour

Returns CDF, x, mu, or s, determined by which.


Calculates any one parameter of the negative binomial distribution given values for the others

  • « stats_cdf_logistic
  • stats_cdf_noncentral_chisquare »
  • PHP Manual
  • Statistic Fonctions
  • Calculates any one parameter of the negative binomial distribution given values for the others

stats_cdf_negative_binomial

(PECL stats >= 1.0.0)

stats_cdf_negative_binomial — Calculates any one parameter of the negative binomial distribution given values for the others

Description

stats_cdf_negative_binomial(
float $par1,
float $par2,
float $par3,
int $which
): float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the negative binomial distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, r, and p denotes cumulative distribution function, the number of failure, the number of success, and the success rate for each trial, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | r | p
2 | x | CDF | r | p
3 | r | x | CDF | p
4 | p | x | CDF | r

Liste de paramètres

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Valeurs de retour

Returns CDF, x, r, or p, determined by which.


Calculates any one parameter of the non-central chi-square distribution given values for the others

  • « stats_cdf_negative_binomial
  • stats_cdf_noncentral_f »
  • PHP Manual
  • Statistic Fonctions
  • Calculates any one parameter of the non-central chi-square distribution given values for the others

stats_cdf_noncentral_chisquare

(PECL stats >= 1.0.0)

stats_cdf_noncentral_chisquare — Calculates any one parameter of the non-central chi-square distribution given values for the others

Description

stats_cdf_noncentral_chisquare(
float $par1,
float $par2,
float $par3,
int $which
): float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the non-central chi-square distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, k, and lambda denotes cumulative distribution function, the value of the random variable, the degree of freedom and the non-centrality parameter of the distribution, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | k | lambda
2 | x | CDF | k | lambda
3 | k | x | CDF | lambda
4 | lambda | x | CDF | k

Liste de paramètres

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Valeurs de retour

Returns CDF, x, k, or lambda, determined by which.


Calculates any one parameter of the non-central F distribution given values for the others

  • « stats_cdf_noncentral_chisquare
  • stats_cdf_noncentral_t »
  • PHP Manual
  • Statistic Fonctions
  • Calculates any one parameter of the non-central F distribution given values for the others

stats_cdf_noncentral_f

(PECL stats >= 1.0.0)

stats_cdf_noncentral_f — Calculates any one parameter of the non-central F distribution given values for the others

Description

stats_cdf_noncentral_f(
float $par1,
float $par2,
float $par3,
float $par4,
int $which
): float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the non-central F distribution. The kind of the return value and parameters (par1, par2, par3, and par4) are determined by which.

The following table lists the return value and parameters by which. CDF, x, nu1, nu2, and lambda denotes cumulative distribution function, the value of the random variable, the degree of freedoms and the non-centrality parameter of the distribution, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3 | par4
1 | CDF | x | nu1 | nu2 | lambda
2 | x | CDF | nu1 | nu2 | lambda
3 | nu1 | x | CDF | nu2 | lambda
4 | nu2 | x | CDF | nu1 | lambda
5 | lambda | x | CDF | nu1 | nu2

Liste de paramètres

par1

The first parameter

par2

The second parameter

par3

The third parameter

par4

The fourth parameter

which

The flag to determine what to be calculated

Valeurs de retour

Returns CDF, x, nu1, nu2, or lambda, determined by which.


Calculates any one parameter of the non-central t-distribution give values for the others

  • « stats_cdf_noncentral_f
  • stats_cdf_normal »
  • PHP Manual
  • Statistic Fonctions
  • Calculates any one parameter of the non-central t-distribution give values for the others

stats_cdf_noncentral_t

(PECL stats >= 1.0.0)

stats_cdf_noncentral_t — Calculates any one parameter of the non-central t-distribution give values for the others

Description

stats_cdf_noncentral_t(
float $par1,
float $par2,
float $par3,
int $which
): float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the non-central t-distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, nu, and mu denotes cumulative distribution function, the value of the random variable, the degrees of freedom and the non-centrality parameter of the distribution, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | nu | mu
2 | x | CDF | nu | mu
3 | nu | x | CDF | mu
4 | mu | x | CDF | nu

Liste de paramètres

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Valeurs de retour

Returns CDF, x, nu, or mu, determined by which.


Calculates any one parameter of the normal distribution given values for the others

  • « stats_cdf_noncentral_t
  • stats_cdf_poisson »
  • PHP Manual
  • Statistic Fonctions
  • Calculates any one parameter of the normal distribution given values for the others

stats_cdf_normal

(PECL stats >= 1.0.0)

stats_cdf_normal — Calculates any one parameter of the normal distribution given values for the others

Description

stats_cdf_normal(
float $par1,
float $par2,
float $par3,
int $which
): float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the normal distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, mu, and sigma denotes cumulative distribution function, the value of the random variable, the mean and the standard deviation of the normal distribution, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | mu | sigma
2 | x | CDF | mu | sigma
3 | mu | x | CDF | sigma
4 | sigma | x | CDF | mu

Liste de paramètres

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Valeurs de retour

Returns CDF, x, mu, or sigma, determined by which.


Calculates any one parameter of the Poisson distribution given values for the others

  • « stats_cdf_normal
  • stats_cdf_t »
  • PHP Manual
  • Statistic Fonctions
  • Calculates any one parameter of the Poisson distribution given values for the others

stats_cdf_poisson

(PECL stats >= 1.0.0)

stats_cdf_poisson — Calculates any one parameter of the Poisson distribution given values for the others

Description

stats_cdf_poisson(float $par1, float $par2, int $which): float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the Poisson distribution. The kind of the return value and parameters (par1 and par2) are determined by which.

The following table lists the return value and parameters by which. CDF, x, and lambda denotes cumulative distribution function, the value of the random variable, and the parameter of the Poisson distribution, respectively.

Return value and parameters
which | Return value | par1 | par2
1 | CDF | x | lambda
2 | x | CDF | lambda
3 | lambda | x | CDF

Liste de paramètres

par1

The first parameter

par2

The second parameter

which

The flag to determine what to be calculated

Valeurs de retour

Returns CDF, x, or lambda, determined by which.


Calculates any one parameter of the t-distribution given values for the others

  • « stats_cdf_poisson
  • stats_cdf_uniform »
  • PHP Manual
  • Statistic Fonctions
  • Calculates any one parameter of the t-distribution given values for the others

stats_cdf_t

(PECL stats >= 1.0.0)

stats_cdf_t — Calculates any one parameter of the t-distribution given values for the others

Description

stats_cdf_t(float $par1, float $par2, int $which): float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the t-distribution. The kind of the return value and parameters (par1 and par2) are determined by which.

The following table lists the return value and parameters by which. CDF, x, and nu denotes cumulative distribution function, the value of the random variable, and the degrees of freedom of the t-distribution, respectively.

Return value and parameters
which | Return value | par1 | par2
1 | CDF | x | nu
2 | x | CDF | nu
3 | nu | x | CDF

Liste de paramètres

par1

The first parameter

par2

The second parameter

which

The flag to determine what to be calculated

Valeurs de retour

Returns CDF, x, or nu, determined by which.


Calculates any one parameter of the uniform distribution given values for the others

  • « stats_cdf_t
  • stats_cdf_weibull »
  • PHP Manual
  • Statistic Fonctions
  • Calculates any one parameter of the uniform distribution given values for the others

stats_cdf_uniform

(PECL stats >= 1.0.0)

stats_cdf_uniform — Calculates any one parameter of the uniform distribution given values for the others

Description

stats_cdf_uniform(
float $par1,
float $par2,
float $par3,
int $which
): float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the uniform distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, a, and b denotes cumulative distribution function, the value of the random variable, the lower bound and the higher bound of the uniform distribution, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | a | b
2 | x | CDF | a | b
3 | a | x | CDF | b
4 | b | x | CDF | a

Liste de paramètres

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Valeurs de retour

Returns CDF, x, a, or b, determined by which.


Calculates any one parameter of the Weibull distribution given values for the others

  • « stats_cdf_uniform
  • stats_covariance »
  • PHP Manual
  • Statistic Fonctions
  • Calculates any one parameter of the Weibull distribution given values for the others

stats_cdf_weibull

(PECL stats >= 1.0.0)

stats_cdf_weibull — Calculates any one parameter of the Weibull distribution given values for the others

Description

stats_cdf_weibull(
float $par1,
float $par2,
float $par3,
int $which
): float

Returns the cumulative distribution function, its inverse, or one of its parameters, of the Weibull distribution. The kind of the return value and parameters (par1, par2, and par3) are determined by which.

The following table lists the return value and parameters by which. CDF, x, k, and lambda denotes cumulative distribution function, the value of the random variable, the shape and the scale parameter of the Weibull distribution, respectively.

Return value and parameters
which | Return value | par1 | par2 | par3
1 | CDF | x | k | lambda
2 | x | CDF | k | lambda
3 | k | x | CDF | lambda
4 | lambda | x | CDF | k

Liste de paramètres

par1

The first parameter

par2

The second parameter

par3

The third parameter

which

The flag to determine what to be calculated

Valeurs de retour

Returns CDF, x, k, or lambda, determined by which.


Computes the covariance of two data sets

  • « stats_cdf_weibull
  • stats_dens_beta »
  • PHP Manual
  • Statistic Fonctions
  • Computes the covariance of two data sets

stats_covariance

(PECL stats >= 1.0.0)

stats_covariance — Computes the covariance of two data sets

Description

stats_covariance(array $a, array $b): float

Returns the covariance of a and b.

Liste de paramètres

a

The first array

b

The second array

Valeurs de retour

Returns the covariance of a and b, or false on failure.


Probability density function of the beta distribution

  • « stats_covariance
  • stats_dens_cauchy »
  • PHP Manual
  • Statistic Fonctions
  • Probability density function of the beta distribution

stats_dens_beta

(PECL stats >= 1.0.0)

stats_dens_beta — Probability density function of the beta distribution

Description

stats_dens_beta(float $x, float $a, float $b): float

Returns the probability density at x, where the random variable follows the beta distribution of which the shape parameters are a and b.

Liste de paramètres

x

The value at which the probability density is calculated

a

The shape parameter of the distribution

b

The shape parameter of the distribution

Valeurs de retour

The probability density at x or false for failure.


Probability density function of the Cauchy distribution

  • « stats_dens_beta
  • stats_dens_chisquare »
  • PHP Manual
  • Statistic Fonctions
  • Probability density function of the Cauchy distribution

stats_dens_cauchy

(PECL stats >= 1.0.0)

stats_dens_cauchy — Probability density function of the Cauchy distribution

Description

stats_dens_cauchy(float $x, float $ave, float $stdev): float

Returns the probability density at x, where the random variable follows the Cauchy distribution whose location and scale are ave and stdev, respectively.

Liste de paramètres

x

The value at which the probability density is calculated

ave

The location parameter of the distribution

stdev

The scale parameter of the distribution

Valeurs de retour

The probability density at x or false for failure.


Probability density function of the chi-square distribution

  • « stats_dens_cauchy
  • stats_dens_exponential »
  • PHP Manual
  • Statistic Fonctions
  • Probability density function of the chi-square distribution

stats_dens_chisquare

(PECL stats >= 1.0.0)

stats_dens_chisquare — Probability density function of the chi-square distribution

Description

stats_dens_chisquare(float $x, float $dfr): float

Returns the probability density at x, where the random variable follows the chi-square distribution of which the degree of freedom is dfr.

Liste de paramètres

x

The value at which the probability density is calculated

dfr

The degree of freedom of the distribution

Valeurs de retour

The probability density at x or false for failure.


Probability density function of the exponential distribution

  • « stats_dens_chisquare
  • stats_dens_f »
  • PHP Manual
  • Statistic Fonctions
  • Probability density function of the exponential distribution

stats_dens_exponential

(PECL stats >= 1.0.0)

stats_dens_exponential — Probability density function of the exponential distribution

Description

stats_dens_exponential(float $x, float $scale): float

Returns the probability density at x, where the random variable follows the exponential distribution of which the scale is scale.

Liste de paramètres

x

The value at which the probability density is calculated

scale

The scale of the distribution

Valeurs de retour

The probability density at x or false for failure.


Probability density function of the F distribution

  • « stats_dens_exponential
  • stats_dens_gamma »
  • PHP Manual
  • Statistic Fonctions
  • Probability density function of the F distribution

stats_dens_f

(PECL stats >= 1.0.0)

stats_dens_f — Probability density function of the F distribution

Description

stats_dens_f(float $x, float $dfr1, float $dfr2): float

Returns the probability density at x, where the random variable follows the F distribution of which the degree of freedoms are dfr1 and dfr2.

Liste de paramètres

x

The value at which the probability density is calculated

dfr1

The degree of freedom of the distribution

dfr2

The degree of freedom of the distribution

Valeurs de retour

The probability density at x or false for failure.


Probability density function of the gamma distribution

  • « stats_dens_f
  • stats_dens_laplace »
  • PHP Manual
  • Statistic Fonctions
  • Probability density function of the gamma distribution

stats_dens_gamma

(PECL stats >= 1.0.0)

stats_dens_gamma — Probability density function of the gamma distribution

Description

stats_dens_gamma(float $x, float $shape, float $scale): float

Returns the probability density at x, where the random variable follows the gamma distribution of which the shape parameter is shape and the scale parameter is scale.

Liste de paramètres

x

The value at which the probability density is calculated

shape

The shape parameter of the distribution

scale

The scale parameter of the distribution

Valeurs de retour

The probability density at x or false for failure.


Probability density function of the Laplace distribution

  • « stats_dens_gamma
  • stats_dens_logistic »
  • PHP Manual
  • Statistic Fonctions
  • Probability density function of the Laplace distribution

stats_dens_laplace

(PECL stats >= 1.0.0)

stats_dens_laplace — Probability density function of the Laplace distribution

Description

stats_dens_laplace(float $x, float $ave, float $stdev): float

Returns the probability density at x, where the random variable follows the Laplace distribution of which the location parameter is ave and the scale parameter is stdev.

Liste de paramètres

x

The value at which the probability density is calculated

ave

The location parameter of the distribution

stdev

The shape parameter of the distribution

Valeurs de retour

The probability density at x or false for failure.


Probability density function of the logistic distribution

  • « stats_dens_laplace
  • stats_dens_normal »
  • PHP Manual
  • Statistic Fonctions
  • Probability density function of the logistic distribution

stats_dens_logistic

(PECL stats >= 1.0.0)

stats_dens_logistic — Probability density function of the logistic distribution

Description

stats_dens_logistic(float $x, float $ave, float $stdev): float

Returns the probability density at x, where the random variable follows the logistic distribution of which the location parameter is ave and the scale parameter is stdev.

Liste de paramètres

x

The value at which the probability density is calculated

ave

The location parameter of the distribution

stdev

The shape parameter of the distribution

Valeurs de retour

The probability density at x or false for failure.


Probability density function of the normal distribution

  • « stats_dens_logistic
  • stats_dens_pmf_binomial »
  • PHP Manual
  • Statistic Fonctions
  • Probability density function of the normal distribution

stats_dens_normal

(PECL stats >= 1.0.0)

stats_dens_normal — Probability density function of the normal distribution

Description

stats_dens_normal(float $x, float $ave, float $stdev): float

Returns the probability density at x, where the random variable follows the normal distribution of which the mean is ave and the standard deviation is stdev.

Liste de paramètres

x

The value at which the probability density is calculated

ave

The mean of the distribution

stdev

The standard deviation of the distribution

Valeurs de retour

The probability density at x or false for failure.


Probability mass function of the binomial distribution

  • « stats_dens_normal
  • stats_dens_pmf_hypergeometric »
  • PHP Manual
  • Statistic Fonctions
  • Probability mass function of the binomial distribution

stats_dens_pmf_binomial

(PECL stats >= 1.0.0)

stats_dens_pmf_binomial — Probability mass function of the binomial distribution

Description

stats_dens_pmf_binomial(float $x, float $n, float $pi): float

Returns the probability mass at x, where the random variable follows the binomial distribution of which the number of trials is n and the success rate is pi.

Liste de paramètres

x

The value at which the probability mass is calculated

n

The number of trials of the distribution

pi

The success rate of the distribution

Valeurs de retour

The probability mass at x or false for failure.


Probability mass function of the hypergeometric distribution

  • « stats_dens_pmf_binomial
  • stats_dens_pmf_negative_binomial »
  • PHP Manual
  • Statistic Fonctions
  • Probability mass function of the hypergeometric distribution

stats_dens_pmf_hypergeometric

(PECL stats >= 1.0.0)

stats_dens_pmf_hypergeometric — Probability mass function of the hypergeometric distribution

Description

stats_dens_pmf_hypergeometric(
float $n1,
float $n2,
float $N1,
float $N2
): float

Returns the probability mass at n1, where the random variable follows the hypergeometric distribution of which the number of failure is n2, the number of success samples is N1, and the number of failure samples is N2.

Liste de paramètres

n1

The number of success, at which the probability mass is calculated

n2

The number of failure of the distribution

N1

The number of success samples of the distribution

N2

The number of failure samples of the distribution

Valeurs de retour

The probability mass at n1 or false for failure.


Probability mass function of the negative binomial distribution

  • « stats_dens_pmf_hypergeometric
  • stats_dens_pmf_poisson »
  • PHP Manual
  • Statistic Fonctions
  • Probability mass function of the negative binomial distribution

stats_dens_pmf_negative_binomial

(PECL stats >= 1.0.0)

stats_dens_pmf_negative_binomial — Probability mass function of the negative binomial distribution

Description

stats_dens_pmf_negative_binomial(float $x, float $n, float $pi): float

Returns the probability mass at x, where the random variable follows the negative binomial distribution of which the number of the success is n and the success rate is pi.

Liste de paramètres

x

The value at which the probability mass is calculated

n

The number of the success of the distribution

pi

The success rate of the distribution

Valeurs de retour

The probability mass at x or false for failure.


Probability mass function of the Poisson distribution

  • « stats_dens_pmf_negative_binomial
  • stats_dens_t »
  • PHP Manual
  • Statistic Fonctions
  • Probability mass function of the Poisson distribution

stats_dens_pmf_poisson

(PECL stats >= 1.0.0)

stats_dens_pmf_poisson — Probability mass function of the Poisson distribution

Description

stats_dens_pmf_poisson(float $x, float $lb): float

Returns the probability mass at x, where the random variable follows the Poisson distribution whose parameter is lb.

Liste de paramètres

x

The value at which the probability mass is calculated

lb

The parameter of the Poisson distribution

Valeurs de retour

The probability mass at x or false for failure.


Probability density function of the t-distribution

  • « stats_dens_pmf_poisson
  • stats_dens_uniform »
  • PHP Manual
  • Statistic Fonctions
  • Probability density function of the t-distribution

stats_dens_t

(PECL stats >= 1.0.0)

stats_dens_t — Probability density function of the t-distribution

Description

stats_dens_t(float $x, float $dfr): float

Returns the probability density at x, where the random variable follows the t-distribution of which the degree of freedom is dfr.

Liste de paramètres

x

The value at which the probability density is calculated

dfr

The degree of freedom of the distribution

Valeurs de retour

The probability density at x or false for failure.


Probability density function of the uniform distribution

  • « stats_dens_t
  • stats_dens_weibull »
  • PHP Manual
  • Statistic Fonctions
  • Probability density function of the uniform distribution

stats_dens_uniform

(PECL stats >= 1.0.0)

stats_dens_uniform — Probability density function of the uniform distribution

Description

stats_dens_uniform(float $x, float $a, float $b): float

Returns the probability density at x, where the random variable follows the uniform distribution of which the lower bound is a and the upper bound is b.

Liste de paramètres

x

The value at which the probability density is calculated

a

The lower bound of the distribution

b

The upper bound of the distribution

Valeurs de retour

The probability density at x or false for failure.


Probability density function of the Weibull distribution

  • « stats_dens_uniform
  • stats_harmonic_mean »
  • PHP Manual
  • Statistic Fonctions
  • Probability density function of the Weibull distribution

stats_dens_weibull

(PECL stats >= 1.0.0)

stats_dens_weibull — Probability density function of the Weibull distribution

Description

stats_dens_weibull(float $x, float $a, float $b): float

Returns the probability density at x, where the random variable follows the Weibull distribution of which the shape parameter is a and the scale parameter is b.

Liste de paramètres

x

The value at which the probability density is calculated

a

The shape parameter of the distribution

b

The scale parameter of the distribution

Valeurs de retour

The probability density at x or false for failure.


Returns the harmonic mean of an array of values

  • « stats_dens_weibull
  • stats_kurtosis »
  • PHP Manual
  • Statistic Fonctions
  • Returns the harmonic mean of an array of values

stats_harmonic_mean

(PECL stats >= 1.0.0)

stats_harmonic_mean — Returns the harmonic mean of an array of values

Description

stats_harmonic_mean(array $a): number

Returns the harmonic mean of the values in a.

Liste de paramètres

a

The input array

Valeurs de retour

Returns the harmonic mean of the values in a, or false if a is empty or is not an array.


Computes the kurtosis of the data in the array

  • « stats_harmonic_mean
  • stats_rand_gen_beta »
  • PHP Manual
  • Statistic Fonctions
  • Computes the kurtosis of the data in the array

stats_kurtosis

(PECL stats >= 1.0.0)

stats_kurtosis — Computes the kurtosis of the data in the array

Description

stats_kurtosis(array $a): float

Returns the kurtosis of the values in a.

Liste de paramètres

a

The input array

Valeurs de retour

Returns the kurtosis of the values in a, or false if a is empty or is not an array.


Generates a random deviate from the beta distribution

  • « stats_kurtosis
  • stats_rand_gen_chisquare »
  • PHP Manual
  • Statistic Fonctions
  • Generates a random deviate from the beta distribution

stats_rand_gen_beta

(PECL stats >= 1.0.0)

stats_rand_gen_beta — Generates a random deviate from the beta distribution

Description

stats_rand_gen_beta(float $a, float $b): float

Returns a random deviate from the beta distribution with parameters A and B. The density of the beta is x^(a-1) * (1-x)^(b-1) / B(a,b) for 0 < x <. Method R. C. H. Cheng.

Liste de paramètres

a

The shape parameter of the beta distribution

b

The shape parameter of the beta distribution

Valeurs de retour

A random deviate


Generates a random deviate from the chi-square distribution

  • « stats_rand_gen_beta
  • stats_rand_gen_exponential »
  • PHP Manual
  • Statistic Fonctions
  • Generates a random deviate from the chi-square distribution

stats_rand_gen_chisquare

(PECL stats >= 1.0.0)

stats_rand_gen_chisquare — Generates a random deviate from the chi-square distribution

Description

stats_rand_gen_chisquare(float $df): float

Returns a random deviate from the chi-square distribution where the degrees of freedom is df.

Liste de paramètres

df

The degrees of freedom

Valeurs de retour

A random deviate


Generates a random deviate from the exponential distribution

  • « stats_rand_gen_chisquare
  • stats_rand_gen_f »
  • PHP Manual
  • Statistic Fonctions
  • Generates a random deviate from the exponential distribution

stats_rand_gen_exponential

(PECL stats >= 1.0.0)

stats_rand_gen_exponential — Generates a random deviate from the exponential distribution

Description

stats_rand_gen_exponential(float $av): float

Returns a random deviate from the exponential distribution of which the scale is av.

Liste de paramètres

av

The scale parameter

Valeurs de retour

A random deviate


Generates a random deviate from the F distribution

  • « stats_rand_gen_exponential
  • stats_rand_gen_funiform »
  • PHP Manual
  • Statistic Fonctions
  • Generates a random deviate from the F distribution

stats_rand_gen_f

(PECL stats >= 1.0.0)

stats_rand_gen_f — Generates a random deviate from the F distribution

Description

stats_rand_gen_f(float $dfn, float $dfd): float

Generates a random deviate from the F (variance ratio) distribution with "dfn" degrees of freedom in the numerator and "dfd" degrees of freedom in the denominator. Method : directly generates ratio of chisquare variates.

Liste de paramètres

dfn

The degrees of freedom in the numerator

dfd

The degrees of freedom in the denominator

Valeurs de retour

A random deviate


Generates uniform float between low (exclusive) and high (exclusive)

  • « stats_rand_gen_f
  • stats_rand_gen_gamma »
  • PHP Manual
  • Statistic Fonctions
  • Generates uniform float between low (exclusive) and high (exclusive)

stats_rand_gen_funiform

(PECL stats >= 1.0.0)

stats_rand_gen_funiform — Generates uniform float between low (exclusive) and high (exclusive)

Description

stats_rand_gen_funiform(float $low, float $high): float

Returns a random deviate from the uniform distribution from low to high.

Liste de paramètres

low

The lower bound (inclusive)

high

The upper bound (exclusive)

Valeurs de retour

A random deviate


Generates a random deviate from the gamma distribution

  • « stats_rand_gen_funiform
  • stats_rand_gen_ibinomial_negative »
  • PHP Manual
  • Statistic Fonctions
  • Generates a random deviate from the gamma distribution

stats_rand_gen_gamma

(PECL stats >= 1.0.0)

stats_rand_gen_gamma — Generates a random deviate from the gamma distribution

Description

stats_rand_gen_gamma(float $a, float $r): float

Generates a random deviate from the gamma distribution whose density is (A**R)/Gamma(R) * X**(R-1) * Exp(-A*X).

Liste de paramètres

a

location parameter of Gamma distribution (a > 0).

r

shape parameter of Gamma distribution (r > 0).

Valeurs de retour

A random deviate


Generates a random deviate from the negative binomial distribution

  • « stats_rand_gen_gamma
  • stats_rand_gen_ibinomial »
  • PHP Manual
  • Statistic Fonctions
  • Generates a random deviate from the negative binomial distribution

stats_rand_gen_ibinomial_negative

(PECL stats >= 1.0.0)

stats_rand_gen_ibinomial_negative — Generates a random deviate from the negative binomial distribution

Description

stats_rand_gen_ibinomial_negative(int $n, float $p): int

Returns a random deviate from a negative binomial distribution where the number of success is n and the success rate is p.

Liste de paramètres

n

The number of success

p

The success rate

Valeurs de retour

A random deviate, which is the number of failure.


Generates a random deviate from the binomial distribution

  • « stats_rand_gen_ibinomial_negative
  • stats_rand_gen_int »
  • PHP Manual
  • Statistic Fonctions
  • Generates a random deviate from the binomial distribution

stats_rand_gen_ibinomial

(PECL stats >= 1.0.0)

stats_rand_gen_ibinomial — Generates a random deviate from the binomial distribution

Description

stats_rand_gen_ibinomial(int $n, float $pp): int

Returns a random deviate from the binomial distribution whose number of trials is n and whose probability of an event in each trial is pp.

Liste de paramètres

n

The number of trials

pp

The probability of an event in each trial

Valeurs de retour

A random deviate


Generates random integer between 1 and 2147483562

  • « stats_rand_gen_ibinomial
  • stats_rand_gen_ipoisson »
  • PHP Manual
  • Statistic Fonctions
  • Generates random integer between 1 and 2147483562

stats_rand_gen_int

(PECL stats >= 1.0.0)

stats_rand_gen_int — Generates random integer between 1 and 2147483562

Description

stats_rand_gen_int(): int

Returns a random integer between 1 and 2147483562

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A random integer


Generates a single random deviate from a Poisson distribution

  • « stats_rand_gen_int
  • stats_rand_gen_iuniform »
  • PHP Manual
  • Statistic Fonctions
  • Generates a single random deviate from a Poisson distribution

stats_rand_gen_ipoisson

(PECL stats >= 1.0.0)

stats_rand_gen_ipoisson — Generates a single random deviate from a Poisson distribution

Description

stats_rand_gen_ipoisson(float $mu): int

Returns a random deviate from the Poisson distribution with parameter mu.

Liste de paramètres

mu

The parameter of the Poisson distribution

Valeurs de retour

A random deviate


Generates integer uniformly distributed between LOW (inclusive) and HIGH (inclusive)

  • « stats_rand_gen_ipoisson
  • stats_rand_gen_noncentral_chisquare »
  • PHP Manual
  • Statistic Fonctions
  • Generates integer uniformly distributed between LOW (inclusive) and HIGH (inclusive)

stats_rand_gen_iuniform

(PECL stats >= 1.0.0)

stats_rand_gen_iuniform — Generates integer uniformly distributed between LOW (inclusive) and HIGH (inclusive)

Description

stats_rand_gen_iuniform(int $low, int $high): int

Returns a random integer from the discrete uniform distribution between low (inclusive) and high (inclusive).

Liste de paramètres

low

The lower bound

high

The upper bound

Valeurs de retour

A random integer


Generates a random deviate from the non-central chi-square distribution

  • « stats_rand_gen_iuniform
  • stats_rand_gen_noncentral_f »
  • PHP Manual
  • Statistic Fonctions
  • Generates a random deviate from the non-central chi-square distribution

stats_rand_gen_noncentral_chisquare

(PECL stats >= 1.0.0)

stats_rand_gen_noncentral_chisquare — Generates a random deviate from the non-central chi-square distribution

Description

stats_rand_gen_noncentral_chisquare(float $df, float $xnonc): float

Returns a random deviate from the non-central chi-square distribution with degrees of freedom, df, and non-centrality parameter, xnonc.

Liste de paramètres

df

The degrees of freedom

xnonc

The non-centrality parameter

Valeurs de retour

A random deviate


Generates a random deviate from the noncentral F distribution

  • « stats_rand_gen_noncentral_chisquare
  • stats_rand_gen_noncentral_t »
  • PHP Manual
  • Statistic Fonctions
  • Generates a random deviate from the noncentral F distribution

stats_rand_gen_noncentral_f

(PECL stats >= 1.0.0)

stats_rand_gen_noncentral_f — Generates a random deviate from the noncentral F distribution

Description

stats_rand_gen_noncentral_f(float $dfn, float $dfd, float $xnonc): float

Returns a random deviate from the non-central F distribution where the degrees of freedoms are dfn (numerator) and dfd (denominator), and the non-centrality parameter is xnonc.

Liste de paramètres

dfn

The degrees of freedom of the numerator

dfd

The degrees of freedom of the denominator

xnonc

The non-centrality parameter

Valeurs de retour

A random deviate


Generates a single random deviate from a non-central t-distribution

  • « stats_rand_gen_noncentral_f
  • stats_rand_gen_normal »
  • PHP Manual
  • Statistic Fonctions
  • Generates a single random deviate from a non-central t-distribution

stats_rand_gen_noncentral_t

(PECL stats >= 1.0.0)

stats_rand_gen_noncentral_t — Generates a single random deviate from a non-central t-distribution

Description

stats_rand_gen_noncentral_t(float $df, float $xnonc): float

Returns a random deviate from the non-central t-distribution with the degrees of freedom, df, and the non-centrality parameter, xnonc.

Liste de paramètres

df

The degrees of freedom

xnonc

The non-centrality parameter

Valeurs de retour

A random deviate


Generates a single random deviate from a normal distribution

  • « stats_rand_gen_noncentral_t
  • stats_rand_gen_t »
  • PHP Manual
  • Statistic Fonctions
  • Generates a single random deviate from a normal distribution

stats_rand_gen_normal

(PECL stats >= 1.0.0)

stats_rand_gen_normal — Generates a single random deviate from a normal distribution

Description

stats_rand_gen_normal(float $av, float $sd): float

Returns a random deviate from the normal distribution with mean, av, and standard deviation, sd.

Liste de paramètres

av

The mean of the normal distribution

sd

The standard deviation of the normal distribution

Valeurs de retour

A random deviate


Generates a single random deviate from a t-distribution

  • « stats_rand_gen_normal
  • stats_rand_get_seeds »
  • PHP Manual
  • Statistic Fonctions
  • Generates a single random deviate from a t-distribution

stats_rand_gen_t

(PECL stats >= 1.0.0)

stats_rand_gen_t — Generates a single random deviate from a t-distribution

Description

stats_rand_gen_t(float $df): float

Returns a random deviate from the t-distribution with the degrees of freedom, df.

Liste de paramètres

df

The degrees of freedom

Valeurs de retour

A random deviate


Get the seed values of the random number generator

  • « stats_rand_gen_t
  • stats_rand_phrase_to_seeds »
  • PHP Manual
  • Statistic Fonctions
  • Get the seed values of the random number generator

stats_rand_get_seeds

(PECL stats >= 1.0.0)

stats_rand_get_seeds — Get the seed values of the random number generator

Description

stats_rand_get_seeds(): array

Returns the current seed values of the random number generator

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns an array of two integers.


Generate two seeds for the RGN random number generator

  • « stats_rand_get_seeds
  • stats_rand_ranf »
  • PHP Manual
  • Statistic Fonctions
  • Generate two seeds for the RGN random number generator

stats_rand_phrase_to_seeds

(PECL stats >= 1.0.0)

stats_rand_phrase_to_seeds — Generate two seeds for the RGN random number generator

Description

stats_rand_phrase_to_seeds(string $phrase): array

Generate two seeds for the random number generator from a phrase.

Liste de paramètres

phrase

The input phrase

Valeurs de retour

Returns an array of two integers.


Generates a random floating point number between 0 and 1

  • « stats_rand_phrase_to_seeds
  • stats_rand_setall »
  • PHP Manual
  • Statistic Fonctions
  • Generates a random floating point number between 0 and 1

stats_rand_ranf

(PECL stats >= 1.0.0)

stats_rand_ranf — Generates a random floating point number between 0 and 1

Description

stats_rand_ranf(): float

Returns a random floating point number from a uniform distribution between 0 (exclusive) and 1 (exclusive).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A random floating point number


Set seed values to the random generator

  • « stats_rand_ranf
  • stats_skew »
  • PHP Manual
  • Statistic Fonctions
  • Set seed values to the random generator

stats_rand_setall

(PECL stats >= 1.0.0)

stats_rand_setall — Set seed values to the random generator

Description

stats_rand_setall(int $iseed1, int $iseed2): void

Set iseed1 and iseed2 as seed values to the random generator used in statistic functions.

Liste de paramètres

iseed1

The value which is used as the random seed

iseed2

The value which is used as the random seed

Valeurs de retour

No values are returned.


Computes the skewness of the data in the array

  • « stats_rand_setall
  • stats_standard_deviation »
  • PHP Manual
  • Statistic Fonctions
  • Computes the skewness of the data in the array

stats_skew

(PECL stats >= 1.0.0)

stats_skew — Computes the skewness of the data in the array

Description

stats_skew(array $a): float

Returns the skewness of the values in a.

Liste de paramètres

a

The input array

Valeurs de retour

Returns the skewness of the values in a, or false if a is empty or is not an array.


Returns the standard deviation

  • « stats_skew
  • stats_stat_binomial_coef »
  • PHP Manual
  • Statistic Fonctions
  • Returns the standard deviation

stats_standard_deviation

(PECL stats >= 1.0.0)

stats_standard_deviation — Returns the standard deviation

Description

stats_standard_deviation(array $a, bool $sample = false): float

Returns the standard deviation of the values in a.

Liste de paramètres

a

The array of data to find the standard deviation for. Note that all values of the array will be cast to float.

sample

Indicates if a represents a sample of the population; defaults to false.

Valeurs de retour

Returns the standard deviation on success; false on failure.

Erreurs / Exceptions

Raises an E_WARNING when there are fewer than 2 values in a.


Returns a binomial coefficient

  • « stats_standard_deviation
  • stats_stat_correlation »
  • PHP Manual
  • Statistic Fonctions
  • Returns a binomial coefficient

stats_stat_binomial_coef

(PECL stats >= 1.0.0)

stats_stat_binomial_coef — Returns a binomial coefficient

Description

stats_stat_binomial_coef(int $x, int $n): float

Returns the binomial coefficient of n choose x.

Liste de paramètres

x

The number of chooses from the set

n

The number of elements in the set

Valeurs de retour

Returns the binomial coefficient


Returns the Pearson correlation coefficient of two data sets

  • « stats_stat_binomial_coef
  • stats_stat_factorial »
  • PHP Manual
  • Statistic Fonctions
  • Returns the Pearson correlation coefficient of two data sets

stats_stat_correlation

(PECL stats >= 1.0.0)

stats_stat_correlation — Returns the Pearson correlation coefficient of two data sets

Description

stats_stat_correlation(array $arr1, array $arr2): float

Returns the Pearson correlation coefficient between arr1 and arr2.

Liste de paramètres

arr1

The first array

arr2

The second array

Valeurs de retour

Returns the Pearson correlation coefficient between arr1 and arr2, or false on failure.


Returns the factorial of an integer

  • « stats_stat_correlation
  • stats_stat_independent_t »
  • PHP Manual
  • Statistic Fonctions
  • Returns the factorial of an integer

stats_stat_factorial

(PECL stats >= 1.0.0)

stats_stat_factorial — Returns the factorial of an integer

Description

stats_stat_factorial(int $n): float

Returns the factorial of an integer, n.

Liste de paramètres

n

An integer

Valeurs de retour

The factorial of n.


Returns the t-value from the independent two-sample t-test

  • « stats_stat_factorial
  • stats_stat_innerproduct »
  • PHP Manual
  • Statistic Fonctions
  • Returns the t-value from the independent two-sample t-test

stats_stat_independent_t

(PECL stats >= 1.0.0)

stats_stat_independent_t — Returns the t-value from the independent two-sample t-test

Description

stats_stat_independent_t(array $arr1, array $arr2): float

Returns the t-value of the independent two-sample t-test between arr1 and arr2.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

arr1

The first set of values

arr2

The second set of values

Valeurs de retour

Returns the t-value, or false if failure.


Returns the inner product of two vectors

  • « stats_stat_independent_t
  • stats_stat_paired_t »
  • PHP Manual
  • Statistic Fonctions
  • Returns the inner product of two vectors

stats_stat_innerproduct

(PECL stats >= 1.0.0)

stats_stat_innerproduct — Returns the inner product of two vectors

Description

stats_stat_innerproduct(array $arr1, array $arr2): float

Returns the inner product of arr1 and arr2.

Liste de paramètres

arr1

The first array

arr2

The second array

Valeurs de retour

Returns the inner product of arr1 and arr2, or false on failure.


Returns the t-value of the dependent t-test for paired samples

  • « stats_stat_innerproduct
  • stats_stat_percentile »
  • PHP Manual
  • Statistic Fonctions
  • Returns the t-value of the dependent t-test for paired samples

stats_stat_paired_t

(PECL stats >= 1.0.0)

stats_stat_paired_t — Returns the t-value of the dependent t-test for paired samples

Description

stats_stat_paired_t(array $arr1, array $arr2): float

Returns the t-value of the dependent t-test for paired samples arr1 and arr2.

Liste de paramètres

arr1

The first samples

arr2

The second samples

Valeurs de retour

Returns the t-value, or false if failure.


Returns the percentile value

  • « stats_stat_paired_t
  • stats_stat_powersum »
  • PHP Manual
  • Statistic Fonctions
  • Returns the percentile value

stats_stat_percentile

(PECL stats >= 1.0.0)

stats_stat_percentile — Returns the percentile value

Description

stats_stat_percentile(array $arr, float $perc): float

Returns the perc-th percentile value of the array arr.

Liste de paramètres

arr

The input array

perc

The percentile

Valeurs de retour

Returns the percentile values of the input array.


Returns the power sum of a vector

  • « stats_stat_percentile
  • stats_variance »
  • PHP Manual
  • Statistic Fonctions
  • Returns the power sum of a vector

stats_stat_powersum

(PECL stats >= 1.0.0)

stats_stat_powersum — Returns the power sum of a vector

Description

stats_stat_powersum(array $arr, float $power): float

Returns the sum of the power-th power of a vector represented as an array arr.

Liste de paramètres

arr

The input array

power

The power

Valeurs de retour

Returns the power sum of the input array.


Returns the variance

  • « stats_stat_powersum
  • Trader »
  • PHP Manual
  • Statistic Fonctions
  • Returns the variance

stats_variance

(PECL stats >= 1.0.0)

stats_variance — Returns the variance

Description

stats_variance(array $a, bool $sample = false): float

Returns the variance of the values in a.

Liste de paramètres

a

The array of data to find the standard deviation for. Note that all values of the array will be cast to float.

sample

Indicates if a represents a sample of the population; defaults to false.

Valeurs de retour

Returns the variance on success; false on failure.


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 : » https://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 | INI_ALL | Depuis trader 0.2.1
trader.real_round_mode | HALF_DOWN | INI_ALL | Depuis trader 0.3.0

Voici un éclaircissement sur l'utilisation des directives de configuration.

trader.real_precision int

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 (int)
TRADER_MA_TYPE_EMA (int)
TRADER_MA_TYPE_WMA (int)
TRADER_MA_TYPE_DEMA (int)
TRADER_MA_TYPE_TEMA (int)
TRADER_MA_TYPE_TRIMA (int)
TRADER_MA_TYPE_KAMA (int)
TRADER_MA_TYPE_MAMA (int)
TRADER_MA_TYPE_T3 (int)
TRADER_REAL_MIN (float)
TRADER_REAL_MAX (float)
TRADER_FUNC_UNST_ADX (int)
TRADER_FUNC_UNST_ADXR (int)
TRADER_FUNC_UNST_ATR (int)
TRADER_FUNC_UNST_CMO (int)
TRADER_FUNC_UNST_DX (int)
TRADER_FUNC_UNST_EMA (int)
TRADER_FUNC_UNST_HT_DCPERIOD (int)
TRADER_FUNC_UNST_HT_DCPHASE (int)
TRADER_FUNC_UNST_HT_PHASOR (int)
TRADER_FUNC_UNST_HT_SINE (int)
TRADER_FUNC_UNST_HT_TRENDLINE (int)
TRADER_FUNC_UNST_HT_TRENDMODE (int)
TRADER_FUNC_UNST_KAMA (int)
TRADER_FUNC_UNST_MAMA (int)
TRADER_FUNC_UNST_MFI (int)
TRADER_FUNC_UNST_MINUS_DI (int)
TRADER_FUNC_UNST_MINUS_DM (int)
TRADER_FUNC_UNST_NATR (int)
TRADER_FUNC_UNST_PLUS_DI (int)
TRADER_FUNC_UNST_PLUS_DM (int)
TRADER_FUNC_UNST_RSI (int)
TRADER_FUNC_UNST_STOCHRSI (int)
TRADER_FUNC_UNST_T3 (int)
TRADER_FUNC_UNST_ALL (int)
TRADER_FUNC_UNST_NONE (int)
TRADER_COMPATIBILITY_DEFAULT (int)
TRADER_COMPATIBILITY_METASTOCK (int)
TRADER_ERR_SUCCESS (int)
TRADER_ERR_LIB_NOT_INITIALIZE (int)
TRADER_ERR_BAD_PARAM (int)
TRADER_ERR_ALLOC_ERR (int)
TRADER_ERR_GROUP_NOT_FOUND (int)
TRADER_ERR_FUNC_NOT_FOUND (int)
TRADER_ERR_INVALID_HANDLE (int)
TRADER_ERR_INVALID_PARAM_HOLDER (int)
TRADER_ERR_INVALID_PARAM_HOLDER_TYPE (int)
TRADER_ERR_INVALID_PARAM_FUNCTION (int)
TRADER_ERR_INPUT_NOT_ALL_INITIALIZE (int)
TRADER_ERR_OUTPUT_NOT_ALL_INITIALIZE (int)
TRADER_ERR_OUT_OF_RANGE_START_INDEX (int)
TRADER_ERR_OUT_OF_RANGE_END_INDEX (int)
TRADER_ERR_INVALID_LIST_TYPE (int)
TRADER_ERR_BAD_OBJECT (int)
TRADER_ERR_NOT_SUPPORTED (int)
TRADER_ERR_INTERNAL_ERROR (int)
TRADER_ERR_UNKNOWN_ERROR (int)


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

trader_acos(array $real): array

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

trader_ad(
array $high,
array $low,
array $close,
array $volume
): array

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

trader_add(array $real0, array $real1): array

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

trader_adosc(
array $high,
array $low,
array $close,
array $volume,
int $fastPeriod = ?,
int $slowPeriod = ?
): array

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

trader_adx(
array $high,
array $low,
array $close,
int $timePeriod = ?
): array

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

trader_adxr(
array $high,
array $low,
array $close,
int $timePeriod = ?
): array

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

trader_apo(
array $real,
int $fastPeriod = ?,
int $slowPeriod = ?,
int $mAType = ?
): array

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

trader_aroon(array $high, array $low, int $timePeriod = ?): array

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

trader_aroonosc(array $high, array $low, int $timePeriod = ?): array

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

trader_asin(array $real): array

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

trader_atan(array $real): array

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

trader_atr(
array $high,
array $low,
array $close,
int $timePeriod = ?
): array

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

trader_avgprice(
array $open,
array $high,
array $low,
array $close
): array

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

trader_bbands(
array $real,
int $timePeriod = ?,
float $nbDevUp = ?,
float $nbDevDn = ?,
int $mAType = ?
): array

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

trader_beta(array $real0, array $real1, int $timePeriod = ?): array

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

trader_bop(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cci(
array $high,
array $low,
array $close,
int $timePeriod = ?
): array

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

trader_cdl2crows(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdl3blackcrows(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdl3inside(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdl3linestrike(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdl3outside(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdl3starsinsouth(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdl3whitesoldiers(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlabandonedbaby(
array $open,
array $high,
array $low,
array $close,
float $penetration = ?
): array

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

trader_cdladvanceblock(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlbelthold(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlbreakaway(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlclosingmarubozu(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlconcealbabyswall(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlcounterattack(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdldarkcloudcover(
array $open,
array $high,
array $low,
array $close,
float $penetration = ?
): array

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

trader_cdldoji(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdldojistar(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdldragonflydoji(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlengulfing(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdleveningdojistar(
array $open,
array $high,
array $low,
array $close,
float $penetration = ?
): array

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

trader_cdleveningstar(
array $open,
array $high,
array $low,
array $close,
float $penetration = ?
): array

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

trader_cdlgapsidesidewhite(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlgravestonedoji(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlhammer(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlhangingman(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlharami(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlharamicross(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlhighwave(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlhikkake(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlhikkakemod(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlhomingpigeon(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlidentical3crows(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlinneck(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlinvertedhammer(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlkicking(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlkickingbylength(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlladderbottom(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdllongleggeddoji(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdllongline(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlmarubozu(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlmatchinglow(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlmathold(
array $open,
array $high,
array $low,
array $close,
float $penetration = ?
): array

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

trader_cdlmorningdojistar(
array $open,
array $high,
array $low,
array $close,
float $penetration = ?
): array

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

trader_cdlmorningstar(
array $open,
array $high,
array $low,
array $close,
float $penetration = ?
): array

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

trader_cdlonneck(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlpiercing(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlrickshawman(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlrisefall3methods(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlseparatinglines(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlshootingstar(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlshortline(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlspinningtop(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlstalledpattern(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlsticksandwich(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdltakuri(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdltasukigap(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlthrusting(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdltristar(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlunique3river(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlupsidegap2crows(
array $open,
array $high,
array $low,
array $close
): array

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

trader_cdlxsidegap3methods(
array $open,
array $high,
array $low,
array $close
): array

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

trader_ceil(array $real): array

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

trader_cmo(array $real, int $timePeriod = ?): array

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

trader_correl(array $real0, array $real1, int $timePeriod = ?): array

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

trader_cos(array $real): array

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

trader_cosh(array $real): array

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

trader_dema(array $real, int $timePeriod = ?): array

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

trader_div(array $real0, array $real1): array

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

trader_dx(
array $high,
array $low,
array $close,
int $timePeriod = ?
): array

Avertissement

Cette fonction est actuellement non documentée ; 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

trader_ema(array $real, int $timePeriod = ?): array

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

trader_errno(): int

Récupère le code erreur de la dernière opération.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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

trader_exp(array $real): array

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

trader_floor(array $real): array

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

trader_get_compat(): int

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'identifiant du mode de compatibilité, qui peut être identifié par une série de constantes TRADER_COMPATIBILITY_*.


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

trader_get_unstable_period(int $functionId): int

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_* devraient ê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

trader_ht_dcperiod(array $real): array

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

trader_ht_dcphase(array $real): array

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

trader_ht_phasor(array $real): array

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

trader_ht_sine(array $real): array

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

trader_ht_trendline(array $real): array

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

trader_ht_trendmode(array $real): array

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

trader_kama(array $real, int $timePeriod = ?): array

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

trader_linearreg_angle(array $real, int $timePeriod = ?): array

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

trader_linearreg_intercept(array $real, int $timePeriod = ?): array

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

trader_linearreg_slope(array $real, int $timePeriod = ?): array

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

trader_linearreg(array $real, int $timePeriod = ?): array

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

trader_ln(array $real): array

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

trader_log10(array $real): array

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

trader_ma(array $real, int $timePeriod = ?, int $mAType = ?): array

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

trader_macd(
array $real,
int $fastPeriod = ?,
int $slowPeriod = ?,
int $signalPeriod = ?
): array

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

trader_macdext(
array $real,
int $fastPeriod = ?,
int $fastMAType = ?,
int $slowPeriod = ?,
int $slowMAType = ?,
int $signalPeriod = ?,
int $signalMAType = ?
): array

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

trader_macdfix(array $real, int $signalPeriod = ?): array

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

trader_mama(array $real, float $fastLimit = ?, float $slowLimit = ?): array

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

trader_mavp(
array $real,
array $periods,
int $minPeriod = ?,
int $maxPeriod = ?,
int $mAType = ?
): array

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

trader_max(array $real, int $timePeriod = ?): array

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

trader_maxindex(array $real, int $timePeriod = ?): array

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

trader_medprice(array $high, array $low): array

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

trader_mfi(
array $high,
array $low,
array $close,
array $volume,
int $timePeriod = ?
): array

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

trader_midpoint(array $real, int $timePeriod = ?): array

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

trader_midprice(array $high, array $low, int $timePeriod = ?): array

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

trader_min(array $real, int $timePeriod = ?): array

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

trader_minindex(array $real, int $timePeriod = ?): array

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

trader_minmax(array $real, int $timePeriod = ?): array

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

trader_minmaxindex(array $real, int $timePeriod = ?): array

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

trader_minus_di(
array $high,
array $low,
array $close,
int $timePeriod = ?
): array

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

trader_minus_dm(array $high, array $low, int $timePeriod = ?): array

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

trader_mom(array $real, int $timePeriod = ?): array

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

trader_mult(array $real0, array $real1): array

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

trader_natr(
array $high,
array $low,
array $close,
int $timePeriod = ?
): array

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

trader_obv(array $real, array $volume): array

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

trader_plus_di(
array $high,
array $low,
array $close,
int $timePeriod = ?
): array

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

trader_plus_dm(array $high, array $low, int $timePeriod = ?): array

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

trader_ppo(
array $real,
int $fastPeriod = ?,
int $slowPeriod = ?,
int $mAType = ?
): array

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

trader_roc(array $real, int $timePeriod = ?): array

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

trader_rocp(array $real, int $timePeriod = ?): array

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

trader_rocr100(array $real, int $timePeriod = ?): array

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

trader_rocr(array $real, int $timePeriod = ?): array

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

trader_rsi(array $real, int $timePeriod = ?): array

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

trader_sar(
array $high,
array $low,
float $acceleration = ?,
float $maximum = ?
): array

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

trader_sarext(
array $high,
array $low,
float $startValue = ?,
float $offsetOnReverse = ?,
float $accelerationInitLong = ?,
float $accelerationLong = ?,
float $accelerationMaxLong = ?,
float $accelerationInitShort = ?,
float $accelerationShort = ?,
float $accelerationMaxShort = ?
): array

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

trader_set_compat(int $compatId): void

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_* devraient ê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

trader_set_unstable_period(int $functionId, int $timePeriod): void

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

trader_sin(array $real): array

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

trader_sinh(array $real): array

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

trader_sma(array $real, int $timePeriod = ?): array

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

trader_sqrt(array $real): array

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

trader_stddev(array $real, int $timePeriod = ?, float $nbDev = ?): array

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

trader_stoch(
array $high,
array $low,
array $close,
int $fastK_Period = ?,
int $slowK_Period = ?,
int $slowK_MAType = ?,
int $slowD_Period = ?,
int $slowD_MAType = ?
): array

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

trader_stochf(
array $high,
array $low,
array $close,
int $fastK_Period = ?,
int $fastD_Period = ?,
int $fastD_MAType = ?
): array

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

trader_stochrsi(
array $real,
int $timePeriod = ?,
int $fastK_Period = ?,
int $fastD_Period = ?,
int $fastD_MAType = ?
): array

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

trader_sub(array $real0, array $real1): array

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

trader_sum(array $real, int $timePeriod = ?): array

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

trader_t3(array $real, int $timePeriod = ?, float $vFactor = ?): array

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

trader_tan(array $real): array

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

trader_tanh(array $real): array

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

trader_tema(array $real, int $timePeriod = ?): array

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

trader_trange(array $high, array $low, array $close): array

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

trader_trima(array $real, int $timePeriod = ?): array

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

trader_trix(array $real, int $timePeriod = ?): array

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

trader_tsf(array $real, int $timePeriod = ?): array

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

trader_typprice(array $high, array $low, array $close): array

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

trader_ultosc(
array $high,
array $low,
array $close,
int $timePeriod1 = ?,
int $timePeriod2 = ?,
int $timePeriod3 = ?
): array

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

trader_var(array $real, int $timePeriod = ?, float $nbDev = ?): array

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

trader_wclprice(array $high, array $low, array $close): array

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

trader_willr(
array $high,
array $low,
array $close,
int $timePeriod = ?
): array

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

trader_wma(array $real, int $timePeriod = ?): array

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
  • wkhtmltox
    • Introduction
    • Installation/Configuration
    • wkhtmltox\PDF\Converter — La classe wkhtmltox\PDF\Converter
    • wkhtmltox\PDF\Object — La classe wkhtmltox\PDF\Object
    • wkhtmltox\Image\Converter — La classe wkhtmltox\Image\Converter
  • PS — Création de document PostScript
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions PS
  • RpmInfo
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • RpmInfo Fonctions
  • XLSWriter
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Vtiful\Kernel\Excel — La classe Vtiful\Kernel\Excel
    • Vtiful\Kernel\Format — La classe Vtiful\Kernel\Format


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 : » https://svn.php.net/viewvc/pecl/fdf.

Cette extension n'est plus fournie avec PHP.

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 F.A.Q 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 (int)
FDFStatus (int)
FDFFile (int)
FDFID (int)
FDFFf (int)
FDFSetFf (int)
FDFClearFf (int)
FDFFlags (int)
FDFSetF (int)
FDFClrF (int)
FDFAP (int)
FDFAS (int)
FDFAction (int)
FDFAA (int)
FDFAPRef (int)
FDFIF (int)
FDFEnter (int)
FDFExit (int)
FDFDown (int)
FDFUp (int)
FDFFormat (int)
FDFValidate (int)
FDFKeystroke (int)
FDFCalculate (int)
FDFNormalAP (int)
FDFRolloverAP (int)
FDFDownAP (int)


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
// volume, date, comment, publisher, preparer et deux 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 < 5.3.0, PECL fdf SVN)

fdf_add_doc_javascript — Ajoute du code javascript dans un document FDF

Description

fdf_add_doc_javascript(resource $fdf_document, string $script_name, string $script_code): bool

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 < 5.3.0, PECL fdf SVN)

fdf_add_template — Ajoute un template dans le document FDF

Description

fdf_add_template(
resource $fdf_document,
int $newpage,
string $filename,
string $template,
int $rename
): bool
Avertissement

Cette fonction est actuellement non documentée ; 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 < 5.3.0, PECL fdf SVN)

fdf_close — Ferme un document FDF

Description

fdf_close(resource $fdf_document): void

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 < 5.3.0, PECL fdf SVN)

fdf_create — Crée un nouveau document FDF

Description

fdf_create(): resource

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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 < 5.3.0, PECL fdf SVN)

fdf_enum_values — Appelle une fonction utilisateur à chaque valeur FDF

Description

fdf_enum_values(resource $fdf_document, callable $function, mixed $userdata = ?): bool
Avertissement

Cette fonction est actuellement non documentée ; 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 < 5.3.0, PECL fdf SVN)

fdf_errno — Retourne le code d'erreur de la dernière opération FDF

Description

fdf_errno(): int

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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 < 5.3.0, PECL fdf SVN)

fdf_error — Retourne le message d'erreur FDF

Description

fdf_error(int $error_code = -1): string

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 < 5.3.0, PECL fdf SVN)

fdf_get_ap — Lit l'apparence d'un champ

Description

fdf_get_ap(
resource $fdf_document,
string $field,
int $face,
string $filename
): bool

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 < 5.3.0, PECL fdf SVN)

fdf_get_attachment — Extrait un fichier intégré dans un document FDF

Description

fdf_get_attachment(resource $fdf_document, string $fieldname, string $savepath): array

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 < 5.3.0, PECL fdf SVN)

fdf_get_encoding — Lit la valeur de la clé /Encoding

Description

fdf_get_encoding(resource $fdf_document): string

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 < 5.3.0, PECL fdf SVN)

fdf_get_file — Lit la valeur de la clé /F

Description

fdf_get_file(resource $fdf_document): string

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 < 5.3.0, PECL fdf SVN)

fdf_get_flags — Lit les attributs d'un champ FDF

Description

fdf_get_flags(resource $fdf_document, string $fieldname, int $whichflags): int
Avertissement

Cette fonction est actuellement non documentée ; 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 < 5.3.0, PECLv)

fdf_get_opt — Lit une valeur dans un tableau de valeur d'un champ FDF

Description

fdf_get_opt(resource $fdf_document, string $fieldname, int $element = -1): mixed
Avertissement

Cette fonction est actuellement non documentée ; 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 < 5.3.0, PECL fdf SVN)

fdf_get_status — Lit la valeur de la clé /STATUS

Description

fdf_get_status(resource $fdf_document): string

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 < 5.3.0, PECL fdf SVN)

fdf_get_value — Retourne la valeur d'un champ FDF

Description

fdf_get_value(resource $fdf_document, string $fieldname, int $which = -1): mixed

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 < 5.3.0, PECL fdf SVN)

fdf_get_version — Lit le numéro de version de l'API FDF

Description

fdf_get_version(resource $fdf_document = ?): string

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 < 5.3.0, PECL fdf SVNf)

fdf_header — Émet les en-têtes HTTP spécifiques à FDF

Description

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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 < 5.3.0, PECL fdf SVN)

fdf_next_field_name — Lit le nom du champ FDF suivant

Description

fdf_next_field_name(resource $fdf_document, string $fieldname = ?): string

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 < 5.3.0, PECL fdf SVN)

fdf_open_string — Lit un document FDF à partir d'une chaîne de caractères

Description

fdf_open_string(string $fdf_data): resource

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 < 5.3.0, PECL fdf SVN)

fdf_open — Ouvre un document FDF

Description

fdf_open(string $filename): resource

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 < 5.3.0, PECL fdf SVN)

fdf_remove_item — Configure le cadre FDF de destination pour le formulaire

Description

fdf_remove_item(resource $fdf_document, string $fieldname, int $item): bool
Avertissement

Cette fonction est actuellement non documentée ; 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 < 5.3.0, PECL fdf SVN)

fdf_save_string — Retourne un document FDF sous forme d'une chaîne de caractères

Description

fdf_save_string(resource $fdf_document): string

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 < 5.3.0, PECL fdf SVN)

fdf_save — Sauvegarde un document FDF

Description

fdf_save(resource $fdf_document, string $filename = ?): bool

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 < 5.3.0, PECL fdf SVN)

fdf_set_ap — Fixe l'apparence d'un champ FDF

Description

fdf_set_ap(
resource $fdf_document,
string $field_name,
int $face,
string $filename,
int $page_number
): bool

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 < 5.3.0, PECL fdf SVN)

fdf_set_encoding — Modifie l'encodage des caractères

Description

fdf_set_encoding(resource $fdf_document, string $encoding): bool

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 < 5.3.0, PECL fdf SVN)

fdf_set_file — Crée un document PDF pour y afficher des données FDF

Description

fdf_set_file(resource $fdf_document, string $url, string $target_frame = ?): bool

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 < 5.3.0, PECL fdf SVN)

fdf_set_flags — Modifie une option d'un champ

Description

fdf_set_flags(
resource $fdf_document,
string $fieldname,
int $whichFlags,
int $newFlags
): bool

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 < 5.3.0, PECL fdf SVN)

fdf_set_javascript_action — Modifie l'action javascript d'un champ

Description

fdf_set_javascript_action(
resource $fdf_document,
string $fieldname,
int $trigger,
string $script
): bool

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 < 5.3.0, PECL fdf SVN)

fdf_set_on_import_javascript — Ajoute du code Javascript à être exécuté lorsque Acrobat ouvre un FDF

Description

fdf_set_on_import_javascript(resource $fdf_document, string $script, bool $before_data_import): bool
Avertissement

Cette fonction est actuellement non documentée ; 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 < 5.3.0, PECL fdf SVN)

fdf_set_opt — Modifie une option d'un champ

Description

fdf_set_opt(
resource $fdf_document,
string $fieldname,
int $element,
string $str1,
string $str2
): bool

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 < 5.3.0, PECL fdf SVN)

fdf_set_status — Fixe la valeur de la clé /STATUS

Description

fdf_set_status(resource $fdf_document, string $status): bool

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 < 5.3.0, PECL fdf SVN)

fdf_set_submit_form_action — Modifie l'action d'un formulaire

Description

fdf_set_submit_form_action(
resource $fdf_document,
string $fieldname,
int $trigger,
string $script,
int $flags
): bool

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 < 5.3.0, PECL fdf SVN)

fdf_set_target_frame — Configure le cadre de destination pour l'affichage du formulaire

Description

fdf_set_target_frame(resource $fdf_document, string $frame_name): bool

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 < 5.3.0, PECL fdf SVN)

fdf_set_value — Modifie la valeur d'un champ FDF

Description

fdf_set_value(
resource $fdf_document,
string $fieldname,
mixed $value,
int $isName = ?
): bool

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, mais ignoré en interne.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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 < 5.3.0, PECL fdf SVN)

fdf_set_version — Modifie le numéro de version du fichier FDF

Description

fdf_set_version(resource $fdf_document, string $version): bool

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_deletekey — Delete a key from the keyring
    • gnupg_encrypt — Chiffre un texte donné
    • gnupg_encryptsign — Chiffre et signe un texte donné
    • gnupg_export — Exporte une clé
    • gnupg_getengineinfo — Returns the engine info
    • gnupg_geterror — Retourne le texte d'erreur, si une fonction échoue
    • gnupg_geterrorinfo — Returns the error info
    • gnupg_getprotocol — Retourne le protocole actif courant pour toutes les opérations
    • gnupg_gettrustlist — Search the trust items
    • 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_listsignatures — List key signatures
    • 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.


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-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 : » https://pecl.php.net/package/gnupg.


Constantes pré-définies

GNUPG_SIG_MODE_NORMAL (int)
GNUPG_SIG_MODE_DETACH (int)
GNUPG_SIG_MODE_CLEAR (int)
GNUPG_VALIDITY_UNKNOWN (int)
GNUPG_VALIDITY_UNDEFINED (int)
GNUPG_VALIDITY_NEVER (int)
GNUPG_VALIDITY_MARGINAL (int)
GNUPG_VALIDITY_FULL (int)
GNUPG_VALIDITY_ULTIMATE (int)
GNUPG_PROTOCOL_OpenPGP (int)
GNUPG_PROTOCOL_CMS (int)
GNUPG_SIGSUM_VALID (int)
GNUPG_SIGSUM_GREEN (int)
GNUPG_SIGSUM_RED (int)
GNUPG_SIGSUM_KEY_REVOKED (int)
GNUPG_SIGSUM_KEY_EXPIRED (int)
GNUPG_SIGSUM_KEY_MISSING (int)
GNUPG_SIGSUM_SIG_EXPIRED (int)
GNUPG_SIGSUM_CRL_MISSING (int)
GNUPG_SIGSUM_CRL_TOO_OLD (int)
GNUPG_SIGSUM_BAD_POLICY (int)
GNUPG_SIGSUM_SYS_ERROR (int)
GNUPG_ERROR_WARNING (int)
GNUPG_ERROR_EXCEPTION (int)
GNUPG_ERROR_SILENT (int)


  • « 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.

Note:

En tant qu'alternative aux fonctions utilisant explicitement les resource, vous pouvez également utiliser un style orienté objet à l'aide d'objets GnuPG .

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_deletekey — Delete a key from the keyring
  • gnupg_encrypt — Chiffre un texte donné
  • gnupg_encryptsign — Chiffre et signe un texte donné
  • gnupg_export — Exporte une clé
  • gnupg_getengineinfo — Returns the engine info
  • gnupg_geterror — Retourne le texte d'erreur, si une fonction échoue
  • gnupg_geterrorinfo — Returns the error info
  • gnupg_getprotocol — Retourne le protocole actif courant pour toutes les opérations
  • gnupg_gettrustlist — Search the trust items
  • 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_listsignatures — List key signatures
  • 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

gnupg_adddecryptkey(resource $identifier, string $fingerprint, string $passphrase): bool

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

gnupg_addencryptkey(resource $identifier, string $fingerprint): bool

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

gnupg_addsignkey(resource $identifier, string $fingerprint, string $passphrase = ?): bool

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

gnupg_cleardecryptkeys(resource $identifier): bool

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

gnupg_clearencryptkeys(resource $identifier): bool

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

gnupg_clearsignkeys(resource $identifier): bool

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

gnupg_decrypt(resource $identifier, string $text): string|false

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_decrypt() (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_deletekey »
  • 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

gnupg_decryptverify(resource $identifier, string $text, string &$plaintext): array|false

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);
?>


Delete a key from the keyring

  • « gnupg_decryptverify
  • gnupg_encrypt »
  • PHP Manual
  • Fonctions GnuPG
  • Delete a key from the keyring

gnupg_deletekey

(PECL gnupg >= 0.5)

gnupg_deletekey — Delete a key from the keyring

Description

gnupg_deletekey(resource $identifier, string $key, bool $allow_secret): bool

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

key

The key to delete.

allow_secret

It specifies whether to delete secret keys as well.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 Procedural gnupg_deletekey() example

<?php
$res = gnupg_init();
gnupg_deletekey($res, "8660281B6051D071D94B5B230549F9DC851566DC");
?>

Exemple #2 OO gnupg_deletekey() example

<?php
$gpg = new gnupg();
$gpg->deletekey("8660281B6051D071D94B5B230549F9DC851566DC");
?>


Chiffre un texte donné

  • « gnupg_deletekey
  • gnupg_encryptsign »
  • PHP Manual
  • Fonctions GnuPG
  • Chiffre un texte donné

gnupg_encrypt

(PECL gnupg >= 0.1)

gnupg_encrypt — Chiffre un texte donné

Description

gnupg_encrypt(resource $identifier, string $plaintext): string|false

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

gnupg_encryptsign(resource $identifier, string $plaintext): string|false

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_getengineinfo »
  • PHP Manual
  • Fonctions GnuPG
  • Exporte une clé

gnupg_export

(PECL gnupg >= 0.1)

gnupg_export — Exporte une clé

Description

gnupg_export(resource $identifier, string $fingerprint): string|false

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");
?>


Returns the engine info

  • « gnupg_export
  • gnupg_geterror »
  • PHP Manual
  • Fonctions GnuPG
  • Returns the engine info

gnupg_getengineinfo

(PECL gnupg >= 1.5)

gnupg_getengineinfo — Returns the engine info

Description

gnupg_getengineinfo(resource $identifier): array

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

Returns an array with engine info consting of protocol, file_name and home_dir.

Exemples

Exemple #1 Procedural gnupg_getengineinfo() example

<?php
$res = gnupg_init();
print_r(gnupg_getengineinfo($res));
?>

L'exemple ci-dessus va afficher :

array(3) {
  ["protocol"]=>
  int(0)
  ["file_name"]=>
  string(12) "/usr/bin/gpg"
  ["home_dir"]=>
  string(0) ""
}

Exemple #2 OO gnupg_getengineinfo() example

<?php
$gpg = new gnupg(["file_name" => "/usr/bin/gpg2", "home_dir" => "/var/www/.gnupg"]);
print_r($gpg->getengineinfo());
?>

L'exemple ci-dessus va afficher :

array(3) {
  ["protocol"]=>
  int(0)
  ["file_name"]=>
  string(13) "/usr/bin/gpg2"
  ["home_dir"]=>
  string(15) "/var/www/.gnupg"
}


Retourne le texte d'erreur, si une fonction échoue

  • « gnupg_getengineinfo
  • gnupg_geterrorinfo »
  • 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

gnupg_geterror(resource $identifier): string|false

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();
?>


Returns the error info

  • « gnupg_geterror
  • gnupg_getprotocol »
  • PHP Manual
  • Fonctions GnuPG
  • Returns the error info

gnupg_geterrorinfo

(PECL gnupg >= 1.5)

gnupg_geterrorinfo — Returns the error info

Description

gnupg_geterrorinfo(resource $identifier): array

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

Returns an array with error info.

Exemples

Exemple #1 Procedural gnupg_geterrorinfo() example

<?php
$res = gnupg_init();
// this is called without any error
print_r(gnupg_geterrorinfo($res));
?>

L'exemple ci-dessus va afficher :

array(4) {
  ["generic_message"]=>
  bool(false)
  ["gpgme_code"]=>
  int(0)
  ["gpgme_source"]=>
  string(18) "Unspecified source"
  ["gpgme_message"]=>
  string(7) "Success"
}

Exemple #2 OO gnupg_geterrorinfo() example

<?php
$gpg = new gnupg();
// error call
$gpg->decrypt('abc');
// error info should be displayed
print_r($gpg->geterrorinfo());
?>

L'exemple ci-dessus va afficher :

array(4) {
  ["generic_message"]=>
  string(14) "decrypt failed"
  ["gpgme_code"]=>
  int(117440570)
  ["gpgme_source"]=>
  string(5) "GPGME"
  ["gpgme_message"]=>
  string(7) "No data"
}


Retourne le protocole actif courant pour toutes les opérations

  • « gnupg_geterrorinfo
  • gnupg_gettrustlist »
  • 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

gnupg_getprotocol(resource $identifier): int

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();
?>


Search the trust items

  • « gnupg_getprotocol
  • gnupg_import »
  • PHP Manual
  • Fonctions GnuPG
  • Search the trust items

gnupg_gettrustlist

(PECL gnupg >= 0.5)

gnupg_gettrustlist — Search the trust items

Description

gnupg_gettrustlist(resource $identifier, string $pattern): ?array

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

pattern

Expression to limit the list of trust items to only the ones matching the pattern.

Valeurs de retour

On success, this function returns an array of trust items. On failure, this function returns null.

Exemples

Exemple #1 Procedural gnupg_gettrustlist() example

<?php
$res = gnupg_init();
$items = gnupg_gettrustlist($res);
print_r($items);
?>

Exemple #2 OO gnupg_gettrustlist() example

<?php
$gpg = new gnupg();
$items = $gpg->gettrustlist();
print_r($items);
?>


Importe une clé

  • « gnupg_gettrustlist
  • gnupg_init »
  • PHP Manual
  • Fonctions GnuPG
  • Importe une clé

gnupg_import

(PECL gnupg >= 0.3)

gnupg_import — Importe une clé

Description

gnupg_import(resource $identifier, string $keydata): array|false

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

gnupg_init(?array $options = null): resource

Liste de paramètres

options

Doit être un tableau associatif. Il est utilisé pour modifier la configuration par défaut du moteur cryptographique.

Remplacement de la configuration
Clé | Type | Description
file_name | string | C'est le nom de fichier du programme exécutable implémentant ce protocole qui est généralement le chemin de l'exécutable gpg.
home_dir | string | Il s'agit du nom du répertoire de configuration. Il remplace également la variable d'environnement GNUPGHOME qui est utilisée dans le même but.

Valeurs de retour

Une ressource de connexion GnuPG, utilisée par les autres fonctions GnuPG.

Historique

Version | Description
1.5.0 | Le paramètre options a été ajouté.

Exemples

Exemple #1 Exemple avec gnupg_init() avec réglage par défaut (Style procédural)

<?php
$res = gnupg_init();
?>

Exemple #2 Exemple avec gnupg_init() avec un nom de fichier et un répertoire d'origine surchargés (Style procédural)

<?php
$res = gnupg_init(["file_name" => "/usr/bin/gpg2", "home_dir" => "/var/www/.gnupg"]);
?>

Exemple #3 Exemple avec gnupg_init() avec réglage par défaut (Style orienté objet)

<?php
$gpg = new gnupg();
?>

Exemple #4 Exemple avec gnupg_init() avec un nom de fichier et un répertoire d'origine surchargés (Style orienté objet)

<?php
$gpg = new gnupg(["file_name" => "/usr/bin/gpg2", "home_dir" => "/var/www/.gnupg"]);
?>


Retourne un tableau avec les informations à propos de toutes les clés qui correspondent au motif donné

  • « gnupg_init
  • gnupg_listsignatures »
  • 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

gnupg_keyinfo(resource $identifier, string $pattern): array|false

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);
?>


List key signatures

  • « gnupg_keyinfo
  • gnupg_setarmor »
  • PHP Manual
  • Fonctions GnuPG
  • List key signatures

gnupg_listsignatures

(PECL gnupg >= 0.5)

gnupg_listsignatures — List key signatures

Description

gnupg_listsignatures(resource $identifier, string $keyid): ?array

Liste de paramètres

identifier

L'identifiant gnupg, généré par un appel à la fonction gnupg_init() ou à la fonction gnupg.

keyid

The key ID to list signatures for.

Valeurs de retour

On success, this function returns an array of key signatures. On failure, this function returns null.

Exemples

Exemple #1 Procedural gnupg_listsignatures() example

<?php
$res = gnupg_init();
$signatures = gnupg_listsignatures($res, "8660281B6051D071D94B5B230549F9DC851566DC");
print_r($signatures);
?>

Exemple #2 OO gnupg_listsignatures() example

<?php
$gpg = new gnupg();
$signatures = $gpg->listsignatures("8660281B6051D071D94B5B230549F9DC851566DC");
print_r($signatures);
?>


Change la sortie blindée

  • « gnupg_listsignatures
  • 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

gnupg_setarmor(resource $identifier, int $armor): bool

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

gnupg_seterrormode(resource $identifier, int $errormode): void

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

gnupg_setsignmode(resource $identifier, int $signmode): bool

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

gnupg_sign(resource $identifier, string $plaintext): string|false

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
  • wkhtmltox »
  • PHP Manual
  • Fonctions GnuPG
  • Vérifie un texte signé

gnupg_verify

(PECL gnupg >= 0.1)

gnupg_verify — Vérifie un texte signé

Description

gnupg_verify(
resource $identifier,
string $signed_text,
string $signature,
string &$plaintext = ?
): array|false

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);
?>


wkhtmltox

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
  • wkhtmltox\PDF\Converter — La classe wkhtmltox\PDF\Converter
    • wkhtmltox\PDF\Converter::add — Ajoute un objet pour la conversion
    • wkhtmltox\PDF\Converter::__construct — Cré un nouveau convertisseur PDF
    • wkhtmltox\PDF\Converter::convert — Lance la conversion PDF
    • wkhtmltox\PDF\Converter::getVersion — Détermine la version du convertisseur
  • wkhtmltox\PDF\Object — La classe wkhtmltox\PDF\Object
    • wkhtmltox\PDF\Object::__construct — Crée un nouvel objet PDF
  • wkhtmltox\Image\Converter — La classe wkhtmltox\Image\Converter
    • wkhtmltox\Image\Converter::__construct — Cré un nouveau convertisseur d'image
    • wkhtmltox\Image\Converter::convert — Réalise une conversion d'image
    • wkhtmltox\Image\Converter::getVersion — Détermine la version du convertisseur


Introduction

libwkhtmltox est une bibliothèque open source LGPLv3 pour convertir du HTML en PDF et en divers formats d'image en utilisant le moteur de rendu QtWebKit.


Pré-requis

Les sources et les binaires libwkhtmltox sont distribués via le site » wkhtmltopdf.org.

Attention

Les utilisateurs de Windows doivent ajouter la bibliothèque wkhtmltox.dll à leur variable d'environnement PATH.


Installation

Le code source de cette extension et les binaires pour WIndows sont stockés sur » github,

Récupération du code source et compilation de l'extension :

git clone https://github.com/krakjoe/wkhtmltox
cd wkhtmltox
phpize
./configure --with-wkhtmltox=/path/to/wkhtmltox/installation
make
sudo make install

Récupèration des mises à jours et recompilation de l'extension :

cd wkhtmltox
phpize --clean
git pull origin master
phpize
./configure --with-wkhtmltox=/path/to/wkhtmltox/installation
make
sudo make install


Configuration à l'exécution

Nom | Description | Défaut | Stage | Historique
wkhtmltox.graphics | autorise libwkhtmltox à utiliser des graphiques | Off | INI_SYSTEM|INI_PERDIR | >= 0.3.2


La classe wkhtmltox\PDF\Converter

(wkhtmltox >= 0.1.0)

Introduction

Convertie un HTML en entrée, ou définit un jeux d'entrées HTML, en un PDF en sortie

Synopsis de la classe

class wkhtmltox\PDF\Converter {
/* Constructor */
public __construct(array $settings = ?)
/* Méthodes */
public add(wkhtmltox\PDF\Object $object): void
public convert(): ?string
public getVersion(): string
}

Sommaire

  • wkhtmltox\PDF\Converter::add — Ajoute un objet pour la conversion
  • wkhtmltox\PDF\Converter::__construct — Cré un nouveau convertisseur PDF
  • wkhtmltox\PDF\Converter::convert — Lance la conversion PDF
  • wkhtmltox\PDF\Converter::getVersion — Détermine la version du convertisseur


Ajoute un objet pour la conversion

  • « wkhtmltox\PDF\Converter
  • wkhtmltox\PDF\Converter::__construct »
  • PHP Manual
  • wkhtmltox\PDF\Converter
  • Ajoute un objet pour la conversion

wkhtmltox\PDF\Converter::add

(wkhtmltox >= 0.1.0)

wkhtmltox\PDF\Converter::add — Ajoute un objet pour la conversion

Description

public wkhtmltox\PDF\Converter::add(wkhtmltox\PDF\Object $object): void

Ajoute l'objet fourni pour la conversion

Liste de paramètres

object

L'objet à ajouter


Cré un nouveau convertisseur PDF

  • « wkhtmltox\PDF\Converter::add
  • wkhtmltox\PDF\Converter::convert »
  • PHP Manual
  • wkhtmltox\PDF\Converter
  • Cré un nouveau convertisseur PDF

wkhtmltox\PDF\Converter::__construct

(wkhtmltox >= 0.1.0)

wkhtmltox\PDF\Converter::__construct — Cré un nouveau convertisseur PDF

Description

public wkhtmltox\PDF\Converter::__construct(array $settings = ?)

Crée un nouveau convertisseur PDF, en utilisant optionnellement, une configuration.

Liste de paramètres

settings

Nom | Description | Valeurs | Historique
size.pageSize | Taille du papier du document final | A4 | >= 0.1.0
size.width | Largeur du document final | 210mm | >= 0.1.0
size.height | Hauteur du document final | 297mm | >= 0.1.0
orientation orientation du document final
Paysage
Portrait
>= 0.1.0
colorMode Mode couleur du document final
Coleur
Niveau de gris
>= 0.1.0
resolution | résoluition du document final | La plupart du temps, n'a aucun effet | >= 0.1.0
dpi | dpi à utiliser lors de l'impression | 80 | >= 0.1.0
pageOffset | Entier à ajouter aux numéros de pages générés pour l'en-tête, le pieds de page et le sommaire | >= 0.1.0
copies | >= 0.1.0
collate | Si l'on doit assembler les copies | booléen | >= 0.1.0
outline | Génère un plan PDF | booléen | >= 0.1.0
outlineDepth | Profondeur maximal du plan | >= 0.1.0
dumpOutline | Chemin du fichier pour extraire le plan XML | >= 0.1.0
out | Chemin pour le fichier final, si la sortie "-" est utilisé | >= 0.1.0
documentTitle | Titre du document final | >= 0.1.0
useCompression | Active ou désactive la compression sans perte | boolean | >= 0.1.0
margin.top | Taile de la marge du haut | 2cm | >= 0.1.0
margin.bottom | Taille de la marge du bas | 2cm | >= 0.1.0
margin.left | Taille de la marge de gauche | 2cm | >= 0.1.0
margin.right | Taille de la marge de droite | 2cm | >= 0.1.0
imageDPI | DPI maximal pour les images dans le document final | >= 0.1.0
imageQuality | Le facteur de compression jpeg pour les images dans le document final | 94 | >= 0.1.0
load.cookieJar | Chemin vers le fichier utilisé pour charger et stocker les coockies | /tmp/cookies.txt | >= 0.1.0


Lance la conversion PDF

  • « wkhtmltox\PDF\Converter::__construct
  • wkhtmltox\PDF\Converter::getVersion »
  • PHP Manual
  • wkhtmltox\PDF\Converter
  • Lance la conversion PDF

wkhtmltox\PDF\Converter::convert

(wkhtmltox >= 0.1.0)

wkhtmltox\PDF\Converter::convert — Lance la conversion PDF

Description

public wkhtmltox\PDF\Converter::convert(): ?string

Lance la conversion de tous les objets précédemment ajoutés.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur retournée contiendra le contenu du buffer de conversion.


Détermine la version du convertisseur

  • « wkhtmltox\PDF\Converter::convert
  • wkhtmltox\PDF\Object »
  • PHP Manual
  • wkhtmltox\PDF\Converter
  • Détermine la version du convertisseur

wkhtmltox\PDF\Converter::getVersion

(wkhtmltox >= 0.3.2)

wkhtmltox\PDF\Converter::getVersion — Détermine la version du convertisseur

Description

public wkhtmltox\PDF\Converter::getVersion(): string

Détermine la version du convertisseur, tel que rapporté par libwkhtmltox.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la version sous la forme d'une chaîne de caractères.


La classe wkhtmltox\PDF\Object

(wkhtmltox >= 0.1.0)

Introduction

Représente un document HTML, entrée pour le convertisseur PDF

Synopsis de la classe

class wkhtmltox\PDF\Object {
/* Constructor */
public __construct(string $buffer, array $settings = ?)
}

Sommaire

  • wkhtmltox\PDF\Object::__construct — Crée un nouvel objet PDF


Crée un nouvel objet PDF

  • « wkhtmltox\PDF\Object
  • wkhtmltox\Image\Converter »
  • PHP Manual
  • wkhtmltox\PDF\Object
  • Crée un nouvel objet PDF

wkhtmltox\PDF\Object::__construct

(wkhtmltox >= 0.1.0)

wkhtmltox\PDF\Object::__construct — Crée un nouvel objet PDF

Description

public wkhtmltox\PDF\Object::__construct(string $buffer, array $settings = ?)

Crée un nouvel objet PDF depuis le buffer fourni, et optionnellement, configure les options.

Liste de paramètres

buffer

HTML

settings

Nom | Description | Valeur | Historique
page | URL ou chemin du fichier HTML à convertir | >= 0.1.0
useExternalLinks | A définir à true pour convertir les liens externes des données d'entrée en lien PDF externes dans les données de sortie | booléen | >= 0.1.0
useLocalLinks | A définir à true pour convertir les liens internes dans les données d'entrées en lien PDF internes dans les données de sortie | booléen | >= 0.1.0
produceForms | A définir à true pour convertir les formulaires HTML en formulaires PDF | booléen | >= 0.1.0
replacements | non-documenté | >= 0.1.0
includeInOutline | A définir à true pour inclure les sections depuis cet objet dans le contour et le sommaire | booléen | >= 0.1.0
pagesCount | A définir à true pour inclure dans le sommaire le nombre de pages de cet objet | booléen | >= 0.1.0
tocXsl | A définir pour convertir cet objet en un objet de sommaire | >= 0.1.0
toc.useDottedLines | A définir à true pour utiliser des pointillés dans le sommaire | booléen | >= 0.1.0
toc.captionText | La légende pour le sommaire | >= 0.1.0
toc.forwardLinks | A définir à true pour créer des liens depuis le sommaire vers le contenu | booléen | >= 0.1.0
toc.backLinks | A définir à true pour créer des liens depuis le contenu vers le sommaire | booléen | >= 0.1.0
toc.indentation | L'indentation pour le sommaire | 2em | >= 0.1.0
toc.fontScale | Le facteur pour diminuer la police de caractère à tous les niveaux du sommaire | 0.8 | >= 0.1.0
header.fontSize | La taille de la police de caractère à utiliser dans l'en-tête | 13 | >= 0.1.0
header.fontName | Le nom de la police de caractères à utiliser dans l'en-tête | times | >= 0.1.0
header.left | Le text pour le côté gauche de l'en-tête | >= 0.1.0
header.center | Le texte pour le centre de l'en-tête | >= 0.1.0
header.right | Le texte pour le côté droit de l'en-tête | >= 0.1.0
header.line | Active ou désactive la règle horizontal sous l'en-tête | boolean | >= 0.1.0
header.spacing | L'espace entre l'en-tête et le contenu | 1.8 | >= 0.1.0
header.htmlUrl | ULR ou le chemin vers le fichier HTML à utiliser dans l'en-tête | >= 0.1.0
footer.fontSize | La taille de la police de caractère à utiliser dans le bas de page | 13 | >= 0.1.0
footer.fontName | Le nom de la police de caractère à utiliser dans le bas de page | times | >= 0.1.0
footer.left | Le texte pour le côté gauche du bas de page | >= 0.1.0
footer.center | Le texte pour le centre du bas de page | >= 0.1.0
footer.right | Le texte pour le côté droit du bas de page | >= 0.1.0
footer.line | Active ou désactive la règle horizontale sous le bas de page | booléen | >= 0.1.0
footer.spacing | L'espace entre le bas de page et le contenu | 1.8 | >= 0.1.0
footer.htmlUrl | URL ou le chemin du fichier HTML à utiliser dans le bas de page | >= 0.1.0
load.username | user name to use when loging into a website | bart | >= 0.1.0
load.password | the password to used when logging into a website | elbarto | >= 0.1.0
load.jsdelay | the amount of time in milliseconds to wait after a page is loaded until it is captured | 1200 | >= 0.1.0
load.zoomFactor | how much zoom should be applied to the content | 2.2 | >= 0.1.0
load.customHeaders | custom headers to send when requesting the main web page | >= 0.1.0
load.repertCustomHeaders | set true to send with all requests | boolean | >= 0.1.0
load.cookies | cookie string to send when requesting the main web page | >= 0.1.0
load.post | post string to send when requesting the main web page | >= 0.1.0
load.blockLocalFileAccess | disallow local and piped files to access other local files | boolean | >= 0.1.0
load.stopSlowScript | stop slow running javascript | boolean
load.debugJavascript | allow javascript to raise warnings | boolean | >= 0.1.0
load.loadErrorHandling set error handling strategy
abort | abort the convertion process
skip | do not add the object to the final output
ignore | try to add the object to the final output
>= 0.1.0
load.proxy | >= 0.1.0
web.background | include background image in output | boolean | >= 0.1.0
web.loadImages | include images in output | boolean | >= 0.1.0
web.enableJavascript | enable or disable javascript | boolean | >= 0.1.0
web.enableIntelligentShrinking | enable to attempt to fit more content on page, only applies to PDF output | boolean | >= 0.1.0
web.minimumFontSize | the minimum font size allowed | 9 | >= 0.1.0
web.printMediaType | print content using print media type instead of screen media type | boolean | >= 0.1.0
web.defaultEncoding | content to use where no encoding is specified | utf-8 | >= 0.1.0
web.userStyleSheet | URL or path to a user specified style sheet | /path/to/style.css | >= 0.1.0
web.enablePlugins | enable or disable NS plugins | boolean | >= 0.1.0


La classe wkhtmltox\Image\Converter

(wkhtmltox >= 0.1.0)

Introduction

Convertie un HTML en une image en plusieurs formats

Synopsis de la classe

class wkhtmltox\Image\Converter {
/* Constructor */
public __construct(string $buffer = ?, array $settings = ?)
/* Méthodes */
public convert(): ?string
public getVersion(): string
}

Sommaire

  • wkhtmltox\Image\Converter::__construct — Cré un nouveau convertisseur d'image
  • wkhtmltox\Image\Converter::convert — Réalise une conversion d'image
  • wkhtmltox\Image\Converter::getVersion — Détermine la version du convertisseur


Cré un nouveau convertisseur d'image

  • « wkhtmltox\Image\Converter
  • wkhtmltox\Image\Converter::convert »
  • PHP Manual
  • wkhtmltox\Image\Converter
  • Cré un nouveau convertisseur d'image

wkhtmltox\Image\Converter::__construct

(wkhtmltox >= 0.1.0)

wkhtmltox\Image\Converter::__construct — Cré un nouveau convertisseur d'image

Description

public wkhtmltox\Image\Converter::__construct(string $buffer = ?, array $settings = ?)

Crée un convertisseur d'image, en utilisant optionnellement un buffer d'entrée ainsi qu'une configuration

Liste de paramètres

buffer

HTML

settings

Nom | Description | Valeur | Historique
in | URL ou chemin du fichier d'entrée, si la sortie "-" est utilisée | /chemin/vers/markup.html | >= 0.1.0
out | Chemin du fichier de sortie, si la sortie "-" est utilisée ; par défaut, un buffer inter est utilisé | /chemin/vers/sortie.png | >= 0.1.0
fmt format de sortie à utiliser
"" default
jpg | sortie sous la forme d'un JPEG
png | sortie sous la forme d'un PNG
bmp | sortie sous la forme d'un bitmap
svg | sortie sous la forme d'un SVG
>= 0.1.0
transparent | lors d'une sortie en PNG ou SVG, rend l'arrière plan transparent | booléen | >= 0.1.0
screenWidth | la largeur d'écran à utiliser pour le rendu en pixels | 800 | >= 0.1.0
smartWidth | lorsque vaut true, la largeur de l'écran est étendu à la largeur du contenu | booléen | >= 0.1.0
quality | Facteur de compression à utiliser lorsque la sortie est une image JPEG | 94 | >= 0.1.0
crop.left | Gauche/coordonnée en X de la fenêtre à capturer, en pixels | 200 | >= 0.1.0
crop.top | Haut/coordonnée en Y de la fenêtre à capturer, en pixels | 200 | >= 0.1.0
crop.width | Largeur de la fenêtre à capturer, en pixels | 200 | >= 0.1.0
crop.height | Hauteur de la fenêtre à capturer, en pixels | 200 | >= 0.1.0
load.cookieJar | Chemin du fichier utilisé pour charger et stocker les cookies. | /tmp/cookies.txt | >= 0.1.0
load.username | user name to use when loging into a website | bart | >= 0.1.0
load.password | the password to used when logging into a website | elbarto | >= 0.1.0
load.jsdelay | the amount of time in milliseconds to wait after a page is loaded until it is captured | 1200 | >= 0.1.0
load.zoomFactor | how much zoom should be applied to the content | 2.2 | >= 0.1.0
load.customHeaders | custom headers to send when requesting the main web page | >= 0.1.0
load.repertCustomHeaders | set true to send with all requests | boolean | >= 0.1.0
load.cookies | cookie string to send when requesting the main web page | >= 0.1.0
load.post | post string to send when requesting the main web page | >= 0.1.0
load.blockLocalFileAccess | disallow local and piped files to access other local files | boolean | >= 0.1.0
load.stopSlowScript | stop slow running javascript | boolean
load.debugJavascript | allow javascript to raise warnings | boolean | >= 0.1.0
load.loadErrorHandling set error handling strategy
abort | abort the convertion process
skip | do not add the object to the final output
ignore | try to add the object to the final output
>= 0.1.0
load.proxy | >= 0.1.0
web.background | include background image in output | boolean | >= 0.1.0
web.loadImages | include images in output | boolean | >= 0.1.0
web.enableJavascript | enable or disable javascript | boolean | >= 0.1.0
web.enableIntelligentShrinking | enable to attempt to fit more content on page, only applies to PDF output | boolean | >= 0.1.0
web.minimumFontSize | the minimum font size allowed | 9 | >= 0.1.0
web.printMediaType | print content using print media type instead of screen media type | boolean | >= 0.1.0
web.defaultEncoding | content to use where no encoding is specified | utf-8 | >= 0.1.0
web.userStyleSheet | URL or path to a user specified style sheet | /path/to/style.css | >= 0.1.0
web.enablePlugins | enable or disable NS plugins | boolean | >= 0.1.0


Réalise une conversion d'image

  • « wkhtmltox\Image\Converter::__construct
  • wkhtmltox\Image\Converter::getVersion »
  • PHP Manual
  • wkhtmltox\Image\Converter
  • Réalise une conversion d'image

wkhtmltox\Image\Converter::convert

(wkhtmltox >= 0.1.0)

wkhtmltox\Image\Converter::convert — Réalise une conversion d'image

Description

public wkhtmltox\Image\Converter::convert(): ?string

Réalise une conversion dans le buffer de sortie.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur retournée contiendra le contenu du buffer de conversion


Détermine la version du convertisseur

  • « wkhtmltox\Image\Converter::convert
  • PS »
  • PHP Manual
  • wkhtmltox\Image\Converter
  • Détermine la version du convertisseur

wkhtmltox\Image\Converter::getVersion

(wkhtmltox >= 0.3.2)

wkhtmltox\Image\Converter::getVersion — Détermine la version du convertisseur

Description

public wkhtmltox\Image\Converter::getVersion(): string

Détermine la version du convertisseur, tel que rapporté par libwkhtmltox

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la version, sous la forme d'une chaîne de caractères

Avertissement

Ceci n'est actuellement pas implémenté par libwkhtmltox


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 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 : » https://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

ps_add_bookmark(
resource $psdoc,
string $text,
int $parent = 0,
int $open = 0
): int

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

ps_add_launchlink(
resource $psdoc,
float $llx,
float $lly,
float $urx,
float $ury,
string $filename
): bool

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

ps_add_locallink(
resource $psdoc,
float $llx,
float $lly,
float $urx,
float $ury,
int $page,
string $dest
): bool

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

ps_add_note(
resource $psdoc,
float $llx,
float $lly,
float $urx,
float $ury,
string $contents,
string $title,
string $icon,
int $open
): bool

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

ps_add_pdflink(
resource $psdoc,
float $llx,
float $lly,
float $urx,
float $ury,
string $filename,
int $page,
string $dest
): bool

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

ps_add_weblink(
resource $psdoc,
float $llx,
float $lly,
float $urx,
float $ury,
string $url
): bool

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

ps_arc(
resource $psdoc,
float $x,
float $y,
float $radius,
float $alpha,
float $beta
): bool

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

ps_arcn(
resource $psdoc,
float $x,
float $y,
float $radius,
float $alpha,
float $beta
): bool

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

ps_begin_page(resource $psdoc, float $width, float $height): bool

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

ps_begin_pattern(
resource $psdoc,
float $width,
float $height,
float $xstep,
float $ystep,
int $painttype
): int|false

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

ps_begin_template(resource $psdoc, float $width, float $height): int

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

ps_circle(
resource $psdoc,
float $x,
float $y,
float $radius
): bool

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

ps_clip(resource $psdoc): bool

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

ps_close_image(resource $psdoc, int $imageid): void|false

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

ps_close(resource $psdoc): bool

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

ps_closepath_stroke(resource $psdoc): bool

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

ps_closepath(resource $psdoc): bool

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

ps_continue_text(resource $psdoc, string $text): bool

É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

ps_curveto(
resource $psdoc,
float $x1,
float $y1,
float $x2,
float $y2,
float $x3,
float $y3
): bool

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

ps_delete(resource $psdoc): bool

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

ps_end_page(resource $psdoc): bool

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

ps_end_pattern(resource $psdoc): bool

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

ps_end_template(resource $psdoc): bool

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

ps_fill_stroke(resource $psdoc): bool

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

ps_fill(resource $psdoc): bool

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

ps_findfont(
resource $psdoc,
string $fontname,
string $encoding,
bool $embed = false
): int

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

ps_get_buffer(resource $psdoc): string

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 est actuellement non documentée ; 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

ps_get_parameter(resource $psdoc, string $name, float $modifier = ?): string|false

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

ps_get_value(resource $psdoc, string $name, float $modifier = ?): float

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

ps_hyphenate(resource $psdoc, string $text): array|false

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

ps_include_file(resource $psdoc, string $file): bool

Avertissement

Cette fonction est actuellement non documentée ; 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

ps_lineto(resource $psdoc, float $x, float $y): bool

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

ps_makespotcolor(resource $psdoc, string $name, int $reserved = 0): int

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

ps_moveto(resource $psdoc, float $x, float $y): bool

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

ps_new(): resource|false

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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

ps_open_file(resource $psdoc, string $filename = ?): bool

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

ps_open_image_file(
resource $psdoc,
string $type,
string $filename,
string $stringparam = ?,
int $intparam = 0
): int

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

ps_open_image(
resource $psdoc,
string $type,
string $source,
string $data,
int $lenght,
int $width,
int $height,
int $components,
int $bpc,
string $params
): int

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

ps_open_memory_image(resource $psdoc, int $gd): int

Avertissement

Cette fonction est actuellement non documentée ; 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

ps_place_image(
resource $psdoc,
int $imageid,
float $x,
float $y,
float $scale
): bool

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

ps_rect(
resource $psdoc,
float $x,
float $y,
float $width,
float $height
): bool

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

ps_restore(resource $psdoc): bool

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

ps_rotate(resource $psdoc, float $rot): bool

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

ps_save(resource $psdoc): bool

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

ps_scale(resource $psdoc, float $x, float $y): bool

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

ps_set_border_color(
resource $psdoc,
float $red,
float $green,
float $blue
): bool

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

ps_set_border_dash(resource $psdoc, float $black, float $white): bool

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

ps_set_border_style(resource $psdoc, string $style, float $width): bool

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

ps_set_info(resource $p, string $key, string $val): bool

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

ps_set_parameter(resource $psdoc, string $name, string $value): bool

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

ps_set_text_pos(resource $psdoc, float $x, float $y): bool

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

ps_set_value(resource $psdoc, string $name, float $value): bool

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

ps_setcolor(
resource $psdoc,
string $type,
string $colorspace,
float $c1,
float $c2,
float $c3,
float $c4
): bool

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.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Notes

Attention

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.


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

ps_setdash(resource $psdoc, float $on, float $off): bool

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

ps_setflat(resource $psdoc, float $value): bool

Avertissement

Cette fonction est actuellement non documentée ; 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

ps_setfont(resource $psdoc, int $fontid, float $size): bool

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

ps_setgray(resource $psdoc, float $gray): bool

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

ps_setlinecap(resource $psdoc, int $type): bool

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

ps_setlinejoin(resource $psdoc, int $type): bool

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

ps_setlinewidth(resource $psdoc, float $width): bool

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

ps_setmiterlimit(resource $psdoc, float $value): bool

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

ps_setoverprintmode(resource $psdoc, int $mode): bool

Avertissement

Cette fonction est actuellement non documentée ; 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

ps_setpolydash(resource $psdoc, float $arr): bool

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

ps_shading_pattern(resource $psdoc, int $shadingid, string $optlist): int|false

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

ps_shading(
resource $psdoc,
string $type,
float $x0,
float $y0,
float $x1,
float $y1,
float $c1,
float $c2,
float $c3,
float $c4,
string $optlist
): int|false

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

ps_shfill(resource $psdoc, int $shadingid): bool

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

ps_show_boxed(
resource $psdoc,
string $text,
float $left,
float $bottom,
float $width,
float $height,
string $hmode,
string $feature = ?
): int

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

ps_show_xy2(
resource $psdoc,
string $text,
int $len,
float $xcoor,
float $ycoor
): bool

Avertissement

Cette fonction est actuellement non documentée ; 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

ps_show_xy(
resource $psdoc,
string $text,
float $x,
float $y
): bool

É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

ps_show2(resource $psdoc, string $text, int $len): bool

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

ps_show(resource $psdoc, string $text): bool

É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

ps_string_geometry(
resource $psdoc,
string $text,
int $fontid = 0,
float $size = 0.0
): array

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

ps_stringwidth(
resource $psdoc,
string $text,
int $fontid = 0,
float $size = 0.0
): float

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

ps_stroke(resource $psdoc): bool

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

ps_symbol_name(resource $psdoc, int $ord, int $fontid = 0): string

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

ps_symbol_width(
resource $psdoc,
int $ord,
int $fontid = 0,
float $size = 0.0
): float

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

ps_symbol(resource $psdoc, int $ord): bool

É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
  • RpmInfo »
  • PHP Manual
  • Fonctions PS
  • Fixe une translation

ps_translate

(PECL ps >= 1.1.0)

ps_translate — Fixe une translation

Description

ps_translate(resource $psdoc, float $x, float $y): bool

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


RpmInfo

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation via PECL
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • RpmInfo Fonctions
    • rpmaddtag — Add tag retrieved in query
    • rpmdbinfo — Get information from installed RPM
    • rpmdbsearch — Search RPM packages
    • rpmgetsymlink — Get target of a symlink
    • rpminfo — Get information from a RPM file
    • rpmvercmp — RPM version comparison


Introduction

This extension enables you to retrieve information from RPM files or from the installed RPMs database.

It also provides a rpm stream wrapper to retrieve RPM content (since version 1.0.0 with librpm >= 4.13).


Installation/Configuration

Sommaire

  • Pré-requis
  • Installation via PECL
  • Configuration à l'exécution
  • Types de ressources


  • « Installation/Configuration
  • Installation via PECL »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

This extension requires » librpm version 4.11.3 or higher.


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 : » https://pecl.php.net/package/rpminfo.


  • « Installation via PECL
  • Types de ressources »
  • 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.

RPMVERSION (string)
System librpm version.
RPMSENSE_ANY (int)
RPMSENSE_LESS (int)
RPMSENSE_GREATER (int)
RPMSENSE_EQUAL (int)
RPMSENSE_POSTTRANS (int)
RPMSENSE_PREREQ (int)
RPMSENSE_PRETRANS (int)
RPMSENSE_INTERP (int)
RPMSENSE_SCRIPT_PRE (int)
RPMSENSE_SCRIPT_POST (int)
RPMSENSE_SCRIPT_PREUN (int)
RPMSENSE_SCRIPT_POSTUN (int)
RPMSENSE_SCRIPT_VERIFY (int)
RPMSENSE_FIND_REQUIRES (int)
RPMSENSE_FIND_PROVIDES (int)
RPMSENSE_TRIGGERIN (int)
RPMSENSE_TRIGGERUN (int)
RPMSENSE_TRIGGERPOSTUN (int)
RPMSENSE_MISSINGOK (int)
RPMSENSE_RPMLIB (int)
RPMSENSE_TRIGGERPREIN (int)
RPMSENSE_KEYRING (int)
RPMSENSE_CONFIG (int)
RPMMIRE_DEFAULT (int)
Search pattern is a regular expression with \., .* and ^...$ added.
RPMMIRE_STRCMP (int)
Search pattern is a string, using strcmp(3).
RPMMIRE_REGEX (int)
Search pattern is a regular expression, using regcomp(3).
RPMMIRE_GLOB (int)
Search pattern is a glob expression, using fnmatch(3).
RPMTAG_ARCH (int)
RPMTAG_ARCHSUFFIX (int)
Requires librpm >= 4.18
RPMTAG_ARCHIVESIZE (int)
RPMTAG_BASENAMES (int)
Name (not path) of files, with database index.
RPMTAG_BUGURL (int)
RPMTAG_BUILDARCHS (int)
RPMTAG_BUILDHOST (int)
RPMTAG_BUILDTIME (int)
RPMTAG_C (int)
RPMTAG_CHANGELOGNAME (int)
RPMTAG_CHANGELOGTEXT (int)
RPMTAG_CHANGELOGTIME (int)
RPMTAG_CLASSDICT (int)
RPMTAG_CONFLICTFLAGS (int)
RPMTAG_CONFLICTNAME (int)
Conflicting dependencies, with database index.
RPMTAG_CONFLICTNEVRS (int)
RPMTAG_CONFLICTS (int)
RPMTAG_CONFLICTVERSION (int)
RPMTAG_COOKIE (int)
RPMTAG_DBINSTANCE (int)
RPMTAG_DEPENDSDICT (int)
RPMTAG_DESCRIPTION (int)
RPMTAG_DIRINDEXES (int)
RPMTAG_DIRNAMES (int)
Directory of files, with database index.
RPMTAG_DISTRIBUTION (int)
RPMTAG_DISTTAG (int)
RPMTAG_DISTURL (int)
RPMTAG_DSAHEADER (int)
RPMTAG_E (int)
RPMTAG_ENCODING (int)
RPMTAG_ENHANCEFLAGS (int)
RPMTAG_ENHANCENAME (int)
Weak dependencies, with database index, requires librpm >= 4.13.
RPMTAG_ENHANCENEVRS (int)
RPMTAG_ENHANCES (int)
RPMTAG_ENHANCEVERSION (int)
RPMTAG_EPOCH (int)
RPMTAG_EPOCHNUM (int)
RPMTAG_EVR (int)
RPMTAG_EXCLUDEARCH (int)
RPMTAG_EXCLUDEOS (int)
RPMTAG_EXCLUSIVEARCH (int)
RPMTAG_EXCLUSIVEOS (int)
RPMTAG_FILECAPS (int)
RPMTAG_FILECLASS (int)
RPMTAG_FILECOLORS (int)
RPMTAG_FILECONTEXTS (int)
RPMTAG_FILEDEPENDSN (int)
RPMTAG_FILEDEPENDSX (int)
RPMTAG_FILEDEVICES (int)
RPMTAG_FILEDIGESTALGO (int)
RPMTAG_FILEDIGESTS (int)
RPMTAG_FILEFLAGS (int)
RPMTAG_FILEGROUPNAME (int)
RPMTAG_FILEINODES (int)
RPMTAG_FILELANGS (int)
RPMTAG_FILELINKTOS (int)
RPMTAG_FILEMD5S (int)
RPMTAG_FILEMODES (int)
RPMTAG_FILEMTIMES (int)
RPMTAG_FILENAMES (int)
RPMTAG_FILENLINKS (int)
RPMTAG_FILEPROVIDE (int)
RPMTAG_FILERDEVS (int)
RPMTAG_FILEREQUIRE (int)
RPMTAG_FILESIGNATURELENGTH (int)
RPMTAG_FILESIGNATURES (int)
RPMTAG_FILESIZES (int)
RPMTAG_FILESTATES (int)
RPMTAG_FILETRIGGERCONDS (int)
RPMTAG_FILETRIGGERFLAGS (int)
RPMTAG_FILETRIGGERINDEX (int)
RPMTAG_FILETRIGGERNAME (int)
File trigger name, with database index, requires librpm >= 4.13.
RPMTAG_FILETRIGGERPRIORITIES (int)
RPMTAG_FILETRIGGERSCRIPTFLAGS (int)
RPMTAG_FILETRIGGERSCRIPTPROG (int)
RPMTAG_FILETRIGGERSCRIPTS (int)
RPMTAG_FILETRIGGERTYPE (int)
RPMTAG_FILETRIGGERVERSION (int)
RPMTAG_FILEUSERNAME (int)
RPMTAG_FILEVERIFYFLAGS (int)
RPMTAG_FSCONTEXTS (int)
RPMTAG_GIF (int)
RPMTAG_GROUP (int)
Group of the package, with database index.
RPMTAG_HDRID (int)
RPMTAG_HEADERCOLOR (int)
RPMTAG_HEADERI18NTABLE (int)
RPMTAG_HEADERIMAGE (int)
RPMTAG_HEADERIMMUTABLE (int)
RPMTAG_HEADERREGIONS (int)
RPMTAG_HEADERSIGNATURES (int)
RPMTAG_ICON (int)
RPMTAG_INSTALLCOLOR (int)
RPMTAG_INSTALLTID (int)
Installation transaction ID, with database index.
RPMTAG_INSTALLTIME (int)
RPMTAG_INSTFILENAMES (int)
Path of files, with database index.
RPMTAG_INSTPREFIXES (int)
RPMTAG_LICENSE (int)
RPMTAG_LONGARCHIVESIZE (int)
RPMTAG_LONGFILESIZES (int)
RPMTAG_LONGSIGSIZE (int)
RPMTAG_LONGSIZE (int)
RPMTAG_MODULARITYLABEL (int)
RPMTAG_N (int)
RPMTAG_NAME (int)
Package name, with database index.
RPMTAG_NEVR (int)
RPMTAG_NEVRA (int)
RPMTAG_NOPATCH (int)
RPMTAG_NOSOURCE (int)
RPMTAG_NVR (int)
RPMTAG_NVRA (int)
RPMTAG_O (int)
RPMTAG_OBSOLETEFLAGS (int)
RPMTAG_OBSOLETENAME (int)
Obsoleted packages, with database index.
RPMTAG_OBSOLETENEVRS (int)
RPMTAG_OBSOLETES (int)
RPMTAG_OBSOLETEVERSION (int)
RPMTAG_OLDENHANCES (int)
RPMTAG_OLDENHANCESFLAGS (int)
RPMTAG_OLDENHANCESNAME (int)
RPMTAG_OLDENHANCESVERSION (int)
RPMTAG_OLDFILENAMES (int)
RPMTAG_OLDSUGGESTS (int)
RPMTAG_OLDSUGGESTSFLAGS (int)
RPMTAG_OLDSUGGESTSNAME (int)
RPMTAG_OLDSUGGESTSVERSION (int)
RPMTAG_OPTFLAGS (int)
RPMTAG_ORDERFLAGS (int)
RPMTAG_ORDERNAME (int)
RPMTAG_ORDERVERSION (int)
RPMTAG_ORIGBASENAMES (int)
RPMTAG_ORIGDIRINDEXES (int)
RPMTAG_ORIGDIRNAMES (int)
RPMTAG_ORIGFILENAMES (int)
RPMTAG_OS (int)
RPMTAG_P (int)
RPMTAG_PACKAGER (int)
RPMTAG_PATCH (int)
RPMTAG_PATCHESFLAGS (int)
RPMTAG_PATCHESNAME (int)
RPMTAG_PATCHESVERSION (int)
RPMTAG_PAYLOADCOMPRESSOR (int)
RPMTAG_PAYLOADDIGEST (int)
RPMTAG_PAYLOADDIGESTALT (int)
With librpm >= 4.16.
RPMTAG_PAYLOADDIGESTALGO (int)
RPMTAG_PAYLOADFLAGS (int)
RPMTAG_PAYLOADFORMAT (int)
RPMTAG_PKGID (int)
RPMTAG_PLATFORM (int)
RPMTAG_POLICIES (int)
RPMTAG_POLICYFLAGS (int)
RPMTAG_POLICYNAMES (int)
RPMTAG_POLICYTYPES (int)
RPMTAG_POLICYTYPESINDEXES (int)
RPMTAG_POSTIN (int)
RPMTAG_POSTINFLAGS (int)
RPMTAG_POSTINPROG (int)
RPMTAG_POSTTRANS (int)
RPMTAG_POSTTRANSFLAGS (int)
RPMTAG_POSTTRANSPROG (int)
RPMTAG_POSTUN (int)
RPMTAG_POSTUNFLAGS (int)
RPMTAG_POSTUNPROG (int)
RPMTAG_POSTUNTRANS (int)
Requires librpm >= 4.19
RPMTAG_POSTUNTRANSFLAGS (int)
Requires librpm >= 4.19
RPMTAG_POSTUNTRANSPROG (int)
Requires librpm >= 4.19
RPMTAG_PREFIXES (int)
RPMTAG_PREIN (int)
RPMTAG_PREINFLAGS (int)
RPMTAG_PREINPROG (int)
RPMTAG_PRETRANS (int)
RPMTAG_PRETRANSFLAGS (int)
RPMTAG_PRETRANSPROG (int)
RPMTAG_PREUN (int)
RPMTAG_PREUNFLAGS (int)
RPMTAG_PREUNPROG (int)
RPMTAG_PREUNTRANS (int)
Requires librpm >= 4.19
RPMTAG_PREUNTRANSFLAGS (int)
Requires librpm >= 4.19
RPMTAG_PREUNTRANSPROG (int)
Requires librpm >= 4.19
RPMTAG_PROVIDEFLAGS (int)
RPMTAG_PROVIDENAME (int)
Provided dependencies, with database index.
RPMTAG_PROVIDENEVRS (int)
RPMTAG_PROVIDES (int)
RPMTAG_PROVIDEVERSION (int)
RPMTAG_PUBKEYS (int)
RPMTAG_R (int)
RPMTAG_RECOMMENDFLAGS (int)
RPMTAG_RECOMMENDNAME (int)
Recommended weak dependencies, with database index, requires librpm >= 4.13.
RPMTAG_RECOMMENDNEVRS (int)
RPMTAG_RECOMMENDS (int)
RPMTAG_RECOMMENDVERSION (int)
RPMTAG_RECONTEXTS (int)
RPMTAG_RELEASE (int)
RPMTAG_REMOVETID (int)
RPMTAG_REQUIREFLAGS (int)
RPMTAG_REQUIRENAME (int)
Required dependencies, with database index.
RPMTAG_REQUIRENEVRS (int)
RPMTAG_REQUIRES (int)
RPMTAG_REQUIREVERSION (int)
RPMTAG_RPMVERSION (int)
RPMTAG_RSAHEADER (int)
RPMTAG_SHA1HEADER (int)
SHA1 signature, with database index.
RPMTAG_SHA256HEADER (int)
RPMTAG_SIGGPG (int)
RPMTAG_SIGMD5 (int)
MD5 signature, with database index.
RPMTAG_SIGPGP (int)
RPMTAG_SIGSIZE (int)
RPMTAG_SIZE (int)
RPMTAG_SOURCE (int)
RPMTAG_SOURCEPACKAGE (int)
RPMTAG_SOURCEPKGID (int)
RPMTAG_SOURCERPM (int)
RPMTAG_SPEC (int)
Requires librpm >= 4.18
RPMTAG_SUGGESTFLAGS (int)
RPMTAG_SUGGESTNAME (int)
Suggested weak dependencies, with database index, requires librpm >= 4.13.
RPMTAG_SUGGESTNEVRS (int)
RPMTAG_SUGGESTS (int)
RPMTAG_SUGGESTVERSION (int)
RPMTAG_SUMMARY (int)
RPMTAG_SUPPLEMENTFLAGS (int)
RPMTAG_SUPPLEMENTNAME (int)
Weak dependencies, with database index, requires librpm >= 4.13.
RPMTAG_SUPPLEMENTNEVRS (int)
RPMTAG_SUPPLEMENTS (int)
RPMTAG_SUPPLEMENTVERSION (int)
RPMTAG_SYSUSERS (int)
Requires librpm >= 4.19
RPMTAG_TRANSFILETRIGGERCONDS (int)
RPMTAG_TRANSFILETRIGGERFLAGS (int)
RPMTAG_TRANSFILETRIGGERINDEX (int)
RPMTAG_TRANSFILETRIGGERNAME (int)
Transaction file trigger name, with database index, requires librpm >= 4.13.
RPMTAG_TRANSFILETRIGGERPRIORITIES (int)
RPMTAG_TRANSFILETRIGGERSCRIPTFLAGS (int)
RPMTAG_TRANSFILETRIGGERSCRIPTPROG (int)
RPMTAG_TRANSFILETRIGGERSCRIPTS (int)
RPMTAG_TRANSFILETRIGGERTYPE (int)
RPMTAG_TRANSFILETRIGGERVERSION (int)
RPMTAG_TRANSLATIONURL (int)
Requires librpm >= 4.18
RPMTAG_TRIGGERCONDS (int)
RPMTAG_TRIGGERFLAGS (int)
RPMTAG_TRIGGERINDEX (int)
RPMTAG_TRIGGERNAME (int)
Trigger name, with database index.
RPMTAG_TRIGGERSCRIPTFLAGS (int)
RPMTAG_TRIGGERSCRIPTPROG (int)
RPMTAG_TRIGGERSCRIPTS (int)
RPMTAG_TRIGGERTYPE (int)
RPMTAG_TRIGGERVERSION (int)
RPMTAG_UPSTREAMRELEASES (int)
Requires librpm >= 4.18
RPMTAG_URL (int)
RPMTAG_V (int)
RPMTAG_VCS (int)
RPMTAG_VENDOR (int)
RPMTAG_VERBOSE (int)
RPMTAG_VERIFYSCRIPT (int)
RPMTAG_VERIFYSCRIPTFLAGS (int)
RPMTAG_VERIFYSCRIPTPROG (int)
RPMTAG_VERITYSIGNATUREALGO (int)
With librpm >= 4.17.
RPMTAG_VERITYSIGNATURES (int)
With librpm >= 4.17.


RpmInfo Fonctions

Sommaire

  • rpmaddtag — Add tag retrieved in query
  • rpmdbinfo — Get information from installed RPM
  • rpmdbsearch — Search RPM packages
  • rpmgetsymlink — Get target of a symlink
  • rpminfo — Get information from a RPM file
  • rpmvercmp — RPM version comparison


Add tag retrieved in query

  • « RpmInfo Fonctions
  • rpmdbinfo »
  • PHP Manual
  • RpmInfo Fonctions
  • Add tag retrieved in query

rpmaddtag

(PECL rpminfo >= 0.5.0)

rpmaddtag — Add tag retrieved in query

Description

rpmaddtag(int $tag): bool

Add an additional retrieved tag in subsequent queries.

Liste de paramètres

tag

One of RPMTAG_* constant, see the rpminfo constants page.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Voir aussi

  • rpminfo() - Get information from a RPM file
  • rpmdbinfo() - Get information from installed RPM
  • rpmdbsearch() - Search RPM packages


Get information from installed RPM

  • « rpmaddtag
  • rpmdbsearch »
  • PHP Manual
  • RpmInfo Fonctions
  • Get information from installed RPM

rpmdbinfo

(PECL rpminfo >= 0.2.0)

rpmdbinfo — Get information from installed RPM

Description

rpmdbinfo(string $nevr, bool $full = false): ?array

Retrieve information about an installed package, from the system RPM database.

Liste de paramètres

nevr

Name with optional epoch, version and release.

full

If true all information headers for the file are retrieved, else only a minimal set.

Valeurs de retour

An array of array of information or NULL on error.

Exemples

Exemple #1 A rpmdbinfo() example

<?php
rpmaddtag(RPMTAG_INSTALLTIME);
$info = rpmdbinfo("php-pecl-rpminfo");
print_r($info);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Array
        (
            [Name] => php-pecl-rpminfo
            [Version] => 0.4.2
            [Release] => 1.fc31
            [Summary] => RPM information
            [Installtime] => 1586244687
            [Arch] => x86_64
        )
)

Voir aussi

  • rpmaddtag() - Add tag retrieved in query


Search RPM packages

  • « rpmdbinfo
  • rpmgetsymlink »
  • PHP Manual
  • RpmInfo Fonctions
  • Search RPM packages

rpmdbsearch

(PECL rpminfo >= 0.3.0)

rpmdbsearch — Search RPM packages

Description

rpmdbsearch(
string $pattern,
int $rpmtag = RPMTAG_NAME,
int $rpmmire = -1,
bool $full = false
): ?array

Search packages in the system RPM database.

Liste de paramètres

pattern

Value to search for.

rpmtag

Search criterion, one of RPMTAG_* constant, see the rpminfo constants page.

rpmmire

Pattern type, one of RPMMIRE_* constant, see the rpminfo constants page. When < 0 the criterion must equals the value, and database index is used if possible.

full

If true all information headers for the file are retrieved, else only a minimal set.

Valeurs de retour

An array of array of information or NULL on error.

Exemples

Exemple #1 Searching for the package owning a file

<?php
$info = rpmdbsearch("/usr/bin/php", RPMTAG_INSTFILENAMES);
print_r($info);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Array
        (
            [Name] => php-cli
            [Version] => 7.4.4
            [Release] => 1.fc32
            [Summary] => Command-line interface for PHP
            [Arch] => x86_64
        )

)

Voir aussi

  • rpmaddtag() - Add tag retrieved in query


Get target of a symlink

  • « rpmdbsearch
  • rpminfo »
  • PHP Manual
  • RpmInfo Fonctions
  • Get target of a symlink

rpmgetsymlink

(PECL rpminfo >= 1.1.0)

rpmgetsymlink — Get target of a symlink

Description

rpmgetsymlink(string $path, string $name): ?string

Get target of a symlink.

Liste de paramètres

path

Path of the RPM file.

name

Name of the symlink file.

Valeurs de retour

A string with target of the symlink, NULL on error, or an empty string if not a symlink.


Get information from a RPM file

  • « rpmgetsymlink
  • rpmvercmp »
  • PHP Manual
  • RpmInfo Fonctions
  • Get information from a RPM file

rpminfo

(PECL rpminfo >= 0.1.0)

rpminfo — Get information from a RPM file

Description

rpminfo(string $path, bool $full = false, string &$error = ?): ?array

Retrieve information about a local file, a RPM package.

Liste de paramètres

path

Path of the RPM file.

full

If true all information headers for the file are retrieved, else only a minimal set.

error

If provided, will receive the possible error message, and will avoid a runtime warning.

Valeurs de retour

An array of information or NULL on error.

Exemples

Exemple #1 A rpminfo() example

<?php
rpmaddtag(RPMTAG_BUILDTIME);
$info = rpminfo("./php-pecl-rpminfo-0.4.2-1.el8.remi.7.4.x86_64.rpm");
print_r($info);
?>

L'exemple ci-dessus va afficher :

Array
(
    [Name] => php-pecl-rpminfo
    [Version] => 0.4.2
    [Release] => 1.el8
    [Summary] => RPM information
    [Buildtime] => 1586244821
    [Arch] => x86_64
)

Voir aussi

  • rpmaddtag() - Add tag retrieved in query


RPM version comparison

  • « rpminfo
  • XLSWriter »
  • PHP Manual
  • RpmInfo Fonctions
  • RPM version comparison

rpmvercmp

(PECL rpminfo >= 0.1.0)

rpmvercmp — RPM version comparison

Description

rpmvercmp(string $evr1, string $evr2, ?string $operator = null): int|bool

Compare 2 RPM versions.

Liste de paramètres

evr1

First epoch:version-release string

evr2

Second epoch:version-release string

operator

An optional operator. The possible operators are: <, lt, <=, le, >, gt, >=, ge, ==, =, eq, !=, <>, ne respectively.

This parameter is case-sensitive, values should be lowercase.

Valeurs de retour

Returns < 0 if evr1 is less than evr2, > 0 if evr1 is greater than evr2, and 0 if they are equal.

When using the optional operator argument, the function will return true if the relationship is the one specified by the operator, false otherwise.

Historique

Version | Description
0.7.0 | Optional operator was added.


XLSWriter

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Types de ressources
  • Constantes pré-définies
  • Vtiful\Kernel\Excel — La classe Vtiful\Kernel\Excel
    • Vtiful\Kernel\Excel::addSheet — Ajoute une feuille de calcul
    • Vtiful\Kernel\Excel::autoFilter — Ajoute un filtre automatique
    • Vtiful\Kernel\Excel::constMemory — Ecrit un gros fichier avec une utilisation constante de la mémoire
    • Vtiful\Kernel\Excel::__construct — Constructeur de la classe Vtiful\Kernel\Excel
    • Vtiful\Kernel\Excel::data — Ecrit des données
    • Vtiful\Kernel\Excel::fileName — Crée un nouveau fichier ainsi qu'une feuille de calcul
    • Vtiful\Kernel\Excel::getHandle — Récupère le gestionnaire de ressource
    • Vtiful\Kernel\Excel::header — Ecrit l'en-tête d'une feuille de calcul
    • Vtiful\Kernel\Excel::insertFormula — Insère une formule
    • Vtiful\Kernel\Excel::insertImage — Insère une image dans une cellule
    • Vtiful\Kernel\Excel::insertText — Ecrit du texte dans une cellule
    • Vtiful\Kernel\Excel::mergeCells — Fusionne des cellules
    • Vtiful\Kernel\Excel::output — Enregistre le fichier xlsx sur le disque
    • Vtiful\Kernel\Excel::setColumn — Définit le format d'une colonne
    • Vtiful\Kernel\Excel::setRow — Définit le format d'une ligne
  • Vtiful\Kernel\Format — La classe Vtiful\Kernel\Format
    • Vtiful\Kernel\Format::align — Définit l'alignement de la cellule
    • Vtiful\Kernel\Format::bold — Mise en gras
    • Vtiful\Kernel\Format::italic — Mise en italique
    • Vtiful\Kernel\Format::underline — Mise en souligné


  • « XLSWriter
  • Installation/Configuration »
  • PHP Manual
  • XLSWriter
  • Introduction

Introduction

Une extension efficace et rapide pour l'exportation des fichiers xlsx.


  • « Introduction
  • Pré-requis »
  • PHP Manual
  • XLSWriter
  • Installation/Configuration

Installation/Configuration

Sommaire

  • Pré-requis
  • Installation
  • Types de ressources


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

XLSWriter nécessite PHP 7.0 ou ulté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 : » https://pecl.php.net/package/xlswriter


Types de ressources

Il y a une ressource utilisée par la version procédurale de l'extension XLSWriter : renvoyée par fileName() ou \Vtiful\Kernel\Format.


  • « Types de ressources
  • Vtiful\Kernel\Excel »
  • PHP Manual
  • XLSWriter
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


La classe Vtiful\Kernel\Excel

(PECL xlswriter >= 1.2.1)

Introduction

Créé des fichiers xlsx et définie des cellules afin de récupérer des fichiers xlsx en sortie

Synopsis de la classe

class Vtiful\Kernel\Excel {
/* Méthodes */
public __construct(array $config)
public addSheet(string $sheetName)
public autoFilter(string $scope)
public constMemory(string $fileName, string $sheetName = ?)
public data(array $data)
public fileName(string $fileName, string $sheetName = ?)
public getHandle()
public header(array $headerData)
public insertFormula(int $row, int $column, string $formula)
public insertImage(int $row, int $column, string $localImagePath)
public insertText(
int $row,
int $column,
int|float|string $data,
string $format = ?
)
public mergeCells(string $scope, string $data)
public output()
public setColumn(string $range, float $width, resource $format = ?)
public setRow(string $range, float $height, resource $format = ?)
}

Sommaire

  • Vtiful\Kernel\Excel::addSheet — Ajoute une feuille de calcul
  • Vtiful\Kernel\Excel::autoFilter — Ajoute un filtre automatique
  • Vtiful\Kernel\Excel::constMemory — Ecrit un gros fichier avec une utilisation constante de la mémoire
  • Vtiful\Kernel\Excel::__construct — Constructeur de la classe Vtiful\Kernel\Excel
  • Vtiful\Kernel\Excel::data — Ecrit des données
  • Vtiful\Kernel\Excel::fileName — Crée un nouveau fichier ainsi qu'une feuille de calcul
  • Vtiful\Kernel\Excel::getHandle — Récupère le gestionnaire de ressource
  • Vtiful\Kernel\Excel::header — Ecrit l'en-tête d'une feuille de calcul
  • Vtiful\Kernel\Excel::insertFormula — Insère une formule
  • Vtiful\Kernel\Excel::insertImage — Insère une image dans une cellule
  • Vtiful\Kernel\Excel::insertText — Ecrit du texte dans une cellule
  • Vtiful\Kernel\Excel::mergeCells — Fusionne des cellules
  • Vtiful\Kernel\Excel::output — Enregistre le fichier xlsx sur le disque
  • Vtiful\Kernel\Excel::setColumn — Définit le format d'une colonne
  • Vtiful\Kernel\Excel::setRow — Définit le format d'une ligne


Ajoute une feuille de calcul

  • « Vtiful\Kernel\Excel
  • Vtiful\Kernel\Excel::autoFilter »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Ajoute une feuille de calcul

Vtiful\Kernel\Excel::addSheet

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::addSheet — Ajoute une feuille de calcul

Description

public Vtiful\Kernel\Excel::addSheet(string $sheetName)

Crée une nouvelle feuille de calcul dans le fichier xlsx.

Liste de paramètres

sheetName

Nom de la feuille de calcul

Valeurs de retour

Instance de la classe Vtiful\Kernel\Excel

Exemples

Exemple #1 Exemple

<?php
$config = [
'path' => './tests'
];

$fileObject = new \Vtiful\Kernel\Excel($config);

$file = $fileObject->fileName('tutorial.xlsx', 'sheet_one')
->header(['name', 'age'])
->data([
['viest', 23],
['wjx', 23]
]);

$file->addSheet('sheet_two')
->header(['name', 'age'])
->data([
['james', 33],
['king', 33]
]);

$file->output();
?>


Ajoute un filtre automatique

  • « Vtiful\Kernel\Excel::addSheet
  • Vtiful\Kernel\Excel::constMemory »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Ajoute un filtre automatique

Vtiful\Kernel\Excel::autoFilter

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::autoFilter — Ajoute un filtre automatique

Description

public Vtiful\Kernel\Excel::autoFilter(string $scope)

Ajoute un filtre automatique à une feuille de travail.

Liste de paramètres

scope

Chaîne de caractères représentant les coordonnées de la cellule de début et la cellule de fin.

Valeurs de retour

Instance de la classe Vtiful\Kernel\Excel

Exemples

Exemple #1 Exemple

<?php
$config = [
'path' => './tests'
];

$fileObject = new \Vtiful\Kernel\Excel($config);

$file = $excel->fileName('test.xlsx')
->header(['name', 'age'])
->data($data)
->autoFilter('A1:B11') // Filtre automatique
->output();
?>


Ecrit un gros fichier avec une utilisation constante de la mémoire

  • « Vtiful\Kernel\Excel::autoFilter
  • Vtiful\Kernel\Excel::__construct »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Ecrit un gros fichier avec une utilisation constante de la mémoire

Vtiful\Kernel\Excel::constMemory

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::constMemory — Ecrit un gros fichier avec une utilisation constante de la mémoire

Description

public Vtiful\Kernel\Excel::constMemory(string $fileName, string $sheetName = ?)

Ecrit un gros fichier avec une utilisation constante de la mémoire.

Liste de paramètres

fileName

Nom du fichier XLSX

sheetName

Nom de la feuille de calcul

Valeurs de retour

Instance de la classe Vtiful\Kernel\Excel

Exemples

Exemple #1 Exemple

<?php
$config = [
'path' => '/home/viest'
];

$fileObject = new \Vtiful\Kernel\Excel($config);

$file = $instance->constMemory('tutorial.xlsx', 'sheet');
?>


Constructeur de la classe Vtiful\Kernel\Excel

  • « Vtiful\Kernel\Excel::constMemory
  • Vtiful\Kernel\Excel::data »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Constructeur de la classe Vtiful\Kernel\Excel

Vtiful\Kernel\Excel::__construct

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::__construct — Constructeur de la classe Vtiful\Kernel\Excel

Description

public Vtiful\Kernel\Excel::__construct(array $config)

Constructeur de la classe Vtiful\Kernel\Excel ; crée un nouvel objet.

Liste de paramètres

config

Configuration de l'exportation du fichier XLSX

Exemples

Exemple #1 Exemple

<?php
$config = [
'path' => '/home/viest'
];

$excelObject = new \Vtiful\Kernel\Excel($config);
?>


Ecrit des données

  • « Vtiful\Kernel\Excel::__construct
  • Vtiful\Kernel\Excel::fileName »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Ecrit des données

Vtiful\Kernel\Excel::data

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::data — Ecrit des données

Description

public Vtiful\Kernel\Excel::data(array $data)

Ecrit des données dans une feuille de calcul.

Liste de paramètres

data

Les données de la feuille de calcul

Valeurs de retour

Instance de la classe Vtiful\Kernel\Excel

Exemples

Exemple #1 Exemple

<?php
$config = [
'path' => './tests'
];

$fileObject = new \Vtiful\Kernel\Excel($config);

$file = $fileObject->fileName('tutorial.xlsx', 'sheet_one')
->header(['name', 'age'])
->data([
['viest', 23],
['wjx', 23],
]);
?>


Crée un nouveau fichier ainsi qu'une feuille de calcul

  • « Vtiful\Kernel\Excel::data
  • Vtiful\Kernel\Excel::getHandle »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Crée un nouveau fichier ainsi qu'une feuille de calcul

Vtiful\Kernel\Excel::fileName

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::fileName — Crée un nouveau fichier ainsi qu'une feuille de calcul

Description

public Vtiful\Kernel\Excel::fileName(string $fileName, string $sheetName = ?)

Crée un nouveau fichier xlsx et crée une feuille de calcul.

Liste de paramètres

fileName

Nom du fichier XLSX

sheetName

Nom de la feuille de calcul

Valeurs de retour

Instance de la classe Vtiful\Kernel\Excel

Exemples

Exemple #1 Exemple

<?php
$config = [
'path' => '/home/viest'
];

$fileObject = new \Vtiful\Kernel\Excel($config);

$file = $instance->fileName('tutorial.xlsx', 'sheet');
?>


Récupère le gestionnaire de ressource

  • « Vtiful\Kernel\Excel::fileName
  • Vtiful\Kernel\Excel::header »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Récupère le gestionnaire de ressource

Vtiful\Kernel\Excel::getHandle

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::getHandle — Récupère le gestionnaire de ressource

Description

public Vtiful\Kernel\Excel::getHandle()

Récupère le gestionnaire de ressource xlsx.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La ressource

Exemples

Exemple #1 Exemple

<?php
$config = [
'path' => './tests'
];

$fileObject = new \Vtiful\Kernel\Excel($config);

$file = $fileObject->fileName('tutorial.xlsx', 'sheet_one')
->header(['name', 'age']);

$handle = $file->getHandle();
?>


Ecrit l'en-tête d'une feuille de calcul

  • « Vtiful\Kernel\Excel::getHandle
  • Vtiful\Kernel\Excel::insertFormula »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Ecrit l'en-tête d'une feuille de calcul

Vtiful\Kernel\Excel::header

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::header — Ecrit l'en-tête d'une feuille de calcul

Description

public Vtiful\Kernel\Excel::header(array $headerData)

Ecrit l'en-tête d'une feuille de calcul.

Liste de paramètres

headerData

Les données de l'en-tête de la feuille de calcul

Valeurs de retour

Instance de la classe Vtiful\Kernel\Excel

Exemples

Exemple #1 Exemple

<?php
$config = [
'path' => './tests'
];

$fileObject = new \Vtiful\Kernel\Excel($config);

$file = $fileObject->fileName('tutorial.xlsx', 'sheet_one')
->header(['name', 'age']);
?>


Insère une formule

  • « Vtiful\Kernel\Excel::header
  • Vtiful\Kernel\Excel::insertImage »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Insère une formule

Vtiful\Kernel\Excel::insertFormula

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::insertFormula — Insère une formule

Description

public Vtiful\Kernel\Excel::insertFormula(int $row, int $column, string $formula)

Insère une formule.

Liste de paramètres

row

Cellule de la ligne

column

Cellule de la colonne

formula

Chaîne de caractères représentant la formule

Valeurs de retour

Instance de la classe Vtiful\Kernel\Excel

Exemples

Exemple #1 Exemple

<?php
$config = [
'path' => './tests'
];

$excel = new \Vtiful\Kernel\Excel($config);

$file = $excel->fileName("free.xlsx")
->header(['name', 'money']);

for($index = 1; $index < 10; $index++) {
$file->insertText($index, 0, 'viest');
$file->insertText($index, 1, 10);
}

$file->insertText(12, 0, "Total");
$file->insertFormula(12, 1, '=SUM(B2:B11)'); // Insère la formule

$file->output();


Insère une image dans une cellule

  • « Vtiful\Kernel\Excel::insertFormula
  • Vtiful\Kernel\Excel::insertText »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Insère une image dans une cellule

Vtiful\Kernel\Excel::insertImage

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::insertImage — Insère une image dans une cellule

Description

public Vtiful\Kernel\Excel::insertImage(int $row, int $column, string $localImagePath)

Insère une image locale dans une cellule.

Liste de paramètres

row

Ligne de la cellule

column

Colonne de la cellule

localImagePath

Chemin local de l'image

Valeurs de retour

Une instance de la classe Vtiful\Kernel\Excel

Exemples

Exemple #1 example

<?php
$config = [
'path' => './tests'
];

$excel = new \Vtiful\Kernel\Excel($config);

$file = $excel->fileName("free.xlsx");

$file->insertImage(5, 0, '/vagrant/ASW-G-66.jpg');

$file->output();


Ecrit du texte dans une cellule

  • « Vtiful\Kernel\Excel::insertImage
  • Vtiful\Kernel\Excel::mergeCells »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Ecrit du texte dans une cellule

Vtiful\Kernel\Excel::insertText

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::insertText — Ecrit du texte dans une cellule

Description

public Vtiful\Kernel\Excel::insertText(
int $row,
int $column,
int|float|string $data,
string $format = ?
)

Ecrit du texte dans une cellule.

Liste de paramètres

row

Ligne de la cellule

column

Colonne de la cellule

data

Le texte à écrire

format

Une chaîne de caractère représentant le format

Valeurs de retour

Une instance de la classe Vtiful\Kernel\Excel

Exemples

Exemple #1 Exemple

<?php
$config = [
'path' => './tests'
];

$excel = new \Vtiful\Kernel\Excel($config);

$file = $excel->fileName("free.xlsx")
->header(['name', 'money']);

for ($index = 0; $index < 10; $index++) {
$file->insertText($index+1, 0, 'viest');
$file->insertText($index+1, 1, 10000, '#,##0');
}

$textFile->output();


Fusionne des cellules

  • « Vtiful\Kernel\Excel::insertText
  • Vtiful\Kernel\Excel::output »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Fusionne des cellules

Vtiful\Kernel\Excel::mergeCells

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::mergeCells — Fusionne des cellules

Description

public Vtiful\Kernel\Excel::mergeCells(string $scope, string $data)

Fusionne des cellules.

Liste de paramètres

scope

Chaîne de caractères représentant les coordonnées de la cellule de début et de la cellule de fin

data

Les données

Valeurs de retour

Une instance de la classe Vtiful\Kernel\Excel

Exemples

Exemple #1 Exemple

<?php
$config = [
'path' => './tests'
];

$excel = new \Vtiful\Kernel\Excel($config);

$excel->fileName("test.xlsx")
->mergeCells('A1:C1', 'Cellules fusionnées')
->output();


Enregistre le fichier xlsx sur le disque

  • « Vtiful\Kernel\Excel::mergeCells
  • Vtiful\Kernel\Excel::setColumn »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Enregistre le fichier xlsx sur le disque

Vtiful\Kernel\Excel::output

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::output — Enregistre le fichier xlsx sur le disque

Description

public Vtiful\Kernel\Excel::output()

Enregistre le fichier xlsx sur le disque.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Chemin vers le fichier XLSX

Exemples

Exemple #1 Exemple

<?php
$config = [
'path' => './tests'
];

$fileObject = new \Vtiful\Kernel\Excel($config);

$file = $fileObject->fileName('tutorial.xlsx', 'sheet_one')
->header(['name', 'age'])
->data([
['viest', 23],
['wjx', 23],
]);

$path = $file->output();
?>


Définit le format d'une colonne

  • « Vtiful\Kernel\Excel::output
  • Vtiful\Kernel\Excel::setRow »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Définit le format d'une colonne

Vtiful\Kernel\Excel::setColumn

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::setColumn — Définit le format d'une colonne

Description

public Vtiful\Kernel\Excel::setColumn(string $range, float $width, resource $format = ?)

Définit le format d'une colonne.

Liste de paramètres

range

Chaîne de caractères représentant les coordonnées de la cellule de début et de la cellule de fin

width

Largeur de la colonne

format

Une ressource de format

Valeurs de retour

Une instance de la classe Vtiful\Kernel\Excel.

Exemples

Exemple #1 Exemple de setColumn

<?php
$config = [
'path' => './tests'
];

$excel = new \Vtiful\Kernel\Excel($config);
$excel->fileName('tutorial01.xlsx');

$format = new \Vtiful\Kernel\Format($excel->getHandle());
$boldStyle = $format->bold()->toResource();

$excel->header(['name', 'age'])
->data([['viest', 21]])
->setColumn('A:A', 200, $boldStyle)
->output();


Définit le format d'une ligne

  • « Vtiful\Kernel\Excel::setColumn
  • Vtiful\Kernel\Format »
  • PHP Manual
  • Vtiful\Kernel\Excel
  • Définit le format d'une ligne

Vtiful\Kernel\Excel::setRow

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Excel::setRow — Définit le format d'une ligne

Description

public Vtiful\Kernel\Excel::setRow(string $range, float $height, resource $format = ?)

Définit le format d'une ligne.

Liste de paramètres

range

Chaîne de caractères représentant les coordonnées de la cellule de début et de la cellule de fin

height

Hauteur de la ligne

format

Ressource de format

Valeurs de retour

Une instance de la classe Vtiful\Kernel\Excel.

Exemples

Exemple #1 Exemple de setRow

<?php
$config = [
'path' => './tests'
];

$excel = new \Vtiful\Kernel\Excel($config);
$excel->fileName('tutorial01.xlsx');

$format = new \Vtiful\Kernel\Format($excel->getHandle());
$boldStyle = $format->bold()->toResource();

$excel->header(['name', 'age'])
->data([['viest', 21]])
->setRow('A1', 20, $boldStyle,)
->output();


La classe Vtiful\Kernel\Format

(PECL xlswriter >= 1.2.1)

Introduction

Créé un objet de format de cellule

Synopsis de la classe

class Vtiful\Kernel\Format {
/* Constantes */
const int FORMAT_ALIGN_LEFT = 1;
const int FORMAT_ALIGN_CENTER = 2;
const int FORMAT_ALIGN_RIGHT = 3;
const int FORMAT_ALIGN_FILL = 4;
const int FORMAT_ALIGN_JUSTIFY = 5;
const int FORMAT_ALIGN_CENTER_ACROSS = 6;
const int FORMAT_ALIGN_DISTRIBUTED = 7;
const int FORMAT_ALIGN_VERTICAL_TOP = 8;
const int FORMAT_ALIGN_VERTICAL_BOTTOM = 9;
const int FORMAT_ALIGN_VERTICAL_CENTER = 10;
const int FORMAT_ALIGN_VERTICAL_JUSTIFY = 11;
const int FORMAT_ALIGN_VERTICAL_DISTRIBUTED = 12;
const int UNDERLINE_SINGLE = 1;
const int UNDERLINE_DOUBLE = 2;
const int UNDERLINE_SINGLE_ACCOUNTING = 3;
const int UNDERLINE_DOUBLE_ACCOUNTING = 4;
/* Méthodes */
public align(resource $handle, int $style)
public bold(resource $handle)
public italic(resource $handle)
public underline(resource $handle, int $style)
}

Constantes pré-définies

Vtiful\Kernel\Format::FORMAT_ALIGN_LEFT

Vtiful\Kernel\Format::FORMAT_ALIGN_CENTER

Vtiful\Kernel\Format::FORMAT_ALIGN_RIGHT

Vtiful\Kernel\Format::FORMAT_ALIGN_FILL

Vtiful\Kernel\Format::FORMAT_ALIGN_JUSTIFY

Vtiful\Kernel\Format::FORMAT_ALIGN_CENTER_ACROSS

Vtiful\Kernel\Format::FORMAT_ALIGN_DISTRIBUTED

Vtiful\Kernel\Format::FORMAT_ALIGN_VERTICAL_TOP

Vtiful\Kernel\Format::FORMAT_ALIGN_VERTICAL_BOTTOM

Vtiful\Kernel\Format::FORMAT_ALIGN_VERTICAL_CENTER

Vtiful\Kernel\Format::FORMAT_ALIGN_VERTICAL_JUSTIFY

Vtiful\Kernel\Format::FORMAT_ALIGN_VERTICAL_DISTRIBUTED

Vtiful\Kernel\Format::UNDERLINE_SINGLE

Vtiful\Kernel\Format::UNDERLINE_DOUBLE

Vtiful\Kernel\Format::UNDERLINE_SINGLE_ACCOUNTING

Vtiful\Kernel\Format::UNDERLINE_DOUBLE_ACCOUNTING

Sommaire

  • Vtiful\Kernel\Format::align — Définit l'alignement de la cellule
  • Vtiful\Kernel\Format::bold — Mise en gras
  • Vtiful\Kernel\Format::italic — Mise en italique
  • Vtiful\Kernel\Format::underline — Mise en souligné


Définit l'alignement de la cellule

  • « Vtiful\Kernel\Format
  • Vtiful\Kernel\Format::bold »
  • PHP Manual
  • Vtiful\Kernel\Format
  • Définit l'alignement de la cellule

Vtiful\Kernel\Format::align

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Format::align — Définit l'alignement de la cellule

Description

public Vtiful\Kernel\Format::align(resource $handle, int $style)

Définit l'alignement de la cellule.

Liste de paramètres

handle

Gestionnaire de fichier xlsx

style

Une constante Vtiful\Kernel\Format

Valeurs de retour

Resource

Exemples

Exemple #1 Exemple de style d'alignement

<?php
$config = [
'path' => './tests'
];

$excel = new \Vtiful\Kernel\Excel($config);
$excel->fileName('tutorial01.xlsx');

$format = new \Vtiful\Kernel\Format($excel->getHandle());
$alignStyle = $format->align(\Vtiful\Kernel\Format::FORMAT_ALIGN_LEFT)->toResource();

$excel->header(['name', 'age'])
->data([['viest', 21]])
->setColumn('A:A', 200, $alignStyle)
->output();
?>


Mise en gras

  • « Vtiful\Kernel\Format::align
  • Vtiful\Kernel\Format::italic »
  • PHP Manual
  • Vtiful\Kernel\Format
  • Mise en gras

Vtiful\Kernel\Format::bold

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Format::bold — Mise en gras

Description

public Vtiful\Kernel\Format::bold(resource $handle)

Mise en gras.

Liste de paramètres

handle

Gestionnaire de fichier xlsx

Valeurs de retour

Une ressource de formattage.

Exemples

Exemple #1 Exemple de style en gras

<?php
$config = [
'path' => './tests'
];

$excel = new \Vtiful\Kernel\Excel($config);
$excel->fileName('tutorial01.xlsx');

$format = new \Vtiful\Kernel\Format($excel->getHandle());
$boldStyle = $format->bold()->toResource();

$excel->header(['name', 'age'])
->data([['viest', 21]])
->setColumn('A:A', 200, $boldStyle)
->output();
?>


Mise en italique

  • « Vtiful\Kernel\Format::bold
  • Vtiful\Kernel\Format::underline »
  • PHP Manual
  • Vtiful\Kernel\Format
  • Mise en italique

Vtiful\Kernel\Format::italic

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Format::italic — Mise en italique

Description

public Vtiful\Kernel\Format::italic(resource $handle)

Mise en italique.

Liste de paramètres

handle

Gestionnaire de fichier xlsx.

Valeurs de retour

Une ressource de mise en italique.

Exemples

Exemple #1 Exemple de style en italique

<?php
$config = [
'path' => './tests'
];

$excel = new \Vtiful\Kernel\Excel($config);
$excel->fileName('tutorial01.xlsx');

$format = new \Vtiful\Kernel\Format($excel->getHandle());
$italicStyle = $format->italic()->toResource();

$excel->header(['name', 'age'])
->data([['viest', 21]])
->setColumn('A:A', 200, $italicStyle)
->output();
?>


Mise en souligné

  • « Vtiful\Kernel\Format::italic
  • Extensions sur le contrôle des processus »
  • PHP Manual
  • Vtiful\Kernel\Format
  • Mise en souligné

Vtiful\Kernel\Format::underline

(PECL xlswriter >= 1.2.1)

Vtiful\Kernel\Format::underline — Mise en souligné

Description

public Vtiful\Kernel\Format::underline(resource $handle, int $style)

Mise en souligné.

Liste de paramètres

handle

Gestionnaire de fichier xlsx

style

Une constante Vtiful\Kernel\Format

Valeurs de retour

Une ressource de mise en souligné.

Exemples

Exemple #1 Exemple de style souligné

<?php
$config = [
'path' => './tests'
];

$excel = new \Vtiful\Kernel\Excel($config);
$excel->fileName('tutorial01.xlsx');

$format = new \Vtiful\Kernel\Format($excel->getHandle());
$underlineStyle = $format->underline(\Vtiful\Kernel\Format::UNDERLINE_SINGLE)->toResource();

$execl->header(['name', 'age'])
->data([['viest', 21]])
->setColumn('A:A', 200, $underlineStyle)
->output();
?>


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
  • 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
  • parallel
    • Introduction
    • Installation
    • Philosophy
    • Functional API
    • parallel\Runtime — The parallel\Runtime class
    • parallel\Future — The parallel\Future class
    • parallel\Channel — The parallel\Channel class
    • parallel\Events — The parallel\Events class
    • parallel\Events\Input — The parallel\Events\Input class
    • parallel\Events\Event — The parallel\Events\Event class
    • parallel\Events\Event\Type — La classe parallel\Events\Event\Type
    • parallel\Sync — The parallel\Sync class
  • pthreads
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Threaded — La classe Threaded
    • Thread — La classe Thread
    • Worker — La classe Worker
    • Collectable — L'interface Collectable
    • Pool — La classe Pool
    • Volatile — The Volatile class
  • Semaphore — Sémaphore
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Sémaphore
    • SysvMessageQueue — La classe SysvMessageQueue
    • SysvSemaphore — La classe SysvSemaphore
    • SysvSharedMemory — La classe SysvSharedMemory
  • Mémoire partagée
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions sur la mémoire partagée
    • Shmop — The Shmop class
  • Sync
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • SyncMutex — La classe SyncMutex
    • SyncSemaphore — La classe SyncSemaphore
    • SyncEvent — La classe SyncEvent
    • SyncReaderWriter — La classe SyncReaderWriter
    • SyncSharedMemory — The SyncSharedMemory class


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, mis à 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 : » https://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 (int)
Demande un priorité minimal
EIO_PRI_DEFAULT (int)
Demande un priorité par défaut
EIO_PRI_MAX (int)
Demande un priorité maximal

Argument whence de la fonction eio_seek() :

EIO_SEEK_SET (int)
La position est définie pour spécifier le nombre d'octets (offset).
EIO_SEEK_CUR (int)
La position est définie à sa position courante, à laquelle on ajoute offset octets.
EIO_SEEK_END (int)
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 (int)
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 (int)
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 (int)
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 (int)
EIO_DT_UNKNOWN (int)
Noeud de type inconnu (assez commun). Un appel à la fonction stat() est nécessaire.
EIO_DT_FIFO (int)
Noeud de type FIFO
EIO_DT_CHR (int)
Type de nœud
EIO_DT_MPC (int)
Noeud de type périphérique à caractères multiplexés (v7+coherent)
EIO_DT_DIR (int)
Noeud de type dossier
EIO_DT_NAM (int)
Noeud de type fichier nommé Xenix
EIO_DT_BLK (int)
Type de nœud
EIO_DT_MPB (int)
Périphérique de bloc multiplexé (v7+coherent)
EIO_DT_REG (int)
Type de nœud
EIO_DT_NWK (int)
EIO_DT_CMP (int)
Noeud de type réseau HP-UX
EIO_DT_LNK (int)
Noeud de type lien
EIO_DT_SOCK (int)
Noeud de type socket
EIO_DT_DOOR (int)
Noeud de type Solaris door
EIO_DT_WHT (int)
Noued de type
EIO_DT_MAX (int)
Valeur maximale du type de nœud

Modes d'accès utilisés par l'argument flags de la fonction eio_open() :

EIO_O_RDONLY (int)
EIO_O_WRONLY (int)
EIO_O_RDWR (int)
EIO_O_NONBLOCK (int)
EIO_O_APPEND (int)
EIO_O_CREAT (int)
EIO_O_TRUNC (int)
EIO_O_EXCL (int)
EIO_O_FSYNC (int)

Drapeaux pour l'argument mode de la fonction eio_open() :

EIO_S_IRUSR (int)
EIO_S_IWUSR (int)
EIO_S_IXUSR (int)
EIO_S_IRGRP (int)
EIO_S_IWGRP (int)
EIO_S_IXGRP (int)
EIO_S_IROTH (int)
EIO_S_IWOTH (int)
EIO_S_IXOTH (int)
EIO_S_IFREG (int)
EIO_S_IFCHR (int)
EIO_S_IFBLK (int)
EIO_S_IFIFO (int)
EIO_S_IFSOCK (int)

Drapeaux pour la fonction eio_sync_file_range() :

EIO_SYNC_FILE_RANGE_WAIT_BEFORE (int)
EIO_SYNC_FILE_RANGE_WRITE (int)
EIO_SYNC_FILE_RANGE_WAIT_AFTER (int)

Drapeaux pour la fonction eio_fallocate() :

EIO_FALLOC_FL_KEEP_SIZE (int)

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();
?>

Résultat de l'exemple ci-dessus est 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();
?>

Résultat de l'exemple ci-dessus est 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();
?>

Résultat de l'exemple ci-dessus est 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();
?>

Résultat de l'exemple ci-dessus est 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é */
?>

Résultat de l'exemple ci-dessus est similaire à :

int(3)
int(0)
string(8) "nop data"
int(0)
string(10) "mkdir data"

Exemple #6 Utilisation de eio avec l'extension event

<?php
$base = new EventBase();

// Retourne le flux d'interrogation eio.
// Notez que cette variable doit être active tant que la boucle d'événements est en cours d'exécution.
$eio_stream = eio_get_event_stream();

// Lie le flux d'interrogation eio à la boucle d'événement.
$poll_event = new Event($base, $eio_stream, Event::READ, function () {
if (eio_nreqs()) {
eio_poll();
}
});
$poll_event->add();

// Ajoute le job eio
eio_nop(EIO_PRI_DEFAULT, function () {
echo "eio_nop\n";
});

// Ajout les événements
$timer = Event::timer($base, function () {
echo "2 seconds elapsed\n";
});
$timer->add(2);

// Envoi les événements.
$base->dispatch();
?>

Résultat de l'exemple ci-dessus est similaire à :

eio_nop
2 seconds elapsed


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, mis à 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

eio_busy(
int $delay,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

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.

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() - Ne fait rien, mis à part le fait de parcourir l'ensemble du cycle des requêtes


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

eio_cancel(resource $req): void

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.

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

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()

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();
?>

Résultat de l'exemple ci-dessus est similaire à :

resource(4) of type (EIO Request Descriptor)
my_nop 2

Voir aussi

  • eio_grp_cancel() - Annule un groupe de requêtes


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

eio_chmod(
string $path,
int $mode,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

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.

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

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()

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


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

eio_chown(
string $path,
int $uid,
int $gid = -1,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

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.

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

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()

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() - Modifie les permissions d'un fichier/dossier


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

eio_close(
mixed $fd,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

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.

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

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()

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() - Ouvre un fichier


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

eio_custom(
callable $execute,
int $pri,
callable $callback,
mixed $data = NULL
): resource

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.

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

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()

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();
?>

Résultat de l'exemple ci-dessus est 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

eio_dup2(
mixed $fd,
mixed $fd2,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

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.

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

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()

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

eio_event_loop(): bool

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, ou 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();
?>

Résultat de l'exemple ci-dessus est similaire à :

eio_chmod_ok

Voir aussi

  • eio_poll() - Vérifie s'il reste des requêtes en cours d'exécution


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

eio_fallocate(
mixed $fd,
int $mode,
int $offset,
int $length,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

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.

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

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()

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

eio_fchmod(
mixed $fd,
int $mode,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

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.

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

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()

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


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

eio_fchown(
mixed $fd,
int $uid,
int $gid = -1,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

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.

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

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()

data

Variables arbitraires passées à la fonction de rappel callback.

Valeurs de retour

eio_chmod() retourne la ressource demandée en cas de succès, ou false si une erreur survient.

Voir aussi

  • eio_fchmod() - Modifie les permissions sur un fichier


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

eio_fdatasync(
mixed $fd,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

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.

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

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()

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

eio_fstat(
mixed $fd,
int $pri,
callable $callback,
mixed $data = ?
): resource

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.

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

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()

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();
?>

Résultat de l'exemple ci-dessus est 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() - Récupère le statut d'un fichier
  • eio_stat() - Récupère le statut d'un fichier


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

eio_fstatvfs(
mixed $fd,
int $pri,
callable $callback,
mixed $data = ?
): resource

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.

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

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()

data

Variable arbitraire à passer à la fonction de rappel callback.

Valeurs de retour

eio_fstatvfs() retourne la ressource demandée en cas de succès, ou false si une erreur survient.

Voir aussi

  • eio_statvfs() - Récupère les statistiques du système de fichiers


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

eio_fsync(
mixed $fd,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

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.

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

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()

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() - Valide le cache du buffer sur le disque


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

eio_ftruncate(
mixed $fd,
int $offset = 0,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

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.

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

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()

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() - Tronque un fichier


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

eio_futime(
mixed $fd,
float $atime,
float $mtime,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

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.

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

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()

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() - Modifie l'heure du dernier accès et de la dernière modification d'un fichier


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

eio_get_event_stream(): mixed

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 */
?>

Résultat de l'exemple ci-dessus est 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

eio_get_last_error(resource $req): string

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. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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

eio_grp_add(resource $grp, resource $req): void

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

Aucune valeur n'est retournée.

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();
?>

Résultat de l'exemple ci-dessus est similaire à :

resource(6) of type (EIO Group Descriptor)
bool(true)
string(4) "some"
bool(true)

Voir aussi

  • eio_grp() - Crée un groupe de requêtes
  • eio_grp_cancel() - Annule un groupe de requêtes
  • eio_grp_limit() - Définit la limite d'un groupe


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

eio_grp_cancel(resource $grp): void

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() - Crée un groupe de requêtes
  • eio_grp_add() - Ajoute une requête au groupe de requêtes


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

eio_grp_limit(resource $grp, int $limit): void

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() - Ajoute une requête au groupe de requêtes


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

eio_grp(callable $callback, string $data = NULL): resource

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

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()

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();
?>

Résultat de l'exemple ci-dessus est similaire à :

string(4) "some"

Voir aussi

  • eio_grp_cancel() - Annule un groupe de requêtes
  • eio_grp_add() - Ajoute une requête au groupe de requêtes


(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

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.

Note:

Cette fonction a été supprimée dans la version 3.0.0RC1 de l'extension eio pour les versions de PHP 8 et ultérieur.

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

eio_link(
string $path,
string $new_path,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

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.

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

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()

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();
?>

Résultat de l'exemple ci-dessus est similaire à :

bool(true)
bool(true)
string(%d) "%ssymlink.dat"

Voir aussi

  • eio_symlink() - Crée un lien symbolique


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

eio_lstat(
string $path,
int $pri,
callable $callback,
mixed $data = NULL
): resource

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.

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

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()

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();
?>

Résultat de l'exemple ci-dessus est 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() - Récupère le statut d'un fichier
  • eio_fstat() - Récupère le statut d'un fichier


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

eio_mkdir(
string $path,
int $mode,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

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.

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

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()

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();
?>

Résultat de l'exemple ci-dessus est similaire à :

eio_mkdir_ok

Voir aussi

  • eio_rmdir() - Supprime un dossier


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

eio_mknod(
string $path,
int $mode,
int $dev,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

eio_mknod() crée un fichier spécial ou ordinaire.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

path

Chemin du nouveau nœud (fichier).

mode

Spécifie à la fois les permissions à utiliser et le type de nœud à 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 nœud (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.

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

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()

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();
?>

Résultat de l'exemple ci-dessus est 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() - Ouvre un fichier


Ne fait rien, mis à part le fait de parcourir l'ensemble du cycle des requêtes

  • « eio_mknod
  • eio_npending »
  • PHP Manual
  • Fonctions Eio
  • Ne fait rien, mis à part le fait de parcourir l'ensemble du cycle des requêtes

eio_nop

(PECL eio >= 0.0.1dev)

eio_nop — Ne fait rien, mis à part le fait de parcourir l'ensemble du cycle des requêtes

Description

eio_nop(int $pri = EIO_PRI_DEFAULT, callable $callback = NULL, mixed $data = NULL): resource

eio_nop() ne fait rien, mis à 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.

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

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()

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() - Augmente artificiellement la charge. Utile dans le cadre de tests


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

eio_npending(): int

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() - Retourne le nombre de requêtes restant à exécuter
  • eio_nready() - Retourne le nombre de requêtes pas encore gérées
  • eio_nthreads() - Retourne le nombre de threads actuellement utilisés


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

eio_nready(): int

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() - Retourne le nombre de requêtes restant à exécuter
  • eio_nready()
  • eio_nthreads() - Retourne le nombre de threads actuellement utilisés


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

eio_nreqs(): int

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();
}
?>

Résultat de l'exemple ci-dessus est similaire à :

string(1) "1"
int(0)
string(1) "3"
int(0)
string(1) "2"
int(0)

Voir aussi

  • eio_poll() - Vérifie s'il reste des requêtes en cours d'exécution
  • eio_nready() - Retourne le nombre de requêtes pas encore gérées


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

eio_nthreads(): int

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() - 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_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_min_parallel() - Définit le nombre minimum de threads parallèles


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

eio_open(
string $path,
int $flags,
int $mode,
int $pri,
callable $callback,
mixed $data = NULL
): resource

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.

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

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()

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();
?>

Résultat de l'exemple ci-dessus est similaire à :

bool(true)
bool(true)

Voir aussi

  • eio_mknod() - Crée un fichier spécial ou ordinaire


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

eio_poll(): int

eio_poll() peut être utilisé pour implémenter une boucle d'événements spéciale. Pour ceci, la fonction eio_nreqs() peut être utilisée 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();
}
?>

Résultat de l'exemple ci-dessus est similaire à :

string(1) "1"
int(0)
string(1) "3"
int(0)
string(1) "2"
int(0)

Voir aussi

  • eio_nreqs() - Retourne le nombre de requêtes restant à exécuter


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

eio_read(
mixed $fd,
int $length,
int $offset,
int $pri,
callable $callback,
mixed $data = NULL
): resource

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.

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

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()

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();
?>

Résultat de l'exemple ci-dessus est similaire à :

string(5) "34567"

Voir aussi

  • eio_open() - Ouvre un fichier
  • eio_write() - Ecrit dans un fichier
  • eio_close() - Ferme un fichier
  • eio_event_loop() - Boucle libeio tant que les requêtes s'exécutent


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

eio_readahead(
mixed $fd,
int $offset,
int $length,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

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.

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

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()

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

eio_readdir(
string $path,
int $flags,
int $pri,
callable $callback,
string $data = NULL
): resource

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.

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

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()

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 nœud. 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 nœud :

EIO_DT_UNKNOWN (entier)
Un nœud de type inconnu (souvent le cas). Une utilisation de la fonction stat() est nécessaire.
EIO_DT_FIFO (entier)
Un nœud de type FIFO
EIO_DT_CHR (entier)
Type de nœud
EIO_DT_MPC (entier)
Un nœud de type périphérique à caractères multiplexés (v7+coherent)
EIO_DT_DIR (entier)
Un nœud de type dossier
EIO_DT_NAM (entier)
Un nœud de type fichier nommé spécialement Xenix
EIO_DT_BLK (entier)
Type de nœud
EIO_DT_MPB (entier)
Bloc multiplexé du périphérique (v7+coherent)
EIO_DT_REG (entier)
Type de nœud
EIO_DT_NWK (entier)
EIO_DT_CMP (entier)
Un nœud de type spécial du réseau HP-UX
EIO_DT_LNK (entier)
Un nœud de type lien
EIO_DT_SOCK (entier)
Un nœud de type socket
EIO_DT_DOOR (entier)
Un nœud de type Solaris door
EIO_DT_WHT (entier)
Type de nœud
EIO_DT_MAX (entier)
Valeur de type de nœud 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();
?>

Résultat de l'exemple ci-dessus est 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

eio_readlink(
string $path,
int $pri,
callable $callback,
mixed $data = NULL
): resource

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.

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

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()

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();
?>

Résultat de l'exemple ci-dessus est similaire à :

bool(true)
bool(true)
string(16) "/tmp/symlink.dat"

Voir aussi

  • eio_symlink() - Crée un lien symbolique


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

eio_realpath(
string $path,
int $pri,
callable $callback,
string $data = NULL
): resource

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();
?>

Résultat de l'exemple ci-dessus est 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

eio_rename(
string $path,
string $new_path,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

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.

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

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()

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();
?>

Résultat de l'exemple ci-dessus est 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

eio_rmdir(
string $path,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

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.

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

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()

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();
?>

Résultat de l'exemple ci-dessus est similaire à :

eio_rmdir_ok

Voir aussi

  • eio_mkdir() - Crée un dossier


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

eio_seek(
mixed $fd,
int $offset,
int $whence,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

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.

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

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()

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

eio_sendfile(
mixed $out_fd,
mixed $in_fd,
int $offset,
int $length,
int $pri = ?,
callable $callback = ?,
string $data = ?
): resource

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.

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

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()

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

eio_set_max_idle(int $nthreads): void

Liste de paramètres

nthreads

Nombre de threads inactifs.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • eio_nthreads() - Retourne le nombre de threads actuellement utilisés
  • eio_set_min_parallel() - Définit le nombre minimum de threads parallèles
  • eio_set_max_parallel() - Définit le nombre maximal de threads en parallèle


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

eio_set_max_parallel(int $nthreads): void

Liste de paramètres

nthreads

Nombre de threads en parallèle

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • eio_nthreads() - Retourne le nombre de threads actuellement utilisés
  • eio_set_max_idle() - Définit le nombre maximal de threads inactifs
  • eio_set_min_parallel() - Définit le nombre minimum de threads parallèles


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

eio_set_max_poll_reqs(int $nreqs): void

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

eio_set_max_poll_time(float $nseconds): void

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

eio_set_min_parallel(string $nthreads): void

Liste de paramètres

nthreads

Nombre de threads en parallèle.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • eio_nthreads() - Retourne le nombre de threads actuellement utilisés
  • 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


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

eio_stat(
string $path,
int $pri,
callable $callback,
mixed $data = NULL
): resource

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.

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

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()

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();
?>

Résultat de l'exemple ci-dessus est 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() - Récupère le statut d'un fichier
  • eio_fstat() - Récupère le statut d'un fichier


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

eio_statvfs(
string $path,
int $pri,
callable $callback,
mixed $data = ?
): resource

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.

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

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()

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();
?>

Résultat de l'exemple ci-dessus est 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

eio_symlink(
string $path,
string $new_path,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

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.

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

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()

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();
?>

Résultat de l'exemple ci-dessus est similaire à :

bool(true)
string(16) "/tmp/symlink.dat"

Voir aussi

  • eio_link() - Crée un lien fort sur un fichier


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

eio_sync_file_range(
mixed $fd,
int $offset,
int $nbytes,
int $flags,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

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.

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

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()

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

eio_sync(int $pri = EIO_PRI_DEFAULT, callable $callback = NULL, mixed $data = NULL): resource

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

eio_syncfs(
mixed $fd,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

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.

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

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()

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

eio_truncate(
string $path,
int $offset = 0,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

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.

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

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()

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() - Tronque un fichier


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

eio_unlink(
string $path,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

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.

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

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()

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

eio_utime(
string $path,
float $atime,
float $mtime,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

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.

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

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()

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() - Modifie l'heure du dernier accès et de la dernière modification d'un fichier


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

eio_write(
mixed $fd,
string $str,
int $length = 0,
int $offset = 0,
int $pri = EIO_PRI_DEFAULT,
callable $callback = NULL,
mixed $data = NULL
): resource

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.

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

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()

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() - Ouvre un fichier


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 EvSignal
    • 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éparément.


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 : » https://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";
?>

Résultat de l'exemple ci-dessus est 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();
?>

Résultat de l'exemple ci-dessus est 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 :

callback( object $watcher = NULL , int $revents = NULL ): void

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 une classe statique fournissant l'accès à la boucle par défaut ainsi qu'à quelques opérations communes.

Synopsis de la classe

final class Ev {
/* Constantes */
const int FLAG_AUTO = 0;
const int FLAG_NOENV = 16777216;
const int FLAG_FORKCHECK = 33554432;
const int FLAG_NOINOTIFY = 1048576;
const int FLAG_SIGNALFD = 2097152;
const int FLAG_NOSIGMASK = 4194304;
const int RUN_NOWAIT = 1;
const int RUN_ONCE = 2;
const int BREAK_CANCEL = 0;
const int BREAK_ONE = 1;
const int BREAK_ALL = 2;
const int MINPRI = -2;
const int MAXPRI = 2;
const int READ = 1;
const int WRITE = 2;
const int TIMER = 256;
const int PERIODIC = 512;
const int SIGNAL = 1024;
const int CHILD = 2048;
const int STAT = 4096;
const int IDLE = 8192;
const int PREPARE = 16384;
const int CHECK = 32768;
const int EMBED = 65536;
const int CUSTOM = 16777216;
const int ERROR = 2147483648;
const int BACKEND_SELECT = 1;
const int BACKEND_POLL = 2;
const int BACKEND_EPOLL = 4;
const int BACKEND_KQUEUE = 8;
const int BACKEND_DEVPOLL = 16;
const int BACKEND_PORT = 32;
const int BACKEND_ALL = 63;
const int BACKEND_MASK = 65535;
/* Méthodes */
final public static backend(): int
final public static depth(): int
final public static embeddableBackends(): int
final public static feedSignal( int $signum ): void
final public static feedSignalEvent( int $signum ): void
final public static iteration(): int
final public static now(): float
final public static nowUpdate(): void
final public static recommendedBackends(): int
final public static resume(): void
final public static run( int $flags = ?): void
final public static sleep( float $seconds ): void
final public static stop( int $how = ?): void
final public static supportedBackends(): int
final public static suspend(): void
final public static time(): float
final public static 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 Ev::backend(): int

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 Ev::depth(): int

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 Ev::embeddableBackends(): int

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 Ev::feedSignal( int $signum ): void

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 Ev::feedSignalEvent( int $signum ): void

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 Ev::iteration(): int

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 Ev::now(): float

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 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 Ev::recommendedBackends(): int

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 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 Ev::run( int $flags = ?): void

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 Ev::sleep( float $seconds ): void

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 Ev::stop( int $how = ?): void

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 Ev::supportedBackends(): int

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 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 Ev::time(): float

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 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

class 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 createStopped( string $callback , string $data = ?, string $priority = ?): object
/* Méthodes héritées */
public EvWatcher::clear(): int
public EvWatcher::feed( int $revents ): void
public EvWatcher::getLoop(): EvLoop
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
public EvWatcher::start(): void
public 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

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 EvCheck::createStopped( string $callback , string $data = ?, string $priority = ?): object

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

class 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 createStopped(
int $pid ,
bool $trace ,
callable $callback ,
mixed $data = ?,
int $priority = ?
): object
public set( int $pid , bool $trace ): void
/* Méthodes héritées */
public EvWatcher::clear(): int
public EvWatcher::feed( int $revents ): void
public EvWatcher::getLoop(): EvLoop
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
public EvWatcher::start(): void
public 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

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 EvChild::createStopped(
int $pid ,
bool $trace ,
callable $callback ,
mixed $data = ?,
int $priority = ?
): object

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 EvChild::set( int $pid , bool $trace ): void

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

class EvEmbed extends EvWatcher {
/* Propriétés */
public $embed;
/* Méthodes */
public __construct(
object $other ,
callable $callback = ?,
mixed $data = ?,
int $priority = ?
)
final public static createStopped(
object $other ,
callable $callback = ?,
mixed $data = ?,
int $priority = ?
): void
public set( object $other ): void
public sweep(): void
/* Méthodes héritées */
public EvWatcher::clear(): int
public EvWatcher::feed( int $revents ): void
public EvWatcher::getLoop(): EvLoop
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
public EvWatcher::start(): void
public 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

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 EvEmbed::createStopped(
object $other ,
callable $callback = ?,
mixed $data = ?,
int $priority = ?
): void

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 EvEmbed::set( object $other ): void

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 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

class 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 createStopped( string $callback , string $data = ?, string $priority = ?): object
/* Méthodes héritées */
public EvWatcher::clear(): int
public EvWatcher::feed( int $revents ): void
public EvWatcher::getLoop(): EvLoop
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
public EvWatcher::start(): void
public 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

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 EvFork::createStopped( string $callback , string $data = ?, string $priority = ?): object

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

class 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 createStopped( string $callback , mixed $data = ?, int $priority = ?): object
/* Méthodes héritées */
public EvWatcher::clear(): int
public EvWatcher::feed( int $revents ): void
public EvWatcher::getLoop(): EvLoop
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
public EvWatcher::start(): void
public 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

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 EvIdle::createStopped( string $callback , mixed $data = ?, int $priority = ?): object

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écisément, 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éparément, 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

class 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 createStopped(
mixed $fd ,
int $events ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvIo
public set( mixed $fd , int $events ): void
/* Méthodes héritées */
public EvWatcher::clear(): int
public EvWatcher::feed( int $revents ): void
public EvWatcher::getLoop(): EvLoop
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
public EvWatcher::start(): void
public 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

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::createStopped(
mixed $fd ,
int $events ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvIo

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 EvIo::set( mixed $fd , int $events ): void

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 class 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 __construct(
int $flags = ?,
mixed $data = NULL ,
float $io_interval = 0.0 ,
float $timeout_interval = 0.0
)
public backend(): int
final public check( string $callback , string $data = ?, string $priority = ?): EvCheck
final public child(
string $pid ,
string $trace ,
string $callback ,
string $data = ?,
string $priority = ?
): EvChild
public static defaultLoop(
int $flags = Ev::FLAG_AUTO ,
mixed $data = NULL ,
float $io_interval = 0. ,
float $timeout_interval = 0.
): EvLoop
final public embed(
string $other ,
string $callback = ?,
string $data = ?,
string $priority = ?
): EvEmbed
final public fork( callable $callback , mixed $data = null , int $priority = 0 ): EvFork
final public idle( callable $callback , mixed $data = null , int $priority = 0 ): EvIdle
public invokePending(): void
final public io(
mixed $fd ,
int $events ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvIo
public loopFork(): void
public now(): float
public nowUpdate(): void
final public periodic(
float $offset ,
float $interval ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvPeriodic
final public prepare( callable $callback , mixed $data = null , int $priority = 0 ): EvPrepare
public resume(): void
public run( int $flags = 0 ): void
final public signal(
int $signum ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvSignal
final public stat(
string $path ,
float $interval ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvStat
public stop( int $how = ?): void
public suspend(): void
final public timer(
float $after ,
float $repeat ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvTimer
public 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 EvLoop::backend(): int

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 EvLoop::check( string $callback , string $data = ?, string $priority = ?): EvCheck

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 EvLoop::child(
string $pid ,
string $trace ,
string $callback ,
string $data = ?,
string $priority = ?
): EvChild

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 ,
float $io_interval = 0.0 ,
float $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

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::defaultLoop(
int $flags = Ev::FLAG_AUTO ,
mixed $data = NULL ,
float $io_interval = 0. ,
float $timeout_interval = 0.
): EvLoop

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 EvLoop::embed(
string $other ,
string $callback = ?,
string $data = ?,
string $priority = ?
): EvEmbed

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 EvLoop::fork( callable $callback , mixed $data = null , int $priority = 0 ): EvFork

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 EvLoop::idle( callable $callback , mixed $data = null , int $priority = 0 ): EvIdle

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 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 EvLoop::io(
mixed $fd ,
int $events ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvIo

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 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 EvLoop::now(): float

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 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 EvLoop::periodic(
float $offset ,
float $interval ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvPeriodic

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 EvLoop::prepare( callable $callback , mixed $data = null , int $priority = 0 ): EvPrepare

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 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 EvLoop::run( int $flags = 0 ): void

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 EvLoop::signal(
int $signum ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvSignal

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 EvSignal


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 EvLoop::stat(
string $path ,
float $interval ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvStat

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 EvSignal


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 EvLoop::stop( int $how = ?): void

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 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 EvLoop::timer(
float $after ,
float $repeat ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvTimer

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 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

class 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 __construct(
float $offset ,
string $interval ,
callable $reschedule_cb ,
callable $callback ,
mixed $data = null ,
int $priority = 0
)
public again(): void
public at(): float
final public static createStopped(
float $offset ,
float $interval ,
callable $reschedule_cb ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvPeriodic
public set( float $offset , float $interval ): void
/* Méthodes héritées */
public EvWatcher::clear(): int
public EvWatcher::feed( int $revents ): void
public EvWatcher::getLoop(): EvLoop
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
public EvWatcher::start(): void
public 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 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 EvPeriodic::at(): float

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(
float $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

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::createStopped(
float $offset ,
float $interval ,
callable $reschedule_cb ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvPeriodic

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 EvPeriodic::set( float $offset , float $interval ): void

(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

class 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 createStopped( callable $callback , mixed $data = null , int $priority = 0 ): EvPrepare
/* Méthodes héritées */
public EvWatcher::clear(): int
public EvWatcher::feed( int $revents ): void
public EvWatcher::getLoop(): EvLoop
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
public EvWatcher::start(): void
public 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

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::createStopped( callable $callback , mixed $data = null , int $priority = 0 ): EvPrepare

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

class 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 createStopped(
int $signum ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvSignal
public set( int $signum ): void
/* Méthodes héritées */
public EvWatcher::clear(): int
public EvWatcher::feed( int $revents ): void
public EvWatcher::getLoop(): EvLoop
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
public EvWatcher::start(): void
public 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 EvSignal
  • EvSignal::createStopped — Crée un objet watcher EvSignal stoppé
  • EvSignal::set — Configure le watcher


Construit un objet watcher EvSignal

  • « EvSignal
  • EvSignal::createStopped »
  • PHP Manual
  • EvSignal
  • Construit un objet watcher EvSignal

EvSignal::__construct

(PECL ev >= 0.2.0)

EvSignal::__construct — Construit un objet watcher EvSignal

Description

public EvSignal::__construct(
int $signum ,
callable $callback ,
mixed $data = null ,
int $priority = 0
)

Construit un objet watcher EvSignal 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

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::createStopped(
int $signum ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvSignal

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 EvSignal


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 EvSignal::set( int $signum ): void

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'implémentation 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 alentour 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

class 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 __construct(
string $path ,
float $interval ,
callable $callback ,
mixed $data = null ,
int $priority = 0
)
public attr(): array
final public static createStopped(
string $path ,
float $interval ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): void
public prev(): void
public set( string $path , float $interval ): void
public stat(): bool
/* Méthodes héritées */
public EvWatcher::clear(): int
public EvWatcher::feed( int $revents ): void
public EvWatcher::getLoop(): EvLoop
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
public EvWatcher::start(): void
public 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 EvStat::attr(): array

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 ,
float $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

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", 10, 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();
}
});

?>


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 EvStat::createStopped(
string $path ,
float $interval ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): void

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 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 EvStat::set( string $path , float $interval ): void

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 EvStat::stat(): bool

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

class 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 __construct(
float $after ,
float $repeat ,
callable $callback ,
mixed $data = null ,
int $priority = 0
)
public again(): void
final public static createStopped(
float $after ,
float $repeat ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvTimer
public set( float $after , float $repeat ): void
/* Méthodes héritées */
public EvWatcher::clear(): int
public EvWatcher::feed( int $revents ): void
public EvWatcher::getLoop(): EvLoop
public EvWatcher::invoke( int $revents ): void
public EvWatcher::keepalive( bool $value = ?): bool
public EvWatcher::setCallback( callable $callback ): void
public EvWatcher::start(): void
public 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 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(
float $after ,
float $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

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";
?>

Résultat de l'exemple ci-dessus est 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::createStopped(
float $after ,
float $repeat ,
callable $callback ,
mixed $data = null ,
int $priority = 0
): EvTimer

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 EvTimer::set( float $after , float $repeat ): void

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 class EvWatcher {
/* Propriétés */
public $is_active;
public $data;
public $is_pending;
public $priority;
/* Méthodes */
abstract public __construct()
public clear(): int
public feed( int $revents ): void
public getLoop(): EvLoop
public invoke( int $revents ): void
public keepalive( bool $value = ?): bool
public setCallback( callable $callback ): void
public start(): void
public 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

entier 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 fonctionnalité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 EvWatcher::clear(): int

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()

EvWatcher::__construct() est un constructeur d'objet d'observateur, implémenté dans les classes dérivées.

Liste de paramètres

Cette fonction ne contient aucun paramètre.


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 EvWatcher::feed( int $revents ): void

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 EvWatcher::getLoop(): EvLoop

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 EvWatcher::invoke( int $revents ): void

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 EvWatcher::keepalive( bool $value = ?): bool

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 EvWatcher::setCallback( callable $callback ): void

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 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 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 : » https://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" | INI_ALL |
expect.loguser | "1" | INI_ALL |
expect.logfile | "" | INI_ALL |
expect.match_max | "" | INI_ALL |
Pour plus de détails sur les modes INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

expect.timeout int

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

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 int

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 (int)
Indique que le motif est un motif de style de chaîne de caractères glob.
EXP_EXACT (int)
Indique que le motif est une chaîne exacte.
EXP_REGEXP (int)
Indique que le motif est un motif d'expression rationnelle.
EXP_EOF (int)
Valeur, retournée par expect_expectl(), lorsque EOF est atteint.
EXP_TIMEOUT (int)
Valeur, retournée par expect_expectl() sur le dépassement du temps en secondes, spécifiée par la valeur expect.timeout
EXP_FULLBUFFER (int)
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

expect_expectl(resource $expect, array $cases, array &$match = ?): int

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
PECL expect 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
  • PCNTL »
  • 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

expect_popen(string $command): resource

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


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_async_signals — Enable/disable asynchronous signal handling or return the old setting
    • pcntl_errno — Alias de pcntl_get_last_error
    • 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_rfork — Manipulates process resources
    • pcntl_setpriority — Change la priorité d'un processus
    • pcntl_signal_dispatch — Appelle les gestionnaires de signaux pour chaque signal en attente
    • pcntl_signal_get_handler — Récupère le gestionnaire courant pour le signal spécifié
    • 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_unshare — Dissociates parts of the process execution context
    • 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.

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.

Constantes de contrôle du processus
WNOHANG (int)
WUNTRACED (int)
Les constantes SIG_*
SIG_IGN (int)
SIG_DFL (int)
SIG_ERR (int)
SIGHUP (int)
SIGINFO (int)
SIGINT (int)
SIGQUIT (int)
SIGILL (int)
SIGTRAP (int)
SIGABRT (int)
SIGIOT (int)
SIGBUS (int)
SIGFPE (int)
SIGKILL (int)
SIGUSR1 (int)
SIGSEGV (int)
SIGUSR2 (int)
SIGPIPE (int)
SIGALRM (int)
SIGTERM (int)
SIGSTKFLT (int)
SIGCLD (int)
SIGCHLD (int)
SIGCONT (int)
SIGSTOP (int)
SIGTSTP (int)
SIGTTIN (int)
SIGTTOU (int)
SIGURG (int)
SIGXCPU (int)
SIGXFSZ (int)
SIGVTALRM (int)
SIGPROF (int)
SIGWINCH (int)
SIGPOLL (int)
SIGIO (int)
SIGPWR (int)
SIGSYS (int)
SIGBABY (int)
SIG_BLOCK (int)
SIG_UNBLOCK (int)
SIG_SETMASK (int)
Les constantes SI_*
SI_USER (int)
SI_NOINFO (int)
SI_KERNEL (int)
SI_QUEUE (int)
SI_TIMER (int)
SI_MSGGQ (int)
SI_ASYNCIO (int)
SI_SIGIO (int)
SI_TKILL (int)
Les constantes CLD_*
CLD_EXITED (int)
CLD_KILLED (int)
CLD_DUMPED (int)
CLD_TRAPPED (int)
CLD_STOPPED (int)
CLD_CONTINUED (int)
Les constantes TRAP_*
TRAP_BRKPT (int)
TRAP_TRACE (int)
Les constantes POLL_*
POLL_IN (int)
POLL_OUT (int)
POLL_MSG (int)
POLL_ERR (int)
POLL_PRI (int)
POLL_HUP (int)
Les constantes ILL_*
ILL_ILLOPC (int)
ILL_ILLOPN (int)
ILL_ILLADR (int)
ILL_ILLTRP (int)
ILL_PRVOPC (int)
ILL_PRVREG (int)
ILL_COPROC (int)
ILL_BADSTK (int)
Les constantes FPE_*
FPE_INTDIV (int)
FPE_INTOVF (int)
FPE_FLTDIV (int)
FPE_FLTOVF (int)
FPE_FLTUND (int)
FPE_FLTRES (int)
FPE_FLTINV (int)
FPE_FLTSUB (int)
Les constantes SEGV_*
SEGV_MAPERR (int)
SEGV_ACCERR (int)
Les constantes BUS_*
BUS_ADRALN (int)
BUS_ADRERR (int)
BUS_OBJERR (int)
Les constantes CLONE_*
CLONE_NEWNS (int)
Disponible à partir de PHP 7.4.0
CLONE_NEWIPC (int)
Disponible à partir de PHP 7.4.0
CLONE_NEWUTS (int)
Disponible à partir de PHP 7.4.0
CLONE_NEWNET (int)
Disponible à partir de PHP 7.4.0
CLONE_NEWPID (int)
Disponible à partir de PHP 7.4.0
CLONE_NEWUSER (int)
Disponible à partir de PHP 7.4.0
CLONE_NEWCGROUP (int)
Disponible à partir de PHP 7.4.0
Les constantes PRIO_*
PRIO_PGRP (int)
PRIO_USER (int)
PRIO_PROCESS (int)
PRIO_DARWIN_BG (int)
Disponible à partir de PHP 8.1.0.
PRIO_DARWIN_THREAD (int)
Disponible à partir de PHP 8.1.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_async_signals — Enable/disable asynchronous signal handling or return the old setting
  • pcntl_errno — Alias de pcntl_get_last_error
  • 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_rfork — Manipulates process resources
  • pcntl_setpriority — Change la priorité d'un processus
  • pcntl_signal_dispatch — Appelle les gestionnaires de signaux pour chaque signal en attente
  • pcntl_signal_get_handler — Récupère le gestionnaire courant pour le signal spécifié
  • 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_unshare — Dissociates parts of the process execution context
  • 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_async_signals »
  • PHP Manual
  • Fonctions PCNTL
  • Planifie une alarme pour délivrer un signal

pcntl_alarm

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pcntl_alarm — Planifie une alarme pour délivrer un signal

Description

pcntl_alarm(int $seconds): int

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.


Enable/disable asynchronous signal handling or return the old setting

  • « pcntl_alarm
  • pcntl_errno »
  • PHP Manual
  • Fonctions PCNTL
  • Enable/disable asynchronous signal handling or return the old setting

pcntl_async_signals

(PHP 7 >= 7.1.0, PHP 8)

pcntl_async_signals — Enable/disable asynchronous signal handling or return the old setting

Description

pcntl_async_signals(?bool $enable = null): bool

If the enable parameter is null, pcntl_async_signals() returns whether asynchronous signal handling is enabled. Otherwise, asynchronous signal handling is enabled or disabled.

Liste de paramètres

enable

Whether asynchronous signal handling should be enabled.

Valeurs de retour

When used as getter (enable parameter is null) it returns whether asynchronous signal handling is enabled. When used as setter (enable parameter is not null), it returns whether asynchronous signal handling was enabled before the function call.

Historique

Version | Description
8.0.0 | enable is nullable now.

Voir aussi

  • declare


Alias de pcntl_get_last_error

  • « pcntl_async_signals
  • pcntl_exec »
  • PHP Manual
  • Fonctions PCNTL
  • Alias de pcntl_get_last_error

pcntl_errno

(PHP 5 >= 5.3.4, PHP 7, PHP 8)

pcntl_errno — Alias de pcntl_get_last_error()

Description

Cette fonction est un alias de : pcntl_get_last_error()


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, PHP 8)

pcntl_exec — Exécute le programme indiqué dans l'espace courant de processus

Description

pcntl_exec(string $path, array $args = [], array $env_vars = []): bool

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.

env_vars

env_vars 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.


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, PHP 8)

pcntl_fork — Duplique le process courant

Description

pcntl_fork(): int

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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_rfork() - Manipulates process resources
  • pcntl_waitpid() - Attend la fin de l'exécution d'un processus fils
  • pcntl_signal() - Installe un gestionnaire de signaux
  • cli_set_process_title() - 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, PHP 8)

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

pcntl_get_last_error(): int

Avertissement

Cette fonction est actuellement non documentée ; 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_rfork »
  • PHP Manual
  • Fonctions PCNTL
  • Retourne la priorité d'un processus

pcntl_getpriority

(PHP 5, PHP 7, PHP 8)

pcntl_getpriority — Retourne la priorité d'un processus

Description

pcntl_getpriority(?int $process_id = null, int $mode = PRIO_PROCESS): int|false

pcntl_getpriority() retourne la priorité de process_id. 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

process_id

Si null, l'identifiant du processus courant est utilisé.

mode

Une constante parmi PRIO_PGRP, PRIO_USER, PRIO_PROCESS, PRIO_DARWIN_BG ou PRIO_DARWIN_THREAD.

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.

Historique

Version | Description
8.0.0 | process_id est désormais nullable.

Voir aussi

  • pcntl_setpriority() - Change la priorité d'un processus


Manipulates process resources

  • « pcntl_getpriority
  • pcntl_setpriority »
  • PHP Manual
  • Fonctions PCNTL
  • Manipulates process resources

pcntl_rfork

(PHP 8 >= 8.1.0)

pcntl_rfork — Manipulates process resources

Description

pcntl_rfork(int $flags, int $signal = 0): int

Manipulates process resources.

Liste de paramètres

flags

The flags parameter determines which resources of the invoking process (parent) are shared by the new process (child) or initialized to their default values.

flags is the logical OR of some subset of:

  • RFPROC: If set a new process is created; otherwise changes affect the current process.
  • RFNOWAIT: If set, the child process will be dissociated from the parent. Upon exit the child will not leave a status for the parent to collect.
  • RFFDG: If set, the invoker's file descriptor table is copied; otherwise the two processes share a single table.
  • RFCFDG: If set, the new process starts with a clean file descriptor table. Is mutually exclusive with RFFDG.
  • RFLINUXTHPN: If set, the kernel will return SIGUSR1 instead of SIGCHILD upon thread exit for the child. This is intended to do Linux clone exit parent notification.

signal

The signal number.

Valeurs de retour

On success, the PID of the child process is returned in the parent's thread of execution, and a 0 is returned in the child's thread of execution. On failure, a -1 will be returned in the parent's context, no child process will be created, and a PHP error is raised.

Exemples

Exemple #1 pcntl_rfork() example

<?php

$pid = pcntl_rfork(RFNOWAIT|RFTSIGZMB, SIGUSR1);
if ($pid > 0) {
// This is the parent process.
var_dump($pid);
} else {
// This is the child process.
var_dump($pid);
sleep(2); // as the child does not wait, so we see its "pid"
}
?>

Résultat de l'exemple ci-dessus est similaire à :

int(77093)
int(0)

Notes

Note:

This function is only available on BSD systems.

Voir aussi

  • pcntl_fork() - Duplique le process courant
  • pcntl_waitpid() - Attend la fin de l'exécution d'un processus fils
  • pcntl_signal() - Installe un gestionnaire de signaux
  • cli_set_process_title() - Définit le titre du processus


Change la priorité d'un processus

  • « pcntl_rfork
  • pcntl_signal_dispatch »
  • PHP Manual
  • Fonctions PCNTL
  • Change la priorité d'un processus

pcntl_setpriority

(PHP 5, PHP 7, PHP 8)

pcntl_setpriority — Change la priorité d'un processus

Description

pcntl_setpriority(int $priority, ?int $process_id = null, int $mode = PRIO_PROCESS): bool

pcntl_setpriority() change la priorité de process_id à 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.

process_id

Si null, l'identifiant du processus courant est utilisé.

mode

Une constante parmi PRIO_PGRP, PRIO_USER, PRIO_PROCESS, PRIO_DARWIN_BG ou PRIO_DARWIN_THREAD.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | process_id est désormais nullable.

Voir aussi

  • pcntl_getpriority() - Retourne la priorité d'un processus
  • pcntl_setpriority()


Appelle les gestionnaires de signaux pour chaque signal en attente

  • « pcntl_setpriority
  • pcntl_signal_get_handler »
  • PHP Manual
  • Fonctions PCNTL
  • Appelle les gestionnaires de signaux pour chaque signal en attente

pcntl_signal_dispatch

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

pcntl_signal_dispatch — Appelle les gestionnaires de signaux pour chaque signal en attente

Description

pcntl_signal_dispatch(): bool

La fonction pcntl_signal_dispatch() appelle les gestionnaires de signaux installés par pcntl_signal() pour chaque signal en attente.

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 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";

?>

Résultat de l'exemple ci-dessus est 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é


Récupère le gestionnaire courant pour le signal spécifié

  • « pcntl_signal_dispatch
  • pcntl_signal »
  • PHP Manual
  • Fonctions PCNTL
  • Récupère le gestionnaire courant pour le signal spécifié

pcntl_signal_get_handler

(PHP 7 >= 7.1.0, PHP 8)

pcntl_signal_get_handler — Récupère le gestionnaire courant pour le signal spécifié

Description

pcntl_signal_get_handler(int $signal): callable|int

La fonction pcntl_signal_get_handler() va récupérer le gestionnaire courant pour le signal spécifié.

Liste de paramètres

signal

Le numéro du signal.

Valeurs de retour

Cette fonction peut retourner une valeur entière qui réfère soit à SIG_DFL ou à SIG_IGN. Si un gestionnaire personnalisé a été définit, ce callable est retourné.

Historique

Version | Description
7.1.0 | La fonction pcntl_signal_get_handler() a été ajoutée.

Exemples

Exemple #1 Exemple avec pcntl_signal_get_handler()

<?php
var_dump(pcntl_signal_get_handler(SIGUSR1)); // Affiche : int(0)

function pcntl_test($signo) {}
pcntl_signal(SIGUSR1, 'pcntl_test');
var_dump(pcntl_signal_get_handler(SIGUSR1)); // Affiche : string(10) "pcntl_test"

pcntl_signal(SIGUSR1, SIG_DFL);
var_dump(pcntl_signal_get_handler(SIGUSR1)); // Affiche : int(0)

pcntl_signal(SIGUSR1, SIG_IGN);
var_dump(pcntl_signal_get_handler(SIGUSR1)); // Affiche : int(1)
?>

Voir aussi

  • pcntl_signal() - Installe un gestionnaire de signaux


Installe un gestionnaire de signaux

  • « pcntl_signal_get_handler
  • pcntl_sigprocmask »
  • PHP Manual
  • Fonctions PCNTL
  • Installe un gestionnaire de signaux

pcntl_signal

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

pcntl_signal — Installe un gestionnaire de signaux

Description

pcntl_signal(int $signal, callable|int $handler, bool $restart_syscalls = true): bool

pcntl_signal() installe un nouveau gestionnaire de signaux ou remplace le gestionnaire de signaux courant pour le signal indiqué par le paramètre signal.

Liste de paramètres

signal

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 :

handler(int $signo, mixed $siginfo): void
signal
Le signal à gérer.
siginfo
Si le système d'exploitation supporte les structures siginfo_t, ceci sera un tableau d'informations du signal qui dépendent du signal.

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
7.1.0 | À partir de PHP 7.1.0 le gestionnaire de la fonction de rappel est doté d'un second argument qui contient le siginfo de ce signal spécifique. Ces données sont seulement fournies si le système d'exploitation a la structure siginfo_t. Si le système d'exploitation n'implémente pas siginfo_t NULL est fournit.

Exemples

Exemple #1 Exemple avec pcntl_signal()

<?php
// l'usage des ticks est nécessaire
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
// pcntl_signal(SIGUSR1, array($obj, "faire_quelque_chose"));

echo"Génération d'un signal SIGUSR1 à moi-même...\n";

// envoi de SIGUSR1 à l'identifiant de processus courant
// les fonctions posix_* nécéssite l'extension posix
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, PHP 8)

pcntl_sigprocmask — Liste et configure les signaux bloqués

Description

pcntl_sigprocmask(int $mode, array $signals, array &$old_signals = null): bool

La fonction pcntl_sigprocmask() ajoute, retire ou configure les signaux bloqués, en fonction du paramètre mode.

Liste de paramètres

mode

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.

signals

Liste de signaux.

old_signals

Le paramètre old_signals 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, PHP 8)

pcntl_sigtimedwait — Attend un signal dans un délai donné

Description

pcntl_sigtimedwait(
array $signals,
array &$info = [],
int $seconds = 0,
int $nanoseconds = 0
): int|false

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

signals

Une liste de signaux à attendre.

info

Le paramètre info 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

pcntl_sigtimedwait() retourne un numéro du signal en cas de succès, ou false si une erreur survient.

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, PHP 8)

pcntl_sigwaitinfo — Attend un signal

Description

pcntl_sigwaitinfo(array $signals, array &$info = []): int|false

La fonction pcntl_sigwaitinfo() suspend son exécution jusqu'à la réception d'un des signaux, indiqué dans signals. 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

signals

Un tableau de signaux à attendre.

info

Le paramètre info 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

Retourne un numéro du signal en cas de succès, ou false si une erreur survient.

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_unshare »
  • 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, PHP 8)

pcntl_strerror — Récupère le message d'erreur système associé avec l'errno fourni

Description

pcntl_strerror(int $error_code): string

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

error_code

Valeurs de retour

Retourne la description de l'erreur.

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


Dissociates parts of the process execution context

  • « pcntl_strerror
  • pcntl_wait »
  • PHP Manual
  • Fonctions PCNTL
  • Dissociates parts of the process execution context

pcntl_unshare

(PHP 7 >= 7.4.0, PHP 8)

pcntl_unshare — Dissociates parts of the process execution context

Description

pcntl_unshare(int $flags): bool

pcntl_unshare() allows a process to disassociate parts of its execution context that are currently being shared with other processes. The main use of pcntl_unshare() is to allow a process to control its shared execution context without creating a new process.

Liste de paramètres

flags

The flags parameter is a bitmask that specifies which parts of the execution context should be unshared. This parameter is specified by ORing together zero or more of the CLONE_* constants:

  • CLONE_NEWNS
  • CLONE_NEWIPC
  • CLONE_NEWUTS
  • CLONE_NEWNET
  • CLONE_NEWPID
  • CLONE_NEWUSER
  • CLONE_NEWCGROUP

Valeurs de retour

Returns 0 on success, -1 otherwise. On failure it sets an error code, that can be retrieved with pcntl_get_last_error().

Voir aussi

  • PCNTL Constants
  • 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_unshare
  • pcntl_waitpid »
  • PHP Manual
  • Fonctions PCNTL
  • Attend ou retourne le statut d'un processus fils

pcntl_wait

(PHP 5, PHP 7, PHP 8)

pcntl_wait — Attend ou retourne le statut d'un processus fils

Description

pcntl_wait(int &$status, int $flags = 0, array &$resource_usage = []): int

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 process_id valant -1 et aucun flags.

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().

flags

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 flags. S'il n'est pas fourni, wait() sera utilisé pour l'appel système. Si wait3 n'est pas disponible, le paramètre flags n'aura pas d'effet. La valeur de flags est la combinaison de zéro ou plusieurs des constantes suivantes :

Valeurs possibles pour flags
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, PHP 8)

pcntl_waitpid — Attend la fin de l'exécution d'un processus fils

Description

pcntl_waitpid(
int $process_id,
int &$status,
int $flags = 0,
array &$resource_usage = []
): int

Suspend l'exécution du processus courant jusqu'à ce qu'un processus fils spécifié par le paramètre process_id 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 process_id 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

process_id

La valeur de process_id peut être une parmi les suivantes :

Valeurs possibles pour process_id
< -1 | attend que tous les processus fils dont l'identifiant de groupe est égal à la valeur absolue de process_id 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 à process_id soit terminé.

Note:

Si process_id vaut -1, cela équivaut à utiliser la fonction pcntl_wait() (moins flags).

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().

flags

Le paramètre flags peut prendre la valeur zéro, ou plusieurs des constantes globales suivantes (combinez les avec l'opérateur OR) :

Valeurs possibles de flags
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, PHP 8)

pcntl_wexitstatus — Retourne le code d'un processus fils terminé

Description

pcntl_wexitstatus(int $status): int|false

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. Si la fonctionnalité n'est pas prise en charge par le système d'exploitation, false est retourné.

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, PHP 8)

pcntl_wifexited — Vérifie si le code de retour représente une fin normale

Description

pcntl_wifexited(int $status): bool

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, PHP 8)

pcntl_wifsignaled — Retourne true si le code statut représente une fin due à un signal

Description

pcntl_wifsignaled(int $status): bool

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, PHP 8)

pcntl_wifstopped — Retourne true si le processus fils est stoppé

Description

pcntl_wifstopped(int $status): bool

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, PHP 8)

pcntl_wstopsig — Retourne le signal qui a causé l'arrêt du processus fils

Description

pcntl_wstopsig(int $status): int|false

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. Si la fonctionnalité n'est pas prise en charge par le système d'exploitation, false est retourné.

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, PHP 8)

pcntl_wtermsig — Retourne le signal qui a provoqué la fin du processus fils

Description

pcntl_wtermsig(int $status): int|false

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. Si la fonctionnalité n'est pas prise en charge par le système d'exploitation, false est retourné.

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
    • Constantes de posix_pathconf
    • Constantes de posix_sysconf
  • Fonctions POSIX
    • posix_access — Détermine l'accessibilité d'un fichier
    • posix_ctermid — Retourne le chemin du terminal
    • posix_eaccess — Determine accessibility of a file
    • posix_errno — Alias de posix_get_last_error
    • posix_fpathconf — Returns the value of a configurable limit
    • 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 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_pathconf — Returns the value of a configurable limit
    • 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 — Définit les limites pour une ressource système
    • 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_sysconf — Returns system runtime information
    • 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.

Note: Cette extension n'est pas disponible sur les plates-formes Windows.


Installation

Cette extension est activée par défaut. Elle peut être désactivée en utilisant l'option de configuration : --disable-posix.


Constantes pré-définies

Sommaire

  • Constantes posix_access
  • Constantes posix_mknod
  • Constantes posix_setrlimit
  • Constantes de posix_pathconf
  • Constantes de posix_sysconf

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:

Il est à noter que certaines de ces constantes ne peuvent ne pas être disponible sur chaque système.

POSIX_F_OK (int)
Vérifie si le fichier existe.
POSIX_R_OK (int)
Vérifie si le fichier existe et a les permissions de lecture.
POSIX_W_OK (int)
Vérifie si le fichier existe et a les permissions d'écriture.
POSIX_X_OK (int)
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:

Notez que quelques unes d'entre elles peuvent pas être disponibles sur votre système.

POSIX_S_IFBLK (int)
Bloque les fichiers spéciaux
POSIX_S_IFCHR (int)
Caractère des fichiers spéciaux
POSIX_S_IFIFO (int)
FIFO (pipe nommé) des fichiers spéciaux
POSIX_S_IFREG (int)
Fichier normal Normal file
POSIX_S_IFSOCK (int)
Socket


Constantes posix_setrlimit

  • « Constantes posix_mknod
  • Constantes de posix_pathconf »
  • PHP Manual
  • Constantes pré-définies
  • Constantes posix_setrlimit

Constantes posix_setrlimit()

Note:

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 (int)
La taille maximale de l'espace d'adresse du processus, en octets. Voir aussi la directive de configuration PHP memory_limit.
POSIX_RLIMIT_CORE (int)
La taille maximale d'un fichier cœur. Si la limite est définie à 0, aucun fichier cœur ne sera généré.
POSIX_RLIMIT_CPU (int)
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 (int)
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 (int)
La taille maximale des fichiers que le processus peut créer, en octets.
POSIX_RLIMIT_LOCKS (int)
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 (int)
Le nombre maximal d'octets qui peuvent être verrouillés en mémoire.
POSIX_RLIMIT_MSGQUEUE (int)
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 (int)
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 (int)
Une valeur supérieure au nombre maximal de descripteur de fichier qui peut être ouvert par ce processus.
POSIX_RLIMIT_NPROC (int)
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 (int)
La taille maximale du jeu résident du processus, en pages.
POSIX_RLIMIT_RTPRIO (int)
La priorité maximale temps réel qui peut être défini via les appels systèmes sched_setscheduler() et sched_setparam().
POSIX_RLIMIT_RTTIME (int)
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 (int)
Le nombre maximal de signaux qui peuvent être mis en file d'attente pour l'ID utilisateur réel du processus.
POSIX_RLIMIT_STACK (int)
La taille maximale de la pile du processus, en octets.
POSIX_RLIMIT_INFINITY (int)
Utilisé pour indiquer une valeur infinie pour une limite de ressource.
POSIX_RLIMIT_KQUEUES (int)
Le nombre maximum de kqueues cet id utilisateur est autorisé a créer (FreeBSD). Disponible à partir de PHP 8.1.0.
POSIX_RLIMIT_NPTS (int)
Le nombre maximum de pseudo-terminals cet id utilisateur est autorisé a créer (FreeBSD). Disponible à partir de PHP 8.1.0.


Constantes de posix_pathconf

  • « Constantes posix_setrlimit
  • Constantes de posix_sysconf »
  • PHP Manual
  • Constantes pré-définies
  • Constantes de posix_pathconf

Constantes de posix_pathconf()

POSIX_PC_LINK_MAX (int)
Le nombre maximum de liens qu'un fichier ou un répertoire donné peut avoir. Disponible à partir de PHP 8.3.0.
POSIX_PC_MAX_CANON (int)
Le nombre maximum d'octets dans un tampon d'entrée canonique de terminal (le chemin étant alors un fichier spécial de caractères). Disponible à partir de PHP 8.3.0.
POSIX_PC_MAX_INPUT (int)
Le nombre maximum d'octets dans une file d'attente d'entrée de terminal (le chemin étant alors un fichier spécial de caractères). Disponible à partir de PHP 8.3.0.
POSIX_PC_NAME_MAX (int)
Le nombre maximum de caractères pour un nom de fichier seul, sans son chemin. Disponible à partir de PHP 8.3.0.
POSIX_PC_PATH_MAX (int)
Le nombre maximum de caractères pour un chemin complet. Disponible à partir de PHP 8.3.0.
POSIX_PC_PIPE_BUF (int)
Le nombre maximum d'octets pouvant être écrits dans un tube en une seule opération. Disponible à partir de PHP 8.3.0.
POSIX_PC_CHOWN_RESTRICTED (int)
Si des privilèges sont nécessaires pour autoriser chown() à fonctionner. Disponible à partir de PHP 8.3.0.
POSIX_PC_NO_TRUNC (int)
Si un nom de fichier (ou des fichiers sous un répertoire) est plus long que POSIX_PC_NAME_MAX. Disponible à partir de PHP 8.3.0.
POSIX_PC_ALLOC_SIZE_MIN (int)
Le nombre minimum d'octets de stockage alloués pour toute partie d'un fichier. Disponible à partir de PHP 8.3.0.
POSIX_PC_ALLOC_SYMLINK_MAX (int)
Le nombre maximum de liens symboliques qu'un fichier ou un répertoire donné peut avoir. Disponible à partir de PHP 8.3.0.


Constantes de posix_sysconf

  • « Constantes de posix_pathconf
  • Fonctions POSIX »
  • PHP Manual
  • Constantes pré-définies
  • Constantes de posix_sysconf

Constantes de posix_sysconf()

POSIX_SC_ARG_MAX (int)
Le nombre maximum d'octets que peuvent avoir les arguments (et les variables d'environnement). Disponible à partir de PHP 8.3.0.
POSIX_SC_PAGESIZE (int)
Le nombre d'octets de la page actuelle. Disponible à partir de PHP 8.3.0.
POSIX_SC_NPROCESSORS_CONF (int)
Le nombre de processeurs configurés dans l'ensemble du système. Disponible à partir de PHP 8.3.0.
POSIX_SC_NPROCESSORS_ONLN (int)
Le nombre de processeurs actuellement actifs dans l'ensemble du système. Disponible à partir de PHP 8.3.0.


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_eaccess — Determine accessibility of a file
  • posix_errno — Alias de posix_get_last_error
  • posix_fpathconf — Returns the value of a configurable limit
  • 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 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_pathconf — Returns the value of a configurable limit
  • 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 — Définit les limites pour une ressource système
  • 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_sysconf — Returns system runtime information
  • 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, PHP 8)

posix_access — Détermine l'accessibilité d'un fichier

Description

posix_access(string $filename, int $flags = 0): bool

posix_access() vérifie les permissions utilisateurs pour un fichier.

Liste de paramètres

filename

Le nom du fichier à tester.

flags

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);
}

?>

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_eaccess »
  • PHP Manual
  • Fonctions POSIX
  • Retourne le chemin du terminal

posix_ctermid

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_ctermid — Retourne le chemin du terminal

Description

posix_ctermid(): string|false

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()

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 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é


Determine accessibility of a file

  • « posix_ctermid
  • posix_errno »
  • PHP Manual
  • Fonctions POSIX
  • Determine accessibility of a file

posix_eaccess

(PHP 8 >= 8.3.0)

posix_eaccess — Determine accessibility of a file

Description

posix_eaccess(string $filename, int $flags = 0): bool

posix_eaccess() checks the effective user's permission of a file

Liste de paramètres

filename

The name of a file to be tested.

flags

A mask consisting of one or more of POSIX_F_OK, POSIX_R_OK, POSIX_W_OK and POSIX_X_OK.

POSIX_R_OK, POSIX_W_OK and POSIX_X_OK request checking whether the file exists and has read, write and execute permissions, respectively. POSIX_F_OK just requests checking for the existence of the file.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.3.0 | Checks the effective user/group for a file, differing from posix_access() which checks from the real user/group.

Exemples

Exemple #1 posix_eaccess() example

This example will check if the $file is readable and writable, otherwise will print an error message.

<?php

$file = 'some_file';

if (posix_eaccess($file, POSIX_R_OK | POSIX_W_OK)) {
echo 'The file is readable and writable!';

} else {
$error = posix_get_last_error();

echo "Error $error: " . posix_strerror($error);
}

?>

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
  • posix_access() - Détermine l'accessibilité d'un fichier


Alias de posix_get_last_error

  • « posix_eaccess
  • posix_fpathconf »
  • PHP Manual
  • Fonctions POSIX
  • Alias de posix_get_last_error

posix_errno

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

posix_errno — Alias de posix_get_last_error()

Description

Cette fonction est un alias de : posix_get_last_error().


Returns the value of a configurable limit

  • « posix_errno
  • posix_get_last_error »
  • PHP Manual
  • Fonctions POSIX
  • Returns the value of a configurable limit

posix_fpathconf

(PHP 8 >= 8.3.0)

posix_fpathconf — Returns the value of a configurable limit

Description

posix_fpathconf(resource|int $file_descriptor, int $name): int|false

Returns the value of a configurable limit from name for file_descriptor.

Liste de paramètres

file_descriptor

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.

name

The name of the configurable limit, one of the following. POSIX_PC_LINK_MAX, POSIX_PC_MAX_CANON, POSIX_PC_MAX_INPUT, POSIX_PC_NAME_MAX, POSIX_PC_PATH_MAX, POSIX_PC_PIPE_BUF, POSIX_PC_CHOWN_RESTRICTED, POSIX_PC_NO_TRUNC, POSIX_PC_ALLOC_SIZE_MIN, POSIX_PC_SYMLINK_MAX.

Valeurs de retour

Returns the configurable limit or false.

Erreurs / Exceptions

Throws a ValueError when resource is invalid.

Exemples

Exemple #1 posix_fpathconf() example

This example will get the max path name's length in bytes for the current dir.

<?php
$fd = fopen(__DIR__, "r");
echo posix_fpathconf($fd, POSIX_PC_PATH_MAX);
?>

L'exemple ci-dessus va afficher :

4096

Voir aussi

  • posix_pathconf() - Returns the value of a configurable limit


Lit le dernier numéro d'erreur généré par la dernière fonction POSIX qui a échoué

  • « posix_fpathconf
  • 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, PHP 8)

posix_get_last_error — Lit le dernier numéro d'erreur généré par la dernière fonction POSIX qui a échoué

Description

posix_get_last_error(): int

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().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

posix_getcwd — Chemin du dossier de travail courant

Description

posix_getcwd(): string|false

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()

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 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, PHP 8)

posix_getegid — Retourne l'ID effectif du groupe du processus courant

Description

posix_getegid(): int

Retourne l'ID effectif du groupe du processus courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

posix_geteuid — Retourne l'UID effectif de l'utilisateur du processus courant

Description

posix_geteuid(): int

Retourne l'UID effectif de l'utilisateur du processus courant. Reportez-vous à posix_getpwuid() pour obtenir le nom d'utilisateur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

posix_getgid — Retourne l'UID du groupe du processus courant

Description

posix_getgid(): int

Retourne l'ID réel du groupe du processus courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

posix_getgrgid — Retourne des informations sur un groupe

Description

posix_getgrgid(int $group_id): array|false

Retourne des informations sur un groupe.

Liste de paramètres

group_id

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 group_id 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.
The function returns false on failure.

Exemples

Exemple #1 Exemple avec posix_getgrgid()

<?php

$groupid = posix_getegid();
$groupinfo = posix_getgrgid($groupid);

print_r($groupinfo);

?>

Résultat de l'exemple ci-dessus est 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
  • 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, PHP 8)

posix_getgrnam — Retourne des informations sur un groupe

Description

posix_getgrnam(string $name): array|false

Récupère les informations d'un groupe donné.

Liste de paramètres

name

Le nom du groupe

Valeurs de retour

Retourne un tableau en cas de succès, ou false si une erreur survient. 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);
?>

Résultat de l'exemple ci-dessus est 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
  • 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, PHP 8)

posix_getgroups — Retourne les identifiants du groupe du processus courant

Description

posix_getgroups(): array|false

Retourne les identifiants du groupe du processus courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant les identifiants du groupe du processus courant, ou false si une erreur survient.

Exemples

Exemple #1 Exemple avec posix_getgroups()

<?php

$groups = posix_getgroups();

print_r($groups);
?>

Résultat de l'exemple ci-dessus est 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 login

  • « posix_getgroups
  • posix_getpgid »
  • PHP Manual
  • Fonctions POSIX
  • Retourne le login

posix_getlogin

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_getlogin — Retourne le login

Description

posix_getlogin(): string|false

Retourne le login de l'utilisateur qui possède le processus courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le login de l'utilisateur, sous la forme d'une chaîne de caractères, ou false si une erreur survient.

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, PHP 8)

posix_getpgid — Retourne l'id du groupe de processus

Description

posix_getpgid(int $process_id): int|false

Retourne l'id du groupe de processus pour le processus process_id ou false si une erreur survient.

Liste de paramètres

process_id

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, PHP 8)

posix_getpgrp — Retourne l'identifiant du groupe de processus

Description

posix_getpgrp(): int

Retourne l'identifiant du groupe de processus du processus courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

posix_getpid — Retourne l'identifiant du processus courant

Description

posix_getpid(): int

Retourne l'identifiant du processus courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

posix_getppid — Retourne l'identifiant du processus parent

Description

posix_getppid(): int

Retourne l'identifiant du processus parent du processus courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

posix_getpwnam — Retourne des informations sur un utilisateur

Description

posix_getpwnam(string $username): array|false

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);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

posix_getpwuid — Retourne des informations sur un utilisateur

Description

posix_getpwuid(int $user_id): array|false

Retourne un tableau d'informations sur un utilisateur référencé par son ID.

Liste de paramètres

user_id

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 user_id 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.
The function returns false on failure.

Exemples

Exemple #1 Exemple avec posix_getpwuid()

<?php

$userinfo = posix_getpwuid(10000);

print_r($userinfo);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

posix_getrlimit — Retourne des informations concernant les limites des ressources système

Description

posix_getrlimit(?int $resource = null): array|false

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.

Liste de paramètres

resource

Si null toutes les limites des ressources seront récupérées. Sinon, seules les limites du type de ressource fourni seront renvoyées.

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 cœur du fichier. Lorsqu'elle vaut 0, aucun cœur de fichier n'est créé. Lorsque le cœur 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.
The function returns false on failure.

Historique

Version | Description
8.3.0 | Le paramètre facultatif resource a été ajouté.

Exemples

Exemple #1 Exemple avec posix_getrlimit()

<?php

$limits = posix_getrlimit();

print_r($limits);
?>

Résultat de l'exemple ci-dessus est 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() - Définit les limites pour une ressource système


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, PHP 8)

posix_getsid — Retourne le sid du processus

Description

posix_getsid(int $process_id): int|false

Retourne l'ID de session du processus process_id. L'ID de session d'un processus est l'ID du groupe du processus du gestionnaire de session.

Liste de paramètres

process_id

L'identifiant du processus. S'il est défini à 0, le processus courant est utilisé. Si un process_id 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, ou false si une erreur survient.

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, PHP 8)

posix_getuid — Retourne l'ID de l'utilisateur du processus courant

Description

posix_getuid(): int

Retourne l'ID de l'utilisateur du processus courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

posix_initgroups — Calcule la liste des accès de groupe

Description

posix_initgroups(string $username, int $group_id): bool

Calcule la liste des accès de groupe pour l'utilisateur spécifié par son nom.

Liste de paramètres

username

L'utilisateur pour lequel on doit calculer la liste.

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, PHP 8)

posix_isatty — Détermine si un pointeur de fichier est un terminal interactif

Description

posix_isatty(resource|int $file_descriptor): bool

Détermine si le pointeur de fichier file_descriptor se réfère à un type de terminal de périphérique valide.

Liste de paramètres

file_descriptor

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.

Valeurs de retour

Retourne true si file_descriptor est un pointeur de fichier connecté à un terminal, false sinon.

Historique

Version | Description
8.3.0 | Des erreurs de type E_WARNING sont désormais générées pour les coercitions d'entiers suivant les sémantiques habituelles de coercition de type PHP.

Voir aussi

  • posix_ttyname() - Retourne le nom de device du terminal
  • stream_isatty() - Vérifie si un flux est un TTY


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, PHP 8)

posix_kill — Envoie un signal à un processus

Description

posix_kill(int $process_id, int $signal): bool

Envoie le signal signal au processus process_id.

Liste de paramètres

process_id

L'identifiant du processus.

signal

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, PHP 8)

posix_mkfifo — Crée un fichier FIFO (first in, first out) (un pipe nommé)

Description

posix_mkfifo(string $filename, int $permissions): bool

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

filename

Chemin vers le fichier FIFO.

permissions

Le second paramètre permissions 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.


Crée un fichier spécial ou ordinaire (POSIX.1)

  • « posix_mkfifo
  • posix_pathconf »
  • PHP Manual
  • Fonctions POSIX
  • Crée un fichier spécial ou ordinaire (POSIX.1)

posix_mknod

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

posix_mknod — Crée un fichier spécial ou ordinaire (POSIX.1)

Description

posix_mknod(
string $filename,
int $flags,
int $major = 0,
int $minor = 0
): bool

Crée un fichier spécial ou ordinaire.

Liste de paramètres

filename

Le fichier à créer.

flags

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é)


Returns the value of a configurable limit

  • « posix_mknod
  • posix_setegid »
  • PHP Manual
  • Fonctions POSIX
  • Returns the value of a configurable limit

posix_pathconf

(PHP 8 >= 8.3.0)

posix_pathconf — Returns the value of a configurable limit

Description

posix_pathconf(string $path, int $name): int|false
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Returns the value of a configurable limit from name for a path

Liste de paramètres

path

The name of the file whose limit you want to get.

name

The name of the configurable limit, one of the following. POSIX_PC_LINK_MAX, POSIX_PC_MAX_CANON, POSIX_PC_MAX_INPUT, POSIX_PC_NAME_MAX, POSIX_PC_PATH_MAX, POSIX_PC_PIPE_BUF, POSIX_PC_CHOWN_RESTRICTED, POSIX_PC_NO_TRUNC, POSIX_PC_ALLOC_SIZE_MIN, POSIX_PC_SYMLINK_MAX.

Valeurs de retour

Returns the configurable limit or false.

Erreurs / Exceptions

Throws a ValueError when path is empty.

Exemples

Exemple #1 posix_pathconf() example

This example will get the max path name's length in bytes for the tmp dir.

<?php
echo posix_pathconf(sys_get_temp_dir(), POSIX_PC_PATH_MAX);
?>

L'exemple ci-dessus va afficher :

4096

Voir aussi

  • posix_fpathconf() - Returns the value of a configurable limit


Modifie le GID réel du processus courant

  • « posix_pathconf
  • 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, PHP 8)

posix_setegid — Modifie le GID réel du processus courant

Description

posix_setegid(int $group_id): bool

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

group_id

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, PHP 8)

posix_seteuid — Modifie l'identifiant d'utilisateur réel (UID) du processus courant

Description

posix_seteuid(int $user_id): bool

Définit l'identifiant du véritable utilisateur 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

user_id

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_geteuid() - Retourne l'UID effectif de l'utilisateur du processus courant
  • posix_setuid() - Fixe l'UID effective du processus courant
  • posix_getuid() - Retourne l'ID de l'utilisateur 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, PHP 8)

posix_setgid — Fixe le GID effectif du processus courant

Description

posix_setgid(int $group_id): bool

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

group_id

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, PHP 8)

posix_setpgid — Fixe l'identifiant de groupe de processus

Description

posix_setpgid(int $process_id, int $process_group_id): bool

Ajoute le processus process_id au groupe d'id process_group_id.

Liste de paramètres

process_id

L'ID du processus.

process_group_id

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.


Définit les limites pour une ressource système

  • « posix_setpgid
  • posix_setsid »
  • PHP Manual
  • Fonctions POSIX
  • Définit les limites pour une ressource système

posix_setrlimit

(PHP 7, PHP 8)

posix_setrlimit — Définit les limites pour une ressource système

Description

posix_setrlimit(int $resource, int $soft_limit, int $hard_limit): bool

posix_setrlimit() définit les limites douces et dure pour un ressource système donné.

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

La constante de limite de ressource correspondant à la limite qui sera définit.

soft_limit

La limite douce, dans n'importe quelle unité la limite de ressource nécessite, ou POSIX_RLIMIT_INFINITY.

hard_limit

La limite dure, dans n'importe quelle unité la limite de ressource nécessite, ou 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, PHP 8)

posix_setsid — Fait du processus courant un chef de session

Description

posix_setsid(): int

Fait du processus courant un chef de session.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

posix_setuid — Fixe l'UID effective du processus courant

Description

posix_setuid(int $user_id): bool

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

user_id

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_sysconf »
  • 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, PHP 8)

posix_strerror — Lit le message d'erreur associé à un numéro d'erreur POSIX

Description

posix_strerror(int $error_code): string

Retourne le message d'erreur POSIX associé au numéro d'erreur error_code. Vous pouvez récupérer le paramètre error_code en appelant la fonction posix_get_last_error().

Liste de paramètres

error_code

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";
?>

Résultat de l'exemple ci-dessus est 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é


Returns system runtime information

  • « posix_strerror
  • posix_times »
  • PHP Manual
  • Fonctions POSIX
  • Returns system runtime information

posix_sysconf

(PHP 8 >= 8.3.0)

posix_sysconf — Returns system runtime information

Description

posix_sysconf(int $conf_id): int

Returns system runtime information.

Liste de paramètres

conf_id

Identifier of the variable with the following constants POSIX_SC_ARG_MAX, POSIX_SC_PAGESIZE POSIX_SC_NPROCESSORS_CONF, POSIX_SC_NPROCESSORS_ONLN

Valeurs de retour

Returns the numeric value related to conf_id

Exemples

Exemple #1 posix_sysconf() example

Returns the number of active cpus.

<?php
echo posix_sysconf(POSIX_SC_NPROCESSORS_ONLN);
?>

L'exemple ci-dessus va afficher :

2


Utilisation des ressources

  • « posix_sysconf
  • posix_ttyname »
  • PHP Manual
  • Fonctions POSIX
  • Utilisation des ressources

posix_times

(PHP 4, PHP 5, PHP 7, PHP 8)

posix_times — Utilisation des ressources

Description

posix_times(): array|false

Retourne des informations sur l'utilisation courante du CPU.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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.
The function returns false on failure.

Exemples

Exemple #1 Exemple avec posix_times()

<?php

$times = posix_times();

print_r($times);
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [ticks] => 25814410
    [utime] => 1
    [stime] => 1
    [cutime] => 0
    [cstime] => 0
)

Notes

Avertissement

Cette fonction n'est pas fiable, elle peut retourner des valeurs négatives pour des temps élevés.


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, PHP 8)

posix_ttyname — Retourne le nom de device du terminal

Description

posix_ttyname(resource|int $file_descriptor): string|false

Retourne une chaîne de caractères pour le chemin absolu du terminal courant qui est ouvert sur le pointeur de fichier. file_descriptor.

Liste de paramètres

file_descriptor

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.

Valeurs de retour

En cas de succès, retourne une chaîne de caractères correspondant au chemin absolu de file_descriptor. En cas d'erreur, retourne false.

Erreurs / Exceptions

Sur des valeurs entières invalides de file_descriptor, une erreur E_WARNING est générée.

Historique

Version | Description
8.3.0 | Des erreurs de type E_WARNING sont désormais générées pour les coercitions d'entiers suivant les sémantiques habituelles de coercition de type PHP.
8.3.0 | Sur des valeurs entières invalides de file_descriptor, une erreur E_WARNING est désormais générée.

Voir aussi

  • posix_isatty() - Détermine si un pointeur de fichier est un terminal interactif
  • stream_isatty() - Vérifie si un flux est un TTY


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, PHP 8)

posix_uname — Retourne le nom du système

Description

posix_uname(): array|false

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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.

The function returns false on failure.

Exemples

Exemple #1 Exemple avec posix_uname()

<?php
$uname=posix_uname();
print_r($uname);
?>

Résultat de l'exemple ci-dessus est 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.

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, PHP 8)

escapeshellarg — Protège une chaîne de caractères pour utilisation en ligne de commande

Description

escapeshellarg(string $arg): string

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, escapeshellarg() remplace plutôt les signes de pourcentage, les points d'exclamation (substitution de variables différées) et les guillemets doubles avec des espaces et ajoute des guillemets doubles autour de la chaîne. De plus, chaque série de barres obliques inversées consécutives (\) est échappée par une barre oblique inverse supplémentaire.

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, PHP 8)

escapeshellcmd — Protège les caractères spéciaux du Shell

Description

escapeshellcmd(string $command): string

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 précédés d'un accent circonflexe (^).

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 intentionnelle ici.
$command = './configure '.$_POST['configure_options'];

$escaped_command = escapeshellcmd($command);

system($escaped_command);
?>

Notes

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.

Avertissement

Les espaces ne sont pas échappés par escapeshellcmd() ce qui peut être problématique sur Windows avec des chemins tel que : C:\Program Files\ProgramName\program.exe. Ceci peut être mitigé en utilisant le snippet de code suivant :

<?php
$cmd = preg_replace('`(?<!^) `', '^ ', escapeshellcmd($cmd));

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, PHP 8)

exec — Exécute un programme externe

Description

exec(string $command, array &$output = null, int &$result_code = null): string|false

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().

result_code

Si l'argument result_code 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().

Retourne false en cas d'erreur.

Pour récupérer la sortie de la commande exécutée, assurez-vous de définir et d'utiliser le paramètre output.

Erreurs / Exceptions

Émet une alerte E_WARNING si exec() ne peut pas exécuter la commande command.

Lève une exception ValueError si command est vide ou contient des octets nuls.

Historique

Version | Description
8.0.0 | Si command est vide ou contient des octets nuls, exec() lève désormais une exception ValueError. Précédemment, une alerte E_WARNING était émise et retournait false.

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)
$output=null;
$retval=null;
exec('whoami', $output, $retval);
echo "Returned with status $retval and output:\n";
print_r($output);
?>

Résultat de l'exemple ci-dessus est similaire à :

Returned with status 0 and output:
Array
(
    [0] => cmb
)

Notes

Avertissement

Si des données provenant des utilisateurs ont la permission d'être passées à cette fonction, utilisez escapeshellarg() ou escapeshellcmd() pour s'assurer que les utilisateurs ne peuvent pas amener le système à exécuter des commandes arbitraires.

Note:

Si un programme est démarré avec cette fonction et qu'il tourne en arrière plan, la sortie du programme doit être redirigée vers un fichier, ou un autre flux de sortie. À défaut, PHP sera bloqué jusqu'à la fin de l'exécution du programme.

Note:

Sur Windows exec() démarrera d'abord cmd.exe pour exécuter la commande. Si vous voulez démarrer un programme externe sans exécuter cmd.exe utilisez proc_open() en définissant l'option bypass_shell.

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, PHP 8)

passthru — Exécute un programme externe et affiche le résultat brut

Description

passthru(string $command, int &$result_code = null): ?false

passthru() est similaire à la fonction exec() car les deux exécutent la commande command. Si l'argument result_code 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.

result_code

Si l'argument result_code est présent, le statut retourné par la commande Unix sera placé dans cette variable.

Valeurs de retour

Cette fonction retourne null en cas de succès ou false si une erreur survient.

Erreurs / Exceptions

Émet une alerte E_WARNING si passthru() ne peut pas exécuter la commande command.

Lève une exception ValueError si command est vide ou contient des octets nuls.

Historique

Version | Description
8.0.0 | Si command est vide ou contient des octets nuls, passthru() lève désormais une exception ValueError. Auparavant, une alerte E_WARNING était émise et renvoyait false.

Notes

Avertissement

Si des données provenant des utilisateurs ont la permission d'être passées à cette fonction, utilisez escapeshellarg() ou escapeshellcmd() pour s'assurer que les utilisateurs ne peuvent pas amener le système à exécuter des commandes arbitraires.

Note:

Si un programme est démarré avec cette fonction et qu'il tourne en arrière plan, la sortie du programme doit être redirigée vers un fichier, ou un autre flux de sortie. À défaut, PHP sera bloqué jusqu'à la fin de l'exécution du programme.

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, PHP 8)

proc_close — Ferme un processus ouvert par proc_open()

Description

proc_close(resource $process): int

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. Les pipes ouverts avec ce processus sont fermés quand cette fonction est appellée 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, PHP 8)

proc_get_status — Lit les informations concernant un processus ouvert par proc_open()

Description

proc_get_status(resource $process): array

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. 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, PHP 8)

proc_nice — Change la priorité d'exécution du processus courant

Description

proc_nice(int $priority): bool

proc_nice() modifie la priorité du processus courant par le paramètre spécifié priority. Un paramètre priority positif atténuera la priorité du processus courant, tandis qu'une valeur négative priority augmentera la priorité.

proc_nice() n'est pas lié à proc_open() et ses fonctions associées d'aucune façon.

Liste de paramètres

priority

La nouvelle valeur de priorité, la valeur de ceci peut différer sur des plates-formes.

Sur Unix, une valeur faible, telle que -20 indique une priorité élevée alors qu'une valeur positive ont une priorité basse.

Pour Windows le paramètre priority a les significations suivantes :

Classe de priorité | Valeurs possible
Priorité élevée | priority < -9
Au-dessus de la priorité normale | priority < -4
Priorité normale | priority < 5 & priority > -5
Au-dessous de la priorité normale | priority > 5
Priorité inactive | priority > 9

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é.

Historique

Version | Description
7.2.0 | Cette fonction est maintenant disponible sur Windows.

Exemples

Exemple #1 Utilisation de proc_nice() pour définir la priorité de processus à haute

<?php
// Priorité la plus élevée
proc_nice(-20);
?>

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.

Note: Windows seulement

proc_nice() va changé la priorité du processus courent même si PHP a été compilé en utilisant la sécurité des threads.

Voir aussi

  • pcntl_setpriority() - Change la priorité d'un processus


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, PHP 8)

proc_open — Exécute une commande et ouvre les pointeurs de fichiers pour les entrées / sorties

Description

proc_open(
array|string $command,
array $descriptor_spec,
array &$pipes,
?string $cwd = null,
?array $env_vars = null,
?array $options = null
): resource|false

proc_open() est similaire à popen() mais fournit un plus grand degré de contrôle sur l'exécution du programme.

Liste de paramètres

command

La commande à exécuter en tant que chaîne de caractères. Les caractères spéciaux doivent être échappé correctement, et une application correcte des guillemets doit être appliqué.

Note: Sur Windows, sauf si bypass_shell est définie à true dans options, command est passé à cmd.exe (en fait, %ComSpec%) avec le drapeau /c est une chaîne de caractères sans guillemets (c.à.d. exactement comment elle a été fournie à proc_open()). Ceci peut causer cmd.exe à supprimer les guillemets entourant de command (pour plus de détails voir la documentation de cmd.exe), résulatant dans du comportement innatendu, et potentiellement dangereux, car les messages d'erreurs de cmd.exe peuvent contenir (une partir de) la command passé (voir exemple ci-dessous).

À partir de PHP 7.4.0, command peut être passé comme un tableau de paramètres de commandes. Dans ce cas le processus sera ouvert directement (sans passer à travers un shell) et PHP se chargera d'échapper les arguments nécessaire.

Note:

Sur Windows, l'échappement des arguments des éléments du tableau assume que le traitement de la ligne de commande de la commande exécuté est compatible avec le traitement d'arguments de ligne de commande fait par le runtime VC.

descriptor_spec

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). À noter que tout autre élément différent de w est traité comme r.
  • 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_vars

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

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
  • blocking_pipes (windows uniquement): force les tubes bloquand lorsque définit à true
  • create_process_group (windows uniquement) : permet au processus enfant de gérer les évènement CTRL lorsqu'il est à true
  • create_new_console (windows uniquement) : le nouvel processus à une nouvelle console, au lieu d'hériter la console de son parent.

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
7.4.4 | Ajout de l'option create_new_console au paramètre options.
7.4.0 | proc_open() accepte désormais un tableau pour command.
7.4.0 | Ajout de l'option create_process_group au paramètre 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";
}
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [some_option] => aeiou
    [PWD] => /tmp
    [SHLVL] => 1
    [_] => /usr/local/bin/php
)
La commande a retourné 0

Exemple #2 Bizarrerie de proc_open() sur Windows

Bien que l'on puisse s'attendre à ce que le programme suivant recherche le fichier filename.txt pour le texte search et d'afficher les résultats, il se comporte plutôt différemment.

<?php
$descriptorspec = [STDIN, STDOUT, STDOUT];
$cmd = '"findstr" "search" "filename.txt"';
$proc = proc_open($cmd, $descriptorspec, $pipes);
proc_close($proc);
?>

L'exemple ci-dessus va afficher :

'findstr" "search" "filename.txt' is not recognized as an internal or external command,
operable program or batch file.

Pour contourner ce comportement, il est généralement suffisant d'entourer command de guillemets additionnelles :

$cmd = '""findstr" "search" "filename.txt""';

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, PHP 8)

proc_terminate — Termine un processus ouvert par proc_open()

Description

proc_terminate(resource $process, int $signal = 15): bool

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.

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, PHP 8)

shell_exec — Exécute une commande via le Shell et retourne le résultat sous forme de chaîne

Description

shell_exec(string $command): string|false|null

shell_exec() est identique aux guillemets obliques.

Note:

Sur Windows, le tube sous-jacent est ouvert en mode texte qui peut causer la fonction à échouer pour des sorties binaires. Considérer l'utilisation de popen() pour de tel cas.

Liste de paramètres

command

La commande à exécuter.

Valeurs de retour

Une chaîne de caractères contenant le résultat de la commande exécuté, false si le pipe ne peut pas être établie, 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.

Erreurs / Exceptions

Une erreur de niveau E_WARNING est généré quand le pipe ne pas être établie.

Exemples

Exemple #1 Exemple avec shell_exec()

<?php
$output = shell_exec('ls -lart');
echo "<pre>$output</pre>";
?>

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
  • parallel »
  • 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, PHP 8)

system — Exécute un programme externe et affiche le résultat

Description

system(string $command, int &$result_code = null): string|false

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.

result_code

Si l'argument result_code 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 des données provenant des utilisateurs ont la permission d'être passées à cette fonction, utilisez escapeshellarg() ou escapeshellcmd() pour s'assurer que les utilisateurs ne peuvent pas amener le système à exécuter des commandes arbitraires.

Note:

Si un programme est démarré avec cette fonction et qu'il tourne en arrière plan, la sortie du programme doit être redirigée vers un fichier, ou un autre flux de sortie. À défaut, PHP sera bloqué jusqu'à la fin de l'exécution du programme.

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


parallel

  • Introduction
  • Installation
  • Philosophy
  • Functional API
    • parallel\bootstrap — Bootstrapping
    • parallel\run — Execution
  • parallel\Runtime — The parallel\Runtime class
    • parallel\Runtime::__construct — Runtime Construction
    • parallel\Runtime::run — Execution
    • parallel\Runtime::close — Runtime Graceful Join
    • parallel\Runtime::kill — Runtime Join
  • parallel\Future — The parallel\Future class
    • parallel\Future::cancel — Cancellation
    • parallel\Future::cancelled — State Detection
    • parallel\Future::done — State Detection
    • parallel\Future::value — Resolution
  • parallel\Channel — The parallel\Channel class
    • parallel\Channel::__construct — Channel Construction
    • parallel\Channel::make — Access
    • parallel\Channel::open — Access
    • parallel\Channel::recv — Sharing
    • parallel\Channel::send — Sharing
    • parallel\Channel::close — Closing
  • parallel\Events — The parallel\Events class
    • parallel\Events::setBlocking — Behaviour
    • parallel\Events::setTimeout — Behaviour
    • parallel\Events::setInput — Input
    • parallel\Events::addChannel — Targets
    • parallel\Events::addFuture — Targets
    • parallel\Events::remove — Targets
    • parallel\Events::poll — Polling
  • parallel\Events\Input — The parallel\Events\Input class
    • parallel\Events\Input::add — Inputs
    • parallel\Events\Input::clear — Inputs
    • parallel\Events\Input::remove — Inputs
  • parallel\Events\Event — The parallel\Events\Event class
  • parallel\Events\Event\Type — La classe parallel\Events\Event\Type
  • parallel\Sync — The parallel\Sync class
    • parallel\Sync::__construct — Construction
    • parallel\Sync::get — Access
    • parallel\Sync::set — Access
    • parallel\Sync::wait — Synchronization
    • parallel\Sync::notify — Synchronization
    • parallel\Sync::__invoke — Synchronization


Introduction

parallel is a parallel concurrency extension for PHP = 7.2.0. As of parallel 1.2.0, PHP = 8.0.0 is required.

A brief description of the concepts core to parallel follows, more detailed information may be found within this section of the manual.

Runtime

A parallel\Runtime represents a PHP interpreter thread. A parallel\Runtime is configured with an optional bootstrap file passed to parallel\Runtime::__construct(), this is typically an autoloader, or some other preloading routine: The bootstrap file will be included before any task is executed.

After construction the parallel\Runtime remains available until it is closed, killed, or destroyed by the normal scoping rules of PHP objects. parallel\Runtime::run() allows the programmer to schedule tasks for execution in parallel. A parallel\Runtime has a FIFO schedule, tasks will be executed in the order that they are scheduled.

Functional API

parallel implements a functional, higher level API on top of parallel\Runtime that provides a single function entry point to executing parallel code with automatic scheduling: parallel\run().

Task

A task is simply a Closure intended for parallel execution. The Closure may contain almost any instruction, including nested closures. However, there are some instructions that are prohibited in tasks:

  • yield

  • use by-reference

  • declare class

  • declare named function

Note:

Nested closures may yield or use by-reference, but must not contain class or named function declarations.

Note:

No instructions are prohibited in the files which the task may include.

Future

The parallel\Future is used to access the return value from the task, and exposes an API for cancellation of the task.

Channel

A task may be scheduled with arguments, use lexical scope variables (by-value), and return a value (via a parallel\Future), but these only allow uni-directional communication: They allow the programmer to send data into and retrieve data from a task, but do not allow bi-directional communication between tasks. The parallel\Channel API allows bi-directional communication between tasks, a parallel\Channel is a socket-like link between tasks that the programmer can use to send and receive data.

Events

The parallel\Events API implements a native feel (Traversable) event loop, and parallel\Events::poll() method. It allows the programmer to work with sets of channels and or futures. The programmer simply adds channels and futures to the event loop, optionally setting the input for writes with parallel\Events::setInput(), and enters into a foreach: parallel will read from and write to objects as they become available yielding parallel\Events\Event objects describing the operations that have occurred.

Voir aussi

  • Philosophy


Installation

Pré-requis

parallel requires a build of PHP with ZTS (Zend Thread Safety) enabled (--enable-zts, or on non-Windows systems prior to PHP 8.0.0, --enable-maintainer-zts)

Attention

Zend Thread Safety cannot be enabled post build; it is a build time configuration option.

parallel should build anywhere there is a working Posix Threads header (pthread.h) and ZTS build of PHP, including Windows (using the pthread-w32 project from redhat).

Installation

parallel releases are hosted by PECL and the source code by » github, the easiest route to installation is the normal PECL route: » https://pecl.php.net/package/parallel.

Windows users can download prebuilt release binaries from the » PECL website.

Attention

Windows users need to take the additional step of adding pthreadVC2.dll (distributed with Windows releases) to their PATH.


Philosophy

This section contains philosophies important to writing parallel code and some details about the internal implementation of parallel.

Do not communicate by sharing memory; instead, share memory by communicating.

This philosophy which is embraced by parallel has its origins in Go, one of the most widely admired if not used platforms for writing parallel code at the moment. Go programmers have to work hard to live up to this ideal: PHP and parallel do all the hard work for the programmer, and by default.

In conventional threading models found in other languages, generally threads are communicating with one another through nothing more than by virtue of the fact that they operate in the same address space. The programmer must deploy mutual exclusion, condition variables, and other low level threading or synchronization primitives in order to ensure proper communication of state and consistency.

When the conventional model is inversed, it means that threads only share memory as a result of communication (a variable is passed over a Channel for example).

When parallel passes a variable from one thread to another by any means - Task arguments, return via Future, and Channels - it is passed by value. In all but the case of unbuffered channels, the variable is also buffered so that it may not change (or be destroyed) before it is used in whichever thread the variable is being passed to. An unbuffered read over a channel is the only instance in which a thread directly reads memory allocated by another thread, it can do so safely because the thread that owns the memory is waiting for the read to complete before it can continue to manipulate it, and the thread that does not own the memory reads by value. When both threads continue, they are no longer sharing memory.

This makes writing and reasoning about parallel code much easier than the conventional model of threading. It means the programmer does not need to consider that threads may be manipulating data concurrently, because that is not possible.

This also makes PHP the perfect platform for implementing a parallel concurrency API based on CSP (message passing over channels), because PHP itself is shared nothing - PHP threads operate in their own virtual address space by default, and so may only share memory by communicating.

Data should have a definitive single owner

When approaching the CSP model for the first time, a programmer versed in the traditional model of threading may find themselves looking for concurrent data structures, because that is what they are used too: they pass around shared objects for manipulation.

When it comes to the CSP model, there is no need for data structures to be shared by many tasks, and indeed, it is simpler if they are not. The data should be owned by a single task, changes to (or operations on) that data structure should be communicated over channels and performed by the owner of the data, the success, failure, or result (state) of the change (or operation) being communicated back.

Once again the share nothing nature of PHP and copy by value nature of parallel helps the programmer to achieve this goal, no data will be shared by accident, only ever as a result of communication.


Functional API

The parallel\Runtime API provides a great degree of control to the power PHP programmer, and those intimately familiar with writing applications that use parallel concurrency.

The functional API provides less control in exchange for the ability to make decisions for the programmer:

  • all executing runtimes are bootstrapped identically

  • scheduling is determined by the API, not the programmer

parallel\run() provides the guarantee that the task will begin to execute in parallel as soon as allowed by hardware and operating system constraints, without needlessly creating runtimes. For most applications the functional API should be preferred.

Sommaire

  • parallel\bootstrap — Bootstrapping
  • parallel\run — Execution


Bootstrapping

  • « Functional API
  • parallel\run »
  • PHP Manual
  • Functional API
  • Bootstrapping

parallel\bootstrap

(1.0.0)

parallel\bootstrap — Bootstrapping

Description

parallel\bootstrap(string $file): void

Shall use the provided file to bootstrap all runtimes created for automatic scheduling via parallel\run().

Liste de paramètres

file

Path to the file to bootstrap all runtimes.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Avertissement

Shall throw parallel\Runtime\Error\Bootstrap if previously called for this process.

Avertissement

Shall throw parallel\Runtime\Error\Bootstrap if called after parallel\run().

Voir aussi

  • parallel\Runtime::run


Execution

  • « parallel\bootstrap
  • parallel\Runtime »
  • PHP Manual
  • Functional API
  • Execution

parallel\run

(1.0.0)

parallel\run — Execution

Description

parallel\run(Closure $task): ?Future

Shall schedule task for execution in parallel.

parallel\run(Closure $task, array $argv): ?Future

Shall schedule task for execution in parallel, passing argv at execution time.

Automatic Scheduling

If a \parallel\Runtime internally created and cached by a previous call to parallel\run() is idle, it will be used to execute the task. If no \parallel\Runtime is idle parallel will create and cache a \parallel\Runtime.

Note:

\parallel\Runtime objects created by the programmer are not used for automatic scheduling.

Liste de paramètres

task

A Closure with specific characteristics.

argv

An array of arguments with specific characteristics to be passed to task at execution time.

Task Characteristics

Closures scheduled for parallel execution must not:

  • accept or return by reference
  • accept or return internal objects (see notes)
  • execute a limited set of instructions

Instructions prohibited in Closures intended for parallel execution are:

  • yield
  • use by-reference
  • declare class
  • declare named function

Note:

Nested closures may yield or use by-reference, but must not contain class or named function declarations.

Note:

No instructions are prohibited in the files which the task may include.

Arguments Characteristics

Arguments must not:

  • contain references
  • contain resources
  • contain internal objects (see notes)

Note:

In the case of file stream resources, the resource will be cast to the file descriptor and passed as int where possible, this is unsupported on Windows.

Internal Objects Notes

Internal objects generally use a custom structure which cannot be copied by value safely, PHP currently lacks the mechanics to do this (without serialization) and so only objects that do not use a custom structure may be shared.

Some internal objects do not use a custom structure, for example parallel\Events\Event and so may be shared.

Closures are a special kind of internal object and support being copied by value, and so may be shared.

Channels are central to writing parallel code and support concurrent access and execution by necessity, and so may be shared.

Avertissement

A user class that extends an internal class may use a custom structure as defined by the internal class, in which case they cannot be copied by value safely, and so may not be shared.

Valeurs de retour

Avertissement

The return parallel\Future must not be ignored when the task contains a return or throw statement.

Exceptions

Avertissement

Shall throw parallel\Runtime\Error\Closed if parallel\Runtime was closed.

Avertissement

Shall throw parallel\Runtime\Error\IllegalFunction if task is a closure created from an internal function.

Avertissement

Shall throw parallel\Runtime\Error\IllegalInstruction if task contains illegal instructions.

Avertissement

Shall throw parallel\Runtime\Error\IllegalParameter if task accepts or argv contains illegal variables.

Avertissement

Shall throw parallel\Runtime\Error\IllegalReturn if task returns illegally.

Voir aussi

  • parallel\Runtime::run


The parallel\Runtime class

(0.8.0)

Runtime Objects

Each runtime represents a single PHP thread, the thread is created (and bootstrapped) upon construction. The thread then waits for tasks to be scheduled: Scheduled tasks will be executed FIFO and then the thread will resume waiting until more tasks are scheduled, or it's closed, killed, or destroyed by the normal scoping rules of PHP objects.

Avertissement

When a runtime is destroyed by the normal scoping rules of PHP objects, it will first execute all of the tasks that were scheduled, and block while doing so.

Runtime Bootstrapping

When a new runtime is created, it does not share code with the thread (or process) that created it. This means it doesn't have the same classes and functions loaded, nor the same autoloader set. In some cases, a very lightweight runtime is desirable because the tasks that will be scheduled do not need access to the code in the parent thread. In those cases where the tasks do need to access the same code, it is enough to set an autoloader as the bootstrap.

Note:

preloading may be used in conjunction with parallel, in this case preloaded code is available without bootstrapping

Synopsis de la classe

final class parallel\Runtime {
/* Create */
public __construct()
public __construct(string $bootstrap)
/* Execute */
public run(Closure $task): ?Future
public run(Closure $task, array $argv): ?Future
/* Join */
public close(): void
public kill(): void
}

Sommaire

  • parallel\Runtime::__construct — Runtime Construction
  • parallel\Runtime::run — Execution
  • parallel\Runtime::close — Runtime Graceful Join
  • parallel\Runtime::kill — Runtime Join


Runtime Construction

  • « parallel\Runtime
  • parallel\Runtime::run »
  • PHP Manual
  • parallel\Runtime
  • Runtime Construction

parallel\Runtime::__construct

(0.8.0)

parallel\Runtime::__construct — Runtime Construction

Description

public parallel\Runtime::__construct()

Shall construct a new runtime without bootstrapping.

public parallel\Runtime::__construct(string $bootstrap)

Shall construct a bootstrapped runtime.

Liste de paramètres

bootstrap

The location of a bootstrap file, generally an autoloader.

Exceptions

Avertissement

Shall throw parallel\Runtime\Error if thread could not be created

Avertissement

Shall throw parallel\Runtime\Bootstrap if bootstrapping failed


Execution

  • « parallel\Runtime::__construct
  • parallel\Runtime::close »
  • PHP Manual
  • parallel\Runtime
  • Execution

parallel\Runtime::run

(0.8.0)

parallel\Runtime::run — Execution

Description

public parallel\Runtime::run(Closure $task): ?Future

Shall schedule task for execution in parallel.

public parallel\Runtime::run(Closure $task, array $argv): ?Future

Shall schedule task for execution in parallel, passing argv at execution time.

Liste de paramètres

task

A Closure with specific characteristics.

argv

An array of arguments with specific characteristics to be passed to task at execution time.

Task Characteristics

Closures scheduled for parallel execution must not:

  • accept or return by reference
  • accept or return internal objects (see notes)
  • execute a limited set of instructions

Instructions prohibited in Closures intended for parallel execution are:

  • yield
  • use by-reference
  • declare class
  • declare named function

Note:

Nested closures may yield or use by-reference, but must not contain class or named function declarations.

Note:

No instructions are prohibited in the files which the task may include.

Arguments Characteristics

Arguments must not:

  • contain references
  • contain resources
  • contain internal objects (see notes)

Note:

In the case of file stream resources, the resource will be cast to the file descriptor and passed as int where possible, this is unsupported on Windows.

Internal Objects Notes

Internal objects generally use a custom structure which cannot be copied by value safely, PHP currently lacks the mechanics to do this (without serialization) and so only objects that do not use a custom structure may be shared.

Some internal objects do not use a custom structure, for example parallel\Events\Event and so may be shared.

Closures are a special kind of internal object and support being copied by value, and so may be shared.

Channels are central to writing parallel code and support concurrent access and execution by necessity, and so may be shared.

Avertissement

A user class that extends an internal class may use a custom structure as defined by the internal class, in which case they cannot be copied by value safely, and so may not be shared.

Valeurs de retour

Avertissement

The return parallel\Future must not be ignored when the task contains a return or throw statement.

Exceptions

Avertissement

Shall throw parallel\Runtime\Error\Closed if parallel\Runtime was closed.

Avertissement

Shall throw parallel\Runtime\Error\IllegalFunction if task is a closure created from an internal function.

Avertissement

Shall throw parallel\Runtime\Error\IllegalInstruction if task contains illegal instructions.

Avertissement

Shall throw parallel\Runtime\Error\IllegalParameter if task accepts or argv contains illegal variables.

Avertissement

Shall throw parallel\Runtime\Error\IllegalReturn if task returns illegally.


Runtime Graceful Join

  • « parallel\Runtime::run
  • parallel\Runtime::kill »
  • PHP Manual
  • parallel\Runtime
  • Runtime Graceful Join

parallel\Runtime::close

(0.8.0)

parallel\Runtime::close — Runtime Graceful Join

Description

public parallel\Runtime::close(): void

Shall request that the runtime shutsdown.

Note:

Tasks scheduled for execution will be executed before the shutdown occurs.

Exceptions

Avertissement

Shall throw parallel\Runtime\Error\Closed if Runtime was already closed.


Runtime Join

  • « parallel\Runtime::close
  • parallel\Future »
  • PHP Manual
  • parallel\Runtime
  • Runtime Join

parallel\Runtime::kill

(0.8.0)

parallel\Runtime::kill — Runtime Join

Description

public parallel\Runtime::kill(): void

Shall attempt to force the runtime to shutdown.

Note:

Tasks scheduled for execution will not be executed, the currently running task shall be interrupted.

Avertissement

Internal function calls in progress cannot be interrupted.

Exceptions

Avertissement

Shall throw parallel\Runtime\Error\Closed if Runtime was closed.


The parallel\Future class

(0.8.0)

Futures

A Future represents the return value or uncaught exception from a task, and exposes an API for cancellation.

Exemple #1 Example showing Future as return value

<?php
$runtime = new \parallel\Runtime;
$future = $runtime->run(function(){
return "World";
});
printf("Hello %s\n", $future->value());
?>

Résultat de l'exemple ci-dessus est similaire à :

Hello World

The behaviour of a future also allows it to be used as a simple synchronization point even where the task does not return a value explicitly.

Exemple #2 Example showing Future as synchronization point

<?php
$runtime = new \parallel\Runtime;
$future = $runtime->run(function(){
echo "in child ";
for ($i = 0; $i < 500; $i++) {
if ($i % 10 == 0) {
echo ".";
}
}
echo " leaving child";
});

$future->value();
echo "\nparent continues\n";
?>

Résultat de l'exemple ci-dessus est similaire à :

in child .................................................. leaving child
parent continues

Synopsis de la classe

final class parallel\Future {
/* Resolution */
public value(): mixed
/* State */
public cancelled(): bool
public done(): bool
/* Cancellation */
public cancel(): bool
}

Sommaire

  • parallel\Future::cancel — Cancellation
  • parallel\Future::cancelled — State Detection
  • parallel\Future::done — State Detection
  • parallel\Future::value — Resolution


Cancellation

  • « parallel\Future
  • parallel\Future::cancelled »
  • PHP Manual
  • parallel\Future
  • Cancellation

parallel\Future::cancel

(0.9.0)

parallel\Future::cancel — Cancellation

Description

public parallel\Future::cancel(): bool

Shall try to cancel the task

Note:

If task is running, it will be interrupted.

Avertissement

Internal function calls in progress cannot be interrupted.

Exceptions

Avertissement

Shall throw parallel\Future\Error\Killed if parallel\Runtime executing task was killed.

Avertissement

Shall throw parallel\Future\Error\Cancelled if task was already cancelled.


State Detection

  • « parallel\Future::cancel
  • parallel\Future::done »
  • PHP Manual
  • parallel\Future
  • State Detection

parallel\Future::cancelled

(0.9.0)

parallel\Future::cancelled — State Detection

Description

public parallel\Future::cancelled(): bool

Shall indicate if the task was cancelled


State Detection

  • « parallel\Future::cancelled
  • parallel\Future::value »
  • PHP Manual
  • parallel\Future
  • State Detection

parallel\Future::done

(0.8.0)

parallel\Future::done — State Detection

Description

public parallel\Future::done(): bool

Shall indicate if the task is completed


Resolution

  • « parallel\Future::done
  • parallel\Channel »
  • PHP Manual
  • parallel\Future
  • Resolution

parallel\Future::value

(0.8.0)

parallel\Future::value — Resolution

Description

public parallel\Future::value(): mixed

Shall return (and if necessary wait for) return from task

Exceptions

Avertissement

Shall throw parallel\Future\Error if waiting failed (internal error).

Avertissement

Shall throw parallel\Future\Error\Killed if parallel\Runtime executing task was killed.

Avertissement

Shall throw parallel\Future\Error\Cancelled if task was cancelled.

Avertissement

Shall throw parallel\Future\Error\Foreign if task raised an unrecognized uncaught exception.

Avertissement

Shall rethrow Throwable uncaught in task


The parallel\Channel class

(0.9.0)

Unbuffered Channels

An unbuffered channel will block on calls to parallel\Channel::send() until there is a receiver, and block on calls to parallel\Channel::recv() until there is a sender. This means an unbuffered channel is not only a way to share data among tasks but also a simple method of synchronization.

An unbuffered channel is the fastest way to share data among tasks, requiring the least copying.

Buffered Channels

A buffered channel will not block on calls to parallel\Channel::send() until capacity is reached, calls to parallel\Channel::recv() will block until there is data in the buffer.

Closures over Channels

A powerful feature of parallel channels is that they allow the exchange of closures between tasks (and runtimes).

When a closure is sent over a channel the closure is buffered, it doesn't change the buffering of the channel transmitting the closure, but it does effect the static scope inside the closure: The same closure sent to different runtimes, or the same runtime, will not share their static scope.

This means that whenever a closure is executed that was transmitted by a channel, static state will be as it was when the closure was buffered.

Anonymous Channels

The anonymous channel constructor allows the programmer to avoid assigning names to every channel: parallel will generate a unique name for anonymous channels.

Synopsis de la classe

final class parallel\Channel {
/* Anonymous Constructor */
public __construct()
public __construct(int $capacity)
/* Access */
public make(string $name): Channel
public make(string $name, int $capacity): Channel
public open(string $name): Channel
/* Sharing */
public recv(): mixed
public send(mixed $value): void
/* Closing */
public close(): void
/* Constant for Infinitely Buffered */
const Infinite;
}

Sommaire

  • parallel\Channel::__construct — Channel Construction
  • parallel\Channel::make — Access
  • parallel\Channel::open — Access
  • parallel\Channel::recv — Sharing
  • parallel\Channel::send — Sharing
  • parallel\Channel::close — Closing


Channel Construction

  • « parallel\Channel
  • parallel\Channel::make »
  • PHP Manual
  • parallel\Channel
  • Channel Construction

parallel\Channel::__construct

(1.1.0)

parallel\Channel::__construct — Channel Construction

Description

public parallel\Channel::__construct()

Shall make an anonymous unbuffered channel

public parallel\Channel::__construct(int $capacity)

Shall make an anonymous buffered channel with the given capacity

Liste de paramètres

capacity

May be Channel::Infinite or a positive integer


Access

  • « parallel\Channel::__construct
  • parallel\Channel::open »
  • PHP Manual
  • parallel\Channel
  • Access

parallel\Channel::make

(0.9.0)

parallel\Channel::make — Access

Description

public parallel\Channel::make(string $name): Channel

Shall make an unbuffered channel with the given name

public parallel\Channel::make(string $name, int $capacity): Channel

Shall make a buffered channel with the given name and capacity

Liste de paramètres

name

The name of the channel.

capacity

May be Channel::Infinite or a positive integer

Exceptions

Avertissement

Shall throw parallel\Channel\Error\Existence if channel already exists.


Access

  • « parallel\Channel::make
  • parallel\Channel::recv »
  • PHP Manual
  • parallel\Channel
  • Access

parallel\Channel::open

(0.9.0)

parallel\Channel::open — Access

Description

public parallel\Channel::open(string $name): Channel

Shall open the channel with the given name

Exceptions

Avertissement

Shall throw parallel\Channel\Error\Existence if channel does not exist.


Sharing

  • « parallel\Channel::open
  • parallel\Channel::send »
  • PHP Manual
  • parallel\Channel
  • Sharing

parallel\Channel::recv

(0.9.0)

parallel\Channel::recv — Sharing

Description

public parallel\Channel::recv(): mixed

Shall recv a value from this channel

Exceptions

Avertissement

Shall throw parallel\Channel\Error\Closed if channel is closed.


Sharing

  • « parallel\Channel::recv
  • parallel\Channel::close »
  • PHP Manual
  • parallel\Channel
  • Sharing

parallel\Channel::send

(0.9.0)

parallel\Channel::send — Sharing

Description

public parallel\Channel::send(mixed $value): void

Shall send the given value on this channel

Exceptions

Avertissement

Shall throw parallel\Channel\Error\Closed if channel is closed.

Avertissement

Shall throw parallel\Channel\Error\IllegalValue if value is illegal.


Closing

  • « parallel\Channel::send
  • parallel\Events »
  • PHP Manual
  • parallel\Channel
  • Closing

parallel\Channel::close

(0.9.0)

parallel\Channel::close — Closing

Description

public parallel\Channel::close(): void

Shall close this channel

Exceptions

Avertissement

Shall throw parallel\Channel\Error\Closed if channel is closed.


The parallel\Events class

(0.9.0)

The Event Loop

The Event loop monitors the state of sets of futures and or channels (targets) in order to perform read (parallel\Future::value(), parallel\Channel::recv()) and write (parallel\Channel::send()) operations as the targets become available and the operations may be performed without blocking the event loop.

Synopsis de la classe

final class parallel\Events implements Countable, Traversable {
/* Input */
public setInput(Input $input): void
/* Targets */
public addChannel(parallel\Channel $channel): void
public addFuture(string $name, parallel\Future $future): void
public remove(string $target): void
/* Behaviour */
public setBlocking(bool $blocking): void
public setTimeout(int $timeout): void
/* Polling */
public poll(): ?parallel\Events\Event
}

Sommaire

  • parallel\Events::setBlocking — Behaviour
  • parallel\Events::setTimeout — Behaviour
  • parallel\Events::setInput — Input
  • parallel\Events::addChannel — Targets
  • parallel\Events::addFuture — Targets
  • parallel\Events::remove — Targets
  • parallel\Events::poll — Polling


Behaviour

  • « parallel\Events
  • parallel\Events::setTimeout »
  • PHP Manual
  • parallel\Events
  • Behaviour

parallel\Events::setBlocking

(0.9.0)

parallel\Events::setBlocking — Behaviour

Description

By default when events are polled for, blocking will occur (at the PHP level) until the first event can be returned: Setting blocking mode to false will cause poll to return control if the first target polled is not ready.

This differs from setting a timeout of 0 with parallel\Events::setTimeout(), since a timeout of 0, while allowed, will cause an exception to be raised, which may be extremely slow or wasteful if what is really desired is non-blocking behaviour.

A non-blocking loop effects the return value of parallel\Events::poll(), such that it may be null before all events have been processed.

public parallel\Events::setBlocking(bool $blocking): void

Shall set blocking mode

Exceptions

Avertissement

Shall throw parallel\Events\Error if loop has timeout set.


Behaviour

  • « parallel\Events::setBlocking
  • parallel\Events::setInput »
  • PHP Manual
  • parallel\Events
  • Behaviour

parallel\Events::setTimeout

(0.9.0)

parallel\Events::setTimeout — Behaviour

Description

By default when events are polled for, blocking will occur (at the PHP level) until the first event can be returned: Setting the timeout causes an exception to be thrown when the timeout is reached.

This differs from setting blocking mode to false with parallel\Events::setBlocking(), which will not cause an exception to be thrown.

public parallel\Events::setTimeout(int $timeout): void

Shall set the timeout in microseconds

Exceptions

Avertissement

Shall throw parallel\Events\Error if loop is non-blocking.


Input

  • « parallel\Events::setTimeout
  • parallel\Events::addChannel »
  • PHP Manual
  • parallel\Events
  • Input

parallel\Events::setInput

(0.9.0)

parallel\Events::setInput — Input

Description

public parallel\Events::setInput(Input $input): void

Shall set input for this event loop


Targets

  • « parallel\Events::setInput
  • parallel\Events::addFuture »
  • PHP Manual
  • parallel\Events
  • Targets

parallel\Events::addChannel

(0.9.0)

parallel\Events::addChannel — Targets

Description

public parallel\Events::addChannel(parallel\Channel $channel): void

Shall watch for events on the given channel

Exceptions

Avertissement

Shall throw parallel\Events\Error\Existence if channel was already added.


Targets

  • « parallel\Events::addChannel
  • parallel\Events::remove »
  • PHP Manual
  • parallel\Events
  • Targets

parallel\Events::addFuture

(0.9.0)

parallel\Events::addFuture — Targets

Description

public parallel\Events::addFuture(string $name, parallel\Future $future): void

Shall watch for events on the given future

Exceptions

Avertissement

Shall throw parallel\Events\Error\Existence if target with the given name was already added.


Targets

  • « parallel\Events::addFuture
  • parallel\Events::poll »
  • PHP Manual
  • parallel\Events
  • Targets

parallel\Events::remove

(0.9.0)

parallel\Events::remove — Targets

Description

public parallel\Events::remove(string $target): void

Shall remove the given target

Exceptions

Avertissement

Shall throw parallel\Events\Error\Existence if target with the given name was not found.


Polling

  • « parallel\Events::remove
  • parallel\Events\Input »
  • PHP Manual
  • parallel\Events
  • Polling

parallel\Events::poll

(0.9.0)

parallel\Events::poll — Polling

Description

public parallel\Events::poll(): ?parallel\Events\Event

Shall poll for the next event

Valeurs de retour

Should there be no targets remaining, null shall be returned

Should this be a non-blocking loop, and blocking would occur, null shall be returned

Otherwise, the parallel\Events\Event returned describes the event.

Exceptions

Avertissement

Shall throw parallel\Events\Error\Timeout if timeout is used and reached.


The parallel\Events\Input class

(0.9.0)

Events Input

An Input object is a container for data that the parallel\Events object will write to parallel\Channel objects as they become available. Multiple event loops may share an Input container - parallel does not verify the contents of the container when it is set as the input for a parallel\Events object.

Note:

When a parallel\Events object performs a write, the target is removed from the input object as if parallel\Events\Input::remove() were called.

Synopsis de la classe

final class parallel\Events\Input {
public add(string $target, mixed $value): void
public remove(string $target): void
public clear(): void
}

Sommaire

  • parallel\Events\Input::add — Inputs
  • parallel\Events\Input::clear — Inputs
  • parallel\Events\Input::remove — Inputs


Inputs

  • « parallel\Events\Input
  • parallel\Events\Input::clear »
  • PHP Manual
  • parallel\Events\Input
  • Inputs

parallel\Events\Input::add

(0.9.0)

parallel\Events\Input::add — Inputs

Description

public parallel\Events\Input::add(string $target, mixed $value): void

Shall set input for the given target

Exceptions

Avertissement

Shall throw parallel\Events\Input\Error\Existence if input for target already exists.

Avertissement

Shall throw parallel\Events\Input\Error\IllegalValue if value is illegal (objet, null).


Inputs

  • « parallel\Events\Input::add
  • parallel\Events\Input::remove »
  • PHP Manual
  • parallel\Events\Input
  • Inputs

parallel\Events\Input::clear

(0.9.0)

parallel\Events\Input::clear — Inputs

Description

public parallel\Events\Input::clear(): void

Shall remove input for all targets


Inputs

  • « parallel\Events\Input::clear
  • parallel\Events\Event »
  • PHP Manual
  • parallel\Events\Input
  • Inputs

parallel\Events\Input::remove

(0.9.0)

parallel\Events\Input::remove — Inputs

Description

public parallel\Events\Input::remove(string $target): void

Shall remove input for the given target

Exceptions

Avertissement

Shall throw parallel\Events\Input\Error\Existence if input for target does not exist.


The parallel\Events\Event class

(0.9.0)

Event Objects

When an Event is returned, Event::$object shall be removed from the loop that returned it, should the event be a write event the Input for Event::$source shall also be removed.

Synopsis de la classe

final class parallel\Events\Event {
/* Shall be one of Event\Type constants */
public int $type;
/* Shall be the source of the event (target name) */
public string $source;
/* Shall be either Future or Channel */
public object $object;
/* Shall be set for Read/Error events */
public $value;
}


La classe parallel\Events\Event\Type

(0.9.0)

Synopsis de la classe

final class parallel\Events\Event\Type {
/* Event::$object was read into Event::$value */
const Read;
/* Input for Event::$source written to Event::$object */
const Write;
/* Event::$object (Channel) was closed */
const Close;
/* Event::$object (Future) was cancelled */
const Cancel;
/* Runtime executing Event::$object (Future) was killed */
const Kill;
/* Event::$object (Future) raised error */
const Error;
}


The parallel\Sync class

(1.1.0)

Low Level Synchronization

The parallel\Sync class provides access to low level synchronization primitives, mutex, condition variables, and allows the implementation of semaphores.

Synchronization for most applications is much better implemented using channels, however, in some cases authors of low level code may find it useful to be able to access these lower level mechanisms.

Synopsis de la classe

final class parallel\Sync {
/* Constructor */
public __construct()
public __construct(scalar $value)
/* Access */
public get(): scalar
public set(scalar $value)
/* Synchronization */
public wait()
public notify(bool $all = ?)
public __invoke(callable $critical)
}

Sommaire

  • parallel\Sync::__construct — Construction
  • parallel\Sync::get — Access
  • parallel\Sync::set — Access
  • parallel\Sync::wait — Synchronization
  • parallel\Sync::notify — Synchronization
  • parallel\Sync::__invoke — Synchronization


Construction

  • « parallel\Sync
  • parallel\Sync::get »
  • PHP Manual
  • parallel\Sync
  • Construction

parallel\Sync::__construct

(1.1.0)

parallel\Sync::__construct — Construction

Description

public parallel\Sync::__construct()

Shall construct a new synchronization object with no value

public parallel\Sync::__construct(scalar $value)

Shall construct a new synchronization object containing the given scalar value

Exceptions

Avertissement

Shall throw parallel\Sync\Error\IllegalValue if value is non-scalar.


Access

  • « parallel\Sync::__construct
  • parallel\Sync::set »
  • PHP Manual
  • parallel\Sync
  • Access

parallel\Sync::get

(1.1.0)

parallel\Sync::get — Access

Description

public parallel\Sync::get(): scalar

Shall atomically return the synchronization objects value


Access

  • « parallel\Sync::get
  • parallel\Sync::wait »
  • PHP Manual
  • parallel\Sync
  • Access

parallel\Sync::set

(1.1.0)

parallel\Sync::set — Access

Description

public parallel\Sync::set(scalar $value)

Shall atomically set the value of the synchronization object

Exceptions

Avertissement

Shall throw parallel\Sync\Error\IllegalValue if value is non-scalar.


Synchronization

  • « parallel\Sync::set
  • parallel\Sync::notify »
  • PHP Manual
  • parallel\Sync
  • Synchronization

parallel\Sync::wait

(1.1.0)

parallel\Sync::wait — Synchronization

Description

public parallel\Sync::wait()

Shall wait for notification on this synchronization object


Synchronization

  • « parallel\Sync::wait
  • parallel\Sync::__invoke »
  • PHP Manual
  • parallel\Sync
  • Synchronization

parallel\Sync::notify

(1.1.0)

parallel\Sync::notify — Synchronization

Description

public parallel\Sync::notify(bool $all = ?)

Shall notify one (by default) or all threads waiting on the synchronization object


Synchronization

  • « parallel\Sync::notify
  • pthreads »
  • PHP Manual
  • parallel\Sync
  • Synchronization

parallel\Sync::__invoke

(1.1.0)

parallel\Sync::__invoke — Synchronization

Description

public parallel\Sync::__invoke(callable $critical)

Shall exclusively enter into the critical code


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::isRunning — Détection de statut
    • Threaded::isTerminated — Détection de statut
    • Threaded::merge — Manipulation
    • Threaded::notify — Synchronisation
    • Threaded::notifyOne — Synchronization
    • Threaded::pop — Manipulation
    • Threaded::run — Exécution
    • Threaded::shift — Manipulation
    • Threaded::synchronized — Synchronisation
    • Threaded::wait — Synchronisation
  • Thread — La classe Thread
    • Thread::getCreatorId — Identification
    • Thread::getCurrentThread — Identification
    • Thread::getCurrentThreadId — Identification
    • Thread::getThreadId — Identification
    • Thread::isJoined — Détection de statut
    • Thread::isStarted — Détection de statut
    • Thread::join — Synchronisation
    • Thread::start — Exécution
  • Worker — La classe Worker
    • Worker::collect — Collect references to completed tasks
    • Worker::getStacked — Obtient la taille de pile restante
    • Worker::isShutdown — Détection de statut
    • Worker::shutdown — Arrêter le worker
    • Worker::stack — Empile la tâche
    • Worker::unstack — Dépile une tâche
  • Collectable — L'interface Collectable
    • Collectable::isGarbage — Détermine si un objet a été marqué comme obsolète
  • 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 une tâche à un worker spécifique pour exécution
  • Volatile — The Volatile class


Introduction

pthreads est une API orientée objet qui apporte tous les outils nécessaires pour le multithreading en PHP. Les applications PHP peuvent créer, lire, écrire, exécuter et synchroniser des Threads, des Workers, et des objets Threaded.

Avertissement

Cette extension est considéré non maintenue et morte.

Astuce

Envisager d'utiliser parallel à la place.

Avertissement

L'extension pthreads ne peut pas être utilisée dans un environnement de serveur Web. Le Threading en PHP est donc limité aux applications basées sur CLI uniquement.

Avertissement

pthreads (v3) peut être utilisé uniquement avec PHP 7.2+ à cause d'un mode ZTS dangereux en PHP 7.0 et 7.1.

La classe Threaded constitue la base de la fonctionnalité qui permet à pthreads de fonctionner. Il expose les méthodes de synchronisation et quelques interfaces utiles pour le programmeur.

La classe Thread permet de créer des threads en l'étendant simplement et en implémentant une méthode run. Tous les membres peuvent être écrits et lus par n'importe quel contexte avec une référence au thread. Tout contexte peut également exécuter toutes les méthodes publiques et protégées. Le corps de la méthode run sera exécuté dans un thread séparé lorsque la méthode Thread::start() de l'implémentation est appelée à partir du contexte qui l'a créé. Seul le contexte qui crée un thread peut le démarrer et le rejoindre.

La classe Worker a un état persistant et sera disponible à partir de l'appel à Thread::start() (une méthode héritée) jusqu'à ce que l'objet soit hors de portée, ou soit explicitement arreté (via Worker::shutdown()). Tout contexte avec une référence à l'objet Worker peut empiler des tâches sur le Worker (via Worker::stack()), où ces tâches seront exécutées par le Worker dans un thread séparé. La méthode run d'un objet worker est exécutée avant tout objet de la pile du worker, ce qui permet aux ressources d'être initialisées pour que les objets à exécuter puissent les utiliser.

La classe Pool est utilisée pour créer un groupe de worker pour distribuer des objets Threaded parmi eux. Il est le moyen le plus facile et le plus efficace d'utiliser plusieurs threads dans les applications PHP.

Attention

La classe Pool n'étend pas la classe Threaded, et donc les objets basés sur pool sont considérés comme des objets PHP normaux. En tant que tel, ses instances ne d doivent pas être partagées entre des contextes différents.

La classe Volatile est nouvelle pour pthreads v3. Elle est utilisée pour désigner les propriétés Threaded mutable des classes Threaded (car celles-ci sont désormais immuables par défaut). Elle est également utilisé pour stocker des tableaux PHP dans des contextes Threaded.

La synchronisation est une capacité importante lors du Threading. Tous les objets créés par pthreads ont été construits en synchronisation dans la forme (qui sera familière aux programmeurs Java) de Threaded::wait() et Threaded::notify(). L'appel de Threaded::wait() sur un objet entraînera le contexte à attendre qu'un autre contexte appelle Threaded::notify() sur le même objet. Ce mécanisme permet une synchronisation puissante entre les objets Threaded en PHP.

Attention

Tout objet prévu pour être utilisé dans une partie multithreadé de votre application doit étendre Threaded.

Stockage des données : En règle générale, tous les types de données pouvant être sérialisé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 sérialisation ; 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 sérialisé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 fonctionnalité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-zts, ou sur les systèmes non-Windows antérieurs à PHP 8.0.0, --enable-maintainer-zts).

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 : » https://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 (int)
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 (int)
N'hérite de rien lorsque les nouveaux threads sont démarrés
PTHREADS_INHERIT_INI (int)
Hérite des entrées INI lorsque les nouveaux threads sont démarrés
PTHREADS_INHERIT_CONSTANTS (int)
Hérite des constantes déclarées par l'utilisateur lorsque les nouveaux threads sont démarrés
PTHREADS_INHERIT_CLASSES (int)
Hérite des classes déclarées par l'utilisateur lorsque les nouveaux threads sont démarrés
PTHREADS_INHERIT_FUNCTIONS (int)
Hérite des fonctions déclarées par l'utilisateur lorsque les nouveaux threads sont démarrés
PTHREADS_INHERIT_INCLUDES (int)
L'héritage inclus l'information de fichier lorsque les nouveaux threads sont démarrés
PTHREADS_INHERIT_COMMENTS (int)
Hérite de tous les commentaires lorsque les nouveaux threads sont démarrés
PTHREADS_ALLOW_HEADERS (int)
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

class Threaded implements Collectable, Traversable, Countable, ArrayAccess {
/* Méthodes */
public chunk(int $size, bool $preserve): array
public count(): int
public extend(string $class): bool
public isRunning(): bool
public isTerminated(): bool
public merge(mixed $from, bool $overwrite = ?): bool
public notify(): bool
public notifyOne(): bool
public pop(): bool
public run(): void
public shift(): bool
public synchronized(Closure $block, mixed ...$args): mixed
public wait(int $timeout = ?): bool
}

Sommaire

  • Threaded::chunk — Manipulation
  • Threaded::count — Manipulation
  • Threaded::extend — Manipulation pendant l'exécution
  • Threaded::isRunning — Détection de statut
  • Threaded::isTerminated — Détection de statut
  • Threaded::merge — Manipulation
  • Threaded::notify — Synchronisation
  • Threaded::notifyOne — Synchronization
  • Threaded::pop — Manipulation
  • Threaded::run — Exécution
  • Threaded::shift — Manipulation
  • Threaded::synchronized — Synchronisation
  • Threaded::wait — Synchronisation


Manipulation

  • « Threaded
  • Threaded::count »
  • PHP Manual
  • Threaded
  • Manipulation

Threaded::chunk

(PECL pthreads >= 2.0.0)

Threaded::chunk — Manipulation

Description

public Threaded::chunk(int $size, bool $preserve): array

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 Threaded::count(): int

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::isRunning »
  • PHP Manual
  • Threaded
  • Manipulation pendant l'exécution

Threaded::extend

(PECL pthreads >= 2.0.8)

Threaded::extend — Manipulation pendant l'exécution

Description

public Threaded::extend(string $class): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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)


Détection de statut

  • « Threaded::extend
  • Threaded::isTerminated »
  • PHP Manual
  • Threaded
  • Détection de statut

Threaded::isRunning

(PECL pthreads >= 2.0.0)

Threaded::isRunning — Détection de statut

Description

public Threaded::isRunning(): bool

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::merge »
  • PHP Manual
  • Threaded
  • Détection de statut

Threaded::isTerminated

(PECL pthreads >= 2.0.0)

Threaded::isTerminated — Détection de statut

Description

public Threaded::isTerminated(): bool

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)


Manipulation

  • « Threaded::isTerminated
  • Threaded::notify »
  • PHP Manual
  • Threaded
  • Manipulation

Threaded::merge

(PECL pthreads >= 2.0.0)

Threaded::merge — Manipulation

Description

public Threaded::merge(mixed $from, bool $overwrite = ?): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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::notifyOne »
  • PHP Manual
  • Threaded
  • Synchronisation

Threaded::notify

(PECL pthreads >= 2.0.0)

Threaded::notify — Synchronisation

Description

public Threaded::notify(): bool

Envoi une notification à l'objet référencé

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 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)


Synchronization

  • « Threaded::notify
  • Threaded::pop »
  • PHP Manual
  • Threaded
  • Synchronization

Threaded::notifyOne

(PECL pthreads >= 3.0.0)

Threaded::notifyOne — Synchronization

Description

public Threaded::notifyOne(): bool

Send notification to the referenced object. This unblocks at least one of the blocked threads (as opposed to unblocking all of them, as seen with Threaded::notify()).

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 Notifications and Waiting

<?php
class My extends Thread {
public function run() {
/** cause this thread to wait **/
$this->synchronized(function($thread){
if (!$thread->done)
$thread->wait();
}, $this);
}
}
$my = new My();
$my->start();
/** send notification to the waiting thread **/
$my->synchronized(function($thread){
$thread->done = true;
$thread->notifyOne();
}, $my);
var_dump($my->join());
?>

L'exemple ci-dessus va afficher :

bool(true)


Manipulation

  • « Threaded::notifyOne
  • Threaded::run »
  • PHP Manual
  • Threaded
  • Manipulation

Threaded::pop

(PECL pthreads >= 2.0.0)

Threaded::pop — Manipulation

Description

public Threaded::pop(): bool

Enlève le dernier élément depuis la table des propriétés de l'objet.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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 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 Threaded::shift(): bool

Enlève le premier élément depuis la table de propriétés de l'objet.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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::wait »
  • PHP Manual
  • Threaded
  • Synchronisation

Threaded::synchronized

(PECL pthreads >= 2.0.0)

Threaded::synchronized — Synchronisation

Description

public Threaded::synchronized(Closure $block, mixed ...$args): 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

args

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
  • Thread »
  • PHP Manual
  • Threaded
  • Synchronisation

Threaded::wait

(PECL pthreads >= 2.0.0)

Threaded::wait — Synchronisation

Description

public Threaded::wait(int $timeout = ?): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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

class Thread extends Threaded implements Countable, Traversable, ArrayAccess {
/* Méthodes */
public getCreatorId(): int
public static getCurrentThread(): Thread
public static getCurrentThreadId(): int
public getThreadId(): int
public isJoined(): bool
public isStarted(): bool
public join(): bool
public start(int $options = ?): bool
/* Méthodes héritées */
public Threaded::chunk(int $size, bool $preserve): array
public Threaded::count(): int
public Threaded::extend(string $class): bool
public Threaded::isRunning(): bool
public Threaded::isTerminated(): bool
public Threaded::merge(mixed $from, bool $overwrite = ?): bool
public Threaded::notify(): bool
public Threaded::notifyOne(): bool
public Threaded::pop(): bool
public Threaded::run(): void
public Threaded::shift(): bool
public Threaded::synchronized(Closure $block, mixed ...$args): mixed
public Threaded::wait(int $timeout = ?): bool
}

Sommaire

  • Thread::getCreatorId — Identification
  • Thread::getCurrentThread — Identification
  • Thread::getCurrentThreadId — Identification
  • Thread::getThreadId — Identification
  • Thread::isJoined — Détection de statut
  • Thread::isStarted — Détection de statut
  • Thread::join — Synchronisation
  • Thread::start — Exécution


Identification

  • « Thread
  • Thread::getCurrentThread »
  • PHP Manual
  • Thread
  • Identification

Thread::getCreatorId

(PECL pthreads >= 2.0.0)

Thread::getCreatorId — Identification

Description

public Thread::getCreatorId(): int

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::getCurrentThread(): Thread

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 Thread::getCurrentThreadId(): int

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::isJoined »
  • PHP Manual
  • Thread
  • Identification

Thread::getThreadId

(PECL pthreads >= 2.0.0)

Thread::getThreadId — Identification

Description

public Thread::getThreadId(): int

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


Détection de statut

  • « Thread::getThreadId
  • Thread::isStarted »
  • PHP Manual
  • Thread
  • Détection de statut

Thread::isJoined

(PECL pthreads >= 2.0.0)

Thread::isJoined — Détection de statut

Description

public Thread::isJoined(): bool

Indique si le Thread référencé a été joint.

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 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 Thread::isStarted(): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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::start »
  • PHP Manual
  • Thread
  • Synchronisation

Thread::join

(PECL pthreads >= 2.0.0)

Thread::join — Synchronisation

Description

public Thread::join(): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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
  • Worker »
  • PHP Manual
  • Thread
  • Exécution

Thread::start

(PECL pthreads >= 2.0.0)

Thread::start — Exécution

Description

public Thread::start(int $options = ?): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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.

Synopsis de la classe

class Worker extends Thread implements Traversable, Countable, ArrayAccess {
/* Méthodes */
public collect(Callable $collector = ?): int
public getStacked(): int
public isShutdown(): bool
public shutdown(): bool
public stack(Threaded &$work): int
public unstack(): int
/* Méthodes héritées */
public Thread::getCreatorId(): int
public static Thread::getCurrentThread(): Thread
public static Thread::getCurrentThreadId(): int
public Thread::getThreadId(): int
public Thread::isJoined(): bool
public Thread::isStarted(): bool
public Thread::join(): bool
public Thread::start(int $options = ?): bool
}

Sommaire

  • Worker::collect — Collect references to completed tasks
  • Worker::getStacked — Obtient la taille de pile restante
  • Worker::isShutdown — Détection de statut
  • Worker::shutdown — Arrêter le worker
  • Worker::stack — Empile la tâche
  • Worker::unstack — Dépile une tâche


Collect references to completed tasks

  • « Worker
  • Worker::getStacked »
  • PHP Manual
  • Worker
  • Collect references to completed tasks

Worker::collect

(PECL pthreads >= 3.0.0)

Worker::collect — Collect references to completed tasks

Description

public Worker::collect(Callable $collector = ?): int

Allows the worker to collect references determined to be garbage by the optionally given collector.

Liste de paramètres

collector

A Callable collector that returns a boolean on whether the task can be collected or not. Only in rare cases should a custom collector need to be used.

Valeurs de retour

The number of remaining tasks on the worker's stack to be collected.

Exemples

Exemple #1 A basic example of Worker::collect()

<?php
$worker = new Worker();

echo "There are currently {$worker->collect()} tasks on the stack to be collected\n";

for ($i = 0; $i < 15; ++$i) {
$worker->stack(new class extends Threaded {});
}

echo "There are {$worker->collect()} tasks remaining on the stack to be collected\n";

$worker->start();

while ($worker->collect()); // blocks until all tasks have finished executing

echo "There are now {$worker->collect()} tasks on the stack to be collected\n";

$worker->shutdown();

L'exemple ci-dessus va afficher :

There are currently 0 tasks on the stack to be collected
There are 15 tasks remaining on the stack to be collected
There are now 0 tasks on the stack to be collected


Obtient la taille de pile restante

  • « Worker::collect
  • Worker::isShutdown »
  • PHP Manual
  • Worker
  • Obtient la taille de pile restante

Worker::getStacked

(PECL pthreads >= 2.0.0)

Worker::getStacked — Obtient la taille de pile restante

Description

public Worker::getStacked(): int

Retourne le nombre de tâches laissées sur la pile

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre de tâches actuellement en attente d'être exécutées par le worker

Exemples

Exemple #1 Un exemple de base de Worker::getStacked

<?php
$worker = new Worker();

for ($i = 0; $i < 5; ++$i) {
$worker->stack(new class extends Threaded {});
}

echo "Il y a {$worker->getStacked()} tâches empilées\n";

L'exemple ci-dessus va afficher :

Il y a 5 tâches empilées


Détection de statut

  • « Worker::getStacked
  • Worker::shutdown »
  • PHP Manual
  • Worker
  • Détection de statut

Worker::isShutdown

(PECL pthreads >= 2.0.0)

Worker::isShutdown — Détection de statut

Description

public Worker::isShutdown(): bool

Indique si le Worker a été arrêté ou non.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne si le Worker a été arrêté ou non.

Exemples

Exemple #1 Détecte le statut d'un worker

<?php
$worker = new Worker();
$worker->start();

var_dump($worker->isShutdown());

$worker->shutdown();

var_dump($worker->isShutdown());

L'exemple ci-dessus va afficher :

bool(false)
bool(true)


Arrêter le worker

  • « Worker::isShutdown
  • Worker::stack »
  • PHP Manual
  • Worker
  • Arrêter le worker

Worker::shutdown

(PECL pthreads >= 2.0.0)

Worker::shutdown — Arrêter le worker

Description

public Worker::shutdown(): bool

Arrête le Worker après l'exécution de toutes les tâches empilé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.

Exemples

Exemple #1 Eteint le worker référencé

<?php
$my = new Worker();
$my->start();
/* empiler/exécuter des tâches */
var_dump($my->shutdown());

L'exemple ci-dessus va afficher :

bool(true)


Empile la tâche

  • « Worker::shutdown
  • Worker::unstack »
  • PHP Manual
  • Worker
  • Empile la tâche

Worker::stack

(PECL pthreads >= 2.0.0)

Worker::stack — Empile la tâche

Description

public Worker::stack(Threaded &$work): int

Ajoute la nouvelle tâche à la pile du worker référencé.

Liste de paramètres

work

Objet Threaded à exécuter par le worker.

Valeurs de retour

La nouvelle taille de la pile.

Exemples

Exemple #1 Empilage d'une tâche pour l'exécution sur un worker

<?php
<?php
$worker = new Worker();
$work = new class extends Threaded {};

var_dump($worker->stack($work));

L'exemple ci-dessus va afficher :

int(1)


Dépile une tâche

  • « Worker::stack
  • Collectable »
  • PHP Manual
  • Worker
  • Dépile une tâche

Worker::unstack

(PECL pthreads >= 2.0.0)

Worker::unstack — Dépile une tâche

Description

public Worker::unstack(): int

Supprime la première tâche (la plus ancienne) de la pile.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La nouvelle taille de la pile.

Historique

Version | Description
v3 | Le paramètre pour spécifier la tâche à dépiler a été supprimé. Maintenant, seule la première tâche dans la pile est supprimée.

Exemples

Exemple #1 Supprime l'objet depuis la pile d'attente des Workers

<?php
$my = new Worker();
$work = new class extends Threaded {};

var_dump($my->stack($work));
var_dump($my->unstack());

L'exemple ci-dessus va afficher :

int(1)
int(0)


L'interface Collectable

(PECL pthreads >= 2.0.8)

Introduction

Représente un objet de collecte de données obsolètes.

Synopsis de la classe

interface Collectable {
/* Méthodes */
public isGarbage(): true
}

Sommaire

  • Collectable::isGarbage — Détermine si un objet a été marqué comme obsolète


Détermine si un objet a été marqué comme obsolète

  • « Collectable
  • Pool »
  • 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 Collectable::isGarbage(): true

Peut être appelé dans Pool::collect() pour déterminer si cet objet est obsolète.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.2.0 | Le type de retour est maintenant true, auparavant il était bool.

Voir aussi

  • Pool::collect() - Collecte les références des tâches achevées


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

class Pool {
/* Propriétés */
protected $size;
protected $class;
protected $workers;
protected $ctor;
protected $last;
/* Méthodes */
public __construct(int $size, string $class = ?, array $ctor = ?)
public collect(Callable $collector = ?): int
public resize(int $size): void
public shutdown(): void
public submit(Threaded $task): int
public submitTo(int $worker, Threaded $task): int
}

Propriétés

size

Nombre maximum de Workers que ce pool peut utiliser

class

La classe du Worker

workers

références vers les Workers

ctor

Les arguments pour le constructeur des nouveaux Workers

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 une tâche à un worker spécifique 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 Pool::collect(Callable $collector = ?): int

Permet au pool de collecter des références déterminées pour être collectée par le collecteur donné optionnellement.

Liste de paramètres

collector

Un collecteur pouvant être appelé retournant une valeur booléenne pour déterminer si la tâche peut être collectée ou non. Ce n'est que dans de rares cas qu'un collecteur personnalisé doit être utilisé.

Valeurs de retour

Nombre de tâches restantes dans le pool à collecter.

Historique

Version | Description
v3 | Un entier est maintenant retourné, et le paramètre collector est maintenant facultatif.

Exemples

Exemple #1 Un exemple de base de Pool::collect()

<?php
$pool = new Pool(4);

for ($i = 0; $i < 15; ++$i) {
$pool->submit(new class extends Threaded {});
}

while ($pool->collect()); // blocks until all tasks have finished executing

$pool->shutdown();


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::__construct(int $size, string $class = ?, array $ctor = ?)

Construit un nouveau pool de workers. Les pools créent paresseusement leurs threads, ce qui signifie que les nouveaux threads ne seront générés que lorsqu'ils sont requis pour exécuter des tâches.

Liste de paramètres

size

Le nombre maximal de Workers que ce Pool peut créer

class

La classe pour les nouveaux Workers. Si aucune classe n'est donnée, la classe par défaut est Worker.

ctor

Un tableau d'arguments à passer au constructeur des nouveaux Workers

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 Pool::resize(int $size): void

Redimensionne le Pool.

Liste de paramètres

size

Le nombre maximal de Workers que ce Pool peut créer

Valeurs de retour

Aucune valeur n'est retournée.


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 Pool::shutdown(): void

Arrête tous les workers de ce Pool. Cela se bloquera jusqu'à ce que toutes les tâches soumises aient été exécutées.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Shutting down a pool

<?php
class Task extends Threaded
{
public function run()
{
usleep(500000);
}
}

$pool = new Pool(4);

for ($i = 0; $i < 10; ++$i) {
$pool->submit(new Task());
}

$pool->shutdown(); // blocs jusqu'à ce que toutes les tâches soumises aient terminé l'exécution


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 Pool::submit(Threaded $task): int

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 une tâche à un worker spécifique pour exécution

  • « Pool::submit
  • Volatile »
  • PHP Manual
  • Pool
  • Soumet une tâche à un worker spécifique pour exécution

Pool::submitTo

(PECL pthreads >= 2.0.0)

Pool::submitTo — Soumet une tâche à un worker spécifique pour exécution

Description

public Pool::submitTo(int $worker, Threaded $task): int

Soumet la tâche au worker spécifié dans le Pool. Les travailleurs sont indexés à partir de 0, et n'existera que si le pool a besoin de les créer (puisque les threads sont générés paresseusement).

Liste de paramètres

worker

Le worker où empiler la tâche, indexé à partir de 0.

size

La tâche, pour exécution

Valeurs de retour

L'identifiant du Worker qui a accepté la tâche.

Exemples

Exemple #1 Soumission d'une tâche à un worker spécifique

<?php
class Task extends Threaded {
public function run() {
var_dump(Thread::getCurrentThreadID());
}
}

$pool = new Pool(2);

$pool->submit(new Task());

for ($i = 0; $i < 5; ++$i) {
$pool->submitTo(0, new Task()); // empilez toutes les tâches sur le premier worker
}

$pool->submitTo(1, new Task()); // Impossible d'empiler la tâche sur le deuxième worker car il n'existe pas encore

$pool->shutdown();
?>

L'exemple ci-dessus va afficher :

int(4475011072)
int(4475011072)
int(4475011072)
int(4475011072)
int(4475011072)
int(4475011072)

Fatal error: Uncaught Exception: The selected worker (1) does not exist in %s:%d


The Volatile class

(PECL pthreads >= 3.0.0)

Introduction

The Volatile class is new to pthreads v3. Its introduction is a consequence of the new immutability semantics of Threaded members of Threaded classes. The Volatile class enables for mutability of its Threaded members, and is also used to store PHP arrays in Threaded contexts.

Synopsis de la classe

class Volatile extends Threaded implements Collectable, Traversable {
/* Méthodes héritées */
public Threaded::chunk(int $size, bool $preserve): array
public Threaded::count(): int
public Threaded::extend(string $class): bool
public Threaded::isRunning(): bool
public Threaded::isTerminated(): bool
public Threaded::merge(mixed $from, bool $overwrite = ?): bool
public Threaded::notify(): bool
public Threaded::notifyOne(): bool
public Threaded::pop(): bool
public Threaded::run(): void
public Threaded::shift(): bool
public Threaded::synchronized(Closure $block, mixed ...$args): mixed
public Threaded::wait(int $timeout = ?): bool
}

Exemples

Exemple #1 New immutability semantics of Threaded

<?php

class Task extends Threaded
{
public function __construct()
{
$this->data = new Threaded();

// attempt to overwrite a Threaded property of a Threaded class (invalid)
$this->data = new stdClass();
}
}

var_dump((new Task())->data);

Résultat de l'exemple ci-dessus est similaire à :

RuntimeException: Threaded members previously set to Threaded objects are immutable, cannot overwrite data in %s:%d

Exemple #2 Volatile use-case

<?php

class Task extends Volatile
{
public function __construct()
{
$this->data = new Threaded();

// attempt to overwrite a Threaded property of a Volatile class (valid)
$this->data = new stdClass();
}
}

var_dump((new Task())->data);

Résultat de l'exemple ci-dessus est similaire à :

object(stdClass)#3 (0) {
}


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
  • SysvMessageQueue — La classe SysvMessageQueue
  • SysvSemaphore — La classe SysvSemaphore
  • SysvSharedMemory — La classe SysvSharedMemory


Introduction

Ces module fournissent 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.

Ces module fournissent également 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: Seulement les fonctions de partage de mémoire et ftok() sont disponible sur Windows. Ni les sémaphores, ni les fonctions de message inter-process sont supportées sur cette plateforme.


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 | INI_SYSTEM |
Pour plus de détails sur les modes 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.


Types de ressources

Antérieur à PHP 8.0.0, cette extension définissait les types de ressources sysvmsg queue (System V Message Queue), sysvsem (System V Semaphore) et sysvshm (System V Shared Memory).


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.

MSG_IPC_NOWAIT (int)
MSG_EAGAIN (int)
MSG_ENOMSG (int)
MSG_NOERROR (int)
MSG_EXCEPT (int)


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, PHP 8)

ftok — Convertit un chemin et un identifiant de projet en une clé System V IPC

Description

ftok(string $filename, string $project_id): int

Convertit le paramètre filename 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

filename

Chemin vers un fichier accessible.

project_id

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, PHP 8)

msg_get_queue — Crée ou s'attache à une file de messages

Description

msg_get_queue(int $key, int $permissions = 0666): SysvMessageQueue|false

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 permissions. 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 de la file de messages.

permissions

Permission dans la file. Par défaut, vaut 0666. Si la file de messages existe déjà, le paramètre permissions sera ignoré.

Valeurs de retour

Retourne une ressource qui peut être utilisée pour accéder à la file de messages System V. Retourne une instance de SysvMessageQueue qui peut être utilisée pour accéder à la file de messages System V, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | En cas de succès, cette fonction retourne une instance de SysvMessageQueue désormais; auparavant, une resource était retournée.

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, PHP 8)

msg_queue_exists — Vérifie si une file de messages existe

Description

msg_queue_exists(int $key): bool

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, PHP 8)

msg_receive — Reçoit un message depuis une file de messages

Description

msg_receive(
SysvMessageQueue $queue,
int $desired_message_type,
int &$received_message_type,
int $max_message_size,
mixed &$message,
bool $unserialize = true,
int $flags = 0,
int &$error_code = null
): bool

msg_receive() reçoit le premier message de la file queue, le type est spécifié par desired_message_type.

Liste de paramètres

queue

Descripteur de ressource de file d'attente de messages

desired_message_type

Si desired_message_type vaut 0, le premier message de la file est retourné. Si desired_message_type vaut plus que 0, alors le premier message de ce type sera retourné. Si desired_message_type vaut moins que 0, le premier message de la file ayant un type inférieur ou égal à la valeur absolue de desired_message_type 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.

received_message_type

Le type de message qui a été reçu sera stocké dans ce paramètre.

max_message_size

La taille maximale de message est fixée par max_message_size ; 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é sérialisé avec le même mécanisme que le module de session. Le message sera alors désérialisé, 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 desired_message_type, 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 desired_message_type supérieur à 0, la fonction va lire le premier message qui n'est pas du type demandé par desired_message_type.
MSG_NOERROR | Si le message est plus grand que max_message_size, cette option va tronquer le message à la taille de max_message_size et ne signalera pas d'erreur.

errorcode

Si la fonction échoue, le paramètre optionnel error_code 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.

Historique

Version | Description
8.0.0 | queue attend désormais une SysvMessageQueue; auparavant, une resource était attendue.

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, PHP 8)

msg_remove_queue — Détruit une file de messages

Description

msg_remove_queue(SysvMessageQueue $queue): bool

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

La file des messages

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | queue attend désormais une SysvMessageQueue; auparavant, une resource était attendue.

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, PHP 8)

msg_send — Envoie un message dans une file

Description

msg_send(
SysvMessageQueue $queue,
int $message_type,
string|int|float|bool $message,
bool $serialize = true,
bool $blocking = true,
int &$error_code = null
): bool

msg_send() envoie le message message de type message_type (qui DOIT être plus grand que 0) à la file de messages identifiée par queue.

Liste de paramètres

queue

La file d'attente de messages

message_type

Le type du message (DOIT être plus grand que 0)

message

Le corps du message

Note:

Si serialize est définit à false est fournit, DOIT être du type : chaîne de caractères, entier, nombre décimal ou booléen. Dans d'autres cas un avertissement sera émit.

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 sérialisé 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 error_code la valeur de MSG_EAGAIN, indiquant que vous devriez essayer d'envoyer à nouveau votre message, un peu plus tard.

error_code

Si la fonction échoue, le code d'erreur optionnel sera définit à 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 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 incrémenté de 1 et msg_rtime prend la date et l'heure courante.

Historique

Version | Description
8.0.0 | queue attend désormais une SysvMessageQueue; auparavant, une resource était attendue.

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, PHP 8)

msg_set_queue — Modifie des informations dans la file de messages

Description

msg_set_queue(SysvMessageQueue $queue, array $data): bool

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

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.

Historique

Version | Description
8.0.0 | queue attend désormais une SysvMessageQueue; auparavant, une resource était attendue.

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, PHP 8)

msg_stat_queue — Retourne des informations sur la file de messages

Description

msg_stat_queue(SysvMessageQueue $queue): array|false

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

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.

Returns false on failure.

Historique

Version | Description
8.0.0 | queue attend désormais une SysvMessageQueue; auparavant, une resource était attendue.

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, PHP 8)

sem_acquire — Réserve un sémaphore

Description

sem_acquire(SysvSemaphore $semaphore, bool $non_blocking = false): bool

sem_acquire() se bloque par défaut (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

semaphore

semaphore est une ressource de sémaphore, obtenue de la fonction sem_get().

non_blocking

Spécifie si le processus ne doit pas attendre l'acquisition du sémaphore. Si true, l'appel retournera false immédiatement si un sémaphore ne peut pas être acquis immédiatement.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | semaphore attend désormais une SysvSemaphore; auparavant, une resource était attendue.

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, PHP 8)

sem_get — Retourne un identifiant de sémaphore

Description

sem_get(
int $key,
int $max_acquire = 1,
int $permissions = 0666,
bool $auto_release = true
): SysvSemaphore|false

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.

Si key est 0, un nouvel sémaphore privé est crée pour chaque appel à sem_get().

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.

permissions

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.

Historique

Version | Description
8.0.0 | En cas de succès, cette fonction retourne une instance de SysvSemaphore désormais; auparavant; une resource était retourné.
8.0.0 | Le type de auto_release a été modifié de int à bool.

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, PHP 8)

sem_release — Libère un sémaphore

Description

sem_release(SysvSemaphore $semaphore): bool

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

semaphore

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.

Historique

Version | Description
8.0.0 | semaphore attend désormais une SysvSemaphore; auparavant, une resource était attendue.

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, PHP 8)

sem_remove — Détruit un sémaphore

Description

sem_remove(SysvSemaphore $semaphore): bool

sem_remove() supprime le sémaphore donné.

Après suppression du sémaphore, il n'est plus utilisable.

Liste de paramètres

semaphore

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.

Historique

Version | Description
8.0.0 | semaphore attend désormais une SysvSemaphore; auparavant, une resource était attendue.

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, PHP 8)

shm_attach — Crée ou ouvre un segment de mémoire partagée

Description

shm_attach(int $key, ?int $size = null, int $permissions = 0666): SysvSharedMemory|false

shm_attach() retourne une instance 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 size et avec les permissions permissions

Aux appels suivants avec la même clé key, shm_attach() retournera une nouvelle instance, mais cette instance accédera toujours à la même portion de mémoire partagée. Dans ce cas, size et permissions seront ignorés.

Liste de paramètres

key

Un identifiant numérique de la mémoire partagée

size

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.

permissions

Les permissions (optionnelles). Par défaut, vaut 0666.

Valeurs de retour

Retourne une instance de SysvSharedMemory en cas de succès, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | En cas de succès, cette fonction retourne une instance de SysvSharedMemory désormais; auparavant; une resource était retourné.
8.0.0 | size est désormais nullable.

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, PHP 8)

shm_detach — Libère un segment de mémoire partagée

Description

shm_detach(SysvSharedMemory $shm): bool

shm_detach() libère le segment de mémoire partagée identifié par shm 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

Un segment de mémoire partagée obtenue depuis shm_attach().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | shm attend une instance de SysvSharedMemory désormais; auparavant, une resource était attendue.

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, PHP 8)

shm_get_var — Lit une variable dans la mémoire partagée

Description

shm_get_var(SysvSharedMemory $shm, int $key): mixed

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

Un segment de mémoire partagée obtenue depuis shm_attach().

key

La clé de la variable.

Valeurs de retour

Retourne la variable correspondant à la clé donnée.

Historique

Version | Description
8.0.0 | shm attend une instance de SysvSharedMemory désormais; auparavant, une resource était attendue.

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, PHP 8)

shm_has_var — Vérifie si une variable existe en mémoire partagée

Description

shm_has_var(SysvSharedMemory $shm, int $key): bool

Vérifie si une variable existe en mémoire partagée.

Liste de paramètres

shm

Un segment de mémoire partagée obtenue depuis shm_attach().

key

Le nom de la variable.

Valeurs de retour

Retourne true si la variable existe, et false sinon;

Historique

Version | Description
8.0.0 | shm attend une instance de SysvSharedMemory désormais; auparavant, une resource était attendue.

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, PHP 8)

shm_put_var — Insère ou modifie une variable de la mémoire partagée

Description

shm_put_var(SysvSharedMemory $shm, int $key, mixed $value): bool

shm_put_var() insère ou modifie la variable value avec la clé key dans le segment de mémoire shm.

Des alertes (niveau E_WARNING) seront émises si shm 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

Un segment de mémoire partagée obtenue depuis shm_attach().

key

La clé de la variable.

value

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 sérialisés.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | shm attend une instance de SysvSharedMemory désormais; auparavant, une resource était attendue.

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, PHP 8)

shm_remove_var — Efface une variable de la mémoire partagée

Description

shm_remove_var(SysvSharedMemory $shm, int $key): bool

Efface la variable key de la mémoire partagée shm et libère la mémoire.

Liste de paramètres

shm

Un segment de mémoire partagée obtenue depuis shm_attach().

key

La clé de la variable.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | shm attend une instance de SysvSharedMemory désormais; auparavant, une resource était attendue.

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
  • SysvMessageQueue »
  • PHP Manual
  • Fonctions Sémaphore
  • Supprime un segment de mémoire partagée sous Unix

shm_remove

(PHP 4, PHP 5, PHP 7, PHP 8)

shm_remove — Supprime un segment de mémoire partagée sous Unix

Description

shm_remove(SysvSharedMemory $shm): bool

shm_remove() supprime le segment de mémoire partagée shm. Toutes les données seront supprimées.

Liste de paramètres

shm

Un segment de mémoire partagée obtenue depuis shm_attach().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | shm attend une instance de SysvSharedMemory désormais; auparavant, une resource était attendue.

Voir aussi

  • shm_remove_var() - Efface une variable de la mémoire partagée


La classe SysvMessageQueue

(PHP 8)

Introduction

Une classe complètement opaque qui remplace la ressource sysvmsg queue à partir de PHP 8.0.0.

Synopsis de la classe

final class SysvMessageQueue {
}


La classe SysvSemaphore

(PHP 8)

Introduction

Une classe complètement opaque qui remplace la ressource sysvsem à partir de PHP 8.0.0.

Synopsis de la classe

final class SysvSemaphore {
}


La classe SysvSharedMemory

(PHP 8)

Introduction

Une classe complètement opaque qui remplace la ressource sysvshm à partir de PHP 8.0.0.

Synopsis de la classe

final class SysvSharedMemory {
}


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
  • Shmop — The Shmop class


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).


  • « 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

Antérieur à PHP 8.0.0 cette extension définit le type de ressource shmop qui est un gestionnaire pour un bloc de mémoire partagé.


  • « 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, PHP 8)

shmop_close — Ferme un bloc de mémoire partagée

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

shmop_close(Shmop $shmop): void

Note:

Cette fonction n'a aucun effet. Antérieur à PHP 8.0.0, cette fonction était utilisé pour fermer une ressource.

shmop_close() sert à fermer un bloc de mémoire partagée.

Liste de paramètres

shmop

La ressource de mémoire partagée créé par shmop_open().

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version | Description
8.0.0 | shmop attend une instance de Shmop désormais; auparavant une resource était attendu.

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, PHP 8)

shmop_delete — Détruit un bloc de mémoire partagée

Description

shmop_delete(Shmop $shmop): bool

shmop_delete() sert à détruire un bloc de mémoire partagée.

Liste de paramètres

shmop

La ressource 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.

Historique

Version | Description
8.0.0 | shmop attend une instance de Shmop désormais; auparavant une resource était attendu.

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, PHP 8)

shmop_open — Crée ou ouvre un bloc de mémoire partagée

Description

shmop_open(
int $key,
string $mode,
int $permissions,
int $size
): Shmop|false

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.

mode

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.

permissions

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 une instance de Shmop que vous pouvez utiliser pour accéder à la mémoire que vous venez de créer. false sera retourné en cas d'échec.

Erreurs / Exceptions

Si mode est invalide, ou si size est inférieur ou égal à zéro, une ValueError est levée. Dans d'autres cas d'échec, un E_WARNING est émis.

Historique

Version | Description
8.0.0 | shmop attend une instance de Shmop désormais; auparavant une resource était attendu.
8.0.0 | Si mode est invalide, ou si size est inférieur ou égal à zéro, une ValueError est levée ; auparavant, un E_WARNING était émis à la place, et la fonction retournait false.

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, PHP 8)

shmop_read — Lit des données à partir d'un bloc

Description

shmop_read(Shmop $shmop, int $offset, int $size): string

shmop_read() lit une chaîne dans un bloc de mémoire partagée.

Liste de paramètres

shmop

L'identifiant du bloc mémoire partagé, créé par la fonction shmop_open()

offset

Position depuis laquelle on doit commencer à lire; doit être supérieur ou égal à zéro et inférieur ou égal à la taille réelle du segment de mémoire partagée.

size

Le nombre d'octets à lire; doit être supérieur ou égal à zéro, et la somme de offset et size doit être inférieure ou égale à la taille réelle du segment de mémoire partagée. 0 lit shmop_size($shmid) - $start octets.

Valeurs de retour

Retourne les données ou false si une erreur survient.

Erreurs / Exceptions

Si offset ou size sont hors de l'intervalle, une ValueError est lancé.

Historique

Version | Description
8.0.0 | shmop attend une instance de Shmop désormais; auparavant une resource était attendu.
8.0.0 | Si offset ou size sont hors limite, une ValueError est lancée ; auparavant, une E_WARNING était émise et false était retourné,

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, PHP 8)

shmop_size — Lire la taille du bloc de mémoire partagée

Description

shmop_size(Shmop $shmop): int

shmop_size() sert à connaître la taille en octets d'un bloc de mémoire partagée.

Liste de paramètres

shmop

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.

Historique

Version | Description
8.0.0 | shmop attend une instance de Shmop désormais; auparavant une resource était attendu.

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
  • Shmop »
  • 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, PHP 8)

shmop_write — Écrire dans un bloc de mémoire partagée

Description

shmop_write(Shmop $shmop, string $data, int $offset): int

shmop_write() écrit une chaîne dans un bloc de mémoire partagée.

Liste de paramètres

shmop

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. L'offset doit être supérieur ou égal à zéro et inférieur ou égal à la taille réelle du segment de mémoire partagée.

Valeurs de retour

La taille des données écrites.

Erreurs / Exceptions

Si offset est hors limite, ou si un segment de mémoire partagée en lecture seule doit être écrit, une ValueError est levée.

Historique

Version | Description
8.0.0 | Antérieur à PHP 8.0.0, false était retourné en cas d'échec.
8.0.0 | shmop attend une instance de Shmop désormais; auparavant une resource était attendu.

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


The Shmop class

(PHP 8)

Introduction

A fully opaque class which replaces shmop resources as of PHP 8.0.0.

Synopsis de la classe

final class Shmop {
}


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
  • SyncSharedMemory — The SyncSharedMemory class
    • SyncSharedMemory::__construct — Constructs a new SyncSharedMemory object
    • SyncSharedMemory::first — Check to see if the object is the first instance system-wide of named shared memory
    • SyncSharedMemory::read — Copy data from named shared memory
    • SyncSharedMemory::size — Returns the size of the named shared memory
    • SyncSharedMemory::write — Copy data to named shared memory


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, les objets de lecture-écriture et la mémoire partagée 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 de la mémoire partagée(shm_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 : » https://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

class SyncMutex {
/* Méthodes */
public __construct(string $name = ?)
public lock(int $wait = -1): bool
public unlock(bool $all = false): bool
}

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.

Erreurs / Exceptions

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 SyncMutex::lock(int $wait = -1): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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 SyncMutex::unlock(bool $all = false): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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

class SyncSemaphore {
/* Méthodes */
public __construct(string $name = ?, int $initialval = 1, bool $autounlock = true)
public lock(int $wait = -1): bool
public unlock(int &$prevcount = ?): bool
}

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 = ?, int $initialval = 1, bool $autounlock = true)

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.

Erreurs / Exceptions

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 SyncSemaphore::lock(int $wait = -1): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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 SyncSemaphore::unlock(int &$prevcount = ?): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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();
?>

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

class SyncEvent {
/* Méthodes */
public __construct(string $name = ?, bool $manual = false, bool $prefire = false)
public fire(): bool
public reset(): bool
public wait(int $wait = -1): bool
}

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 = false, bool $prefire = false)

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é.

prefire

Spécifie s'il faut ou non pré-envoyer (le signal) à l'objet event.

Note:

N'a d'impact que si l'appel au processus/thread est le premier à créer l'objet.

Valeurs de retour

Le nouvel objet SyncEvent.

Erreurs / Exceptions

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();
?>

Historique

Version | Description
PECL sync 1.1.0 | Ajout du paramètre prefire.

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 SyncEvent::fire(): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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 SyncEvent::reset(): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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 SyncEvent::wait(int $wait = -1): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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

class SyncReaderWriter {
/* Méthodes */
public __construct(string $name = ?, int $autounlock = 1)
public readlock(int $wait = -1): bool
public readunlock(): bool
public writelock(int $wait = -1): bool
public writeunlock(): bool
}

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 = ?, int $autounlock = 1)

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.

Note: Sous Windows, name ne doit pas contenir de barres obliques inverses.

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.

Erreurs / Exceptions

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 SyncReaderWriter::readlock(int $wait = -1): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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 SyncReaderWriter::readunlock(): bool

Libère un verrou de lecture sur un objet SyncReaderWriter.

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 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 SyncReaderWriter::writelock(int $wait = -1): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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
  • SyncSharedMemory »
  • 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 SyncReaderWriter::writeunlock(): bool

Libère un verrou d'écriture sur un objet SyncReaderWriter.

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 SyncReaderWriter::writeunlock()

<?php
$readwrite = new SyncReaderWriter("FileCacheLock");
$readwrite->writelock();
/* ... */
$readwrite->writeunlock();
?>

Voir aussi

  • SyncReaderWriter::writelock() - Obtiens un verrou d'écriture exclusif


The SyncSharedMemory class

(PECL sync >= 1.1.0)

Introduction

A cross-platform, native, consistent implementation of named shared memory objects.

Shared memory lets two separate processes communicate without the need for complex pipes or sockets. There are several integer-based shared memory implementations for PHP. Named shared memory is an alternative.

Synchronization objects (e.g. SyncMutex) are still required to protect most uses of shared memory.

Synopsis de la classe

class SyncSharedMemory {
/* Méthodes */
public __construct(string $name, int $size)
public first(): bool
public read(int $start = 0, int $length = ?)
public size(): int
public write(string $string = ?, int $start = 0)
}

Sommaire

  • SyncSharedMemory::__construct — Constructs a new SyncSharedMemory object
  • SyncSharedMemory::first — Check to see if the object is the first instance system-wide of named shared memory
  • SyncSharedMemory::read — Copy data from named shared memory
  • SyncSharedMemory::size — Returns the size of the named shared memory
  • SyncSharedMemory::write — Copy data to named shared memory


Constructs a new SyncSharedMemory object

  • « SyncSharedMemory
  • SyncSharedMemory::first »
  • PHP Manual
  • SyncSharedMemory
  • Constructs a new SyncSharedMemory object

SyncSharedMemory::__construct

(PECL sync >= 1.1.0)

SyncSharedMemory::__construct — Constructs a new SyncSharedMemory object

Description

public SyncSharedMemory::__construct(string $name, int $size)

Constructs a named shared memory object.

Liste de paramètres

name

The name of the shared memory object.

Note:

If the name already exists, it must be able to be opened by the current user that the process is running as or an exception will be thrown with a meaningless error message.

size

The size, in bytes, of shared memory to reserve.

Note:

The amount of memory cannot be resized later. Request sufficient storage up front.

Valeurs de retour

The new SyncSharedMemory object.

Erreurs / Exceptions

An exception is thrown if the shared memory object cannot be created or opened.

Exemples

Exemple #1 SyncSharedMemory::__construct() example

<?php
// You will probably need to protect shared memory with other synchronization objects.
// Shared memory goes away when the last reference to it disappears.
$mem = new SyncSharedMemory("AppReportName", 1024);
if ($mem->first())
{
// Do first time initialization work here.
}

$result = $mem->write(json_encode(array("name" => "my_report.txt")));
?>

Voir aussi

  • SyncSharedMemory::first() - Check to see if the object is the first instance system-wide of named shared memory
  • SyncSharedMemory::size() - Returns the size of the named shared memory
  • SyncSharedMemory::write() - Copy data to named shared memory
  • SyncSharedMemory::read() - Copy data from named shared memory


Check to see if the object is the first instance system-wide of named shared memory

  • « SyncSharedMemory::__construct
  • SyncSharedMemory::read »
  • PHP Manual
  • SyncSharedMemory
  • Check to see if the object is the first instance system-wide of named shared memory

SyncSharedMemory::first

(PECL sync >= 1.1.0)

SyncSharedMemory::first — Check to see if the object is the first instance system-wide of named shared memory

Description

public SyncSharedMemory::first(): bool

Retrieves the system-wide first instance status of a SyncSharedMemory object.

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 SyncSharedMemory::first() example

<?php
$mem = new SyncSharedMemory("AppReportName", 1024);
if ($mem->first())
{
// Do first time initialization work here.
}

var_dump($mem->first());

$mem2 = new SyncSharedMemory("AppReportName", 1024);

var_dump($mem2->first());
?>

Résultat de l'exemple ci-dessus est similaire à :

bool(true)
bool(false)

Voir aussi

  • SyncSharedMemory::write() - Copy data to named shared memory
  • SyncSharedMemory::read() - Copy data from named shared memory


Copy data from named shared memory

  • « SyncSharedMemory::first
  • SyncSharedMemory::size »
  • PHP Manual
  • SyncSharedMemory
  • Copy data from named shared memory

SyncSharedMemory::read

(PECL sync >= 1.1.0)

SyncSharedMemory::read — Copy data from named shared memory

Description

public SyncSharedMemory::read(int $start = 0, int $length = ?)

Copies data from named shared memory.

Liste de paramètres

start

The start/offset, in bytes, to begin reading.

Note:

If the value is negative, the starting position will begin at the specified number of bytes from the end of the shared memory segment.

length

The number of bytes to read.

Note:

If unspecified, reading will stop at the end of the shared memory segment.

If the value is negative, reading will stop the specified number of bytes from the end of the shared memory segment.

Valeurs de retour

A string containing the data read from shared memory.

Exemples

Exemple #1 SyncSharedMemory::__construct() example

<?php
// You will probably need to protect shared memory with other synchronization objects.
// Shared memory goes away when the last reference to it disappears.
$mem = new SyncSharedMemory("AppReportName", 1024);
if ($mem->first())
{
// Do first time initialization work here.
}

$result = $mem->write("report.txt");

$result = $mem->read(3, -4);
var_dump($result);
?>

Résultat de l'exemple ci-dessus est similaire à :

string(3) "ort"

Voir aussi

  • SyncSharedMemory::__construct() - Constructs a new SyncSharedMemory object
  • SyncSharedMemory::first() - Check to see if the object is the first instance system-wide of named shared memory
  • SyncSharedMemory::write() - Copy data to named shared memory
  • SyncSharedMemory::read()


Returns the size of the named shared memory

  • « SyncSharedMemory::read
  • SyncSharedMemory::write »
  • PHP Manual
  • SyncSharedMemory
  • Returns the size of the named shared memory

SyncSharedMemory::size

(PECL sync >= 1.1.0)

SyncSharedMemory::size — Returns the size of the named shared memory

Description

public SyncSharedMemory::size(): int

Retrieves the shared memory size of a SyncSharedMemory object.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

An integer containing the size of the shared memory. This will be the same size that was passed to the constructor.

Exemples

Exemple #1 SyncSharedMemory::size() example

<?php
$mem = new SyncSharedMemory("AppReportName", 1024);
var_dump($mem->size());
?>

Résultat de l'exemple ci-dessus est similaire à :

int(1024)

Voir aussi

  • SyncSharedMemory::__construct() - Constructs a new SyncSharedMemory object
  • SyncSharedMemory::write() - Copy data to named shared memory
  • SyncSharedMemory::read() - Copy data from named shared memory


Copy data to named shared memory

  • « SyncSharedMemory::size
  • Autres extensions basiques »
  • PHP Manual
  • SyncSharedMemory
  • Copy data to named shared memory

SyncSharedMemory::write

(PECL sync >= 1.1.0)

SyncSharedMemory::write — Copy data to named shared memory

Description

public SyncSharedMemory::write(string $string = ?, int $start = 0)

Copies data to named shared memory.

Liste de paramètres

string

The data to write to shared memory.

Note:

If the size of the data exceeds the size of the shared memory, the number of bytes written returned will be less than the length of the input.

start

The start/offset, in bytes, to begin writing.

Note:

If the value is negative, the starting position will begin at the specified number of bytes from the end of the shared memory segment.

Valeurs de retour

An integer containing the number of bytes written to shared memory.

Exemples

Exemple #1 SyncSharedMemory::write() example

<?php
// You will probably need to protect shared memory with other synchronization objects.
// Shared memory goes away when the last reference to it disappears.
$mem = new SyncSharedMemory("AppReportName", 1024);
if ($mem->first())
{
// Do first time initialization work here.
}

$result = $mem->write("report.txt");
var_dump($result);

$result = $mem->write("report.txt", -3);
var_dump($result);
?>

Résultat de l'exemple ci-dessus est similaire à :

int(10)
int(3)

Voir aussi

  • SyncSharedMemory::__construct() - Constructs a new SyncSharedMemory object
  • SyncSharedMemory::first() - Check to see if the object is the first instance system-wide of named shared memory
  • SyncSharedMemory::write()
  • SyncSharedMemory::read() - Copy data from named shared memory


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
  • Igbinary
    • Introduction
    • Installation/Configuration
    • Igbinary Fonctions
  • JSON — Notation Objet JavaScript
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • JsonException — The JsonException class
    • JsonSerializable — L'interface JsonSerializable
    • Fonctions JSON
  • Simdjson
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Simdjson Fonctions
    • SimdJsonException — The SimdJsonException class
    • SimdJsonValueError — The SimdJsonValueError class
  • Lua
    • Introduction
    • Installation/Configuration
    • Lua — La classe Lua
    • LuaClosure — La classe LuaClosure
  • LuaSandbox
    • Introduction
    • Installation/Configuration
    • Differences from Standard Lua
    • Exemples
    • LuaSandbox — The LuaSandbox class
    • LuaSandboxFunction — The LuaSandboxFunction class
    • LuaSandboxError — The LuaSandboxError class
    • LuaSandboxErrorError — The LuaSandboxErrorError class
    • LuaSandboxFatalError — The LuaSandboxFatalError class
    • LuaSandboxMemoryError — The LuaSandboxMemoryError class
    • LuaSandboxRuntimeError — The LuaSandboxRuntimeError class
    • LuaSandboxSyntaxError — The LuaSandboxSyntaxError class
    • LuaSandboxTimeoutError — The LuaSandboxTimeoutError class
  • Misc. — Fonctions diverses
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions diverses
    • Historique des modifications
  • Random — Générateurs de nombres aléatoires et fonctions liées à l'aléatoire.
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Random Fonctions
    • Random\Randomizer — La classe Random\Randomizer
    • Random\Engine — L'interface Random\Engine
    • Random\CryptoSafeEngine — L'interface Random\CryptoSafeEngine
    • Random\Engine\Secure — La classe Random\Engine\Secure
    • Random\Engine\Mt19937 — La classe Random\Engine\Mt19937
    • Random\Engine\PcgOneseq128XslRr64 — La classe Random\Engine\PcgOneseq128XslRr64
    • Random\Engine\Xoshiro256StarStar — La classe Random\Engine\Xoshiro256StarStar
    • Random\RandomError — La classe Random\RandomError
    • Random\BrokenRandomEngineError — La classe Random\BrokenRandomineError
    • Random\RandomException — La classe Random\RandomException
  • Seaslog
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Seaslog Fonctions
    • SeasLog — The SeasLog class
  • 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
  • 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
  • Swoole
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Swoole Fonctions
    • Swoole\Async — The Swoole\Async class
    • Swoole\Atomic — The Swoole\Atomic class
    • Swoole\Buffer — The Swoole\Buffer class
    • Swoole\Channel — The Swoole\Channel class
    • Swoole\Client — The Swoole\Client class
    • Swoole\Connection\Iterator — The Swoole\Connection\Iterator class
    • Swoole\Coroutine — The Swoole\Coroutine class
    • Swoole\Event — The Swoole\Event class
    • Swoole\Exception — The Swoole\Exception class
    • Swoole\Http\Client — The Swoole\Http\Client class
    • Swoole\Http\Request — The Swoole\Http\Request class
    • Swoole\Http\Response — The Swoole\Http\Response class
    • Swoole\Http\Server — The Swoole\Http\Server class
    • Swoole\Lock — The Swoole\Lock class
    • Swoole\Mmap — The Swoole\Mmap class
    • Swoole\MySQL — The Swoole\MySQL class
    • Swoole\MySQL\Exception — The Swoole\MySQL\Exception class
    • Swoole\Process — The Swoole\Process class
    • Swoole\Redis\Server — The Swoole\Redis\Server class
    • Swoole\Serialize — The Swoole\Serialize class
    • Swoole\Server — The Swoole\Server class
    • Swoole\Table — The Swoole\Table class
    • Swoole\Timer — The Swoole\Timer class
    • Swoole\WebSocket\Frame — The Swoole\WebSocket\Frame class
    • Swoole\WebSocket\Server — The Swoole\WebSocket\Server class
  • 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
    • PhpToken — The PhpToken class
    • 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 — Sérialisation 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
  • Yaconf
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Yaconf — La classe Yaconf
  • Taint
    • Introduction
    • Installation/Configuration
    • More Details
    • Fonctions Taint
  • Data Structures
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Ds\Collection — The Collection interface
    • Ds\Hashable — The Hashable interface
    • Ds\Sequence — The Sequence interface
    • Ds\Vector — The Vector class
    • Ds\Deque — The Deque class
    • Ds\Map — The Map class
    • Ds\Pair — The Pair class
    • Ds\Set — The Set class
    • Ds\Stack — The Stack class
    • Ds\Queue — The Queue class
    • Ds\PriorityQueue — The PriorityQueue class
  • var_representation
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • var_representation Fonctions


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.

Avertissement

Cette extension ne prend pas en charge les bases de données "GeoIP2" actuelles de MaxMind, uniquement les fichiers de base de données "GeoIP Legacy".


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 : » https://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 | "" | 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 (int)
GEOIP_REGION_EDITION_REV0 (int)
GEOIP_CITY_EDITION_REV0 (int)
GEOIP_ORG_EDITION (int)
GEOIP_ISP_EDITION (int)
GEOIP_CITY_EDITION_REV1 (int)
GEOIP_REGION_EDITION_REV1 (int)
GEOIP_PROXY_EDITION (int)
GEOIP_ASNUM_EDITION (int)
GEOIP_NETSPEED_EDITION (int)
GEOIP_DOMAIN_EDITION (int)

Les constantes suivantes sont utilisées pour la rapidité réseau :

GEOIP_UNKNOWN_SPEED (int)
GEOIP_DIALUP_SPEED (int)
GEOIP_CABLEDSL_SPEED (int)
GEOIP_CORPORATE_SPEED (int)


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

geoip_asnum_by_name(string $hostname): string

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

geoip_continent_code_by_name(string $hostname): string

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

geoip_country_code_by_name(string $hostname): string

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

geoip_country_code3_by_name(string $hostname): string

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

geoip_country_name_by_name(string $hostname): string

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

geoip_database_info(int $database = GEOIP_COUNTRY_EDITION): string

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

geoip_db_avail(int $database): bool

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

geoip_db_filename(int $database): string

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

geoip_db_get_all_info(): array

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())

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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

geoip_domain_by_name(string $hostname): string

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

geoip_id_by_name(string $hostname): int

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

geoip_isp_by_name(string $hostname): string

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

geoip_netspeedcell_by_name(string $hostname): string

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

geoip_org_by_name(string $hostname): string

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

geoip_record_by_name(string $hostname): array

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 en tant que float signé.
  • "longitude" : La longitude en tant que float signé.
  • "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
PECL geoip 1.0.4 | Ajout de continent_code avec la bibliothèque GeoIP 1.4.3 ou supérieure uniquement
PECL geoip 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

geoip_region_by_name(string $hostname): array

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

geoip_region_name_by_code(string $country_code, string $region_code): string

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

geoip_setup_custom_directory(string $path): void

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

geoip_time_zone_by_country_and_region(string $country_code, string $region_code = ?): string

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 running:

$ 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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
Even more advance training algorithm. Only for version 2.2
Activation functions
FANN_LINEAR (int)
Linear activation function.
FANN_THRESHOLD (int)
Threshold activation function.
FANN_THRESHOLD_SYMMETRIC (int)
Threshold activation function.
FANN_SIGMOID (int)
Sigmoid activation function.
FANN_SIGMOID_STEPWISE (int)
Stepwise linear approximation to sigmoid.
FANN_SIGMOID_SYMMETRIC (int)
Symmetric sigmoid activation function, aka. tanh.
FANN_SIGMOID_SYMMETRIC_STEPWISE (int)
Stepwise linear approximation to symmetric sigmoid
FANN_GAUSSIAN (int)
Gaussian activation function.
FANN_GAUSSIAN_SYMMETRIC (int)
Symmetric gaussian activation function.
FANN_GAUSSIAN_STEPWISE (int)
Stepwise gaussian activation function.
FANN_ELLIOT (int)
Fast (sigmoid like) activation function defined by David Elliott.
FANN_ELLIOT_SYMMETRIC (int)
Fast (symmetric sigmoid like) activation function defined by David Elliott.
FANN_LINEAR_PIECE (int)
Bounded linear activation function.
FANN_LINEAR_PIECE_SYMMETRIC (int)
Bounded linear activation function.
FANN_SIN_SYMMETRIC (int)
Periodical sinus activation function.
FANN_COS_SYMMETRIC (int)
Periodical cosinus activation function.
FANN_SIN (int)
Periodical sinus activation function.
FANN_COS (int)
Periodical cosinus activation function.
Error function used during training
FANN_ERRORFUNC_LINEAR (int)
Standard linear error function.
FANN_ERRORFUNC_TANH (int)
Tanh error function; usually better but may require a lower learning rate. This error function aggressively targets outputs that differ much from the desired, while not targeting outputs that only differ slightly. Not recommended for cascade or incremental training.
Stop criteria used during training
FANN_STOPFUNC_MSE (int)
Stop criteria is Mean Square Error (MSE) value.
FANN_STOPFUNC_BIT (int)
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 (int)
Each layer only has connections to the next layer.
FANN_NETTYPE_SHORTCUT (int)
Each layer has connections to all following layers
Errors
FANN_E_NO_ERROR (int)
No error.
FANN_E_CANT_OPEN_CONFIG_R (int)
Unable to open configuration file for reading.
FANN_E_CANT_OPEN_CONFIG_W (int)
Unable to open configuration file for writing.
FANN_E_WRONG_CONFIG_VERSION (int)
Wrong version of configuration file.
FANN_E_CANT_READ_CONFIG (int)
Error reading info from configuration file.
FANN_E_CANT_READ_NEURON (int)
Error reading neuron info from configuration file.
FANN_E_CANT_READ_CONNECTIONS (int)
Error reading connections from configuration file.
FANN_E_WRONG_NUM_CONNECTIONS (int)
Number of connections not equal to the number expected.
FANN_E_CANT_OPEN_TD_W (int)
Unable to open train data file for writing.
FANN_E_CANT_OPEN_TD_R (int)
Unable to open train data file for reading.
FANN_E_CANT_READ_TD (int)
Error reading training data from file.
FANN_E_CANT_ALLOCATE_MEM (int)
Unable to allocate memory.
FANN_E_CANT_TRAIN_ACTIVATION (int)
Unable to train with the selected activation function.
FANN_E_CANT_USE_ACTIVATION (int)
Unable to use the selected activation function.
FANN_E_TRAIN_DATA_MISMATCH (int)
Irreconcilable differences between two struct fann_train_data structures.
FANN_E_CANT_USE_TRAIN_ALG (int)
Unable to use the selected training algorithm.
FANN_E_TRAIN_DATA_SUBSET (int)
Trying to take subset which is not within the training set.
FANN_E_INDEX_OUT_OF_BOUND (int)
Index is out of bound.
FANN_E_SCALE_NOT_PRESENT (int)
Scaling parameters not present.
FANN_E_INPUT_NO_MATCH (int)
The number of input neurons in the ann and data do not match
FANN_E_OUTPUT_NO_MATCH (int)
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

fann_cascadetrain_on_data(
resource $ann,
resource $data,
int $max_neurons,
int $neurons_between_reports,
float $desired_error
): bool

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

fann_cascadetrain_on_file(
resource $ann,
string $filename,
int $max_neurons,
int $neurons_between_reports,
float $desired_error
): bool

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

A file containing the data for training.

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_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

fann_clear_scaling_params(resource $ann): bool

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

fann_copy(resource $ann): resource

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.

Notes

Note:

Cette fonction est maintenant disponible si l'extension fann a été compilée avec libfann >= 2.2.

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

fann_create_from_file(string $configuration_file): resource

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

fann_create_shortcut_array(int $num_layers, array $layers): resource

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.

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

fann_create_shortcut(
int $num_layers,
int $num_neurons1,
int $num_neurons2,
int ...$num_neuronsN
): resource

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.

num_neuronsN

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

fann_create_sparse_array(float $connection_rate, int $num_layers, array $layers): resource

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

fann_create_sparse(
float $connection_rate,
int $num_layers,
int $num_neurons1,
int $num_neurons2,
int ...$num_neuronsN
): resource

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.

num_neuronsN

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

fann_create_standard_array(int $num_layers, array $layers): resource

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

fann_create_standard(
int $num_layers,
int $num_neurons1,
int $num_neurons2,
int ...$num_neuronsN
): resource

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.

num_neuronsN

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

fann_create_train_from_callback(
int $num_data,
int $num_input,
int $num_output,
callable $user_function
): resource

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 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

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
}
?>

Notes

Note:

Cette fonction est maintenant disponible si l'extension fann a été compilée avec libfann >= 2.2.

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

fann_create_train(int $num_data, int $num_input, int $num_output): resource

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.

Notes

Note:

Cette fonction est maintenant disponible si l'extension fann a été compilée avec libfann >= 2.2.

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

fann_descale_input(resource $ann, array $input_vector): bool

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

fann_descale_output(resource $ann, array $output_vector): bool

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

fann_descale_train(resource $ann, resource $train_data): bool

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

fann_destroy_train(resource $train_data): bool

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

fann_destroy(resource $ann): bool

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

fann_duplicate_train_data(resource $data): resource

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

fann_get_activation_function(resource $ann, int $layer, int $neuron): int

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

fann_get_activation_steepness(resource $ann, int $layer, int $neuron): float

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 aggressive 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

fann_get_bias_array(resource $ann): array

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

fann_get_bit_fail_limit(resource $ann): float

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

fann_get_bit_fail(resource $ann): int

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

fann_get_cascade_activation_functions_count(resource $ann): int

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

fann_get_cascade_activation_functions(resource $ann): array

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

fann_get_cascade_activation_steepnesses_count(resource $ann): int

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

fann_get_cascade_activation_steepnesses(resource $ann): array

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

fann_get_cascade_candidate_change_fraction(resource $ann): float

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

fann_get_cascade_candidate_limit(resource $ann): float

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

fann_get_cascade_candidate_stagnation_epochs(resource $ann): int

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

fann_get_cascade_max_cand_epochs(resource $ann): int

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

fann_get_cascade_max_out_epochs(resource $ann): int

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

fann_get_cascade_min_cand_epochs(resource $ann): int

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.

Notes

Note:

Cette fonction est maintenant disponible si l'extension fann a été compilée avec libfann >= 2.2.

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

fann_get_cascade_min_out_epochs(resource $ann): int

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.

Notes

Note:

Cette fonction est maintenant disponible si l'extension fann a été compilée avec libfann >= 2.2.

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

fann_get_cascade_num_candidate_groups(resource $ann): int

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

fann_get_cascade_num_candidates(resource $ann): int

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

fann_get_cascade_output_change_fraction(resource $ann): float

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

fann_get_cascade_output_stagnation_epochs(resource $ann): int

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

fann_get_cascade_weight_multiplier(resource $ann): float

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

fann_get_connection_array(resource $ann): array

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

fann_get_connection_rate(resource $ann): float

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

fann_get_errno(resource $errdat): int

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

fann_get_errstr(resource $errdat): string

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

fann_get_layer_array(resource $ann): array

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

fann_get_learning_momentum(resource $ann): float

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

fann_get_learning_rate(resource $ann): float

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

fann_get_MSE(resource $ann): float

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

fann_get_network_type(resource $ann): int

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

fann_get_num_input(resource $ann): int

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

fann_get_num_layers(resource $ann): int

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

fann_get_num_output(resource $ann): int

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

fann_get_quickprop_decay(resource $ann): float

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

fann_get_quickprop_mu(resource $ann): float

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

fann_get_rprop_decrease_factor(resource $ann): float

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

fann_get_rprop_delta_max(resource $ann): float

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

fann_get_rprop_delta_min(resource $ann): float

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

fann_get_rprop_delta_zero(resource $ann): int

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

fann_get_rprop_increase_factor(resource $ann): float

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

fann_get_sarprop_step_error_shift(resource $ann): float

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.

Notes

Note:

Cette fonction est maintenant disponible si l'extension fann a été compilée avec libfann >= 2.2.

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

fann_get_sarprop_step_error_threshold_factor(resource $ann): float

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.

Notes

Note:

Cette fonction est maintenant disponible si l'extension fann a été compilée avec libfann >= 2.2.

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

fann_get_sarprop_temperature(resource $ann): float

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.

Notes

Note:

Cette fonction est maintenant disponible si l'extension fann a été compilée avec libfann >= 2.2.

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

fann_get_sarprop_weight_decay_shift(resource $ann): float

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.

Notes

Note:

Cette fonction est maintenant disponible si l'extension fann a été compilée avec libfann >= 2.2.

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

fann_get_total_connections(resource $ann): int

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

fann_get_total_neurons(resource $ann): int

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

fann_get_train_error_function(resource $ann): int

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

fann_get_train_stop_function(resource $ann): int

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

fann_get_training_algorithm(resource $ann): int

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

fann_init_weights(resource $ann, resource $train_data): bool

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

fann_length_train_data(resource $data): int

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

fann_merge_train_data(resource $data1, resource $data2): resource

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

fann_num_input_train_data(resource $data): int

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

fann_num_output_train_data(resource $data): int

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

fann_print_error(resource $errdat): void

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

fann_randomize_weights(resource $ann, float $min_weight, float $max_weight): bool

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

fann_read_train_from_file(string $filename): resource

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

fann_reset_errno(resource $errdat): void

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

fann_reset_errstr(resource $errdat): void

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

fann_reset_MSE(string $ann): bool

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

fann_run(resource $ann, array $input): array

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

fann_save_train(resource $data, string $file_name): bool

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

fann_save(resource $ann, string $configuration_file): bool

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

fann_scale_input_train_data(resource $train_data, float $new_min, float $new_max): bool

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

fann_scale_input(resource $ann, array $input_vector): bool

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

fann_scale_output_train_data(resource $train_data, float $new_min, float $new_max): bool

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

fann_scale_output(resource $ann, array $output_vector): bool

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

fann_scale_train_data(resource $train_data, float $new_min, float $new_max): bool

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

fann_scale_train(resource $ann, resource $train_data): bool

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

fann_set_activation_function_hidden(resource $ann, int $activation_function): bool

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

fann_set_activation_function_layer(resource $ann, int $activation_function, int $layer): bool

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

fann_set_activation_function_output(resource $ann, int $activation_function): bool

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

fann_set_activation_function(
resource $ann,
int $activation_function,
int $layer,
int $neuron
): bool

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

fann_set_activation_steepness_hidden(resource $ann, float $activation_steepness): bool

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

fann_set_activation_steepness_layer(resource $ann, float $activation_steepness, int $layer): bool

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

fann_set_activation_steepness_output(resource $ann, float $activation_steepness): bool

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

fann_set_activation_steepness(
resource $ann,
float $activation_steepness,
int $layer,
int $neuron
): bool

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

fann_set_bit_fail_limit(resource $ann, float $bit_fail_limit): bool

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

fann_set_callback(resource $ann, callable $callback): bool

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

fann_set_cascade_activation_functions(resource $ann, array $cascade_activation_functions): bool

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

fann_set_cascade_activation_steepnesses(resource $ann, array $cascade_activation_steepnesses_count): bool

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

fann_set_cascade_candidate_change_fraction(resource $ann, float $cascade_candidate_change_fraction): bool

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

fann_set_cascade_candidate_limit(resource $ann, float $cascade_candidate_limit): bool

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

fann_set_cascade_candidate_stagnation_epochs(resource $ann, int $cascade_candidate_stagnation_epochs): bool

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

fann_set_cascade_max_cand_epochs(resource $ann, int $cascade_max_cand_epochs): bool

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

fann_set_cascade_max_out_epochs(resource $ann, int $cascade_max_out_epochs): bool

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

fann_set_cascade_min_cand_epochs(resource $ann, int $cascade_min_cand_epochs): bool

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.

Notes

Note:

Cette fonction est maintenant disponible si l'extension fann a été compilée avec libfann >= 2.2.

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

fann_set_cascade_min_out_epochs(resource $ann, int $cascade_min_out_epochs): bool

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.

Notes

Note:

Cette fonction est maintenant disponible si l'extension fann a été compilée avec libfann >= 2.2.

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

fann_set_cascade_num_candidate_groups(resource $ann, int $cascade_num_candidate_groups): bool

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

fann_set_cascade_output_change_fraction(resource $ann, float $cascade_output_change_fraction): bool

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

fann_set_cascade_output_stagnation_epochs(resource $ann, int $cascade_output_stagnation_epochs): bool

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

fann_set_cascade_weight_multiplier(resource $ann, float $cascade_weight_multiplier): bool

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

fann_set_error_log(resource $errdat, string $log_file): void

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

fann_set_input_scaling_params(
resource $ann,
resource $train_data,
float $new_input_min,
float $new_input_max
): bool

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

fann_set_learning_momentum(resource $ann, float $learning_momentum): bool

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

fann_set_learning_rate(resource $ann, float $learning_rate): bool

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

fann_set_output_scaling_params(
resource $ann,
resource $train_data,
float $new_output_min,
float $new_output_max
): bool

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

fann_set_quickprop_decay(resource $ann, float $quickprop_decay): bool

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

fann_set_quickprop_mu(resource $ann, float $quickprop_mu): bool

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

fann_set_rprop_decrease_factor(resource $ann, float $rprop_decrease_factor): bool

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

fann_set_rprop_delta_max(resource $ann, float $rprop_delta_max): bool

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

fann_set_rprop_delta_min(resource $ann, float $rprop_delta_min): bool

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

fann_set_rprop_delta_zero(resource $ann, float $rprop_delta_zero): bool

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

fann_set_rprop_increase_factor(resource $ann, float $rprop_increase_factor): bool

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

fann_set_sarprop_step_error_shift(resource $ann, float $sarprop_step_error_shift): bool

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.

Notes

Note:

Cette fonction est maintenant disponible si l'extension fann a été compilée avec libfann >= 2.2.

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

fann_set_sarprop_step_error_threshold_factor(resource $ann, float $sarprop_step_error_threshold_factor): bool

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.

Notes

Note:

Cette fonction est maintenant disponible si l'extension fann a été compilée avec libfann >= 2.2.

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

fann_set_sarprop_temperature(resource $ann, float $sarprop_temperature): bool

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.

Notes

Note:

Cette fonction est maintenant disponible si l'extension fann a été compilée avec libfann >= 2.2.

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

fann_set_sarprop_weight_decay_shift(resource $ann, float $sarprop_weight_decay_shift): bool

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.

Notes

Note:

Cette fonction est maintenant disponible si l'extension fann a été compilée avec libfann >= 2.2.

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

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
): bool

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

fann_set_train_error_function(resource $ann, int $error_function): bool

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

fann_set_train_stop_function(resource $ann, int $stop_function): bool

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

fann_set_training_algorithm(resource $ann, int $training_algorithm): bool

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

fann_set_weight_array(resource $ann, array $connections): bool

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

fann_set_weight(
resource $ann,
int $from_neuron,
int $to_neuron,
float $weight
): bool

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

fann_shuffle_train_data(resource $train_data): bool

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

fann_subset_train_data(resource $data, int $pos, int $length): resource

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

fann_test_data(resource $ann, resource $data): float

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

fann_test(resource $ann, array $input, array $desired_output): array

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 les sorties de test en cas de succès, ou false en cas d'erreur.

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

fann_train_epoch(resource $ann, resource $data): float

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

fann_train_on_data(
resource $ann,
resource $data,
int $max_epochs,
int $epochs_between_reports,
float $desired_error
): bool

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

fann_train_on_file(
resource $ann,
string $filename,
int $max_epochs,
int $epochs_between_reports,
float $desired_error
): bool

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

fann_train(resource $ann, array $input, array $desired_output): bool

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

class 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 getFromNeuron(): int
public getToNeuron(): int
public getWeight(): void
public setWeight(float $weight): void
}

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 FANNConnection::getFromNeuron(): int

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 FANNConnection::getToNeuron(): int

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 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
  • Igbinary »
  • 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 FANNConnection::setWeight(float $weight): void

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

Aucune valeur retournée.


Igbinary

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
  • Igbinary Fonctions
    • igbinary_serialize — Génère une représentation binaire stockable et compacte d'une valeur
    • igbinary_unserialize — Crée une variable PHP à partir d'une valeur sérialisée par igbinary_serialize


Introduction

Igbinary est une amélioration du processus standard de sérialisation de données de PHP qui ne nécessite aucun changement de configuration. Au lieu de la représentation textuelle, consommatrice de temps et d'espace, utilisée par la fonction serialize() de PHP, igbinary stocke les structures de données PHP sous une forme binaire compacte. Les économies de mémoire sont significatives lorsque memcached, APCu ou d'autres outils de stockage similaires basés sur la mémoire sont utilisés pour les données sérialisées. Les réductions caractéristiques des besoins de stockage sont d'environ 50%. Le pourcentage exact dépend des donné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 : » https://pecl.php.net/package/igbinary.

Les binaires Windows (les fichiers DLL) pour cette extension PECL sont disponibles sur le site web PECL.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Igbinary Options de configuration
Nom | Défaut | Modifiable | Historique
igbinary.compact_strings | 1 | INI_ALL |
Options de configuration de session affectant le comportement d'igbinary
Nom | Défaut | Modifiable | Historique
session.save_handler | "files" | INI_ALL |
Pour plus de détails sur les modes INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

igbinary.compact_strings bool

Active ou non le compactage des chaînes de caractères dupliquées. La valeur par défaut est On.

session.save_handler string

Igbinary est utilisé en tant que gestionnaire de session en mettant la valeur de cette option à igbinary.


Igbinary Fonctions

Sommaire

  • igbinary_serialize — Génère une représentation binaire stockable et compacte d'une valeur
  • igbinary_unserialize — Crée une variable PHP à partir d'une valeur sérialisée par igbinary_serialize


Génère une représentation binaire stockable et compacte d'une valeur

  • « Igbinary Fonctions
  • igbinary_unserialize »
  • PHP Manual
  • Igbinary Fonctions
  • Génère une représentation binaire stockable et compacte d'une valeur

igbinary_serialize

(PECL igbinary >= 1.1.1)

igbinary_serialize — Génère une représentation binaire stockable et compacte d'une valeur

Description

igbinary_serialize(mixed $value): string|false

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 reconvertir la chaîne de caractères sérialisée en une valeur PHP, la fonction igbinary_unserialize() peut être utilisée.

Liste de paramètres

value

La valeur à sérialiser. igbinary_serialize() gère tous les types sauf les ressources et certains objets (confère la note ci-dessous). Même des tableaux qui contiennent des références à eux-même peuvent être sérialisé avec igbinary_serialize(). Les références circulaires à l'intérieur d'un tableau ou d'un objet à sérialiser seront également stockées. Toute autre référence sera perdue.

Lorsqu'il sérialise des objets, igbinary tentera d'appeler les méthodes magiques __serialize() ou __sleep() avant la sérialisation. Cela permettra à l'objet de faire un nettoyage de dernière minute, etc., avant d'être sérialisé. De même, lorsque l'objet est restauré en utilisant la fonction igbinary_unserialize(), une des méthodes magiques __unserialize() ou __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 de caractères contenant une représentation du paramètre value sous forme de flux d'octets qui peut être stocké à n'importe quel endroit.

Il est à noter que c'est une chaîne binaire qui peut inclure des caractères nuls, et doit donc être stockée et gérée comme telle. Par exemple, dans une base de données, la sortie de la fonction igbinary_serialize() doit, en général, être stockée dans un champ de type BLOB plutôt que dans un champ de type CHAR ou TEXT.

Exemples

Exemple #1 igbinary_serialize() example

Exemple #2 Exemple avec igbinary_serialize()

<?php
$ser = igbinary_serialize(['test', 'test']);
echo urlencode($ser), "\n";
var_export(igbinary_unserialize($ser));
?>

L'exemple ci-dessus va afficher :

%00%00%00%02%14%02%06%00%11%04test%06%01%0E%00
array (
  0 => 'test',
  1 => 'test',
)

Notes

Note:

Il est à noter que de nombreux objets internes de PHP ne peuvent pas être sérialisés. Cependant, ceux qui le peuvent implémentent soit l'interface Serializable soit les méthodes magiques __serialize()/__unserialize() ou __sleep()/__wakeup(). Si une classe interne ne remplit aucune de ces conditions, elle ne peut pas être sérialisée de manière fiable.

Il existe des exceptions historiques à cette règle, où des objets internes peuvent être sérialisés sans implémenter ni l'interface ni les méthodes magiques.

Voir aussi

  • serialize() - Génère une représentation stockable d'une valeur
  • igbinary_unserialize() - Crée une variable PHP à partir d'une valeur sérialisée par igbinary_serialize
  • var_export() - Retourne le code PHP utilisé pour générer une variable
  • json_encode() - Retourne la représentation JSON d'une valeur
  • Sérialisation d'objets
  • __sleep()
  • __wakeup()
  • __serialize()
  • __unserialize()


Crée une variable PHP à partir d'une valeur sérialisée par igbinary_serialize

  • « igbinary_serialize
  • JSON »
  • PHP Manual
  • Igbinary Fonctions
  • Crée une variable PHP à partir d'une valeur sérialisée par igbinary_serialize

igbinary_unserialize

(PECL igbinary >= 1.1.1)

igbinary_unserialize — Crée une variable PHP à partir d'une valeur sérialisée par igbinary_serialize()

Description

igbinary_unserialize(string $str): mixed

igbinary_unserialize() prend une variable sérialisée par igbinary_serialize() et la convertit en une variable PHP.

Avertissement

Les entrées utilisateur non fiables ne doivent pas être passées à la fonction igbinary_unserialize(). La désérialisation peut résulter en une exécution de code chargé et exécuté lors de l'instanciation et l'autochargement d'objet, et ainsi, un utilisateur mal intentionné peut être capable d'exploiter ce comportement. À la place, un standard d'échange sûr tel que JSON (via json_decode() et json_encode()) doit être utilisé pour passer des données sérialisées à l'utilisateur.

S'il est indispensable de désérialisation des données sérialisées provenant de l'extérieur, la fonction hash_hmac() peut être utilisée pour valider les données. Il est important de vérifier que personne n'a altéré les données.

Avertissement

Le protocole de sérialisation par igbinary ne permet pas de distinguer entre les différents groupes de références. Toutes les références PHP à une valeur donnée sont vues comme membres d'un même groupe lors de la désérialisation, même si elles appartenaient à des groupes différents avant la sérialisation.

Liste de paramètres

str

La chaîne de caractères sérialisée, générée par igbinary_serialize().

Si la variable désérialisée est un objet, après avoir réussi à le reconstruire, PHP tentera automatiquement d'appeller les méthodes magiques __unserialize() ou __wakeup() (si l'une d'elles existe).

Note: La directive unserialize_callback_func

Il est possible de définir une fonction de rappel qui sera appelée si une classe doit être instanciée lors de la désérialisation alors que cette dernière n'est pas actuellement définie (afin d'éviter de créer un object de la classe __PHP_Incomplete_Class.) Les fichiers php.ini, .htaccess ou la fonction ini_set() peuvent être utilisés pour définir unserialize_callback_func. Elle sera appelée chaque fois qu'une classe non actuellement définie sera instanciée. Pour désactiver cette fonctionnalité, il suffit de mettre la valeur de l'option au caractère nul.

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, objet, ou de type null.

Si la chaîne de caractères passée ne peut pas être désérialisée, cette fonction retourne false et un diagnostic E_NOTICE ou E_WARNING est émis.

Erreurs / Exceptions

Les objets peuvent lancer un Throwable dans leur gestionnaire de désérialisation.

Notes

Avertissement

null ou false est retourné soit dans le cas d'une erreur soit après avoir désérialisé le résultat de la sérialisation de null ou false. Il est possible de discriminer entre ces deux cas spéciaux en comparant la valeur du paramètre str avec le résultat de l'exécution de igbinary_serialize(null) ou de igbinary_serialize(false) ou bien en attrapant un diagnostic E_NOTICE.

Voir aussi

  • unserialize() - Crée une variable PHP à partir d'une valeur sérialisée
  • 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
  • igbinary_serialize() - Génère une représentation binaire stockable et compacte d'une valeur
  • Auto-chargement de classes
  • unserialize_callback_func
  • __wakeup()
  • __serialize()
  • __unserialize()


Notation Objet JavaScript

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • JsonException — The JsonException class
  • JsonSerializable — L'interface JsonSerializable
    • JsonSerializable::jsonSerialize — Spécifie les données qui doivent être sérialisé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
    • json_validate — Checks if a string contains valid JSON


Introduction

Cette extension implémente le format d'échange de données » JavaScript Object Notation (JSON). PHP est fournit avec un moteur d'analyse qui a été spécialement écrit pour PHP et qui licencié sous la licence PHP.

Note:

PHP implémente un sur-ensemble de JSON tel que spécifié dans la » RFC 7159 originale.


Installation

L'extension JSON est fournie et compilée dans PHP par défaut.

À partir de PHP 8.0.0, l'extension JSON est une extension core de PHP, et donc toujours activé.

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 : » https://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 json_last_error() ou stockée en tant que code d'une JsonException.

JSON_ERROR_NONE (int)
Aucune erreur n'est survenue.
JSON_ERROR_DEPTH (int)
La profondeur maximale de la pile a été atteinte.
JSON_ERROR_STATE_MISMATCH (int)
Survient avec un underflow ou avec une inadéquation des modes.
JSON_ERROR_CTRL_CHAR (int)
Erreur lors du contrôle des caractères, probablement encodé incorrectement.
JSON_ERROR_SYNTAX (int)
Erreur de syntaxe.
JSON_ERROR_UTF8 (int)
Caractères UTF-8 mal formés, probablement encodé incorrectement.
JSON_ERROR_RECURSION (int)
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.
JSON_ERROR_INF_OR_NAN (int)
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.
JSON_ERROR_UNSUPPORTED_TYPE (int)
Une valeur d'un type non supporté a été fournie à la fonction json_encode(), comme par exemple une ressource. Si l'option JSON_PARTIAL_OUTPUT_ON_ERROR a été fournie, null sera encodé à la place de la valeur non supportée.
JSON_ERROR_INVALID_PROPERTY_NAME (int)
Une clé commençant avec le caractère \u0000 était présent dans la chaîne de caractères passé à json_decode() lors d'un décodage d'un object JSON en un object PHP.
JSON_ERROR_UTF16 (int)
Substitut UTF-16 simple non apparié dans l'échappement unicode contenue dans la chaîne de caractères JSON passé à json_decode().

Les constantes suivantes peuvent être combinées pour former les options de json_decode().

JSON_BIGINT_AS_STRING (int)
Décode les gros entiers sous forme d'une chaîne de caractères.
JSON_OBJECT_AS_ARRAY (int)
Décode un object JSON en tableau PHP. Cette option peut être ajouté automatiquement en appelant json_decode() avec le deuxième paramètre égal à true.

Les constantes suivantes peuvent être combinées pour former les options de json_encode().

JSON_HEX_TAG (int)
Tous les caractères < et > sont convertis en séquences \u003C et \u003E.
JSON_HEX_AMP (int)
Tous les caractères & sont convertis en \u0026.
JSON_HEX_APOS (int)
Tous les guillemets ' sont convertis en \u0027.
JSON_HEX_QUOT (int)
Tous les guillemets doubles " sont convertis en \u0022.
JSON_FORCE_OBJECT (int)
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.
JSON_NUMERIC_CHECK (int)
Encode les chaînes numériques en tant que nombres.
JSON_PRETTY_PRINT (int)
Utilise des espaces dans les données retournées pour les formater.
JSON_UNESCAPED_SLASHES (int)
Ne pas échapper les caractères /.
JSON_UNESCAPED_UNICODE (int)
Encode les caractères multioctets Unicode littéralement (le comportement par défaut est de les échapper par \uXXXX).
JSON_PARTIAL_OUTPUT_ON_ERROR (int)
Substitue certaines valeurs non encodable au lieu d'échouer.
JSON_PRESERVE_ZERO_FRACTION (int)
S'assure que les valeurs de type nombre décimal sont toujours encodées comme valeur flottante.
JSON_UNESCAPED_LINE_TERMINATORS (int)
Les terminateurs de ligne sont conservés sans être échappés quand JSON_UNESCAPED_UNICODE est fourni. Il utilise le même comportement comme si c'était avant PHP 7.1 sans cette constante. Disponible à partir de PHP 7.1.0.

Les constantes suivantes peuvent être combinées pour former les options de json_decode() et json_encode().

JSON_INVALID_UTF8_IGNORE (int)
Ignore les caractères UTF-8 invalide. Disponible à partir de PHP 7.2.0.
JSON_INVALID_UTF8_SUBSTITUTE (int)
Convertit les caractères UTF-8 invalide en \0xfffd (Caractère Unicode 'REPLACEMENT CHARACTER'). Disponible à partir de PHP 7.2.0.
JSON_THROW_ON_ERROR (int)
Émet une JsonException si une erreur se produit au lieu de régler l'état d'erreur globale qui est récupéré grâce à json_last_error() et json_last_error_msg(). JSON_PARTIAL_OUTPUT_ON_ERROR prend la priorité par rapport à JSON_THROW_ON_ERROR. Disponible à partir de PHP 7.3.0.


The JsonException class

(PHP 7 >= 7.3.0, PHP 8)

Introduction

Exception émise si l'option JSON_THROW_ON_ERROR est définie pour json_encode() ou json_decode(). code contient le type d'erreur, pour les valeurs possible voir json_last_error().

Synopsis de la classe

class JsonException extends Exception {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


L'interface JsonSerializable

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

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

interface JsonSerializable {
/* Méthodes */
public jsonSerialize(): mixed
}

Sommaire

  • JsonSerializable::jsonSerialize — Spécifie les données qui doivent être sérialisées en JSON


Spécifie les données qui doivent être sérialisées en JSON

  • « JsonSerializable
  • Fonctions JSON »
  • PHP Manual
  • JsonSerializable
  • Spécifie les données qui doivent être sérialisées en JSON

JsonSerializable::jsonSerialize

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

JsonSerializable::jsonSerialize — Spécifie les données qui doivent être sérialisées en JSON

Description

public JsonSerializable::jsonSerialize(): mixed

Sérialise l'objet en une valeur qui peut être sérialisé 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 sérialisé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 {
private $array;
public function __construct(array $array) {
$this->array = $array;
}

public function jsonSerialize(): mixed {
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 {
private $array;
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 {
private $number;
public function __construct($number) {
$this->number = (int) $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 {
private $string;
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
  • json_validate — Checks if a string contains valid 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, PHP 7, PHP 8, PECL json >= 1.2.0)

json_decode — Décode une chaîne JSON

Description

json_decode(
string $json,
?bool $associative = null,
int $depth = 512,
int $flags = 0
): mixed

Récupère une chaîne encodée JSON et la convertit en une valeur de PHP.

Liste de paramètres

json

La chaîne de caractères json à décoder.

Cette fonction ne fonctionne qu'avec des chaînes encodées en UTF-8.

Note:

PHP implémente un sur-ensemble de JSON tel que spécifié dans la » RFC 7159 originale.

associative

Lorsque ce paramètre vaut true, les objets JSON seront retournés comme tableaux associatifs ; lorsque ce paramètre vaut false, les objets JSON seront retournés comme des objets. Lorsque ce paramètre vaut null, les objets JSON seront retournés comme des tableaux associatifs ou des objets, suivant si la constante JSON_OBJECT_AS_ARRAY a été définie dans le paramètre flags.

depth

Profondeur d'imbrication maximale de la structure en cours de décodage. La valeur doit être supérieure à 0, et inférieure ou égale à 2147483647.

flags

Masque de bit compris de JSON_BIGINT_AS_STRING, JSON_INVALID_UTF8_IGNORE, JSON_INVALID_UTF8_SUBSTITUTE, JSON_OBJECT_AS_ARRAY, JSON_THROW_ON_ERROR. Le comportement de ces constantes est décrite sur la page des constantes JSON.

Valeurs de retour

Retourne la valeur encodée dans le paramètre json dans le type PHP approprié. Les valeurs sans guillemets 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 d'imbrication fournie.

Erreurs / Exceptions

Si depth est en dehors de la plage autorisée, une ValueError est lancée à partir de PHP 8.0.0, alors qu'auparavant, une erreur de niveau E_WARNING était levée.

Historique

Version | Description
7.3.0 | Le flags JSON_THROW_ON_ERROR a été ajouté.
7.2.0 | Le paramètre associative est désormais nullable.
7.2.0 | Les flags JSON_INVALID_UTF8_IGNORE, et JSON_INVALID_UTF8_SUBSTITUTE ont été ajouté.
7.1.0 | Une clé JSON vide ("") peut être encodée dans la propriété d'objet vide au lieu d'utiliser une clé avec la valeur _empty_.

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 des données avec un niveau d'imbrication maximal de 4 (array -> array -> array -> string)
$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;
}
}

$json = json_encode(
array(
1 => array(
'English' => array(
'One',
'January'
),
'French' => array(
'Une',
'Janvier'
)
)
)
);

// Affichage des erreurs pour des niveau d'imbrication différentes.
var_dump(json_decode($json, true, 4));
echo 'Last error: ', json_last_error_msg(), PHP_EOL, PHP_EOL;

var_dump(json_decode($json, true, 3));
echo 'Last error: ', json_last_error_msg(), 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"
    }
  }
}
Last error: No error

NULL
Last error: Maximum stack depth exceeded

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.

Voir aussi

  • json_encode() - Retourne la représentation JSON d'une valeur
  • json_last_error() - Retourne la dernière erreur JSON


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, PHP 7, PHP 8, PECL json >= 1.2.0)

json_encode — Retourne la représentation JSON d'une valeur

Description

json_encode(mixed $value, int $flags = 0, int $depth = 512): string|false

Retourne une chaîne de caractères contenant la représentation JSON de la valeur value. Si le paramètre est un tableau ou un objet, il sera sérialisé de manière récursive.

Si l'une des valeurs à sérialiser est un objet, alors par défaut seules les propriétés visibles publiquement seront incluses. Une classe peut également implémenter JsonSerializable pour contrôler la façon dont ses valeurs sont sérialisées en JSON.

L'encodage est affecté par les flags fournies. De plus, l'encodage des valeurs flottantes dépend de la valeur de serialize_precision.

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.

flags

Masque de bit compris de JSON_FORCE_OBJECT, JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_INVALID_UTF8_IGNORE, JSON_INVALID_UTF8_SUBSTITUTE, JSON_NUMERIC_CHECK, JSON_PARTIAL_OUTPUT_ON_ERROR, JSON_PRESERVE_ZERO_FRACTION, JSON_PRETTY_PRINT, JSON_UNESCAPED_LINE_TERMINATORS, JSON_UNESCAPED_SLASHES, JSON_UNESCAPED_UNICODE, JSON_THROW_ON_ERROR. 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 un JSON encodé en tant que chaîne de caractères en cas de succès ou false si une erreur survient.

Historique

Version | Description
7.3.0 | Le flags JSON_THROW_ON_ERROR a été ajoutée.
7.2.0 | Les flags JSON_INVALID_UTF8_IGNORE, et JSON_INVALID_UTF8_SUBSTITUTE ont été ajoutées.
7.1.0 | Le flags JSON_UNESCAPED_LINE_TERMINATORS a été ajoutée.
7.1.0 | serialize_precision est utilisé à la place de precision lors de l'encodage de valeurs float.

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 drapeaux 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 converties 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)
);
?>

Résultat de l'exemple ci-dessus est similaire à :

Les chaînes représentant des nombres sont automatiquement converties 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ères, un entier, un nombre décimal, 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, PHP 8)

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

json_last_error_msg(): string
json_last_error_msg(): string

Retourne la chaîne d'erreur du dernier appel à json_encode() ou json_decode(), qui n'a pas spécifié JSON_THROW_ON_ERROR.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le message d'erreur en cas de succès, ou "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
  • json_validate »
  • PHP Manual
  • Fonctions JSON
  • Retourne la dernière erreur JSON

json_last_error

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

json_last_error — Retourne la dernière erreur JSON

Description

json_last_error(): int

Retourne la dernière erreur, s'il y en a eu, survenue lors de la dernière opération d'encodage/décodage JSON, qui n'a pas spécifié JSON_THROW_ON_ERROR.

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 |
JSON_ERROR_RECURSION | Une ou plusieurs références récursives sont présentes dans la valeur à encoder |
JSON_ERROR_INF_OR_NAN | Une ou plusieurs valeurs NAN ou INF sont présentes dans la valeurs à encoder. |
JSON_ERROR_UNSUPPORTED_TYPE | Une valeur d'un type qui ne peut être encodée a été fournie |
JSON_ERROR_INVALID_PROPERTY_NAME | Un nom de propriété qui ne peut pas être encodé a été donné |
JSON_ERROR_UTF16 | Caractères UTF-16 mal formés, probablement mal encodé |

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 json_last_error() avec 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)

Exemple #3 json_last_error() et JSON_THROW_ON_ERROR

<?php
// Une séquence UTF8 invalide qui cause JSON_ERROR_UTF8
json_encode("\xB1\x31");

// Ceci ne produit pas une erreur JSON
json_encode('okay', JSON_THROW_ON_ERROR);

// L'état d'erreur global n'a pas été modifié par le json_encode() ci-dessus
var_dump(json_last_error() === JSON_ERROR_UTF8);
?>

L'exemple ci-dessus va afficher :

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


Checks if a string contains valid JSON

  • « json_last_error
  • Simdjson »
  • PHP Manual
  • Fonctions JSON
  • Checks if a string contains valid JSON

json_validate

(PHP 8 >= 8.3.0)

json_validate — Checks if a string contains valid JSON

Description

json_validate(string $json, int $depth = 512, int $flags = 0): bool

Returns whether the given chaîne de caractères is syntactically valid JSON. If json_validate() returns true, json_decode() will successfully decode the given string when using the same depth and flags.

If json_validate() returns false, the cause
can be retrieved using json_last_error() and
json_last_error_msg().

json_validate() uses less memory than json_decode() if the decoded JSON payload is not used, because it does not need to build the array or object structure containing the payload.

Attention

Calling json_validate() immediately before
json_decode() will unnecessarily parse the string
twice, as json_decode() implicitly performs
validation during decoding.

json_validate() should therefore only be used if the decode JSON payload is not immediately used and knowing whether the string contains valid JSON is needed.

Liste de paramètres

json

The string to validate.

This function only works with UTF-8 encoded strings.

Note:

PHP implémente un sur-ensemble de JSON tel que spécifié dans la » RFC 7159 originale.

depth

Maximum nesting depth of the structure being decoded. The value must be greater than 0, and less than or equal to 2147483647.

flags

Currently only JSON_INVALID_UTF8_IGNORE is accepted.

Valeurs de retour

Returns true if the given string is syntactically valid JSON, otherwise returns false.

Erreurs / Exceptions

If depth is outside the allowed range, a ValueError is thrown.

If flags is not a valid flag, a ValueError is thrown.

Exemples

Exemple #1 json_validate() examples

<?php
var_dump(json_validate('{ "test": { "foo": "bar" } }'));
var_dump(json_validate('{ "": "": "" } }'));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)

Voir aussi

  • json_decode() - Décode une chaîne JSON
  • 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()


Simdjson

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
  • Constantes pré-définies
  • Simdjson Fonctions
    • simdjson_decode — Decodes a JSON string
    • simdjson_is_valid — Check if a JSON string is valid
    • simdjson_key_count — Returns the value at a JSON pointer.
    • simdjson_key_exists — Check if the JSON contains the value referred to by a JSON pointer.
    • simdjson_key_value — Decodes the value of a JSON string located at the requested JSON pointer.
  • SimdJsonException — The SimdJsonException class
  • SimdJsonValueError — The SimdJsonValueError class


Introduction

Provides faster JSON decoding through simdjson bindings for PHP (Single Instruction, Multiple Data)


  • « Introduction
  • Pré-requis »
  • PHP Manual
  • Simdjson
  • Installation/Configuration

Installation/Configuration

Sommaire

  • Pré-requis
  • 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 : » https://pecl.php.net/package/simdjson.

Les binaires Windows (les fichiers DLL) pour cette extension PECL sont disponibles sur le site web PECL.


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.

SIMDJSON_ERR_CAPACITY (entier)
This parser can't support a document that big. Thrown when parsing a JSON string that is over 4GiB long.
SIMDJSON_ERR_TAPE_ERROR (entier)
The JSON document has an improper structure: missing or superfluous commas, braces, missing keys, etc.
SIMDJSON_ERR_DEPTH_ERROR (entier)
The JSON document was too deep (too many nested objects and arrays)
SIMDJSON_ERR_STRING_ERROR (entier)
Problem while parsing a string
SIMDJSON_ERR_T_ATOM_ERROR (entier)
Problem while parsing an atom starting with the letter 't'
SIMDJSON_ERR_F_ATOM_ERROR (entier)
Problem while parsing an atom starting with the letter 'f'
SIMDJSON_ERR_N_ATOM_ERROR (entier)
Problem while parsing an atom starting with the letter 'n'
SIMDJSON_ERR_NUMBER_ERROR (entier)
Problem while parsing a number
SIMDJSON_ERR_UTF8_ERROR (entier)
The input is not valid UTF-8
SIMDJSON_ERR_UNINITIALIZED (entier)
The parser used by simdjson is uninitialized. Should not happen.
SIMDJSON_ERR_EMPTY (entier)
Empty: no JSON found
SIMDJSON_ERR_UNESCAPED_CHARS (entier)
Within strings, some characters must be escaped, we found unescaped characters
SIMDJSON_ERR_UNCLOSED_STRING (entier)
A string is opened, but never closed.
SIMDJSON_ERR_UNSUPPORTED_ARCHITECTURE (entier)
simdjson does not have an implementation supported by this CPU architecture (perhaps it's a non-SIMD CPU?).
SIMDJSON_ERR_INCORRECT_TYPE (entier)
Should not happen.
SIMDJSON_ERR_NUMBER_OUT_OF_RANGE (entier)
The JSON number is too large or too small to fit within the requested type. Note that the C simdjson library is a fork and this error is ignored to match php's handling of JSON numbers that are too large or too small.
SIMDJSON_ERR_INDEX_OUT_OF_BOUNDS (entier)
Should not happen.
SIMDJSON_ERR_NO_SUCH_FIELD (entier)
Should not happen.
SIMDJSON_ERR_IO_ERROR (entier)
Should not happen.
SIMDJSON_ERR_INVALID_JSON_POINTER (entier)
Invalid JSON pointer syntax in simdjson_key_value() and other functions accepting a JSON pointer $key.
SIMDJSON_ERR_INVALID_URI_FRAGMENT (entier)
Invalid URI fragment syntax.
SIMDJSON_ERR_UNEXPECTED_ERROR (entier)
Unexpected error, consider reporting this problem as you may have found a bug in the simdjson PECL
SIMDJSON_ERR_PARSER_IN_USE (entier)
Should not happen.
SIMDJSON_ERR_OUT_OF_ORDER_ITERATION (entier)
Should not happen.
SIMDJSON_ERR_INSUFFICIENT_PADDING (entier)
Should not happen.
SIMDJSON_ERR_INCOMPLETE_ARRAY_OR_OBJECT (entier)
JSON document ended early in the middle of an object or array.
SIMDJSON_ERR_SCALAR_DOCUMENT_AS_VALUE (entier)
Should not happen.
SIMDJSON_ERR_OUT_OF_BOUNDS (entier)
Attempted to access location outside of document.
SIMDJSON_ERR_TRAILING_CONTENT (entier)
SIMDJSON_ERR_KEY_COUNT_NOT_COUNTABLE (entier)
SIMDJSON_ERR_INVALID_PROPERTY (entier)
Invalid property name for an stdClass when decoding a value with simdjson_decode() or simdjson_key_value()


Simdjson Fonctions

Sommaire

  • simdjson_decode — Decodes a JSON string
  • simdjson_is_valid — Check if a JSON string is valid
  • simdjson_key_count — Returns the value at a JSON pointer.
  • simdjson_key_exists — Check if the JSON contains the value referred to by a JSON pointer.
  • simdjson_key_value — Decodes the value of a JSON string located at the requested JSON pointer.


Decodes a JSON string

  • « Simdjson Fonctions
  • simdjson_is_valid »
  • PHP Manual
  • Simdjson Fonctions
  • Decodes a JSON string

simdjson_decode

(PECL simdjson >= 2.0.0)

simdjson_decode — Decodes a JSON string

Description

simdjson_decode(string $json, bool $associative = false, int $depth = 512): mixed

Takes a JSON encoded string and converts it into a PHP value. This uses a faster Simultaneous Instruction, Multiple Data implementation than json_decode() when it is supported by the computer architecture.

Liste de paramètres

json

The json string being decoded.

This function only works with UTF-8 encoded strings.

This function parses valid inputs which json_decode() can decode, provided that they are less than 4 GiB long.

associative

When true, JSON objects will be returned as associative tableaus; when false, JSON objects will be returned as objets.

depth

Maximum nesting depth of the structure being decoded. The value must be greater than 0, and less than or equal to 2147483647. Callers should use reasonably small values, because larger depths require more buffer space and will increase the recursion depth, unlike the current json_decode() implementation.

Valeurs de retour

Returns the value encoded in json in appropriate PHP type. Values true, false and null are returned as true, false and null respectively.

Erreurs / Exceptions

If json is invalid, a SimdJsonException is thrown as of PECL simdjson 2.1.0, while previously, a RuntimeException was thrown.

If depth is outside the allowed range, a SimdJsonValueError is thrown as of PECL simdjson 3.0.0, while previously, an error of level E_WARNING was raised.

Exemples

Exemple #1 simdjson_decode() examples

<?php
$json = '{"a":1,"b":2,"c":3}';

var_dump(simdjson_decode($json));
var_dump(simdjson_decode($json, true));

?>

L'exemple ci-dessus va afficher :

object(stdClass)#1 (3) {
  ["a"]=>
  int(1)
  ["b"]=>
  int(2)
  ["c"]=>
  int(3)
}
array(3) {
  ["a"]=>
  int(1)
  ["b"]=>
  int(2)
  ["c"]=>
  int(3)
}

Exemple #2 Accessing invalid object properties

Accessing elements within an object that contain characters not permitted under PHP's naming convention (e.g. the hyphen) can be accomplished by encapsulating the element name within braces and the apostrophe.

<?php

$json = '{"foo-bar": 12345}';

$obj = simdjson_decode($json);
print $obj->{'foo-bar'}; // 12345

?>

Exemple #3 common mistakes using simdjson_decode()

<?php

// the following strings are valid JavaScript but not valid JSON

// the name and value must be enclosed in double quotes
// single quotes are not valid
$bad_json = "{ 'bar': 'baz' }";
simdjson_decode($bad_json); // Throws SimdJsonException

// the name must be enclosed in double quotes
$bad_json = '{ bar: "baz" }';
simdjson_decode($bad_json); // Throws SimdJsonException

// trailing commas are not allowed
$bad_json = '{ bar: "baz", }';
simdjson_decode($bad_json); // Throws SimdJsonException

?>

Exemple #4 depth errors

<?php
// Encode some data with a maximum depth of 4
// (array -> array -> array -> string)
$json = json_encode(
[
1 => [
'English' => [
'One',
'January'
],
'French' => [
'Une',
'Janvier'
]
]
]
);

// Show the errors for different depths.
var_dump(simdjson_decode($json, true, 4));
try {
var_dump(simdjson_decode($json, true, 3));
} catch (SimdJsonException $e) {
echo "Caught: ", $e->getMessage(), "\n";
}
?>

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"
    }
  }
}
Caught: The JSON document was too deep (too many nested objects and arrays)

Exemple #5 simdjson_decode() of large integers

<?php
$json = '{"number": 12345678901234567890}';

var_dump(simdjson_decode($json));

?>

L'exemple ci-dessus va afficher :

object(stdClass)#1 (1) {
  ["number"]=>
  float(1.2345678901235E+19)
}

Notes

Note:

The JSON spec is not JavaScript, but a subset of JavaScript.

Note:

In the event of a failure to decode, a SimdJsonException is thrown and SimdJsonException::getCode() and SimdJsonException::getMessage() can be used to determine the exact nature of the error.

Voir aussi

  • json_encode() - Retourne la représentation JSON d'une valeur
  • json_decode() - Décode une chaîne JSON


Check if a JSON string is valid

  • « simdjson_decode
  • simdjson_key_count »
  • PHP Manual
  • Simdjson Fonctions
  • Check if a JSON string is valid

simdjson_is_valid

(PECL simdjson >= 2.0.0)

simdjson_is_valid — Check if a JSON string is valid

Description

simdjson_is_valid(string $json = false, int $depth = 512): bool

Takes a JSON encoded string and returns true if it is valid.

Liste de paramètres

json

The json string being validated.

This function only works with UTF-8 encoded strings.

This function validates inputs which json_decode() can decode, provided that they are less than 4 GiB long.

depth

Maximum nesting depth of the structure being validated. The value must be greater than 0, and less than or equal to 2147483647. Callers should use reasonably small values, because larger depths require more buffer space and will increase the recursion depth, unlike the current json_decode() implementation.

Valeurs de retour

Returns true if json is a valid JSON string, false otherwise.

Erreurs / Exceptions

If json is longer than 4 GiB, a SimdJsonException is thrown as of PECL simdjson 2.1.0, while previously, a RuntimeException was thrown.

If depth is outside the allowed range, a SimdJsonValueError is thrown as of PECL simdjson 3.0.0, while previously, an error of level E_WARNING was raised.

Exemples

Exemple #1 simdjson_decode() examples

<?php
$json = '{"a":1,"b":2,"c":3}';
$invalidJson = '{"a":1,"b":2,"c":';

var_dump(simdjson_is_valid($json));
var_dump(simdjson_is_valid($invalidJson));

?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)

Exemple #2 depth errors

<?php
// Encode some data with a maximum depth of 4
// (array -> array -> array -> string)
$json = json_encode(
[
1 => [
'English' => [
'One',
'January'
],
'French' => [
'Une',
'Janvier'
]
]
]
);

// Show the errors for different depths.
var_dump(simdjson_is_valid($json, 4));
var_dump(simdjson_is_valid($json, 3));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)

Notes

Note:

The JSON spec is not JavaScript, but a subset of JavaScript.

Note:

In the event of a failure to decode, a SimdJsonException is thrown and SimdJsonException::getCode() and SimdJsonException::getMessage() can be used to determine the exact nature of the error.

Voir aussi

  • json_encode() - Retourne la représentation JSON d'une valeur
  • json_decode() - Décode une chaîne JSON


Returns the value at a JSON pointer.

  • « simdjson_is_valid
  • simdjson_key_exists »
  • PHP Manual
  • Simdjson Fonctions
  • Returns the value at a JSON pointer.

simdjson_key_count

(PECL simdjson >= 2.0.0)

simdjson_key_count — Returns the value at a JSON pointer.

Description

simdjson_key_count(
string $json,
string $key,
int $depth = 512,
bool $throw_if_uncountable = false
): int

Count the number of elements of the object/array found at the requested JSON pointer.

Liste de paramètres

json

The json string being queried.

key

The JSON pointer string.

depth

Maximum nesting depth of the structure being validated. The value must be greater than 0, and less than or equal to 2147483647. Callers should use reasonably small values, because larger depths require more buffer space and will increase the recursion depth, unlike the current json_decode() implementation.

throw_if_uncountable

When true, a SimdJsonException will be thrown instead of returning 0 when the value the JSON pointer points to is neither an object nor an array.

Valeurs de retour

Returns an entier with the number of elements of the value at the given JSON pointer.


Check if the JSON contains the value referred to by a JSON pointer.

  • « simdjson_key_count
  • simdjson_key_value »
  • PHP Manual
  • Simdjson Fonctions
  • Check if the JSON contains the value referred to by a JSON pointer.

simdjson_key_exists

(PECL simdjson >= 2.0.0)

simdjson_key_exists — Check if the JSON contains the value referred to by a JSON pointer.

Description

simdjson_key_exists(string $json, string $key, int $depth = ?): bool

Count the number of elements of the object/array found at the requested JSON pointer.

Liste de paramètres

json

The json string being queried.

key

The JSON pointer string.

depth

Maximum nesting depth of the structure being validated. The value must be greater than 0, and less than or equal to 2147483647. Callers should use reasonably small values, because larger depths require more buffer space and will increase the recursion depth, unlike the current json_decode() implementation.

throw_if_uncountable

When true, a SimdJsonException will be thrown instead of returning 0 when the value the JSON pointer points to is neither an object nor an array.

Valeurs de retour

Returns true if the JSON pointer is valid and refers to a value found within a valid JSON string. Returns false if the JSON is valid but does not contain the JSON pointer.


Decodes the value of a JSON string located at the requested JSON pointer.

  • « simdjson_key_exists
  • SimdJsonException »
  • PHP Manual
  • Simdjson Fonctions
  • Decodes the value of a JSON string located at the requested JSON pointer.

simdjson_key_value

(PECL simdjson >= 2.0.0)

simdjson_key_value — Decodes the value of a JSON string located at the requested JSON pointer.

Description

simdjson_key_value(
string $json,
string $key,
bool $associative = false,
int $depth = 512
): mixed

Decodes and returns the value found at the requested JSON pointer.

Liste de paramètres

json

The json string being queried and decoded.

This function only works with UTF-8 encoded strings.

This function parses valid inputs which json_decode() can decode, provided that they are less than 4 GiB long.

key

The JSON pointer string.

associative

When true, JSON objects will be returned as associative tableaus; when false, JSON objects will be returned as objets.

depth

Maximum nesting depth of the structure being decoded. The value must be greater than 0, and less than or equal to 2147483647. Callers should use reasonably small values, because larger depths require more buffer space and will increase the recursion depth, unlike the current json_decode() implementation.

Valeurs de retour

Returns the part of the value encoded in json that key refers to in appropriate PHP type. Values true, false and null are returned as true, false and null respectively.

Erreurs / Exceptions

If json or key is invalid, or key could not be found within json, a SimdJsonException is thrown as of PECL simdjson 2.1.0, while previously, a RuntimeException was thrown.

If depth is outside the allowed range, a SimdJsonValueError is thrown as of PECL simdjson 3.0.0, while previously, an error of level E_WARNING was raised.

Voir aussi

  • json_encode() - Retourne la représentation JSON d'une valeur
  • simdjson_decode() - Decodes a JSON string


The SimdJsonException class

(PECL simdjson >= 2.1.0)

Introduction

Exception thrown if simdjson_decode(),
simdjson_key_count(),
simdjson_key_exists(),
or simdjson_key_value().

For possible values see the simdjson error codes constants.

Synopsis de la classe

class SimdJsonException extends RuntimeException {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
}


The SimdJsonValueError class

(PECL simdjson >= 3.0.0)

Introduction

A SimdJsonValueError is thrown when the type of an argument to a function from simdjson is correct but the value of it is incorrect. E.g. when the JSON decoding $depth is not positive or the $depth is too large.

Synopsis de la classe

class SimdJsonValueError extends ValueError {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}

Historique

Version | Description
PHP 8.0.0 | SimdJsonValueError extends ValueError now instead of Error.


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 : » https://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

class Lua {
/* Constantes */
const string LUA_VERSION = Lua 5.1.4;
/* Méthodes */
public assign(string $name, string $value): mixed
public call(callable $lua_func, array $args = ?, int $use_self = 0): mixed
public __call(callable $lua_func, array $args = ?, int $use_self = 0): mixed
public __construct(string $lua_script_file = NULL)
public eval(string $statements): mixed
public getVersion(): string
public include(string $file): mixed
public registerCallback(string $name, callable $function): mixed
}

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 Lua::assign(string $name, string $value): mixed

Avertissement

Cette fonction est actuellement non documentée ; 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 Lua::call(callable $lua_func, array $args = ?, int $use_self = 0): mixed
public Lua::__call(callable $lua_func, array $args = ?, int $use_self = 0): mixed

Avertissement

Cette fonction est actuellement non documentée ; 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 est actuellement non documentée ; 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 Lua::eval(string $statements): mixed

Avertissement

Cette fonction est actuellement non documentée ; 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 Lua::getVersion(): string

Avertissement

Cette fonction est actuellement non documentée ; 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 Lua::include(string $file): mixed

Avertissement

Cette fonction est actuellement non documentée ; 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 Lua::registerCallback(string $name, callable $function): mixed

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

class LuaClosure {
/* Méthodes */
public __invoke(mixed ...$args): void
}

Sommaire

  • LuaClosure::__invoke — Appelle luaclosure


Appelle luaclosure

  • « LuaClosure
  • LuaSandbox »
  • PHP Manual
  • LuaClosure
  • Appelle luaclosure

LuaClosure::__invoke

(PECL lua >=0.9.0)

LuaClosure::__invoke — Appelle luaclosure

Description

public LuaClosure::__invoke(mixed ...$args): void

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

args

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);
$closure();
?>

L'exemple ci-dessus va afficher :

hello worldhello world


LuaSandbox

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Differences from Standard Lua
  • Exemples
    • Basic usage for LuaSandbox
  • LuaSandbox — The LuaSandbox class
    • LuaSandbox::callFunction — Call a function in a Lua global variable
    • LuaSandbox::disableProfiler — Disable the profiler
    • LuaSandbox::enableProfiler — Enable the profiler.
    • LuaSandbox::getCPUUsage — Fetch the current CPU time usage of the Lua environment
    • LuaSandbox::getMemoryUsage — Fetch the current memory usage of the Lua environment
    • LuaSandbox::getPeakMemoryUsage — Fetch the peak memory usage of the Lua environment
    • LuaSandbox::getProfilerFunctionReport — Fetch profiler data
    • LuaSandbox::getVersionInfo — Return the versions of LuaSandbox and Lua
    • LuaSandbox::loadBinary — Load a precompiled binary chunk into the Lua environment
    • LuaSandbox::loadString — Load Lua code into the Lua environment
    • LuaSandbox::pauseUsageTimer — Pause the CPU usage timer
    • LuaSandbox::registerLibrary — Register a set of PHP functions as a Lua library
    • LuaSandbox::setCPULimit — Set the CPU time limit for the Lua environment
    • LuaSandbox::setMemoryLimit — Set the memory limit for the Lua environment
    • LuaSandbox::unpauseUsageTimer — Unpause the timer paused by LuaSandbox::pauseUsageTimer
    • LuaSandbox::wrapPhpFunction — Wrap a PHP callable in a LuaSandboxFunction
  • LuaSandboxFunction — The LuaSandboxFunction class
    • LuaSandboxFunction::call — Call a Lua function
    • LuaSandboxFunction::__construct — Unused
    • LuaSandboxFunction::dump — Dump the function as a binary blob
  • LuaSandboxError — The LuaSandboxError class
  • LuaSandboxErrorError — The LuaSandboxErrorError class
  • LuaSandboxFatalError — The LuaSandboxFatalError class
  • LuaSandboxMemoryError — The LuaSandboxMemoryError class
  • LuaSandboxRuntimeError — The LuaSandboxRuntimeError class
  • LuaSandboxSyntaxError — The LuaSandboxSyntaxError class
  • LuaSandboxTimeoutError — The LuaSandboxTimeoutError class


Introduction

LuaSandbox is an extension for PHP 7 and PHP 8 to allow safely running untrusted Lua 5.1 code from within PHP.

Differences compared to the Lua extension:

  • LuaSandbox has support for time and memory limits.

  • LuaSandbox provides a default-safe environment for running untrusted code. Stock Lua functions were reviewed for security, and several were patched accordingly.

  • LuaSandbox has a PHP interface which is more complex, precise and powerful, but it is less convenient for developers.

  • LuaSandbox supports only Lua 5.1. It is difficult to change this, because LuaSandbox uses heavily modified Lua standard libraries, and due to the lack of backwards compatibility between major Lua versions. LuaSandbox aims to maximise backwards compatibility with user-supplied scripts.


Pré-requis

To use this extension, Lua 5.1 will need to be installed, available on the » Lua homepage.

To make full use of the timer features, LuaSandbox should be installed on Linux.

If FreeBSD or Mac OS X is used, only real (wall-clock) time is supported, the functions purporting to return CPU time will actually return wall clock time.

If Windows is used, no timer functions will be supported. The time limits will be inoperable.


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 : » https://pecl.php.net/package/luasandbox.

If the operating system is Debian 10 or later, or Ubuntu 18.04 or later, then LuaSandbox should typically be installed from the package php-luasandbox:

sudo apt-get install php-luasandbox


  • « Configuration à l'exécution
  • Differences from Standard Lua »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

Cette extension ne définit aucune ressource.


Differences from Standard Lua

LuaSandbox provides a sandboxed environment which differs in some ways from standard Lua 5.1.

Features that are not available

  • dofile(), loadfile(), and the io package, as they allow direct filesystem access. If needed, filesystem access should be done via PHP callbacks.

  • The package package, including require() and module(), as it depends heavily on direct filesystem access. A pure-Lua rewrite such as that used in the MediaWiki Scribunto extension may be used instead.

  • load() and loadstring(), to allow for static analysis of Lua code.

  • print(), since it outputs to standard output. If needed, output should be done via PHP callbacks.

  • Most of the os package, as it allows manipulation of the process and executing of other processes.

    • os.clock(), os.date(), os.difftime(), and os.time() remain available.

  • Most of the debug package, as it allows manipulation of Lua state and metadata in ways that can break sandboxing.

    • debug.traceback() remains available.

  • string.dump(), as it may expose internal data.

  • collectgarbage(), gcinfo(), and the coroutine package have not been reviewed for security.

Features that have been modified

  • pcall() and xpcall() cannot catch certain errors, particularly timeout errors.

  • tostring() does not include pointer addresses.

  • string.match() has been patched to limit the recursion depth and to periodically check for a timeout.

  • math.random() and math.randomseed() are replaced with versions that don't share state with PHP's rand().

  • The Lua 5.2 __pairs and __ipairs metamethods are supported by pairs() and ipairs().


  • « Differences from Standard Lua
  • Basic usage for LuaSandbox »
  • PHP Manual
  • LuaSandbox
  • Exemples

Exemples

Sommaire

  • Basic usage for LuaSandbox


Basic usage for LuaSandbox

Once you've compiled PHP with LuaSandbox support, you can begin using LuaSandbox to safely run user-provided Lua code.

Exemple #1 Execute some Lua code

<?php

$sandbox = new LuaSandbox;
$sandbox->setMemoryLimit( 50 * 1024 * 1024 );
$sandbox->setCPULimit( 10 );

// Register some functions in the Lua environment

function frobnosticate( $v ) {
return [ $v + 42 ];
}

$sandbox->registerLibrary( 'php', [
'frobnosticate' => 'frobnosticate',
'output' => function ( $string ) {
echo "$string\n";
},
'error' => function () {
throw new LuaSandboxRuntimeError( "Something is wrong" );
}
] );

// Execute some Lua code, including callbacks into PHP and into Lua

$luaCode = <<<EOF
php.output( "Hello, world" );

return "Hi", function ( v )
return php.frobnosticate( v + 200 )
end
EOF;

list( $hi, $frob ) = $sandbox->loadString( $luaCode )->call();
assert( $frob->call( 4000 ) === [ 4242 ] );

// PHP-thrown LuaSandboxRuntimeError exceptions can be caught inside Lua

list( $ok, $message ) = $sandbox->loadString( 'return pcall( php.error )' )->call();
assert( !$ok );
assert( $message === 'Something is wrong' );

?>


The LuaSandbox class

(PECL luasandbox >= 1.0.0)

Introduction

The LuaSandbox class creates a Lua environment and allows for execution of Lua code.

Synopsis de la classe

class LuaSandbox {
/* Constantes */
const int SAMPLES = 0;
const int SECONDS = 1;
const int PERCENT = 2;
/* Méthodes */
public callFunction(string $name, mixed ...$args): array|bool
public disableProfiler(): void
public enableProfiler(float $period = 0.02): bool
public getCPUUsage(): float
public getMemoryUsage(): int
public getPeakMemoryUsage(): int
public getProfilerFunctionReport(int $units = LuaSandbox::SECONDS): array
public static getVersionInfo(): array
public loadBinary(string $code, string $chunkName = ''): LuaSandboxFunction
public loadString(string $code, string $chunkName = ''): LuaSandboxFunction
public pauseUsageTimer(): bool
public registerLibrary(string $libname, array $functions): void
public setCPULimit(float|bool $limit): void
public setMemoryLimit(int $limit): void
public unpauseUsageTimer(): void
public wrapPhpFunction(callable $function): LuaSandboxFunction
}

Constantes pré-définies

LuaSandbox::SAMPLES

Used with LuaSandbox::getProfilerFunctionReport() to return timings in samples.

LuaSandbox::SECONDS

Used with LuaSandbox::getProfilerFunctionReport() to return timings in seconds.

LuaSandbox::PERCENT

Used with LuaSandbox::getProfilerFunctionReport() to return timings in percentages of the total.

Sommaire

  • LuaSandbox::callFunction — Call a function in a Lua global variable
  • LuaSandbox::disableProfiler — Disable the profiler
  • LuaSandbox::enableProfiler — Enable the profiler.
  • LuaSandbox::getCPUUsage — Fetch the current CPU time usage of the Lua environment
  • LuaSandbox::getMemoryUsage — Fetch the current memory usage of the Lua environment
  • LuaSandbox::getPeakMemoryUsage — Fetch the peak memory usage of the Lua environment
  • LuaSandbox::getProfilerFunctionReport — Fetch profiler data
  • LuaSandbox::getVersionInfo — Return the versions of LuaSandbox and Lua
  • LuaSandbox::loadBinary — Load a precompiled binary chunk into the Lua environment
  • LuaSandbox::loadString — Load Lua code into the Lua environment
  • LuaSandbox::pauseUsageTimer — Pause the CPU usage timer
  • LuaSandbox::registerLibrary — Register a set of PHP functions as a Lua library
  • LuaSandbox::setCPULimit — Set the CPU time limit for the Lua environment
  • LuaSandbox::setMemoryLimit — Set the memory limit for the Lua environment
  • LuaSandbox::unpauseUsageTimer — Unpause the timer paused by LuaSandbox::pauseUsageTimer
  • LuaSandbox::wrapPhpFunction — Wrap a PHP callable in a LuaSandboxFunction


Call a function in a Lua global variable

  • « LuaSandbox
  • LuaSandbox::disableProfiler »
  • PHP Manual
  • LuaSandbox
  • Call a function in a Lua global variable

LuaSandbox::callFunction

(PECL luasandbox >= 1.0.0)

LuaSandbox::callFunction — Call a function in a Lua global variable

Description

public LuaSandbox::callFunction(string $name, mixed ...$args): array|bool

Calls a function in a Lua global variable.

If the name contains "." characters, the function is located via recursive table accesses, as if the name were a Lua expression.

If the variable does not exist, or is not a function, false will be returned and a warning issued.

For more information about calling Lua functions and the return values, see LuaSandboxFunction::call().

Liste de paramètres

name

Lua variable name.

args

Arguments to the function.

Valeurs de retour

Returns an array of values returned by the Lua function, which may be empty, ou false si une erreur survient.

Exemples

Exemple #1 Calling a Lua function

<?php

// create a new LuaSandbox
$sandbox = new LuaSandbox();

// Call Lua's string.match
$captures = $sandbox->callFunction( 'string.match', $string, $pattern );

?>


Disable the profiler

  • « LuaSandbox::callFunction
  • LuaSandbox::enableProfiler »
  • PHP Manual
  • LuaSandbox
  • Disable the profiler

LuaSandbox::disableProfiler

(PECL luasandbox >= 1.1.0)

LuaSandbox::disableProfiler — Disable the profiler

Description

public LuaSandbox::disableProfiler(): void

Disables the profiler.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • LuaSandbox::enableProfiler() - Enable the profiler.
  • LuaSandbox::getProfilerFunctionReport() - Fetch profiler data


Enable the profiler.

  • « LuaSandbox::disableProfiler
  • LuaSandbox::getCPUUsage »
  • PHP Manual
  • LuaSandbox
  • Enable the profiler.

LuaSandbox::enableProfiler

(PECL luasandbox >= 1.1.0)

LuaSandbox::enableProfiler — Enable the profiler.

Description

public LuaSandbox::enableProfiler(float $period = 0.02): bool

Enables the profiler. Profiling will begin when Lua code is entered.

The profiler periodically samples the Lua environment to record the running function. Testing indicates that at least on Linux, setting a period less than 1ms will lead to a high overrun count but no performance problems.

Liste de paramètres

period

Sampling period in seconds.

Valeurs de retour

Returns a boolean indicating whether the profiler is enabled.

Voir aussi

  • LuaSandbox::disableProfiler() - Disable the profiler
  • LuaSandbox::getProfilerFunctionReport() - Fetch profiler data


Fetch the current CPU time usage of the Lua environment

  • « LuaSandbox::enableProfiler
  • LuaSandbox::getMemoryUsage »
  • PHP Manual
  • LuaSandbox
  • Fetch the current CPU time usage of the Lua environment

LuaSandbox::getCPUUsage

(PECL luasandbox >= 1.0.0)

LuaSandbox::getCPUUsage — Fetch the current CPU time usage of the Lua environment

Description

public LuaSandbox::getCPUUsage(): float

Fetches the current CPU time usage of the Lua environment.

This includes time spent in PHP callbacks.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the current CPU time usage in seconds.

Note:

On Windows, this function always returns zero. On operating systems that do not support CLOCK_THREAD_CPUTIME_ID, such as FreeBSD and Mac OS X, this function will return the elapsed wall-clock time, not CPU time.

Voir aussi

  • LuaSandbox::getMemoryUsage() - Fetch the current memory usage of the Lua environment
  • LuaSandbox::getPeakMemoryUsage() - Fetch the peak memory usage of the Lua environment
  • LuaSandbox::setCPULimit() - Set the CPU time limit for the Lua environment


Fetch the current memory usage of the Lua environment

  • « LuaSandbox::getCPUUsage
  • LuaSandbox::getPeakMemoryUsage »
  • PHP Manual
  • LuaSandbox
  • Fetch the current memory usage of the Lua environment

LuaSandbox::getMemoryUsage

(PECL luasandbox >= 1.0.0)

LuaSandbox::getMemoryUsage — Fetch the current memory usage of the Lua environment

Description

public LuaSandbox::getMemoryUsage(): int

Fetches the current memory usage of the Lua environment.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the current memory usage in bytes.

Voir aussi

  • LuaSandbox::getPeakMemoryUsage() - Fetch the peak memory usage of the Lua environment
  • LuaSandbox::getCPUUsage() - Fetch the current CPU time usage of the Lua environment
  • LuaSandbox::setMemoryLimit() - Set the memory limit for the Lua environment


Fetch the peak memory usage of the Lua environment

  • « LuaSandbox::getMemoryUsage
  • LuaSandbox::getProfilerFunctionReport »
  • PHP Manual
  • LuaSandbox
  • Fetch the peak memory usage of the Lua environment

LuaSandbox::getPeakMemoryUsage

(PECL luasandbox >= 1.0.0)

LuaSandbox::getPeakMemoryUsage — Fetch the peak memory usage of the Lua environment

Description

public LuaSandbox::getPeakMemoryUsage(): int

Fetches the peak memory usage of the Lua environment.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the peak memory usage in bytes.

Voir aussi

  • LuaSandbox::getMemoryUsage() - Fetch the current memory usage of the Lua environment
  • LuaSandbox::getCPUUsage() - Fetch the current CPU time usage of the Lua environment
  • LuaSandbox::setMemoryLimit() - Set the memory limit for the Lua environment


Fetch profiler data

  • « LuaSandbox::getPeakMemoryUsage
  • LuaSandbox::getVersionInfo »
  • PHP Manual
  • LuaSandbox
  • Fetch profiler data

LuaSandbox::getProfilerFunctionReport

(PECL luasandbox >= 1.1.0)

LuaSandbox::getProfilerFunctionReport — Fetch profiler data

Description

public LuaSandbox::getProfilerFunctionReport(int $units = LuaSandbox::SECONDS): array

For a profiling instance previously started by LuaSandbox::enableProfiler(), get a report of the cost of each function.

The measurement unit used for the cost is determined by the $units parameter:

LuaSandbox::SAMPLES

Measure in number of samples.

LuaSandbox::SECONDS

Measure in seconds of CPU time.

LuaSandbox::PERCENT

Measure percentage of CPU time.

Liste de paramètres

units

Measurement unit constant.

Valeurs de retour

Returns profiler measurements, sorted in descending order, as an associative array. Keys are the Lua function names (with source file and line defined in angle brackets), values are the measurements as int or float.

Note:

On Windows, this function always returns an empty array. On operating systems that do not support CLOCK_THREAD_CPUTIME_ID, such as FreeBSD and Mac OS X, this function will report the elapsed wall-clock time, not CPU time.

Exemples

Exemple #1 Profiling Lua code

<?php

// create a new LuaSandbox
$sandbox = new LuaSandbox();

// Start the profiler
$sandbox->enableProfiler( 0.01 );

// ... Execute some Lua code here ...

// Fetch the profiler data
$data = $sandbox->getProfilerFunctionReport();

?>


Return the versions of LuaSandbox and Lua

  • « LuaSandbox::getProfilerFunctionReport
  • LuaSandbox::loadBinary »
  • PHP Manual
  • LuaSandbox
  • Return the versions of LuaSandbox and Lua

LuaSandbox::getVersionInfo

(PECL luasandbox >= 1.6.0)

LuaSandbox::getVersionInfo — Return the versions of LuaSandbox and Lua

Description

public static LuaSandbox::getVersionInfo(): array

Returns the versions of LuaSandbox and Lua.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns an array with two keys:

element | type | description
LuaSandbox | string | The version of the LuaSandbox extension.
Lua | string | The library name and version as defined by the LUA_RELEASE macro, for example, "Lua 5.1.5".


Load a precompiled binary chunk into the Lua environment

  • « LuaSandbox::getVersionInfo
  • LuaSandbox::loadString »
  • PHP Manual
  • LuaSandbox
  • Load a precompiled binary chunk into the Lua environment

LuaSandbox::loadBinary

(PECL luasandbox >= 1.0.0)

LuaSandbox::loadBinary — Load a precompiled binary chunk into the Lua environment

Description

public LuaSandbox::loadBinary(string $code, string $chunkName = ''): LuaSandboxFunction

Loads data generated by LuaSandboxFunction::dump().

Liste de paramètres

code

Data from LuaSandboxFunction::dump().

chunkName

Name for the loaded function.

Valeurs de retour

Returns a LuaSandboxFunction.

Voir aussi

  • LuaSandbox::loadString() - Load Lua code into the Lua environment


Load Lua code into the Lua environment

  • « LuaSandbox::loadBinary
  • LuaSandbox::pauseUsageTimer »
  • PHP Manual
  • LuaSandbox
  • Load Lua code into the Lua environment

LuaSandbox::loadString

(PECL luasandbox >= 1.0.0)

LuaSandbox::loadString — Load Lua code into the Lua environment

Description

public LuaSandbox::loadString(string $code, string $chunkName = ''): LuaSandboxFunction

Loads Lua code into the Lua environment.

This is the equivalent of standard Lua's loadstring() function.

Liste de paramètres

code

Lua code.

chunkName

Name for the loaded chunk, for use in error traces.

Valeurs de retour

Returns a LuaSandboxFunction which, when executed, will execute the passed $code.

Exemples

Exemple #1 Loading code into Lua

<?php

// create a new LuaSandbox
$sandbox = new LuaSandbox();

// Load the code
$function = $sandbox->loadString(
<<<CODE
 return "Hello, world"
CODE
);

// Execute the loaded code
var_dump( $function->call() );

?>

L'exemple ci-dessus va afficher :

array(1) {
  [0]=>
  string(12) "Hello, world"
}

Voir aussi

  • LuaSandbox::registerLibrary() - Register a set of PHP functions as a Lua library
  • LuaSandbox::wrapPhpFunction() - Wrap a PHP callable in a LuaSandboxFunction


Pause the CPU usage timer

  • « LuaSandbox::loadString
  • LuaSandbox::registerLibrary »
  • PHP Manual
  • LuaSandbox
  • Pause the CPU usage timer

LuaSandbox::pauseUsageTimer

(PECL luasandbox >= 1.4.0)

LuaSandbox::pauseUsageTimer — Pause the CPU usage timer

Description

public LuaSandbox::pauseUsageTimer(): bool

Pauses the CPU usage timer.

This only has effect when called from within a callback from Lua. When execution returns to Lua, the timer will be automatically unpaused. If a new call into Lua is made, the timer will be unpaused for the duration of that call.

If a PHP callback calls into Lua again with timer not paused, and then that Lua function calls into PHP again, the second PHP call will not be able to pause the timer. The logic is that even though the second PHP call would avoid counting the CPU usage against the limit, the first call still counts it.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a bool indicating whether the timer is now paused.

Exemples

Exemple #1 Manipulating the usage timer

<?php

// create a new LuaSandbox and set a CPU limit
$sandbox = new LuaSandbox();
$sandbox->setCPULimit( 1 );

function doWait( $t ) {
$end = microtime( true ) + $t;
while ( microtime( true ) < $end ) {
// waste CPU cycles
}
}

// Register a PHP callback
$sandbox->registerLibrary( 'php', [
'test' => function () use ( $sandbox ) {
$sandbox->pauseUsageTimer();
doWait( 5 );

$sandbox->unpauseUsageTimer();
doWait( 0.1 );
},
'test2' => function () use ( $sandbox ) {
$sandbox->pauseUsageTimer();
$sandbox->unpauseUsageTimer();
doWait( 1.1 );
}
] );

echo "This should not time out...\n";
$sandbox->loadString( 'php.test()' )->call();

echo "This should time out.\n";
try {
$sandbox->loadString( 'php.test2()' )->call();
echo "It did not?\n";
} catch ( LuaSandboxTimeoutError $ex ) {
echo "It did! " . $ex->getMessage() . "\n";
}

?>

L'exemple ci-dessus va afficher :

This should not time out...
This should time out.
It did! The maximum execution time for this script was exceeded

Voir aussi

  • LuaSandbox::setCPULimit() - Set the CPU time limit for the Lua environment
  • LuaSandbox::unpauseUsageTimer() - Unpause the timer paused by LuaSandbox::pauseUsageTimer


Register a set of PHP functions as a Lua library

  • « LuaSandbox::pauseUsageTimer
  • LuaSandbox::setCPULimit »
  • PHP Manual
  • LuaSandbox
  • Register a set of PHP functions as a Lua library

LuaSandbox::registerLibrary

(PECL luasandbox >= 1.0.0)

LuaSandbox::registerLibrary — Register a set of PHP functions as a Lua library

Description

public LuaSandbox::registerLibrary(string $libname, array $functions): void

Registers a set of PHP functions as a Lua library, so that Lua can call the relevant PHP code.

For more information about calling Lua functions and the return values, see LuaSandboxFunction::call().

Liste de paramètres

libname

The name of the library. In the Lua state, the global variable of this name will be set to the table of functions. If the table already exists, the new functions will be added to it.

functions

An array, where each key is a function name, and each value is a corresponding PHP callable.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Registering PHP functions to call from Lua

<?php

// create a new LuaSandbox
$sandbox = new LuaSandbox();

// Register some functions in the Lua environment

function frobnosticate( $v ) {
return [ $v + 42 ];
}

$sandbox->registerLibrary( 'php', [
'frobnosticate' => 'frobnosticate',
'output' => function ( $string ) {
echo "$string\n";
},
'error' => function () {
throw new LuaSandboxRuntimeError( "Something is wrong" );
}
] );

?>

Voir aussi

  • LuaSandbox::loadString() - Load Lua code into the Lua environment
  • LuaSandbox::wrapPhpFunction() - Wrap a PHP callable in a LuaSandboxFunction


Set the CPU time limit for the Lua environment

  • « LuaSandbox::registerLibrary
  • LuaSandbox::setMemoryLimit »
  • PHP Manual
  • LuaSandbox
  • Set the CPU time limit for the Lua environment

LuaSandbox::setCPULimit

(PECL luasandbox >= 1.0.0)

LuaSandbox::setCPULimit — Set the CPU time limit for the Lua environment

Description

public LuaSandbox::setCPULimit(float|bool $limit): void

Sets the CPU time limit for the Lua environment.

If the total user and system time used by the environment after the call to this method exceeds this limit, a LuaSandboxTimeoutError exception is thrown.

Time used in PHP callbacks is included in the limit.

Setting the time limit from a callback while Lua is running causes the timer to be reset, or started if it was not already running.

Note:

On Windows, the CPU limit will be ignored. On operating systems that do not support CLOCK_THREAD_CPUTIME_ID, such as FreeBSD and Mac OS X, wall-clock time rather than CPU time will be limited.

Liste de paramètres

limit

Limit as a float in seconds, or false for no limit.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Calling a Lua function

<?php

// create a new LuaSandbox
$sandbox = new LuaSandbox();

// set a time limit
$sandbox->setCPULimit( 2 );

// Run Lua code
$sandbox->loadString( 'while true do end' )->call();

?>

Résultat de l'exemple ci-dessus est similaire à :

PHP Fatal error:  Uncaught LuaSandboxTimeoutError: The maximum execution time for this script was exceeded

Voir aussi

  • LuaSandbox::getCPUUsage() - Fetch the current CPU time usage of the Lua environment
  • LuaSandbox::setMemoryLimit() - Set the memory limit for the Lua environment


Set the memory limit for the Lua environment

  • « LuaSandbox::setCPULimit
  • LuaSandbox::unpauseUsageTimer »
  • PHP Manual
  • LuaSandbox
  • Set the memory limit for the Lua environment

LuaSandbox::setMemoryLimit

(PECL luasandbox >= 1.0.0)

LuaSandbox::setMemoryLimit — Set the memory limit for the Lua environment

Description

public LuaSandbox::setMemoryLimit(int $limit): void

Sets the memory limit for the Lua environment.

If this limit is exceeded, a LuaSandboxMemoryError exception is thrown.

Liste de paramètres

limit

Memory limit in bytes.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Calling a Lua function

<?php

// create a new LuaSandbox
$sandbox = new LuaSandbox();

// set a memory limit
$sandbox->setMemoryLimit( 50 * 1024 * 1024 );

// Run Lua code
$sandbox->loadString( 'local x = "x"; while true do x = x .. x; end' )->call();

?>

Résultat de l'exemple ci-dessus est similaire à :

PHP Fatal error:  Uncaught LuaSandboxMemoryError: not enough memory

Voir aussi

  • LuaSandbox::getMemoryUsage() - Fetch the current memory usage of the Lua environment
  • LuaSandbox::getPeakMemoryUsage() - Fetch the peak memory usage of the Lua environment
  • LuaSandbox::setCPULimit() - Set the CPU time limit for the Lua environment


Unpause the timer paused by LuaSandbox::pauseUsageTimer

  • « LuaSandbox::setMemoryLimit
  • LuaSandbox::wrapPhpFunction »
  • PHP Manual
  • LuaSandbox
  • Unpause the timer paused by LuaSandbox::pauseUsageTimer

LuaSandbox::unpauseUsageTimer

(PECL luasandbox >= 1.4.0)

LuaSandbox::unpauseUsageTimer — Unpause the timer paused by LuaSandbox::pauseUsageTimer()

Description

public LuaSandbox::unpauseUsageTimer(): void

Unpauses the timer paused by LuaSandbox::pauseUsageTimer().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • LuaSandbox::pauseUsageTimer() - Pause the CPU usage timer
  • LuaSandbox::setCPULimit() - Set the CPU time limit for the Lua environment


Wrap a PHP callable in a LuaSandboxFunction

  • « LuaSandbox::unpauseUsageTimer
  • LuaSandboxFunction »
  • PHP Manual
  • LuaSandbox
  • Wrap a PHP callable in a LuaSandboxFunction

LuaSandbox::wrapPhpFunction

(PECL luasandbox >= 1.2.0)

LuaSandbox::wrapPhpFunction — Wrap a PHP callable in a LuaSandboxFunction

Description

public LuaSandbox::wrapPhpFunction(callable $function): LuaSandboxFunction

Wraps a PHP callable in a LuaSandboxFunction, so it can be passed into Lua as an anonymous function.

The function must return either an array of values (which may be empty), or null which is equivalent to returning the empty array.

Exceptions will be raised as errors in Lua, however only LuaSandboxRuntimeError exceptions may be caught inside Lua with pcall() or xpcall().

For more information about calling Lua functions and the return values, see LuaSandboxFunction::call().

Liste de paramètres

function

Callable to wrap.

Valeurs de retour

Returns a LuaSandboxFunction.

Voir aussi

  • LuaSandbox::loadString() - Load Lua code into the Lua environment
  • LuaSandbox::registerLibrary() - Register a set of PHP functions as a Lua library


The LuaSandboxFunction class

(PECL luasandbox >= 1.0.0)

Introduction

Represents a Lua function, allowing it to be called from PHP.

A LuaSandboxFunction may be obtained as a return value from Lua, as a parameter
passed to a callback from Lua, or by using
LuaSandbox::wrapPhpFunction(),
LuaSandbox::loadString(), or
LuaSandbox::loadBinary().

Synopsis de la classe

class LuaSandboxFunction {
/* Méthodes */
public call(string ...$args): array|bool
public dump(): string
}

Sommaire

  • LuaSandboxFunction::call — Call a Lua function
  • LuaSandboxFunction::__construct — Unused
  • LuaSandboxFunction::dump — Dump the function as a binary blob


Call a Lua function

  • « LuaSandboxFunction
  • LuaSandboxFunction::__construct »
  • PHP Manual
  • LuaSandboxFunction
  • Call a Lua function

LuaSandboxFunction::call

(PECL luasandbox >= 1.0.0)

LuaSandboxFunction::call — Call a Lua function

Description

public LuaSandboxFunction::call(string ...$args): array|bool

Calls a Lua function.

Errors considered to be the fault of the PHP code will result in the function returning false and E_WARNING being raised, for example, a resource type being used as an argument. Lua errors will result in a LuaSandboxRuntimeError exception being thrown.

PHP and Lua types are converted as follows:

  • PHP null is Lua nil, and vice versa.

  • PHP ints and floats are converted to Lua numbers. Infinity and NAN are supported.

  • Lua numbers without a fractional part between approximately -2**53 and 2**53 are converted to PHP ints, with others being converted to PHP floats.

  • PHP bools are Lua booleans, and vice versa.

  • PHP strings are Lua strings, and vice versa.

  • Lua functions are PHP LuaSandboxFunction objects, and vice versa. General PHP callables are not supported.

  • PHP arrays are converted to Lua tables, and vice versa.

    • Note that Lua typically indexes arrays from 1, while PHP indexes arrays from 0. No adjustment is made for these differing conventions.

    • Self-referential arrays are not supported in either direction.

    • PHP references are dereferenced.

    • Lua __pairs and __ipairs are processed. __index is ignored.

    • When converting from PHP to Lua, integer keys between -2**53 and 2**53 are represented as Lua numbers. All other keys are represented as Lua strings.

    • When converting from Lua to PHP, keys other than strings and numbers will result in an error, as will collisions when converting numbers to strings or vice versa (since PHP considers things like $a[0] and $a["0"] as being equivalent).

  • All other types are unsupported and will raise an error/exception, including general PHP objects and Lua userdata and thread types.

Lua functions inherently return a list of results. So on success, this method returns an array containing all of the values returned by Lua, with int keys starting from zero. Lua may return no results, in which case an empty array is returned.

Liste de paramètres

args

Arguments passed to the function.

Valeurs de retour

Returns an array of values returned by the function, which may be empty, ou false si une erreur survient.


Unused

  • « LuaSandboxFunction::call
  • LuaSandboxFunction::dump »
  • PHP Manual
  • LuaSandboxFunction
  • Unused

LuaSandboxFunction::__construct

(PECL luasandbox >= 1.0.0)

LuaSandboxFunction::__construct — Unused

Description

final private LuaSandboxFunction::__construct()

LuaSandboxFunction are obtained as a return value from Lua,
as a parameter passed to a callback from Lua, or by using
LuaSandbox::wrapPhpFunction(),
LuaSandbox::loadString(), or
LuaSandbox::loadBinary(). They cannot be constructed directly.

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Dump the function as a binary blob

  • « LuaSandboxFunction::__construct
  • LuaSandboxError »
  • PHP Manual
  • LuaSandboxFunction
  • Dump the function as a binary blob

LuaSandboxFunction::dump

(PECL luasandbox >= 1.0.0)

LuaSandboxFunction::dump — Dump the function as a binary blob

Description

public LuaSandboxFunction::dump(): string

Dumps the function as a binary blob.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a string that may be passed to LuaSandbox::loadBinary().


The LuaSandboxError class

(PECL luasandbox >= 1.0.0)

Introduction

Base class for LuaSandbox exceptions

Synopsis de la classe

class LuaSandboxError extends Exception {
/* Constantes */
const int RUN = 2;
const int SYNTAX = 3;
const int MEM = 4;
const int ERR = 5;
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Constantes pré-définies

LuaSandboxError::RUN

LuaSandboxError::SYNTAX

LuaSandboxError::MEM

LuaSandboxError::ERR


The LuaSandboxErrorError class

(PECL luasandbox >= 1.0.0)

Introduction

Exception thrown when Lua encounters an error inside an error handler.

Synopsis de la classe

class LuaSandboxErrorError extends LuaSandboxFatalError {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The LuaSandboxFatalError class

(PECL luasandbox >= 1.0.0)

Introduction

Uncatchable LuaSandbox exceptions.

These may not be caught inside Lua using pcall() or xpcall().

Synopsis de la classe

class LuaSandboxFatalError extends LuaSandboxError {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The LuaSandboxMemoryError class

(PECL luasandbox >= 1.0.0)

Introduction

Exception thrown when Lua cannot allocate memory.

Synopsis de la classe

class LuaSandboxMemoryError extends LuaSandboxFatalError {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Voir aussi

  • LuaSandbox::setMemoryLimit()


The LuaSandboxRuntimeError class

(PECL luasandbox >= 1.0.0)

Introduction

Catchable LuaSandbox runtime exceptions.

These may be caught inside Lua using pcall() or xpcall().

Synopsis de la classe

class LuaSandboxRuntimeError extends LuaSandboxError {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The LuaSandboxSyntaxError class

(PECL luasandbox >= 1.0.0)

Introduction

Exception thrown when Lua code cannot be parsed.

Synopsis de la classe

class LuaSandboxSyntaxError extends LuaSandboxFatalError {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The LuaSandboxTimeoutError class

(PECL luasandbox >= 1.0.0)

Introduction

Exception thrown when the configured CPU time limit is exceeded.

Synopsis de la classe

class LuaSandboxTimeoutError extends LuaSandboxFatalError {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Voir aussi

  • LuaSandbox::setCPULimit()


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 si une constante avec le nom donné existe
    • 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
    • hrtime — Get the system's high resolution time
    • ignore_user_abort — Active l'interruption de script sur déconnexion du visiteur
    • pack — Compacte des données dans une chaîne binaire
    • php_strip_whitespace — Retourne la source sans commentaires, ni espaces blancs
    • sapi_windows_cp_conv — Convert string from one codepage to another
    • sapi_windows_cp_get — Get current codepage
    • sapi_windows_cp_is_utf8 — Indicates whether the codepage is UTF-8 compatible
    • sapi_windows_cp_set — Set process codepage
    • sapi_windows_generate_ctrl_event — Send a CTRL event to another process
    • sapi_windows_set_ctrl_handler — Set or remove a CTRL event handler
    • sapi_windows_vt100_support — Get or set VT100 support for the specified stream associated to an output buffer of a Windows console.
    • 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" | INI_ALL |
highlight.string | "#DD0000" | INI_ALL |
highlight.comment | "#FF8000" | INI_ALL |
highlight.keyword | "#007700" | INI_ALL |
highlight.default | "#0000BB" | INI_ALL |
highlight.html | "#000000" | INI_ALL |
browscap | NULL | INI_SYSTEM |
Pour plus de détails sur les modes 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 (int)
CONNECTION_NORMAL (int)
CONNECTION_TIMEOUT (int)
__COMPILER_HALT_OFFSET__ (int)


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 si une constante avec le nom donné existe
  • 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
  • hrtime — Get the system's high resolution time
  • ignore_user_abort — Active l'interruption de script sur déconnexion du visiteur
  • pack — Compacte des données dans une chaîne binaire
  • php_strip_whitespace — Retourne la source sans commentaires, ni espaces blancs
  • sapi_windows_cp_conv — Convert string from one codepage to another
  • sapi_windows_cp_get — Get current codepage
  • sapi_windows_cp_is_utf8 — Indicates whether the codepage is UTF-8 compatible
  • sapi_windows_cp_set — Set process codepage
  • sapi_windows_generate_ctrl_event — Send a CTRL event to another process
  • sapi_windows_set_ctrl_handler — Set or remove a CTRL event handler
  • sapi_windows_vt100_support — Get or set VT100 support for the specified stream associated to an output buffer of a Windows console.
  • 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, PHP 8)

connection_aborted — Indique si l'internaute a abandonné la connexion HTTP

Description

connection_aborted(): int

Indique si l'internaute a abandonné la connexion HTTP.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

connection_status — Retourne les bits de statut de la connexion HTTP

Description

connection_status(): int

Retourne les bits de statut de la connexion HTTP.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne les bits de statut de la connexion, qui peuvent être utilisés avec les constantes CONNECTION_* pour déterminer l'état 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, PHP 8)

constant — Retourne la valeur d'une constante

Description

constant(string $name): mixed

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 et types enum

Liste de paramètres

name

Le nom de la constante.

Valeurs de retour

Retourne la valeur de la constante.

Erreurs / Exceptions

Si la constante n'est pas définie, une exception Error est levée. Antérieur à PHP 8.0.0, une erreur de niveau E_WARNING était émise dans ce cas.

Historique

Version | Description
8.0.0 | Si la constante n'est pas définit, constant() lance désormais une exception Error ; auparavant une E_WARNING était émise, et null était retourné.

Exemples

Exemple #1 Utilisation de la fonction constant() avec des constantes

<?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!"

?>

Exemple #2 Utilisation de la fonction constant() avec des types enum (à partir de PHP 8.1.0)

<?php

enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}

$case = 'Hearts';

var_dump(constant('Suit::'. $case)); // enum(Suit::Hearts)

?>

Voir aussi

  • define() - Définit une constante
  • defined() - Vérifie si une constante avec le nom donné existe
  • get_defined_constants() - Retourne la liste des constantes et leurs valeurs
  • 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, PHP 8)

define — Définit une constante

Description

define(string $constant_name, mixed $value, bool $case_insensitive = false): bool

Définit une constante à l'exécution.

Liste de paramètres

constant_name

Le nom de la constante.

Note:

Il est possible de définir avec define() des constantes avec des noms réservés ou même invalide, où leur valeur peuvent (seulement) être récupéré avec la fonction constant(). Cependant, faire ceci n'est pas recommandé.

value

La valeur de la constante. En PHP 5, value doit être une valeur scalaire (entier, nombre décimal, chaîne de caractères, booléen, ou null) En PHP 7, les valeurs tableau sont aussi autorisé. Il est techniquement possible de définir des constantes de type ressource, mais cela est fortement déconseillé, et peut causer des comportements inattendus.

Avertissement

Bien qu'il est techniquement possible de définir des constantes de type ressource, ceci est 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.

Avertissement

Définir des constantes insensibles à la casse est obsolète à partir de PHP 7.3.0. À partir de PHP 8.0.0, seul false est une valeur acceptable, passer true produira un avertissement.

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
8.0.0 | Passer true à case_insensitive émet désormais une E_WARNING. Passer false est toujours autorisé.
7.3.0 | case_insensitive est obsolète et sera supprimée dans la version 8.0.0.
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"

?>

Exemple #2 Constantes avec des Noms Réservés

Cet exemple illustre la possibilité de définir une constante avec le même nom qu'une constante magique. Puisque le comportement qui en résout porte à confusion, cette pratique n'est pas recommandée.

<?php
var_dump(defined('__LINE__'));
var_dump(define('__LINE__', 'test'));
var_dump(constant('__LINE__'));
var_dump(__LINE__);
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)
string(4) "test"
int(5)

Voir aussi

  • defined() - Vérifie si une constante avec le nom donné existe
  • constant() - Retourne la valeur d'une constante
  • La section sur les constantes


Vérifie si une constante avec le nom donné existe

  • « define
  • die »
  • PHP Manual
  • Fonctions diverses
  • Vérifie si une constante avec le nom donné existe

defined

(PHP 4, PHP 5, PHP 7, PHP 8)

defined — Vérifie si une constante avec le nom donné existe

Description

defined(string $constant_name): bool

Vérifie si une constante avec le nom constant_name existe.

Cette fonction fonctionne également avec les constantes de classe et les types enum.

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

constant_name

Le nom de la constante.

Valeurs de retour

Retourne true si le nom de la constante fournie par le paramètre constant_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;
}

interface bar {
const test = 'foobar!';
}

class foo {
const test = 'foobar!';
}

var_dump(defined('bar::test')); // bool(true)
var_dump(defined('foo::test')); // bool(true)

?>

Exemple #2 Vérification des types enum (à partir de PHP 8.1.0)

<?php

enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}

var_dump(defined('Suit::Hearts')); // bool(true)
?>

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, PHP 8)

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, PHP 8)

eval — Exécute une chaîne comme un script PHP

Description

eval(string $code): mixed

Évalue le code fourni comme étant du code PHP.

Le code en cours d'évaluation hérite de la portée des variables de la ligne sur laquelle l'appel à eval() a lieu. Toutes les variables disponibles à cette ligne seront accessibles en lecture et modification dans le code évalué. Cependant, toutes les fonctions et classes définies seront définies dans l'espace de noms global. En d'autres termes, le compilateur considère le code évalué comme s'il s'agissait d'un fichier inclus séparé.

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 '<?php 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 !";'.

Mis à 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. À partir de PHP 7, s'il y a une erreur de syntaxe dans le code évalué, eval() lance une exception ParseError. Avant PHP 7, dans ce cas 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 ou arguments nommés.

Astuce

Comme pour toutes les fonctions qui affichent directement des résultats au navigateur, les fonctions de gestion des sorties peuvent être utilisées pour capturer la sortie de cette fonction et l'enregistrer dans une chaîne de caractères (par exemple).

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, PHP 8)

exit — Affiche un message et termine le script courant

Description

exit(string $status = ?): void
exit(int $status): void

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.

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 ou arguments nommés.

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, PHP 8)

get_browser — Indique les capacités du navigateur client

Description

get_browser(?string $user_agent = null, bool $return_array = false): object|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.

Retourne false si aucune information ne peut être récupéré, tel que quand l'option de configuration browscap dans php.ini n'a pas été définie.

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);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

__halt_compiler — Stoppe l'exécution du compilateur

Description

__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.

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 __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, PHP 8)

highlight_file — Colorisation syntaxique d'un fichier

Description

highlight_file(string $filename, bool $return = false): string|bool

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
8.3.0 | Le HTML résultant a changé.

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 la mise en tampon (buffer) interne de sortie, il ne peut donc pas être utilisé dans la fonction de rappel de 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
  • hrtime »
  • PHP Manual
  • Fonctions diverses
  • Applique la syntaxe colorisée à du code PHP

highlight_string

(PHP 4, PHP 5, PHP 7, PHP 8)

highlight_string — Applique la syntaxe colorisée à du code PHP

Description

highlight_string(string $string, bool $return = false): string|bool

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

string

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.

Historique

Version | Description
8.3.0 | Le HTML résultant a changé.

Exemples

Exemple #1 Exemple avec highlight_string()

<?php
highlight_string('<?php phpinfo(); ?>');
?>

L'exemple ci-dessus va afficher :

<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>

Résultat de l'exemple ci-dessus en PHP 8.3 :

<pre><code style="color: #000000"><span style="color: #0000BB">&lt;?php phpinfo</span><span style="color: #007700">(); </span><span style="color: #0000BB">?&gt;</span></code></pre>

Notes

Note:

Lorsque le paramètre return est utilisé, cette fonction utilise la mise en tampon (buffer) interne de sortie, il ne peut donc pas être utilisé dans la fonction de rappel de 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


Get the system's high resolution time

  • « highlight_string
  • ignore_user_abort »
  • PHP Manual
  • Fonctions diverses
  • Get the system's high resolution time

hrtime

(PHP 7 >= 7.3.0, PHP 8)

hrtime — Get the system's high resolution time

Description

hrtime(bool $as_number = false): array|int|float|false

Returns the system's high resolution time, counted from an arbitrary point in time. The delivered timestamp is monotonic and can not be adjusted.

Liste de paramètres

as_number

Whether the high resolution time should be returned as array or number.

Valeurs de retour

Returns an array of integers in the form [seconds, nanoseconds], if the parameter as_number is false. Otherwise the nanoseconds are returned as int (64bit platforms) or float (32bit platforms). Returns false on failure.

Exemples

Exemple #1 hrtime() usage

<?php
echo hrtime(true), PHP_EOL;
print_r(hrtime());
?>

Résultat de l'exemple ci-dessus est similaire à :

10444739687370679
Array
(
    [0] => 10444739
    [1] => 687464812
)

Voir aussi

  • The High resolution timing extension
  • microtime() - Retourne le timestamp UNIX actuel avec les microsecondes


Active l'interruption de script sur déconnexion du visiteur

  • « hrtime
  • pack »
  • PHP Manual
  • Fonctions diverses
  • Active l'interruption de script sur déconnexion du visiteur

ignore_user_abort

(PHP 4, PHP 5, PHP 7, PHP 8)

ignore_user_abort — Active l'interruption de script sur déconnexion du visiteur

Description

ignore_user_abort(?bool $enable = null): int

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 enable soit true

Liste de paramètres

enable

Si définis et non null, la fonction va attribuer à la directive ignore_user_abort la valeur de enable. 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.

Historique

Version | Description
8.0.0 | enable est désormais nullable.

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_strip_whitespace »
  • PHP Manual
  • Fonctions diverses
  • Compacte des données dans une chaîne binaire

pack

(PHP 4, PHP 5, PHP 7, PHP 8)

pack — Compacte des données dans une chaîne binaire

Description

pack(string $format, mixed ...$values): string

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)
g | nombre à virgule flottante (taille dépendantes de la machine, ordre des octets little endian)
G | nombre à virgule flottante (taille dépendantes de la machine, ordre des octets big endian)
d | nombre à virgule flottante double (taille et représentation dépendantes de la machine)
e | nombre à virgule flottante double (taille dépendantes de la machine, ordre des octets little endian)
E | nombre à virgule flottante double (taille dépendantes de la machine, ordre des octets big endian)
x | caractère NUL
X | Recule d'un caractère
Z | Chaîne complétée par la valeur NULL
@ Remplit avec des NUL jusqu'à la position absolue

values

Valeurs de retour

Retourne une chaîne de caractères binaire contenant les données.

Historique

Version | Description
8.0.0 | This function no longer returns false on failure.
7.2.0 | Les types float et double prennent en charge Big Endian et Little Endian.
7.0.15,7.1.1 | Les codes "e", "E", "g" and "G" ont été ajouté pour activer la prise en charge de l'ordre des octets pour les nombres à virgule flottante simple et double précision.

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 int 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'int 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 int si celui-ci était non signé. Sur les systèmes ayant un int d'une taille de 32-bits, le transtypage résulte en un octet identique que si le type int é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 int 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 int 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


Retourne la source sans commentaires, ni espaces blancs

  • « pack
  • sapi_windows_cp_conv »
  • PHP Manual
  • Fonctions diverses
  • Retourne la source sans commentaires, ni espaces blancs

php_strip_whitespace

(PHP 5, PHP 7, PHP 8)

php_strip_whitespace — Retourne la source sans commentaires, ni espaces blancs

Description

php_strip_whitespace(string $filename): string

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 respecte la valeur de la directive INI short_open_tag.

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.


Convert string from one codepage to another

  • « php_strip_whitespace
  • sapi_windows_cp_get »
  • PHP Manual
  • Fonctions diverses
  • Convert string from one codepage to another

sapi_windows_cp_conv

(PHP 7 >= 7.1.0, PHP 8)

sapi_windows_cp_conv — Convert string from one codepage to another

Description

sapi_windows_cp_conv(int|string $in_codepage, int|string $out_codepage, string $subject): ?string

Convert string from one codepage to another.

Liste de paramètres

in_codepage

The codepage of the subject string. Either the codepage name or identifier.

out_codepage

The codepage to convert the subject string to. Either the codepage name or identifier.

subject

The string to convert.

Valeurs de retour

The subject string converted to out_codepage, or null on failure.

Erreurs / Exceptions

This function issues E_WARNING level errors, if invalid codepages are given, or if the subject is not valid for in_codepage.

Voir aussi

  • sapi_windows_cp_get() - Get current codepage
  • iconv() - Convertit une chaîne de caractères à partir d'un encodage vers un autre


Get current codepage

  • « sapi_windows_cp_conv
  • sapi_windows_cp_is_utf8 »
  • PHP Manual
  • Fonctions diverses
  • Get current codepage

sapi_windows_cp_get

(PHP 7 >= 7.1.0, PHP 8)

sapi_windows_cp_get — Get current codepage

Description

sapi_windows_cp_get(string $kind = ""): int

Gets the current codepage.

Liste de paramètres

kind

The kind of operating system codepage to get, either 'ansi' or 'oem'. Any other value refers to the current codepage of the process.

Valeurs de retour

If kind is 'ansi', the current ANSI code page of the operating system is returned. If kind is 'oem', the current OEM code page of the operating system is returned. Otherwise, the current codepage of the process is returned.

Voir aussi

  • sapi_windows_cp_set() - Set process codepage


Indicates whether the codepage is UTF-8 compatible

  • « sapi_windows_cp_get
  • sapi_windows_cp_set »
  • PHP Manual
  • Fonctions diverses
  • Indicates whether the codepage is UTF-8 compatible

sapi_windows_cp_is_utf8

(PHP 7 >= 7.1.0, PHP 8)

sapi_windows_cp_is_utf8 — Indicates whether the codepage is UTF-8 compatible

Description

sapi_windows_cp_is_utf8(): bool

Indicates whether the codepage of the current process is UTF-8 compatible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns whether the codepage of the current process is UTF-8 compatible.

Voir aussi

  • sapi_windows_cp_get() - Get current codepage


Set process codepage

  • « sapi_windows_cp_is_utf8
  • sapi_windows_generate_ctrl_event »
  • PHP Manual
  • Fonctions diverses
  • Set process codepage

sapi_windows_cp_set

(PHP 7 >= 7.1.0, PHP 8)

sapi_windows_cp_set — Set process codepage

Description

sapi_windows_cp_set(int $codepage): bool

Set the codepage of the current process.

Liste de paramètres

codepage

A codepage identifier.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Voir aussi

  • sapi_windows_cp_get() - Get current codepage


Send a CTRL event to another process

  • « sapi_windows_cp_set
  • sapi_windows_set_ctrl_handler »
  • PHP Manual
  • Fonctions diverses
  • Send a CTRL event to another process

sapi_windows_generate_ctrl_event

(PHP 7 >= 7.4.0, PHP 8)

sapi_windows_generate_ctrl_event — Send a CTRL event to another process

Description

sapi_windows_generate_ctrl_event(int $event, int $pid = 0): bool

Sends a CTRL event to another process in the same process group.

Liste de paramètres

event

The CTRL event to send; either PHP_WINDOWS_EVENT_CTRL_C or PHP_WINDOWS_EVENT_CTRL_BREAK.

pid

The ID of the process to which to send the event to. If 0 is given, the event is sent to all processes of the process group.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 Basic sapi_windows_generate_ctrl_event() Usage

This example shows how to pass along CTRL+BREAK events to a child process. In this case the child process echoes I'm still alive every second, until the user presses CTRL+BREAK, what causes only the child process to be terminated.

<?php
// forward CTRL+BREAK events to the child process
sapi_windows_set_ctrl_handler('sapi_windows_generate_ctrl_event');

// create a child process which echoes every second
$cmd = ['php', '-r', 'while (true) { echo "I\'m still alive\n"; sleep(1); }'];
$descspec = array(['pipe', 'r'], ['pipe', 'w'], ['pipe', 'w']);
$options = ['create_process_group' => true];
$proc = proc_open($cmd, $descspec, $pipes, null, null, $options);
while (true) {
echo fgets($pipes[1]);
}
?>

Voir aussi

  • proc_open() - Exécute une commande et ouvre les pointeurs de fichiers pour les entrées / sorties
  • sapi_windows_set_ctrl_handler() - Set or remove a CTRL event handler


Set or remove a CTRL event handler

  • « sapi_windows_generate_ctrl_event
  • sapi_windows_vt100_support »
  • PHP Manual
  • Fonctions diverses
  • Set or remove a CTRL event handler

sapi_windows_set_ctrl_handler

(PHP 7 >= 7.4.0, PHP 8)

sapi_windows_set_ctrl_handler — Set or remove a CTRL event handler

Description

sapi_windows_set_ctrl_handler(?callable $handler, bool $add = true): bool

Sets or removes a CTRL event handler, which allows Windows CLI processes to intercept or ignore CTRL+C and CTRL+BREAK events. Note that in multithreaded environments, this is only possible when called from the main thread.

Liste de paramètres

handler

A callback function to set or remove. If set, this function will be called whenever a CTRL+C or CTRL+BREAK event occurs. The function is supposed to have the following signature:

handler(int $event): void
event
The CTRL event which has been received; either PHP_WINDOWS_EVENT_CTRL_C or PHP_WINDOWS_EVENT_CTRL_BREAK.
Setting a null handler causes the process to ignore CTRL+C events, but not CTRL+BREAK events.

add

If true, the handler is set. If false, the handler is removed.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 Basic sapi_windows_set_ctrl_handler() Usage

This example shows how to intercept CTRL events.

<?php
function ctrl_handler(int $event)
{
switch ($event) {
case PHP_WINDOWS_EVENT_CTRL_C:
echo "You have pressed CTRL+C\n";
break;
case PHP_WINDOWS_EVENT_CTRL_BREAK:
echo "You have pressed CTRL+BREAK\n";
break;
}
}

sapi_windows_set_ctrl_handler('ctrl_handler');
while (true); // infinite loop, so the handler can be triggered
?>

Voir aussi

  • sapi_windows_generate_ctrl_event() - Send a CTRL event to another process


Get or set VT100 support for the specified stream associated to an output buffer of a Windows console.

  • « sapi_windows_set_ctrl_handler
  • show_source »
  • PHP Manual
  • Fonctions diverses
  • Get or set VT100 support for the specified stream associated to an output buffer of a Windows console.

sapi_windows_vt100_support

(PHP 7 >= 7.2.0, PHP 8)

sapi_windows_vt100_support — Get or set VT100 support for the specified stream associated to an output buffer of a Windows console.

Description

sapi_windows_vt100_support(resource $stream, ?bool $enable = null): bool

If enable is null, the function returns true if the stream stream has VT100 control codes enabled, false otherwise.

If enable is a bool, the function will try to enable or disable the VT100 features of the stream stream. If the feature has been successfully enabled (or disabled), the function will return true, or false otherwise.

At startup, PHP tries to enable the VT100 feature of the STDOUT/STDERR streams. By the way, if those streams are redirected to a file, the VT100 features may not be enabled.

If VT100 support is enabled, it is possible to use control sequences as they are known from the VT100 terminal. They allow the modification of the terminal's output. On Windows these sequences are called Console Virtual Terminal Sequences.

Avertissement

This function uses the ENABLE_VIRTUAL_TERMINAL_PROCESSING flag implemented in the Windows 10 API, so the VT100 feature may not be available on older Windows versions.

Liste de paramètres

stream

The stream on which the function will operate.

enable

If bool, the VT100 feature will be enabled (if true) or disabled (if false).

Valeurs de retour

If enable is null: returns true if the VT100 feature is enabled, false otherwise.

If enable is a bool: Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | enable is now nullable.

Exemples

Exemple #1 sapi_windows_vt100_support() default state

By default, STDOUT and STDERR have the VT100 feature enabled.

php -r "var_export(sapi_windows_vt100_support(STDOUT));echo ' ';var_export(sapi_windows_vt100_support(STDERR));"

Résultat de l'exemple ci-dessus est similaire à :

true true

By the way, if a stream is redirected, the VT100 feature will not be enabled:

php -r "var_export(sapi_windows_vt100_support(STDOUT));echo ' ';var_export(sapi_windows_vt100_support(STDERR));" 2>NUL

Résultat de l'exemple ci-dessus est similaire à :

true false

Exemple #2 sapi_windows_vt100_support() changing state

You won't be able to enable the VT100 feature of STDOUT or STDERR if the stream is redirected.

php -r "var_export(sapi_windows_vt100_support(STDOUT, true));echo ' ';var_export(sapi_windows_vt100_support(STDERR, true));" 2>NUL

Résultat de l'exemple ci-dessus est similaire à :

true false

Exemple #3 Example usage of VT100 support enabled

<?php
$out = fopen('php://stdout','w');
fwrite($out, 'Just forgot a lettr.');
// Moves the cursor two characters backwards
fwrite($out, "\033[2D");
// Inserts one blank, shifting existing text to the right -> Just forgot a lett r.
fwrite($out, "\033[1@");
fwrite($out, 'e');
?>

L'exemple ci-dessus va afficher :

Just forgot a letter.


Alias de highlight_file

  • « sapi_windows_vt100_support
  • sleep »
  • PHP Manual
  • Fonctions diverses
  • Alias de highlight_file

show_source

(PHP 4, PHP 5, PHP 7, PHP 8)

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, PHP 8)

sleep — Arrête l'exécution durant quelques secondes

Description

sleep(int $seconds): int

Arrête l'exécution du programme pendant seconds secondes.

Note:

Afin de retarder l'exécution d'un programme pendant une fraction de seconde, utilisez la fonction usleep() car la fonction sleep() attend un entier. Par exemple, sleep(0.25) retardera l'exécution du programme pendant 0 seconde.

Liste de paramètres

seconds

Le temps d'arret, en nombre de secondes (doit être supérieur ou égal à 0).

Valeurs de retour

Retourne zéro en cas de succès.

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

Une ValueError est lancée si le nombre seconds spécifié est négatif.

Historique

Version | Description
8.0.0 | La fonction lance une ValueError si seconds est négatif; auparavant, une erreur de niveau E_WARNING était levée, et la fonction retournait false.

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, PHP 8)

sys_getloadavg — Récupère la charge moyenne du système

Description

sys_getloadavg(): array|false

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un array avec trois échantillons (dernières 1, 5 et 15 minutes). Retourne false en cas d'échec.

Exemples

Exemple #1 Exemple avec sys_getloadavg()

<?php
$load = sys_getloadavg();
if ($load[0] > 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 sur les plates-formes 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, PHP 8)

time_nanosleep — Attendre pendant un nombre de secondes et de nanosecondes

Description

time_nanosleep(int $seconds, int $nanoseconds): array|bool

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.

Note: Sous Windows, le système peut attendre plus longtemps que le nombre de nanosecondes donné, selon le matériel.

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

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, PHP 8)

time_sleep_until — Arrête le script pendant une durée spécifiée

Description

time_sleep_until(float $timestamp): bool

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.

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, PHP 8)

uniqid — Génère un identifiant unique

Description

uniqid(string $prefix = "", bool $more_entropy = false): string

Génère un identifiant unique, préfixé, basé sur la date et heure courante en microsecondes.

Attention

Cette fonction ne génère pas de valeurs cryptographiquement sûres, et ne doit pas être utilisée à des fins cryptographiques, ou à des fins qui exigent que les valeurs renvoyées soient indéchiffrables.

Si de l'aléatoire cryptographiquement sûre est requis, le Random\Randomizer peut être utilisé avec le moteur Random\Engine\Secure. Pour des cas d'usage simple, les fonctions random_int() et random_bytes() fournissent une API pratique et sûre qui est qui est soutenu par le CSPRNG du système d'exploitation.

Avertissement

Cette fonction ne garantie pas l'unicité des valeurs de retour. Car la plupart des systèmes ajustent l'horloge système par NTP ou similaire; l'horloge système est modifiée constament. Par conséquent, il est possible que cette fonction ne retourne pas un ID unique pour le processus/thread. Utiliser more_entropy pour augmenter la probabilité d'unicité.

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 basé sur l'horodatage, sous la forme d'une chaîne de caractères.

Avertissement

Cette fonction tente de créer un identifiant unique, mais l'unicité de la valeur de retour n'est pas garantie à 100%.

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

Note:

Sous Cygwin, le paramètre more_entropy doit être passé à true pour que cette fonction fonctionne.

Voir aussi

  • random_bytes() - Récupère des octets aléatoires cryptographiquement sécurisés


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, PHP 8)

unpack — Déconditionne des données depuis une chaîne binaire

Description

unpack(string $format, string $string, int $offset = 0): array|false

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.

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.

Liste de paramètres

format

Voir la fonction pack() pour une explication des codes de format.

string

Les données conditionnées.

offset

La position où débuter le déconditionnement.

Valeurs de retour

Retourne un tableau associatif contenant les éléments déconditionnés d'une chaîne binaire, ou false si une erreur survient.

Historique

Version | Description
7.2.0 | Les types float et double supporte à la fois l'orientation Big Endian et Little Endian.
7.1.0 | La position offset optionnelle à été ajouté.

Exemples

Exemple #1 Exemple avec unpack()

<?php
$binarydata = "\x04\x00\xa0\x00";
$array = unpack("cchars/nint", $binarydata);
print_r($array);
?>

L'exemple ci-dessus va afficher :

Array
(
    [chars] => 4
    [int] => 160
)

Exemple #2 Exemple avec unpack() et un argument de répétition

<?php
$binarydata = "\x04\x00\xa0\x00";
$array = unpack("c2chars/nint", $binarydata);
print_r($array);
?>

L'exemple ci-dessus va afficher :

Array
(
    [chars1] => 4
    [chars2] => 0
    [int] => 40960
)

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

Si vous ne nommez pas un élément, les index numériques à partir de 1 sont utilisés. Sachez que si vous avez plus d'un élément sans nom, certaines données sont écrasées parce que la numérotation redémarre à partir de 1 pour chaque élément.

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);
?>

L'exemple ci-dessus va afficher :

array(2) {
  [1]=>
  int(160)
  [2]=>
  int(66)
}

Notez que 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, PHP 8)

usleep — Arrête l'exécution durant quelques microsecondes

Description

usleep(int $microseconds): void

Arrête l'exécution d'un programme durant un laps de temps.

Liste de paramètres

microseconds

Durée de l'arrêt, en microsecondes. Une microseconde est un millionième de seconde.

Note: Les valeurs plus large que 1000000 (c.à.d. dormir pour plus d'une seconde) peuvent ne pas être supporté par le système d'exploitation. Utiliser sleep() à la place.

Note: Le temps d'arrêt peut être légèrement allongé (c'est-à-dire qu'il peut être plus long que microseconds) par toute activité du système ou par le temps passé à traiter l'appel ou par la granularité des temporisateurs du système.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec usleep()

<?php

// Heure courante
echo (new DateTime('now'))->format('H:i:s.v'), "\n";

// Stoppe pour 2 millisecondes
usleep(2000);

// Retour !
echo (new DateTime('now'))->format('H:i:s.v'), "\n";

// wait for 30 milliseconds
usleep(30000);

// back again!
echo (new DateTime('now'))->format('H:i:s.v'), "\n";

?>

L'exemple ci-dessus va afficher :

11:13:28.005
11:13:28.007
11:13:28.037

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


Générateurs de nombres aléatoires et fonctions liées à l'aléatoire.

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
  • Random Fonctions
    • getrandmax — Plus grande valeur aléatoire possible
    • lcg_value — Générateur de congruence combinée linéaire
    • mt_getrandmax — La plus grande valeur aléatoire possible
    • mt_rand — Génère une valeur aléatoire via le générateur de nombre aléatoire Mersenne Twister
    • mt_srand — Initialise le générateur de nombres aléatoires Mersenne Twister
    • rand — Génère une valeur aléatoire
    • random_bytes — Récupère des octets aléatoires cryptographiquement sécurisés
    • random_int — Récupère un entier sélectionné de manière uniforme et cryptographiquement sécurisée
    • srand — Initialise le générateur de nombres aléatoires
  • Random\Randomizer — La classe Random\Randomizer
    • Random\Randomizer::__construct — Constructs a new Randomizer
    • Random\Randomizer::getBytes — Get random bytes
    • Random\Randomizer::getBytesFromString — Get random bytes from a source string
    • Random\Randomizer::getFloat — Get a uniformly selected float
    • Random\Randomizer::getInt — Get a uniformly selected integer
    • Random\Randomizer::nextFloat — Get a float from the right-open interval [0.0, 1.0)
    • Random\Randomizer::nextInt — Get a positive integer
    • Random\Randomizer::pickArrayKeys — Select random array keys
    • Random\Randomizer::__serialize — Serializes the Randomizer object
    • Random\Randomizer::shuffleArray — Get a permutation of an array
    • Random\Randomizer::shuffleBytes — Get a byte-wise permutation of a string
    • Random\Randomizer::__unserialize — Deserializes the data parameter into a Randomizer object
  • Random\Engine — L'interface Random\Engine
    • Random\Engine::generate — Génère de l'aléatoire
  • Random\CryptoSafeEngine — L'interface Random\CryptoSafeEngine
  • Random\Engine\Secure — La classe Random\Engine\Secure
    • Random\Engine\Secure::generate — Generate cryptographically secure randomness
  • Random\Engine\Mt19937 — La classe Random\Engine\Mt19937
    • Random\Engine\Mt19937::__construct — Constructs a new Mt19937 engine
    • Random\Engine\Mt19937::__debugInfo — Returns the internal state of the engine
    • Random\Engine\Mt19937::generate — Generate 32 bits of randomness
    • Random\Engine\Mt19937::__serialize — Serializes the Mt19937 object
    • Random\Engine\Mt19937::__unserialize — Deserializes the data parameter into a Mt19937 object
  • Random\Engine\PcgOneseq128XslRr64 — La classe Random\Engine\PcgOneseq128XslRr64
    • Random\Engine\PcgOneseq128XslRr64::__construct — Constructs a new PCG Oneseq 128 XSL RR 64 engine
    • Random\Engine\PcgOneseq128XslRr64::__debugInfo — Returns the internal state of the engine
    • Random\Engine\PcgOneseq128XslRr64::generate — Generate 64 bits of randomness
    • Random\Engine\PcgOneseq128XslRr64::jump — Efficiently move the engine ahead multiple steps
    • Random\Engine\PcgOneseq128XslRr64::__serialize — Serializes the PcgOneseq128XslRr64 object
    • Random\Engine\PcgOneseq128XslRr64::__unserialize — Deserializes the data parameter into a PcgOneseq128XslRr64 object
  • Random\Engine\Xoshiro256StarStar — La classe Random\Engine\Xoshiro256StarStar
    • Random\Engine\Xoshiro256StarStar::__construct — Constructs a new xoshiro256** engine
    • Random\Engine\Xoshiro256StarStar::__debugInfo — Returns the internal state of the engine
    • Random\Engine\Xoshiro256StarStar::generate — Generate 64 bits of randomness
    • Random\Engine\Xoshiro256StarStar::jump — Efficiently move the engine ahead by 2^128 steps
    • Random\Engine\Xoshiro256StarStar::jumpLong — Efficiently move the engine ahead by 2^192 steps
    • Random\Engine\Xoshiro256StarStar::__serialize — Serializes the Xoshiro256StarStar object
    • Random\Engine\Xoshiro256StarStar::__unserialize — Deserializes the data parameter into a Xoshiro256StarStar object
  • Random\RandomError — La classe Random\RandomError
  • Random\BrokenRandomEngineError — La classe Random\BrokenRandomineError
  • Random\RandomException — La classe Random\RandomException


  • « Random
  • Installation/Configuration »
  • PHP Manual
  • Random
  • Introduction

Introduction


Constantes pré-définies

Les constantes listées ici sont toujours disponibles dans PHP.

MT_RAND_MT19937 (int)
Indique que la bonne implémentation de » Mt19937 (Mersenne Twister) sera utilisée par l'algorithme lors de la création d'une instance de Random\Engine\Mt19937 en utilisant Random\Engine\Mt19937::__construct() ou en initialisant le Mersenne Twister global avec mt_srand().
MT_RAND_PHP (int)
Indique qu'une implémentation incorrecte de Mersenne Twister sera utilisée par l'algorithme, lors de la création d'une instance de Random\Engine\Mt19937 en utilisant Random\Engine\Mt19937::__construct() ou en initialisant le Mersenne Twister global avec mt_srand(). L'implémentation incorrecte est disponible pour assurer la compatibilité ascendante avec mt_srand() antérieure à PHP 7.1.0.
Avertissement

Cette fonctionnalité est OBSOLÈTE à partir de PHP 8.3.0. Dépendre de cette fonctionnalité est fortement déconseillé.


Exemples

Exemple #1 Exemple Random

<?php

/* ... */

?>

Résultat de l'exemple ci-dessus est similaire à :

...


Random Fonctions

Sommaire

  • getrandmax — Plus grande valeur aléatoire possible
  • lcg_value — Générateur de congruence combinée linéaire
  • mt_getrandmax — La plus grande valeur aléatoire possible
  • mt_rand — Génère une valeur aléatoire via le générateur de nombre aléatoire Mersenne Twister
  • mt_srand — Initialise le générateur de nombres aléatoires Mersenne Twister
  • rand — Génère une valeur aléatoire
  • random_bytes — Récupère des octets aléatoires cryptographiquement sécurisés
  • random_int — Récupère un entier sélectionné de manière uniforme et cryptographiquement sécurisée
  • srand — Initialise le générateur de nombres aléatoires


Plus grande valeur aléatoire possible

  • « Random Fonctions
  • lcg_value »
  • PHP Manual
  • Random Fonctions
  • Plus grande valeur aléatoire possible

getrandmax

(PHP 4, PHP 5, PHP 7, PHP 8)

getrandmax — Plus grande valeur aléatoire possible

Description

getrandmax(): int

Retourne la plus grande valeur aléatoire possible retournée par rand().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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


Générateur de congruence combinée linéaire

  • « getrandmax
  • mt_getrandmax »
  • PHP Manual
  • Random Fonctions
  • Générateur de congruence combinée linéaire

lcg_value

(PHP 4, PHP 5, PHP 7, PHP 8)

lcg_value — Générateur de congruence combinée linéaire

Description

lcg_value(): float

lcg_value() retourne un nombre pseudo alé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)).

Attention

Cette fonction ne génère pas de valeurs cryptographiquement sûres, et ne doit pas être utilisée à des fins cryptographiques, ou à des fins qui exigent que les valeurs renvoyées soient indéchiffrables.

Si de l'aléatoire cryptographiquement sûre est requis, le Random\Randomizer peut être utilisé avec le moteur Random\Engine\Secure. Pour des cas d'usage simple, les fonctions random_int() et random_bytes() fournissent une API pratique et sûre qui est qui est soutenu par le CSPRNG du système d'exploitation.

Attention

Mettre à l'échelle la valeur de retour vers un intervalle différent en utilisant la multiplication ou l'addition (une transformation affine) peut entraîner un biais dans la valeur résultante car les nombres flottants ne sont pas également répartis sur la ligne des nombres. Comme toutes les valeurs ne peuvent pas être exactement représentées par un nombre flottant, le résultat de la transformation affine peut également donner des valeurs en dehors de l'intervalle demandé.

Utilisez Random\Randomizer::getFloat() pour générer un nombre flottant aléatoire dans un intervalle arbitraire. Utilisez Random\Randomizer::getInt() pour générer un entier aléatoire dans un intervalle arbitraire.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une valeur pseudo aléatoire, dans l'intervalle de 0.0 à 1.0 inclus.

Voir aussi

  • Random\Randomizer::getFloat() - Get a uniformly selected float
  • Random\Randomizer::getInt() - Get a uniformly selected integer
  • random_int() - Récupère un entier sélectionné de manière uniforme et cryptographiquement sécurisée


La plus grande valeur aléatoire possible

  • « lcg_value
  • mt_rand »
  • PHP Manual
  • Random Fonctions
  • La plus grande valeur aléatoire possible

mt_getrandmax

(PHP 4, PHP 5, PHP 7, PHP 8)

mt_getrandmax — La plus grande valeur aléatoire possible

Description

mt_getrandmax(): int

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).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la plus grande valeur aléatoire possible retournée par la fonction mt_rand()

Voir aussi

  • mt_rand() - Génère une valeur aléatoire via le générateur de nombre aléatoire Mersenne Twister
  • mt_srand() - Initialise le générateur de nombres aléatoires Mersenne Twister
  • getrandmax() - Plus grande valeur aléatoire possible


Génère une valeur aléatoire via le générateur de nombre aléatoire Mersenne Twister

  • « mt_getrandmax
  • mt_srand »
  • PHP Manual
  • Random Fonctions
  • Génère une valeur aléatoire via le générateur de nombre aléatoire Mersenne Twister

mt_rand

(PHP 4, PHP 5, PHP 7, PHP 8)

mt_rand — Génère une valeur aléatoire via le générateur de nombre aléatoire Mersenne Twister

Description

mt_rand(): int
mt_rand(int $min, int $max): int

De nombreux générateurs de nombres aléatoires provenant de vieilles bibliothèques libcs ont des comportements douteux et sont très lents. mt_rand() est une fonction de remplacement pour rand(). 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).

Attention

Cette fonction ne génère pas de valeurs cryptographiquement sûres, et ne doit pas être utilisée à des fins cryptographiques, ou à des fins qui exigent que les valeurs renvoyées soient indéchiffrables.

Si de l'aléatoire cryptographiquement sûre est requis, le Random\Randomizer peut être utilisé avec le moteur Random\Engine\Secure. Pour des cas d'usage simple, les fonctions random_int() et random_bytes() fournissent une API pratique et sûre qui est qui est soutenu par le CSPRNG du système d'exploitation.

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
7.2.0 | mt_rand() a reçu une correction de bogue pour un bug de polarisation modulo. Cela signifie que les séquences générées avec une valeur d'initialisation spécifique peuvent différer de php 7.1 sur les machines 64-bit.
7.1.0 | rand() est devenu un alias de mt_rand().
7.1.0 | mt_rand() a été mis à jour pour utiliser la version corrigée, correcte, de l'algorithme Twister Mersenne. Pour revenir à l'ancien comportement, utilisez mt_srand() avec MT_RAND_PHP comme deuxième paramètre.

Exemples

Exemple #1 Exemple avec mt_rand()

<?php
echo mt_rand(), "\n";
echo mt_rand(), "\n";

echo mt_rand(5, 15), "\n";
?>

Résultat de l'exemple ci-dessus est similaire à :

1604716014
1478613278
6

Notes

Avertissement

La plage min max doit se situer dans la plage mt_getrandmax(). i.e. max - min) <= mt_getrandmax() sinon, mt_rand() peut retourner des nombres aléatoires plus pauvres qu'il ne le devrait.

Voir aussi

  • mt_srand() - Initialise le générateur de nombres aléatoires Mersenne Twister
  • mt_getrandmax() - La plus grande valeur aléatoire possible
  • random_int() - Récupère un entier sélectionné de manière uniforme et cryptographiquement sécurisée
  • random_bytes() - Récupère des octets aléatoires cryptographiquement sécurisés


Initialise le générateur de nombres aléatoires Mersenne Twister

  • « mt_rand
  • rand »
  • PHP Manual
  • Random Fonctions
  • Initialise le générateur de nombres aléatoires Mersenne Twister

mt_srand

(PHP 4, PHP 5, PHP 7, PHP 8)

mt_srand — Initialise le générateur de nombres aléatoires Mersenne Twister

Description

mt_srand(?int $seed = null, int $mode = MT_RAND_MT19937): void

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.

Note: Il n'est pas nécessaire d'initialiser le générateur de nombres aléatoires avec srand() ou mt_srand(), ceci est fait automatiquement.

Attention

Étant donné que le moteur Mt19937 ("Mersenne Twister") prend un seul entier de 32 bits en tant que graine, le nombre de séquences aléatoires possibles est limité à seulement 232 (par exemple 4 294 967 296), malgré la période énorme de Mt19937 de 219937-1.

Quand on se fie à une graine aléatoire implicite ou explicite, les duplications apparaîtront beaucoup plus tôt. Les graines dupliquées sont attendues avec une probabilité de 50% après moins de 80 000 graines générées aléatoirement selon le problème d anniversaire. Une probabilité de 10% d une graine dupliquée se produit après avoir généré environ 30 000 graines de manière aléatoire.

Cela rend Mt19937 inadapté aux applications où les séquences dupliquées ne doivent pas se produire avec plus qu une probabilité négligeable. Si une graine reproductible est requise, à la fois le moteur Random\Engine\Xoshiro256StarStar et Random\Engine\PcgOneseq128XslRr64 supportent des graines beaucoup plus grandes qui sont peu susceptibles de se heurter de manière aléatoire. Si la reproductibilité n'est pas requise, le moteur Random\Engine\Secure fournit des données aléatoires cryptographiquement sécurisées.

Liste de paramètres

seed

Remplit l'état avec des valeurs générées par un générateur congruentiel linéaire qui a été initialisé avec seed interprété comme un entier non signé de 32 bits.

Si seed est omis ou null, un entier non signé de 32 bits sera utilisé de manière aléatoire.

mode

Utilisez une des constantes suivantes pour spécifier l'implémentation de l'algorithme à utiliser.

  • MT_RAND_MT19937: La bonne implémentation Mt19937, disponible à partir de PHP 7.1.0.
  • MT_RAND_PHP Utilise une implémentation incorrecte de Mersenne Twister qui était la valeur par défaut avant PHP 7.1.0. Ce mode est disponible pour assurer la compatibilité ascendante.

Avertissement

Cette fonctionnalité est OBSOLÈTE à partir de PHP 8.3.0. Dépendre de cette fonctionnalité est fortement déconseillé.

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version | Description
8.3.0 | seed est désormais nullable.
7.1.0 | srand() a été changé pour être un alias de mt_srand().
7.1.0 | mt_rand() a été mis à jour pour utiliser la version corrigé, correcte de l'algorithme de Mersenne Twister. Pour retourner à l'ancien comportement, utilisez mt_srand() avec MT_RAND_PHP comme deuxième paramètre.

Voir aussi

  • mt_rand() - Génère une valeur aléatoire via le générateur de nombre aléatoire Mersenne Twister
  • mt_getrandmax() - La plus grande valeur aléatoire possible
  • srand() - Initialise le générateur de nombres aléatoires


Génère une valeur aléatoire

  • « mt_srand
  • random_bytes »
  • PHP Manual
  • Random Fonctions
  • Génère une valeur aléatoire

rand

(PHP 4, PHP 5, PHP 7, PHP 8)

rand — Génère une valeur aléatoire

Description

rand(): int
rand(int $min, int $max): int

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).

Attention

Cette fonction ne génère pas de valeurs cryptographiquement sûres, et ne doit pas être utilisée à des fins cryptographiques, ou à des fins qui exigent que les valeurs renvoyées soient indéchiffrables.

Si de l'aléatoire cryptographiquement sûre est requis, le Random\Randomizer peut être utilisé avec le moteur Random\Engine\Secure. Pour des cas d'usage simple, les fonctions random_int() et random_bytes() fournissent une API pratique et sûre qui est qui est soutenu par le CSPRNG du système d'exploitation.

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.

Note: À partir de php 7.1.0, rand() utilise le même générateur de nombres aléatoires que mt_rand(). Pour préserver la compatibilité ascendante, rand() permet à max d'être plus petit que min par opposition au retour false de mt_rand()

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).

Historique

Version | Description
7.2.0 | rand() a reçu une correction de bogue pour un bug de polarisation modulo. Cela signifie que les séquences générées dans certain cas spécifiques peuvent différer de php 7.1 sur les machines 64-bit.
7.1.0 | rand() a été fait un alias de mt_rand().

Exemples

Exemple #1 Exemple avec rand()

<?php
echo rand(), "\n";
echo rand(), "\n";

echo rand(5, 15), "\n";
?>

Résultat de l'exemple ci-dessus est similaire à :

7771
22264
11

Notes

Avertissement

La plage min max doit se situer dans la plage getrandmax(). i.e. (max - min) <= getrandmax() sinon, rand() peut retourner des nombres aléatoires de mauvaise qualité.

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 valeur aléatoire via le générateur de nombre aléatoire Mersenne Twister
  • random_int() - Récupère un entier sélectionné de manière uniforme et cryptographiquement sécurisée
  • random_bytes() - Récupère des octets aléatoires cryptographiquement sécurisés


Récupère des octets aléatoires cryptographiquement sécurisés

  • « rand
  • random_int »
  • PHP Manual
  • Random Fonctions
  • Récupère des octets aléatoires cryptographiquement sécurisés

random_bytes

(PHP 7, PHP 8)

random_bytes — Récupère des octets aléatoires cryptographiquement sécurisés

Description

random_bytes(int $length): string

Génère une chaîne contenant des octets aléatoires uniformément sélectionnés avec la valeur de length.

Les octets retournés étant choisis de manière totalement aléatoire, la chaîne résultante contiendra probablement des caractères non imprimables ou des séquences UTF-8 invalides. Il peut être nécessaire de l'encoder avant la transmission ou l'affichage.

La randomisation générée par cette fonction est adaptée à toutes les applications, y compris la génération de secrets à long terme, tels que des clés de chiffrement.

Les sources de hasard par ordre de priorité sont les suivantes :

  • Linux: » getrandom(), /dev/urandom

  • FreeBSD >= 12 (PHP >= 7.3): » getrandom(), /dev/urandom

  • Windows (PHP >= 7.2): » CNG-API

    Windows: » CryptGenRandom

  • macOS (PHP >= 8.2; >= 8.1.9; >= 8.0.22 si CCRandomGenerateBytes est disponible au moment de la compilation): CCRandomGenerateBytes()

    macOS (PHP >= 8.1; >= 8.0.2): arc4random_buf(), /dev/urandom

  • NetBSD >= 7 (PHP >= 7.1; >= 7.0.1): arc4random_buf(), /dev/urandom

  • OpenBSD >= 5.5 (PHP >= 7.1; >= 7.0.1): arc4random_buf(), /dev/urandom

  • DragonflyBSD (PHP >= 8.1): » getrandom(), /dev/urandom

  • Solaris (PHP >= 8.1): » getrandom(), /dev/urandom

  • Toute combinaison d'un système d'exploitation et d'une version de PHP non mentionnée précédemment: /dev/urandom.
  • Si aucune des sources de hasard n'est disponible ou si elles échouent toutes à générer de l'aléatoire, une exception de type Random\RandomException sera levée.

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

La longueur de la chaîne de caractères aléatoire qui doit être retournée en octets; doit être supérieur ou égal à 1.

Valeurs de retour

Retourne une chaîne de caractères contenant le nombre demandé d'octets cryptographiquement sécurisés.

Erreurs / Exceptions

  • Si aucune source de données aléatoires n'est trouvée, une Random\RandomException sera lancée.
  • Si la valeur de length est inférieure à 1, une ValueError sera lancée.

Historique

Version | Description
8.2.0 | En cas d'échec CSPRNG, cette fonction lancera désormais une Random\RandomException. Auparavant une Exception basique était lancé.

Exemples

Exemple #1 Exemple avec random_bytes()

<?php
$bytes = random_bytes(5);
var_dump(bin2hex($bytes));
?>

Résultat de l'exemple ci-dessus est similaire à :

string(10) "385e33f741"

Voir aussi

  • Random\Randomizer::getBytes() - Get random bytes
  • random_int() - Récupère un entier sélectionné de manière uniforme et cryptographiquement sécurisée
  • bin2hex() - Convertit des données binaires en représentation hexadécimale
  • base64_encode() - Encode une chaîne en MIME base64


Récupère un entier sélectionné de manière uniforme et cryptographiquement sécurisée

  • « random_bytes
  • srand »
  • PHP Manual
  • Random Fonctions
  • Récupère un entier sélectionné de manière uniforme et cryptographiquement sécurisée

random_int

(PHP 7, PHP 8)

random_int — Récupère un entier sélectionné de manière uniforme et cryptographiquement sécurisée

Description

random_int(int $min, int $max): int

Génère un entier uniformément sélectionné entre la valeur minimale et maximale données.

La randomisation générée par cette fonction est adaptée à toutes les applications, y compris la génération de secrets à long terme, tels que des clés de chiffrement.

Les sources de hasard par ordre de priorité sont les suivantes :

  • Linux: » getrandom(), /dev/urandom

  • FreeBSD >= 12 (PHP >= 7.3): » getrandom(), /dev/urandom

  • Windows (PHP >= 7.2): » CNG-API

    Windows: » CryptGenRandom

  • macOS (PHP >= 8.2; >= 8.1.9; >= 8.0.22 si CCRandomGenerateBytes est disponible au moment de la compilation): CCRandomGenerateBytes()

    macOS (PHP >= 8.1; >= 8.0.2): arc4random_buf(), /dev/urandom

  • NetBSD >= 7 (PHP >= 7.1; >= 7.0.1): arc4random_buf(), /dev/urandom

  • OpenBSD >= 5.5 (PHP >= 7.1; >= 7.0.1): arc4random_buf(), /dev/urandom

  • DragonflyBSD (PHP >= 8.1): » getrandom(), /dev/urandom

  • Solaris (PHP >= 8.1): » getrandom(), /dev/urandom

  • Toute combinaison d'un système d'exploitation et d'une version de PHP non mentionnée précédemment: /dev/urandom.
  • Si aucune des sources de hasard n'est disponible ou si elles échouent toutes à générer de l'aléatoire, une exception de type Random\RandomException sera levée.

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

La valeur minimale à retourner.

max

La valeur maximale à retourner.

Valeurs de retour

Un entier sélectionné de manière uniforme et cryptographiquement sécurisée à partir de l'intervalle fermé [min, max]. Les deux valeurs min et max peuvent être retournées.

Erreurs / Exceptions

  • Si aucune source de données aléatoires n'est trouvée, une Random\RandomException sera lancée.
  • Si max est inférieur à min, une ValueError sera lancée.

Historique

Version | Description
8.2.0 | En cas d'échec CSPRNG, cette fonction lancera désormais une Random\RandomException. Auparavant une Exception basique était lancé.

Exemples

Exemple #1 Exemple avec random_int()

<?php
var_dump(random_int(100, 999));
var_dump(random_int(-1000, 0));
?>

Résultat de l'exemple ci-dessus est similaire à :

int(248)
int(-898)

Voir aussi

  • Random\Randomizer::getInt() - Get a uniformly selected integer
  • random_bytes() - Récupère des octets aléatoires cryptographiquement sécurisés


Initialise le générateur de nombres aléatoires

  • « random_int
  • Random\Randomizer »
  • PHP Manual
  • Random Fonctions
  • Initialise le générateur de nombres aléatoires

srand

(PHP 4, PHP 5, PHP 7, PHP 8)

srand — Initialise le générateur de nombres aléatoires

Description

srand(?int $seed = null , int $mode = MT_RAND_MT19937): void

srand() initialise le générateur de nombres aléatoires avec seed, ou avec une valeur aléatoire si seed est 0.

Note: Il n'est pas nécessaire d'initialiser le générateur de nombres aléatoires avec srand() ou mt_srand(), ceci est fait automatiquement.

Attention

Étant donné que le moteur Mt19937 ("Mersenne Twister") prend un seul entier de 32 bits en tant que graine, le nombre de séquences aléatoires possibles est limité à seulement 232 (par exemple 4 294 967 296), malgré la période énorme de Mt19937 de 219937-1.

Quand on se fie à une graine aléatoire implicite ou explicite, les duplications apparaîtront beaucoup plus tôt. Les graines dupliquées sont attendues avec une probabilité de 50% après moins de 80 000 graines générées aléatoirement selon le problème d anniversaire. Une probabilité de 10% d une graine dupliquée se produit après avoir généré environ 30 000 graines de manière aléatoire.

Cela rend Mt19937 inadapté aux applications où les séquences dupliquées ne doivent pas se produire avec plus qu une probabilité négligeable. Si une graine reproductible est requise, à la fois le moteur Random\Engine\Xoshiro256StarStar et Random\Engine\PcgOneseq128XslRr64 supportent des graines beaucoup plus grandes qui sont peu susceptibles de se heurter de manière aléatoire. Si la reproductibilité n'est pas requise, le moteur Random\Engine\Secure fournit des données aléatoires cryptographiquement sécurisées.

Note: Depuis PHP 7.1.0, srand() est un alias de mt_srand().

Liste de paramètres

seed

Remplit l'état avec des valeurs générées par un générateur congruentiel linéaire qui a été initialisé avec seed interprété comme un entier non signé de 32 bits.

Si seed est omis ou null, un entier non signé de 32 bits sera utilisé de manière aléatoire.

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version | Description
8.3.0 | seed est désormais nullable.
7.1.0 | srand() est devenu un alias de mt_srand().

Voir aussi

  • rand() - Génère une valeur aléatoire
  • getrandmax() - Plus grande valeur aléatoire possible
  • mt_srand() - Initialise le générateur de nombres aléatoires Mersenne Twister


La classe Random\Randomizer

(PHP 8 >= 8.2.0)

Introduction

Fournit une API de haut niveau pour l'aléatoire fourni par Random\Engine.

Synopsis de la classe

final class Random\Randomizer {
/* Propriétés */
public readonly Random\Engine $engine;
/* Méthodes */
public __construct(?Random\Engine $engine = null)
public getBytes(int $length): string
public getBytesFromString(string $string, int $length): string
public getFloat(float $min, float $max, Random\IntervalBoundary $boundary = Random\IntervalBoundary::ClosedOpen): float
public getInt(int $min, int $max): int
public nextFloat(): float
public nextInt(): int
public pickArrayKeys(array $array, int $num): array
public __serialize(): array
public shuffleArray(array $array): array
public shuffleBytes(string $bytes): string
public __unserialize(array $data): void
}

Propriétés

engine

Source d'aléatoire de bas niveau pour les méthodes de Random\Randomizer.

Sommaire

  • Random\Randomizer::__construct — Constructs a new Randomizer
  • Random\Randomizer::getBytes — Get random bytes
  • Random\Randomizer::getBytesFromString — Get random bytes from a source string
  • Random\Randomizer::getFloat — Get a uniformly selected float
  • Random\Randomizer::getInt — Get a uniformly selected integer
  • Random\Randomizer::nextFloat — Get a float from the right-open interval [0.0, 1.0)
  • Random\Randomizer::nextInt — Get a positive integer
  • Random\Randomizer::pickArrayKeys — Select random array keys
  • Random\Randomizer::__serialize — Serializes the Randomizer object
  • Random\Randomizer::shuffleArray — Get a permutation of an array
  • Random\Randomizer::shuffleBytes — Get a byte-wise permutation of a string
  • Random\Randomizer::__unserialize — Deserializes the data parameter into a Randomizer object


Constructs a new Randomizer

  • « Random\Randomizer
  • Random\Randomizer::getBytes »
  • PHP Manual
  • Random\Randomizer
  • Constructs a new Randomizer

Random\Randomizer::__construct

(PHP 8 >= 8.2.0)

Random\Randomizer::__construct — Constructs a new Randomizer

Description

public Random\Randomizer::__construct(?Random\Engine $engine = null)

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

engine

The Random\Engine to use to generate randomness.

If engine is omitted or null, a new Random\Engine\Secure object will be used.

Exemples

Exemple #1 Random\Randomizer::__construct() example

<?php

/* ... */

?>

Résultat de l'exemple ci-dessus est similaire à :

...


Get random bytes

  • « Random\Randomizer::__construct
  • Random\Randomizer::getBytesFromString »
  • PHP Manual
  • Random\Randomizer
  • Get random bytes

Random\Randomizer::getBytes

(PHP 8 >= 8.2.0)

Random\Randomizer::getBytes — Get random bytes

Description

public Random\Randomizer::getBytes(int $length): string

Generates a string containing uniformly selected random bytes with the requested length.

As the returned bytes are selected completely randomly, the resulting string is likely to contain unprintable characters or invalid UTF-8 sequences. It may be necessary to encode it before transmission or display.

Liste de paramètres

length

The length of the random chaîne de caractères that should be returned in bytes; must be 1 or greater.

Valeurs de retour

A chaîne de caractères containing the requested number of random bytes.

Erreurs / Exceptions

  • If the value of length is less than 1, a ValueError will be thrown.
  • Tout Throwables lancé par la méthode Random\Engine::generate() du Random\Randomizer::$engine sous-jacent.

Exemples

Exemple #1 Random\Randomizer::getBytes() example

<?php
$r = new \Random\Randomizer();

echo bin2hex($r->getBytes(8)), "\n";
?>

Résultat de l'exemple ci-dessus est similaire à :

ebdbe93cd56682c2

Voir aussi

  • random_bytes() - Récupère des octets aléatoires cryptographiquement sécurisés
  • bin2hex() - Convertit des données binaires en représentation hexadécimale
  • base64_encode() - Encode une chaîne en MIME base64
  • Random\Randomizer::getBytesFromString() - Get random bytes from a source string


Get random bytes from a source string

  • « Random\Randomizer::getBytes
  • Random\Randomizer::getFloat »
  • PHP Manual
  • Random\Randomizer
  • Get random bytes from a source string

Random\Randomizer::getBytesFromString

(PHP 8 >= 8.3.0)

Random\Randomizer::getBytesFromString — Get random bytes from a source string

Description

public Random\Randomizer::getBytesFromString(string $string, int $length): string

Generates a string containing uniformly selected random bytes from the input string with the requested length.

The chance for a byte to be selected is proportional to its share of the input string. If each byte occurs the same amount of times, each byte is equally likely to be selected.

Liste de paramètres

string

The chaîne de caractères from which the returned bytes are selected.

length

The length of the random chaîne de caractères that should be returned in bytes; must be 1 or greater.

Valeurs de retour

A chaîne de caractères containing the requested number of random bytes taken from the input string.

Erreurs / Exceptions

  • If string is empty, a ValueError will be thrown.
  • If the value of length is less than 1, a ValueError will be thrown.
  • Tout Throwables lancé par la méthode Random\Engine::generate() du Random\Randomizer::$engine sous-jacent.

Exemples

Exemple #1 Random\Randomizer::getBytesFromString() example

<?php
$randomizer = new \Random\Randomizer();

printf(
"%s.example.com",
$randomizer->getBytesFromString('abcdefghijklmnopqrstuvwxyz0123456789', 16)
);
?>

Résultat de l'exemple ci-dessus est similaire à :

3zsw04eiubcf82jd.example.com

Exemple #2 Generate a random code for multi-factor authentication

<?php
// The Secure engine is the default, but we make it explicit, because
// multi-factor codes are security sensitive.
$randomizer = new \Random\Randomizer(new \Random\Engine\Secure());

echo implode('-', str_split($randomizer->getBytesFromString('0123456789', 20), 5));
?>

Résultat de l'exemple ci-dessus est similaire à :

11551-80418-27047-42075

Exemple #3 Select from a string with a non-uniform distribution

<?php
$randomizer = new \Random\Randomizer();

echo $randomizer->getBytesFromString('aaaaabcdef', 20);
?>

Résultat de l'exemple ci-dessus est similaire à :

fddacbeaaeaaacaaaaca

Voir aussi

  • Random\Randomizer::getBytes() - Get random bytes


Get a uniformly selected float

  • « Random\Randomizer::getBytesFromString
  • Random\Randomizer::getInt »
  • PHP Manual
  • Random\Randomizer
  • Get a uniformly selected float

Random\Randomizer::getFloat

(PHP 8 >= 8.3.0)

Random\Randomizer::getFloat — Get a uniformly selected float

Description

public Random\Randomizer::getFloat(float $min, float $max, Random\IntervalBoundary $boundary = Random\IntervalBoundary::ClosedOpen): float

Returns a uniformly selected, equidistributed float from a requested interval.

Due to the limited precision, not all real numbers can be exactly represented as a floating point number. If a number cannot be represented exactly, it is rounded to the nearest representable exact value. Furthermore, floats are not equally dense across the whole number line. Because floats use a binary exponent, the distance between two neighboring floats doubles at each power of two. In other words: There are the same number of representable floats between 1.0 and 2.0 as they are between 2.0 and 4.0, 4.0 and 8.0, 8.0 and 16.0, and so on.

Randomly sampling an arbitrary number within the requested interval, for example by dividing two integers, might result in a biased distribution for this reason. The necessary rounding will cause some floats to be returned more often than others, especially around powers of two when the density of floats changes.

Random\Randomizer::getFloat() implements an algorithm that will return a uniformly selected float from the largest possible set of exactly representable and equidistributed floats within the requested interval. The distance between the selectable floats (“step size”) matches the distance between the floats with the lowest density, i.e. the distance between floats at interval boundary with the larger absolute value. This means that not all representable floats within a given interval may be returned if the interval crosses one or more powers of two. Stepping will start from the interval boundary with the larger absolute value to ensure the steps align with the exactly representable floats.

Closed interval boundaries will always be included in the set of selectable floats. Thus, if the size of the interval is not an exact multiple of the step size and the boundary with the smaller absolute value is a closed boundary, the distance between that boundary and its nearest selectable float will be smaller than the step size.

Attention

Post-processing the returned floats is likely going to break the uniform equidistribution, because the intermediate floats within a mathematical operation are experiencing implicit rounding. The requested interval should match the desired interval as closely as possible and rounding should only be performed as an explicit operation right before displaying the selected number to a user.

Explanation of the Algorithm Using Example Values

To give an example of how the algorithm works, consider a floating point representation that uses a 3-bit mantissa. This representation is capable of representing 8 different floating point values between consecutive powers of two. This means that between 1.0 and 2.0 all steps of size 0.125 are exactly representable and between 2.0 and 4.0 all steps of size 0.25 are exactly representable. In reality PHP’s floats use a 52-bit mantissa and can represent 252 different values between each power of two. This means that

  • 1.0
  • 1.125
  • 1.25
  • 1.375
  • 1.5
  • 1.625
  • 1.75
  • 1.875
  • 2.0
  • 2.25
  • 2.5
  • 2.75
  • 3.0
  • 3.25
  • 3.5
  • 3.75
  • 4.0
are the exactly representable floats between 1.0 and 4.0.

Now consider that $randomizer->getFloat(1.625, 2.5, IntervalBoundary::ClosedOpen) is called, i.e. a random float starting at 1.625 until, but not including, 2.5 is requested. The algorithm first determines the step size at the boundary with the larger absolute value (2.5). The step size at that boundary is 0.25.

Note that the size of the requested interval is 0.875, which is not an exact multiple of 0.25. If the algorithm would start stepping at the lower bound 1.625, it would encounter 2.125, which is not exactly representable and would experience implicit rounding. Thus the algorithm starts stepping at the upper boundary 2.5. The selectable values are:

  • 2.25
  • 2.0
  • 1.75
  • 1.625
2.5 is not included, because the upper boundary of the requested interval is an open boundary. 1.625 is included, even though its distance to the nearest value 1.75 is 0.125, which is smaller than the previously determined step size of 0.25. The reason for that is that the requested interval is closed at the lower boundary (1.625) and closed boundaries are always included.

Finally the algorithm uniformly selects one of the four selectable values at random and returns it.

Why Dividing Two Integers Does Not Work

In the previous example, there are eight representable floating point numbers between each sub-interval delimited by a power of two. To give an example why dividing two integers would not work well to generate a random float, consider that there are 16 equidistributed floating point numbers in the right-open interval from 0.0 until, but not including, 1.0. Half of them are the eight exactly representable values between 0.5 and 1.0, the other half are the values between 0.0 and 1.0 that the step size of 0.0625. These can easily be generated by dividing a random integer between 0 and 15 by 16 to obtain one of:

  • 0.0
  • 0.0625
  • 0.125
  • 0.1875
  • 0.25
  • 0.3125
  • 0.375
  • 0.4375
  • 0.5
  • 0.5625
  • 0.625
  • 0.6875
  • 0.75
  • 0.8125
  • 0.875
  • 0.9375

This random float could be scaled to right-open interval from 1.625 until, but not including, 2.75 by multiplying it with the size of the interval (0.875) and adding the minimum 1.625. This so-called affine transformation would result in the values:

  • 1.625 rounded to 1.625
  • 1.679 rounded to 1.625
  • 1.734 rounded to 1.75
  • 1.789 rounded to 1.75
  • 1.843 rounded to 1.875
  • 1.898 rounded to 1.875
  • 1.953 rounded to 2.0
  • 2.007 rounded to 2.0
  • 2.062 rounded to 2.0
  • 2.117 rounded to 2.0
  • 2.171 rounded to 2.25
  • 2.226 rounded to 2.25
  • 2.281 rounded to 2.25
  • 2.335 rounded to 2.25
  • 2.390 rounded to 2.5
  • 2.445 rounded to 2.5
Note how the upper boundary of 2.5 would be returned, despite being an open boundary and thus being excluded. Also note how 2.0 and 2.25 are twice as likely to be returned compared to the other values.

Liste de paramètres

min

The lower bound of the interval.

max

The upper bound of the interval.

boundary

Specifies whether the interval boundaries are possible return values.

Valeurs de retour

A uniformly selected, equidistributed float from the interval specified by min, max, and boundary. Whether min and max are possible return values depends on the value of boundary.

Erreurs / Exceptions

  • If the value of min is not finite (is_finite()), a ValueError will be thrown.
  • If the value of max is not finite (is_finite()), a ValueError will be thrown.
  • If the requested interval does not contain any values, a ValueError will be thrown.
  • Tout Throwables lancé par la méthode Random\Engine::generate() du Random\Randomizer::$engine sous-jacent.

Exemples

Exemple #1 Random\Randomizer::getFloat() example

<?php
$randomizer = new \Random\Randomizer();

// Note that the latitude granularity is double the
// longitude’s granularity.
//
// For the latitude the value may be both -90 and 90.
// For the longitude the value may be 180, but not -180, because
// -180 and 180 refer to the same longitude.
printf(
"Lat: %+.6f Lng: %+.6f",
$randomizer->getFloat(-90, 90, \Random\IntervalBoundary::ClosedClosed),
$randomizer->getFloat(-180, 180, \Random\IntervalBoundary::OpenClosed),
);
?>

Résultat de l'exemple ci-dessus est similaire à :

Lat: +69.244304 Lng: -53.548951

Notes

Note:

This method implements the ?-section algorithm as published in » Drawing Random Floating-Point Numbers from an Interval. Frédéric Goualard, ACM Trans. Model. Comput. Simul., 32:3, 2022 to obtain the desired behavioral properties.

Voir aussi

  • Random\Randomizer::nextFloat() - Get a float from the right-open interval [0.0, 1.0)
  • Random\Randomizer::getInt() - Get a uniformly selected integer


Get a uniformly selected integer

  • « Random\Randomizer::getFloat
  • Random\Randomizer::nextFloat »
  • PHP Manual
  • Random\Randomizer
  • Get a uniformly selected integer

Random\Randomizer::getInt

(PHP 8 >= 8.2.0)

Random\Randomizer::getInt — Get a uniformly selected integer

Description

public Random\Randomizer::getInt(int $min, int $max): int

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

min

The lowest value to be returned.

max

The highest value to be returned.

Valeurs de retour

A uniformly selected integer from the closed interval [min, max]. Both min and max are possible return values.

Erreurs / Exceptions

  • If max is less than min, a ValueError will be thrown.
  • Tout Throwables lancé par la méthode Random\Engine::generate() du Random\Randomizer::$engine sous-jacent.

Exemples

Exemple #1 Random\Randomizer::getInt() example

<?php
$r = new \Random\Randomizer();

// Random integer in range:
echo $r->getInt(1, 100), "\n";
?>

Résultat de l'exemple ci-dessus est similaire à :

42

Voir aussi

  • random_int() - Récupère un entier sélectionné de manière uniforme et cryptographiquement sécurisée
  • Random\Randomizer::getFloat() - Get a uniformly selected float


Get a float from the right-open interval [0.0, 1.0)

  • « Random\Randomizer::getInt
  • Random\Randomizer::nextInt »
  • PHP Manual
  • Random\Randomizer
  • Get a float from the right-open interval [0.0, 1.0)

Random\Randomizer::nextFloat

(PHP 8 >= 8.3.0)

Random\Randomizer::nextFloat — Get a float from the right-open interval [0.0, 1.0)

Description

public Random\Randomizer::nextFloat(): float

Returns a uniformly selected, equidistributed float from the right-open interval from 0.0 until, but not including, 1.0.

The chance for returned float to be within a given right-open sub-interval is proportional to the size of the sub-interval. This means that the chance for a float to be less than 0.5 is 50 %, which is equal to the chance for a float to be at least 0.5. Likewise the chance for a float to be within the right-open interval from 0.2 until, but not including, 0.25 is exactly 5 %.

This property makes it easy to leverage Random\Randomizer::nextFloat() to generate a random boolean with a given chance by checking if the returned float is less than a given chance.

Note:

The domain of the returnable floats of Random\Randomizer::nextFloat() is identical to that of Randomizer::getFloat(0.0, 1.0, IntervalBoundary::ClosedOpen).

The internal implementation of Random\Randomizer::nextFloat() is more efficient.

Attention

Scaling the return value to a different interval using multiplication or addition (a so-called affine transformation) might result in a bias in the resulting value as floats are not equally dense across the number line. As not all values can be exactly represented by a float, the result of the affine transformation might also result in values outside of the requested interval due to implicit rounding. An in-depth explanation of the problems with the affine transformation is given in the documentation for Random\Randomizer::getFloat().

Use Random\Randomizer::getFloat() to generate a random float within an arbitrary interval. Use Random\Randomizer::getInt() to generate a random integer within an arbitrary interval.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A uniformly selected, equidistributed float from the right-open (IntervalBoundary::ClosedOpen) interval [0.0, 1.0). 0.0 is a possible return value, 1.0 is not.

Erreurs / Exceptions

  • Tout Throwables lancé par la méthode Random\Engine::generate() du Random\Randomizer::$engine sous-jacent.

Exemples

Exemple #1 Random\Randomizer::nextFloat() example

<?php
$r = new \Random\Randomizer();

// The resulting bool will be true with the given chance.
$chance = 0.5;

$bool = $r->nextFloat() < $chance;

echo ($bool ? "You won" : "You lost"), "\n";
?>

Résultat de l'exemple ci-dessus est similaire à :

You won

Exemple #2 Incorrect scaling using an affine transformation

<?php
final class MaxEngine implements Random\Engine {
public function generate(): string {
return "\xff";
}
}

$randomizer = new \Random\Randomizer(new MaxEngine);

$min = 3.5;
$max = 4.5;

// DO NOT DO THIS:
//
// This will output 4.5, despite nextFloat() sampling from
// a right-open interval, which will never return 1.
printf("Wrong scaling: %.17g", $randomizer->nextFloat() * ($max - $min) + $min);

// Correct:
// $randomizer->getFloat($min, $max, \Random\IntervalBoundary::ClosedOpen);
?>

L'exemple ci-dessus va afficher :

Wrong scaling: 4.5

Voir aussi

  • Random\Randomizer::getFloat() - Get a uniformly selected float


Get a positive integer

  • « Random\Randomizer::nextFloat
  • Random\Randomizer::pickArrayKeys »
  • PHP Manual
  • Random\Randomizer
  • Get a positive integer

Random\Randomizer::nextInt

(PHP 8 >= 8.2.0)

Random\Randomizer::nextInt — Get a positive integer

Description

public Random\Randomizer::nextInt(): int

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A positive integer between 0 and a maximum value depending on the number of bytes returned from Random\Engine::generate(). The exact maximum can be calculated as 2$engine_bytes * 8 - 1 - 1.

Erreurs / Exceptions

  • To avoid inconsistencies, 32 bit PHP will throw Random\RandomException if the output size of Random\Engine::generate() exceeds 32 bits, as the selected integer cannot be returned losslessly. This affects the native 64 bit engines Random\Engine\PcgOneseq128XslRr64 and Random\Engine\Xoshiro256StarStar. Any userland engine returning more than 4 bytes of randomness is also affected.
  • Tout Throwables lancé par la méthode Random\Engine::generate() du Random\Randomizer::$engine sous-jacent.

Exemples

Exemple #1 Random\Randomizer::nextInt() example

<?php
$r = new \Random\Randomizer();

// Random "next" integer:
echo $r->nextInt(), "\n";
?>

Résultat de l'exemple ci-dessus est similaire à :

8041689838856078718


Select random array keys

  • « Random\Randomizer::nextInt
  • Random\Randomizer::__serialize »
  • PHP Manual
  • Random\Randomizer
  • Select random array keys

Random\Randomizer::pickArrayKeys

(PHP 8 >= 8.2.0)

Random\Randomizer::pickArrayKeys — Select random array keys

Description

public Random\Randomizer::pickArrayKeys(array $array, int $num): array

Uniformly selects num distinct array keys of the input array.

Each key of the input array is equally likely to be returned.

Attention

The selection of the array keys depends on the internal structure of the input array. The returned array keys might be different for two equal input arrays and two Random\Engines with identical state, depending on how the input arrays have been created.

Liste de paramètres

array

The array whose array keys are selected.

num

The number of array keys to return; must be between 1 and the number of elements in array.

Valeurs de retour

An tableau containing num distinct array keys of array.

The returned tableau will be a list (array_is_list()). It will be a subset of the tableau returned by array_keys().

Erreurs / Exceptions

  • If num is less than 1 or greater than the number of elements in array, a ValueError will be thrown.
  • Tout Throwables lancé par la méthode Random\Engine::generate() du Random\Randomizer::$engine sous-jacent.

Exemples

Exemple #1 Random\Randomizer::pickArrayKeys() example

<?php
$r = new \Random\Randomizer();

$fruits = [ 'red' => '??', 'green' => '??', 'yellow' => '??', 'pink' => '??', 'purple' => '??' ];

// Pick 2 random array keys:
echo "Keys: ", implode(', ', $r->pickArrayKeys($fruits, 2)), "\n";

// Pick another 3:
echo "Keys: ", implode(', ', $r->pickArrayKeys($fruits, 3)), "\n";
?>

Résultat de l'exemple ci-dessus est similaire à :

Keys: yellow, purple
Keys: red, green, yellow

Exemple #2 Picking random values

<?php
$r = new \Random\Randomizer();

$fruits = [ 'red' => '??', 'green' => '??', 'yellow' => '??', 'pink' => '??', 'purple' => '??' ];

$keys = $r->pickArrayKeys($fruits, 2);
// Look up the values for the picked keys.
$selection = array_map(
static fn ($key) => $fruits[$key],
$keys
);

echo "Values: ", implode(', ', $selection), "\n";
?>

Résultat de l'exemple ci-dessus est similaire à :

Values: ??, ??

Voir aussi

  • array_keys() - Retourne toutes les clés ou un ensemble des clés d'un tableau


Serializes the Randomizer object

  • « Random\Randomizer::pickArrayKeys
  • Random\Randomizer::shuffleArray »
  • PHP Manual
  • Random\Randomizer
  • Serializes the Randomizer object

Random\Randomizer::__serialize

(PHP 8 >= 8.2.0)

Random\Randomizer::__serialize — Serializes the Randomizer object

Description

public Random\Randomizer::__serialize(): array

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Random\Randomizer::__serialize() example

<?php

/* ... */

?>

Résultat de l'exemple ci-dessus est similaire à :

...


Get a permutation of an array

  • « Random\Randomizer::__serialize
  • Random\Randomizer::shuffleBytes »
  • PHP Manual
  • Random\Randomizer
  • Get a permutation of an array

Random\Randomizer::shuffleArray

(PHP 8 >= 8.2.0)

Random\Randomizer::shuffleArray — Get a permutation of an array

Description

public Random\Randomizer::shuffleArray(array $array): array

Returns a uniformly selected permutation of the input array.

Each possible permutation of the input array is equally likely to be returned.

Liste de paramètres

array

The tableau whose values are shuffled.

The input tableau will not be modified.

Valeurs de retour

A permutation of the values of array.

Array keys of the input array will not be preserved; the returned tableau will be a list (array_is_list()).

Erreurs / Exceptions

  • Tout Throwables lancé par la méthode Random\Engine::generate() du Random\Randomizer::$engine sous-jacent.

Exemples

Exemple #1 Random\Randomizer::shuffleArray() example

<?php
$r = new \Random\Randomizer();

$fruits = [ 'red' => '??', 'green' => '??', 'yellow' => '??', 'pink' => '??', 'purple' => '??' ];

// Shuffle array:
echo "Salad: ", implode(', ', $r->shuffleArray($fruits)), "\n";

// Shuffle again:
echo "Another Salad: ", implode(', ', $r->shuffleArray($fruits)), "\n";
?>

Résultat de l'exemple ci-dessus est similaire à :

Salad: ??, ??, ??, ??, ??
Another Salad: ??, ??, ??, ??, ??


Get a byte-wise permutation of a string

  • « Random\Randomizer::shuffleArray
  • Random\Randomizer::__unserialize »
  • PHP Manual
  • Random\Randomizer
  • Get a byte-wise permutation of a string

Random\Randomizer::shuffleBytes

(PHP 8 >= 8.2.0)

Random\Randomizer::shuffleBytes — Get a byte-wise permutation of a string

Description

public Random\Randomizer::shuffleBytes(string $bytes): string

Returns a uniformly selected permutation of the input bytes.

Each possible permutation of the input bytes is equally likely to be returned.

Liste de paramètres

bytes

The chaîne de caractères whose bytes are shuffled.

The input chaîne de caractères will not be modified.

Valeurs de retour

A permutation of the bytes of bytes.

Erreurs / Exceptions

  • Tout Throwables lancé par la méthode Random\Engine::generate() du Random\Randomizer::$engine sous-jacent.

Exemples

Exemple #1 Random\Randomizer::shuffleBytes() example

<?php
$r = new \Random\Randomizer();

// Shuffle bytes in a string:
echo "«", $r->shuffleBytes("PHP is great!"), "»\n";
?>

Résultat de l'exemple ci-dessus est similaire à :

« ga rHs!PPiet»

Exemple #2 Byte-wise shuffling breaks Unicode characters

<?php
$r = new \Random\Randomizer();

$unicode = "??, ??, ??, ??, ??";
$shuffled = $r->shuffleBytes( $unicode );

// Byte-wise shuffling of non-ASCII characters destroys them,
// resulting in invalid sequences (indicated by the Unicode
// replacement character) or even entirely different characters
// appearing in the output.
echo "Original: ", $unicode, "\n";
echo "Shuffled: «", $shuffled, "»\n";
echo "Shuffled Bytes: ", bin2hex($shuffled), "\n";
?>

Résultat de l'exemple ci-dessus est similaire à :

Original: ??, ??, ??, ??, ??
Shuffled: «? ??,???????,? ?? ?, ?,??»
Shuffled Bytes: 87208e912c8d9fa5f0f0f09f8d9f2cf09f208c9d20f02c209f2c8d8d


Deserializes the data parameter into a Randomizer object

  • « Random\Randomizer::shuffleBytes
  • Random\Engine »
  • PHP Manual
  • Random\Randomizer
  • Deserializes the data parameter into a Randomizer object

Random\Randomizer::__unserialize

(PHP 8 >= 8.2.0)

Random\Randomizer::__unserialize — Deserializes the data parameter into a Randomizer object

Description

public Random\Randomizer::__unserialize(array $data): void

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

data

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Random\Randomizer::__unserialize() example

<?php

/* ... */

?>

Résultat de l'exemple ci-dessus est similaire à :

...


L'interface Random\Engine

(PHP 8 >= 8.2.0)

Introduction

Un Random\Engine constitue une source d'aléatoire de bas niveau en retournant des octets aléatoires qui sont consommés par les API de haut niveau pour effectuer leurs opérations. L'interface Random\Engine permet d'intervertir l'algorithme utilisé pour générer de l'aléatoire, car chaque algorithme fait des compromis différents pour répondre à des cas d'utilisation spécifiques. Certains algorithmes sont très rapides, mais génèrent de l'aléatoire de moindre qualité, tandis que d'autres algorithmes sont plus lents, mais génèrent du meilleur aléatoire, jusqu'à de l'aléatoire cryptographiquement sécurisé tel que fourni par le moteur Random\Engine\Secure.

PHP fournit plusieurs moteurs Random\Engine pour répondre à différents cas d'utilisation. Le moteur Random\Engine\Secure qui est soutenu par un CSPRNG est le choix par défaut recommandé, sauf si l'application nécessite des séquences reproductibles ou des performances très élevées.

Sommaire de l'Interface

interface Random\Engine {
/* Méthodes */
public generate(): string
}

Sommaire

  • Random\Engine::generate — Génère de l'aléatoire


Génère de l'aléatoire

  • « Random\Engine
  • Random\CryptoSafeEngine »
  • PHP Manual
  • Random\Engine
  • Génère de l'aléatoire

Random\Engine::generate

(PHP 8 >= 8.2.0)

Random\Engine::generate — Génère de l'aléatoire

Description

public Random\Engine::generate(): string

Retourne de l'aléatoire et fait avancer l'état de l'algorithme d'un pas.

L'aléatoire est représenté par une chaîne binaire contenant des octets aléatoires. Cette représentation permet d'interpréter sans ambiguïté les bits aléatoires générés par l'algorithme, par exemple pour tenir compte des différentes tailles de sortie utilisées par les différents algorithmes.

Les algorithmes qui opèrent nativement sur des valeurs entières doivent retourner l'entier avec les octets dans l'ordre petit-boutiste (little-endian), par exemple en utilisant la fonction pack() avec le code de format P. L'interface de haut niveau fournie par le Random\Randomizer interprétera les octets aléatoires retournés comme des entiers non signés petit-boutiste (little-endian) si une représentation numérique est nécessaire.

Il est fortement recommandé que chaque bit de la chaîne retournée soit sélectionné de manière uniforme et indépendante, car certaines applications nécessitent de l'aléatoire basé au niveau des bits pour fonctionner correctement. Par exemple, les générateurs congruentiels linéaires génèrent souvent de l'aléatoire de moindre qualité pour les bits de poids faible de la valeur entière retournée et ne conviendraient donc pas aux applications qui requièrent de l'aléatoire au niveau des bits.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une chaîne non vide contenant des octets aléatoires.

Note: Le Random\Randomizer utilise en interne des entiers non signés de 64 bits. Si la chaîne retournée contient plus de 64 bits (8 octets) d'aléatoire, les octets excédentaires seront ignorés. D'autres applications peuvent être en mesure de traiter plus de 64 bits à la fois.

Erreurs / Exceptions

  • Si la génération d'aléatoire échoue, une Random\RandomException doit être émise. Tout autre Exception émise pendant la génération devrait être attrapée et enveloppée dans une Random\RandomException.
  • Si la chaîne retournée est vide, une Random\BrokenRandomEngineError sera émise par le Random\Randomizer.
  • Si l'algorithme implémenté est fortement biaisé, une Random\BrokenRandomEngineError peut être émise par le Random\Randomizer pour éviter les boucles infinies si un échantillonnage par rejet est nécessaire pour retourner des résultats non biaisés.

Exemples

Exemple #1 Exemple de Random\Engine::generate()

<?php
/**
* Implémente un Générateur Congruentiel Linéaire de module 65536,
* un multiplicateur de 61 et un incrément de 17, retournant un entier de 8 bits.
*
* Note: Ce moteur ne peut être utilisé qu'à des fins de démonstration..
* Les générateurs congruentiels linéaires génèrent généralement
* de l'aléatoire de faible qualité et cette implémentation spécifique a
* une période très courte de 16 bits qui n'est pas adaptée à
* presque tous les cas d'utilisation dans le monde réel.
*/
final class LinearCongruentialGenerator implements \Random\Engine
{
private int $state;

public function __construct(?int $seed = null)
{
if ($seed === null) {
$seed = random_int(0, 0xffff);
}

$this->state = $seed & 0xffff;
}

public function generate(): string
{
$this->state = (61 * $this->state + 17) & 0xffff;

return pack('C', $this->state >> 8);
}
}

$r = new \Random\Randomizer(
new LinearCongruentialGenerator(seed: 1)
);

echo "Nombre chanceux: ", $r->getInt(0, 99), "\n";
?>

L'exemple ci-dessus va afficher :

Nombre chanceux: 4


L'interface Random\CryptoSafeEngine

(PHP 8 >= 8.2.0)

Introduction

Interface de marquage indiquant que le Random\Engine retourne des données aléatoires sécurisées sur le plan cryptographique.

Sommaire de l'Interface

interface Random\CryptoSafeEngine extends Random\Engine {
/* Méthodes héritées */
public Random\Engine::generate(): string
}


La classe Random\Engine\Secure

(PHP 8 >= 8.2.0)

Introduction

Génère une valeur aléatoire cryptographiquement sécurisée en utilisant le CSPRNG du système d'exploitation.

La valeur aléatoire générée par ce Random\Engine convient à toutes les applications, y compris la génération de secrets à long terme, tels que les clés de chiffrement.

Le moteur Random\Engine\Secure est le choix par défaut recommandé et sûr, à moins que l'application ne nécessite des séquences reproductibles ou des performances très élevées.

Synopsis de la classe

final class Random\Engine\Secure implements Random\CryptoSafeEngine {
/* Méthodes */
public generate(): string
}

Sommaire

  • Random\Engine\Secure::generate — Generate cryptographically secure randomness


Generate cryptographically secure randomness

  • « Random\Engine\Secure
  • Random\Engine\Mt19937 »
  • PHP Manual
  • Random\Engine\Secure
  • Generate cryptographically secure randomness

Random\Engine\Secure::generate

(PHP 8 >= 8.2.0)

Random\Engine\Secure::generate — Generate cryptographically secure randomness

Description

public Random\Engine\Secure::generate(): string

Returns cryptographically secure randomness.

Les sources de hasard par ordre de priorité sont les suivantes :

  • Linux: » getrandom(), /dev/urandom

  • FreeBSD >= 12 (PHP >= 7.3): » getrandom(), /dev/urandom

  • Windows (PHP >= 7.2): » CNG-API

    Windows: » CryptGenRandom

  • macOS (PHP >= 8.2; >= 8.1.9; >= 8.0.22 si CCRandomGenerateBytes est disponible au moment de la compilation): CCRandomGenerateBytes()

    macOS (PHP >= 8.1; >= 8.0.2): arc4random_buf(), /dev/urandom

  • NetBSD >= 7 (PHP >= 7.1; >= 7.0.1): arc4random_buf(), /dev/urandom

  • OpenBSD >= 5.5 (PHP >= 7.1; >= 7.0.1): arc4random_buf(), /dev/urandom

  • DragonflyBSD (PHP >= 8.1): » getrandom(), /dev/urandom

  • Solaris (PHP >= 8.1): » getrandom(), /dev/urandom

  • Toute combinaison d'un système d'exploitation et d'une version de PHP non mentionnée précédemment: /dev/urandom.
  • Si aucune des sources de hasard n'est disponible ou si elles échouent toutes à générer de l'aléatoire, une exception de type Random\RandomException sera levée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A string containing PHP_INT_SIZE cryptographically secure random bytes.

Erreurs / Exceptions

  • Si aucune source de données aléatoires n'est trouvée, une Random\RandomException sera lancée.


La classe Random\Engine\Mt19937

(PHP 8 >= 8.2.0)

Introduction

Implémente l'algorithme » Mt19937 ("Mersenne Twister").

Synopsis de la classe

final class Random\Engine\Mt19937 implements Random\Engine {
/* Méthodes */
public __construct(?int $seed = null, int $mode = MT_RAND_MT19937)
public __debugInfo(): array
public generate(): string
public __serialize(): array
public __unserialize(array $data): void
}

Sommaire

  • Random\Engine\Mt19937::__construct — Constructs a new Mt19937 engine
  • Random\Engine\Mt19937::__debugInfo — Returns the internal state of the engine
  • Random\Engine\Mt19937::generate — Generate 32 bits of randomness
  • Random\Engine\Mt19937::__serialize — Serializes the Mt19937 object
  • Random\Engine\Mt19937::__unserialize — Deserializes the data parameter into a Mt19937 object


Constructs a new Mt19937 engine

  • « Random\Engine\Mt19937
  • Random\Engine\Mt19937::__debugInfo »
  • PHP Manual
  • Random\Engine\Mt19937
  • Constructs a new Mt19937 engine

Random\Engine\Mt19937::__construct

(PHP 8 >= 8.2.0)

Random\Engine\Mt19937::__construct — Constructs a new Mt19937 engine

Description

public Random\Engine\Mt19937::__construct(?int $seed = null, int $mode = MT_RAND_MT19937)

Attention

Étant donné que le moteur Mt19937 ("Mersenne Twister") prend un seul entier de 32 bits en tant que graine, le nombre de séquences aléatoires possibles est limité à seulement 232 (par exemple 4 294 967 296), malgré la période énorme de Mt19937 de 219937-1.

Quand on se fie à une graine aléatoire implicite ou explicite, les duplications apparaîtront beaucoup plus tôt. Les graines dupliquées sont attendues avec une probabilité de 50% après moins de 80 000 graines générées aléatoirement selon le problème d anniversaire. Une probabilité de 10% d une graine dupliquée se produit après avoir généré environ 30 000 graines de manière aléatoire.

Cela rend Mt19937 inadapté aux applications où les séquences dupliquées ne doivent pas se produire avec plus qu une probabilité négligeable. Si une graine reproductible est requise, à la fois le moteur Random\Engine\Xoshiro256StarStar et Random\Engine\PcgOneseq128XslRr64 supportent des graines beaucoup plus grandes qui sont peu susceptibles de se heurter de manière aléatoire. Si la reproductibilité n'est pas requise, le moteur Random\Engine\Secure fournit des données aléatoires cryptographiquement sécurisées.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

seed

Fills the state with values generated with a linear congruential generator that was seeded with seed interpreted as an unsigned 32 bit integer.

If seed is omitted or null, a random unsigned 32 bit integer will be used.

mode

Use one of the following constants to specify the implementation of the algorithm to use.

  • MT_RAND_MT19937: The correct Mt19937 implementation.
  • MT_RAND_PHP: An incorrect implementation for backwards compatibility with mt_srand() prior to PHP 7.1.0.

Avertissement

Cette fonctionnalité est OBSOLÈTE à partir de PHP 8.3.0. Dépendre de cette fonctionnalité est fortement déconseillé.

Exemples

Exemple #1 Random\Engine\Mt19937::__construct() example

<?php
// Uses a random 32 Bit seed.
$e = new \Random\Engine\Mt19937();

$r = new \Random\Randomizer($e);
?>


Returns the internal state of the engine

  • « Random\Engine\Mt19937::__construct
  • Random\Engine\Mt19937::generate »
  • PHP Manual
  • Random\Engine\Mt19937
  • Returns the internal state of the engine

Random\Engine\Mt19937::__debugInfo

(PHP 8 >= 8.2.0)

Random\Engine\Mt19937::__debugInfo — Returns the internal state of the engine

Description

public Random\Engine\Mt19937::__debugInfo(): array

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Random\Engine\Mt19937::__debugInfo() example

<?php

/* ... */

?>

Résultat de l'exemple ci-dessus est similaire à :

...


Generate 32 bits of randomness

  • « Random\Engine\Mt19937::__debugInfo
  • Random\Engine\Mt19937::__serialize »
  • PHP Manual
  • Random\Engine\Mt19937
  • Generate 32 bits of randomness

Random\Engine\Mt19937::generate

(PHP 8 >= 8.2.0)

Random\Engine\Mt19937::generate — Generate 32 bits of randomness

Description

public Random\Engine\Mt19937::generate(): string

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A string representing an unsigned 32 bit integer in little-endian order.


Serializes the Mt19937 object

  • « Random\Engine\Mt19937::generate
  • Random\Engine\Mt19937::__unserialize »
  • PHP Manual
  • Random\Engine\Mt19937
  • Serializes the Mt19937 object

Random\Engine\Mt19937::__serialize

(PHP 8 >= 8.2.0)

Random\Engine\Mt19937::__serialize — Serializes the Mt19937 object

Description

public Random\Engine\Mt19937::__serialize(): array

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Random\Engine\Mt19937::__serialize() example

<?php

/* ... */

?>

Résultat de l'exemple ci-dessus est similaire à :

...


Deserializes the data parameter into a Mt19937 object

  • « Random\Engine\Mt19937::__serialize
  • Random\Engine\PcgOneseq128XslRr64 »
  • PHP Manual
  • Random\Engine\Mt19937
  • Deserializes the data parameter into a Mt19937 object

Random\Engine\Mt19937::__unserialize

(PHP 8 >= 8.2.0)

Random\Engine\Mt19937::__unserialize — Deserializes the data parameter into a Mt19937 object

Description

public Random\Engine\Mt19937::__unserialize(array $data): void

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

data

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Random\Engine\Mt19937::__unserialize() example

<?php

/* ... */

?>

Résultat de l'exemple ci-dessus est similaire à :

...


La classe Random\Engine\PcgOneseq128XslRr64

(PHP 8 >= 8.2.0)

Introduction

Implémente un » générateur congruentiel permuté (PCG) avec 128 bits d'état, des transformations de sortie XSL et RR, et 64 bits de sortie.

Synopsis de la classe

final class Random\Engine\PcgOneseq128XslRr64 implements Random\Engine {
/* Méthodes */
public __construct(string|int|null $seed = null)
public __debugInfo(): array
public generate(): string
public jump(int $advance): void
public __serialize(): array
public __unserialize(array $data): void
}

Sommaire

  • Random\Engine\PcgOneseq128XslRr64::__construct — Constructs a new PCG Oneseq 128 XSL RR 64 engine
  • Random\Engine\PcgOneseq128XslRr64::__debugInfo — Returns the internal state of the engine
  • Random\Engine\PcgOneseq128XslRr64::generate — Generate 64 bits of randomness
  • Random\Engine\PcgOneseq128XslRr64::jump — Efficiently move the engine ahead multiple steps
  • Random\Engine\PcgOneseq128XslRr64::__serialize — Serializes the PcgOneseq128XslRr64 object
  • Random\Engine\PcgOneseq128XslRr64::__unserialize — Deserializes the data parameter into a PcgOneseq128XslRr64 object


Constructs a new PCG Oneseq 128 XSL RR 64 engine

  • « Random\Engine\PcgOneseq128XslRr64
  • Random\Engine\PcgOneseq128XslRr64::__debugInfo »
  • PHP Manual
  • Random\Engine\PcgOneseq128XslRr64
  • Constructs a new PCG Oneseq 128 XSL RR 64 engine

Random\Engine\PcgOneseq128XslRr64::__construct

(PHP 8 >= 8.2.0)

Random\Engine\PcgOneseq128XslRr64::__construct — Constructs a new PCG Oneseq 128 XSL RR 64 engine

Description

public Random\Engine\PcgOneseq128XslRr64::__construct(string|int|null $seed = null)

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

seed

How the internal 128 bit (16 byte) state consisting of one unsigned 128 bit integer is seeded depends on the type used as the seed.

Type | Description
null | Fills the state with 16 random bytes generated using the CSPRNG.
int | Fills the state by setting the state to 0, advancing the engine one step, adding the value of seed interpreted as an unsigned 64 bit integer, and advancing the engine another step.
string | Fills the state by interpreting a 16 byte string as a little-endian unsigned 128 bit integer.

Erreurs / Exceptions

  • If the length of a string seed is not 16 bytes, a ValueError will be thrown.

Exemples

Exemple #1 Random\Engine\PcgOneseq128XslRr64::__construct() example

<?php
// Uses a random 128 Bit seed.
$e = new \Random\Engine\PcgOneseq128XslRr64();

$r = new \Random\Randomizer($e);
?>

Exemple #2 Deriving a seed from a chaîne de caractères

<?php
$string = "My string seed";

// Hash the string with truncated SHA-256 using binary output
// to turn the $string into a 128 Bit seed. Using the same
// string will result in the same sequence of randomness.
$e = new \Random\Engine\PcgOneseq128XslRr64(
substr(hash('sha256', $string, binary: true), 0, 16)
);

echo bin2hex($e->generate()), "\n";
?>

L'exemple ci-dessus va afficher :

8333ef59315b16d8


Returns the internal state of the engine

  • « Random\Engine\PcgOneseq128XslRr64::__construct
  • Random\Engine\PcgOneseq128XslRr64::generate »
  • PHP Manual
  • Random\Engine\PcgOneseq128XslRr64
  • Returns the internal state of the engine

Random\Engine\PcgOneseq128XslRr64::__debugInfo

(PHP 8 >= 8.2.0)

Random\Engine\PcgOneseq128XslRr64::__debugInfo — Returns the internal state of the engine

Description

public Random\Engine\PcgOneseq128XslRr64::__debugInfo(): array

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Random\Engine\PcgOneseq128XslRr64::__debugInfo() example

<?php

/* ... */

?>

Résultat de l'exemple ci-dessus est similaire à :

...


Generate 64 bits of randomness

  • « Random\Engine\PcgOneseq128XslRr64::__debugInfo
  • Random\Engine\PcgOneseq128XslRr64::jump »
  • PHP Manual
  • Random\Engine\PcgOneseq128XslRr64
  • Generate 64 bits of randomness

Random\Engine\PcgOneseq128XslRr64::generate

(PHP 8 >= 8.2.0)

Random\Engine\PcgOneseq128XslRr64::generate — Generate 64 bits of randomness

Description

public Random\Engine\PcgOneseq128XslRr64::generate(): string

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A string representing an unsigned 64 bit integer in little-endian order.


Efficiently move the engine ahead multiple steps

  • « Random\Engine\PcgOneseq128XslRr64::generate
  • Random\Engine\PcgOneseq128XslRr64::__serialize »
  • PHP Manual
  • Random\Engine\PcgOneseq128XslRr64
  • Efficiently move the engine ahead multiple steps

Random\Engine\PcgOneseq128XslRr64::jump

(PHP 8 >= 8.2.0)

Random\Engine\PcgOneseq128XslRr64::jump — Efficiently move the engine ahead multiple steps

Description

public Random\Engine\PcgOneseq128XslRr64::jump(int $advance): void

Moves the algorithm’s state ahead by the number of steps given by advance, as if Random\Engine\PcgOneseq128XslRr64::generate() was called that many times.

Liste de paramètres

advance

The number of steps to move ahead; must be 0 or greater.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

  • If advance is less than 0, a ValueError will be thrown.

Exemples

Exemple #1 Random\Engine\PcgOneseq128XslRr64::jump() example

<?php
$a = new \Random\Engine\PcgOneseq128XslRr64(0);
$b = clone $a;

for ($i = 0; $i < 1_000; $i++) {
$a->generate();
}
$b->jump(1_000);

echo "A: ", bin2hex($a->generate()), "\n";
echo "B: ", bin2hex($b->generate()), "\n";
?>

L'exemple ci-dessus va afficher :

A: e6d0d5813913a424
B: e6d0d5813913a424

Exemple #2 Randomizer methods may call the engine more than once

<?php
$a = new \Random\Randomizer(new \Random\Engine\PcgOneseq128XslRr64(42659));
$b = new \Random\Randomizer(clone $a->engine);

$a->getInt(1, 1572864); // Performs two calls to generate().
$a->getInt(1, 1572864);

$b->engine->jump(2);

// Because the first call to ->getInt() called ->generate() twice
// the engines do not match up after performing a ->jump(2).
echo "A: ", bin2hex($a->engine->generate()), "\n";
echo "B: ", bin2hex($b->engine->generate()), "\n";

// Now the B engine matches the A engine.
echo "B: ", bin2hex($b->engine->generate()), "\n";
?>

L'exemple ci-dessus va afficher :

A: 1e9f3107d56653d0
B: a156c0086dd79d44
B: 1e9f3107d56653d0


Serializes the PcgOneseq128XslRr64 object

  • « Random\Engine\PcgOneseq128XslRr64::jump
  • Random\Engine\PcgOneseq128XslRr64::__unserialize »
  • PHP Manual
  • Random\Engine\PcgOneseq128XslRr64
  • Serializes the PcgOneseq128XslRr64 object

Random\Engine\PcgOneseq128XslRr64::__serialize

(PHP 8 >= 8.2.0)

Random\Engine\PcgOneseq128XslRr64::__serialize — Serializes the PcgOneseq128XslRr64 object

Description

public Random\Engine\PcgOneseq128XslRr64::__serialize(): array

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Random\Engine\PcgOneseq128XslRr64::__serialize() example

<?php

/* ... */

?>

Résultat de l'exemple ci-dessus est similaire à :

...


Deserializes the data parameter into a PcgOneseq128XslRr64 object

  • « Random\Engine\PcgOneseq128XslRr64::__serialize
  • Random\Engine\Xoshiro256StarStar »
  • PHP Manual
  • Random\Engine\PcgOneseq128XslRr64
  • Deserializes the data parameter into a PcgOneseq128XslRr64 object

Random\Engine\PcgOneseq128XslRr64::__unserialize

(PHP 8 >= 8.2.0)

Random\Engine\PcgOneseq128XslRr64::__unserialize — Deserializes the data parameter into a PcgOneseq128XslRr64 object

Description

public Random\Engine\PcgOneseq128XslRr64::__unserialize(array $data): void

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

data

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Random\Engine\PcgOneseq128XslRr64::__unserialize() example

<?php

/* ... */

?>

Résultat de l'exemple ci-dessus est similaire à :

...


La classe Random\Engine\Xoshiro256StarStar

(PHP 8 >= 8.2.0)

Introduction

Implémente l'algorithme » xoshiro256**.

Synopsis de la classe

final class Random\Engine\Xoshiro256StarStar implements Random\Engine {
/* Méthodes */
public __construct(string|int|null $seed = null)
public __debugInfo(): array
public generate(): string
public jump(): void
public jumpLong(): void
public __serialize(): array
public __unserialize(array $data): void
}

Sommaire

  • Random\Engine\Xoshiro256StarStar::__construct — Constructs a new xoshiro256** engine
  • Random\Engine\Xoshiro256StarStar::__debugInfo — Returns the internal state of the engine
  • Random\Engine\Xoshiro256StarStar::generate — Generate 64 bits of randomness
  • Random\Engine\Xoshiro256StarStar::jump — Efficiently move the engine ahead by 2^128 steps
  • Random\Engine\Xoshiro256StarStar::jumpLong — Efficiently move the engine ahead by 2^192 steps
  • Random\Engine\Xoshiro256StarStar::__serialize — Serializes the Xoshiro256StarStar object
  • Random\Engine\Xoshiro256StarStar::__unserialize — Deserializes the data parameter into a Xoshiro256StarStar object


Constructs a new xoshiro256** engine

  • « Random\Engine\Xoshiro256StarStar
  • Random\Engine\Xoshiro256StarStar::__debugInfo »
  • PHP Manual
  • Random\Engine\Xoshiro256StarStar
  • Constructs a new xoshiro256** engine

Random\Engine\Xoshiro256StarStar::__construct

(PHP 8 >= 8.2.0)

Random\Engine\Xoshiro256StarStar::__construct — Constructs a new xoshiro256** engine

Description

public Random\Engine\Xoshiro256StarStar::__construct(string|int|null $seed = null)

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

seed

How the internal 256 bit (32 byte) state consisting of four unsigned 64 bit integers is seeded depends on the type used as the seed.

Type | Description
null | Fills the state with 32 random bytes generated using the CSPRNG.
int | Fills the state with four consecutive values generated with the SplitMix64 algorithm that was seeded with seed interpreted as an unsigned 64 bit integer.
string | Fills the state by interpreting a 32 byte string as four little-endian unsigned 64 bit integers.

Erreurs / Exceptions

  • If the length of a string seed is not 32 bytes, a ValueError will be thrown.
  • If a string seed consists of 32 NUL bytes ("\x00"), a ValueError will be thrown.

Exemples

Exemple #1 Random\Engine\Xoshiro256StarStar::__construct() example

<?php
// Uses a random 256 Bit seed.
$e = new \Random\Engine\Xoshiro256StarStar();

$r = new \Random\Randomizer($e);
?>

Exemple #2 Deriving a seed from a chaîne de caractères

<?php
$string = "My string seed";

// Hash the string with SHA-256 using binary output to turn the
// $string into a 256 Bit seed. Using the same string will result
// in the same sequence of randomness.
$e = new \Random\Engine\Xoshiro256StarStar(
hash('sha256', $string, binary: true)
);

echo bin2hex($e->generate()), "\n";
?>

L'exemple ci-dessus va afficher :

6e013453678388c2


Returns the internal state of the engine

  • « Random\Engine\Xoshiro256StarStar::__construct
  • Random\Engine\Xoshiro256StarStar::generate »
  • PHP Manual
  • Random\Engine\Xoshiro256StarStar
  • Returns the internal state of the engine

Random\Engine\Xoshiro256StarStar::__debugInfo

(PHP 8 >= 8.2.0)

Random\Engine\Xoshiro256StarStar::__debugInfo — Returns the internal state of the engine

Description

public Random\Engine\Xoshiro256StarStar::__debugInfo(): array

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Random\Engine\Xoshiro256StarStar::__debugInfo() example

<?php

/* ... */

?>

Résultat de l'exemple ci-dessus est similaire à :

...


Generate 64 bits of randomness

  • « Random\Engine\Xoshiro256StarStar::__debugInfo
  • Random\Engine\Xoshiro256StarStar::jump »
  • PHP Manual
  • Random\Engine\Xoshiro256StarStar
  • Generate 64 bits of randomness

Random\Engine\Xoshiro256StarStar::generate

(PHP 8 >= 8.2.0)

Random\Engine\Xoshiro256StarStar::generate — Generate 64 bits of randomness

Description

public Random\Engine\Xoshiro256StarStar::generate(): string

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A string representing an unsigned 64 bit integer in little-endian order.


Efficiently move the engine ahead by 2^128 steps

  • « Random\Engine\Xoshiro256StarStar::generate
  • Random\Engine\Xoshiro256StarStar::jumpLong »
  • PHP Manual
  • Random\Engine\Xoshiro256StarStar
  • Efficiently move the engine ahead by 2^128 steps

Random\Engine\Xoshiro256StarStar::jump

(PHP 8 >= 8.2.0)

Random\Engine\Xoshiro256StarStar::jump — Efficiently move the engine ahead by 2^128 steps

Description

public Random\Engine\Xoshiro256StarStar::jump(): void

Moves the algorithm’s state ahead by 2128 steps, as if Random\Engine\Xoshiro256StarStar::generate() was called 2128 times.

The purpose of a jump is to facilitate the creation of a new Random\Engine\Xoshiro256StarStar engine from an existing seeded Random\Engine\Xoshiro256StarStar engine. The seeded engine acts as a blueprint, which can be cloned and repeatedly jumped to create 2128 non-overlapping sequences with 2128 values each.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Random\Engine\Xoshiro256StarStar::jump() example

<?php
use Random\Engine\Xoshiro256StarStar;
use Random\Randomizer;

$blueprintRng = new Xoshiro256StarStar(0);

$fibers = [];
for ($i = 0; $i < 8; $i++) {
$fiberRng = clone $blueprintRng;
$blueprintRng->jump();

$fiber = new Fiber(static function () use ($fiberRng, $i): void {
$randomizer = new Randomizer($fiberRng);

while (true) {
Fiber::suspend();

echo "{$i}: ", $randomizer->getInt(0, 100), "\n";
}
});
$fiber->start();

$fibers[] = $fiber;
}

// Even though the fibers execute in a random order, they will print the same value
// each time, because each has its own unique instance of the RNG.
$randomizer = new Randomizer();

$fibers = $randomizer->shuffleArray($fibers);
foreach ($fibers as $fiber) {
$fiber->resume();
}

$fibers = $randomizer->shuffleArray($fibers);
foreach ($fibers as $fiber) {
$fiber->resume();
}
?>

Résultat de l'exemple ci-dessus est similaire à :

4: 89
3: 10
2: 63
1: 75
6: 41
5: 56
0: 16
7: 60
7: 34
6: 58
1: 74
4: 63
3: 3
5: 42
2: 45
0: 86

Voir aussi

  • Random\Engine\Xoshiro256StarStar::jumpLong() - Efficiently move the engine ahead by 2^192 steps


Efficiently move the engine ahead by 2^192 steps

  • « Random\Engine\Xoshiro256StarStar::jump
  • Random\Engine\Xoshiro256StarStar::__serialize »
  • PHP Manual
  • Random\Engine\Xoshiro256StarStar
  • Efficiently move the engine ahead by 2^192 steps

Random\Engine\Xoshiro256StarStar::jumpLong

(PHP 8 >= 8.2.0)

Random\Engine\Xoshiro256StarStar::jumpLong — Efficiently move the engine ahead by 2^192 steps

Description

public Random\Engine\Xoshiro256StarStar::jumpLong(): void

Moves the algorithm’s state ahead by 2192 steps, as if Random\Engine\Xoshiro256StarStar::generate() was called 2192 times.

The purpose of a long jump is to facilitate the creation of a new Random\Engine\Xoshiro256StarStar engine from an existing seeded Random\Engine\Xoshiro256StarStar engine. The seeded engine acts as a blueprint, which can be cloned and repeatedly jumped to create 264 non-overlapping sequences with 2192 values each.

Long jumping may be combined with Random\Engine\Xoshiro256StarStar::jump()ing to further split each of the 264 sequences generated by long jumping, into 264 sequences of 2128 values each.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Random\Engine\Xoshiro256StarStar::jumpLong() example

<?php
$blueprintRng = new \Random\Engine\Xoshiro256StarStar(0);

// Each parent engine will have its own chunk of 2**192 values.
$parent1 = clone $blueprintRng;
$blueprintRng->jumpLong();

$parent2 = clone $blueprintRng;
$blueprintRng->jumpLong();

// Each of the child engines will have its own chunk of 2**128 values
// taken from their parent engine’s chunk of 2**192 values.
$child1a = clone $parent1;
$parent1->jump();
$child1b = clone $parent1;
$parent1->jump();

$child2a = clone $parent2;
$parent2->jump();
$child2b = clone $parent2;
$parent2->jump();

echo "Child 1A: ", bin2hex($child1a->generate()), "\n";
echo "Child 1B: ", bin2hex($child1b->generate()), "\n";
echo "Child 2A: ", bin2hex($child2a->generate()), "\n";
echo "Child 2B: ", bin2hex($child2b->generate()), "\n";
?>

L'exemple ci-dessus va afficher :

Child 1A: b4f275cb365fec99
Child 1B: 2cd646c8ed156237
Child 2A: eb3729a722a504e7
Child 2B: d4208dc85bdd6dc3

Voir aussi

  • Random\Engine\Xoshiro256StarStar::jump() - Efficiently move the engine ahead by 2^128 steps


Serializes the Xoshiro256StarStar object

  • « Random\Engine\Xoshiro256StarStar::jumpLong
  • Random\Engine\Xoshiro256StarStar::__unserialize »
  • PHP Manual
  • Random\Engine\Xoshiro256StarStar
  • Serializes the Xoshiro256StarStar object

Random\Engine\Xoshiro256StarStar::__serialize

(PHP 8 >= 8.2.0)

Random\Engine\Xoshiro256StarStar::__serialize — Serializes the Xoshiro256StarStar object

Description

public Random\Engine\Xoshiro256StarStar::__serialize(): array

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Random\Engine\Xoshiro256StarStar::__serialize() example

<?php

/* ... */

?>

Résultat de l'exemple ci-dessus est similaire à :

...


Deserializes the data parameter into a Xoshiro256StarStar object

  • « Random\Engine\Xoshiro256StarStar::__serialize
  • Random\RandomError »
  • PHP Manual
  • Random\Engine\Xoshiro256StarStar
  • Deserializes the data parameter into a Xoshiro256StarStar object

Random\Engine\Xoshiro256StarStar::__unserialize

(PHP 8 >= 8.2.0)

Random\Engine\Xoshiro256StarStar::__unserialize — Deserializes the data parameter into a Xoshiro256StarStar object

Description

public Random\Engine\Xoshiro256StarStar::__unserialize(array $data): void

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

data

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Random\Engine\Xoshiro256StarStar::__unserialize() example

<?php

/* ... */

?>

Résultat de l'exemple ci-dessus est similaire à :

...


La classe Random\RandomError

(PHP 8 >= 8.2.0)

Introduction

Classe de base pour les Errors qui se produisent lors de la génération ou de l'utilisation d'aléatoire.

Synopsis de la classe

class Random\RandomError extends Error {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


La classe Random\BrokenRandomineError

(PHP 8 >= 8.2.0)

Introduction

Indique que le Random\Engine utilisé est cassé, par exemple parce qu'il est fortement biaisé.

Synopsis de la classe

class Random\BrokenRandomEngineError extends Random\RandomError {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


La classe Random\RandomException

(PHP 8 >= 8.2.0)

Introduction

Classe de base pour les Exceptions qui se produisent lors de la génération ou de l'utilisation d'aléatoire.

Synopsis de la classe

class Random\RandomException extends Exception {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Seaslog

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Exemples
  • Seaslog Fonctions
    • seaslog_get_author — Get SeasLog author.
    • seaslog_get_version — Get SeasLog version.
  • SeasLog — The SeasLog class
    • SeasLog::alert — Record alert log information
    • SeasLog::analyzerCount — Get log count by level, log_path and key_word
    • SeasLog::analyzerDetail — Get log detail by level, log_path, key_word, start, limit, order
    • SeasLog::closeLoggerStream — Manually release stream flow from logger
    • SeasLog::__construct — Description
    • SeasLog::critical — Record critical log information
    • SeasLog::debug — Record debug log information
    • SeasLog::__destruct — Description
    • SeasLog::emergency — Record emergency log information
    • SeasLog::error — Record error log information
    • SeasLog::flushBuffer — Flush logs buffer, dump to appender file, or send to remote api with tcp/udp
    • SeasLog::getBasePath — Get SeasLog base path.
    • SeasLog::getBuffer — Get the logs buffer in memory as array
    • SeasLog::getBufferEnabled — Determin if buffer enabled
    • SeasLog::getDatetimeFormat — Get SeasLog datetime format style
    • SeasLog::getLastLogger — Get SeasLog last logger path
    • SeasLog::getRequestID — Get SeasLog request_id differentiated requests
    • SeasLog::getRequestVariable — Get SeasLog request variable
    • SeasLog::info — Record info log information
    • SeasLog::log — The Common Record Log Function
    • SeasLog::notice — Record notice log information
    • SeasLog::setBasePath — Set SeasLog base path
    • SeasLog::setDatetimeFormat — Set SeasLog datetime format style
    • SeasLog::setLogger — Set SeasLog logger name
    • SeasLog::setRequestID — Set SeasLog request_id differentiated requests
    • SeasLog::setRequestVariable — Manually set SeasLog request variable
    • SeasLog::warning — Record warning log information


Introduction

The Seaslog is an effective,fast,stable log extension for PHP.

The log journal,which is usually the operate record of the system, software and the application record. Through the analysis of the log,it can facilitate users to understand the operation of the system, software and the application situation. If your application log is rich enough, it can also analyze the previous use’s operation behavior,type, regional distribution or other more information. The application log also points the multiple levels at the same time, you can easily get the application analysis of health status, timely find problems and quick positioning, and solve the problem, remedy the loss.

The error_log, syslog function which built in PHP is powerful and excellent performance, but due to various defects (error_log have no error level, no fixed format, syslog regardless of module, and mix with system log ), reducing a lot of flexibility , and can't meet the application requirements.

The good news is that there are a number of third-party log class library established to make up for the defects, such as log4php, plog, monolog (of course, there are many applications in the project development of the log class).

So is there a log of libraries meet the following requirements:

  • Modules, classification
  • Simple configuration(preferably without configuration)
  • Clear log format and easy understanding
  • Simple application and well performance
Seaslog just meet these demands.

What is provided at present:

  • In the PHP project, record the log specification and repidly.
  • Configure the default log directory and module
  • Specified log directory and capture current configuration
  • Preliminary analysis of the early warning framework
  • Efficient log buffer and convenient buffer debug
  • Follow the PSR-3 log interface specification
  • Automatically record error information
  • Automatically record abnormal information
  • Support Connect the TCP port, send with RFC5424
  • Support Connect the UDP port, send with RFC5424
  • Support RequestId differentiated requests
  • Support for log template customizations

Read More » SeasLog Document at Github.


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 : » https://pecl.php.net/package/seaslog


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Seaslog Options de configuration
Nom | Défaut | Modifiable | Historique
seaslog.appender | 1 | INI_SYSTEM |
seaslog.appender_retry | 0 | INI_ALL |
seaslog.level | 8 | INI_ALL |
seaslog.remote_host | 127.0.0.1 | INI_ALL |
seaslog.remote_port | 514 | INI_ALL |
seaslog.remote_timeout | 1 | INI_SYSTEM |
seaslog.default_basepath | /var/log/www | INI_SYSTEM |
seaslog.default_logger | default | INI_SYSTEM |
seaslog.default_template | %T | %L | %P | %Q | %t | %M | INI_SYSTEM |
seaslog.default_datetime_format | Y-m-d H:i:s | INI_SYSTEM |
seaslog.trace_error | 1 | INI_ALL |
seaslog.trace_exception | 0 | INI_SYSTEM |
seaslog.trace_notice | 0 | INI_ALL |
seaslog.trace_warning | 0 | INI_ALL |
seaslog.use_buffer | 0 | INI_SYSTEM |
seaslog.buffer_size | 0 | INI_ALL |
seaslog.buffer_disabled_in_cli | 0 | INI_SYSTEM |
seaslog.disting_type | 0 | INI_SYSTEM |
seaslog.disting_folder | 1 | INI_SYSTEM |
seaslog.disting_by_hour | 0 | INI_SYSTEM |
seaslog.recall_depth | 0 | INI_ALL |
seaslog.trim_wrap | 0 | INI_ALL |
seaslog.ignore_warning | 1 | INI_ALL |
seaslog.throw_exception | 1 | INI_ALL |

Voici un éclaircissement sur l'utilisation des directives de configuration.

seaslog.appender int

Switch the Record Log Data Store. 1File 2TCP 3UDP (Switch default 1)

SeasLog will send log to tcp://remote_host:remote_port or udp://remote_host:remote_port server, when seaslog.appender configured to 2 (TCP) or 3 (UDP).

When SeasLog send log to TCP/UDP,style follow RFC5424. The {logInfo} affected by seaslog.default_template.

The log style finally formatted such as:
<15>1 2017-08-27T01:24:59+08:00 vagrant-ubuntu-trusty test/logger[27171]: 2016-06-25 00:59:43 | DEBUG | 21423 | 599157af4e937 | 1466787583.322 | this is a neeke debug
<14>1 2017-08-27T01:24:59+08:00 vagrant-ubuntu-trusty test/logger[27171]: 2016-06-25 00:59:43 | INFO | 21423 | 599157af4e937 | 1466787583.323 | this is a info log
<13>1 2017-08-27T01:24:59+08:00 vagrant-ubuntu-trusty test/logger[27171]: 2016-06-25 00:59:43 | NOTICE | 21423 | 599157af4e937 | 1466787583.324 | this is a notice log
seaslog.appender_retry int

Record Log Retry Count. Default 0 (Do Not Retry)

seaslog.buffer_disabled_in_cli int

Disable buffer in cli. 1-Y 0-N(Default)

Switch the configure buffer_disabled_in_cli on. The buffer_disabled_in_cli switch default off. If switch buffer_disabled_in_cli on, and running in cli, seaslog.use_buffer setting will be discarded, Seaslog write to the Data Store IMMEDIATELY.

seaslog.buffer_size int

Configure the buffer_size with 100. The buffer_size default 0, it’s meaning don’t use buffer. If buffer_size > 0,SeasLog will rewritten down into the Data Store when the prerecorded log in memory count >= this buffer_size,and then refresh the memory poll.

seaslog.default_basepath string

Default Log Base Path. Defult "/var/log/www".

seaslog.default_datetime_format string

The DateTime Style. Default "Y-m-d H:i:s".

seaslog.default_logger string

Default Logger Path. Default "default".

seaslog.disting_by_hour int

Switch use the logger with hour. 1-Y 0-N(Default)

Note:

seaslog.disting_by_hour = 1 Switch use Logger DisTing by hour. It’s meaning SeasLog will create the file each one hour.

seaslog.disting_folder int

Switch use the logger with folder. 1-Y(Default) 0-N

Note:

seaslog.disting_folder = 1 Switch use Logger DisTing by folder, it’s meaning SeasLog will create the file deistic by folder, and when this configure close SeasLog will create file use underline connect Logger and Time like default_20180211.log.

seaslog.disting_type int

Switch use the logger with type. 1-Y 0-N(Default)

Note:

seaslog.disting_type = 1 Switch use Logger DisTing by type, it’s meaning SeasLog will create the file deistic info\warn\error and the other type.

seaslog.ignore_warning int

Switch ignore SeasLog warning. 1-On(Default) 0-Off

Note:

seaslog.ignore_warning = 1 Open a warning to ignore SeasLog itself. When directory permissions or receive server ports are blocked, they are ignored; when closed, a warning is thrown.

seaslog.level int

Record logger level. Default 8 (All of them). 0-EMERGENCY 1-ALERT 2-CRITICAL 3-ERROR 4-WARNING 5-NOTICE 6-INFO 7-DEBUG 8-ALL

Note:

Tips: The configuration item has changed since the 1.7.0 version. Before the 1.7.0 version, the smaller the value, the more logs are taken according to the level: 0-all 1-debug 2-info 3-notice 4-warning 5-error 6-critical 7-alert 8-emergency Before the 1.7.0 version, Default 0 (All of them).

seaslog.recall_depth int

Log function recall depth.Will affected variable LineNo in %F. Default 0

seaslog.remote_host string

If you use Record TCP or UDP, configure this remote ip. Default "127.0.0.1"

seaslog.remote_port int

If you use Record TCP or UDP, configure this remote port. Default 514

seaslog.remote_timeout int

If you use Record TCP or UDP, configure this remote timeout. Default 1 second

seaslog.throw_exception int

Switch throw SeasLog exception. 1-On(Default) 0-Off

Note:

seaslog.throw_exception = 1 Open an exception that throws the SeasLog to throw itself. When the directory authority or the receive server port is blocked, throw an exception; do not throw an exception when closed.

seaslog.trace_error int

Automatic Record final error with default logger. 1-Y(Default) 0-N

seaslog.trace_exception int

Automatic Record exception with default logger. 1-Y 0-N(Default)

seaslog.trace_notice int

Automatic Record notice with default logger. 1-Y 0-N(Default)

seaslog.trace_warning int

Automatic Record warning with default logger. 1-Y 0-N(Default)

seaslog.trim_wrap int

Trim the \n and \r in log message. 1-On 0-Off(Default)

seaslog.use_buffer int

Switch use the log buffer with memory. 1-Y 0-N(Default)

Note:

seaslog.use_buffer = 1 Switch the configure use_buffer on. The use_buffer switch default off. If switch use_buffer on, SeasLog prerecord the log with memory, and them would be rewritten down into the Data Store by request shutdown or php process exit (PHP RSHUTDOWN or PHP MSHUTDOWN).

seaslog.default_template string

Default Log template. Default "%T | %L | %P | %Q | %t | %M".

Note:

The following default variables are provided, which can be used directly in the log template and replaced as a corresponding value when the log is eventually generated.

Default log template is: seaslog.default_template = "%T | %L | %P | %Q | %t | %M", that's mean,default log style is: {dateTime} | {level} | {pid} | {uniqid} | {timeStamp} | {logInfo}

If you custom log template, such as: seaslog.default_template = "[%T]:%L %P %Q %t %M", that's will mean,log style was custom as: [{dateTime}]:{level} {pid} {uniqid} {timeStamp} {logInfo}

Seaslog Default Variable Table
Variable Name | Description
%L | Level.
%M | Message.
%T | DateTime. Such as 2017-08-16 19:15:02, affected by seaslog.default_datetime_format.
%t | Timestamp. Such as 1502882102.862,accurate to milliseconds.
%Q | RequestId. To distinguish a single request, such as not invoking the SeasLog::setRequestId($string) function, the unique value generated by the built-in static char *get_uniqid () function is used when the request is initialized.
%H | HostName.
%P | ProcessId.
%D | Domain:Port. Such as www.cloudwise.com:80; When Cli, Such as cli.
%R | Request URI. Such as /app/user/signin; When Cli it's the index script, Such as CliIndex.php.
%m | Request Method. Such as Get; When Cli it's the command script, Such as /bin/bash.
%I | Client IP; When Cli it's local. Priority value: HTTP_X_REAL_IP > HTTP_X_FORWARDED_FOR > REMOTE_ADDR
%F | FileName:LineNo. Such as UserService.php:118.
%U | MemoryUsage. byte. Call zend_memory_usage.
%u | PeakMemoryUsage. byte. Call zend_memory_peak_usage.
%C | TODO Class::Action. Such as UserService::getUserInfo


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.

SEASLOG_VERSION (string)
SEASLOG_AUTHOR (string)
SEASLOG_ALL (string)
"ALL"
SEASLOG_DEBUG (string)
"DEBUG" - Detailed debug information.Fine-grained information events.
SEASLOG_INFO (string)
"INFO" - Interesting events.Emphasizes the running process of the application.
SEASLOG_NOTICE (string)
"NOTICE" - Normal but significant events.Information that is more important than the INFO level during execution.
SEASLOG_WARNING (string)
"WARNING" - Exceptional occurrences that are not errors.Potentially aberrant information that needs attention and needs to be repaired.
SEASLOG_ERROR (string)
"ERROR" - Runtime errors that do not require immediate action but should typically.
SEASLOG_CRITICAL (string)
"CRITICAL" - Critical conditions.Need to be repaired immediately, and the program component is unavailable.
SEASLOG_ALERT (string)
"ALERT" - Action must be taken immediately.Immediate attention should be given to relevant personnel for emergency repairs.
SEASLOG_EMERGENCY (string)
"EMERGENCY" - System is unusable.
SEASLOG_DETAIL_ORDER_ASC (int)
1
SEASLOG_DETAIL_ORDER_DESC (int)
2
SEASLOG_APPENDER_FILE (int)
1
SEASLOG_APPENDER_TCP (int)
2
SEASLOG_APPENDER_UDP (int)
3
SEASLOG_CLOSE_LOGGER_STREAM_MOD_ALL (int)
1
SEASLOG_CLOSE_LOGGER_STREAM_MOD_ASSIGN (int)
2
SEASLOG_REQUEST_VARIABLE_DOMAIN_PORT (int)
1
SEASLOG_REQUEST_VARIABLE_REQUEST_URI (int)
2
SEASLOG_REQUEST_VARIABLE_REQUEST_METHOD (int)
3
SEASLOG_REQUEST_VARIABLE_CLIENT_IP (int)
4


Exemples

Exemple #1 Get and set base path

<?php
$basePath1 = SeasLog::getBasePath();

SeasLog::setBasePath('/log/base_test');
$basePath2 = SeasLog::getBasePath();

var_dump($basePath1,$basePath2);

?>

Résultat de l'exemple ci-dessus est similaire à :

string(12) "/var/log/www"
string(14) "/log/base_test"

Exemple #2 Get and set logger

<?php
$lastLogger1 = SeasLog::getLastLogger();

SeasLog::setLogger('testModule/app1');
$lastLogger2 = SeasLog::getLastLogger();

var_dump($lastLogger1,$lastLogger2);

?>

Résultat de l'exemple ci-dessus est similaire à :

string(7) "default"
string(15) "testModule/app1"

Exemple #3 Fast write log

<?php
SeasLog::log(SEASLOG_ERROR,'this is a error test by ::log');
SeasLog::debug('this is a {userName} debug',array('{userName}' => 'neeke'));
SeasLog::info('this is a info log');
SeasLog::notice('this is a notice log');
SeasLog::warning('your {website} was down,please {action} it ASAP!',array('{website}' => 'github.com','{action}' => 'rboot'));
SeasLog::error('a error log');
SeasLog::critical('some thing was critical');
SeasLog::alert('yes this is a {messageName}',array('{messageName}' => 'alertMSG'));
SeasLog::emergency('Just now, the house next door was completely burnt out! {note}',array('{note}' => 'it`s a joke'));
?>

As the default, seaslog.default_template = "%T | %L | %P | %Q | %t | %M". That's mean,as the default,log record style is: `{dateTime} | {level} | {pid} | {uniqid} | {timeStamp} | {logInfo}`.

Résultat de l'exemple ci-dessus est similaire à :

seaslog.appender = 1

2014-07-27 08:53:52 | ERROR | 23625 | 599159975a9ff | 1406422432.786 | this is a error test by log
2014-07-27 08:53:52 | DEBUG | 23625 | 599159975a9ff | 1406422432.786 | this is a neeke debug
2014-07-27 08:53:52 | INFO | 23625 | 599159975a9ff | 1406422432.787 | this is a info log
2014-07-27 08:53:52 | NOTICE | 23625 | 599159975a9ff | 1406422432.787 | this is a notice log
2014-07-27 08:53:52 | WARNING | 23625 | 599159975a9ff | 1406422432.787 | your github.com was down,please rboot it ASAP!
2014-07-27 08:53:52 | ERROR | 23625 | 599159975a9ff | 1406422432.787 | a error log
2014-07-27 08:53:52 | CRITICAL | 23625 | 599159975a9ff | 1406422432.787 | some thing was critical
2014-07-27 08:53:52 | EMERGENCY | 23625 | 599159975a9ff | 1406422432.787 | Just now, the house next door was completely burnt out! it is a joke

Résultat de l'exemple ci-dessus est similaire à :

seaslog.appender = 2 or seaslog.appender = 3

The log style finally formatted such as:
<15>1 2017-08-27T01:24:59+08:00 vagrant-ubuntu-trusty test/logger[27171]: 2016-06-25 00:59:43 | DEBUG | 21423 | 599157af4e937 | 1466787583.322 | this is a neeke debug
<14>1 2017-08-27T01:24:59+08:00 vagrant-ubuntu-trusty test/logger[27171]: 2016-06-25 00:59:43 | INFO | 21423 | 599157af4e937 | 1466787583.323 | this is a info log
<13>1 2017-08-27T01:24:59+08:00 vagrant-ubuntu-trusty test/logger[27171]: 2016-06-25 00:59:43 | NOTICE | 21423 | 599157af4e937 | 1466787583.324 | this is a notice log

Exemple #4 Fast count some type of log count value

SeasLog get count value of `grep -wc` use system pipe and return to PHP (array or int).

<?php
$countResult1 = SeasLog::analyzerCount();
$countResult2 = SeasLog::analyzerCount(SEASLOG_WARNING);
$countResult3 = SeasLog::analyzerCount(SEASLOG_ERROR,date('Ymd',time()));

var_dump($countResult1,$countResult2,$countResult3);

?>

Résultat de l'exemple ci-dessus est similaire à :

array(8) {
  ["DEBUG"]=>
  int(3)
  ["INFO"]=>
  int(3)
  ["NOTICE"]=>
  int(3)
  ["WARNING"]=>
  int(3)
  ["ERROR"]=>
  int(6)
  ["CRITICAL"]=>
  int(3)
  ["ALERT"]=>
  int(3)
  ["EMERGENCY"]=>
  int(3)
}
int(7)
int(1)

Exemple #5 Acquisit some type of log list

SeasLog get count value of `grep -w` use system pipe and return array to PHP.

<?php
$detailErrorArray = SeasLog::analyzerDetail(SEASLOG_ERROR);
var_dump($detailErrorArray);

var_dump(SeasLog::analyzerDetail(SEASLOG_ERROR,date('Ymd',time())));
?>

Résultat de l'exemple ci-dessus est similaire à :

array(6) {
  [0] =>
  string(83) "2014-02-24 00:14:02 | ERROR | 8568 | 599157af4e937 | 1393172042.717 | test error 3 "
  [1] =>
  string(83) "2014-02-24 00:14:04 | ERROR | 8594 | 5991576584446 | 1393172044.104 | test error 3 "
  [2] =>
  string(83) "2014-02-24 00:14:04 | ERROR | 8620 | 1502697015147 | 1393172044.862 | test error 3 "
  [3] =>
  string(83) "2014-02-24 00:14:05 | ERROR | 8646 | 599159975a9ff | 1393172045.989 | test error 3 "
  [4] =>
  string(83) "2014-02-24 00:14:07 | ERROR | 8672 | 599159986ec28 | 1393172047.882 | test error 3 "
  [5] =>
  string(83) "2014-02-24 00:14:08 | ERROR | 8698 | 5991599981cec | 1393172048.736 | test error 3 "
}

array(2) {
  [0] =>
  string(83) "2014-02-24 00:14:02 | ERROR | 8568 | 599157af4e937 | 1393172042.717 | test error 3 "
  [1] =>
  string(83) "2014-02-24 00:14:04 | ERROR | 8594 | 5991576584446 | 1393172044.104 | test error 3 "
}


Seaslog Fonctions

Sommaire

  • seaslog_get_author — Get SeasLog author.
  • seaslog_get_version — Get SeasLog version.


Get SeasLog author.

  • « Seaslog Fonctions
  • seaslog_get_version »
  • PHP Manual
  • Seaslog Fonctions
  • Get SeasLog author.

seaslog_get_author

(PECL seaslog >=1.0.0)

seaslog_get_author — Get SeasLog author.

Description

seaslog_get_author(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Return SeasLog author as string.

Exemples

Exemple #1 seaslog_get_author() example

<?php

var_dump(seaslog_get_author());

?>

Résultat de l'exemple ci-dessus est similaire à :

string(29) "Chitao.Gao  [ neeke@php.net ]"


Get SeasLog version.

  • « seaslog_get_author
  • SeasLog »
  • PHP Manual
  • Seaslog Fonctions
  • Get SeasLog version.

seaslog_get_version

(PECL seaslog >=1.0.0)

seaslog_get_version — Get SeasLog version.

Description

seaslog_get_version(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Return SeasLog version (SEASLOG_VERSION) as string.

Exemples

Exemple #1 seaslog_get_version() example

<?php

var_dump(seaslog_get_version());

?>

Résultat de l'exemple ci-dessus est similaire à :

string(5) "1.8.4"


The SeasLog class

(PECL seaslog >=1.0.0)

Introduction

Synopsis de la classe

class SeasLog {
/* Méthodes */
public static alert(string $message, array $content = ?, string $logger = ?): bool
public static analyzerCount(string $level, string $log_path = ?, string $key_word = ?): mixed
public static analyzerDetail(
string $level,
string $log_path = ?,
string $key_word = ?,
int $start = ?,
int $limit = ?,
int $order = ?
): mixed
public static closeLoggerStream(int $model, string $logger): bool
public static critical(string $message, array $content = ?, string $logger = ?): bool
public static debug(string $message, array $content = ?, string $logger = ?): bool
public __destruct()
public static emergency(string $message, array $content = ?, string $logger = ?): bool
public static error(string $message, array $content = ?, string $logger = ?): bool
public static flushBuffer(): bool
public static Seaslog::getBasePath(): string
public static getBuffer(): array
public static getBufferEnabled(): bool
public static getDatetimeFormat(): string
public static getLastLogger(): string
public static getRequestID(): string
public static getRequestVariable(int $key): bool
public static info(string $message, array $content = ?, string $logger = ?): bool
public static log(
string $level,
string $message = ?,
array $content = ?,
string $logger = ?
): bool
public static notice(string $message, array $content = ?, string $logger = ?): bool
public static setBasePath(string $base_path): bool
public static setDatetimeFormat(string $format): bool
public static setLogger(string $logger): bool
public static setRequestID(string $request_id): bool
public static setRequestVariable(int $key, string $value): bool
public static warning(string $message, array $content = ?, string $logger = ?): bool
}

Sommaire

  • SeasLog::alert — Record alert log information
  • SeasLog::analyzerCount — Get log count by level, log_path and key_word
  • SeasLog::analyzerDetail — Get log detail by level, log_path, key_word, start, limit, order
  • SeasLog::closeLoggerStream — Manually release stream flow from logger
  • SeasLog::__construct — Description
  • SeasLog::critical — Record critical log information
  • SeasLog::debug — Record debug log information
  • SeasLog::__destruct — Description
  • SeasLog::emergency — Record emergency log information
  • SeasLog::error — Record error log information
  • SeasLog::flushBuffer — Flush logs buffer, dump to appender file, or send to remote api with tcp/udp
  • SeasLog::getBasePath — Get SeasLog base path.
  • SeasLog::getBuffer — Get the logs buffer in memory as array
  • SeasLog::getBufferEnabled — Determin if buffer enabled
  • SeasLog::getDatetimeFormat — Get SeasLog datetime format style
  • SeasLog::getLastLogger — Get SeasLog last logger path
  • SeasLog::getRequestID — Get SeasLog request_id differentiated requests
  • SeasLog::getRequestVariable — Get SeasLog request variable
  • SeasLog::info — Record info log information
  • SeasLog::log — The Common Record Log Function
  • SeasLog::notice — Record notice log information
  • SeasLog::setBasePath — Set SeasLog base path
  • SeasLog::setDatetimeFormat — Set SeasLog datetime format style
  • SeasLog::setLogger — Set SeasLog logger name
  • SeasLog::setRequestID — Set SeasLog request_id differentiated requests
  • SeasLog::setRequestVariable — Manually set SeasLog request variable
  • SeasLog::warning — Record warning log information


Record alert log information

  • « SeasLog
  • SeasLog::analyzerCount »
  • PHP Manual
  • SeasLog
  • Record alert log information

SeasLog::alert

(PECL seaslog >=1.0.0)

SeasLog::alert — Record alert log information

Description

public static SeasLog::alert(string $message, array $content = ?, string $logger = ?): bool

Record alert log information.

Note:

"ALERT" - Action must be taken immediately. Immediate attention should be given to relevant personnel for emergency repairs.

Liste de paramètres

message

The log message.

content

The `message` contain placeholders which implementors replace with values from content array. Sush as `message` is `log info from {NAME}` and `content` is `array('NAME' => neeke)`, the log information will `log info from neeke`.

logger

The `logger` cased by the third param would be used right this right now, like a temp logger, when the function SeasLog::setLogger() called in pre content. If `logger` NULL or "", SeasLog will use lastest logger setted by SeasLog::setLogger().

Valeurs de retour

Return TRUE on record log information success, FALSE on failure.

Exemples

Exemple #1 SeasLog::alert() example

<?php

var_dump(SeasLog::alert('log message'));

//with content
var_dump(SeasLog::alert('log message from {NAME}',array('NAME' => 'neeke')));

//with tmp logger
var_dump(SeasLog::alert('log message from {NAME}',array('NAME' => 'neeke'),'tmp_logger'));

var_dump(SeasLog::getBuffer());

?>

Résultat de l'exemple ci-dessus est similaire à :

bool(true)
bool(true)
bool(true)
array(2) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(81) "2018-07-07 11:45:49 | ALERT | 73263 | 5b40376d1067c | 1530935149.68 | log message
"
    [1]=>
    string(92) "2018-07-07 11:45:49 | ALERT | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
  ["/var/log/www/tmp_logger/20180707.log"]=>
  array(1) {
    [0]=>
    string(92) "2018-07-07 11:45:49 | ALERT | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
}

Voir aussi

  • seaslog.default_template
  • SeasLog::debug() - Record debug log information
  • SeasLog::info() - Record info log information
  • SeasLog::notice() - Record notice log information
  • SeasLog::warning() - Record warning log information
  • SeasLog::error() - Record error log information
  • SeasLog::critical() - Record critical log information
  • SeasLog::emergency() - Record emergency log information
  • SeasLog::log() - The Common Record Log Function


Get log count by level, log_path and key_word

  • « SeasLog::alert
  • SeasLog::analyzerDetail »
  • PHP Manual
  • SeasLog
  • Get log count by level, log_path and key_word

SeasLog::analyzerCount

(PECL seaslog >=1.1.6)

SeasLog::analyzerCount — Get log count by level, log_path and key_word

Description

public static SeasLog::analyzerCount(string $level, string $log_path = ?, string $key_word = ?): mixed

`SeasLog` get count value of `grep -ai '{level}' | grep -aic '{key_word}'` use system pipe and return to PHP (array or int).

Liste de paramètres

level

String. The log information level.

log_path

String. The log information path.

key_word

String. The search key word for log information.

Valeurs de retour

If `level` is SEASLOG_ALL or Empty, return all levels count as `array`. If `level` is SEASLOG_INFO or the other level, return count as `int`.

Exemples

Exemple #1 SeasLog::analyzerCount() example

<?php

$countResult1 = SeasLog::analyzerCount();

//with `level`
$countResult2 = SeasLog::analyzerCount(SEASLOG_DEBUG);

//with `level` and `log_path`
$countResult3 = SeasLog::analyzerCount(SEASLOG_ERROR,date('Ymd',time()));

//with `level` and `key_word`
$countResult4 = SeasLog::analyzerCount(SEASLOG_DEBUG,NULL,'accessToken');

var_dump($countResult1,$countResult2,$countResult3,$countResult4);

?>

Résultat de l'exemple ci-dessus est similaire à :

array(8) {
  ["DEBUG"]=>
  int(180)
  ["INFO"]=>
  int(214)
  ["NOTICE"]=>
  int(0)
  ["WARNING"]=>
  int(0)
  ["ERROR"]=>
  int(228)
  ["CRITICAL"]=>
  int(244)
  ["ALERT"]=>
  int(1)
  ["EMERGENCY"]=>
  int(0)
}

int(180)

int(228)

int(29)

Voir aussi

  • SeasLog::analyzerDetail() - Get log detail by level, log_path, key_word, start, limit, order


Get log detail by level, log_path, key_word, start, limit, order

  • « SeasLog::analyzerCount
  • SeasLog::closeLoggerStream »
  • PHP Manual
  • SeasLog
  • Get log detail by level, log_path, key_word, start, limit, order

SeasLog::analyzerDetail

(PECL seaslog >=1.1.6)

SeasLog::analyzerDetail — Get log detail by level, log_path, key_word, start, limit, order

Description

public static SeasLog::analyzerDetail(
string $level,
string $log_path = ?,
string $key_word = ?,
int $start = ?,
int $limit = ?,
int $order = ?
): mixed

`SeasLog` get results of `grep -ai '{level}' | grep -ai '{key_word}' | sed -n '{start},{limit}'p` use system pipe and return array to PHP.

Liste de paramètres

level

String. The log information level.

log_path

String. The log information path.

key_word

String. The search key word for log information.

start

Int. Default is `1`.

limit

Int. Default is `20`.

order

Int. Default is SEASLOG_DETAIL_ORDER_ASC. See also:

  • SEASLOG_DETAIL_ORDER_ASC
  • SEASLOG_DETAIL_ORDER_DESC

Valeurs de retour

Return results as array.

Note:

When `start`,`limit` is not NULL and in Windows, SeasLog will threw exception with message 'Param start and limit don't support Windows'.

Exemples

Exemple #1 SeasLog::analyzerDetail() example

<?php

$result1 = SeasLog::analyzerDetail(SEASLOG_ERROR);

//with `logger` and `key_word`
$result2 = SeasLog::analyzerDetail(SEASLOG_ERROR,'test/logger/','neeke');

//with `start` and `limit`
$result3 = SeasLog::analyzerDetail(SEASLOG_ERROR,'test/logger/','neeke',1,2);

var_dump($result1,$result2,$result3);
?>

Résultat de l'exemple ci-dessus est similaire à :

array(20) {
  [0]=>
  string(93) "2018-07-09 12:52:53 | ERROR | 12247 | 5b42ea2580e51 | 1531111973.528 | log message from neeke"
  [1]=>
  string(93) "2018-07-09 12:52:54 | ERROR | 12256 | 5b42ea26d6657 | 1531111974.878 | log message from neeke"
  [2]=>
  string(93) "2018-07-09 12:52:55 | ERROR | 12265 | 5b42ea277b8d4 | 1531111975.506 | log message from neeke"
  [3]=>
  string(104) "2018-07-09 12:52:55 | ERROR | 12274 | 5b42ea27db5dc | 1531111975.898 | log message from the other people"
...
}

array(3) {
  [0]=>
  string(93) "2018-07-09 12:52:53 | ERROR | 12247 | 5b42ea2580e51 | 1531111973.528 | log message from neeke"
  [1]=>
  string(93) "2018-07-09 12:52:54 | ERROR | 12256 | 5b42ea26d6657 | 1531111974.878 | log message from neeke"
  [2]=>
  string(93) "2018-07-09 12:52:55 | ERROR | 12265 | 5b42ea277b8d4 | 1531111975.506 | log message from neeke"
}

array(2) {
  [0]=>
  string(93) "2018-07-09 12:52:53 | ERROR | 12247 | 5b42ea2580e51 | 1531111973.528 | log message from neeke"
  [1]=>
  string(93) "2018-07-09 12:52:54 | ERROR | 12256 | 5b42ea26d6657 | 1531111974.878 | log message from neeke"
}

Voir aussi

  • SeasLog::analyzerCount() - Get log count by level, log_path and key_word


Manually release stream flow from logger

  • « SeasLog::analyzerDetail
  • SeasLog::__construct »
  • PHP Manual
  • SeasLog
  • Manually release stream flow from logger

SeasLog::closeLoggerStream

(PECL seaslog >=1.8.6)

SeasLog::closeLoggerStream — Manually release stream flow from logger

Description

public static SeasLog::closeLoggerStream(int $model, string $logger): bool

Manually release stream flow from logger. SeasLog caches the stream handle opened by the log logger to save the overhead of creating a stream. The handle will be automatically released at the end of the request. If in CLI mode, the process will also automatically release when it exits. Or you can use the following functions to manually release(manually release function needs to update SeasLog 1.8.6 or updated version).

Liste de paramètres

model

Constant int.

  • SEASLOG_CLOSE_LOGGER_STREAM_MOD_ALL
  • SEASLOG_CLOSE_LOGGER_STREAM_MOD_ASSIGN

logger

The logger name.

Valeurs de retour

Return TRUE on released stream flow success, FALSE on failure.

Exemples

Exemple #1 SeasLog::closeLoggerStream() example

<?php

var_dump(SeasLog::closeLoggerStream());
var_dump(SeasLog::closeLoggerStream(SEASLOG_CLOSE_LOGGER_STREAM_MOD_ALL));
var_dump(SeasLog::closeLoggerStream(SEASLOG_CLOSE_LOGGER_STREAM_MOD_ASSIGN, 'logger_name'));

?>

Résultat de l'exemple ci-dessus est similaire à :

bool(true)
bool(true)
bool(true)

Voir aussi

  • SeasLog::setLogger() - Set SeasLog logger name
  • SeasLog::getLastLogger() - Get SeasLog last logger path


Description

  • « SeasLog::closeLoggerStream
  • SeasLog::critical »
  • PHP Manual
  • SeasLog
  • Description

SeasLog::__construct

(PECL seaslog >=1.0.0)

SeasLog::__construct — Description

Description

public SeasLog::__construct()

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Exemples

Exemple #1 SeasLog::__construct() example

<?php

/* ... */

?>

Résultat de l'exemple ci-dessus est similaire à :

...


Record critical log information

  • « SeasLog::__construct
  • SeasLog::debug »
  • PHP Manual
  • SeasLog
  • Record critical log information

SeasLog::critical

(PECL seaslog >=1.0.0)

SeasLog::critical — Record critical log information

Description

public static SeasLog::critical(string $message, array $content = ?, string $logger = ?): bool

Record critical log information.

Note:

"CRITICAL" - Critical conditions.Need to be repaired immediately, and the program component is unavailable.

Liste de paramètres

message

The log message.

content

The `message` contain placeholders which implementors replace with values from content array. Sush as `message` is `log info from {NAME}` and `content` is `array('NAME' => neeke)`, the log information will `log info from neeke`.

logger

The `logger` cased by the third param would be used right this right now, like a temp logger, when the function SeasLog::setLogger() called in pre content. If `logger` NULL or "", SeasLog will use lastest logger setted by SeasLog::setLogger().

Valeurs de retour

Return TRUE on record log information success, FALSE on failure.

Exemples

Exemple #1 SeasLog::critical() example

<?php

var_dump(SeasLog::critical('log message'));

//with content
var_dump(SeasLog::critical('log message from {NAME}',array('NAME' => 'neeke')));

//with tmp logger
var_dump(SeasLog::critical('log message from {NAME}',array('NAME' => 'neeke'),'tmp_logger'));

var_dump(SeasLog::getBuffer());

?>

Résultat de l'exemple ci-dessus est similaire à :

bool(true)
bool(true)
bool(true)
array(2) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(81) "2018-07-07 11:45:49 | CRITICAL | 73263 | 5b40376d1067c | 1530935149.68 | log message
"
    [1]=>
    string(92) "2018-07-07 11:45:49 | CRITICAL | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
  ["/var/log/www/tmp_logger/20180707.log"]=>
  array(1) {
    [0]=>
    string(92) "2018-07-07 11:45:49 | CRITICAL | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
}

Voir aussi

  • seaslog.default_template
  • SeasLog::debug() - Record debug log information
  • SeasLog::info() - Record info log information
  • SeasLog::notice() - Record notice log information
  • SeasLog::warning() - Record warning log information
  • SeasLog::error() - Record error log information
  • SeasLog::alert() - Record alert log information
  • SeasLog::emergency() - Record emergency log information
  • SeasLog::log() - The Common Record Log Function


Record debug log information

  • « SeasLog::critical
  • SeasLog::__destruct »
  • PHP Manual
  • SeasLog
  • Record debug log information

SeasLog::debug

(PECL seaslog >=1.0.0)

SeasLog::debug — Record debug log information

Description

public static SeasLog::debug(string $message, array $content = ?, string $logger = ?): bool

Record debug log information.

Note:

"DEBUG" - Detailed debug information.Fine-grained information events.

Liste de paramètres

message

The log message.

content

The `message` contain placeholders which implementors replace with values from content array. Sush as `message` is `log info from {NAME}` and `content` is `array('NAME' => neeke)`, the log information will `log info from neeke`.

logger

The `logger` cased by the third param would be used right this right now, like a temp logger, when the function SeasLog::setLogger() called in pre content. If `logger` NULL or "", SeasLog will use lastest logger setted by SeasLog::setLogger().

Valeurs de retour

Return TRUE on record log information success, FALSE on failure.

Exemples

Exemple #1 SeasLog::debug() example

<?php

var_dump(SeasLog::debug('log message'));

//with content
var_dump(SeasLog::debug('log message from {NAME}',array('NAME' => 'neeke')));

//with tmp logger
var_dump(SeasLog::debug('log message from {NAME}',array('NAME' => 'neeke'),'tmp_logger'));

var_dump(SeasLog::getBuffer());

?>

Résultat de l'exemple ci-dessus est similaire à :

bool(true)
bool(true)
bool(true)
array(2) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(81) "2018-07-07 11:45:49 | DEBUG | 73263 | 5b40376d1067c | 1530935149.68 | log message
"
    [1]=>
    string(92) "2018-07-07 11:45:49 | DEBUG | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
  ["/var/log/www/tmp_logger/20180707.log"]=>
  array(1) {
    [0]=>
    string(92) "2018-07-07 11:45:49 | DEBUG | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
}

Voir aussi

  • seaslog.default_template
  • SeasLog::info() - Record info log information
  • SeasLog::notice() - Record notice log information
  • SeasLog::warning() - Record warning log information
  • SeasLog::error() - Record error log information
  • SeasLog::critical() - Record critical log information
  • SeasLog::alert() - Record alert log information
  • SeasLog::emergency() - Record emergency log information
  • SeasLog::log() - The Common Record Log Function


Description

  • « SeasLog::debug
  • SeasLog::emergency »
  • PHP Manual
  • SeasLog
  • Description

SeasLog::__destruct

(PECL seaslog >=1.0.0)

SeasLog::__destruct — Description

Description

public SeasLog::__destruct()

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 SeasLog::__destruct() example

<?php

/* ... */

?>

Résultat de l'exemple ci-dessus est similaire à :

...


Record emergency log information

  • « SeasLog::__destruct
  • SeasLog::error »
  • PHP Manual
  • SeasLog
  • Record emergency log information

SeasLog::emergency

(PECL seaslog >=1.0.0)

SeasLog::emergency — Record emergency log information

Description

public static SeasLog::emergency(string $message, array $content = ?, string $logger = ?): bool

Record emergency log information.

Note:

"EMERGENCY" - System is unusable.

Liste de paramètres

message

The log message.

content

The `message` contain placeholders which implementors replace with values from content array. Sush as `message` is `log info from {NAME}` and `content` is `array('NAME' => neeke)`, the log information will `log info from neeke`.

logger

The `logger` cased by the third param would be used right this right now, like a temp logger, when the function SeasLog::setLogger() called in pre content. If `logger` NULL or "", SeasLog will use lastest logger setted by SeasLog::setLogger().

Valeurs de retour

Return TRUE on record log information success, FALSE on failure.

Exemples

Exemple #1 SeasLog::emergency() example

<?php

var_dump(SeasLog::emergency('log message'));

//with content
var_dump(SeasLog::emergency('log message from {NAME}',array('NAME' => 'neeke')));

//with tmp logger
var_dump(SeasLog::emergency('log message from {NAME}',array('NAME' => 'neeke'),'tmp_logger'));

var_dump(SeasLog::getBuffer());

?>

Résultat de l'exemple ci-dessus est similaire à :

bool(true)
bool(true)
bool(true)
array(2) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(81) "2018-07-07 11:45:49 | EMERGENCY | 73263 | 5b40376d1067c | 1530935149.68 | log message
"
    [1]=>
    string(92) "2018-07-07 11:45:49 | EMERGENCY | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
  ["/var/log/www/tmp_logger/20180707.log"]=>
  array(1) {
    [0]=>
    string(92) "2018-07-07 11:45:49 | EMERGENCY | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
}

Voir aussi

  • seaslog.default_template
  • SeasLog::debug() - Record debug log information
  • SeasLog::info() - Record info log information
  • SeasLog::notice() - Record notice log information
  • SeasLog::warning() - Record warning log information
  • SeasLog::error() - Record error log information
  • SeasLog::critical() - Record critical log information
  • SeasLog::alert() - Record alert log information
  • SeasLog::log() - The Common Record Log Function


Record error log information

  • « SeasLog::emergency
  • SeasLog::flushBuffer »
  • PHP Manual
  • SeasLog
  • Record error log information

SeasLog::error

(PECL seaslog >=1.0.0)

SeasLog::error — Record error log information

Description

public static SeasLog::error(string $message, array $content = ?, string $logger = ?): bool

Record error log information.

Note:

"ERROR" - Runtime errors that do not require immediate action but should typically.

Liste de paramètres

message

The log message.

content

The `message` contain placeholders which implementors replace with values from content array. Sush as `message` is `log info from {NAME}` and `content` is `array('NAME' => neeke)`, the log information will `log info from neeke`.

logger

The `logger` cased by the third param would be used right this right now, like a temp logger, when the function SeasLog::setLogger() called in pre content. If `logger` NULL or "", SeasLog will use lastest logger setted by SeasLog::setLogger().

Valeurs de retour

Return TRUE on record log information success, FALSE on failure.

Exemples

Exemple #1 SeasLog::error() example

<?php

var_dump(SeasLog::error('log message'));

//with content
var_dump(SeasLog::error('log message from {NAME}',array('NAME' => 'neeke')));

//with tmp logger
var_dump(SeasLog::error('log message from {NAME}',array('NAME' => 'neeke'),'tmp_logger'));

var_dump(SeasLog::getBuffer());

?>

Résultat de l'exemple ci-dessus est similaire à :

bool(true)
bool(true)
bool(true)
array(2) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(81) "2018-07-07 11:45:49 | ERROR | 73263 | 5b40376d1067c | 1530935149.68 | log message
"
    [1]=>
    string(92) "2018-07-07 11:45:49 | ERROR | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
  ["/var/log/www/tmp_logger/20180707.log"]=>
  array(1) {
    [0]=>
    string(92) "2018-07-07 11:45:49 | ERROR | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
}

Voir aussi

  • seaslog.default_template
  • SeasLog::debug() - Record debug log information
  • SeasLog::info() - Record info log information
  • SeasLog::notice() - Record notice log information
  • SeasLog::warning() - Record warning log information
  • SeasLog::critical() - Record critical log information
  • SeasLog::alert() - Record alert log information
  • SeasLog::emergency() - Record emergency log information
  • SeasLog::log() - The Common Record Log Function


Flush logs buffer, dump to appender file, or send to remote api with tcp/udp

  • « SeasLog::error
  • SeasLog::getBasePath »
  • PHP Manual
  • SeasLog
  • Flush logs buffer, dump to appender file, or send to remote api with tcp/udp

SeasLog::flushBuffer

(PECL seaslog >=1.0.0)

SeasLog::flushBuffer — Flush logs buffer, dump to appender file, or send to remote api with tcp/udp

Description

public static SeasLog::flushBuffer(): bool

Flush logs buffer by seaslog.appender: dump to file, or send to remote api with tcp/udp.

Note:

See also: seaslog.appender_retry seaslog.remote_host seaslog.remote_port

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Return TRUE on flush buffer success, FALSE on failure.

Exemples

Exemple #1 SeasLog::flushBuffer() example

<?php

SeasLog::info('info log');
SeasLog::debug('debug log');
var_dump(SeasLog::getBuffer());
var_dump(SeasLog::flushBuffer());
var_dump(SeasLog::getBuffer());

?>

Résultat de l'exemple ci-dessus est similaire à :

array(1) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(79) "2018-07-07 10:47:58 | INFO | 71910 | 5b4029ded6009 | 1530931678.877 | info log
"
    [1]=>
    string(81) "2018-07-07 10:47:58 | DEBUG | 71910 | 5b4029ded6009 | 1530931678.877 | debug log
"
  }
}
bool(true)
array(0) {
}

Voir aussi

  • seaslog.use_buffer
  • seaslog.buffer_size
  • seaslog.buffer_disabled_in_cli
  • SeasLog::getBufferEnabled() - Determin if buffer enabled
  • SeasLog::getBuffer() - Get the logs buffer in memory as array


Get SeasLog base path.

  • « SeasLog::flushBuffer
  • SeasLog::getBuffer »
  • PHP Manual
  • SeasLog
  • Get SeasLog base path.

SeasLog::getBasePath

(PECL seaslog >=1.0.0)

SeasLog::getBasePath — Get SeasLog base path.

Description

public static Seaslog::getBasePath(): string

Use the Function SeasLog::getBasePath() will get the value of seaslog.default_basepath what configured in php.ini(seaslog.ini).

If you use Seaslog::setBasePath(), will change the result.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Return seaslog.default_basepath as string.

Exemples

Exemple #1 SeasLog::getBasePath() example

<?php

var_dump(SeasLog::getBasePath());

?>

Résultat de l'exemple ci-dessus est similaire à :

string(12) "/var/log/www"


Get the logs buffer in memory as array

  • « SeasLog::getBasePath
  • SeasLog::getBufferEnabled »
  • PHP Manual
  • SeasLog
  • Get the logs buffer in memory as array

SeasLog::getBuffer

(PECL seaslog >=1.0.0)

SeasLog::getBuffer — Get the logs buffer in memory as array

Description

public static SeasLog::getBuffer(): array

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Return an array from logs buffer in memory.

Exemples

Exemple #1 SeasLog::getBuffer() example

<?php

var_dump(SeasLog::info('info log'));
var_dump(SeasLog::debug('debug log'));
var_dump(SeasLog::getBuffer());

?>

Résultat de l'exemple ci-dessus est similaire à :

bool(true)
bool(true)
array(1) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(79) "2018-07-07 10:43:32 | INFO | 71785 | 5b4028d4c58d5 | 1530931412.810 | info log
"
    [1]=>
    string(81) "2018-07-07 10:43:32 | DEBUG | 71785 | 5b4028d4c58d5 | 1530931412.810 | debug log
"
  }
}

Voir aussi

  • seaslog.use_buffer
  • seaslog.buffer_size
  • seaslog.buffer_disabled_in_cli
  • SeasLog::getBufferEnabled() - Determin if buffer enabled
  • SeasLog::flushBuffer() - Flush logs buffer, dump to appender file, or send to remote api with tcp/udp


Determin if buffer enabled

  • « SeasLog::getBuffer
  • SeasLog::getDatetimeFormat »
  • PHP Manual
  • SeasLog
  • Determin if buffer enabled

SeasLog::getBufferEnabled

(PECL seaslog >=1.0.0)

SeasLog::getBufferEnabled — Determin if buffer enabled

Description

public static SeasLog::getBufferEnabled(): bool

Result join seaslog.use_buffer and seaslog.buffer_disabled_in_cli.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Return TRUE on seaslog.use_buffer is true. If switch seaslog.buffer_disabled_in_cli on, and running in cli, seaslog.use_buffer setting will be discarded, Seaslog write to the Data Store IMMEDIATELY.

Exemples

Exemple #1 SeasLog::getBufferEnabled() example

<?php

var_dump(SeasLog::getBufferEnabled());

?>

Résultat de l'exemple ci-dessus est similaire à :

bool(false)

Voir aussi

  • seaslog.use_buffer
  • seaslog.buffer_size
  • seaslog.buffer_disabled_in_cli
  • SeasLog::getBuffer() - Get the logs buffer in memory as array
  • SeasLog::flushBuffer() - Flush logs buffer, dump to appender file, or send to remote api with tcp/udp


Get SeasLog datetime format style

  • « SeasLog::getBufferEnabled
  • SeasLog::getLastLogger »
  • PHP Manual
  • SeasLog
  • Get SeasLog datetime format style

SeasLog::getDatetimeFormat

(PECL seaslog >=1.0.0)

SeasLog::getDatetimeFormat — Get SeasLog datetime format style

Description

public static SeasLog::getDatetimeFormat(): string

Get SeasLog datetime format style. Use the Function SeasLog::getDatetimeFormat() will get the value of seaslog.default_datetime_format what configured in php.ini(seaslog.ini).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Get SeasLog datetime format style of seaslog.default_datetime_format. Use the Function SeasLog::setDatetimeFormat() will change this value.

Exemples

Exemple #1 SeasLog::getDatetimeFormat() example

<?php

var_dump(SeasLog::getDateTimeFormat());
var_dump(SeasLog::setDateTimeFormat('Ymd His'));
var_dump(SeasLog::getDateTimeFormat());

?>

Résultat de l'exemple ci-dessus est similaire à :

string(11) "Y-m-d H:i:s"
bool(true)
string(7) "Ymd His"

Voir aussi

  • SeasLog::setDatetimeFormat() - Set SeasLog datetime format style


Get SeasLog last logger path

  • « SeasLog::getDatetimeFormat
  • SeasLog::getRequestID »
  • PHP Manual
  • SeasLog
  • Get SeasLog last logger path

SeasLog::getLastLogger

(PECL seaslog >=1.0.0)

SeasLog::getLastLogger — Get SeasLog last logger path

Description

public static SeasLog::getLastLogger(): string

Use the Function SeasLog::getLastLogger() will get the value of seaslog.default_logger what configured in php.ini(seaslog.ini).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Use the Function SeasLog::setLogger() will change the value of function SeasLog::getLastLogger().

Exemples

Exemple #1 SeasLog::getLastLogger() example

<?php

var_dump(SeasLog::getLastLogger());
SeasLog::setLogger('theNewLogger');
var_dump(SeasLog::getLastLogger());
?>

Résultat de l'exemple ci-dessus est similaire à :

string(7) "default"
string(12) "theNewLogger"

Voir aussi

  • SeasLog::setLogger() - Set SeasLog logger name


Get SeasLog request_id differentiated requests

  • « SeasLog::getLastLogger
  • SeasLog::getRequestVariable »
  • PHP Manual
  • SeasLog
  • Get SeasLog request_id differentiated requests

SeasLog::getRequestID

(PECL seaslog >=1.0.0)

SeasLog::getRequestID — Get SeasLog request_id differentiated requests

Description

public static SeasLog::getRequestID(): string

To distinguish a single request, such as not invoking the SeasLog::setRequestId() function, the unique value generated by the built-in `static char *get_uniqid ()` function is used when the request is initialized.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Return string generated by the built-in `static char *get_uniqid ()` function, or setted by SeasLog::setRequestId() function.

Exemples

Exemple #1 SeasLog::getRequestID() example

<?php

var_dump(SeasLog::getRequestID());
var_dump(SeasLog::setRequestID('reqeust_id_test_'.time()));
var_dump(SeasLog::getRequestID());

?>

Résultat de l'exemple ci-dessus est similaire à :

string(13) "5b3f21a209519"
bool(true)
string(26) "reqeust_id_test_1530864034"

Voir aussi

  • SeasLog::setRequestID() - Set SeasLog request_id differentiated requests
  • The Variable `%Q` in Seaslog Default Variable Table.


Get SeasLog request variable

  • « SeasLog::getRequestID
  • SeasLog::info »
  • PHP Manual
  • SeasLog
  • Get SeasLog request variable

SeasLog::getRequestVariable

(PECL seaslog >=1.9.0)

SeasLog::getRequestVariable — Get SeasLog request variable

Description

public static SeasLog::getRequestVariable(int $key): bool

Get SeasLog request variable.

Liste de paramètres

key

Constant int.

  • SEASLOG_REQUEST_VARIABLE_DOMAIN_PORT
  • SEASLOG_REQUEST_VARIABLE_REQUEST_URI
  • SEASLOG_REQUEST_VARIABLE_REQUEST_METHOD
  • SEASLOG_REQUEST_VARIABLE_CLIENT_IP

Valeurs de retour

Return request variable value on set success.

Exemples

Exemple #1 SeasLog::getRequestVariable() example

<?php

$sDomainPort = 'domain:port';
$sRequestUri = 'uri';
$sRequestMethod = 'method';
$sClientIp = 'client_ip';

$iErrorKey = 1000;

$oSeasLog = new SeasLog();

var_dump($oSeasLog->setRequestVariable(SEASLOG_REQUEST_VARIABLE_DOMAIN_PORT, $sDomainPort));
var_dump($oSeasLog->setRequestVariable(SEASLOG_REQUEST_VARIABLE_REQUEST_URI, $sRequestUri));
var_dump($oSeasLog->setRequestVariable(SEASLOG_REQUEST_VARIABLE_REQUEST_METHOD, $sRequestMethod));
var_dump($oSeasLog->setRequestVariable(SEASLOG_REQUEST_VARIABLE_CLIENT_IP, $sClientIp));

var_dump($oSeasLog->setRequestVariable($iErrorKey,NULL));

var_dump($oSeasLog->getRequestVariable(SEASLOG_REQUEST_VARIABLE_DOMAIN_PORT) == $sDomainPort);
var_dump($oSeasLog->getRequestVariable(SEASLOG_REQUEST_VARIABLE_REQUEST_URI) == $sRequestUri);
var_dump($oSeasLog->getRequestVariable(SEASLOG_REQUEST_VARIABLE_REQUEST_METHOD) == $sRequestMethod);
var_dump($oSeasLog->getRequestVariable(SEASLOG_REQUEST_VARIABLE_CLIENT_IP) == $sClientIp);

var_dump($oSeasLog->getRequestVariable($iErrorKey));

?>

Résultat de l'exemple ci-dessus est similaire à :

bool(true)
bool(true)
bool(true)
bool(true)
bool(false)
bool(true)
bool(true)
bool(true)
bool(true)
bool(false)

Voir aussi

  • SeasLog::setRequestVariable() - Manually set SeasLog request variable


Record info log information

  • « SeasLog::getRequestVariable
  • SeasLog::log »
  • PHP Manual
  • SeasLog
  • Record info log information

SeasLog::info

(PECL seaslog >=1.0.0)

SeasLog::info — Record info log information

Description

public static SeasLog::info(string $message, array $content = ?, string $logger = ?): bool

Record info log information.

Note:

"INFO" - Interesting events.Emphasizes the running process of the application.

Liste de paramètres

message

The log message.

content

The `message` contain placeholders which implementors replace with values from content array. Sush as `message` is `log info from {NAME}` and `content` is `array('NAME' => neeke)`, the log information will `log info from neeke`.

logger

The `logger` cased by the third param would be used right this right now, like a temp logger, when the function SeasLog::setLogger() called in pre content. If `logger` NULL or "", SeasLog will use lastest logger setted by SeasLog::setLogger().

Valeurs de retour

Return TRUE on record log information success, FALSE on failure.

Exemples

Exemple #1 SeasLog::info() example

<?php

var_dump(SeasLog::info('log message'));

//with content
var_dump(SeasLog::info('log message from {NAME}',array('NAME' => 'neeke')));

//with tmp logger
var_dump(SeasLog::info('log message from {NAME}',array('NAME' => 'neeke'),'tmp_logger'));

var_dump(SeasLog::getBuffer());

?>

Résultat de l'exemple ci-dessus est similaire à :

bool(true)
bool(true)
bool(true)
array(2) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(81) "2018-07-07 11:45:49 | INFO | 73263 | 5b40376d1067c | 1530935149.68 | log message
"
    [1]=>
    string(92) "2018-07-07 11:45:49 | INFO | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
  ["/var/log/www/tmp_logger/20180707.log"]=>
  array(1) {
    [0]=>
    string(92) "2018-07-07 11:45:49 | INFO | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
}

Voir aussi

  • seaslog.default_template
  • SeasLog::debug() - Record debug log information
  • SeasLog::notice() - Record notice log information
  • SeasLog::warning() - Record warning log information
  • SeasLog::error() - Record error log information
  • SeasLog::critical() - Record critical log information
  • SeasLog::alert() - Record alert log information
  • SeasLog::emergency() - Record emergency log information
  • SeasLog::log() - The Common Record Log Function


The Common Record Log Function

  • « SeasLog::info
  • SeasLog::notice »
  • PHP Manual
  • SeasLog
  • The Common Record Log Function

SeasLog::log

(PECL seaslog >=1.0.0)

SeasLog::log — The Common Record Log Function

Description

public static SeasLog::log(
string $level,
string $message = ?,
array $content = ?,
string $logger = ?
): bool

The Common Record Log Function.

Liste de paramètres

level

Can use level in:

  • SEASLOG_DEBUG
  • SEASLOG_INFO
  • SEASLOG_NOTICE
  • SEASLOG_WARNING
  • SEASLOG_ERROR
  • SEASLOG_CRITICAL
  • SEASLOG_ALERT
  • SEASLOG_EMERGENCY
Or you can create a new level self-help.

message

The log message.

content

The `message` contain placeholders which implementors replace with values from content array. Sush as `message` is `log info from {NAME}` and `content` is `array('NAME' => neeke)`, the log information will `log info from neeke`.

logger

The `logger` cased by the third param would be used right this right now, like a temp logger, when the function SeasLog::setLogger() called in pre content. If `logger` NULL or "", SeasLog will use lastest logger setted by SeasLog::setLogger().

Valeurs de retour

Return TRUE on record log information success, FALSE on failure.

Exemples

Exemple #1 SeasLog::log() example

<?php

var_dump(SeasLog::log(SEASLOG_INFO,'info log'));
var_dump(SeasLog::getBuffer());

//create a new level self-help.
var_dump(SeasLog::log('MySelfLevel','info log'));
var_dump(SeasLog::getBuffer());

//with `content`
var_dump(SeasLog::log('MySelfLevel','info log {NAME}',array('NAME' => 'neeke')));
var_dump(SeasLog::getBuffer());

//with `logger`
var_dump(SeasLog::log('MySelfLevel','info log {NAME}',array('NAME' => 'neeke'),'tmp_logger'));
var_dump(SeasLog::getBuffer());

?>

Résultat de l'exemple ci-dessus est similaire à :

bool(true)
array(1) {
  ["/var/log/www/default/20180707.log"]=>
  array(1) {
    [0]=>
    string(79) "2018-07-07 11:12:37 | INFO | 72427 | 5b402fa56a2ea | 1530933157.436 | info log
"
  }
}

bool(true)
array(1) {
  ["/var/log/www/default/20180707.log"]=>
  array(1) {
    [0]=>
    string(86) "2018-07-07 11:13:59 | MySelfLevel | 72470 | 5b402ff781c5e | 1530933239.532 | info log
"
  }
}

bool(true)
array(1) {
  ["/var/log/www/tmp_logger/20180707.log"]=>
  array(1) {
    [0]=>
    string(92) "2018-07-07 11:28:12 | MySelfLevel | 72833 | 5b40334ce6a2f | 1530934092.946 | info log neeke
"
  }
}

bool(true)
array(1) {
  ["/var/log/www/default/20180707.log"]=>
  array(1) {
    [0]=>
    string(86) "2018-07-07 11:20:12 | INFO | 72616 | 5b40316c3641e | 1530933612.222 | info log neeke
"
  }
}

Voir aussi

  • seaslog.default_template
  • SeasLog::debug() - Record debug log information
  • SeasLog::info() - Record info log information
  • SeasLog::notice() - Record notice log information
  • SeasLog::warning() - Record warning log information
  • SeasLog::error() - Record error log information
  • SeasLog::critical() - Record critical log information
  • SeasLog::alert() - Record alert log information
  • SeasLog::emergency() - Record emergency log information


Record notice log information

  • « SeasLog::log
  • SeasLog::setBasePath »
  • PHP Manual
  • SeasLog
  • Record notice log information

SeasLog::notice

(PECL seaslog >=1.0.0)

SeasLog::notice — Record notice log information

Description

public static SeasLog::notice(string $message, array $content = ?, string $logger = ?): bool

Record notice log information.

Note:

"NOTICE" - Normal but significant events.Information that is more important than the INFO level during execution.

Liste de paramètres

message

The log message.

content

The `message` contain placeholders which implementors replace with values from content array. Sush as `message` is `log info from {NAME}` and `content` is `array('NAME' => neeke)`, the log information will `log info from neeke`.

logger

The `logger` cased by the third param would be used right this right now, like a temp logger, when the function SeasLog::setLogger() called in pre content. If `logger` NULL or "", SeasLog will use lastest logger setted by SeasLog::setLogger().

Valeurs de retour

Return TRUE on record log information success, FALSE on failure.

Exemples

Exemple #1 SeasLog::notice() example

<?php

var_dump(SeasLog::notice('log message'));

//with content
var_dump(SeasLog::notice('log message from {NAME}',array('NAME' => 'neeke')));

//with tmp logger
var_dump(SeasLog::notice('log message from {NAME}',array('NAME' => 'neeke'),'tmp_logger'));

var_dump(SeasLog::getBuffer());

?>

Résultat de l'exemple ci-dessus est similaire à :

bool(true)
bool(true)
bool(true)
array(2) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(81) "2018-07-07 11:45:49 | NOTICE | 73263 | 5b40376d1067c | 1530935149.68 | log message
"
    [1]=>
    string(92) "2018-07-07 11:45:49 | NOTICE | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
  ["/var/log/www/tmp_logger/20180707.log"]=>
  array(1) {
    [0]=>
    string(92) "2018-07-07 11:45:49 | NOTICE | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
}

Voir aussi

  • seaslog.default_template
  • SeasLog::debug() - Record debug log information
  • SeasLog::info() - Record info log information
  • SeasLog::warning() - Record warning log information
  • SeasLog::error() - Record error log information
  • SeasLog::critical() - Record critical log information
  • SeasLog::alert() - Record alert log information
  • SeasLog::emergency() - Record emergency log information
  • SeasLog::log() - The Common Record Log Function


Set SeasLog base path

  • « SeasLog::notice
  • SeasLog::setDatetimeFormat »
  • PHP Manual
  • SeasLog
  • Set SeasLog base path

SeasLog::setBasePath

(PECL seaslog >=1.0.0)

SeasLog::setBasePath — Set SeasLog base path

Description

public static SeasLog::setBasePath(string $base_path): bool

Set SeasLog base path.

Liste de paramètres

base_path

String.

Valeurs de retour

Return TRUE on setted base path success, FALSE on failure.

Exemples

Exemple #1 SeasLog::setBasePath() example

<?php

/* ... */

?>

Résultat de l'exemple ci-dessus est similaire à :

...


Set SeasLog datetime format style

  • « SeasLog::setBasePath
  • SeasLog::setLogger »
  • PHP Manual
  • SeasLog
  • Set SeasLog datetime format style

SeasLog::setDatetimeFormat

(PECL seaslog >=1.0.0)

SeasLog::setDatetimeFormat — Set SeasLog datetime format style

Description

public static SeasLog::setDatetimeFormat(string $format): bool

Set SeasLog datetime format style.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

format

String. Such as `Y-m-d H:i:s` or `Ymd His`. See also first param `format` at date().

Valeurs de retour

Return TRUE on setted datetime format success, FALSE on failure.

Exemples

Exemple #1 SeasLog::setDatetimeFormat() example

<?php

var_dump(SeasLog::setDateTimeFormat('Ymd His'));

?>

Résultat de l'exemple ci-dessus est similaire à :

bool(true)

Voir aussi

  • SeasLog::getDateTimeFormat() - Get SeasLog datetime format style


Set SeasLog logger name

  • « SeasLog::setDatetimeFormat
  • SeasLog::setRequestID »
  • PHP Manual
  • SeasLog
  • Set SeasLog logger name

SeasLog::setLogger

(PECL seaslog >=1.0.0)

SeasLog::setLogger — Set SeasLog logger name

Description

public static SeasLog::setLogger(string $logger): bool

Use the Function SeasLog::setLogger() will change the value of function SeasLog::getLastLogger(). Than's mean, SeasLog will record loginfo into the logger directory.

Liste de paramètres

logger

Logger name.

Valeurs de retour

Return TRUE on created logger disectory success, FALSE on failure.

Exemples

Exemple #1 SeasLog::setLogger() example

<?php

var_dump(SeasLog::setLogger('testModule/testLogger'));

?>

Résultat de l'exemple ci-dessus est similaire à :

bool(true)

Voir aussi

  • SeasLog::getLastLogger() - Get SeasLog last logger path
  • SeasLog::closeLoggerStream() - Manually release stream flow from logger


Set SeasLog request_id differentiated requests

  • « SeasLog::setLogger
  • SeasLog::setRequestVariable »
  • PHP Manual
  • SeasLog
  • Set SeasLog request_id differentiated requests

SeasLog::setRequestID

(PECL seaslog >=1.0.0)

SeasLog::setRequestID — Set SeasLog request_id differentiated requests

Description

public static SeasLog::setRequestID(string $request_id): bool

To distinguish a single request, such as not invoking the SeasLog::setRequestId() function, the unique value generated by the built-in `static char *get_uniqid ()` function is used when the request is initialized.

Liste de paramètres

request_id

String.

Valeurs de retour

Return TRUE on set request_id success, FALSE on failure.

Exemples

Exemple #1 SeasLog::setRequestID() example

<?php

var_dump(SeasLog::setRequestID(time() . rand()));

?>

Résultat de l'exemple ci-dessus est similaire à :

bool(true)

Voir aussi

  • SeasLog::getRequestID() - Get SeasLog request_id differentiated requests


Manually set SeasLog request variable

  • « SeasLog::setRequestID
  • SeasLog::warning »
  • PHP Manual
  • SeasLog
  • Manually set SeasLog request variable

SeasLog::setRequestVariable

(PECL seaslog >=1.9.0)

SeasLog::setRequestVariable — Manually set SeasLog request variable

Description

public static SeasLog::setRequestVariable(int $key, string $value): bool

Manually set SeasLog request variable.

Liste de paramètres

key

Constant int.

  • SEASLOG_REQUEST_VARIABLE_DOMAIN_PORT
  • SEASLOG_REQUEST_VARIABLE_REQUEST_URI
  • SEASLOG_REQUEST_VARIABLE_REQUEST_METHOD
  • SEASLOG_REQUEST_VARIABLE_CLIENT_IP

value

The request variable value.

Valeurs de retour

Return TRUE on set success, FALSE on failure.

Exemples

Exemple #1 SeasLog::setRequestVariable() example

<?php

$sDomainPort = 'domain:port';
$sRequestUri = 'uri';
$sRequestMethod = 'method';
$sClientIp = 'client_ip';

$iErrorKey = 1000;

$oSeasLog = new SeasLog();

var_dump($oSeasLog->setRequestVariable(SEASLOG_REQUEST_VARIABLE_DOMAIN_PORT, $sDomainPort));
var_dump($oSeasLog->setRequestVariable(SEASLOG_REQUEST_VARIABLE_REQUEST_URI, $sRequestUri));
var_dump($oSeasLog->setRequestVariable(SEASLOG_REQUEST_VARIABLE_REQUEST_METHOD, $sRequestMethod));
var_dump($oSeasLog->setRequestVariable(SEASLOG_REQUEST_VARIABLE_CLIENT_IP, $sClientIp));

var_dump($oSeasLog->setRequestVariable($iErrorKey,NULL));

var_dump($oSeasLog->getRequestVariable(SEASLOG_REQUEST_VARIABLE_DOMAIN_PORT) == $sDomainPort);
var_dump($oSeasLog->getRequestVariable(SEASLOG_REQUEST_VARIABLE_REQUEST_URI) == $sRequestUri);
var_dump($oSeasLog->getRequestVariable(SEASLOG_REQUEST_VARIABLE_REQUEST_METHOD) == $sRequestMethod);
var_dump($oSeasLog->getRequestVariable(SEASLOG_REQUEST_VARIABLE_CLIENT_IP) == $sClientIp);

var_dump($oSeasLog->getRequestVariable($iErrorKey));

?>

Résultat de l'exemple ci-dessus est similaire à :

bool(true)
bool(true)
bool(true)
bool(true)
bool(false)
bool(true)
bool(true)
bool(true)
bool(true)
bool(false)

Voir aussi

  • SeasLog::getRequestVariable() - Get SeasLog request variable


Record warning log information

  • « SeasLog::setRequestVariable
  • SPL »
  • PHP Manual
  • SeasLog
  • Record warning log information

SeasLog::warning

(PECL seaslog >=1.0.0)

SeasLog::warning — Record warning log information

Description

public static SeasLog::warning(string $message, array $content = ?, string $logger = ?): bool

Record warning log information.

Note:

"WARNING" - Exceptional occurrences that are not errors. Potentially aberrant information that needs attention and needs to be repaired.

Liste de paramètres

message

The log message.

content

The `message` contain placeholders which implementors replace with values from content array. Sush as `message` is `log info from {NAME}` and `content` is `array('NAME' => neeke)`, the log information will `log info from neeke`.

logger

The `logger` cased by the third param would be used right this right now, like a temp logger, when the function SeasLog::setLogger() called in pre content. If `logger` NULL or "", SeasLog will use lastest logger setted by SeasLog::setLogger().

Valeurs de retour

Return TRUE on record log information success, FALSE on failure.

Exemples

Exemple #1 SeasLog::warning() example

<?php

var_dump(SeasLog::warning('log message'));

//with content
var_dump(SeasLog::warning('log message from {NAME}',array('NAME' => 'neeke')));

//with tmp logger
var_dump(SeasLog::warning('log message from {NAME}',array('NAME' => 'neeke'),'tmp_logger'));

var_dump(SeasLog::getBuffer());

?>

Résultat de l'exemple ci-dessus est similaire à :

bool(true)
bool(true)
bool(true)
array(2) {
  ["/var/log/www/default/20180707.log"]=>
  array(2) {
    [0]=>
    string(81) "2018-07-07 11:45:49 | WARNING | 73263 | 5b40376d1067c | 1530935149.68 | log message
"
    [1]=>
    string(92) "2018-07-07 11:45:49 | WARNING | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
  ["/var/log/www/tmp_logger/20180707.log"]=>
  array(1) {
    [0]=>
    string(92) "2018-07-07 11:45:49 | WARNING | 73263 | 5b40376d1067c | 1530935149.68 | log message from neeke
"
  }
}

Voir aussi

  • seaslog.default_template
  • SeasLog::debug() - Record debug log information
  • SeasLog::info() - Record info log information
  • SeasLog::notice() - Record notice log information
  • SeasLog::error() - Record error log information
  • SeasLog::critical() - Record critical log information
  • SeasLog::alert() - Record alert log information
  • SeasLog::emergency() - Record emergency log information
  • SeasLog::log() - The Common Record Log Function


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 — L'interface 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 les classes parentes d'une classe
    • class_uses — Retourne les traits utilisés 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 hachage pour un objet donné
    • spl_object_id — Retourne le gestionnaire d'objet entier 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.

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().


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 nœud liés dans les deux sens aux autres nœuds. 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 nœud 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 hachage 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, PHP 8)

Introduction

La classe SplDoublyLinkedList fournit l'interface principale pour les listes doublement chaînées.

Synopsis de la classe

class SplDoublyLinkedList implements Iterator, Countable, ArrayAccess, Serializable {
/* Constantes */
public const int IT_MODE_LIFO;
public const int IT_MODE_FIFO;
public const int IT_MODE_DELETE;
public const int IT_MODE_KEEP;
/* Méthodes */
public add(int $index, mixed $value): void
public bottom(): mixed
public count(): int
public current(): mixed
public getIteratorMode(): int
public isEmpty(): bool
public key(): int
public next(): void
public offsetExists(int $index): bool
public offsetGet(int $index): mixed
public offsetSet(?int $index, mixed $value): void
public offsetUnset(int $index): void
public pop(): mixed
public prev(): void
public push(mixed $value): void
public rewind(): void
public serialize(): string
public setIteratorMode(int $mode): int
public shift(): mixed
public top(): mixed
public unserialize(string $data): void
public unshift(mixed $value): void
public valid(): bool
}

Constantes pré-définies

Direction d'Itération

SplDoublyLinkedList::IT_MODE_LIFO

La liste sera itérée dans un ordre dernier entré, premier sorti, comme une pile.

SplDoublyLinkedList::IT_MODE_FIFO

La liste sera itérée dans un ordre premier entré, premier sorti, comme une file.

Comportement d'Itération

SplDoublyLinkedList::IT_MODE_DELETE

L'itération supprimera les éléments itérés.

SplDoublyLinkedList::IT_MODE_KEEP

L'itération ne supprimera pas les éléments itérés.

Sommaire

  • SplDoublyLinkedList::add — Ajoute/insert une nouvelle valeur à l'index spécifié
  • SplDoublyLinkedList::bottom — Le nœud 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 nœud 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 nœud de la liste
  • SplDoublyLinkedList::top — Récupère le dernier nœud 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 nœuds


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, PHP 8)

SplDoublyLinkedList::add — Ajoute/insert une nouvelle valeur à l'index spécifié

Description

public SplDoublyLinkedList::add(int $index, mixed $value): void

Insert la valeur value à 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.

value

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 nœud parent à partir duquel la liste découle

  • « SplDoublyLinkedList::add
  • SplDoublyLinkedList::count »
  • PHP Manual
  • SplDoublyLinkedList
  • Le nœud parent à partir duquel la liste découle

SplDoublyLinkedList::bottom

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::bottom — Le nœud parent à partir duquel la liste découle

Description

public SplDoublyLinkedList::bottom(): mixed

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur du premier nœud.

Erreurs / Exceptions

Lance une exception RuntimeException lorsque la structure de données est vide.


Compte le nombre d'éléments de la liste

  • « SplDoublyLinkedList::bottom
  • SplDoublyLinkedList::current »
  • PHP Manual
  • SplDoublyLinkedList
  • Compte le nombre d'éléments de la liste

SplDoublyLinkedList::count

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::count — Compte le nombre d'éléments de la liste

Description

public SplDoublyLinkedList::count(): int

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, PHP 8)

SplDoublyLinkedList::current — Retourne l'entrée courante du tableau

Description

public SplDoublyLinkedList::current(): mixed

Retourne l'entrée courante du tableau.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur du nœud 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, PHP 8)

SplDoublyLinkedList::getIteratorMode — Retourne le mode de l'itérateur

Description

public SplDoublyLinkedList::getIteratorMode(): int

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, PHP 8)

SplDoublyLinkedList::isEmpty — Vérifie si la liste est vide

Description

public SplDoublyLinkedList::isEmpty(): bool

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 nœud courant

  • « SplDoublyLinkedList::isEmpty
  • SplDoublyLinkedList::next »
  • PHP Manual
  • SplDoublyLinkedList
  • Retourne l'index du nœud courant

SplDoublyLinkedList::key

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::key — Retourne l'index du nœud courant

Description

public SplDoublyLinkedList::key(): int

Retourne l'index du nœud courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'index du nœud 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, PHP 8)

SplDoublyLinkedList::next — Se déplace à l'entrée suivante

Description

public 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, PHP 8)

SplDoublyLinkedList::offsetExists — Vérifie si un index existe

Description

public SplDoublyLinkedList::offsetExists(int $index): bool

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, PHP 8)

SplDoublyLinkedList::offsetGet — Retourne la valeur d'un index

Description

public SplDoublyLinkedList::offsetGet(int $index): mixed

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, PHP 8)

SplDoublyLinkedList::offsetSet — Spécifie la nouvelle valeur de l'index

Description

public SplDoublyLinkedList::offsetSet(?int $index, mixed $value): void

Définit la valeur de l'index à la valeur value.

Liste de paramètres

index

L'index à définir. Si null la prochaine valeur sera ajouté après la dernière valeur.

value

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, PHP 8)

SplDoublyLinkedList::offsetUnset — Efface la valeur d'un index

Description

public SplDoublyLinkedList::offsetUnset(int $index): void

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, PHP 8)

SplDoublyLinkedList::pop — Dépile et retourne le dernier élément de la liste

Description

public SplDoublyLinkedList::pop(): mixed

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, PHP 8)

SplDoublyLinkedList::prev — Recule d'un élément

Description

public 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, PHP 8)

SplDoublyLinkedList::push — Ajoute un élément à la fin de la liste

Description

public SplDoublyLinkedList::push(mixed $value): void

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, PHP 8)

SplDoublyLinkedList::rewind — Replace l'itérateur au début

Description

public 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, PHP 8)

SplDoublyLinkedList::serialize — Sérialise la liste

Description

public SplDoublyLinkedList::serialize(): string

Sérialise la liste.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

SplDoublyLinkedList::setIteratorMode — Définit le mode d'itération

Description

public SplDoublyLinkedList::setIteratorMode(int $mode): int

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

Avertissement

La direction d'itération ne peut pas être modifiée pour les classes SplStack et SplQueue, elle est toujours SplDoublyLinkedList::IT_MODE_FIFO. Tenter de la modifier entraînera le lancement d'une RuntimeException.

Valeurs de retour

Retourne les différents modes et indicateurs qui affectent l'itération.


Déplace un nœud de la liste

  • « SplDoublyLinkedList::setIteratorMode
  • SplDoublyLinkedList::top »
  • PHP Manual
  • SplDoublyLinkedList
  • Déplace un nœud de la liste

SplDoublyLinkedList::shift

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::shift — Déplace un nœud de la liste

Description

public SplDoublyLinkedList::shift(): mixed

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur du nœud déplacé.

Erreurs / Exceptions

Lance une exception RuntimeException lorsque la structure de données est vide.


Récupère le dernier nœud de la liste

  • « SplDoublyLinkedList::shift
  • SplDoublyLinkedList::unserialize »
  • PHP Manual
  • SplDoublyLinkedList
  • Récupère le dernier nœud de la liste

SplDoublyLinkedList::top

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::top — Récupère le dernier nœud de la liste

Description

public SplDoublyLinkedList::top(): mixed

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur du dernier nœud.

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, PHP 8)

SplDoublyLinkedList::unserialize — Désérialise la liste

Description

public SplDoublyLinkedList::unserialize(string $data): void

Désérialise la liste, depuis SplDoublyLinkedList::serialize().

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

data

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, PHP 8)

SplDoublyLinkedList::unshift — Ajoute un élément à la liste

Description

public SplDoublyLinkedList::unshift(mixed $value): void

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 nœuds

  • « SplDoublyLinkedList::unshift
  • SplStack »
  • PHP Manual
  • SplDoublyLinkedList
  • Vérifie si la liste contient encore des nœuds

SplDoublyLinkedList::valid

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplDoublyLinkedList::valid — Vérifie si la liste contient encore des nœuds

Description

public SplDoublyLinkedList::valid(): bool

Vérifie si la liste contient encore des nœuds.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true si la liste contient encore des nœuds, false sinon.


La classe SplStack

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Introduction

La classe SplStack fournit l'interface de base pour implémenter une pile, basée sur une liste doublement chaînée en définissant le mode de l'itérateur à SplDoublyLinkedList::IT_MODE_LIFO.

Synopsis de la classe

class SplStack extends SplDoublyLinkedList {
/* Constants héritées */
public const int SplDoublyLinkedList::IT_MODE_LIFO;
public const int SplDoublyLinkedList::IT_MODE_FIFO;
public const int SplDoublyLinkedList::IT_MODE_DELETE;
public const int SplDoublyLinkedList::IT_MODE_KEEP;
/* Méthodes héritées */
public SplDoublyLinkedList::add(int $index, mixed $value): void
public SplDoublyLinkedList::bottom(): mixed
public SplDoublyLinkedList::count(): int
public SplDoublyLinkedList::current(): mixed
public SplDoublyLinkedList::getIteratorMode(): int
public SplDoublyLinkedList::isEmpty(): bool
public SplDoublyLinkedList::key(): int
public SplDoublyLinkedList::next(): void
public SplDoublyLinkedList::offsetExists(int $index): bool
public SplDoublyLinkedList::offsetGet(int $index): mixed
public SplDoublyLinkedList::offsetSet(?int $index, mixed $value): void
public SplDoublyLinkedList::offsetUnset(int $index): void
public SplDoublyLinkedList::pop(): mixed
public SplDoublyLinkedList::prev(): void
public SplDoublyLinkedList::push(mixed $value): void
public SplDoublyLinkedList::rewind(): void
public SplDoublyLinkedList::serialize(): string
public SplDoublyLinkedList::setIteratorMode(int $mode): int
public SplDoublyLinkedList::shift(): mixed
public SplDoublyLinkedList::top(): mixed
public SplDoublyLinkedList::unserialize(string $data): void
public SplDoublyLinkedList::unshift(mixed $value): void
public SplDoublyLinkedList::valid(): bool
}

Exemples

Exemple #1 Exemple de SplStack

<?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


La classe SplQueue

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Introduction

La classe SplQueue fournit l'interface d'implémentation d'une queue, basée sur une liste doublement chaînée en définissant le mode de l'itérateur à SplDoublyLinkedList::IT_MODE_FIFO.

Synopsis de la classe

class SplQueue extends SplDoublyLinkedList {
/* Constants héritées */
public const int SplDoublyLinkedList::IT_MODE_LIFO;
public const int SplDoublyLinkedList::IT_MODE_FIFO;
public const int SplDoublyLinkedList::IT_MODE_DELETE;
public const int SplDoublyLinkedList::IT_MODE_KEEP;
/* Méthodes */
public dequeue(): mixed
public enqueue(mixed $value): void
/* Méthodes héritées */
public SplDoublyLinkedList::add(int $index, mixed $value): void
public SplDoublyLinkedList::bottom(): mixed
public SplDoublyLinkedList::count(): int
public SplDoublyLinkedList::current(): mixed
public SplDoublyLinkedList::getIteratorMode(): int
public SplDoublyLinkedList::isEmpty(): bool
public SplDoublyLinkedList::key(): int
public SplDoublyLinkedList::next(): void
public SplDoublyLinkedList::offsetExists(int $index): bool
public SplDoublyLinkedList::offsetGet(int $index): mixed
public SplDoublyLinkedList::offsetSet(?int $index, mixed $value): void
public SplDoublyLinkedList::offsetUnset(int $index): void
public SplDoublyLinkedList::pop(): mixed
public SplDoublyLinkedList::prev(): void
public SplDoublyLinkedList::push(mixed $value): void
public SplDoublyLinkedList::rewind(): void
public SplDoublyLinkedList::serialize(): string
public SplDoublyLinkedList::setIteratorMode(int $mode): int
public SplDoublyLinkedList::shift(): mixed
public SplDoublyLinkedList::top(): mixed
public SplDoublyLinkedList::unserialize(string $data): void
public SplDoublyLinkedList::unshift(mixed $value): void
public SplDoublyLinkedList::valid(): bool
}

Exemples

Exemple #1 Exemple de SplQueue

<?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 Traiter efficacement les tâches avec SplQueue

<?php
$q = new SplQueue();
$q->setIteratorMode(SplQueue::IT_MODE_DELETE);
// ... mettre dans la file d'attente certaines tâches ...
// les traiter
foreach ($q as $task) {
// ... traiter $task ...
// ajouter des nouvelles tâches dans la file d'attente
$q[] = $newTask;
// ...
}
?>

Sommaire

  • SplQueue::dequeue — Supprime un nœud de la file d'attente
  • SplQueue::enqueue — Ajoute un élément à la file d'attente


Supprime un nœud de la file d'attente

  • « SplQueue
  • SplQueue::enqueue »
  • PHP Manual
  • SplQueue
  • Supprime un nœud de la file d'attente

SplQueue::dequeue

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplQueue::dequeue — Supprime un nœud de la file d'attente

Description

public SplQueue::dequeue(): mixed

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 nœud supprimé.


Ajoute un élément à la file d'attente

  • « SplQueue::dequeue
  • SplHeap »
  • PHP Manual
  • SplQueue
  • Ajoute un élément à la file d'attente

SplQueue::enqueue

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplQueue::enqueue — Ajoute un élément à la file d'attente

Description

public SplQueue::enqueue(mixed $value): void

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.


La classe SplHeap

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Introduction

La classe SplHeap fournit l'interface pour un tas.

Synopsis de la classe

abstract class SplHeap implements Iterator, Countable {
/* Méthodes */
protected compare(mixed $value1, mixed $value2): int
public count(): int
public current(): mixed
public extract(): mixed
public insert(mixed $value): true
public isCorrupted(): bool
public isEmpty(): bool
public key(): int
public next(): void
public recoverFromCorruption(): bool
public rewind(): void
public top(): mixed
public valid(): bool
}

Sommaire

  • SplHeap::compare — Compare deux éléments
  • SplHeap::count — Compte le nombre d'éléments dans le tas
  • SplHeap::current — Retourne le nœud courant, pointé par l'itérateur
  • SplHeap::extract — Extrait un nœud du haut du tas
  • SplHeap::insert — Insère un élément dans le tas
  • SplHeap::isCorrupted — Informe si le tas est dans un état corrompu
  • SplHeap::isEmpty — Vérifie si le tas est vide
  • SplHeap::key — Retourne l'index du nœud courant
  • SplHeap::next — Se déplace au nœud suivant
  • SplHeap::recoverFromCorruption — Répare un tas
  • SplHeap::rewind — Revient au début de l'itérateur
  • SplHeap::top — Récupère le premier nœud du tas
  • SplHeap::valid — Vérifie si le tas contient des nœuds


Compare deux éléments

  • « SplHeap
  • SplHeap::count »
  • PHP Manual
  • SplHeap
  • Compare deux éléments

SplHeap::compare

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplHeap::compare — Compare deux éléments

Description

protected SplHeap::compare(mixed $value1, mixed $value2): int

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 nœud à comparer.

value2

La valeur du second nœud à 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.


Compte le nombre d'éléments dans le tas

  • « SplHeap::compare
  • SplHeap::current »
  • PHP Manual
  • SplHeap
  • Compte le nombre d'éléments dans le tas

SplHeap::count

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplHeap::count — Compte le nombre d'éléments dans le tas

Description

public SplHeap::count(): int

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 nœud courant, pointé par l'itérateur

  • « SplHeap::count
  • SplHeap::extract »
  • PHP Manual
  • SplHeap
  • Retourne le nœud courant, pointé par l'itérateur

SplHeap::current

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplHeap::current — Retourne le nœud courant, pointé par l'itérateur

Description

public SplHeap::current(): mixed

Récupère la structure des données du nœud courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur du nœud courant.


Extrait un nœud du haut du tas

  • « SplHeap::current
  • SplHeap::insert »
  • PHP Manual
  • SplHeap
  • Extrait un nœud du haut du tas

SplHeap::extract

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplHeap::extract — Extrait un nœud du haut du tas

Description

public SplHeap::extract(): mixed

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur du nœud 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::isCorrupted »
  • PHP Manual
  • SplHeap
  • Insère un élément dans le tas

SplHeap::insert

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplHeap::insert — Insère un élément dans le tas

Description

public SplHeap::insert(mixed $value): true

Insère la valeur value dans le tas.

Liste de paramètres

value

La valeur à insérer.

Valeurs de retour

Retourne toujours true.


Informe si le tas est dans un état corrompu

  • « SplHeap::insert
  • SplHeap::isEmpty »
  • PHP Manual
  • SplHeap
  • Informe si le tas est dans un état corrompu

SplHeap::isCorrupted

(PHP 7, PHP 8)

SplHeap::isCorrupted — Informe si le tas est dans un état corrompu

Description

public SplHeap::isCorrupted(): bool

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true si la tas est corrompu, false sinon.


Vérifie si le tas est vide

  • « SplHeap::isCorrupted
  • SplHeap::key »
  • PHP Manual
  • SplHeap
  • Vérifie si le tas est vide

SplHeap::isEmpty

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplHeap::isEmpty — Vérifie si le tas est vide

Description

public SplHeap::isEmpty(): bool

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 nœud courant

  • « SplHeap::isEmpty
  • SplHeap::next »
  • PHP Manual
  • SplHeap
  • Retourne l'index du nœud courant

SplHeap::key

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplHeap::key — Retourne l'index du nœud courant

Description

public SplHeap::key(): int

Retourne l'index du nœud courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'index du nœud courant.


Se déplace au nœud suivant

  • « SplHeap::key
  • SplHeap::recoverFromCorruption »
  • PHP Manual
  • SplHeap
  • Se déplace au nœud suivant

SplHeap::next

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplHeap::next — Se déplace au nœud suivant

Description

public SplHeap::next(): void

Se déplace au nœud suivant. Ceci va supprimer le plus haut nœud 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, PHP 8)

SplHeap::recoverFromCorruption — Répare un tas

Description

public SplHeap::recoverFromCorruption(): bool

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne toujours true.


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, PHP 8)

SplHeap::rewind — Revient au début de l'itérateur

Description

public 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 nœud du tas

  • « SplHeap::rewind
  • SplHeap::valid »
  • PHP Manual
  • SplHeap
  • Récupère le premier nœud du tas

SplHeap::top

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplHeap::top — Récupère le premier nœud du tas

Description

public SplHeap::top(): mixed

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur du premier nœud.

Erreurs / Exceptions

Lance une exception RuntimeException lorsque la structure de données est vide.


Vérifie si le tas contient des nœuds

  • « SplHeap::top
  • SplMaxHeap »
  • PHP Manual
  • SplHeap
  • Vérifie si le tas contient des nœuds

SplHeap::valid

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplHeap::valid — Vérifie si le tas contient des nœuds

Description

public SplHeap::valid(): bool

Vérifie si le tas contient encore des nœuds.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true si le tas contient encore des nœuds, false sinon.


La classe SplMaxHeap

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Introduction

La classe SplMaxHeap fournit l'interface pour un tas, et conserve le maximum sur le haut.

Synopsis de la classe

class SplMaxHeap extends SplHeap {
/* Méthodes */
protected compare(mixed $value1, mixed $value2): int
/* Méthodes héritées */
protected SplHeap::compare(mixed $value1, mixed $value2): int
public SplHeap::count(): int
public SplHeap::current(): mixed
public SplHeap::extract(): mixed
public SplHeap::insert(mixed $value): true
public SplHeap::isCorrupted(): bool
public SplHeap::isEmpty(): bool
public SplHeap::key(): int
public SplHeap::next(): void
public SplHeap::recoverFromCorruption(): bool
public SplHeap::rewind(): void
public SplHeap::top(): mixed
public SplHeap::valid(): bool
}

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, PHP 8)

SplMaxHeap::compare — Compare deux éléments

Description

protected SplMaxHeap::compare(mixed $value1, mixed $value2): int

Compare la valeur value1 avec la valeur value2.

Liste de paramètres

value1

La valeur du premier nœud à comparer.

value2

La valeur du second nœud à 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, PHP 8)

Introduction

La classe SplMinHeap fournit une interface pour un tas, qui conserve le minimum sur le haut.

Synopsis de la classe

class SplMinHeap extends SplHeap {
/* Méthodes */
protected compare(mixed $value1, mixed $value2): int
/* Méthodes héritées */
protected SplHeap::compare(mixed $value1, mixed $value2): int
public SplHeap::count(): int
public SplHeap::current(): mixed
public SplHeap::extract(): mixed
public SplHeap::insert(mixed $value): true
public SplHeap::isCorrupted(): bool
public SplHeap::isEmpty(): bool
public SplHeap::key(): int
public SplHeap::next(): void
public SplHeap::recoverFromCorruption(): bool
public SplHeap::rewind(): void
public SplHeap::top(): mixed
public SplHeap::valid(): bool
}

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, PHP 8)

SplMinHeap::compare — Compare deux éléments

Description

protected SplMinHeap::compare(mixed $value1, mixed $value2): int

Compare la valeur value1 avec la valeur value2.

Liste de paramètres

value1

La valeur du premier nœud à comparer.

value2

La valeur du second nœud à 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, PHP 8)

Introduction

La classe SplPriorityQueue fournit les fonctionnalités principales d'une queue à priorités, implémentées avec une pile maximale.

Note: L'ordre des éléments qui ont une priorité identique est undefined. Il peut être différent que l'ordre dans lequel ils ont été inséré.

Synopsis de la classe

class SplPriorityQueue implements Iterator, Countable {
/* Constantes */
public const int EXTR_BOTH;
public const int EXTR_PRIORITY;
public const int EXTR_DATA;
/* Méthodes */
public compare(mixed $priority1, mixed $priority2): int
public count(): int
public current(): mixed
public extract(): mixed
public getExtractFlags(): int
public insert(mixed $value, mixed $priority): true
public isCorrupted(): bool
public isEmpty(): bool
public key(): int
public next(): void
public recoverFromCorruption(): bool
public rewind(): void
public setExtractFlags(int $flags): int
public top(): mixed
public valid(): bool
}

Constantes pré-définies

SplPriorityQueue::EXTR_BOTH

SplPriorityQueue::EXTR_PRIORITY

SplPriorityQueue::EXTR_DATA

Sommaire

  • SplPriorityQueue::compare — Compare deux priorités
  • SplPriorityQueue::count — Compte le nombre d'éléments dans la file d'attente
  • SplPriorityQueue::current — Retourne le nœud courant, pointé par l'itérateur
  • SplPriorityQueue::extract — Extrait un nœud depuis le haut du tas
  • SplPriorityQueue::getExtractFlags — Récupère les drapeaux d'extraction
  • SplPriorityQueue::insert — Insère un élément dans la file d'attente
  • SplPriorityQueue::isCorrupted — Informe si la file prioritaire est dans un état corrompue
  • SplPriorityQueue::isEmpty — Vérifie si la file est vide
  • SplPriorityQueue::key — Retourne l'index du nœud courant
  • SplPriorityQueue::next — Se déplace sur le prochain nœud
  • 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 nœud du haut de la file d'attente
  • SplPriorityQueue::valid — Vérifie si la file d'attente contient encore des nœuds


Compare deux priorités

  • « SplPriorityQueue
  • SplPriorityQueue::count »
  • PHP Manual
  • SplPriorityQueue
  • Compare deux priorités

SplPriorityQueue::compare

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::compare — Compare deux priorités

Description

public SplPriorityQueue::compare(mixed $priority1, mixed $priority2): int

Compare la valeur priority1 avec la valeur priority2.

Liste de paramètres

priority1

La priorité du premier nœud à comparer.

priority2

La priorité du second nœud à 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.


Compte le nombre d'éléments dans la file d'attente

  • « SplPriorityQueue::compare
  • 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, PHP 8)

SplPriorityQueue::count — Compte le nombre d'éléments dans la file d'attente

Description

public SplPriorityQueue::count(): int

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 nœud courant, pointé par l'itérateur

  • « SplPriorityQueue::count
  • SplPriorityQueue::extract »
  • PHP Manual
  • SplPriorityQueue
  • Retourne le nœud courant, pointé par l'itérateur

SplPriorityQueue::current

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::current — Retourne le nœud courant, pointé par l'itérateur

Description

public SplPriorityQueue::current(): mixed

Récupère le nœud courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur ou la priorité (ou les deux) du nœud courant, suivant le drapeau d'extraction.


Extrait un nœud depuis le haut du tas

  • « SplPriorityQueue::current
  • SplPriorityQueue::getExtractFlags »
  • PHP Manual
  • SplPriorityQueue
  • Extrait un nœud depuis le haut du tas

SplPriorityQueue::extract

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::extract — Extrait un nœud depuis le haut du tas

Description

public SplPriorityQueue::extract(): mixed

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur ou la priorité (ou les deux) du nœud extrait, suivant le drapeau d'extraction.


Récupère les drapeaux d'extraction

  • « SplPriorityQueue::extract
  • SplPriorityQueue::insert »
  • PHP Manual
  • SplPriorityQueue
  • Récupère les drapeaux d'extraction

SplPriorityQueue::getExtractFlags

(PHP 7, PHP 8)

SplPriorityQueue::getExtractFlags — Récupère les drapeaux d'extraction

Description

public SplPriorityQueue::getExtractFlags(): int

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne les drapeaux d'extraction.


Insère un élément dans la file d'attente

  • « SplPriorityQueue::getExtractFlags
  • SplPriorityQueue::isCorrupted »
  • PHP Manual
  • SplPriorityQueue
  • Insère un élément dans la file d'attente

SplPriorityQueue::insert

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::insert — Insère un élément dans la file d'attente

Description

public SplPriorityQueue::insert(mixed $value, mixed $priority): true

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

Retourne toujours true.


Informe si la file prioritaire est dans un état corrompue

  • « SplPriorityQueue::insert
  • SplPriorityQueue::isEmpty »
  • PHP Manual
  • SplPriorityQueue
  • Informe si la file prioritaire est dans un état corrompue

SplPriorityQueue::isCorrupted

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::isCorrupted — Informe si la file prioritaire est dans un état corrompue

Description

public SplPriorityQueue::isCorrupted(): bool

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true si la file prioritaire est corrompue, false sinon.


Vérifie si la file est vide

  • « SplPriorityQueue::isCorrupted
  • SplPriorityQueue::key »
  • PHP Manual
  • SplPriorityQueue
  • Vérifie si la file est vide

SplPriorityQueue::isEmpty

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::isEmpty — Vérifie si la file est vide

Description

public SplPriorityQueue::isEmpty(): bool

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 nœud courant

  • « SplPriorityQueue::isEmpty
  • SplPriorityQueue::next »
  • PHP Manual
  • SplPriorityQueue
  • Retourne l'index du nœud courant

SplPriorityQueue::key

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::key — Retourne l'index du nœud courant

Description

public SplPriorityQueue::key(): int

Retourne l'index du nœud courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'index du nœud courant.


Se déplace sur le prochain nœud

  • « SplPriorityQueue::key
  • SplPriorityQueue::recoverFromCorruption »
  • PHP Manual
  • SplPriorityQueue
  • Se déplace sur le prochain nœud

SplPriorityQueue::next

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::next — Se déplace sur le prochain nœud

Description

public SplPriorityQueue::next(): void

Se déplace sur le prochain nœud.

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, PHP 8)

SplPriorityQueue::recoverFromCorruption — Répare une file d'attente

Description

public SplPriorityQueue::recoverFromCorruption(): bool

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne toujours true.


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, PHP 8)

SplPriorityQueue::rewind — Revient au début de l'itérateur

Description

public 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, PHP 8)

SplPriorityQueue::setExtractFlags — Définit le mode d'extraction

Description

public SplPriorityQueue::setExtractFlags(int $flags): int

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

Retourne les drapeaux d'extraction.


Récupère le nœud du haut de la file d'attente

  • « SplPriorityQueue::setExtractFlags
  • SplPriorityQueue::valid »
  • PHP Manual
  • SplPriorityQueue
  • Récupère le nœud du haut de la file d'attente

SplPriorityQueue::top

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::top — Récupère le nœud du haut de la file d'attente

Description

public SplPriorityQueue::top(): mixed

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur ou la priorité (ou les deux) du premier nœud, suivant le drapeau d'extraction.


Vérifie si la file d'attente contient encore des nœuds

  • « SplPriorityQueue::top
  • SplFixedArray »
  • PHP Manual
  • SplPriorityQueue
  • Vérifie si la file d'attente contient encore des nœuds

SplPriorityQueue::valid

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplPriorityQueue::valid — Vérifie si la file d'attente contient encore des nœuds

Description

public SplPriorityQueue::valid(): bool

Vérifie si la file d'attente contient encore des nœuds.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true si la file d'attente contient encore des nœuds, false sinon.


La classe SplFixedArray

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

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 doit être redimensionné manuellement, et n'utilise que des entier dans cette plage pour les index. L'avantage est qu'il utilise moins de mémoire qu'un tableau standard.

Synopsis de la classe

class SplFixedArray implements IteratorAggregate, ArrayAccess, Countable, JsonSerializable {
/* Méthodes */
public __construct(int $size = 0)
public count(): int
public current(): mixed
public static fromArray(array $array, bool $preserveKeys = true): SplFixedArray
public getIterator(): Iterator
public getSize(): int
public jsonSerialize(): array
public key(): int
public next(): void
public offsetExists(int $index): bool
public offsetGet(int $index): mixed
public offsetSet(int $index, mixed $value): void
public offsetUnset(int $index): void
public rewind(): void
public __serialize(): array
public setSize(int $size): bool
public toArray(): array
public __unserialize(array $data): void
public valid(): bool
public __wakeup(): void
}

Historique

Version | Description
8.2.0 | Les méthodes magiques SplFixedArray::__serialize() et SplFixedArray::__unserialize() ont été ajoutées à SplFixedArray.
8.1.0 | La classe SplFixedArray implémente désormais JsonSerializable.
8.0.0 | La classe SplFixedArray implémente désormais IteratorAggregate. Auparavant, Iterator était implémentée.

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::getIterator — Retrieve the iterator to go through the array
  • SplFixedArray::getSize — Lit la taille du tableau à taille fixe
  • SplFixedArray::jsonSerialize — Returns a representation that can be converted to JSON
  • 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::__serialize — Serializes the SplFixedArray object
  • SplFixedArray::setSize — Change la taille d'un tableau à taille fixe
  • SplFixedArray::toArray — Retourne un tableau PHP à partir d'un tableau à taille fixe
  • SplFixedArray::__unserialize — Deserializes the data parameter into an SplFixedArray object
  • SplFixedArray::valid — Vérifie si le tableau contient encore un élément
  • SplFixedArray::__wakeup — Ré-initialise le tableau après sa désérialisation


Construit un nouveau SplFixedArray

  • « SplFixedArray
  • SplFixedArray::count »
  • PHP Manual
  • SplFixedArray
  • Construit un nouveau SplFixedArray

SplFixedArray::__construct

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

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.

Erreurs / Exceptions

Lance une exception ValueError lorsque size est négatif.

Historique

Version | Description
8.0.0 | Lance désormais une exception ValueError lorsque size est négatif. Auparavant, une InvalidArgumentException était lancée.

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, PHP 8)

SplFixedArray::count — Retourne la taille du tableau à taille fixe

Description

public SplFixedArray::count(): int

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 SplFixedArray::current(): mixed

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::getIterator »
  • PHP Manual
  • SplFixedArray
  • Importe un tableau PHP dans un tableau à taille fixe

SplFixedArray::fromArray

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplFixedArray::fromArray — Importe un tableau PHP dans un tableau à taille fixe

Description

public static SplFixedArray::fromArray(array $array, bool $preserveKeys = true): SplFixedArray

Importe le tableau PHP array dans un tableau à taille fixe.

Liste de paramètres

array

La tableau à importer.

preserveKeys

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)
}


Retrieve the iterator to go through the array

  • « SplFixedArray::fromArray
  • SplFixedArray::getSize »
  • PHP Manual
  • SplFixedArray
  • Retrieve the iterator to go through the array

SplFixedArray::getIterator

(PHP 8)

SplFixedArray::getIterator — Retrieve the iterator to go through the array

Description

public SplFixedArray::getIterator(): Iterator

Returns the iterator to go through the array.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

An instance of an object implementing Iterator to go through the array.


Lit la taille du tableau à taille fixe

  • « SplFixedArray::getIterator
  • SplFixedArray::jsonSerialize »
  • PHP Manual
  • SplFixedArray
  • Lit la taille du tableau à taille fixe

SplFixedArray::getSize

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplFixedArray::getSize — Lit la taille du tableau à taille fixe

Description

public SplFixedArray::getSize(): int

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, en tant que entier.

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


Returns a representation that can be converted to JSON

  • « SplFixedArray::getSize
  • SplFixedArray::key »
  • PHP Manual
  • SplFixedArray
  • Returns a representation that can be converted to JSON

SplFixedArray::jsonSerialize

(PHP 8 >= 8.1.0)

SplFixedArray::jsonSerialize — Returns a representation that can be converted to JSON

Description

public SplFixedArray::jsonSerialize(): array

Serializes the array to a value that can be serialized natively by json_encode().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns array data which can be serialized by json_encode(), which is a value of any type other than a ressource.


Retourne l'index de la position courante

  • « SplFixedArray::jsonSerialize
  • 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 SplFixedArray::key(): int

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 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, PHP 8)

SplFixedArray::offsetExists — Vérifie si l'index demandé existe

Description

public SplFixedArray::offsetExists(int $index): bool

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, PHP 8)

SplFixedArray::offsetGet — Retourne la valeur à l'index donné

Description

public SplFixedArray::offsetGet(int $index): mixed

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, PHP 8)

SplFixedArray::offsetSet — Affecte une valeur à un index donné

Description

public SplFixedArray::offsetSet(int $index, mixed $value): void

Affecte la valeur value à l'index index.

Liste de paramètres

index

L'index à affecter.

value

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, PHP 8)

SplFixedArray::offsetUnset — Détruit l'élément à un index donné

Description

public SplFixedArray::offsetUnset(int $index): void

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::__serialize »
  • 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 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.


Serializes the SplFixedArray object

  • « SplFixedArray::rewind
  • SplFixedArray::setSize »
  • PHP Manual
  • SplFixedArray
  • Serializes the SplFixedArray object

SplFixedArray::__serialize

(PHP 8 >= 8.2.0)

SplFixedArray::__serialize — Serializes the SplFixedArray object

Description

public SplFixedArray::__serialize(): array

Avertissement

Cette fonction est actuellement non documentée ; 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.


Change la taille d'un tableau à taille fixe

  • « SplFixedArray::__serialize
  • SplFixedArray::toArray »
  • PHP Manual
  • SplFixedArray
  • Change la taille d'un tableau à taille fixe

SplFixedArray::setSize

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplFixedArray::setSize — Change la taille d'un tableau à taille fixe

Description

public SplFixedArray::setSize(int $size): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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::__unserialize »
  • PHP Manual
  • SplFixedArray
  • Retourne un tableau PHP à partir d'un tableau à taille fixe

SplFixedArray::toArray

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplFixedArray::toArray — Retourne un tableau PHP à partir d'un tableau à taille fixe

Description

public SplFixedArray::toArray(): array

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)
}


Deserializes the data parameter into an SplFixedArray object

  • « SplFixedArray::toArray
  • SplFixedArray::valid »
  • PHP Manual
  • SplFixedArray
  • Deserializes the data parameter into an SplFixedArray object

SplFixedArray::__unserialize

(PHP 8 >= 8.2.0)

SplFixedArray::__unserialize — Deserializes the data parameter into an SplFixedArray object

Description

public SplFixedArray::__unserialize(array $data): void

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

data

The value being deserialized.

Valeurs de retour

Aucune valeur n'est retournée.


Vérifie si le tableau contient encore un élément

  • « SplFixedArray::__unserialize
  • 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 SplFixedArray::valid(): bool

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ésérialisation

  • « SplFixedArray::valid
  • SplObjectStorage »
  • PHP Manual
  • SplFixedArray
  • Ré-initialise le tableau après sa désérialisation

SplFixedArray::__wakeup

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

SplFixedArray::__wakeup — Ré-initialise le tableau après sa désérialisation

Description

public SplFixedArray::__wakeup(): void

Ré-initialise le tableau après sa désérialisation.

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.1.0, PHP 7, PHP 8)

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

class SplObjectStorage implements Countable, Iterator, Serializable, ArrayAccess {
/* Méthodes */
public addAll(SplObjectStorage $storage): int
public attach(object $object, mixed $info = null): void
public contains(object $object): bool
public count(int $mode = COUNT_NORMAL): int
public current(): object
public detach(object $object): void
public getHash(object $object): string
public getInfo(): mixed
public key(): int
public next(): void
public offsetExists(object $object): bool
public offsetGet(object $object): mixed
public offsetSet(object $object, mixed $info = null): void
public offsetUnset(object $object): void
public removeAll(SplObjectStorage $storage): int
public removeAllExcept(SplObjectStorage $storage): int
public rewind(): void
public serialize(): string
public setInfo(mixed $info): void
public unserialize(string $data): void
public valid(): bool
}

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 — Sérialise un stockage
  • SplObjectStorage::setInfo — Modifie les données associée à l'élément courant
  • SplObjectStorage::unserialize — Désérialise 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, PHP 8)

SplObjectStorage::addAll — Ajoute tous les objets d'un autre stockage

Description

public SplObjectStorage::addAll(SplObjectStorage $storage): int

Ajoute tous les objets de l'ensemble storage.

Liste de paramètres

storage

Le stockage à importer.

Valeurs de retour

Le nombre d'objets dans le stockage.

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";
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SplObjectStorage::attach — Ajoute un objet dans le stockage

Description

public SplObjectStorage::attach(object $object, mixed $info = null): void

Ajoute un objet dans le stockage, et lui associe éventuellement des données.

Liste de paramètres

object

L'objet à ajouter.

info

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]);

?>

Résultat de l'exemple ci-dessus est similaire à :

NULL
string(5) "hello"

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, PHP 8)

SplObjectStorage::contains — Vérifie si un stockage contient un objet

Description

public SplObjectStorage::contains(object $object): bool

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));
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SplObjectStorage::count — Retourne le nombre d'objets dans le stockage

Description

public SplObjectStorage::count(int $mode = COUNT_NORMAL): int

Compte le nombre d'objets dans le stockage.

Liste de paramètres

mode

Si le paramètre optionnel mode est réglé à COUNT_RECURSIVE (ou 1), SplObjectStorage::count() comptera récursivement le nombre d'objets dans le stockage.

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));
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SplObjectStorage::current — Retourne l'objet courant

Description

public SplObjectStorage::current(): object

Retourne l'objet courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'objet à la position courante de l'itérateur.

Historique

Version | Description
8.1.0 | SplObjectStorage::current() lance désormais une exception Error si la position actuelle est invalide. Auparavant, false était retourné.

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();
}
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SplObjectStorage::detach — Retire un objet du stockage

Description

public SplObjectStorage::detach(object $object): void

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));
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SplObjectStorage::getHash — Calcule un identifiant unique pour les objets contenus

Description

public SplObjectStorage::getHash(object $object): string

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";
?>

Résultat de l'exemple ci-dessus est similaire à :

2
3

Voir aussi

  • spl_object_hash() - Retourne l'identifiant de hachage 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, PHP 8)

SplObjectStorage::getInfo — Retourne les données associés à l'élément en cours

Description

public SplObjectStorage::getInfo(): mixed

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();
}
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SplObjectStorage::key — Retourne l'index de l'objet courant

Description

public SplObjectStorage::key(): int

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();
}
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SplObjectStorage::next — Passe au prochain élément

Description

public 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();
}
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SplObjectStorage::offsetExists — Vérifie si un objet existe dans le stockage

Description

public SplObjectStorage::offsetExists(object $object): bool

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])
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SplObjectStorage::offsetGet — Retourne les données associées à un objet

Description

public SplObjectStorage::offsetGet(object $object): mixed

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]
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SplObjectStorage::offsetSet — Associe des données à un stockage

Description

public SplObjectStorage::offsetSet(object $object, mixed $info = null): void

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.

info

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]);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SplObjectStorage::offsetUnset — Retire un objet du stockage

Description

public SplObjectStorage::offsetUnset(object $object): void

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));
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SplObjectStorage::removeAll — Retire les objets d'un stockage qui appartienne à un autre stockage

Description

public SplObjectStorage::removeAll(SplObjectStorage $storage): int

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

Retourne le nombre d'objets restants.

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));
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SplObjectStorage::removeAllExcept — Supprime tous les objets du stockage courant sauf ceux contenus dans d'autres stockages

Description

public SplObjectStorage::removeAllExcept(SplObjectStorage $storage): int

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

Retourne le nombre d'objets restants.

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));
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SplObjectStorage::rewind — Remet l'itérateur au début

Description

public 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();
}
?>

Résultat de l'exemple ci-dessus est similaire à :

int(1)
int(0)

Voir aussi

  • SplObjectStorage::next() - Passe au prochain élément


Sérialise un stockage

  • « SplObjectStorage::rewind
  • SplObjectStorage::setInfo »
  • PHP Manual
  • SplObjectStorage
  • Sérialise un stockage

SplObjectStorage::serialize

(PHP 5 >= 5.2.2, PHP 7, PHP 8)

SplObjectStorage::serialize — Sérialise un stockage

Description

public SplObjectStorage::serialize(): string

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";
?>

Résultat de l'exemple ci-dessus est similaire à :

x:i:1;O:8:"stdClass":0:{},s:4:"data";;m:a:0:{}

Voir aussi

  • SplObjectStorage::unserialize() - Désérialise 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, PHP 8)

SplObjectStorage::setInfo — Modifie les données associée à l'élément courant

Description

public SplObjectStorage::setInfo(mixed $info): void

Associe des données, ou informations, à l'objet courant de l'itérateur.

Liste de paramètres

info

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]);
?>

Résultat de l'exemple ci-dessus est 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ésérialise un stockage à partir de sa forme en chaîne

  • « SplObjectStorage::setInfo
  • SplObjectStorage::valid »
  • PHP Manual
  • SplObjectStorage
  • Désérialise un stockage à partir de sa forme en chaîne

SplObjectStorage::unserialize

(PHP 5 >= 5.2.2, PHP 7, PHP 8)

SplObjectStorage::unserialize — Désérialise un stockage à partir de sa forme en chaîne

Description

public SplObjectStorage::unserialize(string $data): void

Désérialise un stockage à partir de sa forme en chaîne.

Liste de paramètres

data

La représentation sérialisé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));
?>

Résultat de l'exemple ci-dessus est similaire à :

int(1)

Voir aussi

  • SplObjectStorage::serialize() - Sérialise 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, PHP 8)

SplObjectStorage::valid — Vérifie si l'élément courant est valide

Description

public SplObjectStorage::valid(): bool

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();
}
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

Introduction

Un itérateur qui itère sur plusieurs itérateurs les uns après les autres.

Synopsis de la classe

class AppendIterator extends IteratorIterator {
/* Méthodes */
public __construct()
public append(Iterator $iterator): void
public current(): mixed
public getArrayIterator(): ArrayIterator
public getIteratorIndex(): ?int
public key(): scalar
public next(): void
public rewind(): void
public valid(): bool
/* Méthodes héritées */
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): bool
}

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::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, PHP 8)

AppendIterator::append — Ajoute un itérateur à la fin

Description

public AppendIterator::append(Iterator $iterator): void

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, PHP 8)

AppendIterator::__construct — Construit un objet AppendIterator

Description

public AppendIterator::__construct()

Construit un objet AppendIterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

AppendIterator::current — Lit la valeur courante

Description

public AppendIterator::current(): mixed

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::getIteratorIndex »
  • PHP Manual
  • AppendIterator
  • Récupère le ArrayIterator

AppendIterator::getArrayIterator

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

AppendIterator::getArrayIterator — Récupère le ArrayIterator

Description

public AppendIterator::getArrayIterator(): ArrayIterator

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'index d'un itérateur

  • « AppendIterator::getArrayIterator
  • AppendIterator::key »
  • PHP Manual
  • AppendIterator
  • Lit l'index d'un itérateur

AppendIterator::getIteratorIndex

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

AppendIterator::getIteratorIndex — Lit l'index d'un itérateur

Description

public AppendIterator::getIteratorIndex(): ?int

Lit l'index de l'itérateur courant interne.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'index entier, partant de 0, de l'itérateur interne s'il existe, null sinon.

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()
  • 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, PHP 8)

AppendIterator::key — Lit la clé courante

Description

public AppendIterator::key(): scalar

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, PHP 8)

AppendIterator::next — Passe à l'élément suivant

Description

public 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, PHP 8)

AppendIterator::rewind — Remet l'itérateur au début

Description

public 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, PHP 8)

AppendIterator::valid — Vérifie la validité de l'élément courant

Description

public AppendIterator::valid(): bool

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, PHP 8)

Introduction

Permet la suppression d'éléments, et la modification de clés ou valeurs lors de l'itération de tableaux ou 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

class ArrayIterator implements SeekableIterator, ArrayAccess, Serializable, Countable {
/* Constantes */
public const int STD_PROP_LIST;
public const int ARRAY_AS_PROPS;
/* Méthodes */
public __construct(array|object $array = [], int $flags = 0)
public append(mixed $value): void
public asort(int $flags = SORT_REGULAR): true
public count(): int
public current(): mixed
public getArrayCopy(): array
public getFlags(): int
public key(): string|int|null
public ksort(int $flags = SORT_REGULAR): true
public natcasesort(): true
public natsort(): true
public next(): void
public offsetExists(mixed $key): bool
public offsetGet(mixed $key): mixed
public offsetSet(mixed $key, mixed $value): void
public offsetUnset(mixed $key): void
public rewind(): void
public seek(int $offset): void
public serialize(): string
public setFlags(int $flags): void
public uasort(callable $callback): true
public uksort(callable $callback): true
public unserialize(string $data): void
public valid(): bool
}

Constantes pré-définies

Drapeaux ArrayIterator

ArrayIterator::STD_PROP_LIST

Les propriétés de l'object conservent leurs fonctionnalités normales lorsqu'ils sont accédés en tant que liste (var_dump, foreach, etc.).

ArrayIterator::ARRAY_AS_PROPS

Les entrées peuvent être accédé comme des propriétés (lecture et écriture).

Sommaire

  • ArrayIterator::append — Ajoute un élément
  • ArrayIterator::asort — Trie les entrées 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 les drapaux de comportement
  • ArrayIterator::key — Retourne la clé courante du tableau
  • ArrayIterator::ksort — Trie les entrées par les clés
  • ArrayIterator::natcasesort — Trie naturellement les entrées, en ne tenant pas compte de la casse
  • ArrayIterator::natsort — Trie naturellement les entrées
  • 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 — Sérialisation
  • ArrayIterator::setFlags — Définie les drapeaux de comportements
  • ArrayIterator::uasort — Trier avec une fonction de comparaison définie par l'utilisateur et maintient l'association de l'index
  • ArrayIterator::uksort — Trier par clés à l'aide d'une fonction de comparaison définie par l'utilisateur
  • ArrayIterator::unserialize — Désérialisation
  • 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, PHP 7, PHP 8)

ArrayIterator::append — Ajoute un élément

Description

public ArrayIterator::append(mixed $value): void

Ajoute une valeur comme dernier élément.

Avertissement

Cette fonction est actuellement non documentée ; 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 les entrées par les valeurs

  • « ArrayIterator::append
  • ArrayIterator::__construct »
  • PHP Manual
  • ArrayIterator
  • Trie les entrées par les valeurs

ArrayIterator::asort

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ArrayIterator::asort — Trie les entrées par les valeurs

Description

public ArrayIterator::asort(int $flags = SORT_REGULAR): true

Trie les entrées par les valeurs.

Note:

Si deux membres se comparent comme égaux, ils maintiennent leur ordre original. Antérieur à PHP 8.0.0, leur ordre relatif dans le tableau trié n'est pas défini.

Liste de paramètres

flags

Le deuxième paramètre optionnel flags peut être utilisé pour modifier le comportement de tri en utilisant ces valeurs :

Type de drapeaux de tri :

  • SORT_REGULAR - compare items normally; the details are described in the comparison operators section
  • 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 comme des chaînes de caractères, basé sur la locale courante. Ceci utilise la locale, qui peut être changée en utilisant setlocale()
  • SORT_NATURAL - compare les éléments comme des chaînes de caractères utilisant "l'ordre naturel" comme natsort()
  • SORT_FLAG_CASE - peut être combiné (OU bit à bit) avec SORT_STRING ou SORT_NATURAL pour trier les chaînes sans tenir compte de la casse

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.2.0 | Le type de retour est maintenant true, auparavant il était bool.

Voir aussi

  • ArrayIterator::ksort() - Trie les entrées par les clés
  • ArrayIterator::natcasesort() - Trie naturellement les entrées, en ne tenant pas compte de la casse
  • ArrayIterator::natsort() - Trie naturellement les entrées
  • ArrayIterator::uasort() - Trier avec une fonction de comparaison définie par l'utilisateur et maintient l'association de l'index
  • ArrayIterator::uksort() - Trier par clés à l'aide d'une fonction de comparaison définie par l'utilisateur
  • asort() - Trie un tableau en ordre croissant et conserve l'association des index


Construit un ArrayIterator

  • « ArrayIterator::asort
  • ArrayIterator::count »
  • PHP Manual
  • ArrayIterator
  • Construit un ArrayIterator

ArrayIterator::__construct

(PHP 5, PHP 7, PHP 8)

ArrayIterator::__construct — Construit un ArrayIterator

Description

public ArrayIterator::__construct(array|object $array = [], int $flags = 0)

Construit un objet ArrayIterator.

Avertissement

Cette fonction est actuellement non documentée ; 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().

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, PHP 7, PHP 8)

ArrayIterator::count — Compte les éléments

Description

public ArrayIterator::count(): int

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 est actuellement non documentée ; 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 les drapaux de 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, PHP 7, PHP 8)

ArrayIterator::current — Retourne l'entrée courante du tableau

Description

public ArrayIterator::current(): mixed

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, PHP 7, PHP 8)

ArrayIterator::getArrayCopy — Récupère la copie d'un tableau

Description

public ArrayIterator::getArrayCopy(): array

Récupère la copie d'un tableau.

Avertissement

Cette fonction est actuellement non documentée ; 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 les drapaux de comportement

  • « ArrayIterator::getArrayCopy
  • ArrayIterator::key »
  • PHP Manual
  • ArrayIterator
  • Récupère les drapaux de comportement

ArrayIterator::getFlags

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

ArrayIterator::getFlags — Récupère les drapaux de comportement

Description

public ArrayIterator::getFlags(): int

Récupère les drapaux de comportement de ArrayIterator. Voir la méthode ArrayIterator::setFlags pour une liste des drapeaux disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne les drapeaux de comportement de ArrayIterator.

Voir aussi

  • ArrayIterator::setFlags() - Définie les drapeaux de comportements
  • 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, PHP 7, PHP 8)

ArrayIterator::key — Retourne la clé courante du tableau

Description

public ArrayIterator::key(): string|int|null

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 les entrées par les clés

  • « ArrayIterator::key
  • ArrayIterator::natcasesort »
  • PHP Manual
  • ArrayIterator
  • Trie les entrées par les clés

ArrayIterator::ksort

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ArrayIterator::ksort — Trie les entrées par les clés

Description

public ArrayIterator::ksort(int $flags = SORT_REGULAR): true

Trie les entrées par les clés.

Note:

Si deux membres se comparent comme égaux, ils maintiennent leur ordre original. Antérieur à PHP 8.0.0, leur ordre relatif dans le tableau trié n'est pas défini.

Liste de paramètres

flags

Le deuxième paramètre optionnel flags peut être utilisé pour modifier le comportement de tri en utilisant ces valeurs :

Type de drapeaux de tri :

  • SORT_REGULAR - compare items normally; the details are described in the comparison operators section
  • 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 comme des chaînes de caractères, basé sur la locale courante. Ceci utilise la locale, qui peut être changée en utilisant setlocale()
  • SORT_NATURAL - compare les éléments comme des chaînes de caractères utilisant "l'ordre naturel" comme natsort()
  • SORT_FLAG_CASE - peut être combiné (OU bit à bit) avec SORT_STRING ou SORT_NATURAL pour trier les chaînes sans tenir compte de la casse

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.2.0 | Le type de retour est maintenant true, auparavant il était bool.

Voir aussi

  • ArrayIterator::asort() - Trie les entrées par les valeurs
  • ArrayIterator::natcasesort() - Trie naturellement les entrées, en ne tenant pas compte de la casse
  • ArrayIterator::natsort() - Trie naturellement les entrées
  • ArrayIterator::uasort() - Trier avec une fonction de comparaison définie par l'utilisateur et maintient l'association de l'index
  • ArrayIterator::uksort() - Trier par clés à l'aide d'une fonction de comparaison définie par l'utilisateur
  • ksort() - Trie un tableau en fonction des clés en ordre croissant


Trie naturellement les entrées, en ne tenant pas compte de la casse

  • « ArrayIterator::ksort
  • ArrayIterator::natsort »
  • PHP Manual
  • ArrayIterator
  • Trie naturellement les entrées, en ne tenant pas compte de la casse

ArrayIterator::natcasesort

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ArrayIterator::natcasesort — Trie naturellement les entrées, en ne tenant pas compte de la casse

Description

public ArrayIterator::natcasesort(): true

Trie les entrées par les valeurs, en utilisant un algorithme insensible à la casse d'ordre naturel.

Note:

Si deux membres se comparent comme égaux, ils maintiennent leur ordre original. Antérieur à PHP 8.0.0, leur ordre relatif dans le tableau trié n'est pas défini.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.2.0 | Le type de retour est maintenant true, auparavant il était bool.

Voir aussi

  • ArrayIterator::asort() - Trie les entrées par les valeurs
  • ArrayIterator::ksort() - Trie les entrées par les clés
  • ArrayIterator::natsort() - Trie naturellement les entrées
  • ArrayIterator::uasort() - Trier avec une fonction de comparaison définie par l'utilisateur et maintient l'association de l'index
  • ArrayIterator::uksort() - Trier par clés à l'aide d'une fonction de comparaison définie par l'utilisateur
  • natcasesort() - Trie un tableau avec l'algorithme à "ordre naturel" insensible à la casse


Trie naturellement les entrées

  • « ArrayIterator::natcasesort
  • ArrayIterator::next »
  • PHP Manual
  • ArrayIterator
  • Trie naturellement les entrées

ArrayIterator::natsort

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ArrayIterator::natsort — Trie naturellement les entrées

Description

public ArrayIterator::natsort(): true

Trie les entrées par les valeurs, en utilisant l'algorithme d'ordre naturel.

Note:

Si deux membres se comparent comme égaux, ils maintiennent leur ordre original. Antérieur à PHP 8.0.0, leur ordre relatif dans le tableau trié n'est pas défini.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.2.0 | Le type de retour est maintenant true, auparavant il était bool.

Voir aussi

  • ArrayIterator::asort() - Trie les entrées par les valeurs
  • ArrayIterator::ksort() - Trie les entrées par les clés
  • ArrayIterator::natcasesort() - Trie naturellement les entrées, en ne tenant pas compte de la casse
  • ArrayIterator::uasort() - Trier avec une fonction de comparaison définie par l'utilisateur et maintient l'association de l'index
  • ArrayIterator::uksort() - Trier par clés à l'aide d'une fonction de comparaison définie par l'utilisateur
  • 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, PHP 7, PHP 8)

ArrayIterator::next — Se déplace vers la prochaine entrée

Description

public 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, PHP 7, PHP 8)

ArrayIterator::offsetExists — Vérifie si une position existe

Description

public ArrayIterator::offsetExists(mixed $key): bool

Vérifie si une position existe.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

key

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, PHP 7, PHP 8)

ArrayIterator::offsetGet — Récupère la valeur pour une position

Description

public ArrayIterator::offsetGet(mixed $key): mixed

Récupère la valeur pour une position donnée.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

key

La position dont on doit récupérer la valeur.

Valeurs de retour

La valeur à la position key.

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, PHP 7, PHP 8)

ArrayIterator::offsetSet — Définit la valeur d'une position

Description

public ArrayIterator::offsetSet(mixed $key, mixed $value): void

Définit la valeur pour une position donnée.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

key

L'index à définir.

value

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, PHP 7, PHP 8)

ArrayIterator::offsetUnset — Efface la valeur d'une position

Description

public ArrayIterator::offsetUnset(mixed $key): void

Efface la valeur d'une position.

Si une itération est en cours, et que ArrayIterator::offsetUnset() est utilisé pour unset l'index actuel de l'itération, la position de l'itération sera avancé au prochain index. Comme la position de l'itération est aussi avancée à la fin de la déclaration de boucle foreach, l'utilisation de ArrayIterator::offsetUnset() à l'intérieur d'une boucle foreach peut résulter en des index qui seront omit.

Liste de paramètres

key

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, PHP 7, PHP 8)

ArrayIterator::rewind — Revient à la position initiale

Description

public 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, PHP 7, PHP 8)

ArrayIterator::seek — Avance à une position donnée

Description

public ArrayIterator::seek(int $offset): void
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

offset

La position désirée.

Valeurs de retour

Aucune valeur n'est retournée.


Sérialisation

  • « ArrayIterator::seek
  • ArrayIterator::setFlags »
  • PHP Manual
  • ArrayIterator
  • Sérialisation

ArrayIterator::serialize

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

ArrayIterator::serialize — Sérialisation

Description

public ArrayIterator::serialize(): string

Sérialisation.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un ArrayIterator, Sérialisé.

Voir aussi

  • ArrayIterator::unserialize() - Désérialisation


Définie les drapeaux de comportements

  • « ArrayIterator::serialize
  • ArrayIterator::uasort »
  • PHP Manual
  • ArrayIterator
  • Définie les drapeaux de comportements

ArrayIterator::setFlags

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

ArrayIterator::setFlags — Définie les drapeaux de comportements

Description

public ArrayIterator::setFlags(int $flags): void

Définit les drapaux qui modifie le comportement de ArrayIterator.

Liste de paramètres

flags

Le nouveau comportement de ArrayIterator. Il prend soit un bit-masque, soit des constantes nommés. Utiliser une constante nommé est vivement encouragé pour assurer une compabilité avec des futures versions.

Les drapaux de comportement disponible sont énumérés ci-dessous. Le comportement réel de ces drapaux est décrit dans les constantes prédéfinies predefined constants.

Les drapaux de comportement ArrayIterator
value | constant
1 | ArrayIterator::STD_PROP_LIST
2 | ArrayIterator::ARRAY_AS_PROPS

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • ArrayIterator::getFlags() - Récupère les drapaux de comportement


Trier avec une fonction de comparaison définie par l'utilisateur et maintient l'association de l'index

  • « ArrayIterator::setFlags
  • ArrayIterator::uksort »
  • PHP Manual
  • ArrayIterator
  • Trier avec une fonction de comparaison définie par l'utilisateur et maintient l'association de l'index

ArrayIterator::uasort

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ArrayIterator::uasort — Trier avec une fonction de comparaison définie par l'utilisateur et maintient l'association de l'index

Description

public ArrayIterator::uasort(callable $callback): true

Cette méthode trie les éléments de telle sorte que les indices maintiennent leur corrélation avec les valeurs auxquelles ils sont associés, à l'aide d'une fonction de comparaison définie par l'utilisateur.

Note:

Si deux membres se comparent comme égaux, ils maintiennent leur ordre original. Antérieur à PHP 8.0.0, leur ordre relatif dans le tableau trié n'est pas défini.

Liste de paramètres

callback

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.

callback(mixed $a, mixed $b): int
Attention

Retourner des valeurs non-entières à partir de la fonction de comparaison, telles que float, entraînera une conversion interne de la valeur de retour du rappel en int. Ainsi, des valeurs telles que 0.99 et 0.1 seront toutes deux converties en une valeur entière de 0, ce qui comparera de telles valeurs comme égales.

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.2.0 | Le type de retour est maintenant true, auparavant il était bool.

Voir aussi

  • ArrayIterator::asort() - Trie les entrées par les valeurs
  • ArrayIterator::ksort() - Trie les entrées par les clés
  • ArrayIterator::natcasesort() - Trie naturellement les entrées, en ne tenant pas compte de la casse
  • ArrayIterator::natsort() - Trie naturellement les entrées
  • ArrayIterator::uksort() - Trier par clés à l'aide d'une fonction de comparaison définie par l'utilisateur
  • uasort() - Trie un tableau en utilisant une fonction de rappel


Trier par clés à l'aide d'une fonction de comparaison définie par l'utilisateur

  • « ArrayIterator::uasort
  • ArrayIterator::unserialize »
  • PHP Manual
  • ArrayIterator
  • Trier par clés à l'aide d'une fonction de comparaison définie par l'utilisateur

ArrayIterator::uksort

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ArrayIterator::uksort — Trier par clés à l'aide d'une fonction de comparaison définie par l'utilisateur

Description

public ArrayIterator::uksort(callable $callback): true

Cette méthode trie les éléments par des clés à l'aide d'une fonction de comparaison fournie par l'utilisateur.

Note:

Si deux membres se comparent comme égaux, ils maintiennent leur ordre original. Antérieur à PHP 8.0.0, leur ordre relatif dans le tableau trié n'est pas défini.

Liste de paramètres

callback

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.

callback(mixed $a, mixed $b): int
Attention

Retourner des valeurs non-entières à partir de la fonction de comparaison, telles que float, entraînera une conversion interne de la valeur de retour du rappel en int. Ainsi, des valeurs telles que 0.99 et 0.1 seront toutes deux converties en une valeur entière de 0, ce qui comparera de telles valeurs comme égales.

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.2.0 | Le type de retour est maintenant true, auparavant il était bool.

Voir aussi

  • ArrayIterator::asort() - Trie les entrées par les valeurs
  • ArrayIterator::ksort() - Trie les entrées par les clés
  • ArrayIterator::natcasesort() - Trie naturellement les entrées, en ne tenant pas compte de la casse
  • ArrayIterator::natsort() - Trie naturellement les entrées
  • ArrayIterator::uasort() - Trier avec une fonction de comparaison définie par l'utilisateur et maintient l'association de l'index
  • uksort() - Trie un tableau par ses clés en utilisant une fonction de rappel


Désérialisation

  • « ArrayIterator::uksort
  • ArrayIterator::valid »
  • PHP Manual
  • ArrayIterator
  • Désérialisation

ArrayIterator::unserialize

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

ArrayIterator::unserialize — Désérialisation

Description

public ArrayIterator::unserialize(string $data): void

Désérialisation.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

data

L'objet ArrayIterator sérialisé.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • ArrayIterator::serialize() - Sérialisation


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, PHP 7, PHP 8)

ArrayIterator::valid — Vérifie si un tableau contient d'autres entrées

Description

public ArrayIterator::valid(): bool

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, PHP 8)

Introduction

Cet objet supporte les itérations en cache sur un autre itérateur.

Synopsis de la classe

class CachingIterator extends IteratorIterator implements ArrayAccess, Countable, Stringable {
/* Constantes */
public const int CALL_TOSTRING;
public const int CATCH_GET_CHILD;
public const int TOSTRING_USE_KEY;
public const int TOSTRING_USE_CURRENT;
public const int TOSTRING_USE_INNER;
public const int FULL_CACHE;
/* Méthodes */
public __construct(Iterator $iterator, int $flags = CachingIterator::CALL_TOSTRING)
public count(): int
public current(): mixed
public getCache(): array
public getFlags(): int
public hasNext(): bool
public key(): scalar
public next(): void
public offsetExists(string $key): bool
public offsetGet(string $key): mixed
public offsetSet(string $key, mixed $value): void
public offsetUnset(string $key): void
public rewind(): void
public setFlags(int $flags): void
public __toString(): string
public valid(): bool
/* Méthodes héritées */
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): bool
}

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.

Historique

Version | Description
8.0.0 | La classe CachingIterator implémente désormais Stringable.

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::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, PHP 8)

CachingIterator::__construct — Construit un nouvel objet CachingIterator pour l'itérateur

Description

public CachingIterator::__construct(Iterator $iterator, int $flags = CachingIterator::CALL_TOSTRING)
Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

CachingIterator::count — Le nombre d'éléments de l'itérateur

Description

public CachingIterator::count(): int
Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

CachingIterator::current — Retourne l'élément courant

Description

public CachingIterator::current(): mixed
Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

CachingIterator::getCache — Lit le contenu du cache

Description

public CachingIterator::getCache(): array

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::hasNext »
  • PHP Manual
  • CachingIterator
  • Lit les options utilisées

CachingIterator::getFlags

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

CachingIterator::getFlags — Lit les options utilisées

Description

public CachingIterator::getFlags(): int
Avertissement

Cette fonction est actuellement non documentée ; 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...


Vérifie si l'itérateur interne a un élément suivant valide

  • « CachingIterator::getFlags
  • CachingIterator::key »
  • PHP Manual
  • CachingIterator
  • Vérifie si l'itérateur interne a un élément suivant valide

CachingIterator::hasNext

(PHP 5, PHP 7, PHP 8)

CachingIterator::hasNext — Vérifie si l'itérateur interne a un élément suivant valide

Description

public CachingIterator::hasNext(): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

CachingIterator::key — Retourne l'index de l'élément courant

Description

public CachingIterator::key(): scalar
Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

CachingIterator::next — Déplace l'itérateur à la position suivante

Description

public CachingIterator::next(): void
Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

CachingIterator::offsetExists — Vérifie l'existence d'un offset

Description

public CachingIterator::offsetExists(string $key): bool
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

key

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, PHP 8)

CachingIterator::offsetGet — L'élément à lire à la position donnée

Description

public CachingIterator::offsetGet(string $key): mixed
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

key

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, PHP 8)

CachingIterator::offsetSet — Affecte un nouvel élément à la position donnée

Description

public CachingIterator::offsetSet(string $key, mixed $value): void
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

key

L'index de l'élément à affecter.

value

La nouvelle valeur de key.

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, PHP 8)

CachingIterator::offsetUnset — Détruit un élément à l'offset indiqué

Description

public CachingIterator::offsetUnset(string $key): void
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

key

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, PHP 8)

CachingIterator::rewind — Replace l'itérateur au début

Description

public CachingIterator::rewind(): void
Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

CachingIterator::setFlags — Modifie les options du CachingIterator

Description

public CachingIterator::setFlags(int $flags): void
Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

CachingIterator::__toString — Retourne la représentation de l'élément courant sous forme de chaîne

Description

public CachingIterator::__toString(): string
Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

CachingIterator::valid — Vérifie si l'élément courant est valide

Description

public CachingIterator::valid(): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

Introduction

Synopsis de la classe

class CallbackFilterIterator extends FilterIterator {
/* Méthodes */
public __construct(Iterator $iterator, callable $callback)
public accept(): bool
/* Méthodes héritées */
public FilterIterator::accept(): bool
public FilterIterator::current(): mixed
public FilterIterator::key(): mixed
public FilterIterator::next(): void
public FilterIterator::rewind(): void
public FilterIterator::valid(): bool
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): bool
}

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, PHP 8)

CallbackFilterIterator::accept — Appel la fonction de rappel avec la valeur courante, la clé courante, et l'itérateur interne comme arguments

Description

public CallbackFilterIterator::accept(): bool

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, PHP 8)

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.

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, PHP 8)

Introduction

La classe DirectoryIterator fournit une interface simple pour lire le contenu d'un système de fichiers.

Synopsis de la classe

class DirectoryIterator extends SplFileInfo implements SeekableIterator {
/* Méthodes */
public __construct(string $directory)
public current(): mixed
public getBasename(string $suffix = ""): string
public getExtension(): string
public getFilename(): string
public isDot(): bool
public key(): mixed
public next(): void
public rewind(): void
public seek(int $offset): void
public __toString(): string
public valid(): bool
/* Méthodes héritées */
public SplFileInfo::getATime(): int|false
public SplFileInfo::getBasename(string $suffix = ""): string
public SplFileInfo::getCTime(): int|false
public SplFileInfo::getExtension(): string
public SplFileInfo::getFileInfo(?string $class = null): SplFileInfo
public SplFileInfo::getFilename(): string
public SplFileInfo::getGroup(): int|false
public SplFileInfo::getInode(): int|false
public SplFileInfo::getLinkTarget(): string|false
public SplFileInfo::getMTime(): int|false
public SplFileInfo::getOwner(): int|false
public SplFileInfo::getPath(): string
public SplFileInfo::getPathInfo(?string $class = null): ?SplFileInfo
public SplFileInfo::getPathname(): string
public SplFileInfo::getPerms(): int|false
public SplFileInfo::getRealPath(): string|false
public SplFileInfo::getSize(): int|false
public SplFileInfo::getType(): string|false
public SplFileInfo::isDir(): bool
public SplFileInfo::isExecutable(): bool
public SplFileInfo::isFile(): bool
public SplFileInfo::isLink(): bool
public SplFileInfo::isReadable(): bool
public SplFileInfo::isWritable(): bool
public SplFileInfo::openFile(string $mode = "r", bool $useIncludePath = false, ?resource $context = null): SplFileObject
public SplFileInfo::setFileClass(string $class = SplFileObject::class): void
public SplFileInfo::setInfoClass(string $class = SplFileInfo::class): void
public SplFileInfo::__toString(): string
}

Sommaire

  • DirectoryIterator::__construct — Construit un nouvel itérateur de dossier à partir d'un chemin
  • DirectoryIterator::current — Retourne l'élément courant du DirectoryIterator
  • DirectoryIterator::getBasename — Lit le nom de dossier de l'élément DirectoryIterator
  • DirectoryIterator::getExtension — Récupère l'extension du fichier
  • DirectoryIterator::getFilename — Retourne le nom de l'entrée courante du dossier
  • DirectoryIterator::isDot — Retourne true si l'entrée courante est '.' ou '..'
  • 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, PHP 8)

DirectoryIterator::__construct — Construit un nouvel itérateur de dossier à partir d'un chemin

Description

public DirectoryIterator::__construct(string $directory)

Construit un nouvel itérateur de dossier à partir d'un chemin.

Liste de paramètres

directory

Le chemin du dossier à parcourir.

Erreurs / Exceptions

Lance une exception UnexpectedValueException si le répertoire n'existe pas.

Lance une exception ValueError si directory est une chaîne vide.

Historique

Version | Description
8.0.0 | Lance désormais une exception ValueError quand directory est une chaîne vide ; Auparavant, une RuntimeException é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::getBasename »
  • PHP Manual
  • DirectoryIterator
  • Retourne l'élément courant du DirectoryIterator

DirectoryIterator::current

(PHP 5, PHP 7, PHP 8)

DirectoryIterator::current — Retourne l'élément courant du DirectoryIterator

Description

public DirectoryIterator::current(): mixed

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();
}
?>

Résultat de l'exemple ci-dessus est 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 le nom de dossier de l'élément DirectoryIterator

  • « DirectoryIterator::current
  • DirectoryIterator::getExtension »
  • PHP Manual
  • DirectoryIterator
  • Lit le nom de dossier de l'élément DirectoryIterator

DirectoryIterator::getBasename

(PHP 5 >= 5.2.2, PHP 7, PHP 8)

DirectoryIterator::getBasename — Lit le nom de dossier de l'élément DirectoryIterator

Description

public DirectoryIterator::getBasename(string $suffix = ""): string

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";
}
}
?>

Résultat de l'exemple ci-dessus est 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()
  • DirectoryIterator::getPathname()
  • basename() - Retourne le nom de la composante finale d'un chemin
  • pathinfo() - Retourne des informations sur un chemin système


Récupère l'extension du fichier

  • « DirectoryIterator::getBasename
  • DirectoryIterator::getFilename »
  • PHP Manual
  • DirectoryIterator
  • Récupère l'extension du fichier

DirectoryIterator::getExtension

(PHP 5 >= 5.3.6, PHP 7, PHP 8)

DirectoryIterator::getExtension — Récupère l'extension du fichier

Description

public DirectoryIterator::getExtension(): string

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";
}
}

?>

Résultat de l'exemple ci-dessus est similaire à :

php
txt
jpg
gz

Notes

Note:

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::isDot »
  • PHP Manual
  • DirectoryIterator
  • Retourne le nom de l'entrée courante du dossier

DirectoryIterator::getFilename

(PHP 5, PHP 7, PHP 8)

DirectoryIterator::getFilename — Retourne le nom de l'entrée courante du dossier

Description

public DirectoryIterator::getFilename(): string

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";
}
?>

Résultat de l'exemple ci-dessus est 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()
  • DirectoryIterator::getPathname()
  • pathinfo() - Retourne des informations sur un chemin système


Retourne true si l'entrée courante est '.' ou '..'

  • « DirectoryIterator::getFilename
  • DirectoryIterator::key »
  • PHP Manual
  • DirectoryIterator
  • Retourne true si l'entrée courante est '.' ou '..'

DirectoryIterator::isDot

(PHP 5, PHP 7, PHP 8)

DirectoryIterator::isDot — Retourne true si l'entrée courante est '.' ou '..'

Description

public DirectoryIterator::isDot(): bool

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";
}
}
?>

Résultat de l'exemple ci-dessus est similaire à :

apple.jpg
banana.jpg
example.php
pears.jpg

Voir aussi

  • DirectoryIterator::getType()
  • DirectoryIterator::isDir()
  • DirectoryIterator::isFile()
  • DirectoryIterator::isLink()


Retourne l'entrée courante du dossier

  • « DirectoryIterator::isDot
  • DirectoryIterator::next »
  • PHP Manual
  • DirectoryIterator
  • Retourne l'entrée courante du dossier

DirectoryIterator::key

(PHP 5, PHP 7, PHP 8)

DirectoryIterator::key — Retourne l'entrée courante du dossier

Description

public DirectoryIterator::key(): mixed

Retourne l'entrée courante de l'objet DirectoryIterator.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La clé pour l'entrée courante de DirectoryIterator en tant qu'entier.

Historique

Version | Description
8.1.0 | Lorsque l'itérateur n'est pas initialisé, une Error est désormais lancée. Auparavant, la méthode retournait false.

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";
}
}
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

DirectoryIterator::next — Se déplace vers la prochaine entrée

Description

public 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();
}
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

DirectoryIterator::rewind — Revient au début du dossier

Description

public 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, PHP 8)

DirectoryIterator::seek — Déplace le pointeur dans un itérateur DirectoryIterator

Description

public DirectoryIterator::seek(int $offset): void

Déplace le pointeur dans un itérateur DirectoryIterator.

Liste de paramètres

offset

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, PHP 8)

DirectoryIterator::__toString — Lit le nom du fichier

Description

public DirectoryIterator::__toString(): string

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;
}
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

DirectoryIterator::valid — Vérifie si le répertoire contient encore des entrées

Description

public DirectoryIterator::valid(): bool

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, PHP 8)

Introduction

La classe EmptyIterator crée un objet itérateur vide.

Synopsis de la classe

class EmptyIterator implements Iterator {
/* Méthodes */
public current(): never
public key(): never
public next(): void
public rewind(): void
public valid(): false
}

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 — Vérifie si l'élément actuel est valide


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, PHP 8)

EmptyIterator::current — La méthode EmptyIterator::current()

Description

public EmptyIterator::current(): never

Cette méthode ne doit pas être appelée. Elle émet une exception en cas d'accès.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

EmptyIterator::key — The key() method

Description

public EmptyIterator::key(): never

Cette méthode ne doit pas être appelée. Elle émet une exception en cas d'accès.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

EmptyIterator::next — La méthode EmptyIterator::next()

Description

public EmptyIterator::next(): void

Aucune opération. Rien à faire.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

EmptyIterator::rewind — La méthode EmptyIterator::rewind()

Description

public EmptyIterator::rewind(): void

EmptyIterator::rewind()

Avertissement

Cette fonction est actuellement non documentée ; 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.


Vérifie si l'élément actuel est valide

  • « EmptyIterator::rewind
  • FilesystemIterator »
  • PHP Manual
  • EmptyIterator
  • Vérifie si l'élément actuel est valide

EmptyIterator::valid

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

EmptyIterator::valid — Vérifie si l'élément actuel est valide

Description

public EmptyIterator::valid(): false

Vérifie si l'élément actuel est valide.

Note:

L'EmptyIterator est toujours vide et n'aura jamais de valeur valide. La valeur de retour est toujours false.

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, PHP 8)

Introduction

L'itérateur FilesystemIterator.

Synopsis de la classe

class FilesystemIterator extends DirectoryIterator {
/* Constantes */
public const int CURRENT_MODE_MASK;
public const int CURRENT_AS_PATHNAME;
public const int CURRENT_AS_FILEINFO;
public const int CURRENT_AS_SELF;
public const int KEY_MODE_MASK;
public const int KEY_AS_PATHNAME;
public const int FOLLOW_SYMLINKS;
public const int KEY_AS_FILENAME;
public const int NEW_CURRENT_AND_KEY;
public const int OTHER_MODE_MASK;
public const int SKIP_DOTS;
public const int UNIX_PATHS;
/* Méthodes */
public __construct(string $directory, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS)
public current(): string|SplFileInfo|FilesystemIterator
public getFlags(): int
public key(): string
public next(): void
public rewind(): void
public setFlags(int $flags): void
/* Méthodes héritées */
public DirectoryIterator::current(): mixed
public DirectoryIterator::getBasename(string $suffix = ""): string
public DirectoryIterator::getExtension(): string
public DirectoryIterator::getFilename(): string
public DirectoryIterator::isDot(): bool
public DirectoryIterator::key(): mixed
public DirectoryIterator::next(): void
public DirectoryIterator::rewind(): void
public DirectoryIterator::seek(int $offset): void
public DirectoryIterator::__toString(): string
public DirectoryIterator::valid(): bool
public SplFileInfo::getATime(): int|false
public SplFileInfo::getBasename(string $suffix = ""): string
public SplFileInfo::getCTime(): int|false
public SplFileInfo::getExtension(): string
public SplFileInfo::getFileInfo(?string $class = null): SplFileInfo
public SplFileInfo::getFilename(): string
public SplFileInfo::getGroup(): int|false
public SplFileInfo::getInode(): int|false
public SplFileInfo::getLinkTarget(): string|false
public SplFileInfo::getMTime(): int|false
public SplFileInfo::getOwner(): int|false
public SplFileInfo::getPath(): string
public SplFileInfo::getPathInfo(?string $class = null): ?SplFileInfo
public SplFileInfo::getPathname(): string
public SplFileInfo::getPerms(): int|false
public SplFileInfo::getRealPath(): string|false
public SplFileInfo::getSize(): int|false
public SplFileInfo::getType(): string|false
public SplFileInfo::isDir(): bool
public SplFileInfo::isExecutable(): bool
public SplFileInfo::isFile(): bool
public SplFileInfo::isLink(): bool
public SplFileInfo::isReadable(): bool
public SplFileInfo::isWritable(): bool
public SplFileInfo::openFile(string $mode = "r", bool $useIncludePath = false, ?resource $context = null): SplFileObject
public SplFileInfo::setFileClass(string $class = SplFileObject::class): void
public SplFileInfo::setInfoClass(string $class = SplFileInfo::class): void
public SplFileInfo::__toString(): string
}

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::OTHER_MODE_MASK

Masque utilisé pour FilesystemIterator::getFlags() et FilesystemIterator::setFlags().

FilesystemIterator::SKIP_DOTS

Ignore les fichiers points (. et ..).

FilesystemIterator::UNIX_PATHS

Les chemins utilisent le séparateur de dossier de type Unix, soit le slash, indépendamment du système de fonctionnement. Notez que le chemin qui est passé au constructeur n'est pas modifié.

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, PHP 8)

FilesystemIterator::__construct — Construit un objet FilesystemIterator

Description

public FilesystemIterator::__construct(string $directory, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS)

Construit un objet FilesystemIterator, configuré avec le chemin directory.

Liste de paramètres

directory

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().

Erreurs / Exceptions

Lance une exception UnexpectedValueException si le répertoire n'existe pas.

Lance une exception ValueError si directory est une chaîne vide.

Historique

Version | Description
8.2.0 | Antérieur à PHP 8.2.0, FilesystemIterator::SKIP_DOTS était toujours activé et ne pouvait pas être désactivé.
8.0.0 | Lance désormais une exception ValueError quand directory est une chaîne vide ; Auparavant, une RuntimeException était lancée.

Exemples

Exemple #1 Exemple avec FilesystemIterator::__construct()

<?php
$it = new FilesystemIterator(dirname(__FILE__), FilesystemIterator::CURRENT_AS_FILEINFO);
foreach ($it as $fileinfo) {
echo $fileinfo->getFilename() . "\n";
}
?>

Résultat de l'exemple ci-dessus en PHP 8.2 est similaire à :

.
..
apples.jpg
banana.jpg
example.php

Le résultat de l'exemple ci-dessus, avant PHP 8.2.0, est similaire à :

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, PHP 8)

FilesystemIterator::current — Lit le fichier courant

Description

public FilesystemIterator::current(): string|SplFileInfo|FilesystemIterator

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";
}
?>

Résultat de l'exemple ci-dessus en PHP 8.2 est similaire à :

/www/examples/.
/www/examples/..
/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, PHP 8)

FilesystemIterator::getFlags — Lit les options activées

Description

public FilesystemIterator::getFlags(): int

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, PHP 8)

FilesystemIterator::key — Lit le nom du fichier

Description

public FilesystemIterator::key(): string

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";
}
?>

Résultat de l'exemple ci-dessus en PHP 8.2 est 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()


Passe au fichier suivant

  • « FilesystemIterator::key
  • FilesystemIterator::rewind »
  • PHP Manual
  • FilesystemIterator
  • Passe au fichier suivant

FilesystemIterator::next

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

FilesystemIterator::next — Passe au fichier suivant

Description

public 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();
}
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

FilesystemIterator::rewind — Recommence à lire le dossier

Description

public 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";
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

FilesystemIterator::setFlags — Configure les options

Description

public FilesystemIterator::setFlags(int $flags): void

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";
}
?>

Résultat de l'exemple ci-dessus en PHP 8.2 est similaire à :

Clé comme nom de chemin :
/www/examples/.
/www/examples/..
/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, PHP 8)

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 class FilterIterator extends IteratorIterator {
/* Méthodes */
public __construct(Iterator $iterator)
public accept(): bool
public current(): mixed
public key(): mixed
public next(): void
public rewind(): void
public valid(): bool
/* Méthodes héritées */
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): bool
}

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::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, PHP 8)

FilterIterator::accept — Vérifie si l'élément courant de l'itérateur est acceptable

Description

public FilterIterator::accept(): bool

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, PHP 8)

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 est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

iterator

L'itérateur à filtrer.

Voir aussi

  • LimitIterator::__construct() - Construit un nouvel objet LimitIterator


Récupère la valeur de l'élément courant

  • « FilterIterator::__construct
  • FilterIterator::key »
  • PHP Manual
  • FilterIterator
  • Récupère la valeur de l'élément courant

FilterIterator::current

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

FilterIterator::current — Récupère la valeur de l'élément courant

Description

public FilterIterator::current(): mixed
Avertissement

Cette fonction est actuellement non documentée ; 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 la clé courante

  • « FilterIterator::current
  • FilterIterator::next »
  • PHP Manual
  • FilterIterator
  • Récupère la clé courante

FilterIterator::key

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

FilterIterator::key — Récupère la clé courante

Description

public FilterIterator::key(): mixed
Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

FilterIterator::next — Déplace l'itérateur à la position suivante

Description

public FilterIterator::next(): void
Avertissement

Cette fonction est actuellement non documentée ; 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::key() - Récupère la clé courante


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, PHP 8)

FilterIterator::rewind — Replace l'itérateur au début

Description

public FilterIterator::rewind(): void
Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

FilterIterator::valid — Vérifie si l'élément courant est valide

Description

public FilterIterator::valid(): bool

Vérifie si l'élément courant est valide.

Note:

L'implémentation standard de cette fonction retournera initialement false jusqu'à ce que l'itérateur interne soit avancé jusqu'au premier élément accepté.

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, PHP 8)

Introduction

Passe en revue un système de fichiers, de manière similaire à la fonction glob().

Synopsis de la classe

class GlobIterator extends FilesystemIterator implements Countable {
/* Constants héritées */
public const int FilesystemIterator::CURRENT_MODE_MASK;
public const int FilesystemIterator::CURRENT_AS_PATHNAME;
public const int FilesystemIterator::CURRENT_AS_FILEINFO;
public const int FilesystemIterator::CURRENT_AS_SELF;
public const int FilesystemIterator::KEY_MODE_MASK;
public const int FilesystemIterator::KEY_AS_PATHNAME;
public const int FilesystemIterator::FOLLOW_SYMLINKS;
public const int FilesystemIterator::KEY_AS_FILENAME;
public const int FilesystemIterator::NEW_CURRENT_AND_KEY;
public const int FilesystemIterator::OTHER_MODE_MASK;
public const int FilesystemIterator::SKIP_DOTS;
public const int FilesystemIterator::UNIX_PATHS;
/* Méthodes */
public __construct(string $pattern, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO)
public count(): int
/* Méthodes héritées */
public FilesystemIterator::current(): string|SplFileInfo|FilesystemIterator
public FilesystemIterator::getFlags(): int
public FilesystemIterator::key(): string
public FilesystemIterator::next(): void
public FilesystemIterator::rewind(): void
public FilesystemIterator::setFlags(int $flags): void
public DirectoryIterator::current(): mixed
public DirectoryIterator::getBasename(string $suffix = ""): string
public DirectoryIterator::getExtension(): string
public DirectoryIterator::getFilename(): string
public DirectoryIterator::isDot(): bool
public DirectoryIterator::key(): mixed
public DirectoryIterator::next(): void
public DirectoryIterator::rewind(): void
public DirectoryIterator::seek(int $offset): void
public DirectoryIterator::__toString(): string
public DirectoryIterator::valid(): bool
public SplFileInfo::getATime(): int|false
public SplFileInfo::getBasename(string $suffix = ""): string
public SplFileInfo::getCTime(): int|false
public SplFileInfo::getExtension(): string
public SplFileInfo::getFileInfo(?string $class = null): SplFileInfo
public SplFileInfo::getFilename(): string
public SplFileInfo::getGroup(): int|false
public SplFileInfo::getInode(): int|false
public SplFileInfo::getLinkTarget(): string|false
public SplFileInfo::getMTime(): int|false
public SplFileInfo::getOwner(): int|false
public SplFileInfo::getPath(): string
public SplFileInfo::getPathInfo(?string $class = null): ?SplFileInfo
public SplFileInfo::getPathname(): string
public SplFileInfo::getPerms(): int|false
public SplFileInfo::getRealPath(): string|false
public SplFileInfo::getSize(): int|false
public SplFileInfo::getType(): string|false
public SplFileInfo::isDir(): bool
public SplFileInfo::isExecutable(): bool
public SplFileInfo::isFile(): bool
public SplFileInfo::isLink(): bool
public SplFileInfo::isReadable(): bool
public SplFileInfo::isWritable(): bool
public SplFileInfo::openFile(string $mode = "r", bool $useIncludePath = false, ?resource $context = null): SplFileObject
public SplFileInfo::setFileClass(string $class = SplFileObject::class): void
public SplFileInfo::setInfoClass(string $class = SplFileInfo::class): void
public SplFileInfo::__toString(): string
}

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, PHP 8)

GlobIterator::__construct — Construit un itérateur de type glob

Description

public GlobIterator::__construct(string $pattern, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO)

Construit un itérateur de type glob.

Liste de paramètres

pattern

Un motif (pattern) glob().

flags

Les options, qui peuvent être un champ de bits de constantes de classe FilesystemIterator.

Erreurs / Exceptions

Lance une exception UnexpectedValueException si le répertoire n'existe pas.

Lance une exception ValueError si directory est une chaîne vide.

Historique

Version | Description
8.0.0 | Lance désormais une exception ValueError quand directory est une chaîne vide ; Auparavant, une RuntimeException était lancée.

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());
}
}
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

GlobIterator::count — Lit le nombre de dossiers et fichiers

Description

public GlobIterator::count(): int

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());
?>

Résultat de l'exemple ci-dessus est 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 dans un objet Countable
  • glob() - Recherche des chemins qui vérifient un masque


La classe InfiniteIterator

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

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

class InfiniteIterator extends IteratorIterator {
/* Méthodes */
public __construct(Iterator $iterator)
public next(): void
/* Méthodes héritées */
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): bool
}

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, PHP 8)

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.

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, PHP 8)

InfiniteIterator::next — Avance l'itérateur ou le replace au début

Description

public 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, PHP 8)

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

class IteratorIterator implements OuterIterator {
/* Méthodes */
public __construct(Traversable $iterator, ?string $class = null)
public current(): mixed
public getInnerIterator(): ?Iterator
public key(): mixed
public next(): void
public rewind(): void
public valid(): bool
}

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 l'élément actuel 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, PHP 8)

IteratorIterator::__construct — Crée un itérateur à partir d'un objet traversable

Description

public IteratorIterator::__construct(Traversable $iterator, ?string $class = null)

Crée un itérateur à partir d'un objet traversable.

Liste de paramètres

iterator

L'itérateur traversable.

class

Le nom de classe à utiliser pour l'itérateur intérieur. Ceci permet de spécifier une classe d'itérateur différente pour envelopper l'itérateur fourni. Par défaut, la class IteratorIterator elle-même sera utilisé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, PHP 8)

IteratorIterator::current — Lit la valeur courante

Description

public IteratorIterator::current(): mixed

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, PHP 8)

IteratorIterator::getInnerIterator — Retourne l'itérateur interne

Description

public IteratorIterator::getInnerIterator(): ?Iterator

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(), ou null s'il n'y a pas d'itérateur interne.

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, PHP 8)

IteratorIterator::key — Lit la clé de l'élément courant

Description

public IteratorIterator::key(): mixed

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, PHP 8)

IteratorIterator::next — Avance au prochain élément

Description

public 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 l'élément actuel 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, PHP 8)

IteratorIterator::rewind — Retourne au premier élément

Description

public 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 l'élément actuel est valide


Vérifie si l'élément actuel est valide

  • « IteratorIterator::rewind
  • LimitIterator »
  • PHP Manual
  • IteratorIterator
  • Vérifie si l'élément actuel est valide

IteratorIterator::valid

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

IteratorIterator::valid — Vérifie si l'élément actuel est valide

Description

public IteratorIterator::valid(): bool

Vérifie si l'élément actuel est valide.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true si l'élément actuel est valide, sinon false

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, PHP 8)

Introduction

La classe LimitIterator permet d'itérer sur une partie limitée d'entités depuis un Iterator.

Synopsis de la classe

class LimitIterator extends IteratorIterator {
/* Méthodes */
public __construct(Iterator $iterator, int $offset = 0, int $limit = -1)
public current(): mixed
public getPosition(): int
public key(): mixed
public next(): void
public rewind(): void
public seek(int $offset): int
public valid(): bool
/* Méthodes héritées */
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): bool
}

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::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, PHP 8)

LimitIterator::__construct — Construit un nouvel objet LimitIterator

Description

public LimitIterator::__construct(Iterator $iterator, int $offset = 0, int $limit = -1)

Construit un nouvel objet LimitIterator,depuis iterator avec un offset et une limite maximum limit

Liste de paramètres

iterator

L'Iterator à limiter.

offset

Position optionnelle de la limite.

limit

Nombre optionnelle de la limite.

Erreurs / Exceptions

Lance une ValueError si offset est inférieur à 0 ou si limit est inférieur à -1.

Historique

Version | Description
8.0.0 | Lance désormais une exception ValueError quand offset est inférieur à 0 ; Auparavant, une RuntimeException était lancée.
8.0.0 | Lance désormais une exception ValueError quand limit est inférieur à -1 ; Auparavant, une RuntimeException était lancée.

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::getPosition »
  • PHP Manual
  • LimitIterator
  • Récupère l'élément courant

LimitIterator::current

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

LimitIterator::current — Récupère l'élément courant

Description

public LimitIterator::current(): mixed

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


Retourne la position courante

  • « LimitIterator::current
  • LimitIterator::key »
  • PHP Manual
  • LimitIterator
  • Retourne la position courante

LimitIterator::getPosition

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

LimitIterator::getPosition — Retourne la position courante

Description

public LimitIterator::getPosition(): int

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, PHP 8)

LimitIterator::key — Récupère la clé courante

Description

public LimitIterator::key(): mixed

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, PHP 8)

LimitIterator::next — Déplace l'itérateur à la position suivante

Description

public 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, PHP 8)

LimitIterator::rewind — Replace l'itérateur au début

Description

public 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, PHP 8)

LimitIterator::seek — Place l'itérateur à une position donnée

Description

public LimitIterator::seek(int $offset): int

Déplace l'itérateur interne à la position offset.

Liste de paramètres

offset

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, PHP 8)

LimitIterator::valid — Vérifie si l'élément courant est valide

Description

public LimitIterator::valid(): bool

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, PHP 8)

Introduction

Un intérateur qui itère séquentiellement sur plusieurs itérateurs.

Synopsis de la classe

class MultipleIterator implements Iterator {
/* Constantes */
public const int MIT_NEED_ANY;
public const int MIT_NEED_ALL;
public const int MIT_KEYS_NUMERIC;
public const int MIT_KEYS_ASSOC;
/* Méthodes */
public __construct(int $flags = MultipleIterator::MIT_NEED_ALL | MultipleIterator::MIT_KEYS_NUMERIC)
public attachIterator(Iterator $iterator, string|int|null $info = null): void
public containsIterator(Iterator $iterator): bool
public countIterators(): int
public current(): array
public detachIterator(Iterator $iterator): void
public getFlags(): int
public key(): array
public next(): void
public rewind(): void
public setFlags(int $flags): void
public valid(): bool
}

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, PHP 8)

MultipleIterator::attachIterator — Attache un itérateur

Description

public MultipleIterator::attachIterator(Iterator $iterator, string|int|null $info = null): void

Attache un itérateur.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

iterator

Le nouvel itérateur à attacher.

info

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 info 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, PHP 8)

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.

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, PHP 8)

MultipleIterator::containsIterator — Vérifie si un itérateur est attaché

Description

public MultipleIterator::containsIterator(Iterator $iterator): bool

Vérifie si un itérateur est attaché.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

MultipleIterator::countIterators — Récupère le nombre d'instances d'itérateurs attachés

Description

public MultipleIterator::countIterators(): int

Récupère le nombre d'instances d'itérateurs attachés.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

MultipleIterator::current — Récupère les instantes des itérateurs attachés

Description

public MultipleIterator::current(): array

Récupère les instantes courantes des itérateurs attachés.

Avertissement

Cette fonction est actuellement non documentée ; 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é.

Erreurs / Exceptions

Une exception RuntimeException si l'itérateur est invalide (à partir de PHP 8.1.0), ou 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.

Historique

Version | Description
8.1.0 | Une RuntimeException est désormais lancé quand MultipleIterator::current() est appelé sur un itérateur invalide. Auparavant, false était retourné.

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, PHP 8)

MultipleIterator::detachIterator — Détache un itérateur

Description

public MultipleIterator::detachIterator(Iterator $iterator): void

Détache un itérateur.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

MultipleIterator::getFlags — Récupère les informations d'un drapeau

Description

public MultipleIterator::getFlags(): int

Récupère les informations d'un drapeau.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

MultipleIterator::key — Récupère les instances des itérateurs enregistrés

Description

public MultipleIterator::key(): array

Récupère les clés des instances des itérateurs enregistrés.

Avertissement

Cette fonction est actuellement non documentée ; 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.

Erreurs / Exceptions

Une exception RuntimeException si l'itérateur est invalide (à partir de PHP 8.1.0), ou le mode MIT_NEED_ALL est défini et au moins un itérateur invalide.

L'appel à cette méthode depuis foreach provoque une alerte de type "Illegal type returned".

Historique

Version | Description
8.1.0 | Une RuntimeException est désormais lancé quand MultipleIterator::key() est appelé sur un itérateur invalide. Auparavant, false était retourné.

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, PHP 8)

MultipleIterator::next — Déplace vers l'avant toutes les instances des itérateurs attachés

Description

public MultipleIterator::next(): void

Déplace vers l'avant toutes les instances des itérateurs attachés.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

MultipleIterator::rewind — Réinitialise toutes les instances d'itérateurs attachés

Description

public MultipleIterator::rewind(): void

Réinitialise toutes les instances d'itérateurs attachés.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

MultipleIterator::setFlags — Définit des drapeaux

Description

public MultipleIterator::setFlags(int $flags): void

Définit des drapeaux.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

MultipleIterator::valid — Vérifie la validité d'un sous-itérateur

Description

public MultipleIterator::valid(): bool

Vérifie la validité d'un sous-itérateur.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

Introduction

Cet itérateur ignore les opérations de remise à zéro. Ceci permet de traiter un itérateur dans plusieurs boucle foreach partielles.

Synopsis de la classe

class NoRewindIterator extends IteratorIterator {
/* Méthodes */
public __construct(Iterator $iterator)
public current(): mixed
public key(): mixed
public next(): void
public rewind(): void
public valid(): bool
/* Méthodes héritées */
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): bool
}

Sommaire

  • NoRewindIterator::__construct — Construit un nouvel objet NoRewindIterator
  • NoRewindIterator::current — Récupère la valeur courante
  • 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, PHP 8)

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.

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";
}
?>

Résultat de l'exemple ci-dessus est 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::key »
  • PHP Manual
  • NoRewindIterator
  • Récupère la valeur courante

NoRewindIterator::current

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

NoRewindIterator::current — Récupère la valeur courante

Description

public NoRewindIterator::current(): mixed

Récupère la valeur courante.

Avertissement

Cette fonction est actuellement non documentée ; 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 la clé courante

  • « NoRewindIterator::current
  • NoRewindIterator::next »
  • PHP Manual
  • NoRewindIterator
  • Récupère la clé courante

NoRewindIterator::key

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

NoRewindIterator::key — Récupère la clé courante

Description

public NoRewindIterator::key(): mixed

Récupère la clé courante.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

NoRewindIterator::next — Se déplace vers le prochain élément

Description

public NoRewindIterator::next(): void

Se déplace vers le prochain élément.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

NoRewindIterator::rewind — Réinitialise l'itérateur interne

Description

public 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, PHP 8)

NoRewindIterator::valid — Valide un itérateur

Description

public NoRewindIterator::valid(): bool

Vérifie si un itérateur est valide.

Avertissement

Cette fonction est actuellement non documentée ; 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()


La classe ParentIterator

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

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

class ParentIterator extends RecursiveFilterIterator {
/* Méthodes */
public __construct(RecursiveIterator $iterator)
public accept(): bool
public getChildren(): ParentIterator
public hasChildren(): bool
public next(): void
public rewind(): void
/* Méthodes héritées */
public RecursiveFilterIterator::getChildren(): ?RecursiveFilterIterator
public RecursiveFilterIterator::hasChildren(): bool
public FilterIterator::accept(): bool
public FilterIterator::current(): mixed
public FilterIterator::key(): mixed
public FilterIterator::next(): void
public FilterIterator::rewind(): void
public FilterIterator::valid(): bool
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): bool
}

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, PHP 8)

ParentIterator::accept — Détermine si l'élément courant a des fils

Description

public ParentIterator::accept(): bool

Détermine si l'élément courant a des fils.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

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 est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

iterator

L'itérateur sur lequel nous devons construire le nouvel objet.


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, PHP 8)

ParentIterator::getChildren — Retourne le fils de l'itérateur interne contenu dans ParentIterator

Description

public ParentIterator::getChildren(): ParentIterator

Retourne le fils de l'itérateur interne contenu dans ParentIterator.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

ParentIterator::hasChildren — Vérifie si l'élément courant de l'itérateur interne a un fils

Description

public ParentIterator::hasChildren(): bool

Vérifie si l'élément courant de l'itérateur interne a un fils.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

ParentIterator::next — Déplace l'itérateur à la position suivante

Description

public ParentIterator::next(): void

Déplace l'itérateur à la position suivante.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

ParentIterator::rewind — Replace l'itérateur au début

Description

public ParentIterator::rewind(): void

Replace l'itérateur au début.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

Introduction

Cet itérateur permet de supprimer et de modifier des 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

class RecursiveArrayIterator extends ArrayIterator implements RecursiveIterator {
/* Constants héritées */
public const int ArrayIterator::STD_PROP_LIST;
public const int ArrayIterator::ARRAY_AS_PROPS;
/* Constantes */
public const int CHILD_ARRAYS_ONLY;
/* Méthodes */
public getChildren(): ?RecursiveArrayIterator
public hasChildren(): bool
/* Méthodes héritées */
public ArrayIterator::__construct(array|object $array = [], int $flags = 0)
public ArrayIterator::append(mixed $value): void
public ArrayIterator::asort(int $flags = SORT_REGULAR): true
public ArrayIterator::count(): int
public ArrayIterator::current(): mixed
public ArrayIterator::getArrayCopy(): array
public ArrayIterator::getFlags(): int
public ArrayIterator::key(): string|int|null
public ArrayIterator::ksort(int $flags = SORT_REGULAR): true
public ArrayIterator::natcasesort(): true
public ArrayIterator::natsort(): true
public ArrayIterator::next(): void
public ArrayIterator::offsetExists(mixed $key): bool
public ArrayIterator::offsetGet(mixed $key): mixed
public ArrayIterator::offsetSet(mixed $key, mixed $value): void
public ArrayIterator::offsetUnset(mixed $key): void
public ArrayIterator::rewind(): void
public ArrayIterator::seek(int $offset): void
public ArrayIterator::serialize(): string
public ArrayIterator::setFlags(int $flags): void
public ArrayIterator::uasort(callable $callback): true
public ArrayIterator::uksort(callable $callback): true
public ArrayIterator::unserialize(string $data): void
public ArrayIterator::valid(): bool
}

Constantes pré-définies

Contantes RecursiveArrayIterator

RecursiveArrayIterator::CHILD_ARRAYS_ONLY

Traitez uniquement les tableaux (et non les objets) comme ayant des enfants pour l'itération récursive.

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, PHP 8)

RecursiveArrayIterator::getChildren — Retourne un itérateur pour l'entrée courante

Description

public RecursiveArrayIterator::getChildren(): ?RecursiveArrayIterator

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; ou null si une erreur survient.

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, PHP 8)

RecursiveArrayIterator::hasChildren — Vérifie si l'entrée courante est un tableau ou un objet

Description

public RecursiveArrayIterator::hasChildren(): bool

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, PHP 8)

Introduction

...

Synopsis de la classe

class RecursiveCachingIterator extends CachingIterator implements RecursiveIterator {
/* Constants héritées */
public const int CachingIterator::CALL_TOSTRING;
public const int CachingIterator::CATCH_GET_CHILD;
public const int CachingIterator::TOSTRING_USE_KEY;
public const int CachingIterator::TOSTRING_USE_CURRENT;
public const int CachingIterator::TOSTRING_USE_INNER;
public const int CachingIterator::FULL_CACHE;
/* Méthodes */
public __construct(Iterator $iterator, int $flags = RecursiveCachingIterator::CALL_TOSTRING)
public getChildren(): ?RecursiveCachingIterator
public hasChildren(): bool
/* Méthodes héritées */
public CachingIterator::count(): int
public CachingIterator::current(): mixed
public CachingIterator::getCache(): array
public CachingIterator::getFlags(): int
public CachingIterator::hasNext(): bool
public CachingIterator::key(): scalar
public CachingIterator::next(): void
public CachingIterator::offsetExists(string $key): bool
public CachingIterator::offsetGet(string $key): mixed
public CachingIterator::offsetSet(string $key, mixed $value): void
public CachingIterator::offsetUnset(string $key): void
public CachingIterator::rewind(): void
public CachingIterator::setFlags(int $flags): void
public CachingIterator::__toString(): string
public CachingIterator::valid(): bool
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): bool
}

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, PHP 8)

RecursiveCachingIterator::__construct — Constructeur

Description

public RecursiveCachingIterator::__construct(Iterator $iterator, int $flags = RecursiveCachingIterator::CALL_TOSTRING)

Construit un nouvel objet RecursiveCachingIterator, qui pourra ensuite être passé comme itérateur.

Avertissement

Cette fonction est actuellement non documentée ; 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.

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, PHP 8)

RecursiveCachingIterator::getChildren — Retourne le fils de l'itérateur interne comme un CachingRecursiveIterator

Description

public RecursiveCachingIterator::getChildren(): ?RecursiveCachingIterator
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

L'itérateur intérieur de l'enfant, sous la forme d'un RecursiveCachingIterator ou null s'il n'y a pas d'enfant.


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, PHP 8)

RecursiveCachingIterator::hasChildren — Vérifie si l'élément courant de l'itérateur interne a un fils

Description

public RecursiveCachingIterator::hasChildren(): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

Introduction

Synopsis de la classe

class RecursiveCallbackFilterIterator extends CallbackFilterIterator implements RecursiveIterator {
/* Méthodes */
public __construct(RecursiveIterator $iterator, callable $callback)
public getChildren(): RecursiveCallbackFilterIterator
public hasChildren(): bool
/* Méthodes héritées */
public CallbackFilterIterator::accept(): bool
public FilterIterator::accept(): bool
public FilterIterator::current(): mixed
public FilterIterator::key(): mixed
public FilterIterator::next(): void
public FilterIterator::rewind(): void
public FilterIterator::valid(): bool
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): bool
}

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, PHP 8)

RecursiveCallbackFilterIterator::__construct — Crée un objet RecursiveCallbackFilterIterator depuis une interface RecursiveIterator

Description

public RecursiveCallbackFilterIterator::__construct(RecursiveIterator $iterator, callable $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.

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, PHP 8)

RecursiveCallbackFilterIterator::getChildren — Retourne l'itérateur fils interne contenu dans un RecursiveCallbackFilterIterator

Description

public RecursiveCallbackFilterIterator::getChildren(): RecursiveCallbackFilterIterator

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, PHP 8)

RecursiveCallbackFilterIterator::hasChildren — Vérifie si l'élément courant de l'itérateur interne a un fils

Description

public RecursiveCallbackFilterIterator::hasChildren(): bool

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, PHP 8)

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

class RecursiveDirectoryIterator extends FilesystemIterator implements RecursiveIterator {
/* Constants héritées */
public const int FilesystemIterator::CURRENT_MODE_MASK;
public const int FilesystemIterator::CURRENT_AS_PATHNAME;
public const int FilesystemIterator::CURRENT_AS_FILEINFO;
public const int FilesystemIterator::CURRENT_AS_SELF;
public const int FilesystemIterator::KEY_MODE_MASK;
public const int FilesystemIterator::KEY_AS_PATHNAME;
public const int FilesystemIterator::FOLLOW_SYMLINKS;
public const int FilesystemIterator::KEY_AS_FILENAME;
public const int FilesystemIterator::NEW_CURRENT_AND_KEY;
public const int FilesystemIterator::OTHER_MODE_MASK;
public const int FilesystemIterator::SKIP_DOTS;
public const int FilesystemIterator::UNIX_PATHS;
/* Méthodes */
public __construct(string $directory, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO)
public getChildren(): RecursiveDirectoryIterator
public getSubPath(): string
public getSubPathname(): string
public hasChildren(bool $allowLinks = false): bool
public key(): string
public next(): void
public rewind(): void
/* Méthodes héritées */
public FilesystemIterator::current(): string|SplFileInfo|FilesystemIterator
public FilesystemIterator::getFlags(): int
public FilesystemIterator::key(): string
public FilesystemIterator::next(): void
public FilesystemIterator::rewind(): void
public FilesystemIterator::setFlags(int $flags): void
public DirectoryIterator::current(): mixed
public DirectoryIterator::getBasename(string $suffix = ""): string
public DirectoryIterator::getExtension(): string
public DirectoryIterator::getFilename(): string
public DirectoryIterator::isDot(): bool
public DirectoryIterator::key(): mixed
public DirectoryIterator::next(): void
public DirectoryIterator::rewind(): void
public DirectoryIterator::seek(int $offset): void
public DirectoryIterator::__toString(): string
public DirectoryIterator::valid(): bool
public SplFileInfo::getATime(): int|false
public SplFileInfo::getBasename(string $suffix = ""): string
public SplFileInfo::getCTime(): int|false
public SplFileInfo::getExtension(): string
public SplFileInfo::getFileInfo(?string $class = null): SplFileInfo
public SplFileInfo::getFilename(): string
public SplFileInfo::getGroup(): int|false
public SplFileInfo::getInode(): int|false
public SplFileInfo::getLinkTarget(): string|false
public SplFileInfo::getMTime(): int|false
public SplFileInfo::getOwner(): int|false
public SplFileInfo::getPath(): string
public SplFileInfo::getPathInfo(?string $class = null): ?SplFileInfo
public SplFileInfo::getPathname(): string
public SplFileInfo::getPerms(): int|false
public SplFileInfo::getRealPath(): string|false
public SplFileInfo::getSize(): int|false
public SplFileInfo::getType(): string|false
public SplFileInfo::isDir(): bool
public SplFileInfo::isExecutable(): bool
public SplFileInfo::isFile(): bool
public SplFileInfo::isLink(): bool
public SplFileInfo::isReadable(): bool
public SplFileInfo::isWritable(): bool
public SplFileInfo::openFile(string $mode = "r", bool $useIncludePath = false, ?resource $context = null): SplFileObject
public SplFileInfo::setFileClass(string $class = SplFileObject::class): void
public SplFileInfo::setInfoClass(string $class = SplFileInfo::class): void
public SplFileInfo::__toString(): string
}

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, PHP 8)

RecursiveDirectoryIterator::__construct — Construit un objet RecursiveDirectoryIterator

Description

public RecursiveDirectoryIterator::__construct(string $directory, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO)

Construit un objet RecursiveDirectoryIterator() concernant le dossier souhaité.

Liste de paramètres

directory

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()

Erreurs / Exceptions

Lance une exception UnexpectedValueException si le répertoire n'existe pas.

Lance une exception ValueError si directory est une chaîne vide.

Historique

Version | Description
8.0.0 | Lance désormais une exception ValueError quand directory est une chaîne vide ; Auparavant, une RuntimeException était lancée.

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();
}

?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

RecursiveDirectoryIterator::getChildren — Retourne un itérateur pour l'entrée courante si c'est un dossier

Description

public RecursiveDirectoryIterator::getChildren(): RecursiveDirectoryIterator
Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

RecursiveDirectoryIterator::getSubPath — Récupère le sous-chemin

Description

public RecursiveDirectoryIterator::getSubPath(): string

Retourne le sous-chemin relatif au répertoire donné dans le constructeur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le sous-chemin.

Exemples

Exemple #1 Exemple getSubPath()

$directory = '/tmp';

$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory));

foreach ($it as $file) {
echo 'SubPathName: ' . $it->getSubPathName() . "\n";
echo 'SubPath: ' . $it->getSubPath() . "\n\n";
}

Résultat de l'exemple ci-dessus est similaire à :

SubPathName: fruit/apple.xml
     SubPath:     fruit

     SubPathName: stuff.xml
     SubPath:

     SubPathName: veggies/carrot.xml
     SubPath:     veggies

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, PHP 8)

RecursiveDirectoryIterator::getSubPathname — Récupère le sous-chemin et le nom du fichier

Description

public RecursiveDirectoryIterator::getSubPathname(): string

Récupère le sous-chemin et le nom du fichier.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le sous-chemin (sous-dossier) et le nom du fichier.

Exemples

Exemple #1 Exemple getSubPathname()

$directory = '/tmp';

$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory));

foreach ($it as $file) {
echo 'SubPathName: ' . $it->getSubPathname() . "\n";
echo 'SubPath: ' . $it->getSubPath() . "\n\n";
}

Résultat de l'exemple ci-dessus est similaire à :

SubPathName: fruit/apple.xml
     SubPath:     fruit

     SubPathName: stuff.xml
     SubPath:

     SubPathName: veggies/carrot.xml
     SubPath:     veggies

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, PHP 8)

RecursiveDirectoryIterator::hasChildren — Vérifie si l'entrée courante est un dossier et n'est pas '.' ou '..'

Description

public RecursiveDirectoryIterator::hasChildren(bool $allowLinks = false): bool
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

allowLinks

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, PHP 8)

RecursiveDirectoryIterator::key — Retourne le chemin et le nom de l'entrée courante du dossier

Description

public RecursiveDirectoryIterator::key(): string
Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

RecursiveDirectoryIterator::next — Se déplace vers la prochaine entrée

Description

public RecursiveDirectoryIterator::next(): void
Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

RecursiveDirectoryIterator::rewind — Revient à la position initiale dans le dossier

Description

public RecursiveDirectoryIterator::rewind(): void
Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

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 class RecursiveFilterIterator extends FilterIterator implements RecursiveIterator {
/* Méthodes */
public __construct(RecursiveIterator $iterator)
public getChildren(): ?RecursiveFilterIterator
public hasChildren(): bool
/* Méthodes héritées */
public FilterIterator::accept(): bool
public FilterIterator::current(): mixed
public FilterIterator::key(): mixed
public FilterIterator::next(): void
public FilterIterator::rewind(): void
public FilterIterator::valid(): bool
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): bool
}

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, PHP 8)

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.

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";
}
?>

Résultat de l'exemple ci-dessus est 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";
}
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

RecursiveFilterIterator::getChildren — Retourne l'itérateur interne contenu dans un objet RecursiveFilterIterator

Description

public RecursiveFilterIterator::getChildren(): ?RecursiveFilterIterator

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, PHP 8)

RecursiveFilterIterator::hasChildren — Vérifie si un fils existe pour l'itérateur interne de l'élément courant

Description

public RecursiveFilterIterator::hasChildren(): bool

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, PHP 8)

Introduction

Peut être utilisé pour itérer sur des itérateurs, récursivement.

Synopsis de la classe

class RecursiveIteratorIterator implements OuterIterator {
/* Constantes */
public const int LEAVES_ONLY;
public const int SELF_FIRST;
public const int CHILD_FIRST;
public const int CATCH_GET_CHILD;
/* Méthodes */
public __construct(Traversable $iterator, int $mode = RecursiveIteratorIterator::LEAVES_ONLY, int $flags = 0)
public beginChildren(): void
public beginIteration(): void
public callGetChildren(): ?RecursiveIterator
public callHasChildren(): bool
public current(): mixed
public endChildren(): void
public endIteration(): void
public getDepth(): int
public getInnerIterator(): RecursiveIterator
public getMaxDepth(): int|false
public getSubIterator(?int $level = null): ?RecursiveIterator
public key(): mixed
public next(): void
public nextElement(): void
public rewind(): void
public setMaxDepth(int $maxDepth = -1): void
public valid(): bool
}

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, PHP 8)

RecursiveIteratorIterator::beginChildren — Commence un fils

Description

public 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 est actuellement non documentée ; 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, PHP 8)

RecursiveIteratorIterator::beginIteration — Commence une itération

Description

public RecursiveIteratorIterator::beginIteration(): void

Appelé lorsque l'itération commence (après le premier appel à la méthode RecursiveIteratorIterator::rewind()).

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

RecursiveIteratorIterator::callGetChildren — Récupère un fils

Description

public RecursiveIteratorIterator::callGetChildren(): ?RecursiveIterator

Récupère le fils de l'élément courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet RecursiveIterator() en cas de succès ou null si une erreur survient.


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, PHP 8)

RecursiveIteratorIterator::callHasChildren — Vérifie si un fils existe

Description

public RecursiveIteratorIterator::callHasChildren(): bool

Appelé pour chaque élément pour tester si un fils est disponible.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne si l'élément a un enfant.


Construit un objet RecursiveIteratorIterator

  • « RecursiveIteratorIterator::callHasChildren
  • RecursiveIteratorIterator::current »
  • PHP Manual
  • RecursiveIteratorIterator
  • Construit un objet RecursiveIteratorIterator

RecursiveIteratorIterator::__construct

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

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().

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, PHP 8)

RecursiveIteratorIterator::current — Accède à la valeur de l'élément courant

Description

public RecursiveIteratorIterator::current(): mixed
Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

RecursiveIteratorIterator::endChildren — Termine un fils

Description

public RecursiveIteratorIterator::endChildren(): void

Appelé lorsque l'on termine le bouclage d'un niveau.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

RecursiveIteratorIterator::endIteration — Termine un itérateur

Description

public 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 est actuellement non documentée ; 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, PHP 8)

RecursiveIteratorIterator::getDepth — Récupère la profondeur courante de la récursivité de l'itérateur

Description

public RecursiveIteratorIterator::getDepth(): int
Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

RecursiveIteratorIterator::getInnerIterator — Récupère l'itérateur interne

Description

public RecursiveIteratorIterator::getInnerIterator(): RecursiveIterator

Récupère le sous-itérateur courant.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

RecursiveIteratorIterator::getMaxDepth — Récupère la profondeur maximale

Description

public RecursiveIteratorIterator::getMaxDepth(): int|false

Récupère la profondeur maximale autorisée.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

RecursiveIteratorIterator::getSubIterator — L'itérateur secondaire actif courant

Description

public RecursiveIteratorIterator::getSubIterator(?int $level = null): ?RecursiveIterator
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

level

Valeurs de retour

L'itérateur secondaire actif courant en cas de succès ou null si une erreur survient.

Historique

Version | Description
8.0.0 | level est désormais nullable.


Accède à la clé courante

  • « RecursiveIteratorIterator::getSubIterator
  • RecursiveIteratorIterator::next »
  • PHP Manual
  • RecursiveIteratorIterator
  • Accède à la clé courante

RecursiveIteratorIterator::key

(PHP 5, PHP 7, PHP 8)

RecursiveIteratorIterator::key — Accède à la clé courante

Description

public RecursiveIteratorIterator::key(): mixed
Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

RecursiveIteratorIterator::next — Déplace l'itérateur à la position suivante

Description

public RecursiveIteratorIterator::next(): void
Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

RecursiveIteratorIterator::nextElement — Élément suivant

Description

public RecursiveIteratorIterator::nextElement(): void

Appelé lorsque l'élément suivant est disponible.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

RecursiveIteratorIterator::rewind — Replace l'itérateur au début

Description

public RecursiveIteratorIterator::rewind(): void
Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

RecursiveIteratorIterator::setMaxDepth — Définit la profondeur maximale

Description

public RecursiveIteratorIterator::setMaxDepth(int $maxDepth = -1): void

Définit la profondeur maximale autorisée.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

maxDepth

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 maxDepth 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, PHP 8)

RecursiveIteratorIterator::valid — Vérifie si la position courante est valide

Description

public RecursiveIteratorIterator::valid(): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

Introduction

Cet itérateur récursif peut filtrer un autre itérateur récursif à l'aide d'une expression rationnelle.

Synopsis de la classe

class RecursiveRegexIterator extends RegexIterator implements RecursiveIterator {
/* Constants héritées */
public const int RegexIterator::USE_KEY;
public const int RegexIterator::INVERT_MATCH;
public const int RegexIterator::MATCH;
public const int RegexIterator::GET_MATCH;
public const int RegexIterator::ALL_MATCHES;
public const int RegexIterator::SPLIT;
public const int RegexIterator::REPLACE;
/* Propriétés héritées */
public ?string $replacement = null;
/* Méthodes */
public __construct(
RecursiveIterator $iterator,
string $pattern,
int $mode = RecursiveRegexIterator::MATCH,
int $flags = 0,
int $pregFlags = 0
)
public getChildren(): RecursiveRegexIterator
public hasChildren(): bool
/* Méthodes héritées */
public RegexIterator::accept(): bool
public RegexIterator::getFlags(): int
public RegexIterator::getMode(): int
public RegexIterator::getPregFlags(): int
public RegexIterator::getRegex(): string
public RegexIterator::setFlags(int $flags): void
public RegexIterator::setMode(int $mode): void
public RegexIterator::setPregFlags(int $pregFlags): void
public FilterIterator::accept(): bool
public FilterIterator::current(): mixed
public FilterIterator::key(): mixed
public FilterIterator::next(): void
public FilterIterator::rewind(): void
public FilterIterator::valid(): bool
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): bool
}

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, PHP 8)

RecursiveRegexIterator::__construct — Crée un nouveau RecursiveRegexIterator

Description

public RecursiveRegexIterator::__construct(
RecursiveIterator $iterator,
string $pattern,
int $mode = RecursiveRegexIterator::MATCH,
int $flags = 0,
int $pregFlags = 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.

pattern

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.

pregFlags

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";
}

}
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

RecursiveRegexIterator::getChildren — Retourne un itérateur depuis l'entrée courante

Description

public RecursiveRegexIterator::getChildren(): RecursiveRegexIterator

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, PHP 8)

RecursiveRegexIterator::hasChildren — Vérifie si un itérateur peut être obtenu depuis l'entrée courante

Description

public RecursiveRegexIterator::hasChildren(): bool

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, PHP 8)

Introduction

Permet l'itération d'un RecursiveIterator pour générer un arbre graphique ASCII.

Synopsis de la classe

class RecursiveTreeIterator extends RecursiveIteratorIterator {
/* Constants héritées */
public const int RecursiveIteratorIterator::LEAVES_ONLY;
public const int RecursiveIteratorIterator::SELF_FIRST;
public const int RecursiveIteratorIterator::CHILD_FIRST;
public const int RecursiveIteratorIterator::CATCH_GET_CHILD;
/* Constantes */
public const int BYPASS_CURRENT;
public const int BYPASS_KEY;
public const int PREFIX_LEFT;
public const int PREFIX_MID_HAS_NEXT = 1;
public const int PREFIX_MID_LAST = 2;
public const int PREFIX_END_HAS_NEXT = 3;
public const int PREFIX_END_LAST = 4;
public const int PREFIX_RIGHT = 5;
/* Méthodes */
public __construct(
RecursiveIterator|IteratorAggregate $iterator,
int $flags = RecursiveTreeIterator::BYPASS_KEY,
int $cachingIteratorFlags = CachingIterator::CATCH_GET_CHILD,
int $mode = RecursiveTreeIterator::SELF_FIRST
)
public beginChildren(): void
public beginIteration(): RecursiveIterator
public callGetChildren(): RecursiveIterator
public callHasChildren(): bool
public current(): mixed
public endChildren(): void
public endIteration(): void
public getEntry(): string
public getPostfix(): string
public getPrefix(): string
public key(): mixed
public next(): void
public nextElement(): void
public rewind(): void
public setPostfix(string $postfix): void
public setPrefixPart(int $part, string $value): void
public valid(): bool
/* Méthodes héritées */
public RecursiveIteratorIterator::beginChildren(): void
public RecursiveIteratorIterator::beginIteration(): void
public RecursiveIteratorIterator::callGetChildren(): ?RecursiveIterator
public RecursiveIteratorIterator::callHasChildren(): bool
public RecursiveIteratorIterator::current(): mixed
public RecursiveIteratorIterator::endChildren(): void
public RecursiveIteratorIterator::endIteration(): void
public RecursiveIteratorIterator::getDepth(): int
public RecursiveIteratorIterator::getInnerIterator(): RecursiveIterator
public RecursiveIteratorIterator::getMaxDepth(): int|false
public RecursiveIteratorIterator::getSubIterator(?int $level = null): ?RecursiveIterator
public RecursiveIteratorIterator::key(): mixed
public RecursiveIteratorIterator::next(): void
public RecursiveIteratorIterator::nextElement(): void
public RecursiveIteratorIterator::rewind(): void
public RecursiveIteratorIterator::setMaxDepth(int $maxDepth = -1): void
public RecursiveIteratorIterator::valid(): bool
}

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::setPostfix — Définit le suffixe
  • 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, PHP 8)

RecursiveTreeIterator::beginChildren — Début d'un fils

Description

public RecursiveTreeIterator::beginChildren(): void

Appelé lorsque la récursion commence un niveau inférieur.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

RecursiveTreeIterator::beginIteration — Début d'une itération

Description

public RecursiveTreeIterator::beginIteration(): RecursiveIterator

Appelé lorsque l'itération commence (après le premier appel à la méthode RecursiveTreeIterator::rewind()).

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

RecursiveTreeIterator::callGetChildren — Récupère un fils

Description

public RecursiveTreeIterator::callGetChildren(): RecursiveIterator

Récupère un fils de l'élément courant.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

RecursiveTreeIterator::callHasChildren — Vérifie la présence d'un fils

Description

public RecursiveTreeIterator::callHasChildren(): bool

Appelé pour chaque élément pour tester s'il a un fils ou non.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

RecursiveTreeIterator::__construct — Construit un nouvel objet RecursiveTreeIterator

Description

public RecursiveTreeIterator::__construct(
RecursiveIterator|IteratorAggregate $iterator,
int $flags = RecursiveTreeIterator::BYPASS_KEY,
int $cachingIteratorFlags = CachingIterator::CATCH_GET_CHILD,
int $mode = RecursiveTreeIterator::SELF_FIRST
)

Construit un nouvel objet RecursiveTreeIterator depuis l'itérateur récursif fourni.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

iterator

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.


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, PHP 8)

RecursiveTreeIterator::current — Récupère l'élément courant

Description

public RecursiveTreeIterator::current(): mixed

Récupère l'élément courant, avec son préfixe et son suffixe.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

RecursiveTreeIterator::endChildren — Fin d'un fils

Description

public RecursiveTreeIterator::endChildren(): void

Appelé lorsque la récursion termine un niveau inférieur.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

RecursiveTreeIterator::endIteration — Fin de l'itération

Description

public 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 est actuellement non documentée ; 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, PHP 8)

RecursiveTreeIterator::getEntry — Récupère l'entrée courante

Description

public RecursiveTreeIterator::getEntry(): string

Récupère la partie de l'arbre construit pour l'élément courant.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

RecursiveTreeIterator::getPostfix — Récupère le suffixe

Description

public RecursiveTreeIterator::getPostfix(): string

Récupère la chaîne à placer après l'élément courant.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

RecursiveTreeIterator::getPrefix — Récupère le préfixe

Description

public RecursiveTreeIterator::getPrefix(): string

Récupère la chaîne à placer devant l'élément courant.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

RecursiveTreeIterator::key — Récupère la clé de l'élément courant

Description

public RecursiveTreeIterator::key(): mixed

Récupère la clé de l'élément courant.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

RecursiveTreeIterator::next — Se déplace sur l'élément suivant

Description

public RecursiveTreeIterator::next(): void

Se déplace sur l'élément suivant.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

RecursiveTreeIterator::nextElement — Prochain élément

Description

public RecursiveTreeIterator::nextElement(): void

Appelé lorsque le prochain élément devient disponible.

Avertissement

Cette fonction est actuellement non documentée ; 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::setPostfix »
  • PHP Manual
  • RecursiveTreeIterator
  • Réinitialise la position de l'itérateur

RecursiveTreeIterator::rewind

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

RecursiveTreeIterator::rewind — Réinitialise la position de l'itérateur

Description

public 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 est actuellement non documentée ; 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 le suffixe

  • « RecursiveTreeIterator::rewind
  • RecursiveTreeIterator::setPrefixPart »
  • PHP Manual
  • RecursiveTreeIterator
  • Définit le suffixe

RecursiveTreeIterator::setPostfix

(PHP 5 >= 5.5.3, PHP 7, PHP 8)

RecursiveTreeIterator::setPostfix — Définit le suffixe

Description

public RecursiveTreeIterator::setPostfix(string $postfix): void

Définit le suffixe tel qu'il est utilisé dans RecursiveTreeIterator::getPostfix().

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

postfix

Valeurs de retour

Aucune valeur n'est retournée.


Définit une partie du préfixe

  • « RecursiveTreeIterator::setPostfix
  • RecursiveTreeIterator::valid »
  • PHP Manual
  • RecursiveTreeIterator
  • Définit une partie du préfixe

RecursiveTreeIterator::setPrefixPart

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

RecursiveTreeIterator::setPrefixPart — Définit une partie du préfixe

Description

public RecursiveTreeIterator::setPrefixPart(int $part, string $value): void

Définit une partie du préfixe utilisé par l'arbre graphique.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

RecursiveTreeIterator::valid — Vérifie la validité

Description

public RecursiveTreeIterator::valid(): bool

Vérifie si la position courante est valide.

Avertissement

Cette fonction est actuellement non documentée ; 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

class RegexIterator extends FilterIterator {
/* Constantes */
public const int USE_KEY;
public const int INVERT_MATCH;
public const int MATCH;
public const int GET_MATCH;
public const int ALL_MATCHES;
public const int SPLIT;
public const int REPLACE;
/* Propriétés */
public ?string $replacement = null;
/* Méthodes */
public __construct(
Iterator $iterator,
string $pattern,
int $mode = RegexIterator::MATCH,
int $flags = 0,
int $pregFlags = 0
)
public accept(): bool
public getFlags(): int
public getMode(): int
public getPregFlags(): int
public getRegex(): string
public setFlags(int $flags): void
public setMode(int $mode): void
public setPregFlags(int $pregFlags): void
/* Méthodes héritées */
public FilterIterator::accept(): bool
public FilterIterator::current(): mixed
public FilterIterator::key(): mixed
public FilterIterator::next(): void
public FilterIterator::rewind(): void
public FilterIterator::valid(): bool
public IteratorIterator::current(): mixed
public IteratorIterator::getInnerIterator(): ?Iterator
public IteratorIterator::key(): mixed
public IteratorIterator::next(): void
public IteratorIterator::rewind(): void
public IteratorIterator::valid(): bool
}

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()).

Drapeaux RegexIterator

RegexIterator::USE_KEY

Option spéciale : travaille sur la clé au lieu de la valeur.

RegexIterator::INVERT_MATCH

Inverse la valeur de retour de RegexIterator::accept().

Propriétés

replacement

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, PHP 8)

RegexIterator::accept — Récupère le statut d'acceptation

Description

public RegexIterator::accept(): bool

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, PHP 8)

RegexIterator::__construct — Crée un nouvel objet RegexIterator

Description

public RegexIterator::__construct(
Iterator $iterator,
string $pattern,
int $mode = RegexIterator::MATCH,
int $flags = 0,
int $pregFlags = 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.

pattern

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.

pregFlags

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().

Erreurs / Exceptions

Lance une exception InvalidArgumentException si l'argument pattern est invalide.

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";
}
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

RegexIterator::getFlags — Récupère les drapeaux

Description

public RegexIterator::getFlags(): int

Retourne les drapeaux, voir la méthode RegexIterator::setFlags() pour une liste complète.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

RegexIterator::getMode — Retourne le mode de l'opération

Description

public RegexIterator::getMode(): int

Retourne le mode de l'opération, voir la méthode RegexIterator::setMode() pour une liste complète.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

RegexIterator::getPregFlags — Retourne les drapeaux de l'expression rationnelle

Description

public RegexIterator::getPregFlags(): int

Retourne les drapeaux de l'expression rationnelle, voir la méthode RegexIterator::__construct() pour une liste complète.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

RegexIterator::getRegex — Retourne l'expression rationnelle courante

Description

public RegexIterator::getRegex(): string

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

RegexIterator::setFlags — Définit les drapeaux

Description

public RegexIterator::setFlags(int $flags): void

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, PHP 8)

RegexIterator::setMode — Définit le mode de l'opération

Description

public RegexIterator::setMode(int $mode): void

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;
}
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

RegexIterator::setPregFlags — Définit les drapeaux de l'expression rationnelle

Description

public RegexIterator::setPregFlags(int $pregFlags): void

Définit les drapeaux de l'expression rationnelle.

Liste de paramètres

pregFlags

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);
}
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

Introduction

Les classes qui implémentent l'interface Countable peuvent être utilisées avec la fonction count().

Sommaire de l'Interface

interface Countable {
/* Méthodes */
public count(): int
}

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, PHP 8)

Countable::count — Compte le nombre d'éléments d'un objet

Description

public Countable::count(): int

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 int.

Note:

La valeur retournée est forcée en int.

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";
}
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

Introduction

Les classes implémentant la classe OuterIterator peuvent être utilisées pour itérer sur des itérateurs.

Sommaire de l'Interface

interface OuterIterator extends Iterator {
/* Méthodes */
public getInnerIterator(): ?Iterator
/* Méthodes héritées */
public Iterator::current(): mixed
public Iterator::key(): mixed
public Iterator::next(): void
public Iterator::rewind(): void
public Iterator::valid(): bool
}

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, PHP 8)

OuterIterator::getInnerIterator — Retourne l'itérateur interne pour l'entrée courante

Description

public OuterIterator::getInnerIterator(): ?Iterator

Retourne l'itérateur interne pour l'entrée courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'itérateur interne pour l'entrée courante si elle existe, null sinon.


L'interface RecursiveIterator

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

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

interface RecursiveIterator extends Iterator {
/* Méthodes */
public getChildren(): ?RecursiveIterator
public hasChildren(): bool
/* Méthodes héritées */
public Iterator::current(): mixed
public Iterator::key(): mixed
public Iterator::next(): void
public Iterator::rewind(): void
public Iterator::valid(): bool
}

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, PHP 8)

RecursiveIterator::getChildren — Récupère l'itérateur de l'entrée courante

Description

public RecursiveIterator::getChildren(): ?RecursiveIterator

Retourne l'itérateur pour l'entrée courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un itérateur pour l'entrée courante si elle existe, null sinon.

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, PHP 8)

RecursiveIterator::hasChildren — Vérifie si un itérateur peut être créé depuis l'entrée courante

Description

public RecursiveIterator::hasChildren(): bool

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, PHP 8)

Introduction

L'itérateur SeekableIterator.

Sommaire de l'Interface

interface SeekableIterator extends Iterator {
/* Méthodes */
public seek(int $offset): void
/* Méthodes héritées */
public Iterator::current(): mixed
public Iterator::key(): mixed
public Iterator::next(): void
public Iterator::rewind(): void
public Iterator::valid(): bool
}

Exemples

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();
}
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SeekableIterator::seek — Recherche une position

Description

public SeekableIterator::seek(int $offset): void

Recherche la position donnée dans l'itérateur.

Liste de paramètres

offset

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 offset 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();
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

Introduction

Exception émise si une fonction de rappel n'existe pas ou si certains de ses arguments sont manquants.

Synopsis de la classe

class BadFunctionCallException extends LogicException {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


La classe BadMethodCallException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introduction

Exception émise si une méthode de rappel n'existe pas ou si certains de ses arguments sont manquants.

Synopsis de la classe

class BadMethodCallException extends BadFunctionCallException {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


La classe DomainException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introduction

Exception lancée si une valeur n'adhère pas à un domaine de données défini et valide.

Synopsis de la classe

class DomainException extends LogicException {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


La classe InvalidArgumentException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introduction

Exception émise si un argument ne correspond pas au type attendu.

Synopsis de la classe

class InvalidArgumentException extends LogicException {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


La classe LengthException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introduction

Exception émise si une taille est invalide.

Synopsis de la classe

class LengthException extends LogicException {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


La classe LogicException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

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

class LogicException extends Exception {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


La classe OutOfBoundsException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

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

class OutOfBoundsException extends RuntimeException {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


La classe OutOfRangeException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

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

class OutOfRangeException extends LogicException {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


La classe OverflowException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introduction

Exception émise lors de l'ajout d'un élément à un conteneur plein.

Synopsis de la classe

class OverflowException extends RuntimeException {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


La classe RangeException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

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

class RangeException extends RuntimeException {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


La classe RuntimeException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introduction

Exception émise quand une erreur est rencontrée durant l'exécution.

Synopsis de la classe

class RuntimeException extends Exception {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


La classe UnderflowException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

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

class UnderflowException extends RuntimeException {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


La classe UnexpectedValueException

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

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

class UnexpectedValueException extends RuntimeException {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private 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 les classes parentes d'une classe
  • class_uses — Retourne les traits utilisés 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 hachage pour un objet donné
  • spl_object_id — Retourne le gestionnaire d'objet entier 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, PHP 7, PHP 8)

class_implements — Retourne les interfaces implémentées par une classe ou une interface donnée

Description

class_implements(object|string $object_or_class, bool $autoload = true): array|false

Cette fonction retourne un tableau avec les noms des interfaces que la classe object_or_class ainsi que ses parents implémentent.

Liste de paramètres

object_or_class

Un objet (instance) ou une chaîne de caractères (nom de la classe ou de l'interface).

autoload

Défini s'il faut autocharger si pas déjà autochargé.

Valeurs de retour

Un tableau en cas de succès, ou false quand la classe donnée n'existe pas.

Exemples

Exemple #1 Exemple avec class_implements()

<?php

interface foo { }
class bar implements foo {}

print_r(class_implements(new bar));

// vous pouvez aussi spécifier le paramètre comme une chaîne de caractères
print_r(class_implements('bar'));

spl_autoload_register();

// Utilisation de l'autoloading pour charger la classe 'not_loaded'
print_r(class_implements('not_loaded', true));

?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [foo] => foo
)
Array
(
    [foo] => foo
)
Array
(
    [interface_de_non_chargée] => interface_de_non_chargée
)

Notes

Note: Il est préférable d'utiliser instanceof ou la fonction is_a() pour vérifier qu'un objet implémente une interface.

Voir aussi

  • class_parents() - Retourne les classes parentes d'une classe
  • get_declared_interfaces() - Retourne un tableau avec toutes les interfaces déclarées
  • is_a() - Vérifie si l'objet est d'un certain type ou sous-type.
  • instanceof


Retourne les classes parentes d'une classe

  • « class_implements
  • class_uses »
  • PHP Manual
  • Fonctions SPL
  • Retourne les classes parentes d'une classe

class_parents

(PHP 5, PHP 7, PHP 8)

class_parents — Retourne les classes parentes d'une classe

Description

class_parents(object|string $object_or_class, bool $autoload = true): array|false

class_parents() retourne un tableau avec le nom des classes parentes de la classe object_or_class.

Liste de paramètres

object_or_class

Un objet (instance) ou une chaîne de caractères (nom de la classe).

autoload

Défini s'il faut autocharger si pas déjà autochargé.

Valeurs de retour

Un tableau en cas de succès, ou false quand la classe donnée n'existe pas.

Exemples

Exemple #1 Exemple avec class_parents()

<?php

class foo { }
class bar extends foo {}

print_r(class_parents(new bar));

// vous pouvez aussi spécifier le paramètre comme une chaîne de caractères
print_r(class_parents('bar'));

spl_autoload_register();

// Utilisation de l'autoloading pour charger la classe 'not_loaded'
print_r(class_parents('not_loaded', true));

?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
   [foo] => foo
)
Array
(
    [foo] => foo
)
Array
(
   [parent_de_not_loaded] => parent_de_not_loaded
)

Notes

Note: Il est préférable d'utiliser instanceof ou la fonction is_a() pour vérifier qu'un objet implémente une interface.

Voir aussi

  • class_implements() - Retourne les interfaces implémentées par une classe ou une interface donnée
  • is_a() - Vérifie si l'objet est d'un certain type ou sous-type.
  • instanceof


Retourne les traits utilisés par une classe donnée.

  • « class_parents
  • iterator_apply »
  • PHP Manual
  • Fonctions SPL
  • Retourne les traits utilisés par une classe donnée.

class_uses

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

class_uses — Retourne les traits utilisés par une classe donnée.

Description

class_uses(object|string $object_or_class, bool $autoload = true): array|false

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

object_or_class

Un objet ou un nom de classe sous forme de chaine.

autoload

Défini s'il faut autocharger si pas déjà autochargé.

Valeurs de retour

Un tableau en cas de succès, ou false quand la classe donnée n'existe pas.

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'));

spl_autoload_register();

// Utilisation de l'autoloading pour charger la classe 'not_loaded'
print_r(class_uses('not_loaded', true));

?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [foo] => foo
)
Array
(
    [foo] => foo
)
Array
(
    [trait_of_not_loaded] => trait_of_not_loaded
)

Voir aussi

  • class_parents() - Retourne les classes parentes 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, PHP 8)

iterator_apply — Appelle une fonction pour tous les éléments d'un itérateur

Description

iterator_apply(Traversable $iterator, callable $callback, ?array $args = null): int

Appelle une fonction pour tous les éléments d'un itérateur.

Liste de paramètres

iterator

L'object iterator à itérer.

callback

La fonction de rappel à appeler à chaque élément. Cette fonction ne reçoit que les arguments args donnés, elle est donc nullaire par défault. Si count($args) === 3, par exemple, la fonction est ternaire.

Note: La fonction doit retourner true afin de continuer d'itérer à travers l'itérateur nommé par le paramètre iterator.

args

Un tableau array d'arguments; chaque élément de args est passé à la fonction de rappel callback comme argument séparé.

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, PHP 8)

iterator_count — Compte de nombre d'éléments dans un itérateur

Description

iterator_count(Traversable|array $iterator): int

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.

Historique

Version | Description
8.2.0 | Le type de iterator a été élargi de Traversable à Traversable|array.

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, PHP 8)

iterator_to_array — Copie un itérateur dans un tableau

Description

iterator_to_array(Traversable|array $iterator, bool $preserve_keys = true): array

Copie les éléments d'un itérateur dans un tableau.

Liste de paramètres

iterator

L'itérateur à copier.

preserve_keys

S'il faut utiliser les éléments de l'itérateur comme clé.

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 float seront tronquées en leurs parties int, 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 bool seront converties en entiers.

Note:

Si ce paramètre n'est pas défini ou défini sur true, les clés dupliquées seront écrasées. La dernière valeur avec une clé donnée sera dans le array retourné. Définir ce paramètre à false pour obtenir toutes les valeurs en tout cas.

Valeurs de retour

Un tableau contenant les éléments de l'itérateur iterator.

Historique

Version | Description
8.2.0 | Le type de iterator a été élargi de Traversable à Traversable|array.

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.0, PHP 7, PHP 8)

spl_autoload_call — Essai toutes les fonctions __autoload() enregistrées pour charger la classe demandée

Description

spl_autoload_call(string $class): void

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

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.0, PHP 7, PHP 8)

spl_autoload_extensions — Enregistre et retourne l'extension du fichier par défaut pour spl_autoload

Description

spl_autoload_extensions(?string $file_extensions = null): string

Cette fonction peut modifier et vérifier les extensions de fichiers pour __autoload() la fonction interne de secours que spl_autoload() utilisera.

Note: Il ne devrait pas y avoir d'espaces entre les extensions de fichiers définies.

Liste de paramètres

file_extensions

Si null, 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 une chaîne de caractères, dont chaque extension sera séparée par une virgule.

Valeurs de retour

Une liste d'extensions de fichiers, délimitées par des virgules, pour spl_autoload().

Historique

Version | Description
8.0.0 | file_extensions est désormais nullable.

Exemples

Exemple #1 Exemple avec spl_autoload_extensions()

<?php
spl_autoload_extensions(".php,.inc");
?>


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.0, PHP 7, PHP 8)

spl_autoload_functions — Retourne toutes les fonctions __autoload() enregistrées

Description

spl_autoload_functions(): array

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 aucune fonction n'est enregistrée, ou si la pile d'autoload n'est pas active, alors la valeur de retour sera un tableau vide.

Historique

Version | Description
8.0.0 | La valeur de retour a été mise à jour pour toujours être un tableau; auparavant, cette fonction retournait false si la pile d'autoload n'était pas active.


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.0, PHP 7, PHP 8)

spl_autoload_register — Enregistre une fonction en tant qu'implémentation de __autoload()

Description

spl_autoload_register(?callable $callback = null, bool $throw = true, bool $prepend = false): bool

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

callback

La fonction d'autoload à enregistrer. Si null, alors, l'implémentation par défaut de la fonction spl_autoload() sera enregistrée.

callback(string $class): void

La class ne contiendra pas le backslash initial d'un identifiant entièrement qualifié.

throw

Ce paramètre spécifie si spl_autoload_register() doit lancer des exceptions lorsque le callback n'a pu être enregistré.

Avertissement

Ce paramètre est ignoré à partir de PHP 8.0.0, et une notice sera émise s'il est défini à false. spl_autoload_register() lancera toujours une TypeError avec des arguments non valides.

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
8.0.0 | callback est désormais nullable.

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
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($class) {
print '[['. $class .']]';
}
}

spl_autoload_register(__NAMESPACE__ .'\Foo::test');

new InexistentClass;

?>

Résultat de l'exemple ci-dessus est similaire à :

[[Foobar\InexistentClass]]
Fatal error: Class 'Foobar\InexistentClass' not found in ...

Exemple #3 L'identifiant sera fourni sans le backslash initial.

<?php

spl_autoload_register(static function ($class) {
var_dump($class);
});

class_exists('RelativeName');
class_exists('RelativeName\\WithNamespace');
class_exists('\\AbsoluteName');
class_exists('\\AbsoluteName\\WithNamespace');

?>

L'exemple ci-dessus va afficher :

string(12) "RelativeName"
string(26) "RelativeName\WithNamespace"
string(12) "AbsoluteName"
string(26) "AbsoluteName\WithNamespace"

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.0, PHP 7, PHP 8)

spl_autoload_unregister — Efface une fonction donnée de l'implémentation __autoload()

Description

spl_autoload_unregister(callable $callback): bool

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

callback

La fonction autoload à effacer.

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.0, PHP 7, PHP 8)

spl_autoload — Implémentation par défaut d'__autoload()

Description

spl_autoload(string $class, ?string $file_extensions = null): void

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 spl_autoload() sera utilisée pour tous les futures appels à __autoload().

Liste de paramètres

class

Le nom de la classe (et de l'espace de noms) à instancier.

file_extensions

Par défaut, la fonction vérifie tous les include_path 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 LogicException lorsque la classe n'est pas trouvée, et qu'il n'y a aucun autre autochargeur d'enregistré.

Historique

Version | Description
8.0.0 | file_extensions est désormais nullable.


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, PHP 8)

spl_classes — Retourne les classes SPL disponibles

Description

spl_classes(): array

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());

?>

Résultat de l'exemple ci-dessus est 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 hachage pour un objet donné

  • « spl_classes
  • spl_object_id »
  • PHP Manual
  • Fonctions SPL
  • Retourne l'identifiant de hachage pour un objet donné

spl_object_hash

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

spl_object_hash — Retourne l'identifiant de hachage pour un objet donné

Description

spl_object_hash(object $object): string

Cette fonction retourne un identifiant unique pour l'objet. Cet identifiant peut être utilisé comme clé de hachage 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. Ce comportement est similaire à celui de la spl_object_id().

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 hachage pourra être réutilisé pour d'autres objets.

Note:

Les hachage d'objet devraient être comparé pour leur identité avec === et !==, car le hachage retourné pourrait être une chaîne numérique. Par exemple: 0000000000000e600000000000000000.

Voir aussi

  • spl_object_id() - Retourne le gestionnaire d'objet entier pour un objet donné


Retourne le gestionnaire d'objet entier pour un objet donné

  • « spl_object_hash
  • Gestion des fichiers »
  • PHP Manual
  • Fonctions SPL
  • Retourne le gestionnaire d'objet entier pour un objet donné

spl_object_id

(PHP 7 >= 7.2.0, PHP 8)

spl_object_id — Retourne le gestionnaire d'objet entier pour un objet donné

Description

spl_object_id(object $object): int

Cette fonction retourne un identifiant unique pour l'objet. L'id de l'objet est unique pour la durée de vie de l'objet. Une fois que l'objet est détruit, son id peut être réutilisé pour d'autres objets. Ce comportement est similaire à spl_object_hash().

Liste de paramètres

object

N'importe quel objet.

Valeurs de retour

Un identifiant entier qui est unique pour chaque objet actuellement existant et toujours le même pour chaque objet.

Exemples

Exemple #1 Un exemple de spl_object_id()

<?php
$id = spl_object_id($object);
$storage[$id] = $object;
?>

Notes

Note:

Quand un objet est détruit, son id peut ê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, PHP 8)

Introduction

La classe SplFileInfo fournit une interface de haut niveau avec les informations de fichiers.

Synopsis de la classe

class SplFileInfo implements Stringable {
/* Méthodes */
public __construct(string $filename)
public getATime(): int|false
public getBasename(string $suffix = ""): string
public getCTime(): int|false
public getExtension(): string
public getFileInfo(?string $class = null): SplFileInfo
public getFilename(): string
public getGroup(): int|false
public getInode(): int|false
public getLinkTarget(): string|false
public getMTime(): int|false
public getOwner(): int|false
public getPath(): string
public getPathInfo(?string $class = null): ?SplFileInfo
public getPathname(): string
public getPerms(): int|false
public getRealPath(): string|false
public getSize(): int|false
public getType(): string|false
public isDir(): bool
public isExecutable(): bool
public isFile(): bool
public isLink(): bool
public isReadable(): bool
public isWritable(): bool
public openFile(string $mode = "r", bool $useIncludePath = false, ?resource $context = null): SplFileObject
public setFileClass(string $class = SplFileObject::class): void
public setInfoClass(string $class = SplFileInfo::class): void
public __toString(): string
}

Historique

Version | Description
8.0.0 | La classe SplFileInfo implémente désormais Stringable.

Sommaire

  • SplFileInfo::__construct — Construit un nouvel objet SplFileInfo
  • SplFileInfo::getATime — Lit la date de dernier accès au fichier
  • SplFileInfo::getBasename — Lit le nom de base 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 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, PHP 8)

SplFileInfo::__construct — Construit un nouvel objet SplFileInfo

Description

public SplFileInfo::__construct(string $filename)

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

filename

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, PHP 8)

SplFileInfo::getATime — Lit la date de dernier accès au fichier

Description

public SplFileInfo::getATime(): int|false

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 en cas de succès ou false si une erreur survient.

Erreurs / Exceptions

Émet une exception RuntimeException en cas d'erreur.

Exemples

Exemple #1 Exemple avec SplFileInfo::getATime()

<?php
$info = new SplFileInfo('example.jpg');
echo 'Dernier accès à ' . date('g:i a', $info->getATime());
?>

Résultat de l'exemple ci-dessus est similaire à :

Dernier accès à 1:49 pm

Voir aussi

  • fileatime() - Renvoie la date à laquelle le fichier a été accédé pour la dernière fois
  • SplFileInfo::getCTime() - Lit la date de modification du fichier
  • SplFileInfo::getMTime() - Lit la date de dernière modification


Lit le nom de base du fichier

  • « SplFileInfo::getATime
  • SplFileInfo::getCTime »
  • PHP Manual
  • SplFileInfo
  • Lit le nom de base du fichier

SplFileInfo::getBasename

(PHP 5 >= 5.2.2, PHP 7, PHP 8)

SplFileInfo::getBasename — Lit le nom de base du fichier

Description

public SplFileInfo::getBasename(string $suffix = ""): string

Cette méthode retourne le nom du fichier, dossier ou lien sans le chemin.

Attention

SplFileInfo::getBasename() a conscience de la locale, donc pour voir la bonne basename avec un chemin qui contient des caractères multioctets, la locale correspondante doit être définie en utilisant la fonction setlocale().

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'));
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SplFileInfo::getCTime — Lit la date de modification du fichier

Description

public SplFileInfo::getCTime(): int|false

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 en cas de succès ou false si une erreur survient.

Erreurs / Exceptions

Émet une exception RuntimeException en cas d'erreur.

Exemples

Exemple #1 Exemple avec SplFileInfo::getCTime()

<?php
$info = new SplFileInfo('example.jpg');
echo 'Dernière modification : ' . date('g:i a', $info->getCTime());
?>

Résultat de l'exemple ci-dessus est similaire à :

Dernière modification : 1:49 pm

Voir aussi

  • filectime() - Renvoie la date de dernière modification de l'inode d'un fichier
  • SplFileInfo::getATime() - Lit la date de dernier accès au fichier
  • SplFileInfo::getMTime() - Lit la date de dernière modification


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, PHP 8)

SplFileInfo::getExtension — Récupère l'extension d'un fichier

Description

public SplFileInfo::getExtension(): string

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:

Une autre façon d'obtenir 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 de base 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, PHP 8)

SplFileInfo::getFileInfo — Obtient un objet SplFileInfo pour un fichier

Description

public SplFileInfo::getFileInfo(?string $class = null): SplFileInfo

Cette méthode obtient un objet SplFileInfo pour un fichier.

Liste de paramètres

class

Le nom de la classe SplFileInfo dérivée à utiliser.

Valeurs de retour

Un objet SplFileInfo créé pour le fichier.

Historique

Version | Description
8.0.0 | class est désormais nullable.

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, PHP 8)

SplFileInfo::getFilename — Lit le nom du fichier

Description

public SplFileInfo::getFilename(): string

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

string(7) "foo.txt"
string(7) "foo.txt"
string(0) ""
string(11) "svn.php"

Voir aussi

  • SplFileInfo::getBasename() - Lit le nom de base 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, PHP 8)

SplFileInfo::getGroup — Lit le groupe d'appartenance du fichier

Description

public SplFileInfo::getGroup(): int|false

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 en cas de succès ou false si une erreur survient.

Erreurs / Exceptions

Émet une exception RuntimeException en cas d'erreur.

Exemples

Exemple #1 Exemple avec SplFileInfo::getGroup()

<?php
$info = new SplFileInfo('example.jpg');
echo info->getFilename() . ' appartient au groupe ' . $info->getGroup() . "\n";
print_r(posix_getgrgid($info->getGroup()));
?>

Résultat de l'exemple ci-dessus est similaire à :

example.jpg appartient au groupe 42
Array
(
    [name] => toons
    [passwd] => x
    [members] => Array
        (
            [0] => tom
            [1] => jerry
        )
    [gid] => 42
)

Voir aussi

  • filegroup() - Lire le nom du groupe
  • 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, PHP 8)

SplFileInfo::getInode — Lit le inode du fichier

Description

public SplFileInfo::getInode(): int|false

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 en cas de succès ou false si une erreur survient.

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, PHP 8)

SplFileInfo::getLinkTarget — Lit la cible d'un lien symbolique

Description

public SplFileInfo::getLinkTarget(): string|false

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 en cas de succès ou false si une erreur survient.

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());
}
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SplFileInfo::getMTime — Lit la date de dernière modification

Description

public SplFileInfo::getMTime(): int|false

Lit la date de dernière modification du contenu du fichier. La date retournée est au format timestamp Unix en cas de succès ou false si une erreur survient.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'heure de la dernière modification du fichier, sous la forme d'un timestamp Unix en cas de succès, ou false en cas d'échec.

Exemples

Exemple #1 Exemple avec SplFileInfo::getMTime()

<?php
$info = new SplFileInfo('example.jpg');
echo 'Dernière modification à ' . date('g:i a', $info->getMTime());
?>

Résultat de l'exemple ci-dessus est similaire à :

Dernière modification à 1:49 pm

Voir aussi

  • filemtime() - Lit la date de dernière modification du fichier
  • SplFileInfo::getATime() - Lit la date de dernier accès au fichier
  • SplFileInfo::getCTime() - Lit la date de 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, PHP 8)

SplFileInfo::getOwner — Lit le propriétaire du fichier

Description

public SplFileInfo::getOwner(): int|false

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 en cas de succès ou false si une erreur survient.

Erreurs / Exceptions

Émet une exception RuntimeException en cas d'erreur.

Exemples

Exemple #1 Exemple avec SplFileInfo::getOwner()

<?php
$info = new SplFileInfo('example.jpg');
echo info->getFilename() . ' appartient à l'utilisateur id ' . $info->getOwner() . "\n";
print_r(posix_getpwuid($info->getOwner()));
?>

Résultat de l'exemple ci-dessus est similaire à :

example.jpg appartient à l'utilisateur id 501
Array
(
    [name] => tom
    [passwd] => x
    [uid] => 501
    [gid] => 42
    [gecos] => Tom Cat
    [dir] => /home/tom
    [shell] => /bin/bash
)

Voir aussi

  • posix_getpwuid() - Retourne des informations sur un utilisateur
  • SplFileInfo::getGroup() - Lit le groupe d'appartenance du fichier


Le chemin sans le nom de fichier

  • « SplFileInfo::getOwner
  • SplFileInfo::getPathInfo »
  • PHP Manual
  • SplFileInfo
  • Le chemin sans le nom de fichier

SplFileInfo::getPath

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileInfo::getPath — Le chemin sans le nom de fichier

Description

public SplFileInfo::getPath(): string

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());?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SplFileInfo::getPathInfo — Crée un objet SplFileInfo pour un chemin

Description

public SplFileInfo::getPathInfo(?string $class = null): ?SplFileInfo

Crée un objet SplFileInfo pour le dossier qui contient le fichier courant.

Liste de paramètres

class

Le nom d'une classe qui dérive de SplFileInfo, ou elle même si null.

Valeurs de retour

Retourne un objet SplFileInfo pour le dossier qui contient le fichier courant en cas de succès, ou null en cas d'échec.

Historique

Version | Description
8.0.0 | class est désormais nullable.

Exemples

Exemple #1 Exemple avec SplFileInfo::getPathInfo()

<?php
$info = new SplFileInfo('/usr/bin/php');
$parent_info = $info->getPathInfo();
var_dump($parent_info->getRealPath());
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SplFileInfo::getPathname — Lit le chemin d'un fichier

Description

public SplFileInfo::getPathname(): string

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());
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SplFileInfo::getPerms — Lit les droits d'un fichier

Description

public SplFileInfo::getPerms(): int|false

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 en cas de succès ou false si une erreur survient.

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);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SplFileInfo::getRealPath — Lit le chemin absolu d'un fichier

Description

public SplFileInfo::getRealPath(): string|false

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('php://output');
var_dump($info->getRealPath());

$info = new SplFileInfo("");
var_dump($info->getRealPath());
?>

Résultat de l'exemple ci-dessus est similaire à :

string(28) "/private/tmp/phptempfile.php"
string(12) "/private/tmp"
bool(false)
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, PHP 8)

SplFileInfo::getSize — Lit la taille d'un fichier

Description

public SplFileInfo::getSize(): int|false

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 en cas de succès ou false si une erreur survient.

Erreurs / Exceptions

Une exception RuntimeException sera émise si le fichier n'existe pas, ou si une erreur survient.

Exemples

Exemple #1 Exemple avec SplFileInfo::getSize()

<?php
$info = new SplFileInfo('example.jpg');
echo $fileinfo->getFilename() . " " . $fileinfo->getSize();
?>

Résultat de l'exemple ci-dessus est similaire à :

example.jpg 15385

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, PHP 8)

SplFileInfo::getType — Lit le type de fichier

Description

public SplFileInfo::getType(): string|false

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, dir, block, fifo, char, socket, ou unknown, ou false si une erreur survient.

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();

?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SplFileInfo::isDir — Indique si le fichier est un dossier

Description

public SplFileInfo::isDir(): bool

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());
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SplFileInfo::isExecutable — Indique si un fichier est exécutable

Description

public SplFileInfo::isExecutable(): bool

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());
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SplFileInfo::isFile — Indique si un fichier est un véritable fichier

Description

public SplFileInfo::isFile(): bool

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());
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SplFileInfo::isLink — Indique si un fichier est un lien

Description

public SplFileInfo::isLink(): bool

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, PHP 8)

SplFileInfo::isReadable — Indique si le fichier est lisible

Description

public SplFileInfo::isReadable(): bool

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('readable.jpg');
if ($info->isReadable()) {
echo $info->getFilename() . ' est lisible';
}
?>

Résultat de l'exemple ci-dessus est similaire à :

readable.jpg est lisible


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, PHP 8)

SplFileInfo::isWritable — Indique si on peut écrire dans un fichier

Description

public SplFileInfo::isWritable(): bool

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;

Exemples

Exemple #1 Exemple avec SplFileInfo::isWriteable()

<?php
$info = new SplFileInfo('locked.jpg');
if (!$info->isWriteable()) {
echo $info->getFilename() . ' n\'est pas accessible en écriture';
}
?>

Résultat de l'exemple ci-dessus est similaire à :

locked.jpg n'est pas accessible en écriture


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, PHP 8)

SplFileInfo::openFile — Crée un objet SplFileObject pour le fichier

Description

public SplFileInfo::openFile(string $mode = "r", bool $useIncludePath = false, ?resource $context = null): SplFileObject

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

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.

useIncludePath

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).

Historique

Version | Description
8.0.0 | context est désormais nullable.

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, PHP 8)

SplFileInfo::setFileClass — Configure la classe utilisée avec SplFileInfo::openFile()

Description

public SplFileInfo::setFileClass(string $class = SplFileObject::class): void

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

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());
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SplFileInfo::setInfoClass — Configure la classe utilisée par SplFileInfo::getFileInfo() et SplFileInfo::getPathInfo()

Description

public SplFileInfo::setInfoClass(string $class = SplFileInfo::class): void

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

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());
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SplFileInfo::__toString — Retourne le chemin d'un fichier sous forme de chaîne

Description

public SplFileInfo::__toString(): string

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;
?>

Résultat de l'exemple ci-dessus est similaire à :

string(3) "foo"
foo
string(12) "/usr/bin/php"
/usr/bin/php


La classe SplFileObject

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

Introduction

La classe SplFileObject offre une interface orientée objet pour un fichier.

Synopsis de la classe

class SplFileObject extends SplFileInfo implements RecursiveIterator, SeekableIterator {
/* Constantes */
public const int DROP_NEW_LINE;
public const int READ_AHEAD;
public const int SKIP_EMPTY;
public const int READ_CSV;
/* Méthodes */
public __construct(
string $filename,
string $mode = "r",
bool $useIncludePath = false,
?resource $context = null
)
public current(): string|array|false
public eof(): bool
public fflush(): bool
public fgetc(): string|false
public fgetcsv(string $separator = ",", string $enclosure = "\"", string $escape = "\\"): array|false
public fgets(): string
public fgetss(string $allowable_tags = ?): string
public flock(int $operation, int &$wouldBlock = null): bool
public fpassthru(): int
public fputcsv(
array $fields,
string $separator = ",",
string $enclosure = "\"",
string $escape = "\\",
string $eol = "\n"
): int|false
public fread(int $length): string|false
public fscanf(string $format, mixed &...$vars): array|int|null
public fseek(int $offset, int $whence = SEEK_SET): int
public fstat(): array
public ftell(): int|false
public ftruncate(int $size): bool
public fwrite(string $data, int $length = 0): int|false
public getChildren(): null
public getCsvControl(): array
public getFlags(): int
public getMaxLineLen(): int
public hasChildren(): false
public key(): int
public next(): void
public rewind(): void
public seek(int $line): void
public setCsvControl(string $separator = ",", string $enclosure = "\"", string $escape = "\\"): void
public setFlags(int $flags): void
public setMaxLineLen(int $maxLength): void
public __toString(): string
public valid(): bool
/* Méthodes héritées */
public SplFileInfo::getATime(): int|false
public SplFileInfo::getBasename(string $suffix = ""): string
public SplFileInfo::getCTime(): int|false
public SplFileInfo::getExtension(): string
public SplFileInfo::getFileInfo(?string $class = null): SplFileInfo
public SplFileInfo::getFilename(): string
public SplFileInfo::getGroup(): int|false
public SplFileInfo::getInode(): int|false
public SplFileInfo::getLinkTarget(): string|false
public SplFileInfo::getMTime(): int|false
public SplFileInfo::getOwner(): int|false
public SplFileInfo::getPath(): string
public SplFileInfo::getPathInfo(?string $class = null): ?SplFileInfo
public SplFileInfo::getPathname(): string
public SplFileInfo::getPerms(): int|false
public SplFileInfo::getRealPath(): string|false
public SplFileInfo::getSize(): int|false
public SplFileInfo::getType(): string|false
public SplFileInfo::isDir(): bool
public SplFileInfo::isExecutable(): bool
public SplFileInfo::isFile(): bool
public SplFileInfo::isLink(): bool
public SplFileInfo::isReadable(): bool
public SplFileInfo::isWritable(): bool
public SplFileInfo::openFile(string $mode = "r", bool $useIncludePath = false, ?resource $context = null): SplFileObject
public SplFileInfo::setFileClass(string $class = SplFileObject::class): void
public SplFileInfo::setInfoClass(string $class = SplFileInfo::class): void
public SplFileInfo::__toString(): string
}

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.

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 — Retourne la ligne courante sous forme de chaîne de caractères
  • 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, PHP 8)

SplFileObject::__construct — Construit un nouvel objet fichier

Description

public SplFileObject::__construct(
string $filename,
string $mode = "r",
bool $useIncludePath = false,
?resource $context = null
)

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 les variables prédéfinies qu'elles fournissent.

mode

Le mode utilisé pour ouvrir le fichier. Voir la fonction fopen() pour une liste de tous les modes disponibles.

useIncludePath

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().

Erreurs / Exceptions

Lance une exception RuntimeException si le fichier filename n'a pu être ouvert.

Lance une exception LogicException si filename est un dossier.

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";
}
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SplFileObject::current — Récupère la ligne courante d'un fichier

Description

public SplFileObject::current(): string|array|false

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. Si la fin du fichier est atteinte, false est retourné.

Exemples

Exemple #1 Exemple avec SplFileObject::current()

<?php
$file = new SplFileObject(__FILE__);
foreach ($file as $k => $line) {
echo ($file->key() + 1) . ': ' . $file->current();
}
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SplFileObject::eof — Vérifie si la fin du fichier est atteinte

Description

public SplFileObject::eof(): bool

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();
}
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SplFileObject::fflush — Écrit l'affichage dans le fichier

Description

public SplFileObject::fflush(): bool

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, PHP 8)

SplFileObject::fgetc — Récupère un caractère depuis le fichier

Description

public SplFileObject::fgetc(): string|false

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, PHP 8)

SplFileObject::fgetcsv — Récupère une ligne depuis le fichier et l'analyse comme étant des données CSV

Description

public SplFileObject::fgetcsv(string $separator = ",", string $enclosure = "\"", string $escape = "\\"): array|false

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.

Note:

La définition des locales entre en jeu avec cette fonction. Si LC_CTYPE vaut, par exemple en_US.UTF-8, les fichiers encodés avec un encodage d'un octet peuvent être mal lus par cette fonction.

Liste de paramètres

separator

Le délimiteur de champs (un caractère d'un seul octet). 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 caractère d'un seul octet). 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 (au plus un caractère d'un seul octet). Par défaut, ce sera un antislash (\) ou bien la valeur définie en utilisant la méthode SplFileObject::setCsvControl(). Une chaîne de caractères vide ("") désactive le mécanisme d'échappement propriétaire.

Note: Habituellement, un enclosure caractère est échappé à l'intérieur d'un champ en le doublant; Toutefois, le caractère escape peut être utilisé comme une alternative. Ainsi, pour les valeurs de paramètre par défaut "" et \" ont la même signification. Autre que de permettre d'échapper le caractère enclosure le caractère escape n'a pas de sens particulier; il n'est même pas destiné à s'échapper.

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.

Historique

Version | Description
7.4.0 | Le paramètre escape accepte désormais une chaîne de caractère vide afin de désactivé le mécanisme d'échapement propriétaire.

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

Résultat de l'exemple ci-dessus est 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, PHP 8)

SplFileObject::fgets — Récupère une ligne d'un fichier

Description

public SplFileObject::fgets(): string

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.

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 à partir de l'emplacement du pointeur sur 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

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.3.0, et a été SUPPRIMÉE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

public SplFileObject::fgetss(string $allowable_tags = ?): string

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. La fonction conserve l'état de l'analyse d'appel en appel, et ainsi n'est pas équivalent à l'appel de strip_tags() sur la valeur de retour de SplFileObject::fgets().

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();
}
?>

Résultat de l'exemple ci-dessus est 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
  • Le filtre string.strip_tags


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, PHP 8)

SplFileObject::flock — Verrouille ou déverrouille un fichier

Description

public SplFileObject::flock(int $operation, int &$wouldBlock = null): bool

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).

Il est aussi possible d'ajouter LOCK_NB en tant qu'un masque binaire à l'une des opérations ci-dessus, si flock() ne devrait pas bloquer lors de la tentative de vérrouillage.

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, PHP 8)

SplFileObject::fpassthru — Affiche toutes les données en attente sur un pointeur de fichier

Description

public SplFileObject::fpassthru(): int

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, PHP 8)

SplFileObject::fputcsv — Écrit un tableau sous la forme d'une ligne CSV

Description

public SplFileObject::fputcsv(
array $fields,
string $separator = ",",
string $enclosure = "\"",
string $escape = "\\",
string $eol = "\n"
): int|false

Écrit un tableau fields sous la forme d'une ligne CSV.

Liste de paramètres

fields

Un tableau de valeurs.

separator

Le paramètre optionnel delimiter définit le délimiteur de champs (un caractère d'un seul octet).

enclosure

Le paramètre optionnel enclosure définit le caractère entourant le champ (un caractère d'un seul octet).

escape

Le paramètre optionnel escape définit le caractère d'échappement (au plus un caractère d'un seul octet). Une chaîne de caractères vide ("") désactive le mécanisme d'échappement propriétaire.

eol

Le paramètre optionnel eol définit une séquence de fin de ligne (End of Line) personnalisé.

Note:

Si un caractère enclosure est contenu dans un champ, il sera échappé en le doublant, à moins qu'il ne soit immédiatement précédé d'un escape.

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

Une erreur de niveau E_WARNING est émise si separator ou enclosure n'est pas un seul caractère.

Historique

Version | Description
8.1.0 | Le paramètre optionnel eol a été ajouté.
7.4.0 | Le paramètre escape accepte désormais une chaîne de caractères vide afin de désactivé le mécanisme d'échapement propriétaire.

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, PHP 8)

SplFileObject::fread — Lit depuis un fichier

Description

public SplFileObject::fread(int $length): string|false

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, PHP 8)

SplFileObject::fscanf — Analyse une entrée d'un fichier suivant un format donné

Description

public SplFileObject::fscanf(string $format, mixed &...$vars): array|int|null

Lit une ligne depuis un fichier et l'analyse suivant le format format spécifié.

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 interprété pour string décrit dans la documentation de la sprintf() avec les différences suivantes :

  • La fonction ne tient pas compte du contexte local.
  • F, g, G et b ne sont pas supportés.
  • D représente un nombre décimal.
  • i représente un nombre entier avec détection de base.
  • n représente le nombre de caractères traités à ce stade.
  • s arrête la lecture à chaque caractère d'espacement.
  • * au lieu de argnum$ supprime l'affectation de cette spécification de conversion.

vars

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
  • 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


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, PHP 8)

SplFileObject::fseek — Se déplace à une position donnée

Description

public SplFileObject::fseek(int $offset, int $whence = SEEK_SET): int

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 SplFileObject("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, PHP 8)

SplFileObject::fstat — Récupère les informations d'un fichier

Description

public SplFileObject::fstat(): array

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));

?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SplFileObject::ftell — Retourne la position courant dans le fichier

Description

public SplFileObject::ftell(): int|false

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, PHP 8)

SplFileObject::ftruncate — Coupe le fichier à une longueur donnée

Description

public SplFileObject::ftruncate(int $size): bool

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();
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SplFileObject::fwrite — Écrit dans le fichier

Description

public SplFileObject::fwrite(string $data, int $length = 0): int|false

Écrit le contenu du paramètre str dans le fichier.

Liste de paramètres

data

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 false si une erreur survient.

Historique

Version | Description
7.4.0 | Cette fonction retourne désormais false au lieu de zéro en cas d'échec.

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";
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SplFileObject::getChildren — Récupère le fils

Description

public SplFileObject::getChildren(): null

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

Retourne null.

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, PHP 8)

SplFileObject::getCsvControl — Récupère les options pour CSV

Description

public SplFileObject::getCsvControl(): array

Récupère le séparateur, caractère d'échappement 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 et le caractère d'échappement.

Historique

Version | Description
7.4.0 | Le caractère d'espacement peut désormais être une chaîne vide.
7.0.10 | Ajout du caractère d'échappement dans le tableau retourné.

Exemples

Exemple #1 Exemple avec SplFileObject::getCsvControl()

<?php
$file = new SplFileObject("data.txt");
print_r($file->getCsvControl());
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => ,
    [1] => "
    [2] => \
)

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, PHP 8)

SplFileObject::getCurrentLine — Alias de SplFileObject::fgets()

Description

Cette méthode est un alias de: 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, PHP 8)

SplFileObject::getFlags — Récupère les drapeaux pour l'objet SplFileObject

Description

public SplFileObject::getFlags(): int

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";
}
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SplFileObject::getMaxLineLen — Récupère la longueur maximale d'une ligne

Description

public SplFileObject::getMaxLineLen(): int

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

int(0)
int(20)

Voir aussi

  • SplFileObject::setMaxLineLen() - Définit la longueur maximale d'une ligne


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, PHP 8)

SplFileObject::hasChildren — Vérifie si SplFileObject a un fils

Description

public SplFileObject::hasChildren(): false

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, PHP 8)

SplFileObject::key — Récupère le numéro de la ligne courant

Description

public SplFileObject::key(): int

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;
}
?>

Résultat de l'exemple ci-dessus est 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";
}
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SplFileObject::next — Se déplace sur la prochaine ligne

Description

public 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, PHP 8)

SplFileObject::rewind — Réinitialise le fichier à la première ligne

Description

public 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, PHP 8)

SplFileObject::seek — Se déplace sur une ligne spécifique

Description

public SplFileObject::seek(int $line): void

Se déplace sur une ligne spécifique du fichier.

Liste de paramètres

line

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 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();
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SplFileObject::setCsvControl — Définit les options CSV

Description

public SplFileObject::setCsvControl(string $separator = ",", string $enclosure = "\"", string $escape = "\\"): void

Définit le délimiteur, le caratère d'échappement ainsi que le caractère utilisé pour entourer les champs CSV analysés.

Liste de paramètres

separator

Le délimiteur de champs (un caractère d'un seul octet).

enclosure

Le caractère utilisé pour entourer le champ (un caractère d'un seul octet).

escape

Le caractère utilisé pour échapper les données (au plus un caractère d'un seul octet). Une chaîne de caractères vide ("") désactive le mécanisme d'échappement propriétaire.

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version | Description
7.4.0 | Le paramètre escape accepte désormais une chaîne de caractère vide afin de désactivé le mécanisme d'échapement propriétaire.

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, PHP 8)

SplFileObject::setFlags — Définit les drapeaux pour l'objet SplFileObject

Description

public SplFileObject::setFlags(int $flags): void

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, PHP 8)

SplFileObject::setMaxLineLen — Définit la longueur maximale d'une ligne

Description

public SplFileObject::setMaxLineLen(int $maxLength): void

Définit la longueur maximale d'une ligne.

Liste de paramètres

maxLength

La longueur maximale d'une ligne.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Lance une exception DomainException lorsque maxLength 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.

Résultat de l'exemple ci-dessus est 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

  • SplFileObject::getMaxLineLen() - Récupère la longueur maximale d'une ligne


Retourne la ligne courante sous forme de chaîne de caractères

  • « SplFileObject::setMaxLineLen
  • SplFileObject::valid »
  • PHP Manual
  • SplFileObject
  • Retourne la ligne courante sous forme de chaîne de caractères

SplFileObject::__toString

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::__toString — Retourne la ligne courante sous forme de chaîne de caractères

Description

public SplFileObject::__toString(): string

Cette méthode la ligne courante sous forme de chaîne de caractères.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la ligne courante sous forme de chaîne de caractères.

Historique

Version | Description
8.1.14, 8.2.1 | Changée d'un alias de SplFileObject::fgets() à une implémentation de SplFileObject::current() qui renvoie une chaîne CSV lorsque l'option SplFileObject::READ_CSV est définie.
7.2.19, 7.3.6 | Modifié d'un alias de SplFileObject::current() en un alias de SplFileObject::fgets().


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, PHP 8)

SplFileObject::valid — Vérifie si la fin du fichier a été atteinte

Description

public SplFileObject::valid(): bool

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, PHP 8)

Introduction

La classe SplTempFileObject offre une interface orientée objet pour un fichier temporaire.

Synopsis de la classe

class SplTempFileObject extends SplFileObject {
/* Constants héritées */
public const int SplFileObject::DROP_NEW_LINE;
public const int SplFileObject::READ_AHEAD;
public const int SplFileObject::SKIP_EMPTY;
public const int SplFileObject::READ_CSV;
/* Méthodes */
public __construct(int $maxMemory = 2 * 1024 * 1024)
/* Méthodes héritées */
public SplFileObject::current(): string|array|false
public SplFileObject::eof(): bool
public SplFileObject::fflush(): bool
public SplFileObject::fgetc(): string|false
public SplFileObject::fgetcsv(string $separator = ",", string $enclosure = "\"", string $escape = "\\"): array|false
public SplFileObject::fgets(): string
public SplFileObject::fgetss(string $allowable_tags = ?): string
public SplFileObject::flock(int $operation, int &$wouldBlock = null): bool
public SplFileObject::fpassthru(): int
public SplFileObject::fputcsv(
array $fields,
string $separator = ",",
string $enclosure = "\"",
string $escape = "\\",
string $eol = "\n"
): int|false
public SplFileObject::fread(int $length): string|false
public SplFileObject::fscanf(string $format, mixed &...$vars): array|int|null
public SplFileObject::fseek(int $offset, int $whence = SEEK_SET): int
public SplFileObject::fstat(): array
public SplFileObject::ftell(): int|false
public SplFileObject::ftruncate(int $size): bool
public SplFileObject::fwrite(string $data, int $length = 0): int|false
public SplFileObject::getChildren(): null
public SplFileObject::getCsvControl(): array
public SplFileObject::getFlags(): int
public SplFileObject::getMaxLineLen(): int
public SplFileObject::hasChildren(): false
public SplFileObject::key(): int
public SplFileObject::next(): void
public SplFileObject::rewind(): void
public SplFileObject::seek(int $line): void
public SplFileObject::setCsvControl(string $separator = ",", string $enclosure = "\"", string $escape = "\\"): void
public SplFileObject::setFlags(int $flags): void
public SplFileObject::setMaxLineLen(int $maxLength): void
public SplFileObject::__toString(): string
public SplFileObject::valid(): bool
public SplFileInfo::getATime(): int|false
public SplFileInfo::getBasename(string $suffix = ""): string
public SplFileInfo::getCTime(): int|false
public SplFileInfo::getExtension(): string
public SplFileInfo::getFileInfo(?string $class = null): SplFileInfo
public SplFileInfo::getFilename(): string
public SplFileInfo::getGroup(): int|false
public SplFileInfo::getInode(): int|false
public SplFileInfo::getLinkTarget(): string|false
public SplFileInfo::getMTime(): int|false
public SplFileInfo::getOwner(): int|false
public SplFileInfo::getPath(): string
public SplFileInfo::getPathInfo(?string $class = null): ?SplFileInfo
public SplFileInfo::getPathname(): string
public SplFileInfo::getPerms(): int|false
public SplFileInfo::getRealPath(): string|false
public SplFileInfo::getSize(): int|false
public SplFileInfo::getType(): string|false
public SplFileInfo::isDir(): bool
public SplFileInfo::isExecutable(): bool
public SplFileInfo::isFile(): bool
public SplFileInfo::isLink(): bool
public SplFileInfo::isReadable(): bool
public SplFileInfo::isWritable(): bool
public SplFileInfo::openFile(string $mode = "r", bool $useIncludePath = false, ?resource $context = null): SplFileObject
public SplFileInfo::setFileClass(string $class = SplFileObject::class): void
public SplFileInfo::setInfoClass(string $class = SplFileInfo::class): void
public SplFileInfo::__toString(): string
}

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, PHP 8)

SplTempFileObject::__construct — Construit un nouvel objet représentant un fichier temporaire

Description

public SplTempFileObject::__construct(int $maxMemory = 2 * 1024 * 1024)

Construit un nouvel objet représentant un fichier temporaire.

Liste de paramètres

maxMemory

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 maxMemory est négatif, seule la mémoire sera utilisée. Si maxMemory vaut zéro, la mémoire ne sera pas utilisé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;
}
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

Introduction

Cette classe permet aux objets de fonctionner comme des tableaux.

Synopsis de la classe

class ArrayObject implements IteratorAggregate, ArrayAccess, Serializable, Countable {
/* Constantes */
const int STD_PROP_LIST;
const int ARRAY_AS_PROPS;
/* Méthodes */
public __construct(array|object $array = [], int $flags = 0, string $iteratorClass = ArrayIterator::class)
public append(mixed $value): void
public asort(int $flags = SORT_REGULAR): true
public count(): int
public exchangeArray(array|object $array): array
public getArrayCopy(): array
public getFlags(): int
public getIterator(): Iterator
public getIteratorClass(): string
public ksort(int $flags = SORT_REGULAR): true
public natcasesort(): true
public natsort(): true
public offsetExists(mixed $key): bool
public offsetGet(mixed $key): mixed
public offsetSet(mixed $key, mixed $value): void
public offsetUnset(mixed $key): void
public serialize(): string
public setFlags(int $flags): void
public setIteratorClass(string $iteratorClass): void
public uasort(callable $callback): true
public uksort(callable $callback): true
public unserialize(string $data): void
}

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

Les éléments peuvent être accédé comme des propriétés (lecture et écriture). La classe ArrayObject utilise so propre logique pour accéder aux propriétés, ainsi aucun avertissement ou erreur est émise lors d'une tentative de lecture ou écriture de propriétés dynamique.

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 — Sérialise 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ésérialisation 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, PHP 7, PHP 8)

ArrayObject::append — Ajoute la valeur à la fin d'un tableau

Description

public ArrayObject::append(mixed $value): void

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, PHP 8)

ArrayObject::asort — Trie les éléments par valeur

Description

public ArrayObject::asort(int $flags = SORT_REGULAR): true

Trie les entrées en ordre croissant, de telle manière que la corrélation entre les clés 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:

Si deux membres se comparent comme égaux, ils maintiennent leur ordre original. Antérieur à PHP 8.0.0, leur ordre relatif dans le tableau trié n'est pas défini.

Liste de paramètres

flags

Le deuxième paramètre optionnel flags peut être utilisé pour modifier le comportement de tri en utilisant ces valeurs :

Type de drapeaux de tri :

  • SORT_REGULAR - compare items normally; the details are described in the comparison operators section
  • 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 comme des chaînes de caractères, basé sur la locale courante. Ceci utilise la locale, qui peut être changée en utilisant setlocale()
  • SORT_NATURAL - compare les éléments comme des chaînes de caractères utilisant "l'ordre naturel" comme natsort()
  • SORT_FLAG_CASE - peut être combiné (OU bit à bit) avec SORT_STRING ou SORT_NATURAL pour trier les chaînes sans tenir compte de la casse

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.2.0 | Le type de retour est maintenant true, auparavant il était bool.

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
  • asort() - Trie un tableau en ordre croissant et conserve l'association des index


Construit un nouvel objet tableau

  • « ArrayObject::asort
  • ArrayObject::count »
  • PHP Manual
  • ArrayObject
  • Construit un nouvel objet tableau

ArrayObject::__construct

(PHP 5, PHP 7, PHP 8)

ArrayObject::__construct — Construit un nouvel objet tableau

Description

public ArrayObject::__construct(array|object $array = [], int $flags = 0, string $iteratorClass = ArrayIterator::class)

Construit un nouvel objet tableau.

Liste de paramètres

array

Le paramètre array accepte un tableau ou un autre objet.

flags

Option de contrôle du comportement de l'objet ArrayObject. Voir la méthode ArrayObject::setFlags().

iteratorClass

Spécifie la classe qui sera utilisée pour les itérations de l'objet ArrayObject. La classe doit implémenter ArrayIterator.

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, PHP 7, PHP 8)

ArrayObject::count — Retourne le nombre de propriétés publiques dans l'objet ArrayObject

Description

public ArrayObject::count(): int

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, PHP 8)

ArrayObject::exchangeArray — Remplace un tableau par un autre

Description

public ArrayObject::exchangeArray(array|object $array): array

Remplace le tableau courant par un autre tableau ou un objet.

Liste de paramètres

array

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, PHP 7, PHP 8)

ArrayObject::getArrayCopy — Crée une copie de l'objet ArrayObject

Description

public ArrayObject::getArrayCopy(): array

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 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, PHP 8)

ArrayObject::getFlags — Lit les options de comportement

Description

public ArrayObject::getFlags(): int

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

  • ArrayObject::setFlags() - Configure les options de comportement


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, PHP 7, PHP 8)

ArrayObject::getIterator — Crée un nouvel itérateur à partir d'un objet ArrayObject

Description

public ArrayObject::getIterator(): Iterator

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, PHP 8)

ArrayObject::getIteratorClass — Lit le nom de la classe de ArrayObject

Description

public ArrayObject::getIteratorClass(): string

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, PHP 8)

ArrayObject::ksort — Trie un tableau par clé

Description

public ArrayObject::ksort(int $flags = SORT_REGULAR): true

Trie les éléments par clé, en conservant la relation avec les éléments. C'est le tri classique sur les tableaux associatifs.

Note:

Si deux membres se comparent comme égaux, ils maintiennent leur ordre original. Antérieur à PHP 8.0.0, leur ordre relatif dans le tableau trié n'est pas défini.

Liste de paramètres

flags

Le deuxième paramètre optionnel flags peut être utilisé pour modifier le comportement de tri en utilisant ces valeurs :

Type de drapeaux de tri :

  • SORT_REGULAR - compare items normally; the details are described in the comparison operators section
  • 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 comme des chaînes de caractères, basé sur la locale courante. Ceci utilise la locale, qui peut être changée en utilisant setlocale()
  • SORT_NATURAL - compare les éléments comme des chaînes de caractères utilisant "l'ordre naturel" comme natsort()
  • SORT_FLAG_CASE - peut être combiné (OU bit à bit) avec SORT_STRING ou SORT_NATURAL pour trier les chaînes sans tenir compte de la casse

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.2.0 | Le type de retour est maintenant true, auparavant il était bool.

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
  • ksort() - Trie un tableau en fonction des clés en ordre croissant


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, PHP 8)

ArrayObject::natcasesort — Trie un tableau en utilisant le tri naturel sans la casse

Description

public ArrayObject::natcasesort(): true

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.

Note:

Si deux membres se comparent comme égaux, ils maintiennent leur ordre original. Antérieur à PHP 8.0.0, leur ordre relatif dans le tableau trié n'est pas défini.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version | Description
8.2.0 | Le type de retour est maintenant true, auparavant il était bool.

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
        )

)

Pour plus d'information, voir la page la » comparaison de chaînes en ordre naturel de Martin Pool.

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
  • natcasesort() - Trie un tableau avec l'algorithme à "ordre naturel" insensible à la casse


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, PHP 8)

ArrayObject::natsort — Trie les éléments avec un tri naturel

Description

public ArrayObject::natsort(): true

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.

Note:

Si deux membres se comparent comme égaux, ils maintiennent leur ordre original. Antérieur à PHP 8.0.0, leur ordre relatif dans le tableau trié n'est pas défini.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version | Description
8.2.0 | Le type de retour est maintenant true, auparavant il était bool.

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
  • natsort() - Trie un tableau avec l'algorithme à "ordre naturel"


Vérifie si un index existe

  • « ArrayObject::natsort
  • ArrayObject::offsetGet »
  • PHP Manual
  • ArrayObject
  • Vérifie si un index existe

ArrayObject::offsetExists

(PHP 5, PHP 7, PHP 8)

ArrayObject::offsetExists — Vérifie si un index existe

Description

public ArrayObject::offsetExists(mixed $key): bool

Liste de paramètres

key

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, PHP 7, PHP 8)

ArrayObject::offsetGet — Retourne la valeur de l'index spécifié

Description

public ArrayObject::offsetGet(mixed $key): mixed

Liste de paramètres

key

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, PHP 7, PHP 8)

ArrayObject::offsetSet — Définie $newval comme valeur à l'$index spécifié

Description

public ArrayObject::offsetSet(mixed $key, mixed $value): void

Définit value comme valeur à l'index key spécifié.

Liste de paramètres

key

L'index à définir.

value

La nouvelle valeur de l'index key.

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, PHP 7, PHP 8)

ArrayObject::offsetUnset — Efface la valeur à l'$index spécifié

Description

public ArrayObject::offsetUnset(mixed $key): void

Efface la valeur à l'$index spécifié.

Liste de paramètres

key

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"
}


Sérialise un ArrayObject

  • « ArrayObject::offsetUnset
  • ArrayObject::setFlags »
  • PHP Manual
  • ArrayObject
  • Sérialise un ArrayObject

ArrayObject::serialize

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

ArrayObject::serialize — Sérialise un ArrayObject

Description

public ArrayObject::serialize(): string

Sérialise un ArrayObject.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La représentation sérialisé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ésérialisation d'un ArrayObject
  • serialize() - Génère une représentation stockable d'une valeur
  • Sérialisation 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, PHP 8)

ArrayObject::setFlags — Configure les options de comportement

Description

public ArrayObject::setFlags(int $flags): void

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, PHP 8)

ArrayObject::setIteratorClass — Définit le nom de la classe de l'itérateur pour l'objet ArrayObject

Description

public ArrayObject::setIteratorClass(string $iteratorClass): void

Définit le nom de la classe de l'itérateur du tableau, utilisé par ArrayObject::getIterator().

Liste de paramètres

iteratorClass

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, PHP 8)

ArrayObject::uasort — Trie les éléments avec une fonction utilisateur

Description

public ArrayObject::uasort(callable $callback): true

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.

Note:

Si deux membres se comparent comme égaux, ils maintiennent leur ordre original. Antérieur à PHP 8.0.0, leur ordre relatif dans le tableau trié n'est pas défini.

Liste de paramètres

callback

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.

callback(mixed $a, mixed $b): int
Attention

Retourner des valeurs non-entières à partir de la fonction de comparaison, telles que float, entraînera une conversion interne de la valeur de retour du rappel en int. Ainsi, des valeurs telles que 0.99 et 0.1 seront toutes deux converties en une valeur entière de 0, ce qui comparera de telles valeurs comme égales.

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.2.0 | Le type de retour est maintenant true, auparavant il était bool.

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
  • uasort() - Trie un tableau en utilisant une fonction de rappel


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, PHP 8)

ArrayObject::uksort — Trie les éléments par clé avec une fonction utilisateur

Description

public ArrayObject::uksort(callable $callback): true

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.

Note:

Si deux membres se comparent comme égaux, ils maintiennent leur ordre original. Antérieur à PHP 8.0.0, leur ordre relatif dans le tableau trié n'est pas défini.

Liste de paramètres

callback

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.

callback(mixed $a, mixed $b): int
Attention

Retourner des valeurs non-entières à partir de la fonction de comparaison, telles que float, entraînera une conversion interne de la valeur de retour du rappel en int. Ainsi, des valeurs telles que 0.99 et 0.1 seront toutes deux converties en une valeur entière de 0, ce qui comparera de telles valeurs comme égales.

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.2.0 | Le type de retour est maintenant true, auparavant il était bool.

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
  • uksort() - Trie un tableau par ses clés en utilisant une fonction de rappel


Désérialisation d'un ArrayObject

  • « ArrayObject::uksort
  • SplObserver »
  • PHP Manual
  • ArrayObject
  • Désérialisation d'un ArrayObject

ArrayObject::unserialize

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

ArrayObject::unserialize — Désérialisation d'un ArrayObject

Description

public ArrayObject::unserialize(string $data): void

Désérialise d'un objet ArrayObject sérialisé.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

data

L'objet ArrayObject sérialisé.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • ArrayIterator::serialize() - Sérialisation
  • unserialize() - Crée une variable PHP à partir d'une valeur sérialisée
  • Sérialisation d'objets


L'interface SplObserver

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

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

interface SplObserver {
/* Méthodes */
public update(SplSubject $subject): void
}

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, PHP 8)

SplObserver::update — Réception d'une mise à jour depuis un sujet

Description

public SplObserver::update(SplSubject $subject): void

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 est actuellement non documentée ; 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, PHP 8)

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

interface SplSubject {
/* Méthodes */
public attach(SplObserver $observer): void
public detach(SplObserver $observer): void
public 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, PHP 8)

SplSubject::attach — Attache un SplObserver

Description

public SplSubject::attach(SplObserver $observer): void

Attache un SplObserver. Il sera ainsi notifier des mises à jour.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

SplSubject::detach — Détache un observateur

Description

public SplSubject::detach(SplObserver $observer): void

Détache un observateur d'un sujet. Il ne sera ainsi plus notifié des mises à jour.

Avertissement

Cette fonction est actuellement non documentée ; 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
  • Flux »
  • PHP Manual
  • SplSubject
  • Notifie un observateur

SplSubject::notify

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplSubject::notify — Notifie un observateur

Description

public SplSubject::notify(): void

Notifie tous les observateurs attachés.

Avertissement

Cette fonction est actuellement non documentée ; 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.


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
    • 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_options — Sets options on the specified context
    • 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_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_isatty — Vérifie si un flux est un TTY
    • 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_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) sont une 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 à une position arbitraire 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. 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.


Installation/Configuration

Sommaire

  • Pré-requis
  • Installation
  • Configuration à l'exécution
  • Classes Stream


  • « 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.
STREAM_SHUT_WR | Utilisé avec stream_socket_shutdown() pour désactiver les transmissions futures.
STREAM_SHUT_RDWR | Utilisé avec stream_socket_shutdown() pour désactiver les réceptions et transmissions futures.
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().
STREAM_BUFFER_NONE | Pas de tampon utilisé.
STREAM_BUFFER_LINE | Tampon par ligne.
STREAM_BUFFER_FULL | Tampon complet.

Note: Les constantes marquées avec un + 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 faites pour être utilisées avec la fonction 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. 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, PHP 8)

Introduction

Les enfants de cette classe sont passés à la fonction stream_filter_register(). Il est à noter que la méthode __construct n'est pas appelée; à la place, php_user_filter::onCreate() devrait être utilisé pour l'initialisation.

Synopsis de la classe

class php_user_filter {
/* Propriétés */
public string $filtername = "";
public mixed $params = "";
public ?resource $stream = null;
/* Méthodes */
public filter(
resource $in,
resource $out,
int &$consumed,
bool $closing
): int
public onClose(): void
public onCreate(): bool
}

Propriétés

filtername

Nom du filtre à enregistrer par la fonction stream_filter_append().

params

stream

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 8)

php_user_filter::filter — Appelé lors de l'application d'un filtre

Description

public php_user_filter::filter(
resource $in,
resource $out,
int &$consumed,
bool $closing
): int

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 8)

php_user_filter::onClose — Appelé lors de la fermeture du filtre

Description

public 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 8)

php_user_filter::onCreate — Appelé lors de la création du filtre

Description

public php_user_filter::onCreate(): bool

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, PHP 8)

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

class streamWrapper {
/* Propriétés */
public resource $context;
/* Méthodes */
public __construct()
public dir_closedir(): bool
public dir_opendir(string $path, int $options): bool
public dir_readdir(): string
public dir_rewinddir(): bool
public mkdir(string $path, int $mode, int $options): bool
public rename(string $path_from, string $path_to): bool
public rmdir(string $path, int $options): bool
public stream_cast(int $cast_as): resource
public stream_close(): void
public stream_eof(): bool
public stream_flush(): bool
public stream_lock(int $operation): bool
public stream_metadata(string $path, int $option, mixed $value): bool
public stream_open(
string $path,
string $mode,
int $options,
?string &$opened_path
): bool
public stream_read(int $count): string|false
public stream_seek(int $offset, int $whence = SEEK_SET): bool
public stream_set_option(int $option, int $arg1, int $arg2): bool
public stream_stat(): array|false
public stream_tell(): int
public stream_truncate(int $new_size): bool
public stream_write(string $data): int
public unlink(string $path): bool
public url_stat(string $path, int $flags): array|false
public __destruct()
}

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.

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, PHP 8)

streamWrapper::__construct — Construit un nouveau gestionnaire de flux

Description

public streamWrapper::__construct()

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, PHP 8)

streamWrapper::__destruct — Détruit un gestionnaire de flux existant

Description

public streamWrapper::__destruct()

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, PHP 8)

streamWrapper::dir_closedir — Ferme une ressource de dossier

Description

public streamWrapper::dir_closedir(): bool

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, PHP 8)

streamWrapper::dir_opendir — Ouvre un dossier en lecture

Description

public streamWrapper::dir_opendir(string $path, int $options): bool

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

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, PHP 8)

streamWrapper::dir_readdir — Lit un fichier dans un dossier

Description

public streamWrapper::dir_readdir(): string

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);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

streamWrapper::dir_rewinddir — Remet au début une ressource de dossier

Description

public streamWrapper::dir_rewinddir(): bool

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, PHP 8)

streamWrapper::mkdir — Crée un dossier

Description

public streamWrapper::mkdir(string $path, int $mode, int $options): bool

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, PHP 8)

streamWrapper::rename — Renomme un fichier ou un dossier

Description

public streamWrapper::rename(string $path_from, string $path_to): bool

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, PHP 8)

streamWrapper::rmdir — Supprime un dossier

Description

public streamWrapper::rmdir(string $path, int $options): bool

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, PHP 8)

streamWrapper::stream_cast — Lit la ressource sous-jacente de flux

Description

public streamWrapper::stream_cast(int $cast_as): resource

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 appelant 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, PHP 8)

streamWrapper::stream_close — Ferme une ressource de flux

Description

public 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, PHP 8)

streamWrapper::stream_eof — Tests for end-of-file on a file pointer

Description

public streamWrapper::stream_eof(): bool

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, PHP 8)

streamWrapper::stream_flush — Expédie le contenu

Description

public streamWrapper::stream_flush(): bool

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, PHP 8)

streamWrapper::stream_lock — Verrouillage logique de fichiers

Description

public streamWrapper::stream_lock(int $operation): bool

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, PHP 8)

streamWrapper::stream_metadata — Change les metadata du flux

Description

public streamWrapper::stream_metadata(string $path, int $option, mixed $value): bool

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 int.
  • STREAM_META_ACCESS : L'argument de chmod() sous forme int.

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, PHP 8)

streamWrapper::stream_open — Opens file or URL

Description

public streamWrapper::stream_open(
string $path,
string $mode,
int $options,
?string &$opened_path
): bool

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, PHP 8)

streamWrapper::stream_read — Lit dans le flux

Description

public streamWrapper::stream_read(int $count): string|false

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, autant que possible devrait être retourné. S'il n'y a plus de données disponibles, une chaîne vide doit être retourné. Pour signaler une erreur de lecture false doit être retourné.

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 à partir de l'emplacement du pointeur sur 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, PHP 8)

streamWrapper::stream_seek — Place le pointeur de flux à une position

Description

public streamWrapper::stream_seek(int $offset, int $whence = SEEK_SET): bool

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.

Note: L'implémentation actuelle ne définie jamais whence à SEEK_CUR; en effet ces recherches de position sont convertie en interne à des recherches de type SEEK_SET.

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, PHP 8)

streamWrapper::stream_set_option — Change les options du flux

Description

public streamWrapper::stream_set_option(int $option, int $arg1, int $arg2): bool

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, PHP 8)

streamWrapper::stream_stat — Lit les informations sur une ressource de fichier

Description

public streamWrapper::stream_stat(): array|false

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, PHP 8)

streamWrapper::stream_tell — Lit la position courante dans un flux

Description

public streamWrapper::stream_tell(): int

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, PHP 8)

streamWrapper::stream_truncate — Tronque un flux

Description

public streamWrapper::stream_truncate(int $new_size): bool

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, PHP 8)

streamWrapper::stream_write — Écrit dans un flux

Description

public streamWrapper::stream_write(string $data): int

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, PHP 8)

streamWrapper::unlink — Efface un fichier

Description

public streamWrapper::unlink(string $path): bool

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() - Supprime 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, PHP 8)

streamWrapper::url_stat — Lit les informations sur un fichier

Description

public streamWrapper::url_stat(string $path, int $flags): array|false

Cette méthode est appelée en réponse à toutes les fonctions liées à stat(), telles que :

  • 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 retourner un tableau avec autant d'éléments que stat() retourne. Les valeurs inconnues ou indisponibles doivent prendre une valeur raisonnable (généralement, 0). Portez une attention particulière à mode comme documenté sous stat(). Doit retourner false en cas d'échec.

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

  • 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_options — Sets options on the specified context
  • 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_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_isatty — Vérifie si un flux est un TTY
  • 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_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


Ajoute un compartiment au corps

  • « Fonctions sur les flux
  • stream_bucket_make_writeable »
  • PHP Manual
  • Fonctions sur les flux
  • Ajoute un compartiment au corps

stream_bucket_append

(PHP 5, PHP 7, PHP 8)

stream_bucket_append — Ajoute un compartiment au corps

Description

stream_bucket_append(resource $brigade, object $bucket): void
Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

stream_bucket_make_writeable — Retourne un objet de compartiment depuis le corps pour des opérations sur celui-ci

Description

stream_bucket_make_writeable(resource $brigade): ?object

Cette fonction est appelé quand il y a un besoin d'accéder et opérer sur le contenu compris dans une brigade. Typiquement appelé depuis php_user_filter::filter().

Liste de paramètres

brigade

La brigade où retourner un objet bucket depuis.

Valeurs de retour

Retourne l'objet bucket avec les propriétés listé ci-dessous ou null.

data (string)

data bucket La chaîne actuellement dans le bucket.

datalen (integer)

datalen bucket La longueur de la chaîne dans le bucket.

Voir aussi

  • stream_bucket_append() - Ajoute un compartiment au corps
  • stream_bucket_prepend() - Ajout initial d'un bucket dans une brigade


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, PHP 8)

stream_bucket_new — Crée un nouveau compartiment pour l'utiliser sur le flux courant

Description

stream_bucket_new(resource $stream, string $buffer): object
Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

stream_bucket_prepend — Ajout initial d'un bucket dans une brigade

Description

stream_bucket_prepend(resource $brigade, object $bucket): void

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, PHP 8)

stream_context_create — Crée un contexte de flux

Description

stream_context_create(?array $options = null, ?array $params = null): resource

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 ou null. Référez-vous aux options de contexte pour une liste des wrappers et des options disponibles.

Par défaut null.

params

Doit être un tableau associatif de format $arr['parameter'] = $value ou null. 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
8.0.0 | options et params sont désormais nullable.

Exemples

Exemple #1 Exemple avec stream_context_create()

<?php

$opts = [
'http' => [
'method' => "GET",
// Utilisez un retour à la ligne \n pour séparer plusieurs en-têtes
'header' => "Accept-language: en\nCookie: foo=bar",
]
];

$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, PHP 8)

stream_context_get_default — Lit le contexte par défaut des flux

Description

stream_context_get_default(?array $options = null): resource

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 ou null.

Valeurs de retour

Une resource de contexte de flux.

Historique

Version | Description
8.0.0 | options est désormais nullable.

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
  • stream_context_set_default() - Configure le contexte par défaut des 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, PHP 8)

stream_context_get_options — Lit la valeur des options pour un flux/gestionnaire/contexte

Description

stream_context_get_options(resource $stream_or_context): array

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()));

?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

stream_context_get_params — Lit les paramètres d'un contexte

Description

stream_context_get_params(resource $context): array

stream_context_get_params() lit les paramètres du contexte ou du flux stream_or_context.

Liste de paramètres

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));
?>

Résultat de l'exemple ci-dessus est 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_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, PHP 8)

stream_context_set_default — Configure le contexte par défaut des flux

Description

stream_context_set_default(array $options): resource

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_options »
  • 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, PHP 8)

stream_context_set_option — Configure une option pour un flux/gestionnaire/contexte

Description

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): bool

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.

wrapper

Le nom du gestionnaire (qui peut être différent de celui du protocole). Voyez la section sur les contextes pour connaître la liste des paramètres standard de flux.

option

Le nom de l'option.

value

La valeur de l'option.

options

L'option à définir pour le paramètre stream_or_context.

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.


Sets options on the specified context

  • « stream_context_set_option
  • stream_context_set_params »
  • PHP Manual
  • Fonctions sur les flux
  • Sets options on the specified context

stream_context_set_options

(PHP 8 >= 8.3.0)

stream_context_set_options — Sets options on the specified context

Description

stream_context_set_options(resource $context, array $options): true

Sets options on the specified context.

Liste de paramètres

context

The stream or context resource to apply the options to.

options

The options to set for context.

Note:

options must be an associative tableau of associative arrays in the format $array['wrapper']['option'] = $value.

Refer to context options and parameters for a listing of stream options.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 stream_context_set_options() example

<?php

$context = stream_context_create();

$options = [
'http' => [
'protocol_version' => 1.1,
'user_agent' => 'PHPT Agent',
],
];

stream_context_set_options($context, $options);
var_dump(stream_context_get_options($context));
?>

L'exemple ci-dessus va afficher :

array(1) {
  ["http"]=>
  array(2) {
    ["protocol_version"]=>
    float(1.1)
    ["user_agent"]=>
    string(10) "PHPT Agent"
  }
}

Voir aussi

  • stream_context_set_option() - Configure une option pour un flux/gestionnaire/contexte


Configure les paramètres pour un flux/gestionnaire/contexte

  • « stream_context_set_options
  • 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, PHP 8)

stream_context_set_params — Configure les paramètres pour un flux/gestionnaire/contexte

Description

stream_context_set_params(resource $context, array $params): true

stream_context_set_params() définit les paramètres pour le contexte spécifié.

Liste de paramètres

context

Le flux ou le contexte sur lequel on applique les paramètres.

params

Un tableau associatif de paramètres à définir dans le format suivant : $params['paramname'] = "paramvalue";.

Paramètres supportés
Paramètre | Usage
notification | Nom de la fonction de rappel définie par l'utilisateur appelée dès qu'un flux génère une notification. Supporté uniquement par les wrappers de flux http:// et ftp://.
options | Un tableau d'options, comme pour les options et paramètres 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_filter_append »
  • PHP Manual
  • Fonctions sur les flux
  • Copie des données depuis un flux vers un autre

stream_copy_to_stream

(PHP 5, PHP 7, PHP 8)

stream_copy_to_stream — Copie des données depuis un flux vers un autre

Description

stream_copy_to_stream(
resource $from,
resource $to,
?int $length = null,
int $offset = 0
): int|false

Fait une copie jusqu'à length octets de données depuis la position courante du pointeur (ou depuis la position offset, si spécifié) dans le flux from vers le paramètre to. Si length n'est pas spécifié, tout le reste du flux from sera copié.

Liste de paramètres

from

Le flux de source

to

Le flux de destination

length

Nombre maximal d'octets à copier. Par défaut, tous les octets restants sont copiés.

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
8.0.0 | length est désormais nullable.

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


Attache un filtre à un flux en fin de liste

  • « stream_copy_to_stream
  • 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, PHP 8)

stream_filter_append — Attache un filtre à un flux en fin de liste

Description

stream_filter_append(
resource $stream,
string $filtername,
int $read_write = ?,
mixed $params = ?
): resource

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.

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, PHP 8)

stream_filter_prepend — Attache un filtre à un flux en début de liste

Description

stream_filter_prepend(
resource $stream,
string $filtername,
int $read_write = ?,
mixed $params = ?
): resource

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.

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, PHP 8)

stream_filter_register — Enregistre un filtre de flux

Description

stream_filter_register(string $filter_name, string $class): bool

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

filter_name

Le nom du filtre à enregistrer.

class

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 filter_name 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, PHP 8)

stream_filter_remove — Retire un filtre d'un flux

Description

stream_filter_remove(resource $stream_filter): bool

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, PHP 8)

stream_get_contents — Lit tout un flux dans une chaîne

Description

stream_get_contents(resource $stream, ?int $length = null, int $offset = -1): string|false

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'à length octets, dans une chaîne et commençant à la position offset.

Liste de paramètres

stream (resource)

Une ressource de flux (e.g. retournée par la fonction fopen())

length (entier)

Le nombre maximal d'octets à lire. Par défaut, null (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
8.0.0 | length est désormais nullable.

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.

Note:

Lorsque vous spécifiez une valeur de length autre que null, cette fonction allouera immédiatement un tampon interne de cette taille, même si le contenu réel est significativement plus court.

Voir aussi

  • fgets() - Récupère la ligne courante à partir de l'emplacement du pointeur sur 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, PHP 8)

stream_get_filters — Liste les filtres enregistrés

Description

stream_get_filters(): array

stream_get_filters() lit la liste des filtres enregistrés.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

stream_get_line — Lit une ligne dans un flux

Description

stream_get_line(resource $stream, int $length, string $ending = ""): string|false

stream_get_line() lit une ligne dans la ressource handle.

La lecture se termine quand length octets ont été lus, quand la chaîne non-vide 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

stream

Une ressource valide de fichier.

length

Le nombre maximum d'octets à lire depuis le gestionnaire. Les valeurs négatives ne sont pas supportées. Zéro (0) signifie la taille de chunk de socket par défaut, i.e. 8192 octets.

ending

Un délimiteur de chaîne optionnel.

Valeurs de retour

stream_get_line() lit une ligne de taille maximale length dans le flux stream ou false si une erreur survient.

Voir aussi

  • fread() - Lecture du fichier en mode binaire
  • fgets() - Récupère la ligne courante à partir de l'emplacement du pointeur sur 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, PHP 8)

stream_get_meta_data — Lit les en-têtes et données méta des flux

Description

stream_get_meta_data(resource $stream): array

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(), pfsockopen() et stream_socket_client()..

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.

  • crypto (tableau) - les métadonnées de la connexion TLS pour ce flux. (Note: Seulement fournit quand la ressource de flux utilise TLS.)

Exemples

Exemple #1 Exemple de stream_get_meta_data() utilisant fopen() avec http

<?php
$url = 'http://www.example.com/';

if (!$fp = fopen($url, 'r')) {
trigger_error("Unable to open URL ($url)", E_USER_ERROR);
}

$meta = stream_get_meta_data($fp);

var_dump($meta);

fclose($fp);
?>

Résultat de l'exemple ci-dessus est similaire à :

array(10) {
  'timed_out' =>
  bool(false)
  'blocked' =>
  bool(true)
  'eof' =>
  bool(false)
  'wrapper_data' =>
  array(13) {
    [0] =>
    string(15) "HTTP/1.1 200 OK"
    [1] =>
    string(11) "Age: 244629"
    [2] =>
    string(29) "Cache-Control: max-age=604800"
    [3] =>
    string(38) "Content-Type: text/html; CHARSET=Windows-1252"
    [4] =>
    string(35) "Date: Sat, 20 Nov 2021 18:17:57 GMT"
    [5] =>
    string(24) "Etag: "3147526947+ident""
    [6] =>
    string(38) "Expires: Sat, 27 Nov 2021 18:17:57 GMT"
    [7] =>
    string(44) "Last-Modified: Thu, 17 Oct 2019 07:18:26 GMT"
    [8] =>
    string(22) "Server: ECS (chb/0286)"
    [9] =>
    string(21) "Vary: Accept-Encoding"
    [10] =>
    string(12) "X-Cache: HIT"
    [11] =>
    string(20) "Content-Length: 1256"
    [12] =>
    string(17) "Connection: close"
  }
  'wrapper_type' =>
  string(4) "http"
  'stream_type' =>
  string(14) "tcp_socket/ssl"
  'mode' =>
  string(1) "r"
  'unread_bytes' =>
  int(1256)
  'seekable' =>
  bool(false)
  'uri' =>
  string(23) "http://www.example.com/"
}

Exemple #2 Exemple de stream_get_meta_data() utilisant stream_socket_client() avec https

<?php
$streamContext = stream_context_create(
[
'ssl' => [
'capture_peer_cert' => true,
'capture_peer_cert_chain' => true,
'disable_compression' => true,
],
]
);

$client = stream_socket_client(
'ssl://www.example.com:443',
$errorNumber,
$errorDescription,
40,
STREAM_CLIENT_CONNECT,
$streamContext
);

$meta = stream_get_meta_data($client);

var_dump($meta);
?>

Résultat de l'exemple ci-dessus est similaire à :

array(8) {
  'crypto' =>
  array(4) {
    'protocol' =>
    string(7) "TLSv1.3"
    'cipher_name' =>
    string(22) "TLS_AES_256_GCM_SHA384"
    'cipher_bits' =>
    int(256)
    'cipher_version' =>
    string(7) "TLSv1.3"
  }
  'timed_out' =>
  bool(false)
  'blocked' =>
  bool(true)
  'eof' =>
  bool(false)
  'stream_type' =>
  string(14) "tcp_socket/ssl"
  'mode' =>
  string(2) "r+"
  'unread_bytes' =>
  int(0)
  'seekable' =>
  bool(false)
}

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, PHP 8)

stream_get_transports — Liste les gestionnaires de transports de sockets disponibles

Description

stream_get_transports(): array

stream_get_transports() retourne un tableau indexé contenant les noms des transports de sockets disponibles pour le système.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

stream_get_wrappers — Liste les gestionnaires de flux

Description

stream_get_wrappers(): array

stream_get_wrappers() lit la liste des gestionnaires de flux disponibles sur le système courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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());
?>

Résultat de l'exemple ci-dessus est 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_isatty »
  • PHP Manual
  • Fonctions sur les flux
  • Vérifie si un flux est local

stream_is_local

(PHP 5 >= 5.2.4, PHP 7, PHP 8)

stream_is_local — Vérifie si un flux est local

Description

stream_is_local(resource|string $stream): bool

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

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"));
?>

Résultat de l'exemple ci-dessus est similaire à :

bool(false)
bool(true)


Vérifie si un flux est un TTY

  • « stream_is_local
  • stream_notification_callback »
  • PHP Manual
  • Fonctions sur les flux
  • Vérifie si un flux est un TTY

stream_isatty

(PHP 7 >= 7.2.0, PHP 8)

stream_isatty — Vérifie si un flux est un TTY

Description

stream_isatty(resource $stream): bool

Détermine si le flux stream réfère à un dispositif de type terminal valide. Ceci est une version plus portable de posix_isatty(), car elle fonctionne aussi sur les systèmes Windows.

Liste de paramètres

stream

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 Exemple avec stream_isatty()

Cette commende peut être utilisé pour déterminé si un flux de sortie / erreur standard est redirigé vers un fichier.

php -r "var_export(stream_isatty(STDERR));"

Résultat de l'exemple ci-dessus est similaire à :

true
php -r "var_export(stream_isatty(STDERR));" 2>output.txt

Résultat de l'exemple ci-dessus est similaire à :

false


Une fonction de rappel pour le paramètre de contexte notification

  • « stream_isatty
  • 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, PHP 8)

stream_notification_callback — Une fonction de rappel pour le paramètre de contexte notification

Description

stream_notification_callback(
int $notification_code,
int $severity,
?string $message,
int $message_code,
int $bytes_transferred,
int $bytes_max
): void

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);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

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, PHP 8)

stream_resolve_include_path — Résout un nom de fichier suivant les règles du chemin d'inclusion

Description

stream_resolve_include_path(string $filename): string|false

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"));
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

stream_select — Surveille la modification d'un ou plusieurs flux

Description

stream_select(
?array &$read,
?array &$write,
?array &$except,
?int $seconds,
?int $microseconds = null
): int|false

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. Les clés originales du tableau sont préservées.

seconds

Les paramètres seconds et microseconds forment le délai d'expiration, seconds spécifie le nombre de secondes tandis que microseconds, 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 seconds et microseconds 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 seconds 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.

microseconds

Voyez la description de seconds.

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).

Historique

Version | Description
8.1.0 | microseconds est désormais nullable.

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: Compabilité Windows

Utiliser la fonction stream_select() sur un pointeur de fichier retourné par proc_open() échouera et retournera false sous Windows.

STDIN fdepuis une console change son statut dés que n'importe quel évenements d'entrées sont disponible, mais lire depuis un flux peut toujours être bloquant.

Voir aussi

  • stream_set_blocking() - Configure le mode bloquant d'un flux


Configure le mode bloquant d'un flux

  • « stream_select
  • stream_set_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, PHP 8)

stream_set_blocking — Configure le mode bloquant d'un flux

Description

stream_set_blocking(resource $stream, bool $enable): bool

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.

enable

Si enable 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 est sans effet pour les fichiers locaux sous Windows. Le mode non-bloquant n'est pas supporté sous Windows.

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_size

(No version information available, might only be in Git)

stream_set_size — Change la taille du segment du flux

Description

stream_set_size(resource $stream, int $size): int

Change la taille du segment du flux.

Liste de paramètres

stream

Le flux en question.

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.

Erreurs / Exceptions

Une ValueError est lancée si size est inférieur à 1 ou plus grand que PHP_INT_MAX.

Historique

Version | Description
8.0.0 | Une ValueError est désormais lancée si size est inférieur à 1 ou supérieur à PHP_INT_MAX. Auparavant, une erreur de niveau E_WARNING était émise et false était retourné.


Configure le buffer de lecture d'un flux

  • « stream_set_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, PHP 8)

stream_set_read_buffer — Configure le buffer de lecture d'un flux

Description

stream_set_read_buffer(resource $stream, int $size): int

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.

size

Le nombre d'octets à mettre en buffer. Si size 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, PHP 8)

stream_set_timeout — Configure la durée d'expiration d'un flux

Description

stream_set_timeout(resource $stream, int $seconds, int $microseconds = 0): bool

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.

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, PHP 8)

stream_set_write_buffer — Configure le buffer d'écriture d'un flux

Description

stream_set_write_buffer(resource $stream, int $size): int

stream_set_write_buffer() configure le buffer d'écriture du flux stream à la taille de size octets.

Liste de paramètres

stream

Le pointeur de fichier.

size

Le nombre d'octets à mettre en buffer. Si size 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, PHP 8)

stream_socket_accept — Accepte une connexion sur un socket créé par stream_socket_server()

Description

stream_socket_accept(resource $socket, ?float $timeout = null, string &$peer_name = null): resource|false

Accepte une connexion sur un socket créé précédemment avec stream_socket_server().

Liste de paramètres

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. Par défaut, default_socket_timeout est utilisé.

peer_name

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.

Historique

Version | Description
8.0.0 | timeout est désormais nullable.

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 à partir de l'emplacement du pointeur sur 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, PHP 8)

stream_socket_client — Ouvre une connexion socket Internet ou Unix

Description

stream_socket_client(
string $address,
int &$error_code = null,
string &$error_message = null,
?float $timeout = null,
int $flags = STREAM_CLIENT_CONNECT,
?resource $context = null
): resource|false

Initie un flux ou une connexion datagramme avec la destination address. 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 address 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

address

L'adresse du socket.

error_code

Contiendra le numéro de l'erreur système si la connexion échoue.

error_message

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(). Par défaut, default_socket_timeout est utilisé.

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 error_code et error_message 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 error_code 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 error_code eterror_message doivent être passés par référence.

Historique

Version | Description
8.0.0 | timeout et context sont désormais nullables.

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 à partir de l'emplacement du pointeur sur 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, PHP 8)

stream_socket_enable_crypto — Active ou non le chiffrement, pour un socket déjà connecté

Description

stream_socket_enable_crypto(
resource $stream,
bool $enable,
?int $crypto_method = null,
?resource $session_stream = null
): int|bool

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_method

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_TLSv1_3_CLIENT (à partir de PHP 7.4.0)
  • 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
  • STREAM_CRYPTO_METHOD_TLSv1_3_SERVER (à partir de PHP 7.4.0)

Si omis, l'option de contexte crypto_method 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
8.0.0 | session_stream est désormais nullable.

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);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

stream_socket_get_name — Lit le nom de la socket locale ou distante

Description

stream_socket_get_name(resource $socket, bool $remote): string|false

stream_socket_get_name() retourne le nom du socket local ou distant pour la connexion socket.

Liste de paramètres

socket

Le socket dont il faut lire le nom.

remote

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, ou false si une erreur survient.

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, PHP 8)

stream_socket_pair — Crée une paire de sockets connectées et indissociables

Description

stream_socket_pair(int $domain, int $type, int $protocol): array|false

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.

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]);
}

?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

stream_socket_recvfrom — Lit des données depuis un socket, connecté ou pas

Description

stream_socket_recvfrom(
resource $socket,
int $length,
int $flags = 0,
?string &$address = null
): string|false

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, ou false si une erreur survient.

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, PHP 8)

stream_socket_sendto — Envoie un message au socket, connecté ou pas

Description

stream_socket_sendto(
resource $socket,
string $data,
int $flags = 0,
string $address = ""
): int|false

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, ou false si une erreur survient.

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, PHP 8)

stream_socket_server — Crée un socket serveur Unix ou Internet

Description

stream_socket_server(
string $address,
int &$error_code = null,
string &$error_message = null,
int $flags = STREAM_SERVER_BIND | STREAM_SERVER_LISTEN,
?resource $context = null
): resource|false

stream_socket_server() crée un flux ou un datagramme sur le socket spécifié address.

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

address

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.

error_code

Si les arguments optionnels error_code et error_message 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 error_code 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 error_code et error_message seront toujours passés par référence.

error_message

Voyez la description de error_code.

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.

Historique

Version | Description
8.0.0 | context est désormais nullable.

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 à partir de l'emplacement du pointeur sur 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, PHP 8)

stream_socket_shutdown — Arrête une connexion full-duplex

Description

stream_socket_shutdown(resource $stream, int $mode): bool

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)

mode

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

?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

stream_supports_lock — Indique si le flux supporte les verrous

Description

stream_supports_lock(resource $stream): bool

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, PHP 8)

stream_wrapper_register — Enregistre un gestionnaire d'URL

Description

stream_wrapper_register(string $protocol, string $class, int $flags = 0): bool

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. Les noms de protocoles valides doivent contenir uniquement des caractères alphanumériques, points (.), plus (+), ou tiret (-).

class

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.

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, PHP 8)

stream_wrapper_restore — Restaure un gestionnaire d'URL supprimé

Description

stream_wrapper_restore(string $protocol): bool

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
  • Swoole »
  • PHP Manual
  • Fonctions sur les flux
  • Supprime un gestionnaire d'URL

stream_wrapper_unregister

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

stream_wrapper_unregister — Supprime un gestionnaire d'URL

Description

stream_wrapper_unregister(string $protocol): bool

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.


Swoole

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Swoole Fonctions
    • swoole_async_dns_lookup — Async and non-blocking hostname to IP lookup
    • swoole_async_read — Read file stream asynchronously
    • swoole_async_readfile — Read a file asynchronously
    • swoole_async_set — Update the async I/O options
    • swoole_async_write — Write data to a file stream asynchronously
    • swoole_async_writefile — Write data to a file asynchronously
    • swoole_clear_error — Clear errors in the socket or on the last error code
    • swoole_client_select — Get the file description which are ready to read/write or error
    • swoole_cpu_num — Get the number of CPU
    • swoole_errno — Get the error code of the latest system call
    • swoole_error_log — Output error messages to the log
    • swoole_event_add — Add new callback functions of a socket into the EventLoop
    • swoole_event_defer — Add callback function to the next event loop
    • swoole_event_del — Remove all event callback functions of a socket
    • swoole_event_exit — Exit the eventloop, only available at the client side
    • swoole_event_set — Update the event callback functions of a socket
    • swoole_event_wait — Start the event loop
    • swoole_event_write — Write data to a socket
    • swoole_get_local_ip — Get the IPv4 IP addresses of each NIC on the machine
    • swoole_last_error — Get the lastest error message
    • swoole_load_module — Load a swoole extension
    • swoole_select — Select the file descriptions which are ready to read/write or error in the eventloop
    • swoole_set_process_name — Set the process name
    • swoole_strerror — Convert the Errno into error messages
    • swoole_timer_after — Trigger a one time callback function in the future
    • swoole_timer_exists — Check if a timer callback function is existed
    • swoole_timer_tick — Trigger a timer tick callback function by time interval
    • swoole_version — Get the version of Swoole
  • Swoole\Async — The Swoole\Async class
    • Swoole\Async::dnsLookup — Async and non-blocking hostname to IP lookup.
    • Swoole\Async::read — Read file stream asynchronously.
    • Swoole\Async::readFile — Read a file asynchronously.
    • Swoole\Async::set — Update the async I/O options.
    • Swoole\Async::write — Write data to a file stream asynchronously.
    • Swoole\Async::writeFile — Description
  • Swoole\Atomic — The Swoole\Atomic class
    • Swoole\Atomic::add — Add a number to the value to the atomic object.
    • Swoole\Atomic::cmpset — Compare and set the value of the atomic object.
    • Swoole\Atomic::__construct — Construct a swoole atomic object.
    • Swoole\Atomic::get — Get the current value of the atomic object.
    • Swoole\Atomic::set — Set a new value to the atomic object.
    • Swoole\Atomic::sub — Subtract a number to the value of the atomic object.
  • Swoole\Buffer — The Swoole\Buffer class
    • Swoole\Buffer::append — Append the string or binary data at the end of the memory buffer and return the new size of memory allocated.
    • Swoole\Buffer::clear — Reset the memory buffer.
    • Swoole\Buffer::__construct — Fixed size memory blocks allocation.
    • Swoole\Buffer::__destruct — Destruct the Swoole memory buffer.
    • Swoole\Buffer::expand — Expand the size of memory buffer.
    • Swoole\Buffer::read — Read data from the memory buffer based on offset and length.
    • Swoole\Buffer::recycle — Release the memory to OS which is not used by the memory buffer.
    • Swoole\Buffer::substr — Read data from the memory buffer based on offset and length. Or remove data from the memory buffer.
    • Swoole\Buffer::__toString — Get the string value of the memory buffer.
    • Swoole\Buffer::write — Write data to the memory buffer. The memory allocated for the buffer will not be changed.
  • Swoole\Channel — The Swoole\Channel class
    • Swoole\Channel::__construct — Construct a Swoole Channel
    • Swoole\Channel::__destruct — Destruct a Swoole channel.
    • Swoole\Channel::pop — Read and pop data from swoole channel.
    • Swoole\Channel::push — Write and push data into Swoole channel.
    • Swoole\Channel::stats — Get stats of swoole channel.
  • Swoole\Client — The Swoole\Client class
    • Swoole\Client::close — Close the connection established.
    • Swoole\Client::connect — Connect to the remote TCP or UDP port.
    • Swoole\Client::__construct — Create Swoole sync or async TCP/UDP client, with or without SSL.
    • Swoole\Client::__destruct — Destruct the Swoole client.
    • Swoole\Client::getpeername — Get the remote socket name of the connection.
    • Swoole\Client::getsockname — Get the local socket name of the connection.
    • Swoole\Client::isConnected — Check if the connection is established.
    • Swoole\Client::on — Add callback functions triggered by events.
    • Swoole\Client::pause — Pause receiving data.
    • Swoole\Client::pipe — Redirect the data to another file descriptor.
    • Swoole\Client::recv — Receive data from the remote socket.
    • Swoole\Client::resume — Resume receiving data.
    • Swoole\Client::send — Send data to the remote TCP socket.
    • Swoole\Client::sendfile — Send file to the remote TCP socket.
    • Swoole\Client::sendto — Send data to the remote UDP address.
    • Swoole\Client::set — Set the Swoole client parameters before the connection is established.
    • Swoole\Client::sleep — Remove the TCP client from system event loop.
    • Swoole\Client::wakeup — Add the TCP client back into the system event loop.
  • Swoole\Connection\Iterator — The Swoole\Connection\Iterator class
    • Swoole\Connection\Iterator::count — Count connections.
    • Swoole\Connection\Iterator::current — Return current connection entry.
    • Swoole\Connection\Iterator::key — Return key of the current connection.
    • Swoole\Connection\Iterator::next — Move to the next connection.
    • Swoole\Connection\Iterator::offsetExists — Check if offet exists.
    • Swoole\Connection\Iterator::offsetGet — Offset to retrieve.
    • Swoole\Connection\Iterator::offsetSet — Assign a Connection to the specified offset.
    • Swoole\Connection\Iterator::offsetUnset — Unset an offset.
    • Swoole\Connection\Iterator::rewind — Rewinds iterator
    • Swoole\Connection\Iterator::valid — Check if current position is valid.
  • Swoole\Coroutine — The Swoole\Coroutine class
    • Swoole\Coroutine::call_user_func_array — Call a callback with an array of parameters
    • Swoole\Coroutine::call_user_func — Call a callback given by the first parameter
    • Swoole\Coroutine::cli_wait — Description
    • Swoole\Coroutine::create — Description
    • Swoole\Coroutine\Client::close — Description
    • Swoole\Coroutine\Client::connect — Description
    • Swoole\Coroutine\Client::__construct — Description
    • Swoole\Coroutine\Client::__destruct — Description
    • Swoole\Coroutine\Client::getpeername — Description
    • Swoole\Coroutine\Client::getsockname — Description
    • Swoole\Coroutine\Client::isConnected — Description
    • Swoole\Coroutine\Client::recv — Description
    • Swoole\Coroutine\Client::send — Description
    • Swoole\Coroutine\Client::sendfile — Description
    • Swoole\Coroutine\Client::sendto — Description
    • Swoole\Coroutine\Client::set — Description
    • Swoole\Coroutine\Http\Client::addFile — Description
    • Swoole\Coroutine\Http\Client::close — Description
    • Swoole\Coroutine\Http\Client::__construct — Description
    • Swoole\Coroutine\Http\Client::__destruct — Description
    • Swoole\Coroutine\Http\Client::execute — Description
    • Swoole\Coroutine\Http\Client::get — Description
    • Swoole\Coroutine\Http\Client::getDefer — Description
    • Swoole\Coroutine\Http\Client::isConnected — Description
    • Swoole\Coroutine\Http\Client::post — Description
    • Swoole\Coroutine\Http\Client::recv — Description
    • Swoole\Coroutine\Http\Client::set — Description
    • Swoole\Coroutine\Http\Client::setCookies — Description
    • Swoole\Coroutine\Http\Client::setData — Description
    • Swoole\Coroutine\Http\Client::setDefer — Description
    • Swoole\Coroutine\Http\Client::setHeaders — Description
    • Swoole\Coroutine\Http\Client::setMethod — Description
    • Swoole\Coroutine\MySQL::close — Description
    • Swoole\Coroutine\MySQL::connect — Description
    • Swoole\Coroutine\MySQL::__construct — Description
    • Swoole\Coroutine\MySQL::__destruct — Description
    • Swoole\Coroutine\MySQL::getDefer — Description
    • Swoole\Coroutine\MySQL::query — Description
    • Swoole\Coroutine\MySQL::recv — Description
    • Swoole\Coroutine\MySQL::setDefer — Description
    • Swoole\Coroutine::getuid — Description
    • Swoole\Coroutine::resume — Description
    • Swoole\Coroutine::suspend — Description
  • Swoole\Event — The Swoole\Event class
    • Swoole\Event::add — Add new callback functions of a socket into the EventLoop.
    • Swoole\Event::defer — Add a callback function to the next event loop.
    • Swoole\Event::del — Remove all event callback functions of a socket.
    • Swoole\Event::exit — Exit the eventloop, only available at client side.
    • Swoole\Event::set — Update the event callback functions of a socket.
    • Swoole\Event::wait — Description
    • Swoole\Event::write — Write data to the socket.
  • Swoole\Exception — The Swoole\Exception class
  • Swoole\Http\Client — The Swoole\Http\Client class
    • Swoole\Http\Client::addFile — Add a file to the post form.
    • Swoole\Http\Client::close — Close the http connection.
    • Swoole\Http\Client::__construct — Construct the async HTTP client.
    • Swoole\Http\Client::__destruct — Destruct the HTTP client.
    • Swoole\Http\Client::download — Download a file from the remote server.
    • Swoole\Http\Client::execute — Send the HTTP request after setting the parameters.
    • Swoole\Http\Client::get — Send GET http request to the remote server.
    • Swoole\Http\Client::isConnected — Check if the HTTP connection is connected.
    • Swoole\Http\Client::on — Register callback function by event name.
    • Swoole\Http\Client::post — Send POST http request to the remote server.
    • Swoole\Http\Client::push — Push data to websocket client.
    • Swoole\Http\Client::set — Update the HTTP client parameters.
    • Swoole\Http\Client::setCookies — Set the http request cookies.
    • Swoole\Http\Client::setData — Set the HTTP request body data.
    • Swoole\Http\Client::setHeaders — Set the HTTP request headers.
    • Swoole\Http\Client::setMethod — Set the HTTP request method.
    • Swoole\Http\Client::upgrade — Upgrade to websocket protocol.
  • Swoole\Http\Request — The Swoole\Http\Request class
    • Swoole\Http\Request::__destruct — Destruct the HTTP request.
    • Swoole\Http\Request::rawcontent — Get the raw HTTP POST body.
  • Swoole\Http\Response — The Swoole\Http\Response class
    • Swoole\Http\Response::cookie — Set the cookies of the HTTP response.
    • Swoole\Http\Response::__destruct — Destruct the HTTP response.
    • Swoole\Http\Response::end — Send data for the HTTP request and finish the response.
    • Swoole\Http\Response::gzip — Enable the gzip of response content.
    • Swoole\Http\Response::header — Set the HTTP response headers.
    • Swoole\Http\Response::initHeader — Init the HTTP response header.
    • Swoole\Http\Response::rawcookie — Set the raw cookies to the HTTP response.
    • Swoole\Http\Response::sendfile — Send file through the HTTP response.
    • Swoole\Http\Response::status — Set the status code of the HTTP response.
    • Swoole\Http\Response::write — Append HTTP body content to the HTTP response.
  • Swoole\Http\Server — The Swoole\Http\Server class
    • Swoole\Http\Server::on — Bind callback function to HTTP server by event name.
    • Swoole\Http\Server::start — Start the swoole http server.
  • Swoole\Lock — The Swoole\Lock class
    • Swoole\Lock::__construct — Construct a memory lock.
    • Swoole\Lock::__destruct — Destory a Swoole memory lock.
    • Swoole\Lock::lock_read — Lock a read-write lock for reading.
    • Swoole\Lock::lock — Try to acquire the lock. It will block if the lock is not available.
    • Swoole\Lock::trylock_read — Try to lock a read-write lock for reading and return straight away even the lock is not available.
    • Swoole\Lock::trylock — Try to acquire the lock and return straight away even the lock is not available.
    • Swoole\Lock::unlock — Release the lock.
  • Swoole\Mmap — The Swoole\Mmap class
    • Swoole\Mmap::open — Map a file into memory and return the stream resource which can be used by PHP stream operations.
  • Swoole\MySQL — The Swoole\MySQL class
    • Swoole\MySQL::close — Close the async MySQL connection.
    • Swoole\MySQL::connect — Connect to the remote MySQL server.
    • Swoole\MySQL::__construct — Construct an async MySQL client.
    • Swoole\MySQL::__destruct — Destory the async MySQL client.
    • Swoole\MySQL::getBuffer — Description
    • Swoole\MySQL::on — Register callback function based on event name.
    • Swoole\MySQL::query — Run the SQL query.
  • Swoole\MySQL\Exception — The Swoole\MySQL\Exception class
  • Swoole\Process — The Swoole\Process class
    • Swoole\Process::alarm — High precision timer which triggers signal with fixed interval.
    • Swoole\Process::close — Close the pipe to the child process.
    • Swoole\Process::__construct — Construct a process.
    • Swoole\Process::daemon — Change the process to be a daemon process.
    • Swoole\Process::__destruct — Destroy the process.
    • Swoole\Process::exec — Execute system commands.
    • Swoole\Process::exit — Stop the child processes.
    • Swoole\Process::freeQueue — Destroy the message queue created by swoole_process::useQueue.
    • Swoole\Process::kill — Send signal to the child process.
    • Swoole\Process::name — Set name of the process.
    • Swoole\Process::pop — Read and pop data from the message queue.
    • Swoole\Process::push — Write and push data into the message queue.
    • Swoole\Process::read — Read data sending to the process.
    • Swoole\Process::signal — Send signal to the child processes.
    • Swoole\Process::start — Start the process.
    • Swoole\Process::statQueue — Get the stats of the message queue used as the communication method between processes.
    • Swoole\Process::useQueue — Create a message queue as the communication method between the parent process and child processes.
    • Swoole\Process::wait — Wait for the events of child processes.
    • Swoole\Process::write — Write data into the pipe and communicate with the parent process or child processes.
  • Swoole\Redis\Server — The Swoole\Redis\Server class
    • Swoole\Redis\Server::format — Description
    • Swoole\Redis\Server::setHandler — Description
    • Swoole\Redis\Server::start — Description
  • Swoole\Serialize — The Swoole\Serialize class
    • Swoole\Serialize::pack — Serialize the data.
    • Swoole\Serialize::unpack — Unserialize the data.
  • Swoole\Server — The Swoole\Server class
    • Swoole\Server::addlistener — Add a new listener to the server.
    • Swoole\Server::addProcess — Add a user defined swoole_process to the server.
    • Swoole\Server::after — Trigger a callback function after a period of time.
    • Swoole\Server::bind — Bind the connection to a user defined user ID.
    • Swoole\Server::clearTimer — Stop and destroy a timer.
    • Swoole\Server::close — Close a connection to the client.
    • Swoole\Server::confirm — Check status of the connection.
    • Swoole\Server::connection_info — Get the connection info by file description.
    • Swoole\Server::connection_list — Get all of the established connections.
    • Swoole\Server::__construct — Construct a Swoole server.
    • Swoole\Server::defer — Delay execution of the callback function at the end of current EventLoop.
    • Swoole\Server\Port::__construct — Construct a server port
    • Swoole\Server\Port::__destruct — Destory server port
    • Swoole\Server\Port::on — Register callback functions by event.
    • Swoole\Server\Port::set — Set protocol of the server port.
    • Swoole\Server::exist — Check if the connection is existed.
    • Swoole\Server::finish — Used in task process for sending result to the worker process when the task is finished.
    • Swoole\Server::getClientInfo — Get the connection info by file description.
    • Swoole\Server::getClientList — Get all of the established connections.
    • Swoole\Server::getLastError — Get the error code of the most recent error.
    • Swoole\Server::heartbeat — Check all the connections on the server.
    • Swoole\Server::listen — Listen on the given IP and port, socket type.
    • Swoole\Server::on — Register a callback function by event name.
    • Swoole\Server::pause — Stop receiving data from the connection.
    • Swoole\Server::protect — Set the connection to be protected mode.
    • Swoole\Server::reload — Restart all the worker process.
    • Swoole\Server::resume — Start receving data from the connection.
    • Swoole\Server::send — Send data to the client.
    • Swoole\Server::sendfile — Send file to the connection.
    • Swoole\Server::sendMessage — Send message to worker processes by ID.
    • Swoole\Server::sendto — Send data to the remote UDP address.
    • Swoole\Server::sendwait — Send data to the remote socket in the blocking way.
    • Swoole\Server::set — Set the runtime settings of the swoole server.
    • Swoole\Server::shutdown — Shutdown the master server process, this function can be called in worker processes.
    • Swoole\Server::start — Start the Swoole server.
    • Swoole\Server::stats — Get the stats of the Swoole server.
    • Swoole\Server::stop — Stop the Swoole server.
    • Swoole\Server::task — Send data to the task worker processes.
    • Swoole\Server::taskwait — Send data to the task worker processes in blocking way.
    • Swoole\Server::taskWaitMulti — Execute multiple tasks concurrently.
    • Swoole\Server::tick — Repeats a given function at every given time-interval.
  • Swoole\Table — The Swoole\Table class
    • Swoole\Table::column — Set the data type and size of the columns.
    • Swoole\Table::__construct — Construct a Swoole memory table with fixed size.
    • Swoole\Table::count — Count the rows in the table, or count all the elements in the table if $mode = 1.
    • Swoole\Table::create — Create the swoole memory table.
    • Swoole\Table::current — Get the current row.
    • Swoole\Table::decr — Decrement the value in the Swoole table by $row_key and $column_key.
    • Swoole\Table::del — Delete a row in the Swoole table by $row_key.
    • Swoole\Table::destroy — Destroy the Swoole table.
    • Swoole\Table::exist — Check if a row is existed by $row_key.
    • Swoole\Table::get — Get the value in the Swoole table by $row_key and $column_key.
    • Swoole\Table::incr — Increment the value by $row_key and $column_key.
    • Swoole\Table::key — Get the key of current row.
    • Swoole\Table::next — Iterator the next row.
    • Swoole\Table::rewind — Rewind the iterator.
    • Swoole\Table::set — Update a row of the table by $row_key.
    • Swoole\Table::valid — Check if the current row is valid.
  • Swoole\Timer — The Swoole\Timer class
    • Swoole\Timer::after — Trigger a callback function after a period of time.
    • Swoole\Timer::clear — Delete a timer by timer ID.
    • Swoole\Timer::exists — Check if a timer is existed.
    • Swoole\Timer::tick — Repeats a given function at every given time-interval.
  • Swoole\WebSocket\Frame — The Swoole\WebSocket\Frame class
  • Swoole\WebSocket\Server — The Swoole\WebSocket\Server class
    • Swoole\WebSocket\Server::exist — Check if the file descriptor exists.
    • Swoole\WebSocket\Server::on — Register event callback function
    • Swoole\WebSocket\Server::pack — Get a pack of binary data to send in a single frame.
    • Swoole\WebSocket\Server::push — Push data to the remote client.
    • Swoole\WebSocket\Server::unpack — Unpack the binary data received from the client.


Introduction

Swoole is a high-performance networking framework using an event-driven, asynchronous, non-blocking I/O model. It can be used to develop high-performance, scalable, concurrent TCP, UDP, Unix socket, HTTP, Websocket services. To get started, please check the » Swoole Docs.

Note: Cette extension n'est pas disponible sur les plates-formes Windows.


Installation

Use --with-swoole[=DIR] when compiling 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 : » https://pecl.php.net/package/swoole


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Swoole Options de configuration
Nom | Défaut | Modifiable | Historique
swoole.aio_thread_num | 2 | INI_ALL |
swoole.display_errors | On | INI_ALL |
swoole.fast_serialize | Off | INI_ALL |
swoole.unixsock_buffer_size | 8388608 | INI_ALL |
swoole.use_namespace | On | INI_SYSTEM |
swoole.enable_coroutine | On | INI_ALL | Available as of swoole 4.0.0
swoole.use_shortname | On | INI_ALL | Available as of swoole 4.0.0
swoole.enable_preemptive_scheduler | Off | INI_ALL | Available as of swoole 4.4.0
swoole.enable_library | On | INI_ALL | Available as of swoole 4.0.0

Voici un éclaircissement sur l'utilisation des directives de configuration.

swoole.aio_thread_num int

POSIX asynchronous I/O thread number

swoole.display_errors string

This determines whether Swoole errors should be printed to the screen.

swoole.fast_serialize string

Whether to enable Swoole fast_serialize.

swoole.unixsock_buffer_size int

Buffer size of Unix socket.

swoole.use_namespace string

Whether to use PHP namespaces

swoole.enable_coroutine string

Whether to enable coroutine

swoole.use_shortname string

Whether to enable short aliases

swoole.enable_preemptive_scheduler string

Whether to enable preemptive scheduler

swoole.enable_library string

Whether to enable library


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.

SWOOLE_BASE (int)
SWOOLE_THREAD (int)
SWOOLE_PROCESS (int)
SWOOLE_IPC_UNSOCK (int)
SWOOLE_IPC_MSGQUEUE (int)
SWOOLE_IPC_PREEMPTIVE (int)
SWOOLE_SOCK_TCP (int)
SWOOLE_SOCK_TCP6 (int)
SWOOLE_SOCK_UDP (int)
SWOOLE_SOCK_UDP6 (int)
SWOOLE_SOCK_UNIX_DGRAM (int)
SWOOLE_SOCK_UNIX_STREAM (int)
SWOOLE_TCP (int)
SWOOLE_TCP6 (int)
SWOOLE_UDP (int)
SWOOLE_UDP6 (int)
SWOOLE_UNIX_DGRAM (int)
SWOOLE_UNIX_STREAM (int)
SWOOLE_SOCK_SYNC (int)
SWOOLE_SOCK_ASYNC (int)
SWOOLE_SYNC (int)
SWOOLE_ASYNC (int)
SWOOLE_KEEP (int)
SWOOLE_EVENT_READ (int)
SWOOLE_EVENT_WRITE (int)
SWOOLE_VERSION (string)
SWOOLE_AIO_BASE (int)
SWOOLE_AIO_LINUX (int)
SWOOLE_FILELOCK (int)
SWOOLE_MUTEX (int)
SWOOLE_SEM (int)
SWOOLE_RWLOCK (int)
WEBSOCKET_OPCODE_TEXT (int)
WEBSOCKET_OPCODE_BINARY (int)
WEBSOCKET_OPCODE_PING (int)
WEBSOCKET_STATUS_CONNECTION (int)
WEBSOCKET_STATUS_HANDSHAKE (int)
WEBSOCKET_STATUS_FRAME (int)
WEBSOCKET_STATUS_ACTIVE (int)
SWOOLE_FAST_PACK (int)
SWOOLE_LOG_DEBUG (int)
Debug log. Available as of swoole 2.1.2.
SWOOLE_LOG_TRACE (int)
Trace log. Available as of swoole 2.1.2.
SWOOLE_LOG_INFO (int)
Info log. Available as of swoole 2.1.2.
SWOOLE_LOG_NOTICE (int)
Notice log. Available as of swoole 2.1.2.
SWOOLE_LOG_WARNING (int)
Warning log. Available as of swoole 2.1.2.
SWOOLE_LOG_ERROR (int)
Error log. Available as of swoole 2.1.2.
SWOOLE_LOG_NONE (int)
None log. Available as of swoole 4.3.2.


Swoole Fonctions

Sommaire

  • swoole_async_dns_lookup — Async and non-blocking hostname to IP lookup
  • swoole_async_read — Read file stream asynchronously
  • swoole_async_readfile — Read a file asynchronously
  • swoole_async_set — Update the async I/O options
  • swoole_async_write — Write data to a file stream asynchronously
  • swoole_async_writefile — Write data to a file asynchronously
  • swoole_clear_error — Clear errors in the socket or on the last error code
  • swoole_client_select — Get the file description which are ready to read/write or error
  • swoole_cpu_num — Get the number of CPU
  • swoole_errno — Get the error code of the latest system call
  • swoole_error_log — Output error messages to the log
  • swoole_event_add — Add new callback functions of a socket into the EventLoop
  • swoole_event_defer — Add callback function to the next event loop
  • swoole_event_del — Remove all event callback functions of a socket
  • swoole_event_exit — Exit the eventloop, only available at the client side
  • swoole_event_set — Update the event callback functions of a socket
  • swoole_event_wait — Start the event loop
  • swoole_event_write — Write data to a socket
  • swoole_get_local_ip — Get the IPv4 IP addresses of each NIC on the machine
  • swoole_last_error — Get the lastest error message
  • swoole_load_module — Load a swoole extension
  • swoole_select — Select the file descriptions which are ready to read/write or error in the eventloop
  • swoole_set_process_name — Set the process name
  • swoole_strerror — Convert the Errno into error messages
  • swoole_timer_after — Trigger a one time callback function in the future
  • swoole_timer_exists — Check if a timer callback function is existed
  • swoole_timer_tick — Trigger a timer tick callback function by time interval
  • swoole_version — Get the version of Swoole


Async and non-blocking hostname to IP lookup

  • « Swoole Fonctions
  • swoole_async_read »
  • PHP Manual
  • Swoole Fonctions
  • Async and non-blocking hostname to IP lookup

swoole_async_dns_lookup

(PECL swoole >= 1.9.0)

swoole_async_dns_lookup — Async and non-blocking hostname to IP lookup

Description

swoole_async_dns_lookup(string $hostname, callable $callback): bool

Liste de paramètres

hostname

The host name.

callback
callback(string $hostname, string $ip): mixed
hostname

The host name.

IP

The IP address.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.


Read file stream asynchronously

  • « swoole_async_dns_lookup
  • swoole_async_readfile »
  • PHP Manual
  • Swoole Fonctions
  • Read file stream asynchronously

swoole_async_read

(PECL swoole >= 1.9.0)

swoole_async_read — Read file stream asynchronously

Description

swoole_async_read(
string $filename,
callable $callback,
int $chunk_size = 65536,
int $offset = 0
): bool

Liste de paramètres

filename

The filename of the file being read.

callback
callback(string $filename, string $content): mixed
filename

The name of the file.

content

The content readed from the file stream.

chunk_size

The chunk length.

offset

The offset.

Valeurs de retour

Whether the read is succeed.


Read a file asynchronously

  • « swoole_async_read
  • swoole_async_set »
  • PHP Manual
  • Swoole Fonctions
  • Read a file asynchronously

swoole_async_readfile

(PECL swoole >= 1.9.0)

swoole_async_readfile — Read a file asynchronously

Description

swoole_async_readfile(string $filename, callable $callback): bool

Liste de paramètres

filename

The filename of the file being read.

callback
callback(string $filename, string $content): mixed
filename

The name of the file.

content

The content read from the file.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.


Update the async I/O options

  • « swoole_async_readfile
  • swoole_async_write »
  • PHP Manual
  • Swoole Fonctions
  • Update the async I/O options

swoole_async_set

(PECL swoole >= 1.9.0)

swoole_async_set — Update the async I/O options

Description

swoole_async_set(array $settings): void

Liste de paramètres

settings

Valeurs de retour

Aucune valeur n'est retournée.


Write data to a file stream asynchronously

  • « swoole_async_set
  • swoole_async_writefile »
  • PHP Manual
  • Swoole Fonctions
  • Write data to a file stream asynchronously

swoole_async_write

(PECL swoole >= 1.9.0)

swoole_async_write — Write data to a file stream asynchronously

Description

swoole_async_write(
string $filename,
string $content,
int $offset = ?,
callable $callback = ?
): bool

Liste de paramètres

filename

The filename being written.

content

The content writing to the file.

offset

The offset.

callback

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.


Write data to a file asynchronously

  • « swoole_async_write
  • swoole_clear_error »
  • PHP Manual
  • Swoole Fonctions
  • Write data to a file asynchronously

swoole_async_writefile

(PECL swoole >= 1.9.0)

swoole_async_writefile — Write data to a file asynchronously

Description

swoole_async_writefile(
string $filename,
string $content,
callable $callback = ?,
int $flags = 0
): bool

Liste de paramètres

filename

The filename being written.

content

The content writing to the file.

callback

flags

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.


Clear errors in the socket or on the last error code

  • « swoole_async_writefile
  • swoole_client_select »
  • PHP Manual
  • Swoole Fonctions
  • Clear errors in the socket or on the last error code

swoole_clear_error

(PECL swoole >= 4.6.0)

swoole_clear_error — Clear errors in the socket or on the last error code

Description

swoole_clear_error(): void

Clear errors in the socket or on the last error code.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Get the file description which are ready to read/write or error

  • « swoole_clear_error
  • swoole_cpu_num »
  • PHP Manual
  • Swoole Fonctions
  • Get the file description which are ready to read/write or error

swoole_client_select

(PECL swoole >= 1.9.0)

swoole_client_select — Get the file description which are ready to read/write or error

Description

swoole_client_select(
array &$read_array,
array &$write_array,
array &$error_array,
float $timeout = 0.5
): int

Liste de paramètres

read_array

write_array

error_array

timeout

Valeurs de retour


Get the number of CPU

  • « swoole_client_select
  • swoole_errno »
  • PHP Manual
  • Swoole Fonctions
  • Get the number of CPU

swoole_cpu_num

(PECL swoole >= 1.9.0)

swoole_cpu_num — Get the number of CPU

Description

swoole_cpu_num(): int

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The number of CPU.


Get the error code of the latest system call

  • « swoole_cpu_num
  • swoole_error_log »
  • PHP Manual
  • Swoole Fonctions
  • Get the error code of the latest system call

swoole_errno

(PECL swoole >= 1.9.0)

swoole_errno — Get the error code of the latest system call

Description

swoole_errno(): int

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Output error messages to the log

  • « swoole_errno
  • swoole_event_add »
  • PHP Manual
  • Swoole Fonctions
  • Output error messages to the log

swoole_error_log

(PECL swoole >= 4.5.8)

swoole_error_log — Output error messages to the log

Description

swoole_error_log(int $level, string $msg): void

Output error messages to the log.

Liste de paramètres

level

Log Level, constants can be used: SWOOLE_LOG_DEBUG, SWOOLE_LOG_TRACE, SWOOLE_LOG_INFO, SWOOLE_LOG_NOTICE, SWOOLE_LOG_WARNING, SWOOLE_LOG_ERROR, SWOOLE_LOG_NONE

msg

Message content to be written to the log.

Valeurs de retour

Aucune valeur n'est retournée.


Add new callback functions of a socket into the EventLoop

  • « swoole_error_log
  • swoole_event_defer »
  • PHP Manual
  • Swoole Fonctions
  • Add new callback functions of a socket into the EventLoop

swoole_event_add

(PECL swoole >= 1.9.0)

swoole_event_add — Add new callback functions of a socket into the EventLoop

Description

swoole_event_add(
int $fd,
callable $read_callback = ?,
callable $write_callback = ?,
int $events = 0
): int

Liste de paramètres

fd

read_callback

write_callback

events

Valeurs de retour


Add callback function to the next event loop

  • « swoole_event_add
  • swoole_event_del »
  • PHP Manual
  • Swoole Fonctions
  • Add callback function to the next event loop

swoole_event_defer

(PECL swoole >= 1.9.0)

swoole_event_defer — Add callback function to the next event loop

Description

swoole_event_defer(callable $callback): bool

Liste de paramètres

callback

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.


Remove all event callback functions of a socket

  • « swoole_event_defer
  • swoole_event_exit »
  • PHP Manual
  • Swoole Fonctions
  • Remove all event callback functions of a socket

swoole_event_del

(PECL swoole >= 1.9.0)

swoole_event_del — Remove all event callback functions of a socket

Description

swoole_event_del(int $fd): bool

Liste de paramètres

fd

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.


Exit the eventloop, only available at the client side

  • « swoole_event_del
  • swoole_event_set »
  • PHP Manual
  • Swoole Fonctions
  • Exit the eventloop, only available at the client side

swoole_event_exit

(PECL swoole >= 1.9.0)

swoole_event_exit — Exit the eventloop, only available at the client side

Description

swoole_event_exit(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Update the event callback functions of a socket

  • « swoole_event_exit
  • swoole_event_wait »
  • PHP Manual
  • Swoole Fonctions
  • Update the event callback functions of a socket

swoole_event_set

(PECL swoole >= 1.9.0)

swoole_event_set — Update the event callback functions of a socket

Description

swoole_event_set(
int $fd,
callable $read_callback = ?,
callable $write_callback = ?,
int $events = 0
): bool

Liste de paramètres

fd

read_callback

write_callback

events

Valeurs de retour


Start the event loop

  • « swoole_event_set
  • swoole_event_write »
  • PHP Manual
  • Swoole Fonctions
  • Start the event loop

swoole_event_wait

(PECL swoole >= 1.9.0)

swoole_event_wait — Start the event loop

Description

swoole_event_wait(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Write data to a socket

  • « swoole_event_wait
  • swoole_get_local_ip »
  • PHP Manual
  • Swoole Fonctions
  • Write data to a socket

swoole_event_write

(PECL swoole >= 1.9.0)

swoole_event_write — Write data to a socket

Description

swoole_event_write(int $fd, string $data): bool

Liste de paramètres

fd

data

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.


Get the IPv4 IP addresses of each NIC on the machine

  • « swoole_event_write
  • swoole_last_error »
  • PHP Manual
  • Swoole Fonctions
  • Get the IPv4 IP addresses of each NIC on the machine

swoole_get_local_ip

(PECL swoole >= 1.9.0)

swoole_get_local_ip — Get the IPv4 IP addresses of each NIC on the machine

Description

swoole_get_local_ip(): array

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Get the lastest error message

  • « swoole_get_local_ip
  • swoole_load_module »
  • PHP Manual
  • Swoole Fonctions
  • Get the lastest error message

swoole_last_error

(PECL swoole >= 1.9.0)

swoole_last_error — Get the lastest error message

Description

swoole_last_error(): int

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Load a swoole extension

  • « swoole_last_error
  • swoole_select »
  • PHP Manual
  • Swoole Fonctions
  • Load a swoole extension

swoole_load_module

(PECL swoole >= 1.9.0)

swoole_load_module — Load a swoole extension

Description

swoole_load_module(string $filename): mixed

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Select the file descriptions which are ready to read/write or error in the eventloop

  • « swoole_load_module
  • swoole_set_process_name »
  • PHP Manual
  • Swoole Fonctions
  • Select the file descriptions which are ready to read/write or error in the eventloop

swoole_select

(PECL swoole >= 1.9.0)

swoole_select — Select the file descriptions which are ready to read/write or error in the eventloop

Description

swoole_select(
array &$read_array,
array &$write_array,
array &$error_array,
float $timeout = ?
): int

Liste de paramètres

read_array

write_array

error_array

timeout

Valeurs de retour


Set the process name

  • « swoole_select
  • swoole_strerror »
  • PHP Manual
  • Swoole Fonctions
  • Set the process name

swoole_set_process_name

(PECL swoole >= 1.9.0)

swoole_set_process_name — Set the process name

Description

swoole_set_process_name(string $process_name, int $size = 128): void

Liste de paramètres

process_name

Valeurs de retour


Convert the Errno into error messages

  • « swoole_set_process_name
  • swoole_timer_after »
  • PHP Manual
  • Swoole Fonctions
  • Convert the Errno into error messages

swoole_strerror

(PECL swoole >= 1.9.0)

swoole_strerror — Convert the Errno into error messages

Description

swoole_strerror(int $errno, int $error_type = 0): string

Liste de paramètres

errno

Valeurs de retour


Trigger a one time callback function in the future

  • « swoole_strerror
  • swoole_timer_exists »
  • PHP Manual
  • Swoole Fonctions
  • Trigger a one time callback function in the future

swoole_timer_after

(PECL swoole >= 1.9.0)

swoole_timer_after — Trigger a one time callback function in the future

Description

swoole_timer_after(int $ms, callable $callback, mixed $param = ?): int

Liste de paramètres

ms

callback

param

Valeurs de retour


Check if a timer callback function is existed

  • « swoole_timer_after
  • swoole_timer_tick »
  • PHP Manual
  • Swoole Fonctions
  • Check if a timer callback function is existed

swoole_timer_exists

(PECL swoole >= 1.9.0)

swoole_timer_exists — Check if a timer callback function is existed

Description

swoole_timer_exists(int $timer_id): bool

Liste de paramètres

timer_id

Valeurs de retour


Trigger a timer tick callback function by time interval

  • « swoole_timer_exists
  • swoole_version »
  • PHP Manual
  • Swoole Fonctions
  • Trigger a timer tick callback function by time interval

swoole_timer_tick

(PECL swoole >= 1.9.0)

swoole_timer_tick — Trigger a timer tick callback function by time interval

Description

swoole_timer_tick(int $ms, callable $callback, mixed $param = ?): int

Liste de paramètres

ms

callback

Valeurs de retour


Get the version of Swoole

  • « swoole_timer_tick
  • Swoole\Async »
  • PHP Manual
  • Swoole Fonctions
  • Get the version of Swoole

swoole_version

(PECL swoole >= 1.9.0)

swoole_version — Get the version of Swoole

Description

swoole_version(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The version of Swoole.


The Swoole\Async class

(PECL swoole >= 1.9.0)

Introduction

Synopsis de la classe

class Swoole\Async {
/* Méthodes */
public static dnsLookup(string $hostname, callable $callback): void
public static read(
string $filename,
callable $callback,
int $chunk_size = ?,
int $offset = ?
): bool
public static readFile(string $filename, callable $callback): void
public static set(array $settings): void
public static write(
string $filename,
string $content,
int $offset = ?,
callable $callback = ?
): void
public static writeFile(
string $filename,
string $content,
callable $callback = ?,
string $flags = ?
): void
}

Sommaire

  • Swoole\Async::dnsLookup — Async and non-blocking hostname to IP lookup.
  • Swoole\Async::read — Read file stream asynchronously.
  • Swoole\Async::readFile — Read a file asynchronously.
  • Swoole\Async::set — Update the async I/O options.
  • Swoole\Async::write — Write data to a file stream asynchronously.
  • Swoole\Async::writeFile — Description


Async and non-blocking hostname to IP lookup.

  • « Swoole\Async
  • Swoole\Async::read »
  • PHP Manual
  • Swoole\Async
  • Async and non-blocking hostname to IP lookup.

Swoole\Async::dnsLookup

(PECL swoole >= 1.9.0)

Swoole\Async::dnsLookup — Async and non-blocking hostname to IP lookup.

Description

public static Swoole\Async::dnsLookup(string $hostname, callable $callback): void

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

hostname

The host name.

callback
callback(string $hostname, string $ip): mixed
hostname

The host name.

IP

The IP address.


Read file stream asynchronously.

  • « Swoole\Async::dnsLookup
  • Swoole\Async::readFile »
  • PHP Manual
  • Swoole\Async
  • Read file stream asynchronously.

Swoole\Async::read

(PECL swoole >= 1.9.0)

Swoole\Async::read — Read file stream asynchronously.

Description

public static Swoole\Async::read(
string $filename,
callable $callback,
int $chunk_size = ?,
int $offset = ?
): bool

Liste de paramètres

filename

The name of the file.

callback
callback(string $filename, string $content): mixed
filename

The name of the file.

content

The content readed from the file stream.

chunk_size

The chunk length.

offset

The offset.

Valeurs de retour

Whether the read is succeed.


Read a file asynchronously.

  • « Swoole\Async::read
  • Swoole\Async::set »
  • PHP Manual
  • Swoole\Async
  • Read a file asynchronously.

Swoole\Async::readFile

(PECL swoole >= 1.9.0)

Swoole\Async::readFile — Read a file asynchronously.

Description

public static Swoole\Async::readFile(string $filename, callable $callback): void

Liste de paramètres

filename

The filename of the file being read.

callback
callback(string $filename, string $content): mixed
filename

The name of the file.

content

The content readed from the file.


Update the async I/O options.

  • « Swoole\Async::readFile
  • Swoole\Async::write »
  • PHP Manual
  • Swoole\Async
  • Update the async I/O options.

Swoole\Async::set

(PECL swoole >= 1.9.0)

Swoole\Async::set — Update the async I/O options.

Description

public static Swoole\Async::set(array $settings): void

Liste de paramètres

settings


Write data to a file stream asynchronously.

  • « Swoole\Async::set
  • Swoole\Async::writeFile »
  • PHP Manual
  • Swoole\Async
  • Write data to a file stream asynchronously.

Swoole\Async::write

(PECL swoole >= 1.9.0)

Swoole\Async::write — Write data to a file stream asynchronously.

Description

public static Swoole\Async::write(
string $filename,
string $content,
int $offset = ?,
callable $callback = ?
): void

Liste de paramètres

filename

The filename being written.

content

The content writing to the file.

offset

The offset.

callback


Description

  • « Swoole\Async::write
  • Swoole\Atomic »
  • PHP Manual
  • Swoole\Async
  • Description

Swoole\Async::writeFile

(PECL swoole >= 1.9.0)

Swoole\Async::writeFile — Description

Description

public static Swoole\Async::writeFile(
string $filename,
string $content,
callable $callback = ?,
string $flags = ?
): void

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

filename

The filename being written.

content

The content writing to the file.

callback

flags


The Swoole\Atomic class

(PECL swoole >= 1.9.0)

Introduction

Synopsis de la classe

class Swoole\Atomic {
/* Méthodes */
public add(int $add_value = ?): int
public cmpset(int $cmp_value, int $new_value): int
public get(): int
public set(int $value): int
public sub(int $sub_value = ?): int
}

Sommaire

  • Swoole\Atomic::add — Add a number to the value to the atomic object.
  • Swoole\Atomic::cmpset — Compare and set the value of the atomic object.
  • Swoole\Atomic::__construct — Construct a swoole atomic object.
  • Swoole\Atomic::get — Get the current value of the atomic object.
  • Swoole\Atomic::set — Set a new value to the atomic object.
  • Swoole\Atomic::sub — Subtract a number to the value of the atomic object.


Add a number to the value to the atomic object.

  • « Swoole\Atomic
  • Swoole\Atomic::cmpset »
  • PHP Manual
  • Swoole\Atomic
  • Add a number to the value to the atomic object.

Swoole\Atomic::add

(PECL swoole >= 1.9.0)

Swoole\Atomic::add — Add a number to the value to the atomic object.

Description

public Swoole\Atomic::add(int $add_value = ?): int

Add a number to the value to the atomic object.

Liste de paramètres

add_value

The value which will be added to the current value.

Valeurs de retour

The new value of the atomic object.


Compare and set the value of the atomic object.

  • « Swoole\Atomic::add
  • Swoole\Atomic::__construct »
  • PHP Manual
  • Swoole\Atomic
  • Compare and set the value of the atomic object.

Swoole\Atomic::cmpset

(PECL swoole >= 1.9.0)

Swoole\Atomic::cmpset — Compare and set the value of the atomic object.

Description

public Swoole\Atomic::cmpset(int $cmp_value, int $new_value): int

Liste de paramètres

cmp_value

The value to compare with the current value of the atomic object.

new_value

The value to set to the atomic object if the cmp_value is the same as the current value of the atomic object.

Valeurs de retour

The new value of the atomic object.


Construct a swoole atomic object.

  • « Swoole\Atomic::cmpset
  • Swoole\Atomic::get »
  • PHP Manual
  • Swoole\Atomic
  • Construct a swoole atomic object.

Swoole\Atomic::__construct

(PECL swoole >= 1.9.0)

Swoole\Atomic::__construct — Construct a swoole atomic object.

Description

public Swoole\Atomic::__construct(int $value = ?)

Swoole atomic object is a integer variable allows any processor to atomically test and modify. It is implemented based on CPU atomic instructions. The Swoole atomic variables have to defined before swoole_server->start.

Compare-and-swap (CAS) is an atomic instruction used in multithreading to achieve synchronization. It compares the content of a memory location with a given value and, only if they are the same, modifies the content of that memory location to a new given value.

Liste de paramètres

value

The value of the atomic object.


Get the current value of the atomic object.

  • « Swoole\Atomic::__construct
  • Swoole\Atomic::set »
  • PHP Manual
  • Swoole\Atomic
  • Get the current value of the atomic object.

Swoole\Atomic::get

(PECL swoole >= 1.9.0)

Swoole\Atomic::get — Get the current value of the atomic object.

Description

public Swoole\Atomic::get(): int

Get the current value of the atomic object.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The current value of the atomic object.


Set a new value to the atomic object.

  • « Swoole\Atomic::get
  • Swoole\Atomic::sub »
  • PHP Manual
  • Swoole\Atomic
  • Set a new value to the atomic object.

Swoole\Atomic::set

(PECL swoole >= 1.9.0)

Swoole\Atomic::set — Set a new value to the atomic object.

Description

public Swoole\Atomic::set(int $value): int

Set a new value to the atomic object.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

value

The value to set to the atomic object.

Valeurs de retour

The current value of the atomic object.


Subtract a number to the value of the atomic object.

  • « Swoole\Atomic::set
  • Swoole\Buffer »
  • PHP Manual
  • Swoole\Atomic
  • Subtract a number to the value of the atomic object.

Swoole\Atomic::sub

(PECL swoole >= 1.9.0)

Swoole\Atomic::sub — Subtract a number to the value of the atomic object.

Description

public Swoole\Atomic::sub(int $sub_value = ?): int

Subtract a number to the value of the atomic object.

Liste de paramètres

sub_value

The value which will be subtracted to the current value.

Valeurs de retour

The current value of the atomic object.


The Swoole\Buffer class

(PECL swoole >= 1.9.0)

Introduction

Synopsis de la classe

class Swoole\Buffer {
/* Méthodes */
public append(string $data): int
public clear(): void
public __destruct(): void
public expand(int $size): int
public read(int $offset, int $length): string
public recycle(): void
public substr(int $offset, int $length = ?, bool $remove = ?): string
public __toString(): string
public write(int $offset, string $data): void
}

Sommaire

  • Swoole\Buffer::append — Append the string or binary data at the end of the memory buffer and return the new size of memory allocated.
  • Swoole\Buffer::clear — Reset the memory buffer.
  • Swoole\Buffer::__construct — Fixed size memory blocks allocation.
  • Swoole\Buffer::__destruct — Destruct the Swoole memory buffer.
  • Swoole\Buffer::expand — Expand the size of memory buffer.
  • Swoole\Buffer::read — Read data from the memory buffer based on offset and length.
  • Swoole\Buffer::recycle — Release the memory to OS which is not used by the memory buffer.
  • Swoole\Buffer::substr — Read data from the memory buffer based on offset and length. Or remove data from the memory buffer.
  • Swoole\Buffer::__toString — Get the string value of the memory buffer.
  • Swoole\Buffer::write — Write data to the memory buffer. The memory allocated for the buffer will not be changed.


Append the string or binary data at the end of the memory buffer and return the new size of memory allocated.

  • « Swoole\Buffer
  • Swoole\Buffer::clear »
  • PHP Manual
  • Swoole\Buffer
  • Append the string or binary data at the end of the memory buffer and return the new size of memory allocated.

Swoole\Buffer::append

(PECL swoole >= 1.9.0)

Swoole\Buffer::append — Append the string or binary data at the end of the memory buffer and return the new size of memory allocated.

Description

public Swoole\Buffer::append(string $data): int

Liste de paramètres

data

The string or binary data to append at the end of the memory buffer.

Valeurs de retour

The new size of the memory buffer.


Reset the memory buffer.

  • « Swoole\Buffer::append
  • Swoole\Buffer::__construct »
  • PHP Manual
  • Swoole\Buffer
  • Reset the memory buffer.

Swoole\Buffer::clear

(PECL swoole >= 1.9.0)

Swoole\Buffer::clear — Reset the memory buffer.

Description

public Swoole\Buffer::clear(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Fixed size memory blocks allocation.

  • « Swoole\Buffer::clear
  • Swoole\Buffer::__destruct »
  • PHP Manual
  • Swoole\Buffer
  • Fixed size memory blocks allocation.

Swoole\Buffer::__construct

(PECL swoole >= 1.9.0)

Swoole\Buffer::__construct — Fixed size memory blocks allocation.

Description

public Swoole\Buffer::__construct(int $size = ?)

Liste de paramètres

size

The size of the memory to allocate.


Destruct the Swoole memory buffer.

  • « Swoole\Buffer::__construct
  • Swoole\Buffer::expand »
  • PHP Manual
  • Swoole\Buffer
  • Destruct the Swoole memory buffer.

Swoole\Buffer::__destruct

(PECL swoole >= 1.9.0)

Swoole\Buffer::__destruct — Destruct the Swoole memory buffer.

Description

public Swoole\Buffer::__destruct(): void

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Expand the size of memory buffer.

  • « Swoole\Buffer::__destruct
  • Swoole\Buffer::read »
  • PHP Manual
  • Swoole\Buffer
  • Expand the size of memory buffer.

Swoole\Buffer::expand

(PECL swoole >= 1.9.0)

Swoole\Buffer::expand — Expand the size of memory buffer.

Description

public Swoole\Buffer::expand(int $size): int

Liste de paramètres

size

The new size of the memory buffer.

Valeurs de retour

The new size of the memory buffer.


Read data from the memory buffer based on offset and length.

  • « Swoole\Buffer::expand
  • Swoole\Buffer::recycle »
  • PHP Manual
  • Swoole\Buffer
  • Read data from the memory buffer based on offset and length.

Swoole\Buffer::read

(PECL swoole >= 1.9.0)

Swoole\Buffer::read — Read data from the memory buffer based on offset and length.

Description

public Swoole\Buffer::read(int $offset, int $length): string

Liste de paramètres

offset

The offset.

length

The length.

Valeurs de retour

The data readed from the memory buffer.


Release the memory to OS which is not used by the memory buffer.

  • « Swoole\Buffer::read
  • Swoole\Buffer::substr »
  • PHP Manual
  • Swoole\Buffer
  • Release the memory to OS which is not used by the memory buffer.

Swoole\Buffer::recycle

(PECL swoole >= 1.9.0)

Swoole\Buffer::recycle — Release the memory to OS which is not used by the memory buffer.

Description

public Swoole\Buffer::recycle(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Read data from the memory buffer based on offset and length. Or remove data from the memory buffer.

  • « Swoole\Buffer::recycle
  • Swoole\Buffer::__toString »
  • PHP Manual
  • Swoole\Buffer
  • Read data from the memory buffer based on offset and length. Or remove data from the memory buffer.

Swoole\Buffer::substr

(PECL swoole >= 1.9.0)

Swoole\Buffer::substr — Read data from the memory buffer based on offset and length. Or remove data from the memory buffer.

Description

public Swoole\Buffer::substr(int $offset, int $length = ?, bool $remove = ?): string

If $remove is set to be true and $offset is set to be 0, the data will be removed from the buffer. The memory for storing the data will be released when the buffer object is deconstructed.

Liste de paramètres

offset

The offset.

length

The length.

remove

Whether to remove the data from the memory buffer.

Valeurs de retour

The data or string readed from the memory buffer.


Get the string value of the memory buffer.

  • « Swoole\Buffer::substr
  • Swoole\Buffer::write »
  • PHP Manual
  • Swoole\Buffer
  • Get the string value of the memory buffer.

Swoole\Buffer::__toString

(PECL swoole >= 1.9.0)

Swoole\Buffer::__toString — Get the string value of the memory buffer.

Description

public Swoole\Buffer::__toString(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The string value of the memory buffer.


Write data to the memory buffer. The memory allocated for the buffer will not be changed.

  • « Swoole\Buffer::__toString
  • Swoole\Channel »
  • PHP Manual
  • Swoole\Buffer
  • Write data to the memory buffer. The memory allocated for the buffer will not be changed.

Swoole\Buffer::write

(PECL swoole >= 1.9.0)

Swoole\Buffer::write — Write data to the memory buffer. The memory allocated for the buffer will not be changed.

Description

public Swoole\Buffer::write(int $offset, string $data): void

Liste de paramètres

offset

The offset.

data

The data to write to the memory buffer.

Valeurs de retour


The Swoole\Channel class

(PECL swoole >= 1.9.0)

Introduction

Synopsis de la classe

class Swoole\Channel {
/* Méthodes */
public __destruct(): void
public pop(): mixed
public push(string $data): bool
public stats(): array
}

Sommaire

  • Swoole\Channel::__construct — Construct a Swoole Channel
  • Swoole\Channel::__destruct — Destruct a Swoole channel.
  • Swoole\Channel::pop — Read and pop data from swoole channel.
  • Swoole\Channel::push — Write and push data into Swoole channel.
  • Swoole\Channel::stats — Get stats of swoole channel.


Construct a Swoole Channel

  • « Swoole\Channel
  • Swoole\Channel::__destruct »
  • PHP Manual
  • Swoole\Channel
  • Construct a Swoole Channel

Swoole\Channel::__construct

(PECL swoole >= 1.9.0)

Swoole\Channel::__construct — Construct a Swoole Channel

Description

public Swoole\Channel::__construct(string $size)

Swoole channel is memory data structure works like Chan in Golang, implemented based on shared memory and mutex locks. It can be used as high performance message queue in memory. Construct a swoole channel with a fixed size. The minimum size of a swoole channel is 64KB. Exceptions will be thrown if there is not enough memory.

Liste de paramètres

size

The size of the Swoole channel.


Destruct a Swoole channel.

  • « Swoole\Channel::__construct
  • Swoole\Channel::pop »
  • PHP Manual
  • Swoole\Channel
  • Destruct a Swoole channel.

Swoole\Channel::__destruct

(PECL swoole >= 1.9.0)

Swoole\Channel::__destruct — Destruct a Swoole channel.

Description

public Swoole\Channel::__destruct(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Read and pop data from swoole channel.

  • « Swoole\Channel::__destruct
  • Swoole\Channel::push »
  • PHP Manual
  • Swoole\Channel
  • Read and pop data from swoole channel.

Swoole\Channel::pop

(PECL swoole >= 1.9.0)

Swoole\Channel::pop — Read and pop data from swoole channel.

Description

public Swoole\Channel::pop(): mixed

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

If the channel is empty, the function will return false, or return the unserialized data.


Write and push data into Swoole channel.

  • « Swoole\Channel::pop
  • Swoole\Channel::stats »
  • PHP Manual
  • Swoole\Channel
  • Write and push data into Swoole channel.

Swoole\Channel::push

(PECL swoole >= 1.9.0)

Swoole\Channel::push — Write and push data into Swoole channel.

Description

public Swoole\Channel::push(string $data): bool

Data can be any non-empty PHP variable, the variable will be serialized if it is not string type.

If size of the data is more than 8KB, swoole channel will use temp files storage.

The function will return true if the write operation is succeeded, or return false if there is not enough space.

Liste de paramètres

data

The data to push into the Swoole channel.

Valeurs de retour

Wheter the data is pushed into he Swoole channel.


Get stats of swoole channel.

  • « Swoole\Channel::push
  • Swoole\Client »
  • PHP Manual
  • Swoole\Channel
  • Get stats of swoole channel.

Swoole\Channel::stats

(PECL swoole >= 1.9.0)

Swoole\Channel::stats — Get stats of swoole channel.

Description

public Swoole\Channel::stats(): array

Get the numbers of queued elements and total size of the memory used by the queue.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The stats of the Swoole channel.


The Swoole\Client class

(PECL swoole >= 1.9.0)

Introduction

Synopsis de la classe

class Swoole\Client {
/* Constantes */
const int MSG_OOB = 1;
const int MSG_PEEK = 2;
const int MSG_DONTWAIT = 128;
const int MSG_WAITALL = 64;
/* Propriétés */
public $errCode;
public $sock;
public $reuse;
public $reuseCount;
/* Méthodes */
public close(bool $force = ?): bool
public connect(
string $host,
int $port = ?,
int $timeout = ?,
int $flag = ?
): bool
public __destruct(): void
public getpeername(): array
public getsockname(): array
public isConnected(): bool
public on(string $event, callable $callback): void
public pause(): void
public pipe(string $socket): void
public recv(string $size = ?, string $flag = ?): void
public resume(): void
public send(string $data, string $flag = ?): int
public sendfile(string $filename, int $offset = ?): bool
public sendto(string $ip, int $port, string $data): bool
public set(array $settings): void
public sleep(): void
public wakeup(): void
}

Propriétés

errCode

sock

reuse

reuseCount

Constantes pré-définies

Swoole\Client::MSG_OOB

Swoole\Client::MSG_PEEK

Swoole\Client::MSG_DONTWAIT

Swoole\Client::MSG_WAITALL

Sommaire

  • Swoole\Client::close — Close the connection established.
  • Swoole\Client::connect — Connect to the remote TCP or UDP port.
  • Swoole\Client::__construct — Create Swoole sync or async TCP/UDP client, with or without SSL.
  • Swoole\Client::__destruct — Destruct the Swoole client.
  • Swoole\Client::getpeername — Get the remote socket name of the connection.
  • Swoole\Client::getsockname — Get the local socket name of the connection.
  • Swoole\Client::isConnected — Check if the connection is established.
  • Swoole\Client::on — Add callback functions triggered by events.
  • Swoole\Client::pause — Pause receiving data.
  • Swoole\Client::pipe — Redirect the data to another file descriptor.
  • Swoole\Client::recv — Receive data from the remote socket.
  • Swoole\Client::resume — Resume receiving data.
  • Swoole\Client::send — Send data to the remote TCP socket.
  • Swoole\Client::sendfile — Send file to the remote TCP socket.
  • Swoole\Client::sendto — Send data to the remote UDP address.
  • Swoole\Client::set — Set the Swoole client parameters before the connection is established.
  • Swoole\Client::sleep — Remove the TCP client from system event loop.
  • Swoole\Client::wakeup — Add the TCP client back into the system event loop.


Close the connection established.

  • « Swoole\Client
  • Swoole\Client::connect »
  • PHP Manual
  • Swoole\Client
  • Close the connection established.

Swoole\Client::close

(PECL swoole >= 1.9.0)

Swoole\Client::close — Close the connection established.

Description

public Swoole\Client::close(bool $force = ?): bool

Liste de paramètres

force

Whether force to close the connection.

Valeurs de retour

Whether the connection is closed.


Connect to the remote TCP or UDP port.

  • « Swoole\Client::close
  • Swoole\Client::__construct »
  • PHP Manual
  • Swoole\Client
  • Connect to the remote TCP or UDP port.

Swoole\Client::connect

(PECL swoole >= 1.9.0)

Swoole\Client::connect — Connect to the remote TCP or UDP port.

Description

public Swoole\Client::connect(
string $host,
int $port = ?,
int $timeout = ?,
int $flag = ?
): bool

Liste de paramètres

host

The host name of the remote address.

port

The port number of the remote address.

timeout

The timeout(second) of connect/send/recv, the dafault value is 0.1s

flag

If the type of client is UDP, the $flag means if to enable the configuration udp_connect. If the configuration udp_connect is enabled, the client will only receive the data from specified ip:port. If the type of client is TCP and the $flag is set to 1, it must use swoole_client_select to check the connection status before send/recv.

Valeurs de retour

Whether the connection is established.


Create Swoole sync or async TCP/UDP client, with or without SSL.

  • « Swoole\Client::connect
  • Swoole\Client::__destruct »
  • PHP Manual
  • Swoole\Client
  • Create Swoole sync or async TCP/UDP client, with or without SSL.

Swoole\Client::__construct

(PECL swoole >= 1.9.0)

Swoole\Client::__construct — Create Swoole sync or async TCP/UDP client, with or without SSL.

Description

public Swoole\Client::__construct(int $sock_type, int $is_async = ?)

Liste de paramètres

sock_type

The type of socket: SWOOLE_TCP, SWOOLE_UDP, SWOOLE_ASYNC, SWOOLE_SSL, SWOOLE_KEEP.

is_async

Synchronous or asynchronous client.


Destruct the Swoole client.

  • « Swoole\Client::__construct
  • Swoole\Client::getpeername »
  • PHP Manual
  • Swoole\Client
  • Destruct the Swoole client.

Swoole\Client::__destruct

(PECL swoole >= 1.9.0)

Swoole\Client::__destruct — Destruct the Swoole client.

Description

public Swoole\Client::__destruct(): void

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Get the remote socket name of the connection.

  • « Swoole\Client::__destruct
  • Swoole\Client::getsockname »
  • PHP Manual
  • Swoole\Client
  • Get the remote socket name of the connection.

Swoole\Client::getpeername

(PECL swoole >= 1.9.0)

Swoole\Client::getpeername — Get the remote socket name of the connection.

Description

public Swoole\Client::getpeername(): array

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The host and port of the remote socket.


Get the local socket name of the connection.

  • « Swoole\Client::getpeername
  • Swoole\Client::isConnected »
  • PHP Manual
  • Swoole\Client
  • Get the local socket name of the connection.

Swoole\Client::getsockname

(PECL swoole >= 1.9.0)

Swoole\Client::getsockname — Get the local socket name of the connection.

Description

public Swoole\Client::getsockname(): array

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The host and port of the local socket.


Check if the connection is established.

  • « Swoole\Client::getsockname
  • Swoole\Client::on »
  • PHP Manual
  • Swoole\Client
  • Check if the connection is established.

Swoole\Client::isConnected

(PECL swoole >= 1.9.0)

Swoole\Client::isConnected — Check if the connection is established.

Description

public Swoole\Client::isConnected(): bool

This method returns the connection status of application layer.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Whether the connection is established.


Add callback functions triggered by events.

  • « Swoole\Client::isConnected
  • Swoole\Client::pause »
  • PHP Manual
  • Swoole\Client
  • Add callback functions triggered by events.

Swoole\Client::on

(PECL swoole >= 1.9.0)

Swoole\Client::on — Add callback functions triggered by events.

Description

public Swoole\Client::on(string $event, callable $callback): void

Liste de paramètres

event

callback


Pause receiving data.

  • « Swoole\Client::on
  • Swoole\Client::pipe »
  • PHP Manual
  • Swoole\Client
  • Pause receiving data.

Swoole\Client::pause

(PECL swoole >= 1.9.0)

Swoole\Client::pause — Pause receiving data.

Description

public Swoole\Client::pause(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Redirect the data to another file descriptor.

  • « Swoole\Client::pause
  • Swoole\Client::recv »
  • PHP Manual
  • Swoole\Client
  • Redirect the data to another file descriptor.

Swoole\Client::pipe

(PECL swoole >= 1.9.0)

Swoole\Client::pipe — Redirect the data to another file descriptor.

Description

public Swoole\Client::pipe(string $socket): void

Liste de paramètres

socket


Receive data from the remote socket.

  • « Swoole\Client::pipe
  • Swoole\Client::resume »
  • PHP Manual
  • Swoole\Client
  • Receive data from the remote socket.

Swoole\Client::recv

(PECL swoole >= 1.9.0)

Swoole\Client::recv — Receive data from the remote socket.

Description

public Swoole\Client::recv(string $size = ?, string $flag = ?): void

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

size

flag

Valeurs de retour


Resume receiving data.

  • « Swoole\Client::recv
  • Swoole\Client::send »
  • PHP Manual
  • Swoole\Client
  • Resume receiving data.

Swoole\Client::resume

(PECL swoole >= 1.9.0)

Swoole\Client::resume — Resume receiving data.

Description

public Swoole\Client::resume(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Send data to the remote TCP socket.

  • « Swoole\Client::resume
  • Swoole\Client::sendfile »
  • PHP Manual
  • Swoole\Client
  • Send data to the remote TCP socket.

Swoole\Client::send

(PECL swoole >= 1.9.0)

Swoole\Client::send — Send data to the remote TCP socket.

Description

public Swoole\Client::send(string $data, string $flag = ?): int

Liste de paramètres

data

The data to send which can be string or binary

flag

Valeurs de retour

If the client sends data successfully, it returns the length of data sent. Or it returns false and sets $swoole_client->errCode. For sync client, there is no limit for the data to send. For async client, The limit for the data to send is socket_buffer_size.


Send file to the remote TCP socket.

  • « Swoole\Client::send
  • Swoole\Client::sendto »
  • PHP Manual
  • Swoole\Client
  • Send file to the remote TCP socket.

Swoole\Client::sendfile

(PECL swoole >= 1.9.0)

Swoole\Client::sendfile — Send file to the remote TCP socket.

Description

public Swoole\Client::sendfile(string $filename, int $offset = ?): bool

This is a wrapper of the Linux sendfile system call.

Liste de paramètres

filename

File path of the file to send.

offset

Offset of the file to send

Valeurs de retour


Send data to the remote UDP address.

  • « Swoole\Client::sendfile
  • Swoole\Client::set »
  • PHP Manual
  • Swoole\Client
  • Send data to the remote UDP address.

Swoole\Client::sendto

(PECL swoole >= 1.9.0)

Swoole\Client::sendto — Send data to the remote UDP address.

Description

public Swoole\Client::sendto(string $ip, int $port, string $data): bool

The swoole client should be type of SWOOLE_SOCK_UDP or SWOOLE_SOCK_UDP6.

Liste de paramètres

ip

The IP address of remote host, IPv4 or IPv6.

port

The port number of remote host.

data

The data to send which should be less-than 64K.

Valeurs de retour


Set the Swoole client parameters before the connection is established.

  • « Swoole\Client::sendto
  • Swoole\Client::sleep »
  • PHP Manual
  • Swoole\Client
  • Set the Swoole client parameters before the connection is established.

Swoole\Client::set

(PECL swoole >= 1.9.0)

Swoole\Client::set — Set the Swoole client parameters before the connection is established.

Description

public Swoole\Client::set(array $settings): void

Liste de paramètres

settings

Valeurs de retour


Remove the TCP client from system event loop.

  • « Swoole\Client::set
  • Swoole\Client::wakeup »
  • PHP Manual
  • Swoole\Client
  • Remove the TCP client from system event loop.

Swoole\Client::sleep

(PECL swoole >= 1.9.0)

Swoole\Client::sleep — Remove the TCP client from system event loop.

Description

public Swoole\Client::sleep(): void

Remove the TCP client from system event loop.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Add the TCP client back into the system event loop.

  • « Swoole\Client::sleep
  • Swoole\Connection\Iterator »
  • PHP Manual
  • Swoole\Client
  • Add the TCP client back into the system event loop.

Swoole\Client::wakeup

(PECL swoole >= 1.9.0)

Swoole\Client::wakeup — Add the TCP client back into the system event loop.

Description

public Swoole\Client::wakeup(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


The Swoole\Connection\Iterator class

(PECL swoole >= 1.9.0)

Introduction

Synopsis de la classe

class Swoole\Connection\Iterator implements Iterator, Countable, ArrayAccess {
/* Méthodes */
public count(): int
public current(): Connection
public key(): int
public next(): Connection
public offsetExists(int $index): bool
public offsetGet(string $index): Connection
public offsetSet(int $offset, mixed $connection): void
public offsetUnset(int $offset): void
public rewind(): void
public valid(): bool
}

Sommaire

  • Swoole\Connection\Iterator::count — Count connections.
  • Swoole\Connection\Iterator::current — Return current connection entry.
  • Swoole\Connection\Iterator::key — Return key of the current connection.
  • Swoole\Connection\Iterator::next — Move to the next connection.
  • Swoole\Connection\Iterator::offsetExists — Check if offet exists.
  • Swoole\Connection\Iterator::offsetGet — Offset to retrieve.
  • Swoole\Connection\Iterator::offsetSet — Assign a Connection to the specified offset.
  • Swoole\Connection\Iterator::offsetUnset — Unset an offset.
  • Swoole\Connection\Iterator::rewind — Rewinds iterator
  • Swoole\Connection\Iterator::valid — Check if current position is valid.


Count connections.

  • « Swoole\Connection\Iterator
  • Swoole\Connection\Iterator::current »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Count connections.

Swoole\Connection\Iterator::count

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::count — Count connections.

Description

public Swoole\Connection\Iterator::count(): int

Gets the number of connections.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The number of connections.


Return current connection entry.

  • « Swoole\Connection\Iterator::count
  • Swoole\Connection\Iterator::key »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Return current connection entry.

Swoole\Connection\Iterator::current

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::current — Return current connection entry.

Description

public Swoole\Connection\Iterator::current(): Connection

Get current connection entry.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The current connection entry.


Return key of the current connection.

  • « Swoole\Connection\Iterator::current
  • Swoole\Connection\Iterator::next »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Return key of the current connection.

Swoole\Connection\Iterator::key

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::key — Return key of the current connection.

Description

public Swoole\Connection\Iterator::key(): int

This function returns key of the current connection.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Key of the current connection.


Move to the next connection.

  • « Swoole\Connection\Iterator::key
  • Swoole\Connection\Iterator::offsetExists »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Move to the next connection.

Swoole\Connection\Iterator::next

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::next — Move to the next connection.

Description

public Swoole\Connection\Iterator::next(): Connection

The iterator to the next connection.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Check if offet exists.

  • « Swoole\Connection\Iterator::next
  • Swoole\Connection\Iterator::offsetGet »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Check if offet exists.

Swoole\Connection\Iterator::offsetExists

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::offsetExists — Check if offet exists.

Description

public Swoole\Connection\Iterator::offsetExists(int $index): bool

Check if offset exists.

Liste de paramètres

index

The offset being checked.

Valeurs de retour

Returns TRUE if the offset exists, otherwise FALSE.


Offset to retrieve.

  • « Swoole\Connection\Iterator::offsetExists
  • Swoole\Connection\Iterator::offsetSet »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Offset to retrieve.

Swoole\Connection\Iterator::offsetGet

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::offsetGet — Offset to retrieve.

Description

public Swoole\Connection\Iterator::offsetGet(string $index): Connection

Return the connection at specified offset.

Liste de paramètres

index

The offset to retrieve.

Valeurs de retour


Assign a Connection to the specified offset.

  • « Swoole\Connection\Iterator::offsetGet
  • Swoole\Connection\Iterator::offsetUnset »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Assign a Connection to the specified offset.

Swoole\Connection\Iterator::offsetSet

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::offsetSet — Assign a Connection to the specified offset.

Description

public Swoole\Connection\Iterator::offsetSet(int $offset, mixed $connection): void

Assign a Connection to the specified offset.

Liste de paramètres

offset

The offset to assign the Connection to.

connection

The connection to set.

Valeurs de retour


Unset an offset.

  • « Swoole\Connection\Iterator::offsetSet
  • Swoole\Connection\Iterator::rewind »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Unset an offset.

Swoole\Connection\Iterator::offsetUnset

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::offsetUnset — Unset an offset.

Description

public Swoole\Connection\Iterator::offsetUnset(int $offset): void

Unsets an offset.

Liste de paramètres

offset

The offset to unset.

Valeurs de retour


Rewinds iterator

  • « Swoole\Connection\Iterator::offsetUnset
  • Swoole\Connection\Iterator::valid »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Rewinds iterator

Swoole\Connection\Iterator::rewind

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::rewind — Rewinds iterator

Description

public Swoole\Connection\Iterator::rewind(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Check if current position is valid.

  • « Swoole\Connection\Iterator::rewind
  • Swoole\Coroutine »
  • PHP Manual
  • Swoole\Connection\Iterator
  • Check if current position is valid.

Swoole\Connection\Iterator::valid

(PECL swoole >= 1.9.0)

Swoole\Connection\Iterator::valid — Check if current position is valid.

Description

public Swoole\Connection\Iterator::valid(): bool

Checks if the current 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.


The Swoole\Coroutine class

(PECL swoole >= 2.0.0)

Introduction

Synopsis de la classe

class Swoole\Coroutine {
/* Méthodes */
public static call_user_func_array(callable $callback, array $param_array): mixed
public static call_user_func(callable $callback, mixed ...$args): mixed
public static cli_wait(): ReturnType
public static create(): ReturnType
public Swoole\Coroutine\Client::close(): ReturnType
public Swoole\Coroutine\Client::connect(): ReturnType
public Swoole\Coroutine\Client::__destruct(): ReturnType
public Swoole\Coroutine\Client::getpeername(): ReturnType
public Swoole\Coroutine\Client::getsockname(): ReturnType
public Swoole\Coroutine\Client::isConnected(): ReturnType
public Swoole\Coroutine\Client::recv(): ReturnType
public Swoole\Coroutine\Client::send(): ReturnType
public Swoole\Coroutine\Client::sendfile(): ReturnType
public Swoole\Coroutine\Client::sendto(): ReturnType
public Swoole\Coroutine\Client::set(): ReturnType
public Swoole\Coroutine\Http\Client::addFile(): ReturnType
public Swoole\Coroutine\Http\Client::close(): ReturnType
public Swoole\Coroutine\Http\Client::__destruct(): ReturnType
public Swoole\Coroutine\Http\Client::execute(): ReturnType
public Swoole\Coroutine\Http\Client::get(): ReturnType
public Swoole\Coroutine\Http\Client::getDefer(): ReturnType
public Swoole\Coroutine\Http\Client::isConnected(): ReturnType
public Swoole\Coroutine\Http\Client::post(): ReturnType
public Swoole\Coroutine\Http\Client::recv(): ReturnType
public Swoole\Coroutine\Http\Client::set(): ReturnType
public Swoole\Coroutine\Http\Client::setCookies(): ReturnType
public Swoole\Coroutine\Http\Client::setData(): ReturnType
public Swoole\Coroutine\Http\Client::setDefer(): ReturnType
public Swoole\Coroutine\Http\Client::setHeaders(): ReturnType
public Swoole\Coroutine\Http\Client::setMethod(): ReturnType
public Swoole\Coroutine\MySQL::close(): ReturnType
public Swoole\Coroutine\MySQL::connect(): ReturnType
public Swoole\Coroutine\MySQL::__destruct(): ReturnType
public Swoole\Coroutine\MySQL::getDefer(): ReturnType
public Swoole\Coroutine\MySQL::query(): ReturnType
public Swoole\Coroutine\MySQL::recv(): ReturnType
public Swoole\Coroutine\MySQL::setDefer(): ReturnType
public static getuid(): ReturnType
public static resume(): ReturnType
public static suspend(): ReturnType
}

Sommaire

  • Swoole\Coroutine::call_user_func_array — Call a callback with an array of parameters
  • Swoole\Coroutine::call_user_func — Call a callback given by the first parameter
  • Swoole\Coroutine::cli_wait — Description
  • Swoole\Coroutine::create — Description
  • Swoole\Coroutine\Client::close — Description
  • Swoole\Coroutine\Client::connect — Description
  • Swoole\Coroutine\Client::__construct — Description
  • Swoole\Coroutine\Client::__destruct — Description
  • Swoole\Coroutine\Client::getpeername — Description
  • Swoole\Coroutine\Client::getsockname — Description
  • Swoole\Coroutine\Client::isConnected — Description
  • Swoole\Coroutine\Client::recv — Description
  • Swoole\Coroutine\Client::send — Description
  • Swoole\Coroutine\Client::sendfile — Description
  • Swoole\Coroutine\Client::sendto — Description
  • Swoole\Coroutine\Client::set — Description
  • Swoole\Coroutine\Http\Client::addFile — Description
  • Swoole\Coroutine\Http\Client::close — Description
  • Swoole\Coroutine\Http\Client::__construct — Description
  • Swoole\Coroutine\Http\Client::__destruct — Description
  • Swoole\Coroutine\Http\Client::execute — Description
  • Swoole\Coroutine\Http\Client::get — Description
  • Swoole\Coroutine\Http\Client::getDefer — Description
  • Swoole\Coroutine\Http\Client::isConnected — Description
  • Swoole\Coroutine\Http\Client::post — Description
  • Swoole\Coroutine\Http\Client::recv — Description
  • Swoole\Coroutine\Http\Client::set — Description
  • Swoole\Coroutine\Http\Client::setCookies — Description
  • Swoole\Coroutine\Http\Client::setData — Description
  • Swoole\Coroutine\Http\Client::setDefer — Description
  • Swoole\Coroutine\Http\Client::setHeaders — Description
  • Swoole\Coroutine\Http\Client::setMethod — Description
  • Swoole\Coroutine\MySQL::close — Description
  • Swoole\Coroutine\MySQL::connect — Description
  • Swoole\Coroutine\MySQL::__construct — Description
  • Swoole\Coroutine\MySQL::__destruct — Description
  • Swoole\Coroutine\MySQL::getDefer — Description
  • Swoole\Coroutine\MySQL::query — Description
  • Swoole\Coroutine\MySQL::recv — Description
  • Swoole\Coroutine\MySQL::setDefer — Description
  • Swoole\Coroutine::getuid — Description
  • Swoole\Coroutine::resume — Description
  • Swoole\Coroutine::suspend — Description


Call a callback with an array of parameters

  • « Swoole\Coroutine
  • Swoole\Coroutine::call_user_func »
  • PHP Manual
  • Swoole\Coroutine
  • Call a callback with an array of parameters

Swoole\Coroutine::call_user_func_array

(PECL swoole >= 2.0.0)

Swoole\Coroutine::call_user_func_array — Call a callback with an array of parameters

Description

public static Swoole\Coroutine::call_user_func_array(callable $callback, array $param_array): mixed

Calls the callback given by the first parameter with the parameters in param_array.

Liste de paramètres

callback

The callable to be called.

param_array

Zero or more parameters in the array to be passed to the callback.

Valeurs de retour


Call a callback given by the first parameter

  • « Swoole\Coroutine::call_user_func_array
  • Swoole\Coroutine::cli_wait »
  • PHP Manual
  • Swoole\Coroutine
  • Call a callback given by the first parameter

Swoole\Coroutine::call_user_func

(PECL swoole >= 2.0.0)

Swoole\Coroutine::call_user_func — Call a callback given by the first parameter

Description

public static Swoole\Coroutine::call_user_func(callable $callback, mixed ...$args): mixed

Calls the callback given by the first parameter and passes the remaining parameters as arguments.

Liste de paramètres

callback

The callable to be called.

args

Zero or more parameters to be passed to the callback.

Valeurs de retour


Description

  • « Swoole\Coroutine::call_user_func
  • Swoole\Coroutine::create »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine::cli_wait

(PECL swoole >= 2.0.0)

Swoole\Coroutine::cli_wait — Description

Description

public static Swoole\Coroutine::cli_wait(): ReturnType

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine::cli_wait
  • Swoole\Coroutine\Client::close »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine::create

(PECL swoole >= 2.0.0)

Swoole\Coroutine::create — Description

Description

public static Swoole\Coroutine::create(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine::create
  • Swoole\Coroutine\Client::connect »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Client::close

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::close — Description

Description

public Swoole\Coroutine\Client::close(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine\Client::close
  • Swoole\Coroutine\Client::__construct »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Client::connect

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::connect — Description

Description

public Swoole\Coroutine\Client::connect(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine\Client::connect
  • Swoole\Coroutine\Client::__destruct »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Client::__construct

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::__construct — Description

Description

public Swoole\Coroutine\Client::__construct()

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Description

  • « Swoole\Coroutine\Client::__construct
  • Swoole\Coroutine\Client::getpeername »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Client::__destruct

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::__destruct — Description

Description

public Swoole\Coroutine\Client::__destruct(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine\Client::__destruct
  • Swoole\Coroutine\Client::getsockname »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Client::getpeername

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::getpeername — Description

Description

public Swoole\Coroutine\Client::getpeername(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine\Client::getpeername
  • Swoole\Coroutine\Client::isConnected »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Client::getsockname

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::getsockname — Description

Description

public Swoole\Coroutine\Client::getsockname(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine\Client::getsockname
  • Swoole\Coroutine\Client::recv »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Client::isConnected

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::isConnected — Description

Description

public Swoole\Coroutine\Client::isConnected(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine\Client::isConnected
  • Swoole\Coroutine\Client::send »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Client::recv

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::recv — Description

Description

public Swoole\Coroutine\Client::recv(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine\Client::recv
  • Swoole\Coroutine\Client::sendfile »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Client::send

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::send — Description

Description

public Swoole\Coroutine\Client::send(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine\Client::send
  • Swoole\Coroutine\Client::sendto »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Client::sendfile

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::sendfile — Description

Description

public Swoole\Coroutine\Client::sendfile(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine\Client::sendfile
  • Swoole\Coroutine\Client::set »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Client::sendto

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::sendto — Description

Description

public Swoole\Coroutine\Client::sendto(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine\Client::sendto
  • Swoole\Coroutine\Http\Client::addFile »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Client::set

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Client::set — Description

Description

public Swoole\Coroutine\Client::set(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine\Client::set
  • Swoole\Coroutine\Http\Client::close »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Http\Client::addFile

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::addFile — Description

Description

public Swoole\Coroutine\Http\Client::addFile(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine\Http\Client::addFile
  • Swoole\Coroutine\Http\Client::__construct »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Http\Client::close

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::close — Description

Description

public Swoole\Coroutine\Http\Client::close(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine\Http\Client::close
  • Swoole\Coroutine\Http\Client::__destruct »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Http\Client::__construct

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::__construct — Description

Description

public Swoole\Coroutine\Http\Client::__construct()

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Description

  • « Swoole\Coroutine\Http\Client::__construct
  • Swoole\Coroutine\Http\Client::execute »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Http\Client::__destruct

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::__destruct — Description

Description

public Swoole\Coroutine\Http\Client::__destruct(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine\Http\Client::__destruct
  • Swoole\Coroutine\Http\Client::get »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Http\Client::execute

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::execute — Description

Description

public Swoole\Coroutine\Http\Client::execute(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine\Http\Client::execute
  • Swoole\Coroutine\Http\Client::getDefer »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Http\Client::get

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::get — Description

Description

public Swoole\Coroutine\Http\Client::get(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine\Http\Client::get
  • Swoole\Coroutine\Http\Client::isConnected »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Http\Client::getDefer

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::getDefer — Description

Description

public Swoole\Coroutine\Http\Client::getDefer(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine\Http\Client::getDefer
  • Swoole\Coroutine\Http\Client::post »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Http\Client::isConnected

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::isConnected — Description

Description

public Swoole\Coroutine\Http\Client::isConnected(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine\Http\Client::isConnected
  • Swoole\Coroutine\Http\Client::recv »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Http\Client::post

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::post — Description

Description

public Swoole\Coroutine\Http\Client::post(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine\Http\Client::post
  • Swoole\Coroutine\Http\Client::set »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Http\Client::recv

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::recv — Description

Description

public Swoole\Coroutine\Http\Client::recv(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine\Http\Client::recv
  • Swoole\Coroutine\Http\Client::setCookies »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Http\Client::set

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::set — Description

Description

public Swoole\Coroutine\Http\Client::set(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine\Http\Client::set
  • Swoole\Coroutine\Http\Client::setData »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Http\Client::setCookies

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::setCookies — Description

Description

public Swoole\Coroutine\Http\Client::setCookies(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine\Http\Client::setCookies
  • Swoole\Coroutine\Http\Client::setDefer »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Http\Client::setData

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::setData — Description

Description

public Swoole\Coroutine\Http\Client::setData(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine\Http\Client::setData
  • Swoole\Coroutine\Http\Client::setHeaders »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Http\Client::setDefer

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::setDefer — Description

Description

public Swoole\Coroutine\Http\Client::setDefer(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine\Http\Client::setDefer
  • Swoole\Coroutine\Http\Client::setMethod »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Http\Client::setHeaders

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::setHeaders — Description

Description

public Swoole\Coroutine\Http\Client::setHeaders(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine\Http\Client::setHeaders
  • Swoole\Coroutine\MySQL::close »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\Http\Client::setMethod

(PECL swoole >= 2.0.0)

Swoole\Coroutine\Http\Client::setMethod — Description

Description

public Swoole\Coroutine\Http\Client::setMethod(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine\Http\Client::setMethod
  • Swoole\Coroutine\MySQL::connect »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\MySQL::close

(PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::close — Description

Description

public Swoole\Coroutine\MySQL::close(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine\MySQL::close
  • Swoole\Coroutine\MySQL::__construct »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\MySQL::connect

(PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::connect — Description

Description

public Swoole\Coroutine\MySQL::connect(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine\MySQL::connect
  • Swoole\Coroutine\MySQL::__destruct »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\MySQL::__construct

(PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::__construct — Description

Description

public Swoole\Coroutine\MySQL::__construct()

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Description

  • « Swoole\Coroutine\MySQL::__construct
  • Swoole\Coroutine\MySQL::getDefer »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\MySQL::__destruct

(PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::__destruct — Description

Description

public Swoole\Coroutine\MySQL::__destruct(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine\MySQL::__destruct
  • Swoole\Coroutine\MySQL::query »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\MySQL::getDefer

(PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::getDefer — Description

Description

public Swoole\Coroutine\MySQL::getDefer(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine\MySQL::getDefer
  • Swoole\Coroutine\MySQL::recv »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\MySQL::query

(PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::query — Description

Description

public Swoole\Coroutine\MySQL::query(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine\MySQL::query
  • Swoole\Coroutine\MySQL::setDefer »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\MySQL::recv

(PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::recv — Description

Description

public Swoole\Coroutine\MySQL::recv(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine\MySQL::recv
  • Swoole\Coroutine::getuid »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine\MySQL::setDefer

(PECL swoole >= 2.0.0)

Swoole\Coroutine\MySQL::setDefer — Description

Description

public Swoole\Coroutine\MySQL::setDefer(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine\MySQL::setDefer
  • Swoole\Coroutine::resume »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine::getuid

(PECL swoole >= 2.0.0)

Swoole\Coroutine::getuid — Description

Description

public static Swoole\Coroutine::getuid(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine::getuid
  • Swoole\Coroutine::suspend »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine::resume

(PECL swoole >= 2.0.0)

Swoole\Coroutine::resume — Description

Description

public static Swoole\Coroutine::resume(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\Coroutine::resume
  • Swoole\Event »
  • PHP Manual
  • Swoole\Coroutine
  • Description

Swoole\Coroutine::suspend

(PECL swoole >= 2.0.0)

Swoole\Coroutine::suspend — Description

Description

public static Swoole\Coroutine::suspend(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


The Swoole\Event class

(PECL swoole >= 1.9.0)

Introduction

Synopsis de la classe

class Swoole\Event {
/* Méthodes */
public static add(
int $fd,
callable $read_callback,
callable $write_callback = ?,
string $events = ?
): bool
public static defer(mixed $callback): void
public static del(string $fd): bool
public static exit(): void
public static set(
int $fd,
string $read_callback = ?,
string $write_callback = ?,
string $events = ?
): bool
public static wait(): void
public static write(string $fd, string $data): void
}

Sommaire

  • Swoole\Event::add — Add new callback functions of a socket into the EventLoop.
  • Swoole\Event::defer — Add a callback function to the next event loop.
  • Swoole\Event::del — Remove all event callback functions of a socket.
  • Swoole\Event::exit — Exit the eventloop, only available at client side.
  • Swoole\Event::set — Update the event callback functions of a socket.
  • Swoole\Event::wait — Description
  • Swoole\Event::write — Write data to the socket.


Add new callback functions of a socket into the EventLoop.

  • « Swoole\Event
  • Swoole\Event::defer »
  • PHP Manual
  • Swoole\Event
  • Add new callback functions of a socket into the EventLoop.

Swoole\Event::add

(PECL swoole >= 1.9.0)

Swoole\Event::add — Add new callback functions of a socket into the EventLoop.

Description

public static Swoole\Event::add(
int $fd,
callable $read_callback,
callable $write_callback = ?,
string $events = ?
): bool

Liste de paramètres

fd

read_callback

write_callback

events

Valeurs de retour


Add a callback function to the next event loop.

  • « Swoole\Event::add
  • Swoole\Event::del »
  • PHP Manual
  • Swoole\Event
  • Add a callback function to the next event loop.

Swoole\Event::defer

(PECL swoole >= 1.9.0)

Swoole\Event::defer — Add a callback function to the next event loop.

Description

public static Swoole\Event::defer(mixed $callback): void

Liste de paramètres

callback

Valeurs de retour


Remove all event callback functions of a socket.

  • « Swoole\Event::defer
  • Swoole\Event::exit »
  • PHP Manual
  • Swoole\Event
  • Remove all event callback functions of a socket.

Swoole\Event::del

(PECL swoole >= 1.9.0)

Swoole\Event::del — Remove all event callback functions of a socket.

Description

public static Swoole\Event::del(string $fd): bool

Liste de paramètres

fd

Valeurs de retour


Exit the eventloop, only available at client side.

  • « Swoole\Event::del
  • Swoole\Event::set »
  • PHP Manual
  • Swoole\Event
  • Exit the eventloop, only available at client side.

Swoole\Event::exit

(PECL swoole >= 1.9.0)

Swoole\Event::exit — Exit the eventloop, only available at client side.

Description

public static Swoole\Event::exit(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Update the event callback functions of a socket.

  • « Swoole\Event::exit
  • Swoole\Event::wait »
  • PHP Manual
  • Swoole\Event
  • Update the event callback functions of a socket.

Swoole\Event::set

(PECL swoole >= 1.9.0)

Swoole\Event::set — Update the event callback functions of a socket.

Description

public static Swoole\Event::set(
int $fd,
string $read_callback = ?,
string $write_callback = ?,
string $events = ?
): bool

Liste de paramètres

fd

read_callback

write_callback

events

Valeurs de retour


Description

  • « Swoole\Event::set
  • Swoole\Event::write »
  • PHP Manual
  • Swoole\Event
  • Description

Swoole\Event::wait

(PECL swoole >= 1.9.0)

Swoole\Event::wait — Description

Description

public static Swoole\Event::wait(): void

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Write data to the socket.

  • « Swoole\Event::wait
  • Swoole\Exception »
  • PHP Manual
  • Swoole\Event
  • Write data to the socket.

Swoole\Event::write

(PECL swoole >= 1.9.0)

Swoole\Event::write — Write data to the socket.

Description

public static Swoole\Event::write(string $fd, string $data): void

Liste de paramètres

fd

data

Valeurs de retour


The Swoole\Exception class

(PECL swoole >= 1.9.0)

Introduction

Synopsis de la classe

class Swoole\Exception extends Exception implements Throwable {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
}


The Swoole\Http\Client class

(PECL swoole >= 1.9.0)

Introduction

Synopsis de la classe

class Swoole\Http\Client {
/* Propriétés */
public $errCode;
public $sock;
/* Méthodes */
public addFile(
string $path,
string $name,
string $type = ?,
string $filename = ?,
string $offset = ?
): void
public close(): void
public __destruct(): void
public download(
string $path,
string $file,
callable $callback,
int $offset = ?
): void
public execute(string $path, string $callback): void
public get(string $path, callable $callback): void
public isConnected(): bool
public on(string $event_name, callable $callback): void
public post(string $path, string $data, callable $callback): void
public push(string $data, string $opcode = ?, string $finish = ?): void
public set(array $settings): void
public setCookies(array $cookies): void
public setData(string $data): ReturnType
public setHeaders(array $headers): void
public setMethod(string $method): void
public upgrade(string $path, string $callback): void
}

Propriétés

errCode

sock

Sommaire

  • Swoole\Http\Client::addFile — Add a file to the post form.
  • Swoole\Http\Client::close — Close the http connection.
  • Swoole\Http\Client::__construct — Construct the async HTTP client.
  • Swoole\Http\Client::__destruct — Destruct the HTTP client.
  • Swoole\Http\Client::download — Download a file from the remote server.
  • Swoole\Http\Client::execute — Send the HTTP request after setting the parameters.
  • Swoole\Http\Client::get — Send GET http request to the remote server.
  • Swoole\Http\Client::isConnected — Check if the HTTP connection is connected.
  • Swoole\Http\Client::on — Register callback function by event name.
  • Swoole\Http\Client::post — Send POST http request to the remote server.
  • Swoole\Http\Client::push — Push data to websocket client.
  • Swoole\Http\Client::set — Update the HTTP client parameters.
  • Swoole\Http\Client::setCookies — Set the http request cookies.
  • Swoole\Http\Client::setData — Set the HTTP request body data.
  • Swoole\Http\Client::setHeaders — Set the HTTP request headers.
  • Swoole\Http\Client::setMethod — Set the HTTP request method.
  • Swoole\Http\Client::upgrade — Upgrade to websocket protocol.


Add a file to the post form.

  • « Swoole\Http\Client
  • Swoole\Http\Client::close »
  • PHP Manual
  • Swoole\Http\Client
  • Add a file to the post form.

Swoole\Http\Client::addFile

(PECL swoole >= 1.9.0)

Swoole\Http\Client::addFile — Add a file to the post form.

Description

public Swoole\Http\Client::addFile(
string $path,
string $name,
string $type = ?,
string $filename = ?,
string $offset = ?
): void

Liste de paramètres

path

name

type

filename

offset

Valeurs de retour


Close the http connection.

  • « Swoole\Http\Client::addFile
  • Swoole\Http\Client::__construct »
  • PHP Manual
  • Swoole\Http\Client
  • Close the http connection.

Swoole\Http\Client::close

(PECL swoole >= 1.9.0)

Swoole\Http\Client::close — Close the http connection.

Description

public Swoole\Http\Client::close(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Construct the async HTTP client.

  • « Swoole\Http\Client::close
  • Swoole\Http\Client::__destruct »
  • PHP Manual
  • Swoole\Http\Client
  • Construct the async HTTP client.

Swoole\Http\Client::__construct

(PECL swoole >= 1.9.0)

Swoole\Http\Client::__construct — Construct the async HTTP client.

Description

public Swoole\Http\Client::__construct(string $host, string $port = ?, bool $ssl = ?)

Liste de paramètres

host

The hostname of the remote host.

port

The port number of the remote host.

ssl

Whether to enable SSL.


Destruct the HTTP client.

  • « Swoole\Http\Client::__construct
  • Swoole\Http\Client::download »
  • PHP Manual
  • Swoole\Http\Client
  • Destruct the HTTP client.

Swoole\Http\Client::__destruct

(PECL swoole >= 1.9.0)

Swoole\Http\Client::__destruct — Destruct the HTTP client.

Description

public Swoole\Http\Client::__destruct(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Download a file from the remote server.

  • « Swoole\Http\Client::__destruct
  • Swoole\Http\Client::execute »
  • PHP Manual
  • Swoole\Http\Client
  • Download a file from the remote server.

Swoole\Http\Client::download

(PECL swoole >= 1.9.0)

Swoole\Http\Client::download — Download a file from the remote server.

Description

public Swoole\Http\Client::download(
string $path,
string $file,
callable $callback,
int $offset = ?
): void

Liste de paramètres

path

file

callback

offset

Valeurs de retour


Send the HTTP request after setting the parameters.

  • « Swoole\Http\Client::download
  • Swoole\Http\Client::get »
  • PHP Manual
  • Swoole\Http\Client
  • Send the HTTP request after setting the parameters.

Swoole\Http\Client::execute

(PECL swoole >= 1.9.0)

Swoole\Http\Client::execute — Send the HTTP request after setting the parameters.

Description

public Swoole\Http\Client::execute(string $path, string $callback): void

Liste de paramètres

path

callback

Valeurs de retour


Send GET http request to the remote server.

  • « Swoole\Http\Client::execute
  • Swoole\Http\Client::isConnected »
  • PHP Manual
  • Swoole\Http\Client
  • Send GET http request to the remote server.

Swoole\Http\Client::get

(PECL swoole >= 1.9.0)

Swoole\Http\Client::get — Send GET http request to the remote server.

Description

public Swoole\Http\Client::get(string $path, callable $callback): void

Liste de paramètres

path

callback

Valeurs de retour


Check if the HTTP connection is connected.

  • « Swoole\Http\Client::get
  • Swoole\Http\Client::on »
  • PHP Manual
  • Swoole\Http\Client
  • Check if the HTTP connection is connected.

Swoole\Http\Client::isConnected

(PECL swoole >= 1.9.0)

Swoole\Http\Client::isConnected — Check if the HTTP connection is connected.

Description

public Swoole\Http\Client::isConnected(): bool

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Register callback function by event name.

  • « Swoole\Http\Client::isConnected
  • Swoole\Http\Client::post »
  • PHP Manual
  • Swoole\Http\Client
  • Register callback function by event name.

Swoole\Http\Client::on

(PECL swoole >= 1.9.0)

Swoole\Http\Client::on — Register callback function by event name.

Description

public Swoole\Http\Client::on(string $event_name, callable $callback): void

Liste de paramètres

event_name

callback

Valeurs de retour


Send POST http request to the remote server.

  • « Swoole\Http\Client::on
  • Swoole\Http\Client::push »
  • PHP Manual
  • Swoole\Http\Client
  • Send POST http request to the remote server.

Swoole\Http\Client::post

(PECL swoole >= 1.9.0)

Swoole\Http\Client::post — Send POST http request to the remote server.

Description

public Swoole\Http\Client::post(string $path, string $data, callable $callback): void

Liste de paramètres

path

data

callback

Valeurs de retour


Push data to websocket client.

  • « Swoole\Http\Client::post
  • Swoole\Http\Client::set »
  • PHP Manual
  • Swoole\Http\Client
  • Push data to websocket client.

Swoole\Http\Client::push

(PECL swoole >= 1.9.0)

Swoole\Http\Client::push — Push data to websocket client.

Description

public Swoole\Http\Client::push(string $data, string $opcode = ?, string $finish = ?): void

Liste de paramètres

data

opcode

finish

Valeurs de retour


Update the HTTP client parameters.

  • « Swoole\Http\Client::push
  • Swoole\Http\Client::setCookies »
  • PHP Manual
  • Swoole\Http\Client
  • Update the HTTP client parameters.

Swoole\Http\Client::set

(PECL swoole >= 1.9.0)

Swoole\Http\Client::set — Update the HTTP client parameters.

Description

public Swoole\Http\Client::set(array $settings): void

Liste de paramètres

settings

Valeurs de retour


Set the http request cookies.

  • « Swoole\Http\Client::set
  • Swoole\Http\Client::setData »
  • PHP Manual
  • Swoole\Http\Client
  • Set the http request cookies.

Swoole\Http\Client::setCookies

(PECL swoole >= 1.9.0)

Swoole\Http\Client::setCookies — Set the http request cookies.

Description

public Swoole\Http\Client::setCookies(array $cookies): void

Liste de paramètres

cookies

Valeurs de retour


Set the HTTP request body data.

  • « Swoole\Http\Client::setCookies
  • Swoole\Http\Client::setHeaders »
  • PHP Manual
  • Swoole\Http\Client
  • Set the HTTP request body data.

Swoole\Http\Client::setData

(PECL swoole >= 1.9.0)

Swoole\Http\Client::setData — Set the HTTP request body data.

Description

public Swoole\Http\Client::setData(string $data): ReturnType

The HTTP method will be changed to be POST.

Liste de paramètres

data

Valeurs de retour


Set the HTTP request headers.

  • « Swoole\Http\Client::setData
  • Swoole\Http\Client::setMethod »
  • PHP Manual
  • Swoole\Http\Client
  • Set the HTTP request headers.

Swoole\Http\Client::setHeaders

(PECL swoole >= 1.9.0)

Swoole\Http\Client::setHeaders — Set the HTTP request headers.

Description

public Swoole\Http\Client::setHeaders(array $headers): void

Liste de paramètres

headers

Valeurs de retour


Set the HTTP request method.

  • « Swoole\Http\Client::setHeaders
  • Swoole\Http\Client::upgrade »
  • PHP Manual
  • Swoole\Http\Client
  • Set the HTTP request method.

Swoole\Http\Client::setMethod

(PECL swoole >= 1.9.0)

Swoole\Http\Client::setMethod — Set the HTTP request method.

Description

public Swoole\Http\Client::setMethod(string $method): void

Liste de paramètres

method

Valeurs de retour


Upgrade to websocket protocol.

  • « Swoole\Http\Client::setMethod
  • Swoole\Http\Request »
  • PHP Manual
  • Swoole\Http\Client
  • Upgrade to websocket protocol.

Swoole\Http\Client::upgrade

(PECL swoole >= 1.9.0)

Swoole\Http\Client::upgrade — Upgrade to websocket protocol.

Description

public Swoole\Http\Client::upgrade(string $path, string $callback): void

Liste de paramètres

path

callback

Valeurs de retour


The Swoole\Http\Request class

(PECL swoole >= 1.9.0)

Introduction

Synopsis de la classe

class Swoole\Http\Request {
/* Méthodes */
public __destruct(): void
public rawcontent(): string
}

Sommaire

  • Swoole\Http\Request::__destruct — Destruct the HTTP request.
  • Swoole\Http\Request::rawcontent — Get the raw HTTP POST body.


Destruct the HTTP request.

  • « Swoole\Http\Request
  • Swoole\Http\Request::rawcontent »
  • PHP Manual
  • Swoole\Http\Request
  • Destruct the HTTP request.

Swoole\Http\Request::__destruct

(PECL swoole >= 1.9.0)

Swoole\Http\Request::__destruct — Destruct the HTTP request.

Description

public Swoole\Http\Request::__destruct(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Get the raw HTTP POST body.

  • « Swoole\Http\Request::__destruct
  • Swoole\Http\Response »
  • PHP Manual
  • Swoole\Http\Request
  • Get the raw HTTP POST body.

Swoole\Http\Request::rawcontent

(PECL swoole >= 1.9.0)

Swoole\Http\Request::rawcontent — Get the raw HTTP POST body.

Description

public Swoole\Http\Request::rawcontent(): string

This method is used for the POST data which isn't in the form of `application/x-www-form-urlencoded`.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


The Swoole\Http\Response class

(PECL swoole >= 1.9.0)

Introduction

Synopsis de la classe

class Swoole\Http\Response {
/* Méthodes */
public cookie(
string $name,
string $value = ?,
string $expires = ?,
string $path = ?,
string $domain = ?,
string $secure = ?,
string $httponly = ?
): string
public __destruct(): void
public end(string $content = ?): void
public gzip(string $compress_level = ?): ReturnType
public header(string $key, string $value, string $ucwords = ?): void
public initHeader(): ReturnType
public rawcookie(
string $name,
string $value = ?,
string $expires = ?,
string $path = ?,
string $domain = ?,
string $secure = ?,
string $httponly = ?
): ReturnType
public sendfile(string $filename, int $offset = ?): ReturnType
public status(string $http_code): ReturnType
public write(string $content): void
}

Sommaire

  • Swoole\Http\Response::cookie — Set the cookies of the HTTP response.
  • Swoole\Http\Response::__destruct — Destruct the HTTP response.
  • Swoole\Http\Response::end — Send data for the HTTP request and finish the response.
  • Swoole\Http\Response::gzip — Enable the gzip of response content.
  • Swoole\Http\Response::header — Set the HTTP response headers.
  • Swoole\Http\Response::initHeader — Init the HTTP response header.
  • Swoole\Http\Response::rawcookie — Set the raw cookies to the HTTP response.
  • Swoole\Http\Response::sendfile — Send file through the HTTP response.
  • Swoole\Http\Response::status — Set the status code of the HTTP response.
  • Swoole\Http\Response::write — Append HTTP body content to the HTTP response.


Set the cookies of the HTTP response.

  • « Swoole\Http\Response
  • Swoole\Http\Response::__destruct »
  • PHP Manual
  • Swoole\Http\Response
  • Set the cookies of the HTTP response.

Swoole\Http\Response::cookie

(PECL swoole >= 1.9.0)

Swoole\Http\Response::cookie — Set the cookies of the HTTP response.

Description

public Swoole\Http\Response::cookie(
string $name,
string $value = ?,
string $expires = ?,
string $path = ?,
string $domain = ?,
string $secure = ?,
string $httponly = ?
): string

Liste de paramètres

name

value

expires

path

domain

secure

httponly

Valeurs de retour


Destruct the HTTP response.

  • « Swoole\Http\Response::cookie
  • Swoole\Http\Response::end »
  • PHP Manual
  • Swoole\Http\Response
  • Destruct the HTTP response.

Swoole\Http\Response::__destruct

(PECL swoole >= 1.9.0)

Swoole\Http\Response::__destruct — Destruct the HTTP response.

Description

public Swoole\Http\Response::__destruct(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Send data for the HTTP request and finish the response.

  • « Swoole\Http\Response::__destruct
  • Swoole\Http\Response::gzip »
  • PHP Manual
  • Swoole\Http\Response
  • Send data for the HTTP request and finish the response.

Swoole\Http\Response::end

(PECL swoole >= 1.9.0)

Swoole\Http\Response::end — Send data for the HTTP request and finish the response.

Description

public Swoole\Http\Response::end(string $content = ?): void

Liste de paramètres

content

Valeurs de retour


Enable the gzip of response content.

  • « Swoole\Http\Response::end
  • Swoole\Http\Response::header »
  • PHP Manual
  • Swoole\Http\Response
  • Enable the gzip of response content.

Swoole\Http\Response::gzip

(PECL swoole >= 1.9.0)

Swoole\Http\Response::gzip — Enable the gzip of response content.

Description

public Swoole\Http\Response::gzip(string $compress_level = ?): ReturnType

The header about Content-Encoding will be added automatically.

Liste de paramètres

compress_level

Valeurs de retour


Set the HTTP response headers.

  • « Swoole\Http\Response::gzip
  • Swoole\Http\Response::initHeader »
  • PHP Manual
  • Swoole\Http\Response
  • Set the HTTP response headers.

Swoole\Http\Response::header

(PECL swoole >= 1.9.0)

Swoole\Http\Response::header — Set the HTTP response headers.

Description

public Swoole\Http\Response::header(string $key, string $value, string $ucwords = ?): void

Liste de paramètres

key

value

ucwords

Valeurs de retour


Init the HTTP response header.

  • « Swoole\Http\Response::header
  • Swoole\Http\Response::rawcookie »
  • PHP Manual
  • Swoole\Http\Response
  • Init the HTTP response header.

Swoole\Http\Response::initHeader

(PECL swoole >= 1.9.0)

Swoole\Http\Response::initHeader — Init the HTTP response header.

Description

public Swoole\Http\Response::initHeader(): ReturnType

Init the HTTP response header.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Set the raw cookies to the HTTP response.

  • « Swoole\Http\Response::initHeader
  • Swoole\Http\Response::sendfile »
  • PHP Manual
  • Swoole\Http\Response
  • Set the raw cookies to the HTTP response.

Swoole\Http\Response::rawcookie

(PECL swoole >= 1.9.0)

Swoole\Http\Response::rawcookie — Set the raw cookies to the HTTP response.

Description

public Swoole\Http\Response::rawcookie(
string $name,
string $value = ?,
string $expires = ?,
string $path = ?,
string $domain = ?,
string $secure = ?,
string $httponly = ?
): ReturnType

Liste de paramètres

name

value

expires

path

domain

secure

httponly

Valeurs de retour


Send file through the HTTP response.

  • « Swoole\Http\Response::rawcookie
  • Swoole\Http\Response::status »
  • PHP Manual
  • Swoole\Http\Response
  • Send file through the HTTP response.

Swoole\Http\Response::sendfile

(PECL swoole >= 1.9.0)

Swoole\Http\Response::sendfile — Send file through the HTTP response.

Description

public Swoole\Http\Response::sendfile(string $filename, int $offset = ?): ReturnType

Send file through the HTTP response.

Liste de paramètres

filename

offset

Valeurs de retour


Set the status code of the HTTP response.

  • « Swoole\Http\Response::sendfile
  • Swoole\Http\Response::write »
  • PHP Manual
  • Swoole\Http\Response
  • Set the status code of the HTTP response.

Swoole\Http\Response::status

(PECL swoole >= 1.9.0)

Swoole\Http\Response::status — Set the status code of the HTTP response.

Description

public Swoole\Http\Response::status(string $http_code): ReturnType

Set the status code of the HTTP response.

Liste de paramètres

http_code

Valeurs de retour


Append HTTP body content to the HTTP response.

  • « Swoole\Http\Response::status
  • Swoole\Http\Server »
  • PHP Manual
  • Swoole\Http\Response
  • Append HTTP body content to the HTTP response.

Swoole\Http\Response::write

(PECL swoole >= 1.9.0)

Swoole\Http\Response::write — Append HTTP body content to the HTTP response.

Description

public Swoole\Http\Response::write(string $content): void

Append HTTP body content to the HTTP response.

Liste de paramètres

content

Valeurs de retour


The Swoole\Http\Server class

(PECL swoole >= 1.9.0)

Introduction

Synopsis de la classe

class Swoole\Http\Server extends Swoole\Server {
/* Méthodes */
public on(string $event_name, callable $callback): void
public start(): void
/* Méthodes héritées */
public Swoole\Server::addlistener(string $host, int $port, string $socket_type): void
public Swoole\Server::addProcess(swoole_process $process): bool
public Swoole\Server::after(int $after_time_ms, callable $callback, string $param = ?): ReturnType
public Swoole\Server::bind(int $fd, int $uid): bool
public Swoole\Server::clearTimer(int $timer_id): void
swoole_timer_clear(int $timer_id): void
public Swoole\Server::close(int $fd, bool $reset = ?): bool
public Swoole\Server::confirm(int $fd): bool
public Swoole\Server::connection_info(int $fd, int $reactor_id = ?): array
public Swoole\Server::connection_list(int $start_fd, int $pagesize = ?): array
public Swoole\Server::defer(callable $callback): void
public Swoole\Server\Port::__destruct(): void
public Swoole\Server\Port::on(string $event_name, callable $callback): ReturnType
public Swoole\Server\Port::set(array $settings): void
public Swoole\Server::exist(int $fd): bool
public Swoole\Server::finish(string $data): void
public Swoole\Server::getClientInfo(int $fd, int $reactor_id = ?, bool $ignore_error = ?): array
public Swoole\Server::getClientList(int $start_fd, int $pagesize = ?): array
public Swoole\Server::getLastError(): int
public Swoole\Server::heartbeat(bool $if_close_connection): mixed
public Swoole\Server::listen(string $host, int $port, string $socket_type): bool
public Swoole\Server::on(string $event_name, callable $callback): void
public Swoole\Server::pause(int $fd): void
public Swoole\Server::protect(int $fd, bool $is_protected = ?): void
public Swoole\Server::reload(): bool
public Swoole\Server::resume(int $fd): void
public Swoole\Server::send(int $fd, string $data, int $reactor_id = ?): bool
public Swoole\Server::sendfile(int $fd, string $filename, int $offset = ?): bool
public Swoole\Server::sendMessage(int $worker_id, string $data): bool
public Swoole\Server::sendto(
string $ip,
int $port,
string $data,
string $server_socket = ?
): bool
public Swoole\Server::sendwait(int $fd, string $data): bool
public Swoole\Server::set(array $settings): ReturnType
public Swoole\Server::shutdown(): void
public Swoole\Server::start(): void
public Swoole\Server::stats(): array
public Swoole\Server::stop(int $worker_id = ?): bool
public Swoole\Server::task(string $data, int $dst_worker_id = ?, callable $callback = ?): mixed
public Swoole\Server::taskwait(string $data, float $timeout = ?, int $worker_id = ?): void
public Swoole\Server::taskWaitMulti(array $tasks, float $timeout_ms = ?): void
public Swoole\Server::tick(int $interval_ms, callable $callback): void
}

Sommaire

  • Swoole\Http\Server::on — Bind callback function to HTTP server by event name.
  • Swoole\Http\Server::start — Start the swoole http server.


Bind callback function to HTTP server by event name.

  • « Swoole\Http\Server
  • Swoole\Http\Server::start »
  • PHP Manual
  • Swoole\Http\Server
  • Bind callback function to HTTP server by event name.

Swoole\Http\Server::on

(PECL swoole >= 1.9.0)

Swoole\Http\Server::on — Bind callback function to HTTP server by event name.

Description

public Swoole\Http\Server::on(string $event_name, callable $callback): void

Bind callback function to HTTP server by event name.

Liste de paramètres

event_name

callback

Valeurs de retour


Start the swoole http server.

  • « Swoole\Http\Server::on
  • Swoole\Lock »
  • PHP Manual
  • Swoole\Http\Server
  • Start the swoole http server.

Swoole\Http\Server::start

(PECL swoole >= 1.9.0)

Swoole\Http\Server::start — Start the swoole http server.

Description

public Swoole\Http\Server::start(): void

Start the swoole http server.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


The Swoole\Lock class

(PECL swoole >= 1.9.0)

Introduction

Synopsis de la classe

class Swoole\Lock {
/* Méthodes */
public __destruct(): void
public lock_read(): void
public lock(): void
public trylock_read(): void
public trylock(): void
public unlock(): void
}

Sommaire

  • Swoole\Lock::__construct — Construct a memory lock.
  • Swoole\Lock::__destruct — Destory a Swoole memory lock.
  • Swoole\Lock::lock_read — Lock a read-write lock for reading.
  • Swoole\Lock::lock — Try to acquire the lock. It will block if the lock is not available.
  • Swoole\Lock::trylock_read — Try to lock a read-write lock for reading and return straight away even the lock is not available.
  • Swoole\Lock::trylock — Try to acquire the lock and return straight away even the lock is not available.
  • Swoole\Lock::unlock — Release the lock.


Construct a memory lock.

  • « Swoole\Lock
  • Swoole\Lock::__destruct »
  • PHP Manual
  • Swoole\Lock
  • Construct a memory lock.

Swoole\Lock::__construct

(PECL swoole >= 1.9.0)

Swoole\Lock::__construct — Construct a memory lock.

Description

public Swoole\Lock::__construct(string $type = ?, string $file_lock_location = ?)

Swoole lock is used for data synchronization between multiple theads or processes.

Liste de paramètres

type

file_lock_location


Destory a Swoole memory lock.

  • « Swoole\Lock::__construct
  • Swoole\Lock::lock_read »
  • PHP Manual
  • Swoole\Lock
  • Destory a Swoole memory lock.

Swoole\Lock::__destruct

(PECL swoole >= 1.9.0)

Swoole\Lock::__destruct — Destory a Swoole memory lock.

Description

public Swoole\Lock::__destruct(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Lock a read-write lock for reading.

  • « Swoole\Lock::__destruct
  • Swoole\Lock::lock »
  • PHP Manual
  • Swoole\Lock
  • Lock a read-write lock for reading.

Swoole\Lock::lock_read

(PECL swoole >= 1.9.0)

Swoole\Lock::lock_read — Lock a read-write lock for reading.

Description

public Swoole\Lock::lock_read(): void

Lock a read-write lock for reading.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Try to acquire the lock. It will block if the lock is not available.

  • « Swoole\Lock::lock_read
  • Swoole\Lock::trylock_read »
  • PHP Manual
  • Swoole\Lock
  • Try to acquire the lock. It will block if the lock is not available.

Swoole\Lock::lock

(PECL swoole >= 1.9.0)

Swoole\Lock::lock — Try to acquire the lock. It will block if the lock is not available.

Description

public Swoole\Lock::lock(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Try to lock a read-write lock for reading and return straight away even the lock is not available.

  • « Swoole\Lock::lock
  • Swoole\Lock::trylock »
  • PHP Manual
  • Swoole\Lock
  • Try to lock a read-write lock for reading and return straight away even the lock is not available.

Swoole\Lock::trylock_read

(PECL swoole >= 1.9.0)

Swoole\Lock::trylock_read — Try to lock a read-write lock for reading and return straight away even the lock is not available.

Description

public Swoole\Lock::trylock_read(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Try to acquire the lock and return straight away even the lock is not available.

  • « Swoole\Lock::trylock_read
  • Swoole\Lock::unlock »
  • PHP Manual
  • Swoole\Lock
  • Try to acquire the lock and return straight away even the lock is not available.

Swoole\Lock::trylock

(PECL swoole >= 1.9.0)

Swoole\Lock::trylock — Try to acquire the lock and return straight away even the lock is not available.

Description

public Swoole\Lock::trylock(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Release the lock.

  • « Swoole\Lock::trylock
  • Swoole\Mmap »
  • PHP Manual
  • Swoole\Lock
  • Release the lock.

Swoole\Lock::unlock

(PECL swoole >= 1.9.0)

Swoole\Lock::unlock — Release the lock.

Description

public Swoole\Lock::unlock(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


The Swoole\Mmap class

(PECL swoole >= 1.9.0)

Introduction

Synopsis de la classe

class Swoole\Mmap {
/* Méthodes */
public static open(string $filename, string $size = ?, string $offset = ?): ReturnType
}

Sommaire

  • Swoole\Mmap::open — Map a file into memory and return the stream resource which can be used by PHP stream operations.


Map a file into memory and return the stream resource which can be used by PHP stream operations.

  • « Swoole\Mmap
  • Swoole\MySQL »
  • PHP Manual
  • Swoole\Mmap
  • Map a file into memory and return the stream resource which can be used by PHP stream operations.

Swoole\Mmap::open

(PECL swoole >= 1.9.0)

Swoole\Mmap::open — Map a file into memory and return the stream resource which can be used by PHP stream operations.

Description

public static Swoole\Mmap::open(string $filename, string $size = ?, string $offset = ?): ReturnType

Liste de paramètres

filename

size

offset

Valeurs de retour


The Swoole\MySQL class

(PECL swoole >= 1.9.0)

Introduction

Synopsis de la classe

class Swoole\MySQL {
/* Méthodes */
public close(): void
public connect(array $server_config, callable $callback): void
public __destruct(): void
public getBuffer(): ReturnType
public on(string $event_name, callable $callback): void
public query(string $sql, callable $callback): ReturnType
}

Sommaire

  • Swoole\MySQL::close — Close the async MySQL connection.
  • Swoole\MySQL::connect — Connect to the remote MySQL server.
  • Swoole\MySQL::__construct — Construct an async MySQL client.
  • Swoole\MySQL::__destruct — Destory the async MySQL client.
  • Swoole\MySQL::getBuffer — Description
  • Swoole\MySQL::on — Register callback function based on event name.
  • Swoole\MySQL::query — Run the SQL query.


Close the async MySQL connection.

  • « Swoole\MySQL
  • Swoole\MySQL::connect »
  • PHP Manual
  • Swoole\MySQL
  • Close the async MySQL connection.

Swoole\MySQL::close

(PECL swoole >= 1.9.0)

Swoole\MySQL::close — Close the async MySQL connection.

Description

public Swoole\MySQL::close(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Connect to the remote MySQL server.

  • « Swoole\MySQL::close
  • Swoole\MySQL::__construct »
  • PHP Manual
  • Swoole\MySQL
  • Connect to the remote MySQL server.

Swoole\MySQL::connect

(PECL swoole >= 1.9.0)

Swoole\MySQL::connect — Connect to the remote MySQL server.

Description

public Swoole\MySQL::connect(array $server_config, callable $callback): void

Connect to the remote MySQL server.

Liste de paramètres

server_config

callback

Valeurs de retour


Construct an async MySQL client.

  • « Swoole\MySQL::connect
  • Swoole\MySQL::__destruct »
  • PHP Manual
  • Swoole\MySQL
  • Construct an async MySQL client.

Swoole\MySQL::__construct

(PECL swoole >= 1.9.0)

Swoole\MySQL::__construct — Construct an async MySQL client.

Description

public Swoole\MySQL::__construct()

Construct an async MySQL client.

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Destory the async MySQL client.

  • « Swoole\MySQL::__construct
  • Swoole\MySQL::getBuffer »
  • PHP Manual
  • Swoole\MySQL
  • Destory the async MySQL client.

Swoole\MySQL::__destruct

(PECL swoole >= 1.9.0)

Swoole\MySQL::__destruct — Destory the async MySQL client.

Description

public Swoole\MySQL::__destruct(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Description

  • « Swoole\MySQL::__destruct
  • Swoole\MySQL::on »
  • PHP Manual
  • Swoole\MySQL
  • Description

Swoole\MySQL::getBuffer

(PECL swoole >= 1.9.0)

Swoole\MySQL::getBuffer — Description

Description

public Swoole\MySQL::getBuffer(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Register callback function based on event name.

  • « Swoole\MySQL::getBuffer
  • Swoole\MySQL::query »
  • PHP Manual
  • Swoole\MySQL
  • Register callback function based on event name.

Swoole\MySQL::on

(PECL swoole >= 1.9.0)

Swoole\MySQL::on — Register callback function based on event name.

Description

public Swoole\MySQL::on(string $event_name, callable $callback): void

Register callback function based on event name, current only 'close' event is supported.

Liste de paramètres

event_name

callback

Valeurs de retour


Run the SQL query.

  • « Swoole\MySQL::on
  • Swoole\MySQL\Exception »
  • PHP Manual
  • Swoole\MySQL
  • Run the SQL query.

Swoole\MySQL::query

(PECL swoole >= 1.9.0)

Swoole\MySQL::query — Run the SQL query.

Description

public Swoole\MySQL::query(string $sql, callable $callback): ReturnType

Liste de paramètres

sql

callback

Valeurs de retour


The Swoole\MySQL\Exception class

(PECL swoole >= 1.9.0)

Introduction

Synopsis de la classe

class Swoole\MySQL\Exception extends Exception implements Throwable {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
}


The Swoole\Process class

(PECL swoole >= 1.9.0)

Introduction

Synopsis de la classe

class Swoole\Process {
/* Constantes */
const int IPC_NOWAIT = 256;
/* Méthodes */
public static alarm(int $interval_usec): void
public close(): void
public static daemon(bool $nochdir = ?, bool $noclose = ?): void
public __destruct(): void
public exec(string $exec_file, string $args): ReturnType
public exit(string $exit_code = ?): void
public freeQueue(): void
public static kill(int $pid, int $signal_no = ?): bool
public name(string $process_name): bool
public pop(int $maxsize = ?): mixed
public push(string $data): bool
public read(int $maxsize = ?): string
public static signal(string $signal_no, callable $callback): void
public start(): void
public statQueue(): array
public useQueue(int $key, int $mode = ?): bool
public static wait(bool $blocking = ?): array
public write(string $data): int
}

Constantes pré-définies

Swoole\Process::IPC_NOWAIT

Sommaire

  • Swoole\Process::alarm — High precision timer which triggers signal with fixed interval.
  • Swoole\Process::close — Close the pipe to the child process.
  • Swoole\Process::__construct — Construct a process.
  • Swoole\Process::daemon — Change the process to be a daemon process.
  • Swoole\Process::__destruct — Destroy the process.
  • Swoole\Process::exec — Execute system commands.
  • Swoole\Process::exit — Stop the child processes.
  • Swoole\Process::freeQueue — Destroy the message queue created by swoole_process::useQueue.
  • Swoole\Process::kill — Send signal to the child process.
  • Swoole\Process::name — Set name of the process.
  • Swoole\Process::pop — Read and pop data from the message queue.
  • Swoole\Process::push — Write and push data into the message queue.
  • Swoole\Process::read — Read data sending to the process.
  • Swoole\Process::signal — Send signal to the child processes.
  • Swoole\Process::start — Start the process.
  • Swoole\Process::statQueue — Get the stats of the message queue used as the communication method between processes.
  • Swoole\Process::useQueue — Create a message queue as the communication method between the parent process and child processes.
  • Swoole\Process::wait — Wait for the events of child processes.
  • Swoole\Process::write — Write data into the pipe and communicate with the parent process or child processes.


High precision timer which triggers signal with fixed interval.

  • « Swoole\Process
  • Swoole\Process::close »
  • PHP Manual
  • Swoole\Process
  • High precision timer which triggers signal with fixed interval.

Swoole\Process::alarm

(PECL swoole >= 1.9.0)

Swoole\Process::alarm — High precision timer which triggers signal with fixed interval.

Description

public static Swoole\Process::alarm(int $interval_usec): void

Liste de paramètres

interval_usec

Valeurs de retour


Close the pipe to the child process.

  • « Swoole\Process::alarm
  • Swoole\Process::__construct »
  • PHP Manual
  • Swoole\Process
  • Close the pipe to the child process.

Swoole\Process::close

(PECL swoole >= 1.9.0)

Swoole\Process::close — Close the pipe to the child process.

Description

public Swoole\Process::close(): void

Close the pipe to the child process.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Construct a process.

  • « Swoole\Process::close
  • Swoole\Process::daemon »
  • PHP Manual
  • Swoole\Process
  • Construct a process.

Swoole\Process::__construct

(PECL swoole >= 1.9.0)

Swoole\Process::__construct — Construct a process.

Description

public Swoole\Process::__construct(callable $callback, bool $redirect_stdin_and_stdout = ?, int $pipe_type = ?)

Liste de paramètres

callback

redirect_stdin_and_stdout

pipe_type


Change the process to be a daemon process.

  • « Swoole\Process::__construct
  • Swoole\Process::__destruct »
  • PHP Manual
  • Swoole\Process
  • Change the process to be a daemon process.

Swoole\Process::daemon

(PECL swoole >= 1.9.0)

Swoole\Process::daemon — Change the process to be a daemon process.

Description

public static Swoole\Process::daemon(bool $nochdir = ?, bool $noclose = ?): void

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

nochdir

noclose

Valeurs de retour


Destroy the process.

  • « Swoole\Process::daemon
  • Swoole\Process::exec »
  • PHP Manual
  • Swoole\Process
  • Destroy the process.

Swoole\Process::__destruct

(PECL swoole >= 1.9.0)

Swoole\Process::__destruct — Destroy the process.

Description

public Swoole\Process::__destruct(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Execute system commands.

  • « Swoole\Process::__destruct
  • Swoole\Process::exit »
  • PHP Manual
  • Swoole\Process
  • Execute system commands.

Swoole\Process::exec

(PECL swoole >= 1.9.0)

Swoole\Process::exec — Execute system commands.

Description

public Swoole\Process::exec(string $exec_file, string $args): ReturnType

The process will be replaced to be the system command process, but the pipe to the parent process will be kept.

Liste de paramètres

exec_file

args

Valeurs de retour


Stop the child processes.

  • « Swoole\Process::exec
  • Swoole\Process::freeQueue »
  • PHP Manual
  • Swoole\Process
  • Stop the child processes.

Swoole\Process::exit

(PECL swoole >= 1.9.0)

Swoole\Process::exit — Stop the child processes.

Description

public Swoole\Process::exit(string $exit_code = ?): void

Liste de paramètres

exit_code

Valeurs de retour


Destroy the message queue created by swoole_process::useQueue.

  • « Swoole\Process::exit
  • Swoole\Process::kill »
  • PHP Manual
  • Swoole\Process
  • Destroy the message queue created by swoole_process::useQueue.

Swoole\Process::freeQueue

(PECL swoole >= 1.9.0)

Swoole\Process::freeQueue — Destroy the message queue created by swoole_process::useQueue.

Description

public Swoole\Process::freeQueue(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Send signal to the child process.

  • « Swoole\Process::freeQueue
  • Swoole\Process::name »
  • PHP Manual
  • Swoole\Process
  • Send signal to the child process.

Swoole\Process::kill

(PECL swoole >= 1.9.0)

Swoole\Process::kill — Send signal to the child process.

Description

public static Swoole\Process::kill(int $pid, int $signal_no = ?): bool

Send signal to the child process.

Liste de paramètres

pid

Process pid

signal_no

Signal to be sent

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.


Set name of the process.

  • « Swoole\Process::kill
  • Swoole\Process::pop »
  • PHP Manual
  • Swoole\Process
  • Set name of the process.

Swoole\Process::name

(PECL swoole >= 1.9.0)

Swoole\Process::name — Set name of the process.

Description

public Swoole\Process::name(string $process_name): bool

Liste de paramètres

process_name

Set name of the process.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.


Read and pop data from the message queue.

  • « Swoole\Process::name
  • Swoole\Process::push »
  • PHP Manual
  • Swoole\Process
  • Read and pop data from the message queue.

Swoole\Process::pop

(PECL swoole >= 1.9.0)

Swoole\Process::pop — Read and pop data from the message queue.

Description

public Swoole\Process::pop(int $maxsize = ?): mixed

Liste de paramètres

maxsize

Valeurs de retour


Write and push data into the message queue.

  • « Swoole\Process::pop
  • Swoole\Process::read »
  • PHP Manual
  • Swoole\Process
  • Write and push data into the message queue.

Swoole\Process::push

(PECL swoole >= 1.9.0)

Swoole\Process::push — Write and push data into the message queue.

Description

public Swoole\Process::push(string $data): bool

Liste de paramètres

data

Valeurs de retour


Read data sending to the process.

  • « Swoole\Process::push
  • Swoole\Process::signal »
  • PHP Manual
  • Swoole\Process
  • Read data sending to the process.

Swoole\Process::read

(PECL swoole >= 1.9.0)

Swoole\Process::read — Read data sending to the process.

Description

public Swoole\Process::read(int $maxsize = ?): string

Liste de paramètres

maxsize

Valeurs de retour


Send signal to the child processes.

  • « Swoole\Process::read
  • Swoole\Process::start »
  • PHP Manual
  • Swoole\Process
  • Send signal to the child processes.

Swoole\Process::signal

(PECL swoole >= 1.9.0)

Swoole\Process::signal — Send signal to the child processes.

Description

public static Swoole\Process::signal(string $signal_no, callable $callback): void

Liste de paramètres

signal_no

callback

Valeurs de retour

If signal sent successfully, it returns TRUE, otherwise it returns FALSE.


Start the process.

  • « Swoole\Process::signal
  • Swoole\Process::statQueue »
  • PHP Manual
  • Swoole\Process
  • Start the process.

Swoole\Process::start

(PECL swoole >= 1.9.0)

Swoole\Process::start — Start the process.

Description

public Swoole\Process::start(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Get the stats of the message queue used as the communication method between processes.

  • « Swoole\Process::start
  • Swoole\Process::useQueue »
  • PHP Manual
  • Swoole\Process
  • Get the stats of the message queue used as the communication method between processes.

Swoole\Process::statQueue

(PECL swoole >= 1.9.0)

Swoole\Process::statQueue — Get the stats of the message queue used as the communication method between processes.

Description

public Swoole\Process::statQueue(): array

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The array of status of the message queue.


Create a message queue as the communication method between the parent process and child processes.

  • « Swoole\Process::statQueue
  • Swoole\Process::wait »
  • PHP Manual
  • Swoole\Process
  • Create a message queue as the communication method between the parent process and child processes.

Swoole\Process::useQueue

(PECL swoole >= 1.9.0)

Swoole\Process::useQueue — Create a message queue as the communication method between the parent process and child processes.

Description

public Swoole\Process::useQueue(int $key, int $mode = ?): bool

Liste de paramètres

key

mode

Valeurs de retour


Wait for the events of child processes.

  • « Swoole\Process::useQueue
  • Swoole\Process::write »
  • PHP Manual
  • Swoole\Process
  • Wait for the events of child processes.

Swoole\Process::wait

(PECL swoole >= 1.9.0)

Swoole\Process::wait — Wait for the events of child processes.

Description

public static Swoole\Process::wait(bool $blocking = ?): array

Liste de paramètres

blocking

Valeurs de retour


Write data into the pipe and communicate with the parent process or child processes.

  • « Swoole\Process::wait
  • Swoole\Redis\Server »
  • PHP Manual
  • Swoole\Process
  • Write data into the pipe and communicate with the parent process or child processes.

Swoole\Process::write

(PECL swoole >= 1.9.0)

Swoole\Process::write — Write data into the pipe and communicate with the parent process or child processes.

Description

public Swoole\Process::write(string $data): int

Liste de paramètres

data

Valeurs de retour


The Swoole\Redis\Server class

(PECL swoole >= 1.9.0)

Introduction

Synopsis de la classe

class Swoole\Redis\Server extends Swoole\Server {
/* Constantes */
const int NIL = 1;
const int ERROR = 0;
const int STATUS = 2;
const int INT = 3;
const int STRING = 4;
const int SET = 5;
const int MAP = 6;
/* Méthodes */
public static format(string $type, string $value = ?): ReturnType
public setHandler(
string $command,
string $callback,
string $number_of_string_param = ?,
string $type_of_array_param = ?
): ReturnType
public start(): ReturnType
/* Méthodes héritées */
public Swoole\Server::addlistener(string $host, int $port, string $socket_type): void
public Swoole\Server::addProcess(swoole_process $process): bool
public Swoole\Server::after(int $after_time_ms, callable $callback, string $param = ?): ReturnType
public Swoole\Server::bind(int $fd, int $uid): bool
public Swoole\Server::clearTimer(int $timer_id): void
swoole_timer_clear(int $timer_id): void
public Swoole\Server::close(int $fd, bool $reset = ?): bool
public Swoole\Server::confirm(int $fd): bool
public Swoole\Server::connection_info(int $fd, int $reactor_id = ?): array
public Swoole\Server::connection_list(int $start_fd, int $pagesize = ?): array
public Swoole\Server::defer(callable $callback): void
public Swoole\Server\Port::__destruct(): void
public Swoole\Server\Port::on(string $event_name, callable $callback): ReturnType
public Swoole\Server\Port::set(array $settings): void
public Swoole\Server::exist(int $fd): bool
public Swoole\Server::finish(string $data): void
public Swoole\Server::getClientInfo(int $fd, int $reactor_id = ?, bool $ignore_error = ?): array
public Swoole\Server::getClientList(int $start_fd, int $pagesize = ?): array
public Swoole\Server::getLastError(): int
public Swoole\Server::heartbeat(bool $if_close_connection): mixed
public Swoole\Server::listen(string $host, int $port, string $socket_type): bool
public Swoole\Server::on(string $event_name, callable $callback): void
public Swoole\Server::pause(int $fd): void
public Swoole\Server::protect(int $fd, bool $is_protected = ?): void
public Swoole\Server::reload(): bool
public Swoole\Server::resume(int $fd): void
public Swoole\Server::send(int $fd, string $data, int $reactor_id = ?): bool
public Swoole\Server::sendfile(int $fd, string $filename, int $offset = ?): bool
public Swoole\Server::sendMessage(int $worker_id, string $data): bool
public Swoole\Server::sendto(
string $ip,
int $port,
string $data,
string $server_socket = ?
): bool
public Swoole\Server::sendwait(int $fd, string $data): bool
public Swoole\Server::set(array $settings): ReturnType
public Swoole\Server::shutdown(): void
public Swoole\Server::start(): void
public Swoole\Server::stats(): array
public Swoole\Server::stop(int $worker_id = ?): bool
public Swoole\Server::task(string $data, int $dst_worker_id = ?, callable $callback = ?): mixed
public Swoole\Server::taskwait(string $data, float $timeout = ?, int $worker_id = ?): void
public Swoole\Server::taskWaitMulti(array $tasks, float $timeout_ms = ?): void
public Swoole\Server::tick(int $interval_ms, callable $callback): void
}

Constantes pré-définies

Swoole\Redis\Server::NIL

Swoole\Redis\Server::ERROR

Swoole\Redis\Server::STATUS

Swoole\Redis\Server::INT

Swoole\Redis\Server::STRING

Swoole\Redis\Server::SET

Swoole\Redis\Server::MAP

Sommaire

  • Swoole\Redis\Server::format — Description
  • Swoole\Redis\Server::setHandler — Description
  • Swoole\Redis\Server::start — Description


Description

  • « Swoole\Redis\Server
  • Swoole\Redis\Server::setHandler »
  • PHP Manual
  • Swoole\Redis\Server
  • Description

Swoole\Redis\Server::format

(PECL swoole >= 1.9.0)

Swoole\Redis\Server::format — Description

Description

public static Swoole\Redis\Server::format(string $type, string $value = ?): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

type

value

Valeurs de retour


Description

  • « Swoole\Redis\Server::format
  • Swoole\Redis\Server::start »
  • PHP Manual
  • Swoole\Redis\Server
  • Description

Swoole\Redis\Server::setHandler

(PECL swoole >= 1.9.0)

Swoole\Redis\Server::setHandler — Description

Description

public Swoole\Redis\Server::setHandler(
string $command,
string $callback,
string $number_of_string_param = ?,
string $type_of_array_param = ?
): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

command

callback

number_of_string_param

type_of_array_param

Valeurs de retour


Description

  • « Swoole\Redis\Server::setHandler
  • Swoole\Serialize »
  • PHP Manual
  • Swoole\Redis\Server
  • Description

Swoole\Redis\Server::start

(PECL swoole >= 1.9.0)

Swoole\Redis\Server::start — Description

Description

public Swoole\Redis\Server::start(): ReturnType

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


The Swoole\Serialize class

(PECL swoole >= 1.9.0)

Introduction

Synopsis de la classe

class Swoole\Serialize {
/* Méthodes */
public static pack(string $data, int $is_fast = ?): ReturnType
public static unpack(string $data, string $args = ?): ReturnType
}

Sommaire

  • Swoole\Serialize::pack — Serialize the data.
  • Swoole\Serialize::unpack — Unserialize the data.


Serialize the data.

  • « Swoole\Serialize
  • Swoole\Serialize::unpack »
  • PHP Manual
  • Swoole\Serialize
  • Serialize the data.

Swoole\Serialize::pack

(PECL swoole >= 1.9.0)

Swoole\Serialize::pack — Serialize the data.

Description

public static Swoole\Serialize::pack(string $data, int $is_fast = ?): ReturnType

Swoole provides a fast and high performance serialization module.

Liste de paramètres

data

is_fast

Valeurs de retour


Unserialize the data.

  • « Swoole\Serialize::pack
  • Swoole\Server »
  • PHP Manual
  • Swoole\Serialize
  • Unserialize the data.

Swoole\Serialize::unpack

(PECL swoole >= 1.9.0)

Swoole\Serialize::unpack — Unserialize the data.

Description

public static Swoole\Serialize::unpack(string $data, string $args = ?): ReturnType

Unserialize the data.

Liste de paramètres

string

args

Valeurs de retour


The Swoole\Server class

(PECL swoole >= 1.9.0)

Introduction

Synopsis de la classe

class Swoole\Server {
/* Méthodes */
public addlistener(string $host, int $port, string $socket_type): void
public addProcess(swoole_process $process): bool
public after(int $after_time_ms, callable $callback, string $param = ?): ReturnType
public bind(int $fd, int $uid): bool
public clearTimer(int $timer_id): void
swoole_timer_clear(int $timer_id): void
public close(int $fd, bool $reset = ?): bool
public confirm(int $fd): bool
public connection_info(int $fd, int $reactor_id = ?): array
public connection_list(int $start_fd, int $pagesize = ?): array
public defer(callable $callback): void
public Swoole\Server\Port::__destruct(): void
public Swoole\Server\Port::on(string $event_name, callable $callback): ReturnType
public Swoole\Server\Port::set(array $settings): void
public exist(int $fd): bool
public finish(string $data): void
public getClientInfo(int $fd, int $reactor_id = ?, bool $ignore_error = ?): array
public getClientList(int $start_fd, int $pagesize = ?): array
public getLastError(): int
public heartbeat(bool $if_close_connection): mixed
public listen(string $host, int $port, string $socket_type): bool
public on(string $event_name, callable $callback): void
public pause(int $fd): void
public protect(int $fd, bool $is_protected = ?): void
public reload(): bool
public resume(int $fd): void
public send(int $fd, string $data, int $reactor_id = ?): bool
public sendfile(int $fd, string $filename, int $offset = ?): bool
public sendMessage(int $worker_id, string $data): bool
public sendto(
string $ip,
int $port,
string $data,
string $server_socket = ?
): bool
public sendwait(int $fd, string $data): bool
public set(array $settings): ReturnType
public shutdown(): void
public start(): void
public stats(): array
public stop(int $worker_id = ?): bool
public task(string $data, int $dst_worker_id = ?, callable $callback = ?): mixed
public taskwait(string $data, float $timeout = ?, int $worker_id = ?): void
public taskWaitMulti(array $tasks, float $timeout_ms = ?): void
public tick(int $interval_ms, callable $callback): void
}

Sommaire

  • Swoole\Server::addlistener — Add a new listener to the server.
  • Swoole\Server::addProcess — Add a user defined swoole_process to the server.
  • Swoole\Server::after — Trigger a callback function after a period of time.
  • Swoole\Server::bind — Bind the connection to a user defined user ID.
  • Swoole\Server::clearTimer — Stop and destroy a timer.
  • Swoole\Server::close — Close a connection to the client.
  • Swoole\Server::confirm — Check status of the connection.
  • Swoole\Server::connection_info — Get the connection info by file description.
  • Swoole\Server::connection_list — Get all of the established connections.
  • Swoole\Server::__construct — Construct a Swoole server.
  • Swoole\Server::defer — Delay execution of the callback function at the end of current EventLoop.
  • Swoole\Server\Port::__construct — Construct a server port
  • Swoole\Server\Port::__destruct — Destory server port
  • Swoole\Server\Port::on — Register callback functions by event.
  • Swoole\Server\Port::set — Set protocol of the server port.
  • Swoole\Server::exist — Check if the connection is existed.
  • Swoole\Server::finish — Used in task process for sending result to the worker process when the task is finished.
  • Swoole\Server::getClientInfo — Get the connection info by file description.
  • Swoole\Server::getClientList — Get all of the established connections.
  • Swoole\Server::getLastError — Get the error code of the most recent error.
  • Swoole\Server::heartbeat — Check all the connections on the server.
  • Swoole\Server::listen — Listen on the given IP and port, socket type.
  • Swoole\Server::on — Register a callback function by event name.
  • Swoole\Server::pause — Stop receiving data from the connection.
  • Swoole\Server::protect — Set the connection to be protected mode.
  • Swoole\Server::reload — Restart all the worker process.
  • Swoole\Server::resume — Start receving data from the connection.
  • Swoole\Server::send — Send data to the client.
  • Swoole\Server::sendfile — Send file to the connection.
  • Swoole\Server::sendMessage — Send message to worker processes by ID.
  • Swoole\Server::sendto — Send data to the remote UDP address.
  • Swoole\Server::sendwait — Send data to the remote socket in the blocking way.
  • Swoole\Server::set — Set the runtime settings of the swoole server.
  • Swoole\Server::shutdown — Shutdown the master server process, this function can be called in worker processes.
  • Swoole\Server::start — Start the Swoole server.
  • Swoole\Server::stats — Get the stats of the Swoole server.
  • Swoole\Server::stop — Stop the Swoole server.
  • Swoole\Server::task — Send data to the task worker processes.
  • Swoole\Server::taskwait — Send data to the task worker processes in blocking way.
  • Swoole\Server::taskWaitMulti — Execute multiple tasks concurrently.
  • Swoole\Server::tick — Repeats a given function at every given time-interval.


Add a new listener to the server.

  • « Swoole\Server
  • Swoole\Server::addProcess »
  • PHP Manual
  • Swoole\Server
  • Add a new listener to the server.

Swoole\Server::addlistener

(PECL swoole >= 1.9.0)

Swoole\Server::addlistener — Add a new listener to the server.

Description

public Swoole\Server::addlistener(string $host, int $port, string $socket_type): void

Liste de paramètres

host

port

socket_type

Valeurs de retour


Add a user defined swoole_process to the server.

  • « Swoole\Server::addlistener
  • Swoole\Server::after »
  • PHP Manual
  • Swoole\Server
  • Add a user defined swoole_process to the server.

Swoole\Server::addProcess

(PECL swoole >= 1.9.0)

Swoole\Server::addProcess — Add a user defined swoole_process to the server.

Description

public Swoole\Server::addProcess(swoole_process $process): bool

Liste de paramètres

process

Valeurs de retour


Trigger a callback function after a period of time.

  • « Swoole\Server::addProcess
  • Swoole\Server::bind »
  • PHP Manual
  • Swoole\Server
  • Trigger a callback function after a period of time.

Swoole\Server::after

(PECL swoole >= 1.9.0)

Swoole\Server::after — Trigger a callback function after a period of time.

Description

public Swoole\Server::after(int $after_time_ms, callable $callback, string $param = ?): ReturnType

Liste de paramètres

after_time_ms

callback

param

Valeurs de retour


Bind the connection to a user defined user ID.

  • « Swoole\Server::after
  • Swoole\Server::clearTimer »
  • PHP Manual
  • Swoole\Server
  • Bind the connection to a user defined user ID.

Swoole\Server::bind

(PECL swoole >= 1.9.0)

Swoole\Server::bind — Bind the connection to a user defined user ID.

Description

public Swoole\Server::bind(int $fd, int $uid): bool

Liste de paramètres

fd

uid

Valeurs de retour


Stop and destroy a timer.

  • « Swoole\Server::bind
  • Swoole\Server::close »
  • PHP Manual
  • Swoole\Server
  • Stop and destroy a timer.

Swoole\Server::clearTimer

swoole_timer_clear

(PECL swoole >= 1.9.0)

Swoole\Server::clearTimer -- swoole_timer_clear — Stop and destroy a timer.

Description

Style orienté objet (method):

public Swoole\Server::clearTimer(int $timer_id): void

Style procédural:

swoole_timer_clear(int $timer_id): void

Stop and destroy a timer

Liste de paramètres

timer_id

Valeurs de retour


Close a connection to the client.

  • « Swoole\Server::clearTimer
  • Swoole\Server::confirm »
  • PHP Manual
  • Swoole\Server
  • Close a connection to the client.

Swoole\Server::close

(PECL swoole >= 1.9.0)

Swoole\Server::close — Close a connection to the client.

Description

public Swoole\Server::close(int $fd, bool $reset = ?): bool

Liste de paramètres

fd

reset

Valeurs de retour


Check status of the connection.

  • « Swoole\Server::close
  • Swoole\Server::connection_info »
  • PHP Manual
  • Swoole\Server
  • Check status of the connection.

Swoole\Server::confirm

(PECL swoole >= 1.9.0)

Swoole\Server::confirm — Check status of the connection.

Description

public Swoole\Server::confirm(int $fd): bool

Liste de paramètres

fd

Valeurs de retour


Get the connection info by file description.

  • « Swoole\Server::confirm
  • Swoole\Server::connection_list »
  • PHP Manual
  • Swoole\Server
  • Get the connection info by file description.

Swoole\Server::connection_info

(PECL swoole >= 1.9.0)

Swoole\Server::connection_info — Get the connection info by file description.

Description

public Swoole\Server::connection_info(int $fd, int $reactor_id = ?): array

Liste de paramètres

fd

reactor_id

Valeurs de retour


Get all of the established connections.

  • « Swoole\Server::connection_info
  • Swoole\Server::__construct »
  • PHP Manual
  • Swoole\Server
  • Get all of the established connections.

Swoole\Server::connection_list

(PECL swoole >= 1.9.0)

Swoole\Server::connection_list — Get all of the established connections.

Description

public Swoole\Server::connection_list(int $start_fd, int $pagesize = ?): array

Liste de paramètres

start_fd

pagesize

Valeurs de retour


Construct a Swoole server.

  • « Swoole\Server::connection_list
  • Swoole\Server::defer »
  • PHP Manual
  • Swoole\Server
  • Construct a Swoole server.

Swoole\Server::__construct

(PECL swoole >= 1.9.0)

Swoole\Server::__construct — Construct a Swoole server.

Description

public Swoole\Server::__construct(
string $host,
int $port = ?,
integr $mode = ?,
int $sock_type = ?
)

Liste de paramètres

host

port

mode

sock_type


Delay execution of the callback function at the end of current EventLoop.

  • « Swoole\Server::__construct
  • Swoole\Server\Port::__construct »
  • PHP Manual
  • Swoole\Server
  • Delay execution of the callback function at the end of current EventLoop.

Swoole\Server::defer

(PECL swoole >= 1.9.0)

Swoole\Server::defer — Delay execution of the callback function at the end of current EventLoop.

Description

public Swoole\Server::defer(callable $callback): void

Liste de paramètres

callback

Valeurs de retour


Construct a server port

  • « Swoole\Server::defer
  • Swoole\Server\Port::__destruct »
  • PHP Manual
  • Swoole\Server
  • Construct a server port

Swoole\Server\Port::__construct

(PECL swoole >= 1.9.0)

Swoole\Server\Port::__construct — Construct a server port

Description

private Swoole\Server\Port::__construct()

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Destory server port

  • « Swoole\Server\Port::__construct
  • Swoole\Server\Port::on »
  • PHP Manual
  • Swoole\Server
  • Destory server port

Swoole\Server\Port::__destruct

(PECL swoole >= 1.9.0)

Swoole\Server\Port::__destruct — Destory server port

Description

public Swoole\Server\Port::__destruct(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Register callback functions by event.

  • « Swoole\Server\Port::__destruct
  • Swoole\Server\Port::set »
  • PHP Manual
  • Swoole\Server
  • Register callback functions by event.

Swoole\Server\Port::on

(PECL swoole >= 1.9.0)

Swoole\Server\Port::on — Register callback functions by event.

Description

public Swoole\Server\Port::on(string $event_name, callable $callback): ReturnType

Liste de paramètres

event_name

callback

Valeurs de retour


Set protocol of the server port.

  • « Swoole\Server\Port::on
  • Swoole\Server::exist »
  • PHP Manual
  • Swoole\Server
  • Set protocol of the server port.

Swoole\Server\Port::set

(PECL swoole >= 1.9.0)

Swoole\Server\Port::set — Set protocol of the server port.

Description

public Swoole\Server\Port::set(array $settings): void

Liste de paramètres

settings

Valeurs de retour


Check if the connection is existed.

  • « Swoole\Server\Port::set
  • Swoole\Server::finish »
  • PHP Manual
  • Swoole\Server
  • Check if the connection is existed.

Swoole\Server::exist

(PECL swoole >= 1.9.0)

Swoole\Server::exist — Check if the connection is existed.

Description

public Swoole\Server::exist(int $fd): bool

Liste de paramètres

fd

Valeurs de retour


Used in task process for sending result to the worker process when the task is finished.

  • « Swoole\Server::exist
  • Swoole\Server::getClientInfo »
  • PHP Manual
  • Swoole\Server
  • Used in task process for sending result to the worker process when the task is finished.

Swoole\Server::finish

(PECL swoole >= 1.9.0)

Swoole\Server::finish — Used in task process for sending result to the worker process when the task is finished.

Description

public Swoole\Server::finish(string $data): void

Liste de paramètres

data

Valeurs de retour


Get the connection info by file description.

  • « Swoole\Server::finish
  • Swoole\Server::getClientList »
  • PHP Manual
  • Swoole\Server
  • Get the connection info by file description.

Swoole\Server::getClientInfo

(PECL swoole >= 1.9.0)

Swoole\Server::getClientInfo — Get the connection info by file description.

Description

public Swoole\Server::getClientInfo(int $fd, int $reactor_id = ?, bool $ignore_error = ?): array

Liste de paramètres

fd

File descriptors.

reactor_id

The Reactor thread ID where the connection is made.

ignore_error

Whether to ignore errors, if set to true, connection information will be returned even if the connection is closed.

Valeurs de retour

Returns information about the client connection.


Get all of the established connections.

  • « Swoole\Server::getClientInfo
  • Swoole\Server::getLastError »
  • PHP Manual
  • Swoole\Server
  • Get all of the established connections.

Swoole\Server::getClientList

(PECL swoole >= 1.9.0)

Swoole\Server::getClientList — Get all of the established connections.

Description

public Swoole\Server::getClientList(int $start_fd, int $pagesize = ?): array

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

start_fd

pagesize

Valeurs de retour


Get the error code of the most recent error.

  • « Swoole\Server::getClientList
  • Swoole\Server::heartbeat »
  • PHP Manual
  • Swoole\Server
  • Get the error code of the most recent error.

Swoole\Server::getLastError

(PECL swoole >= 1.9.0)

Swoole\Server::getLastError — Get the error code of the most recent error.

Description

public Swoole\Server::getLastError(): int

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Check all the connections on the server.

  • « Swoole\Server::getLastError
  • Swoole\Server::listen »
  • PHP Manual
  • Swoole\Server
  • Check all the connections on the server.

Swoole\Server::heartbeat

(PECL swoole >= 1.9.0)

Swoole\Server::heartbeat — Check all the connections on the server.

Description

public Swoole\Server::heartbeat(bool $if_close_connection): mixed

Liste de paramètres

if_close_connection

Valeurs de retour


Listen on the given IP and port, socket type.

  • « Swoole\Server::heartbeat
  • Swoole\Server::on »
  • PHP Manual
  • Swoole\Server
  • Listen on the given IP and port, socket type.

Swoole\Server::listen

(PECL swoole >= 1.9.0)

Swoole\Server::listen — Listen on the given IP and port, socket type.

Description

public Swoole\Server::listen(string $host, int $port, string $socket_type): bool

Liste de paramètres

host

port

socket_type

Valeurs de retour


Register a callback function by event name.

  • « Swoole\Server::listen
  • Swoole\Server::pause »
  • PHP Manual
  • Swoole\Server
  • Register a callback function by event name.

Swoole\Server::on

(PECL swoole >= 1.9.0)

Swoole\Server::on — Register a callback function by event name.

Description

public Swoole\Server::on(string $event_name, callable $callback): void

Liste de paramètres

event_name

callback

Valeurs de retour


Stop receiving data from the connection.

  • « Swoole\Server::on
  • Swoole\Server::protect »
  • PHP Manual
  • Swoole\Server
  • Stop receiving data from the connection.

Swoole\Server::pause

(PECL swoole >= 1.9.0)

Swoole\Server::pause — Stop receiving data from the connection.

Description

public Swoole\Server::pause(int $fd): void

Liste de paramètres

fd

Valeurs de retour


Set the connection to be protected mode.

  • « Swoole\Server::pause
  • Swoole\Server::reload »
  • PHP Manual
  • Swoole\Server
  • Set the connection to be protected mode.

Swoole\Server::protect

(PECL swoole >= 1.9.0)

Swoole\Server::protect — Set the connection to be protected mode.

Description

public Swoole\Server::protect(int $fd, bool $is_protected = ?): void

Liste de paramètres

fd

is_protected

Valeurs de retour


Restart all the worker process.

  • « Swoole\Server::protect
  • Swoole\Server::resume »
  • PHP Manual
  • Swoole\Server
  • Restart all the worker process.

Swoole\Server::reload

(PECL swoole >= 1.9.0)

Swoole\Server::reload — Restart all the worker process.

Description

public Swoole\Server::reload(): bool

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Start receving data from the connection.

  • « Swoole\Server::reload
  • Swoole\Server::send »
  • PHP Manual
  • Swoole\Server
  • Start receving data from the connection.

Swoole\Server::resume

(PECL swoole >= 1.9.0)

Swoole\Server::resume — Start receving data from the connection.

Description

public Swoole\Server::resume(int $fd): void

Liste de paramètres

fd

Valeurs de retour


Send data to the client.

  • « Swoole\Server::resume
  • Swoole\Server::sendfile »
  • PHP Manual
  • Swoole\Server
  • Send data to the client.

Swoole\Server::send

(PECL swoole >= 1.9.0)

Swoole\Server::send — Send data to the client.

Description

public Swoole\Server::send(int $fd, string $data, int $reactor_id = ?): bool

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

fd

data

reactor_id

Valeurs de retour


Send file to the connection.

  • « Swoole\Server::send
  • Swoole\Server::sendMessage »
  • PHP Manual
  • Swoole\Server
  • Send file to the connection.

Swoole\Server::sendfile

(PECL swoole >= 1.9.0)

Swoole\Server::sendfile — Send file to the connection.

Description

public Swoole\Server::sendfile(int $fd, string $filename, int $offset = ?): bool

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

fd

filename

offset

Valeurs de retour


Send message to worker processes by ID.

  • « Swoole\Server::sendfile
  • Swoole\Server::sendto »
  • PHP Manual
  • Swoole\Server
  • Send message to worker processes by ID.

Swoole\Server::sendMessage

(PECL swoole >= 1.9.0)

Swoole\Server::sendMessage — Send message to worker processes by ID.

Description

public Swoole\Server::sendMessage(int $worker_id, string $data): bool

Liste de paramètres

dst_worker_id

data

Valeurs de retour


Send data to the remote UDP address.

  • « Swoole\Server::sendMessage
  • Swoole\Server::sendwait »
  • PHP Manual
  • Swoole\Server
  • Send data to the remote UDP address.

Swoole\Server::sendto

(PECL swoole >= 1.9.0)

Swoole\Server::sendto — Send data to the remote UDP address.

Description

public Swoole\Server::sendto(
string $ip,
int $port,
string $data,
string $server_socket = ?
): bool

Liste de paramètres

ip

port

data

server_socket

Valeurs de retour


Send data to the remote socket in the blocking way.

  • « Swoole\Server::sendto
  • Swoole\Server::set »
  • PHP Manual
  • Swoole\Server
  • Send data to the remote socket in the blocking way.

Swoole\Server::sendwait

(PECL swoole >= 1.9.0)

Swoole\Server::sendwait — Send data to the remote socket in the blocking way.

Description

public Swoole\Server::sendwait(int $fd, string $data): bool

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

fd

data

Valeurs de retour


Set the runtime settings of the swoole server.

  • « Swoole\Server::sendwait
  • Swoole\Server::shutdown »
  • PHP Manual
  • Swoole\Server
  • Set the runtime settings of the swoole server.

Swoole\Server::set

(PECL swoole >= 1.9.0)

Swoole\Server::set — Set the runtime settings of the swoole server.

Description

public Swoole\Server::set(array $settings): ReturnType

Set the runtime settings of the swoole server. The settings can be accessed by $server->setting when the swoole server has started.

Liste de paramètres

settings

Valeurs de retour


Shutdown the master server process, this function can be called in worker processes.

  • « Swoole\Server::set
  • Swoole\Server::start »
  • PHP Manual
  • Swoole\Server
  • Shutdown the master server process, this function can be called in worker processes.

Swoole\Server::shutdown

(PECL swoole >= 1.9.0)

Swoole\Server::shutdown — Shutdown the master server process, this function can be called in worker processes.

Description

public Swoole\Server::shutdown(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Start the Swoole server.

  • « Swoole\Server::shutdown
  • Swoole\Server::stats »
  • PHP Manual
  • Swoole\Server
  • Start the Swoole server.

Swoole\Server::start

(PECL swoole >= 1.9.0)

Swoole\Server::start — Start the Swoole server.

Description

public Swoole\Server::start(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Get the stats of the Swoole server.

  • « Swoole\Server::start
  • Swoole\Server::stop »
  • PHP Manual
  • Swoole\Server
  • Get the stats of the Swoole server.

Swoole\Server::stats

(PECL swoole >= 1.9.0)

Swoole\Server::stats — Get the stats of the Swoole server.

Description

public Swoole\Server::stats(): array

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Stop the Swoole server.

  • « Swoole\Server::stats
  • Swoole\Server::task »
  • PHP Manual
  • Swoole\Server
  • Stop the Swoole server.

Swoole\Server::stop

(PECL swoole >= 1.9.0)

Swoole\Server::stop — Stop the Swoole server.

Description

public Swoole\Server::stop(int $worker_id = ?): bool

Liste de paramètres

worker_id

Valeurs de retour


Send data to the task worker processes.

  • « Swoole\Server::stop
  • Swoole\Server::taskwait »
  • PHP Manual
  • Swoole\Server
  • Send data to the task worker processes.

Swoole\Server::task

(PECL swoole >= 1.9.0)

Swoole\Server::task — Send data to the task worker processes.

Description

public Swoole\Server::task(string $data, int $dst_worker_id = ?, callable $callback = ?): mixed

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

data

dst_worker_id

callback

Valeurs de retour


Send data to the task worker processes in blocking way.

  • « Swoole\Server::task
  • Swoole\Server::taskWaitMulti »
  • PHP Manual
  • Swoole\Server
  • Send data to the task worker processes in blocking way.

Swoole\Server::taskwait

(PECL swoole >= 1.9.0)

Swoole\Server::taskwait — Send data to the task worker processes in blocking way.

Description

public Swoole\Server::taskwait(string $data, float $timeout = ?, int $worker_id = ?): void

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

data

timeout

worker_id

Valeurs de retour


Execute multiple tasks concurrently.

  • « Swoole\Server::taskwait
  • Swoole\Server::tick »
  • PHP Manual
  • Swoole\Server
  • Execute multiple tasks concurrently.

Swoole\Server::taskWaitMulti

(PECL swoole >= 1.9.0)

Swoole\Server::taskWaitMulti — Execute multiple tasks concurrently.

Description

public Swoole\Server::taskWaitMulti(array $tasks, float $timeout_ms = ?): void

Liste de paramètres

tasks

timeout_ms

Valeurs de retour


Repeats a given function at every given time-interval.

  • « Swoole\Server::taskWaitMulti
  • Swoole\Table »
  • PHP Manual
  • Swoole\Server
  • Repeats a given function at every given time-interval.

Swoole\Server::tick

(PECL swoole >= 1.9.0)

Swoole\Server::tick — Repeats a given function at every given time-interval.

Description

public Swoole\Server::tick(int $interval_ms, callable $callback): void

Liste de paramètres

interval_ms

callback

Valeurs de retour


The Swoole\Table class

(PECL swoole >= 1.9.0)

Introduction

Synopsis de la classe

class Swoole\Table implements Iterator, Countable {
/* Constantes */
const int TYPE_INT = 1;
const int TYPE_STRING = 7;
const int TYPE_FLOAT = 6;
/* Méthodes */
public column(string $name, string $type, int $size = ?): ReturnType
public count(): int
public create(): void
public current(): array
public decr(string $key, string $column, int $decrby = ?): ReturnType
public del(string $key): void
public destroy(): void
public exist(string $key): bool
public get(string $row_key, string $column_key): int
public incr(string $key, string $column, int $incrby = ?): void
public key(): string
public next(): ReturnType
public rewind(): void
public set(string $key, array $value): void
public valid(): bool
}

Constantes pré-définies

Swoole\Table::TYPE_INT

Swoole\Table::TYPE_STRING

Swoole\Table::TYPE_FLOAT

Sommaire

  • Swoole\Table::column — Set the data type and size of the columns.
  • Swoole\Table::__construct — Construct a Swoole memory table with fixed size.
  • Swoole\Table::count — Count the rows in the table, or count all the elements in the table if $mode = 1.
  • Swoole\Table::create — Create the swoole memory table.
  • Swoole\Table::current — Get the current row.
  • Swoole\Table::decr — Decrement the value in the Swoole table by $row_key and $column_key.
  • Swoole\Table::del — Delete a row in the Swoole table by $row_key.
  • Swoole\Table::destroy — Destroy the Swoole table.
  • Swoole\Table::exist — Check if a row is existed by $row_key.
  • Swoole\Table::get — Get the value in the Swoole table by $row_key and $column_key.
  • Swoole\Table::incr — Increment the value by $row_key and $column_key.
  • Swoole\Table::key — Get the key of current row.
  • Swoole\Table::next — Iterator the next row.
  • Swoole\Table::rewind — Rewind the iterator.
  • Swoole\Table::set — Update a row of the table by $row_key.
  • Swoole\Table::valid — Check if the current row is valid.


Set the data type and size of the columns.

  • « Swoole\Table
  • Swoole\Table::__construct »
  • PHP Manual
  • Swoole\Table
  • Set the data type and size of the columns.

Swoole\Table::column

(PECL swoole >= 1.9.0)

Swoole\Table::column — Set the data type and size of the columns.

Description

public Swoole\Table::column(string $name, string $type, int $size = ?): ReturnType

Liste de paramètres

name

type

size

Valeurs de retour


Construct a Swoole memory table with fixed size.

  • « Swoole\Table::column
  • Swoole\Table::count »
  • PHP Manual
  • Swoole\Table
  • Construct a Swoole memory table with fixed size.

Swoole\Table::__construct

(PECL swoole >= 1.9.0)

Swoole\Table::__construct — Construct a Swoole memory table with fixed size.

Description

public Swoole\Table::__construct(int $table_size)

Liste de paramètres

table_size


Count the rows in the table, or count all the elements in the table if $mode = 1.

  • « Swoole\Table::__construct
  • Swoole\Table::create »
  • PHP Manual
  • Swoole\Table
  • Count the rows in the table, or count all the elements in the table if $mode = 1.

Swoole\Table::count

(PECL swoole >= 1.9.0)

Swoole\Table::count — Count the rows in the table, or count all the elements in the table if $mode = 1.

Description

public Swoole\Table::count(): int

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Create the swoole memory table.

  • « Swoole\Table::count
  • Swoole\Table::current »
  • PHP Manual
  • Swoole\Table
  • Create the swoole memory table.

Swoole\Table::create

(PECL swoole >= 1.9.0)

Swoole\Table::create — Create the swoole memory table.

Description

public Swoole\Table::create(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Get the current row.

  • « Swoole\Table::create
  • Swoole\Table::decr »
  • PHP Manual
  • Swoole\Table
  • Get the current row.

Swoole\Table::current

(PECL swoole >= 1.9.0)

Swoole\Table::current — Get the current row.

Description

public Swoole\Table::current(): array

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Decrement the value in the Swoole table by $row_key and $column_key.

  • « Swoole\Table::current
  • Swoole\Table::del »
  • PHP Manual
  • Swoole\Table
  • Decrement the value in the Swoole table by $row_key and $column_key.

Swoole\Table::decr

(PECL swoole >= 1.9.0)

Swoole\Table::decr — Decrement the value in the Swoole table by $row_key and $column_key.

Description

public Swoole\Table::decr(string $key, string $column, int $decrby = ?): ReturnType

Liste de paramètres

key

column

decrby

Valeurs de retour


Delete a row in the Swoole table by $row_key.

  • « Swoole\Table::decr
  • Swoole\Table::destroy »
  • PHP Manual
  • Swoole\Table
  • Delete a row in the Swoole table by $row_key.

Swoole\Table::del

(PECL swoole >= 1.9.0)

Swoole\Table::del — Delete a row in the Swoole table by $row_key.

Description

public Swoole\Table::del(string $key): void

Liste de paramètres

key

Valeurs de retour


Destroy the Swoole table.

  • « Swoole\Table::del
  • Swoole\Table::exist »
  • PHP Manual
  • Swoole\Table
  • Destroy the Swoole table.

Swoole\Table::destroy

(PECL swoole >= 1.9.0)

Swoole\Table::destroy — Destroy the Swoole table.

Description

public Swoole\Table::destroy(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Check if a row is existed by $row_key.

  • « Swoole\Table::destroy
  • Swoole\Table::get »
  • PHP Manual
  • Swoole\Table
  • Check if a row is existed by $row_key.

Swoole\Table::exist

(PECL swoole >= 1.9.0)

Swoole\Table::exist — Check if a row is existed by $row_key.

Description

public Swoole\Table::exist(string $key): bool

Liste de paramètres

key

Valeurs de retour


Get the value in the Swoole table by $row_key and $column_key.

  • « Swoole\Table::exist
  • Swoole\Table::incr »
  • PHP Manual
  • Swoole\Table
  • Get the value in the Swoole table by $row_key and $column_key.

Swoole\Table::get

(PECL swoole >= 1.9.0)

Swoole\Table::get — Get the value in the Swoole table by $row_key and $column_key.

Description

public Swoole\Table::get(string $row_key, string $column_key): int

Liste de paramètres

row_key

column_key

Valeurs de retour


Increment the value by $row_key and $column_key.

  • « Swoole\Table::get
  • Swoole\Table::key »
  • PHP Manual
  • Swoole\Table
  • Increment the value by $row_key and $column_key.

Swoole\Table::incr

(PECL swoole >= 1.9.0)

Swoole\Table::incr — Increment the value by $row_key and $column_key.

Description

public Swoole\Table::incr(string $key, string $column, int $incrby = ?): void

Liste de paramètres

key

column

incrby

Valeurs de retour


Get the key of current row.

  • « Swoole\Table::incr
  • Swoole\Table::next »
  • PHP Manual
  • Swoole\Table
  • Get the key of current row.

Swoole\Table::key

(PECL swoole >= 1.9.0)

Swoole\Table::key — Get the key of current row.

Description

public Swoole\Table::key(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Iterator the next row.

  • « Swoole\Table::key
  • Swoole\Table::rewind »
  • PHP Manual
  • Swoole\Table
  • Iterator the next row.

Swoole\Table::next

(PECL swoole >= 1.9.0)

Swoole\Table::next — Iterator the next row.

Description

public Swoole\Table::next(): ReturnType

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Rewind the iterator.

  • « Swoole\Table::next
  • Swoole\Table::set »
  • PHP Manual
  • Swoole\Table
  • Rewind the iterator.

Swoole\Table::rewind

(PECL swoole >= 1.9.0)

Swoole\Table::rewind — Rewind the iterator.

Description

public Swoole\Table::rewind(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Update a row of the table by $row_key.

  • « Swoole\Table::rewind
  • Swoole\Table::valid »
  • PHP Manual
  • Swoole\Table
  • Update a row of the table by $row_key.

Swoole\Table::set

(PECL swoole >= 1.9.0)

Swoole\Table::set — Update a row of the table by $row_key.

Description

public Swoole\Table::set(string $key, array $value): void

Liste de paramètres

key

value

Valeurs de retour


Check if the current row is valid.

  • « Swoole\Table::set
  • Swoole\Timer »
  • PHP Manual
  • Swoole\Table
  • Check if the current row is valid.

Swoole\Table::valid

(PECL swoole >= 1.9.0)

Swoole\Table::valid — Check if the current row is valid.

Description

public Swoole\Table::valid(): bool

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


The Swoole\Timer class

(PECL swoole >= 1.9.0)

Introduction

Synopsis de la classe

class Swoole\Timer {
/* Méthodes */
public static after(int $after_time_ms, callable $callback): void
public static clear(int $timer_id): void
public static exists(int $timer_id): bool
public static tick(int $interval_ms, callable $callback, string $param = ?): void
}

Sommaire

  • Swoole\Timer::after — Trigger a callback function after a period of time.
  • Swoole\Timer::clear — Delete a timer by timer ID.
  • Swoole\Timer::exists — Check if a timer is existed.
  • Swoole\Timer::tick — Repeats a given function at every given time-interval.


Trigger a callback function after a period of time.

  • « Swoole\Timer
  • Swoole\Timer::clear »
  • PHP Manual
  • Swoole\Timer
  • Trigger a callback function after a period of time.

Swoole\Timer::after

(PECL swoole >= 1.9.0)

Swoole\Timer::after — Trigger a callback function after a period of time.

Description

public static Swoole\Timer::after(int $after_time_ms, callable $callback): void

Trigger a callback function after a period of time.

Liste de paramètres

after_time_ms

callback

Valeurs de retour


Delete a timer by timer ID.

  • « Swoole\Timer::after
  • Swoole\Timer::exists »
  • PHP Manual
  • Swoole\Timer
  • Delete a timer by timer ID.

Swoole\Timer::clear

(PECL swoole >= 1.9.0)

Swoole\Timer::clear — Delete a timer by timer ID.

Description

public static Swoole\Timer::clear(int $timer_id): void

Delete a timer by timer ID.

Liste de paramètres

timer_id

Valeurs de retour


Check if a timer is existed.

  • « Swoole\Timer::clear
  • Swoole\Timer::tick »
  • PHP Manual
  • Swoole\Timer
  • Check if a timer is existed.

Swoole\Timer::exists

(PECL swoole >= 1.9.0)

Swoole\Timer::exists — Check if a timer is existed.

Description

public static Swoole\Timer::exists(int $timer_id): bool

Check if a timer is existed.

Liste de paramètres

timer_id

Valeurs de retour


Repeats a given function at every given time-interval.

  • « Swoole\Timer::exists
  • Swoole\WebSocket\Frame »
  • PHP Manual
  • Swoole\Timer
  • Repeats a given function at every given time-interval.

Swoole\Timer::tick

(PECL swoole >= 1.9.0)

Swoole\Timer::tick — Repeats a given function at every given time-interval.

Description

public static Swoole\Timer::tick(int $interval_ms, callable $callback, string $param = ?): void

Liste de paramètres

interval_ms

callback

param

Valeurs de retour


The Swoole\WebSocket\Frame class

(PECL swoole >= 1.9.0)

Introduction

Synopsis de la classe

class Swoole\WebSocket\Frame {
/* Méthodes */
}


The Swoole\WebSocket\Server class

(PECL swoole >= 1.9.0)

Introduction

Synopsis de la classe

class Swoole\WebSocket\Server extends Swoole\Http\Server {
/* Méthodes */
public exist(int $fd): bool
public on(string $event_name, callable $callback): ReturnType
public static pack(
string $data,
string $opcode = ?,
string $finish = ?,
string $mask = ?
): binary
public push(
string $fd,
string $data,
string $opcode = ?,
string $finish = ?
): void
public static unpack(binary $data): string
/* Méthodes héritées */
public Swoole\Http\Server::on(string $event_name, callable $callback): void
public Swoole\Http\Server::start(): void
}

Sommaire

  • Swoole\WebSocket\Server::exist — Check if the file descriptor exists.
  • Swoole\WebSocket\Server::on — Register event callback function
  • Swoole\WebSocket\Server::pack — Get a pack of binary data to send in a single frame.
  • Swoole\WebSocket\Server::push — Push data to the remote client.
  • Swoole\WebSocket\Server::unpack — Unpack the binary data received from the client.


Check if the file descriptor exists.

  • « Swoole\WebSocket\Server
  • Swoole\WebSocket\Server::on »
  • PHP Manual
  • Swoole\WebSocket\Server
  • Check if the file descriptor exists.

Swoole\WebSocket\Server::exist

(PECL swoole >= 1.9.0)

Swoole\WebSocket\Server::exist — Check if the file descriptor exists.

Description

public Swoole\WebSocket\Server::exist(int $fd): bool

Liste de paramètres

fd

Valeurs de retour


Register event callback function

  • « Swoole\WebSocket\Server::exist
  • Swoole\WebSocket\Server::pack »
  • PHP Manual
  • Swoole\WebSocket\Server
  • Register event callback function

Swoole\WebSocket\Server::on

(PECL swoole >= 1.9.0)

Swoole\WebSocket\Server::on — Register event callback function

Description

public Swoole\WebSocket\Server::on(string $event_name, callable $callback): ReturnType

Register event callback function

Liste de paramètres

event_name

callback

Valeurs de retour


Get a pack of binary data to send in a single frame.

  • « Swoole\WebSocket\Server::on
  • Swoole\WebSocket\Server::push »
  • PHP Manual
  • Swoole\WebSocket\Server
  • Get a pack of binary data to send in a single frame.

Swoole\WebSocket\Server::pack

(PECL swoole >= 1.9.0)

Swoole\WebSocket\Server::pack — Get a pack of binary data to send in a single frame.

Description

public static Swoole\WebSocket\Server::pack(
string $data,
string $opcode = ?,
string $finish = ?,
string $mask = ?
): binary

Liste de paramètres

data

opcode

finish

mask

Valeurs de retour


Push data to the remote client.

  • « Swoole\WebSocket\Server::pack
  • Swoole\WebSocket\Server::unpack »
  • PHP Manual
  • Swoole\WebSocket\Server
  • Push data to the remote client.

Swoole\WebSocket\Server::push

(PECL swoole >= 1.9.0)

Swoole\WebSocket\Server::push — Push data to the remote client.

Description

public Swoole\WebSocket\Server::push(
string $fd,
string $data,
string $opcode = ?,
string $finish = ?
): void

Liste de paramètres

fd

data

opcode

finish

Valeurs de retour


Unpack the binary data received from the client.

  • « Swoole\WebSocket\Server::push
  • Tidy »
  • PHP Manual
  • Swoole\WebSocket\Server
  • Unpack the binary data received from the client.

Swoole\WebSocket\Server::unpack

(PECL swoole >= 1.9.0)

Swoole\WebSocket\Server::unpack — Unpack the binary data received from the client.

Description

public static Swoole\WebSocket\Server::unpack(binary $data): string

Liste de paramètres

data

Valeurs de retour


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::__construct — Constructeur privée pour interdire l'instanciation directe
    • tidyNode::getParent — Retourne le nœud parent du nœud courant
    • tidyNode::hasChildren — Indique si le nœud a des enfants
    • tidyNode::hasSiblings — Indique si le nœud a des frères
    • tidyNode::isAsp — Vérifie si le nœud est du code ASP
    • tidyNode::isComment — Indique si le nœud représente un commentaire
    • tidyNode::isHtml — Indique si le nœud est une nœud d'élément
    • tidyNode::isJste — Indique si ce nœud est JSTE
    • tidyNode::isPhp — Indique si un nœud contient du code PHP
    • tidyNode::isText — Indique si le nœud 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_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, XHTML et XML, et les traiter sous forme de balises hiérarchisées y compris ceux avec des langages de script incorporés tels que PHP ou ASP en utilisant des constructions orientées objet.


Pré-requis

Pour utiliser Tidy, vous devez disposer de la bibliothèque libtidy, qui est disponible sur la » page d'accueil de tidy. À partir de PHP 7.1.0, le successeur conscient de HTML5 » libtidy5 peut être utilisé alternativement. À partir de PHP 7.3.0, une autre option est d'utiliser » libtidyp.


  • « Pré-requis
  • Configuration à l'exécution »
  • PHP Manual
  • Installation/Configuration
  • Installation

Installation

Tidy est packagé avec PHP, et est installé grâce à l'option de configuration --with-tidy


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 | "" | INI_SYSTEM |
tidy.clean_output | "0" | INI_USER |
Pour plus de détails sur les modes 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 bool

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 une balise "<a href="XX">link</a>".

Les constantes suivantes sont définies par cette extension :

Constantes de balises tidy
Constant | Notes
TIDY_TAG_UNKNOWN |
TIDY_TAG_A |
TIDY_TAG_ABBR |
TIDY_TAG_ACRONYM |
TIDY_TAG_ALIGN |
TIDY_TAG_APPLET |
TIDY_TAG_AREA |
TIDY_TAG_ARTICLE | Ajouté dans libtidy 5.0.0. Disponible à partir de PHP 7.4.0.
TIDY_TAG_ASIDE | Ajouté dans libtidy 5.0.0. Disponible à partir de PHP 7.4.0.
TIDY_TAG_AUDIO | Ajouté dans libtidy 5.0.0. Disponible à partir de PHP 7.4.0.
TIDY_TAG_B |
TIDY_TAG_BASE |
TIDY_TAG_BASEFONT |
TIDY_TAG_BDI | Ajouté dans libtidy 5.0.0. Disponible à partir de PHP 7.4.0.
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_CANVAS | Ajouté dans libtidy 5.0.0. Disponible à partir de PHP 7.4.0.
TIDY_TAG_CAPTION |
TIDY_TAG_CENTER |
TIDY_TAG_CITE |
TIDY_TAG_CODE |
TIDY_TAG_COL |
TIDY_TAG_COLGROUP |
TIDY_TAG_COMMAND | Ajouté dans libtidy 5.0.0. Disponible à partir de PHP 7.4.0.
TIDY_TAG_COMMENT |
TIDY_TAG_DATALIST | Ajouté dans libtidy 5.0.0. Disponible à partir de PHP 7.4.0.
TIDY_TAG_DD |
TIDY_TAG_DEL |
TIDY_TAG_DETAILS | Ajouté dans libtidy 5.0.0. Disponible à partir de PHP 7.4.0.
TIDY_TAG_DFN |
TIDY_TAG_DIALOG | Ajouté dans libtidy 5.0.0. Disponible à partir de PHP 7.4.0.
TIDY_TAG_DIR |
TIDY_TAG_DIV |
TIDY_TAG_DL |
TIDY_TAG_DT |
TIDY_TAG_EM |
TIDY_TAG_EMBED |
TIDY_TAG_FIELDSET |
TIDY_TAG_FIGCAPTION | Ajouté dans libtidy 5.0.0. Disponible à partir de PHP 7.4.0.
TIDY_TAG_FIGURE | Ajouté dans libtidy 5.0.0. Disponible à partir de PHP 7.4.0.
TIDY_TAG_FONT |
TIDY_TAG_FOOTER | Ajouté dans libtidy 5.0.0. Disponible à partir de PHP 7.4.0.
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_HEADER | Ajouté dans libtidy 5.0.0. Disponible à partir de PHP 7.4.0.
TIDY_TAG_HGROUP | Ajouté dans libtidy 5.0.0. Disponible à partir de PHP 7.4.0.
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_MAIN | Ajouté dans libtidy 5.0.0. Disponible à partir de PHP 7.4.0.
TIDY_TAG_MAP |
TIDY_TAG_MARK | Ajouté dans libtidy 5.0.0. Disponible à partir de PHP 7.4.0.
TIDY_TAG_MARQUEE |
TIDY_TAG_MENU |
TIDY_TAG_MENUITEM | Ajouté dans libtidy 5.0.0. Disponible à partir de PHP 7.4.0.
TIDY_TAG_META |
TIDY_TAG_METER | Ajouté dans libtidy 5.0.0. Disponible à partir de PHP 7.4.0.
TIDY_TAG_MULTICOL |
TIDY_TAG_NAV | Ajouté dans libtidy 5.0.0. Disponible à partir de PHP 7.4.0.
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_OUTPUT | Ajouté dans libtidy 5.0.0. Disponible à partir de PHP 7.4.0.
TIDY_TAG_P |
TIDY_TAG_PARAM |
TIDY_TAG_PLAINTEXT |
TIDY_TAG_PRE |
TIDY_TAG_PROGRESS | Ajouté dans libtidy 5.0.0. Disponible à partir de PHP 7.4.0.
TIDY_TAG_Q |
TIDY_TAG_RB |
TIDY_TAG_RBC |
TIDY_TAG_RP |
TIDY_TAG_RT |
TIDY_TAG_RTC |
TIDY_TAG_RUBY |
TIDY_TAG_S |
TIDY_TAG_SAMP |
TIDY_TAG_SCRIPT |
TIDY_TAG_SECTION | Ajouté dans libtidy 5.0.0. Disponible à partir de PHP 7.4.0.
TIDY_TAG_SELECT |
TIDY_TAG_SERVER |
TIDY_TAG_SERVLET |
TIDY_TAG_SMALL |
TIDY_TAG_SOURCE | Ajouté dans libtidy 5.0.0. Disponible à partir de PHP 7.4.0.
TIDY_TAG_SPACER |
TIDY_TAG_SPAN |
TIDY_TAG_STRIKE |
TIDY_TAG_STRONG |
TIDY_TAG_STYLE |
TIDY_TAG_SUB |
TIDY_TAG_SUMMARY | Ajouté dans libtidy 5.0.0. Disponible à partir de PHP 7.4.0.
TIDY_TAG_SUP |
TIDY_TAG_TABLE |
TIDY_TAG_TBODY |
TIDY_TAG_TD |
TIDY_TAG_TEMPLATE | Ajouté dans libtidy 5.0.0. Disponible à partir de PHP 7.4.0.
TIDY_TAG_TEXTAREA |
TIDY_TAG_TFOOT |
TIDY_TAG_TH |
TIDY_TAG_THEAD |
TIDY_TAG_TIME | Ajouté dans libtidy 5.0.0. Disponible à partir de PHP 7.4.0.
TIDY_TAG_TITLE |
TIDY_TAG_TR |
TIDY_TAG_TRACK | Ajouté dans libtidy 5.0.0. Disponible à partir de PHP 7.4.0.
TIDY_TAG_TT |
TIDY_TAG_U |
TIDY_TAG_UL |
TIDY_TAG_VAR |
TIDY_TAG_VIDEO | Ajouté dans libtidy 5.0.0. Disponible à partir de PHP 7.4.0.
TIDY_TAG_WBR |
TIDY_TAG_XMP |

Constantes de types de nœud 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, PHP 8, PECL tidy >= 0.5.2)

Introduction

Une balise HTML, telle que détectée par tidy.

Synopsis de la classe

class tidy {
/* Propriétés */
public ?string $errorBuffer = null;
public ?string $value = null;
/* Méthodes */
public __construct(
?string $filename = null,
array|string|null $config = null,
?string $encoding = null,
bool $useIncludePath = false
)
public body(): ?tidyNode
public cleanRepair(): bool
public diagnose(): bool
public getConfig(): array
public getHtmlVer(): int
public getOpt(string $option): string|int|bool
public getOptDoc(string $option): string|false
public getRelease(): string
public getStatus(): int
public head(): ?tidyNode
public html(): ?tidyNode
public isXhtml(): bool
public isXml(): bool
public parseFile(
string $filename,
array|string|null $config = null,
?string $encoding = null,
bool $useIncludePath = false
): bool
public parseString(string $string, array|string|null $config = null, ?string $encoding = null): bool
public static repairFile(
string $filename,
array|string|null $config = null,
?string $encoding = null,
bool $useIncludePath = false
): string|false
public static repairString(string $string, array|string|null $config = null, ?string $encoding = null): string|false
public root(): ?tidyNode
}

Propriétés

value

La représentation HTML du nœud, incluant les balises d'encadrement.

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, PHP 8, 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

public tidy::body(): ?tidyNode

Style procédural

tidy_get_body(tidy $tidy): ?tidyNode

Retourne un objet TidyNode commençant à partir de la balise <body>.

Liste de paramètres

tidy

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>

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, PHP 8, 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

public tidy::cleanRepair(): bool

Style procédural

tidy_clean_repair(tidy $tidy): bool

Nettoie et répare l'objet Tidy tidy passé en argument.

Liste de paramètres

tidy

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, PHP 8, PECL tidy >= 0.5.2)

tidy::__construct — Construit un nouvel objet tidy

Description

public tidy::__construct(
?string $filename = null,
array|string|null $config = null,
?string $encoding = null,
bool $useIncludePath = false
)

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://api.html-tidy.org/#quick-reference.

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.

useIncludePath

Indique s'il faut rechercher le fichier dans l' include_path.

Historique

Version | Description
8.0.0 | filename, config, encoding et useIncludePath sont désormais nullable.

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, PHP 8, PECL tidy >= 0.5.2)

tidy::diagnose -- tidy_diagnose — Établit le diagnostic pour le document analysé et réparé

Description

Style orienté objet

public tidy::diagnose(): bool

Style procédural

tidy_diagnose(tidy $tidy): bool

Lance un diagnostic sur l'objet tidy Tidy donné, en ajoutant quelques informations concernant le document dans la pile d'erreurs.

Liste de paramètres

tidy

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, PHP 8, 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 (property):

public string $tidy->errorBuffer;

Style procédural:

tidy_get_error_buffer(tidy $tidy): string|false

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, ou false si le buffer est vide.

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, PHP 8, PECL tidy >= 0.7.0)

tidy::getConfig -- tidy_get_config — Lit la configuration Tidy courante

Description

Style orienté objet

public tidy::getConfig(): array

Style procédural

tidy_get_config(tidy $tidy): array

Retourne un tableau avec les options de configuration utilisées par l'objet tidy Tidy spécifié.

Liste de paramètres

tidy

L'objet Tidy

Valeurs de retour

Retourne un tableau d'options de configurations.

Pour une explication sur chaque option, voyez » http://api.html-tidy.org/#quick-reference.

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()
  • tidy_save_config()


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, PHP 8, 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

public tidy::getHtmlVer(): int

Style procédural

tidy_get_html_ver(tidy $tidy): int

Retourne la version détectée du code HTML pour l'objet tidy Tidy spécifié.

Liste de paramètres

tidy

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, PHP 8, PECL tidy >= 0.5.2)

Tidy::getopt -- tidy_getopt — Retourne la valeur de l'option de configuration Tidy

Description

Style orienté objet

public tidy::getOpt(string $option): string|int|bool

Style procédural

tidy_getopt(tidy $tidy, string $option): string|int|bool

tidy_getopt() retourne la valeur de l'option spécifiée option pour l'objet tidy. Le type retourné dépend du type de l'option spécifiée option.

Liste de paramètres

tidy

L'objet Tidy

option

Pour une explication sur chaque option, voyez » http://api.html-tidy.org/#quick-reference.

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, PHP 8)

tidy::getOptDoc -- tidy_get_opt_doc — Retourne la documentation pour le nom de l'option donnée

Description

Style orienté objet

public tidy::getOptDoc(string $option): string|false

Style procédural

tidy_get_opt_doc(tidy $tidy, string $option): string|false

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

tidy

L'objet Tidy

option

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, PHP 8, 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

public tidy::getRelease(): string

Style procédural

tidy_get_release(): string

Retourne la date de publication (version) de la bibliothèque Tidy.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne contenant la date de publication de la bibliothèque Tidy, qui peut être 'unknown'.


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, PHP 8, PECL tidy >= 0.5.2)

tidy::getStatus -- tidy_get_status — Retourne le statut du document spécifié

Description

Style orienté objet

public tidy::getStatus(): int

Style procédural

tidy_get_status(tidy $tidy): int

Retourne le statut de l'objet tidy 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

tidy

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, PHP 8, 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

public tidy::head(): ?tidyNode

Style procédural

tidy_get_head(tidy $tidy): ?tidyNode

Retourne un objet tidyNode à partir de la balise <head>.

Liste de paramètres

tidy

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>

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, PHP 8, 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

public tidy::html(): ?tidyNode

Style procédural

tidy_get_html(tidy $tidy): ?tidyNode

Retourne un objet tidyNode commençant à la balise <html>.

Liste de paramètres

tidy

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>

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, PHP 8, PECL tidy >= 0.5.2)

tidy::isXhtml -- tidy_is_xhtml — Indique si le document est un document XHTML

Description

Style orienté objet

public tidy::isXhtml(): bool

Style procédural

tidy_is_xhtml(tidy $tidy): bool

Indique si le document est un document XHTML.

Liste de paramètres

tidy

L'objet Tidy

Valeurs de retour

Retourne true si l'objet Tidy tidy 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, PHP 8, 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

public tidy::isXml(): bool

Style procédural

tidy_is_xml(tidy $tidy): bool

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

tidy

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, PHP 8, PECL tidy >= 0.5.2)

tidy::parseFile -- tidy_parse_file — Analyse les balises d'un fichier ou d'une URI

Description

Style orienté objet

public tidy::parseFile(
string $filename,
array|string|null $config = null,
?string $encoding = null,
bool $useIncludePath = false
): bool

Style procédural

tidy_parse_file(
string $filename,
array|string|null $config = null,
?string $encoding = null,
bool $useIncludePath = false
): tidy|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://api.html-tidy.org/#quick-reference.

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.

useIncludePath

Active la recherche dans l' include_path.

Valeurs de retour

tidy::parseFile() returns true on success. tidy_parse_file() returns a new tidy instance on success. Both, the method and the function return false on failure.

Historique

Version | Description
8.0.0 | config et encoding sont désormais nullable.

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;
}
?>

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, PHP 8, PECL tidy >= 0.5.2)

tidy::parseString -- tidy_parse_string — Analyse un document HTML contenu dans une chaîne

Description

Style orienté objet

public tidy::parseString(string $string, array|string|null $config = null, ?string $encoding = null): bool

Style procédural

tidy_parse_string(string $string, array|string|null $config = null, ?string $encoding = null): tidy|false

Analyse un document contenu dans une chaîne.

Liste de paramètres

string

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://api.html-tidy.org/#quick-reference.

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

tidy::parseString() retourne true en cas de succès. tidy_parse_string() retourne une nouvelle instance de tidy en cas de succès. Tout de deux, la méthode et la fonction retourne false en cas d'échec.

Historique

Version | Description
8.0.0 | config et encoding sont désormais nullable.

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>

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, PHP 8, 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

public static tidy::repairFile(
string $filename,
array|string|null $config = null,
?string $encoding = null,
bool $useIncludePath = false
): string|false

Style procédural

tidy_repair_file(
string $filename,
array|string|null $config = null,
?string $encoding = null,
bool $useIncludePath = false
): string|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.

useIncludePath

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, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | tidy::repairFile() est désormais une méthode statique.
8.0.0 | config et encoding sont désormais nullable.

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);
?>

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, PHP 8, 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

public static tidy::repairString(string $string, array|string|null $config = null, ?string $encoding = null): string|false

Style procédural

tidy_repair_string(string $string, array|string|null $config = null, ?string $encoding = null): string|false

Répare la chaîne data.

Liste de paramètres

string

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://api.html-tidy.org/#quick-reference 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, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | tidy::repairString() est désormais une méthode statique.
8.0.0 | config et encoding sont désormais nullable.
8.0.0 | Cette fonction n'accepte plus le paramètre useIncludePath.

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>

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, PHP 8, 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

public tidy::root(): ?tidyNode

Style procédural

tidy_get_root(tidy $tidy): ?tidyNode

Retourne un objet tidyNode représentant la racine de l'arbre Tidy analysé.

Liste de paramètres

tidy

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


La classe tidyNode

(PHP 5, PHP 7, PHP 8)

Introduction

Une balise HTML dans un fichier HTML, tel que détecté par Tidy.

Synopsis de la classe

final class tidyNode {
/* Propriétés */
public readonly string $value;
public readonly string $name;
public readonly int $type;
public readonly int $line;
public readonly int $column;
public readonly bool $proprietary;
public readonly ?int $id;
public readonly ?array $attribute;
public readonly ?array $child;
/* Méthodes */
private __construct()
public getParent(): ?tidyNode
public hasChildren(): bool
public hasSiblings(): bool
public isAsp(): bool
public isComment(): bool
public isHtml(): bool
public isJste(): bool
public isPhp(): bool
public isText(): bool
}

Propriétés

value

La représentation HTML du nœud, incluant les balises d'encadrement.

name

Le nom de la balise HTML

type

Le type du nœud (l'une des constantes de type de nœud, par exemple 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 du nœud (l'une des constantes de balises, par exemple TIDY_TAG_FRAME)

attribute

Un tableau de chaînes, représentant les noms d'attributs (les clés), du nœud courant.

child

Un tableau d'objets tidyNode, représentant les enfants du nœud courant.

Sommaire

  • tidyNode::__construct — Constructeur privée pour interdire l'instanciation directe
  • tidyNode::getParent — Retourne le nœud parent du nœud courant
  • tidyNode::hasChildren — Indique si le nœud a des enfants
  • tidyNode::hasSiblings — Indique si le nœud a des frères
  • tidyNode::isAsp — Vérifie si le nœud est du code ASP
  • tidyNode::isComment — Indique si le nœud représente un commentaire
  • tidyNode::isHtml — Indique si le nœud est une nœud d'élément
  • tidyNode::isJste — Indique si ce nœud est JSTE
  • tidyNode::isPhp — Indique si un nœud contient du code PHP
  • tidyNode::isText — Indique si le nœud représente du texte (sans balise)


Constructeur privée pour interdire l'instanciation directe

  • « tidyNode
  • tidyNode::getParent »
  • PHP Manual
  • tidyNode
  • Constructeur privée pour interdire l'instanciation directe

tidyNode::__construct

(PHP 5, PHP 7, PHP 8)

tidyNode::__construct — Constructeur privée pour interdire l'instanciation directe

Description

private tidyNode::__construct()

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Retourne le nœud parent du nœud courant

  • « tidyNode::__construct
  • tidyNode::hasChildren »
  • PHP Manual
  • tidyNode
  • Retourne le nœud parent du nœud courant

tidyNode::getParent

(PHP 5 >= 5.2.2, PHP 7, PHP 8)

tidyNode::getParent — Retourne le nœud parent du nœud courant

Description

public tidyNode::getParent(): ?tidyNode

Retourne le nœud parent du nœud courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tidyNode si le nœud a un parent, ou null 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>
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"


Indique si le nœud a des enfants

  • « tidyNode::getParent
  • tidyNode::hasSiblings »
  • PHP Manual
  • tidyNode
  • Indique si le nœud a des enfants

tidyNode::hasChildren

(PHP 5, PHP 7, PHP 8)

tidyNode::hasChildren — Indique si le nœud a des enfants

Description

public tidyNode::hasChildren(): bool

Indique si le nœud courant a des enfants.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true si le nœud 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)


Indique si le nœud a des frères

  • « tidyNode::hasChildren
  • tidyNode::isAsp »
  • PHP Manual
  • tidyNode
  • Indique si le nœud a des frères

tidyNode::hasSiblings

(PHP 5, PHP 7, PHP 8)

tidyNode::hasSiblings — Indique si le nœud a des frères

Description

public tidyNode::hasSiblings(): bool

Indique si le nœud courant a des nœuds frères.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true si le nœud 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)


Vérifie si le nœud est du code ASP

  • « tidyNode::hasSiblings
  • tidyNode::isComment »
  • PHP Manual
  • tidyNode
  • Vérifie si le nœud est du code ASP

tidyNode::isAsp

(PHP 5, PHP 7, PHP 8)

tidyNode::isAsp — Vérifie si le nœud est du code ASP

Description

public tidyNode::isAsp(): bool

Vérifie si le nœud est du code ASP.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true si le nœud 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 nœud courant est du type requis
if($node->{"isAsp()) {
echo "\n\n# Noeud $node_type #" . ++$GLOBALS['num'] . "\n";
echo $node->value;
}

// Vérifie si le nœud 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!")
%>


Indique si le nœud représente un commentaire

  • « tidyNode::isAsp
  • tidyNode::isHtml »
  • PHP Manual
  • tidyNode
  • Indique si le nœud représente un commentaire

tidyNode::isComment

(PHP 5, PHP 7, PHP 8)

tidyNode::isComment — Indique si le nœud représente un commentaire

Description

public tidyNode::isComment(): bool

Indique si le document est un commentaire.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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 nœud courant est du type demandé
if($node->{"isComment()) {
echo "\n\n# Noeud commentaire #" . ++$GLOBALS['num'] . "\n";
echo $node->value;
}

// Vérifie si le nœud 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');
#>


Indique si le nœud est une nœud d'élément

  • « tidyNode::isComment
  • tidyNode::isJste »
  • PHP Manual
  • tidyNode
  • Indique si le nœud est une nœud d'élément

tidyNode::isHtml

(PHP 5, PHP 7, PHP 8)

tidyNode::isHtml — Indique si le nœud est une nœud d'élément

Description

public tidyNode::isHtml(): bool

Indique si le nœud courant est un nœud d'élément, mais pas le nœud racine du document.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true si le nœud est un nœud d'élément, mais pas le nœud racine du document, false sinon.

Historique

Version | Description
7.3.24, 7.4.12 | Cette fonction a été corrigée pour avoir un comportement raisonnable. Auparavant, la plupart des nœuds était rapporté comme étant un nœud HTML.

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 nœud courant est du type demandé
if($node->{isHtml()) {
echo "\n\n# Noeud Html #" . ++$GLOBALS['num'] . "\n";
echo $node->value;
}

// Vérifie si le nœud 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
<title></title>

# Noeud html #4
<body>
<?php
  // code PHP
  echo 'hello world!';
?><%
  /* code ASP */
  response.write("Hello World!")
%><!-- Comments -->
Hello WorldOutside HTML
</body>


Indique si ce nœud est JSTE

  • « tidyNode::isHtml
  • tidyNode::isPhp »
  • PHP Manual
  • tidyNode
  • Indique si ce nœud est JSTE

tidyNode::isJste

(PHP 5, PHP 7, PHP 8)

tidyNode::isJste — Indique si ce nœud est JSTE

Description

public tidyNode::isJste(): bool

Indique si le nœud courant est un JSTE.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true si le nœud 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 nœud courant est du type demandé
if($node->{"isJste()) {
echo "\n\n# Noeud jste #" . ++$GLOBALS['num'] . "\n";
echo $node->value;
}

// Vérifie si le nœud 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');
#>


Indique si un nœud contient du code PHP

  • « tidyNode::isJste
  • tidyNode::isText »
  • PHP Manual
  • tidyNode
  • Indique si un nœud contient du code PHP

tidyNode::isPhp

(PHP 5, PHP 7, PHP 8)

tidyNode::isPhp — Indique si un nœud contient du code PHP

Description

public tidyNode::isPhp(): bool

Indique si un nœud contient du code PHP.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true si le nœud 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 nœud courant est du type demandé
if($node->{"isPhp()) {
echo "\n\n# Noeud php #" . ++$GLOBALS['num'] . "\n";
echo $node->value;
}

// Vérifie si le nœud 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!';
?>


Indique si le nœud représente du texte (sans balise)

  • « tidyNode::isPhp
  • Fonctions Tidy »
  • PHP Manual
  • tidyNode
  • Indique si le nœud représente du texte (sans balise)

tidyNode::isText

(PHP 5, PHP 7, PHP 8)

tidyNode::isText — Indique si le nœud représente du texte (sans balise)

Description

public tidyNode::isText(): bool

Indique si le nœud parent représente du texte (sans balise).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true si le nœud 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 nœud courant est du type demandé
if($node->{"isText()) {
echo "\n\n# Noeud texte #" . ++$GLOBALS['num'] . "\n";
echo $node->value;
}

// Vérifie si le nœud 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


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_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, PHP 8)

ob_tidyhandler — Fonction de rappel ob_start pour réparer le buffer

Description

ob_tidyhandler(string $input, int $mode = ?): string

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, PHP 8, PECL tidy >= 0.5.2)

tidy_access_count — Retourne le nombre d'alertes d'accessibilité Tidy rencontrées dans le document

Description

tidy_access_count(tidy $tidy): int

tidy_access_count() retourne le nombre d'alertes d'accessibilité trouvées dans le document spécifié.

Liste de paramètres

tidy

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, PHP 8, PECL tidy >= 0.5.2)

tidy_config_count — Retourne le nombre d'erreurs de configuration Tidy rencontrées dans le document

Description

tidy_config_count(tidy $tidy): int

tidy_config_count() retourne le nombre d'erreurs rencontrées dans la configuration de l'objet tidy Tidy spécifié.

Liste de paramètres

tidy

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, PHP 8, PECL tidy >= 0.5.2)

tidy_error_count — Retourne le nombre d'erreurs Tidy rencontrées dans le document

Description

tidy_error_count(tidy $tidy): int

tidy_error_count() retourne le nombre d'erreurs Tidy rencontrées dans le document spécifié.

Liste de paramètres

tidy

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_warning_count »
  • 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, PHP 8, PECL tidy >= 0.5.2)

tidy_get_output — Retourne une chaîne représentant les balises telles qu'analysées par Tidy

Description

tidy_get_output(tidy $tidy): string

Retourne une chaîne représentant les balises telles qu'analysées par Tidy.

Liste de paramètres

tidy

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>


Retourne le nombre d'alertes Tidy rencontrées dans le document spécifié

  • « tidy_get_output
  • 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, PHP 8, PECL tidy >= 0.5.2)

tidy_warning_count — Retourne le nombre d'alertes Tidy rencontrées dans le document spécifié

Description

tidy_warning_count(tidy $tidy): int

Retourne le nombre d'avertissements Tidy rencontrés pour le document spécifié.

Liste de paramètres

tidy

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
  • PhpToken — The PhpToken class
    • PhpToken::__construct — Returns a new PhpToken object
    • PhpToken::getTokenName — Returns the name of the token.
    • PhpToken::is — Tells whether the token is of given kind.
    • PhpToken::isIgnorable — Tells whether the token would be ignored by the PHP parser.
    • PhpToken::__toString — Returns the textual content of the token.
    • PhpToken::tokenize — Splits given source into PHP tokens, represented by PhpToken objects.
  • 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

Cette extension est activée par défaut. Elle peut être désactivée en utilisant l'option de configuration : --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.


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 jetons 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;
}
}
}
?>


The PhpToken class

(PHP 8)

Introduction

This class provides an alternative to token_get_all(). While the function returns tokens either as a single-character string, or an array with a token ID, token text and line number, PhpToken::tokenize() normalizes all tokens into PhpToken objects, which makes code operating on tokens more memory efficient and readable.

Synopsis de la classe

class PhpToken implements Stringable {
/* Propriétés */
public int $id;
public string $text;
public int $line;
public int $pos;
/* Méthodes */
final public __construct(
int $id,
string $text,
int $line = -1,
int $pos = -1
)
public getTokenName(): ?string
public is(int|string|array $kind): bool
public isIgnorable(): bool
public __toString(): string
public static tokenize(string $code, int $flags = 0): array
}

Propriétés

id

One of the T_* constants, or an ASCII codepoint representing a single-char token.

text

The textual content of the token.

line

The starting line number (1-based) of the token.

pos

The starting position (0-based) in the tokenized string (the number of bytes).

Sommaire

  • PhpToken::__construct — Returns a new PhpToken object
  • PhpToken::getTokenName — Returns the name of the token.
  • PhpToken::is — Tells whether the token is of given kind.
  • PhpToken::isIgnorable — Tells whether the token would be ignored by the PHP parser.
  • PhpToken::__toString — Returns the textual content of the token.
  • PhpToken::tokenize — Splits given source into PHP tokens, represented by PhpToken objects.


Returns a new PhpToken object

  • « PhpToken
  • PhpToken::getTokenName »
  • PHP Manual
  • PhpToken
  • Returns a new PhpToken object

PhpToken::__construct

(PHP 8)

PhpToken::__construct — Returns a new PhpToken object

Description

final public PhpToken::__construct(
int $id,
string $text,
int $line = -1,
int $pos = -1
)

Returns a new PhpToken object

Liste de paramètres

id

One of the T_* constants (see Liste des jetons de l'analyseur), or an ASCII codepoint representing a single-char token.

text

The textual content of the token.

line

The starting line number (1-based) of the token.

pos

The starting position (0-based) in the tokenized string (the number of bytes).

Voir aussi

  • PhpToken::tokenize() - Splits given source into PHP tokens, represented by PhpToken objects.


Returns the name of the token.

  • « PhpToken::__construct
  • PhpToken::is »
  • PHP Manual
  • PhpToken
  • Returns the name of the token.

PhpToken::getTokenName

(PHP 8)

PhpToken::getTokenName — Returns the name of the token.

Description

public PhpToken::getTokenName(): ?string

Returns the name of the token.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

An ASCII character for single-char tokens, or one of T_* constant names for known tokens (see Liste des jetons de l'analyseur), or null for unknown tokens.

Exemples

Exemple #1 PhpToken::getTokenName() example

<?php
// known token
$token = new PhpToken(T_ECHO, 'echo');
var_dump($token->getTokenName()); // -> string(6) "T_ECHO"

// single-char token
$token = new PhpToken(ord(';'), ';');
var_dump($token->getTokenName()); // -> string(1) ";"

// unknown token
$token = new PhpToken(10000 , "\0");
var_dump($token->getTokenName()); // -> NULL

Voir aussi

  • PhpToken::tokenize() - Splits given source into PHP tokens, represented by PhpToken objects.
  • token_name() - Retourne le nom d'un élément de code source


Tells whether the token is of given kind.

  • « PhpToken::getTokenName
  • PhpToken::isIgnorable »
  • PHP Manual
  • PhpToken
  • Tells whether the token is of given kind.

PhpToken::is

(PHP 8)

PhpToken::is — Tells whether the token is of given kind.

Description

public PhpToken::is(int|string|array $kind): bool

Tells whether the token is of given kind.

Liste de paramètres

kind

Either a single value to match the token's id or textual content, or an array thereof.

Valeurs de retour

A boolean value whether the token is of given kind.

Exemples

Exemple #1 PhpToken::is() example

<?php
$token = new PhpToken(T_ECHO, 'echo');
var_dump($token->is(T_ECHO)); // -> bool(true)
var_dump($token->is('echo')); // -> bool(true)
var_dump($token->is(T_FOREACH)); // -> bool(false)
var_dump($token->is('foreach')); // -> bool(false)

Exemple #2 Usage with array

<?php
function isClassType(PhpToken $token): bool {
return $token->is([T_CLASS, T_INTERFACE, T_TRAIT]);
}

$interface = new PhpToken(T_INTERFACE, 'interface');
var_dump(isClassType($interface)); // -> bool(true)

$function = new PhpToken(T_FUNCTION, 'function');
var_dump(isClassType($function)); // -> bool(false)

Voir aussi

  • token_name() - Retourne le nom d'un élément de code source


Tells whether the token would be ignored by the PHP parser.

  • « PhpToken::is
  • PhpToken::__toString »
  • PHP Manual
  • PhpToken
  • Tells whether the token would be ignored by the PHP parser.

PhpToken::isIgnorable

(PHP 8)

PhpToken::isIgnorable — Tells whether the token would be ignored by the PHP parser.

Description

public PhpToken::isIgnorable(): bool

Tells whether the token would be ignored by the PHP parser.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A boolean value whether the token would be ignored by the PHP parser (such as whitespace or comments).

Exemples

Exemple #1 PhpToken::isIgnorable() example

<?php
$echo = new PhpToken(T_ECHO, 'echo');
var_dump($echo->isIgnorable()); // -> bool(false)

$space = new PhpToken(T_WHITESPACE, ' ');
var_dump($space->isIgnorable()); // -> bool(true)

Voir aussi

  • PhpToken::tokenize() - Splits given source into PHP tokens, represented by PhpToken objects.


Returns the textual content of the token.

  • « PhpToken::isIgnorable
  • PhpToken::tokenize »
  • PHP Manual
  • PhpToken
  • Returns the textual content of the token.

PhpToken::__toString

(PHP 8)

PhpToken::__toString — Returns the textual content of the token.

Description

public PhpToken::__toString(): string

Returns the textual content of the token.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A textual content of the token.

Exemples

Exemple #1 PhpToken::__toString() example

<?php
$token = new PhpToken(T_ECHO, 'echo');
echo $token;

Les exemples ci-dessus vont afficher :

echo

Voir aussi

  • token_name() - Retourne le nom d'un élément de code source


Splits given source into PHP tokens, represented by PhpToken objects.

  • « PhpToken::__toString
  • Fonctions Tokenizer »
  • PHP Manual
  • PhpToken
  • Splits given source into PHP tokens, represented by PhpToken objects.

PhpToken::tokenize

(PHP 8)

PhpToken::tokenize — Splits given source into PHP tokens, represented by PhpToken objects.

Description

public static PhpToken::tokenize(string $code, int $flags = 0): array

Returns an array of PhpToken objects representing given code.

Liste de paramètres

code

The PHP source to parse.

flags

Valid flags:

  • TOKEN_PARSE - Recognises the ability to use reserved words in specific contexts.

Valeurs de retour

An array of PHP tokens represented by instances of PhpToken or its descendants. This method returns static[] so that PhpToken can be seamlessly extended.

Exemples

Exemple #1 PhpToken::tokenize() example

<?php
$tokens = PhpToken::tokenize('<?php echo; ?>');

foreach ($tokens as $token) {
echo "Line {$token->line}: {$token->getTokenName()} ('{$token->text}')", PHP_EOL;
}

Les exemples ci-dessus vont afficher :

Line 1: T_OPEN_TAG ('<?php ')
Line 1: T_ECHO ('echo')
Line 1: ; (';')
Line 1: T_WHITESPACE (' ')
Line 1: T_CLOSE_TAG ('?>')

Exemple #2 Extending PhpToken

<?php

class MyPhpToken extends PhpToken {
public function getUpperText() {
return strtoupper($this->text);
}
}

$tokens = MyPhpToken::tokenize('<?php echo; ?>');
echo "'{$tokens[0]->getUpperText()}'";

Les exemples ci-dessus vont afficher :

'<?PHP '

Voir aussi

  • token_get_all() - Scinde un code source en éléments de base


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, PHP 8)

token_get_all — Scinde un code source en éléments de base

Description

token_get_all(string $code, int $flags = 0): array

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 jetons 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

code

Le source PHP à analyser.

flags

Drapeaux 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.

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;
}
}
?>

Résultat de l'exemple ci-dessus est 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;
}
}
?>

Résultat de l'exemple ci-dessus est 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;
}
}
?>

Résultat de l'exemple ci-dessus est 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

  • PhpToken::tokenize() - Splits given source into PHP tokens, represented by PhpToken objects.
  • 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, PHP 8)

token_name — Retourne le nom d'un élément de code source

Description

token_name(int $id): string

token_name() retourne le nom symbolique correspondant à la valeur d'un token PHP.

Liste de paramètres

id

La valeur du token.

Valeurs de retour

Le nom symbolique du id 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
  • PhpToken::getTokenName() - Returns the name of the token.


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

Travailler 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().

PHP_URL_SCHEME (int)
PHP_URL_HOST (int)
Affiche le nom d'hôte de l'URL analysée.
PHP_URL_PORT (int)
Affiche le port de l'URL analysée.
PHP_URL_USER (int)
Affiche l'utilisateur de l'URL analysée.
PHP_URL_PASS (int)
Affiche le mot de passe de l'URL analysée.
PHP_URL_PATH (int)
Affiche le chemin de l'URL analysée.
PHP_URL_QUERY (int)
Affiche les paramètres de requête de l'URL analysée.
PHP_URL_FRAGMENT (int)
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 (int)
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 (int)
L'encodage est effectué conformément à la » RFC 3986, et les espaces seront encodés en percent-encoding (encodage en pourcent) (%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, PHP 8)

base64_decode — Décode une chaîne en MIME base64

Description

base64_decode(string $string, bool $strict = false): string|false

Décode une string encodée en base64.

Liste de paramètres

string

Les données à décoder.

strict

Si le paramètre strict est défini à true, la fonction base64_decode() retourne false si l'entrée contient des caractères hors de l'alphabet base64. S'il est défini à false, les caractères invalides seront ignorés en silence.

Valeurs de retour

Retourne les données décodées ou false si une erreur survient. Les informations initiales peuvent être binaires.

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, PHP 8)

base64_encode — Encode une chaîne en MIME base64

Description

base64_encode(string $string): string

Encode la string donnée 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% d'espace de plus que les données initiales.

Liste de paramètres

string

Les données à encoder.

Valeurs de retour

Les données encodées, sous la forme d'une chaîne de caractères.

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, PHP 8)

get_headers — Retourne tous les en-têtes envoyés par le serveur en réponse à une requête HTTP

Description

get_headers(string $url, bool $associative = false, ?resource $context = null): array|false

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.

associative

Si le paramètre optionnel associative est défini à true, get_headers() analyse la réponse et définit les index du tableau.

context

Un contexte de ressource valide créé avec stream_context_create(), ou null pour utiliser le contexte par défaut.

Valeurs de retour

Retourne un tableau indexé ou associatif contenant les en-têtes, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | associative a été changé de int en bool.
7.1.0 | Le paramètre context a été ajouté.

Exemples

Exemple #1 Exemple avec get_headers()

<?php
$url = 'http://www.example.com';

print_r(get_headers($url));

print_r(get_headers($url, true));
?>

Résultat de l'exemple ci-dessus est 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 :
$context = stream_context_create(
[
'http' => array(
'method' => 'HEAD'
)
]
);
$headers = get_headers('http://example.com', false, $context);
?>

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, PHP 8)

get_meta_tags — Extrait toutes les balises méta d'un fichier HTML

Description

get_meta_tags(string $filename, bool $use_include_path = false): array|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 -->

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.

Returns false on failure.

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, PHP 8)

http_build_query — Génère une chaîne de requête en encodage URL

Description

http_build_query(
array|object $data,
string $numeric_prefix = "",
?string $arg_separator = null,
int $encoding_type = PHP_QUERY_RFC1738
): string

Génère une chaîne en encodage URL, construite à partir du tableau indexé ou associatif data.

Liste de paramètres

data

Peut être un tableau ou un objet contenant des propriétés.

Si data est un tableau, alors ce peut être un tableau à une ou plusieurs dimensions.

Si 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

Le séparateur d'arguments. S'il n'est pas défini ou est null, arg_separator.output est utilisée pour séparer les arguments.

encoding_type

Par défaut, vaut PHP_QUERY_RFC1738.

Si encoding_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 encoding_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
8.0.0 | arg_separator est désormais nullable.

Exemples

Exemple #1 Utilisation simple de http_build_query()

<?php
$data = array(
'foo' => 'bar',
'baz' => 'boom',
'cow' => 'milk',
'null' => null,
'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', null, '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&4=boom&cow=milk&php=hypertext+processor
myvar_0=foo&myvar_1=bar&myvar_2=baz&myvar_4=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_');
?>

l'exemple ci-dessus 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 chaîne de caractères d'une variable
  • 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, PHP 8)

parse_url — Analyse une URL et retourne ses composants

Description

parse_url(string $url, int $component = -1): int|string|array|null|false

Cette fonction analyse une URL et retourne un tableau associatif contenant tous les éléments qui y sont présents. Les valeurs des éléments du tableau NE sont PAS URL décodés

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 et invalides sont également acceptées, la fonction parse_url() fera de son mieux pour les analyser correctement.

Liste de paramètres

url

L'URL à analyser.

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 composant demandé n'existe pas dans l'URL, null sera retourné. À partir de PHP 8.0.0, parse_url() distingue entre les fragments et requêtes absentes et vides :

http://example.com/foo ? query = null, fragment = null
http://example.com/foo? ? query = "",   fragment = null
http://example.com/foo# ? query = null, fragment = ""
http://example.com/foo?# ? query = "",   fragment = ""

Précédemment tout les cas résultaient en la requête et le fragment étant null.

À noter que les caractères de contrôle (cf. ctype_cntrl()) dans les composants sont remplacés par un tiret du bas (_).

Historique

Version | Description
8.0.0 | parse_url() distingue désormais entre les fragments et requêtes absentes et vides.

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

Attention

Cette fonction peut ne pas donner des résultats corrects pour les URLs relatives ou invalides et les résultats peuvent ne pas correspondre au comportement standard des clients HTTP. Si des URLs venant d'entré utilisateur doivent être analysé, des vérifications supplémentaires sont requises, par exemple en utilisant filter_var() avec le filtre FILTER_VALIDATE_URL.

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 chaîne de caractères d'une variable
  • 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, PHP 8)

rawurldecode — Décode une chaîne URL

Description

rawurldecode(string $string): string

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

string

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, PHP 8)

rawurlencode — Encode une chaîne en URL, selon la RFC 3986

Description

rawurlencode(string $string): string

Encode la chaîne fournie, en accord avec la » RFC 3986.

Liste de paramètres

string

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).

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, PHP 8)

urldecode — Décode une chaîne encodée URL

Description

urldecode(string $string): string

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

string

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, PHP 8)

urlencode — Encode une chaîne en URL

Description

urlencode(string $string): string

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

string

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
$userinput = 'Data123!@-_ +';
echo "UserInput: $userinput\n";
echo '<a href="mycgi?foo=', urlencode($userinput), '">';
?>

L'exemple ci-dessus va afficher :

UserInput: Data123!@-_ +
<a href="mycgi?foo=Data123%21%40-_+%2B">

Exemple #2 Exemple avec urlencode() et htmlentities()

<?php
$foo = 'Data123!@-_ +';
$bar = "Not the same content as $foo";
echo "foo: $foo\n";
$query_string = 'foo=' . urlencode($foo) . '&bar=' . urlencode($bar);
echo '<a href="mycgi?' . htmlentities($query_string) . '">';
?>

L'exemple ci-dessus va afficher :

foo: Data123!@-_ +
bar: Not the same content as Data123!@-_ +
<a href="mycgi?foo=Data123%21%40-_+%2B&amp;bar=Not+the+same+content+as+Data123%21%40-_+%2B">

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 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 : » https://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 | INI_ALL |
v8js.flags |  | INI_ALL |

Voici un éclaircissement sur l'utilisation des directives de configuration.

v8js.max_disposed_contexts int

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 !


  • « Configuration à l'exécution
  • Exemples »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

Cette extension ne définit aucune ressource.


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

class V8Js {
/* Constantes */
const string V8_VERSION;
const int FLAG_NONE = 1;
const int FLAG_FORCE_ARRAY = 2;
/* Méthodes */
public __construct(
string $object_name = "PHP",
array $variables = array(),
array $extensions = array(),
bool $report_uncaught_exceptions = true
)
public executeString(string $script, string $identifier = "V8Js::executeString()", int $flags = V8Js::FLAG_NONE): mixed
public static getExtensions(): array
public getPendingException(): V8JsException
public static registerExtension(
string $extension_name,
string $script,
array $dependencies = array(),
bool $auto_enable = false
): bool
}

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().


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 V8Js::executeString(string $script, string $identifier = "V8Js::executeString()", int $flags = V8Js::FLAG_NONE): mixed

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 V8Js::getExtensions(): array

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 V8Js::getPendingException(): V8JsException

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 V8Js::registerExtension(
string $extension_name,
string $script,
array $dependencies = array(),
bool $auto_enable = false
): bool

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

class V8JsException extends Exception {
/* Propriétés */
protected $JsFileName;
protected $JsLineNumber;
protected $JsSourceLine;
protected $JsTrace;
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes */
final public getJsFileName(): string
final public getJsLineNumber(): int
final public getJsSourceLine(): string
final public getJsTrace(): string
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private 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 V8JsException::getJsFileName(): string

Avertissement

Cette fonction est actuellement non documentée ; 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 V8JsException::getJsLineNumber(): int

Avertissement

Cette fonction est actuellement non documentée ; 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 V8JsException::getJsSourceLine(): string

Avertissement

Cette fonction est actuellement non documentée ; 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 V8JsException::getJsTrace(): string

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Sérialisation 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 sérialisation » 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 : » https://pecl.php.net/package/yaml.


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 | INI_ALL |
yaml.decode_php | 0 | INI_ALL | Ajouté dans la version 1.2.0, avant la version 2.0.0 la valeur par défaut était 1
yaml.decode_timestamp | 0 | INI_ALL |
yaml.output_canonical | 0 | INI_ALL |
yaml.output_indent | 2 | INI_ALL |
yaml.output_width | 80 | INI_ALL |

Voici un éclaircissement sur l'utilisation des directives de configuration.

yaml.decode_binary bool

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 bool

Désactivé par défaut, mais peut être activé pour causer la désérialisation des objets PHP sérialisés ayant la balise explicite "!php/object".

yaml.decode_timestamp int

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 bool

Off par défaut ; si mis à on, une sortie canonique sera utilisée.

yaml.output_indent int

Nombres d'espaces pour l'indentation. Un entier entre 1 et 10 est requis.

yaml.output_width int

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 (int)
YAML_PLAIN_SCALAR_STYLE (int)
YAML_SINGLE_QUOTED_SCALAR_STYLE (int)
YAML_DOUBLE_QUOTED_SCALAR_STYLE (int)
YAML_LITERAL_SCALAR_STYLE (int)
YAML_FOLDED_SCALAR_STYLE (int)
Tags utilisables pour les fonctions de rappel yaml_parse()
YAML_NULL_TAG (string)
"tag:yaml.org,2002:null"
YAML_BOOL_TAG (string)
"tag:yaml.org,2002:bool"
YAML_STR_TAG (string)
"tag:yaml.org,2002:str"
YAML_INT_TAG (string)
"tag:yaml.org,2002:int"
YAML_FLOAT_TAG (string)
"tag:yaml.org,2002:float"
YAML_TIMESTAMP_TAG (string)
"tag:yaml.org,2002:timestamp"
YAML_SEQ_TAG (string)
"tag:yaml.org,2002:seq"
YAML_MAP_TAG (string)
"tag:yaml.org,2002:map"
YAML_PHP_TAG (string)
"!php/object"
Types d'encodages pour yaml_emit()
YAML_ANY_ENCODING (int)
Laisse l'émetteur choisir l'encodage.
YAML_UTF8_ENCODING (int)
Encode en UTF8.
YAML_UTF16LE_ENCODING (int)
Encode en UTF16LE.
YAML_UTF16BE_ENCODING (int)
Encode en UTF16BE.
Types de coupure de lignes pour yaml_emit()
YAML_ANY_BREAK (int)
Laisse l'émetteur choisir le caractère de coupure de ligne.
YAML_CR_BREAK (int)
Utilise \r comme caractère de coupure (style Mac).
YAML_LN_BREAK (int)
Utilise \n comme caractère de coupure (style Unix).
YAML_CRLN_BREAK (int)
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);
?>

Résultat de l'exemple ci-dessus est 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 callable 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);
?>

Résultat de l'exemple ci-dessus est 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 sérialisation
* - '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);
?>

Résultat de l'exemple ci-dessus est 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

yaml_emit_file(
string $filename,
mixed $data,
int $encoding = YAML_ANY_ENCODING,
int $linebreak = YAML_ANY_BREAK,
array $callbacks = null
): bool

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 nœud 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
PECL yaml 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

yaml_emit(
mixed $data,
int $encoding = YAML_ANY_ENCODING,
int $linebreak = YAML_ANY_BREAK,
array $callbacks = null
): string

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 nœud 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
PECL yaml 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));
?>

Résultat de l'exemple ci-dessus est 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

yaml_parse_file(
string $filename,
int $pos = 0,
int &$ndocs = ?,
array $callbacks = null
): mixed

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 nœuds 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 nœuds 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

yaml_parse_url(
string $url,
int $pos = 0,
int &$ndocs = ?,
array $callbacks = null
): mixed

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 nœuds 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 nœuds 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

yaml_parse(
string $input,
int $pos = 0,
int &$ndocs = ?,
array $callbacks = null
): mixed

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 nœuds 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);
?>

Résultat de l'exemple ci-dessus est 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 nœuds 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::__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_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::__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::getDefaultAction — Récupère le nom de l'action par défaut
    • Yaf_Dispatcher::getDefaultController — Récupère le nom du contrôleur par défaut
    • Yaf_Dispatcher::getDefaultModule — Récupère le nom du module par défaut
    • 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_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 — Compte tous les élements dans Yaf_Config.ini
    • Yaf_Config_Ini::current — Récupérer la valeur actuelle
    • Yaf_Config_Ini::__get — Récupérer un élément
    • Yaf_Config_Ini::__isset — Déterminer si une clé existe
    • Yaf_Config_Ini::key — Récupérer la clé de l'élément actuel
    • Yaf_Config_Ini::next — Avancer le pointeur interne
    • 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 la configuration dans 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::__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::getName — Récupère le nom du contrôleur
    • 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_Action_Abstract::getControllerName — Récupère le nom du 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::__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::getNamespacePath — Récupère le chemin d'un espace de noms enregistré
    • Yaf_Loader::getLocalNamespace — Récupère toutes les informations de tous les espaces de noms enregistrés
    • 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::registerNamespace — Register namespace with searching path
    • Yaf_Loader::setLibraryPath — Modifie le chemin de la bibliothèque
  • Yaf_Plugin_Abstract — La classe Yaf_Plugin_Abstract
    • Yaf_Plugin_Abstract::dispatchLoopShutdown — Le but de dispatchLoopShutdown
    • Yaf_Plugin_Abstract::dispatchLoopStartup — Crochet avant une boucle de répétitionp
    • 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::__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::clearParams — Supprime tous les paramètres
    • 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 — Récupère la langue préférée du client
    • Yaf_Request_Abstract::getMethod — Récupère la méthode utilisée
    • Yaf_Request_Abstract::getModuleName — Le but de getModuleName
    • Yaf_Request_Abstract::getParam — Récupère un paramètre
    • Yaf_Request_Abstract::getParams — Récupère tous les paramètres
    • Yaf_Request_Abstract::getRequestUri — Le but de getRequestUri
    • Yaf_Request_Abstract::getServer — Récupère une variable SERVER
    • Yaf_Request_Abstract::isCli — Vérifie si la requête est une requête en ligne de commande
    • Yaf_Request_Abstract::isDispatched — Vérifie si la requête est une requête isDispatched
    • Yaf_Request_Abstract::isGet — Vérifie si la requête est une requête GET
    • Yaf_Request_Abstract::isHead — Vérifie si la requête est une requête HEAD
    • Yaf_Request_Abstract::isOptions — Vérifie si la requête est une requête OPTIONS
    • Yaf_Request_Abstract::isPost — Vérifie si la requête est une requête isPost
    • Yaf_Request_Abstract::isPut — Vérifie si la requête est une requête PUT
    • Yaf_Request_Abstract::isRouted — Vérifie si la requête a été routée
    • Yaf_Request_Abstract::isXmlHttpRequest — Vérifie si la requête est une requête AJAX
    • Yaf_Request_Abstract::setActionName — Définie le nom de l'action
    • Yaf_Request_Abstract::setBaseUri — Défini l'URI de base
    • Yaf_Request_Abstract::setControllerName — Définie le nom du contrôleur
    • Yaf_Request_Abstract::setDispatched — Le but de setDispatched
    • Yaf_Request_Abstract::setModuleName — Définit le nom du module
    • Yaf_Request_Abstract::setParam — Définie un paramètre dans une requête
    • 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::__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::getRaw — Récupère le corps brut 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::__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 — Détermine si la requête est une requête AJAX
  • Yaf_Response_Abstract — La classe Yaf_Response_Abstract
    • Yaf_Response_Abstract::appendBody — Ajoute le corps de la réponse
    • Yaf_Response_Abstract::clearBody — Supprime tous les corps de réponse existants
    • Yaf_Response_Abstract::clearHeaders — Supprime toutes les en-têtes définies
    • 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 — Envoie 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 — Définit l'en-tête de réponse
    • Yaf_Response_Abstract::setRedirect — Le but de setRedirect
    • Yaf_Response_Abstract::__toString — Récupère tout le corps sous la forme d'une chaîne de caractères
  • 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::__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::start — Le but de start
    • Yaf_Session::__unset — Le but de __unset
    • Yaf_Session::valid — Le but de valid
  • 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.

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 : » https://pecl.php.net/package/yaf.

Les binaires Windows (les fichiers DLL) pour cette extension PECL sont disponibles sur le site web PECL.


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 |  | INI_ALL |
yaf.action_prefer | 0 | INI_ALL |
yaf.lowcase_path | 0 | INI_ALL |
yaf.use_spl_autoload | 0 | INI_ALL |
yaf.forward_limit | 5 | INI_ALL |
yaf.name_suffix | 1 | INI_ALL |
yaf.name_separator |  | INI_ALL |
yaf.cache_config | 0 | INI_SYSTEM |
yaf.environ | product | INI_SYSTEM |
yaf.use_namespace | 0 | 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 int

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 int

Si l'on doit mettre en minuscule le chemin lors de l'autochargement de la classe.

yaf.use_spl_autoload int

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 int

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 int

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 int

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 int

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 (string)
YAF_ENVIRON (string)
YAF_ERR_STARTUP_FAILED (int)
YAF_ERR_ROUTE_FAILED (int)
YAF_ERR_DISPATCH_FAILED (int)
YAF_ERR_AUTOLOAD_FAILED (int)
YAF_ERR_NOTFOUND_MODULE (int)
YAF_ERR_NOTFOUND_CONTROLLER (int)
YAF_ERR_NOTFOUND_ACTION (int)
YAF_ERR_NOTFOUND_VIEW (int)
YAF_ERR_CALL_FAILED (int)
YAF_ERR_TYPE_ERROR (int)


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 // contrôleur 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

Résultat de l'exemple ci-dessus est 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 INI_ALL peuvent être définies de cette façon.


La classe Yaf_Application

(Yaf >=1.0.0)

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 class Yaf_Application {
/* Propriétés */
protected $config;
protected $dispatcher;
protected static $_app;
protected $_modules;
protected $_running;
protected $_environ;
/* Méthodes */
public __construct(mixed $config, string $envrion = ?)
public staticapp(): mixed
public bootstrap(Yaf_Bootstrap_Abstract $bootstrap = ?): void
public clearLastError(): Yaf_Application
public environ(): void
public execute(callable $entry, string ...$args): void
public getAppDirectory(): Yaf_Application
public getConfig(): Yaf_Config_Abstract
public getDispatcher(): Yaf_Dispatcher
public getLastErrorMsg(): string
public getLastErrorNo(): int
public getModules(): array
public run(): void
public setAppDirectory(string $directory): Yaf_Application
public __destruct()
}

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::__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


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 staticYaf_Application::app(): mixed

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 Yaf_Application::bootstrap(Yaf_Bootstrap_Abstract $bootstrap = ?): void

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__);

$application = new Yaf_Application(APPLICATION_PATH.'/conf/application.ini');
$application->bootstrap();
?>

Résultat de l'exemple ci-dessus est similaire à :

1st called
2nd called

Voir aussi

  • Yaf_Bootstrap_Abstract


Efface les informations de la dernière erreur

  • « Yaf_Application::bootstrap
  • Yaf_Application::__construct »
  • 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::clearLastError(): Yaf_Application

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();
?>

Résultat de l'exemple ci-dessus est similaire à :

int(0)


Constructeur de Yaf_Application

  • « Yaf_Application::clearLastError
  • 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.defaultModule=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__));

$application = new Yaf_Application(APPLICATION_PATH.'/conf/application.ini');
$application->bootstrap()->run();
?>

Résultat de l'exemple ci-dessus est 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();
?>

Résultat de l'exemple ci-dessus est 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 Yaf_Application::__destruct()

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 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());
?>

Résultat de l'exemple ci-dessus est 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 Yaf_Application::execute(callable $entry, string ...$args): void

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.

args

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);
?>

Résultat de l'exemple ci-dessus est 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::getAppDirectory(): Yaf_Application

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_Application::getConfig(): Yaf_Config_Abstract

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());
?>

Résultat de l'exemple ci-dessus est 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_Application::getDispatcher(): Yaf_Dispatcher

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());
?>

Résultat de l'exemple ci-dessus est 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 Yaf_Application::getLastErrorMsg(): string

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();
?>

Résultat de l'exemple ci-dessus est 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 Yaf_Application::getLastErrorNo(): int

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();
?>

Résultat de l'exemple ci-dessus est 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 Yaf_Application::getModules(): array

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());
?>

Résultat de l'exemple ci-dessus est 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 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_Bootstrap_Abstract »
  • 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::setAppDirectory(string $directory): Yaf_Application

Liste de paramètres

directory

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();
?>

Résultat de l'exemple ci-dessus est similaire à :

string(22) "Bootstrap::_initConfig"
string(22) "Bootstrap::_initPlugin"

Synopsis de la classe

abstract class 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 class 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 __construct()
public autoRender(bool $flag = ?): Yaf_Dispatcher
public catchException(bool $flag = ?): Yaf_Dispatcher
public disableView(): bool
public dispatch(Yaf_Request_Abstract $request): Yaf_Response_Abstract
public enableView(): Yaf_Dispatcher
public flushInstantly(bool $flag = ?): Yaf_Dispatcher
public getApplication(): Yaf_Application
public getDefaultAction(): string
public getDefaultController(): string
public getDefaultModule(): string
public static getInstance(): Yaf_Dispatcher
public getRequest(): Yaf_Request_Abstract
public getRouter(): Yaf_Router
public initView(string $templates_dir, array $options = ?): Yaf_View_Interface
public registerPlugin(Yaf_Plugin_Abstract $plugin): Yaf_Dispatcher
public returnResponse(bool $flag): Yaf_Dispatcher
public setDefaultAction(string $action): Yaf_Dispatcher
public setDefaultController(string $controller): Yaf_Dispatcher
public setDefaultModule(string $module): Yaf_Dispatcher
public setErrorHandler(call $callback, int $error_types): Yaf_Dispatcher
public setRequest(Yaf_Request_Abstract $request): Yaf_Dispatcher
public setView(Yaf_View_Interface $view): Yaf_Dispatcher
public throwException(bool $flag = ?): Yaf_Dispatcher
}

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::__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::getDefaultAction — Récupère le nom de l'action par défaut
  • Yaf_Dispatcher::getDefaultController — Récupère le nom du contrôleur par défaut
  • Yaf_Dispatcher::getDefaultModule — Récupère le nom du module par défaut
  • 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


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::autoRender(bool $flag = ?): Yaf_Dispatcher

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);
}
}

}
?>

Résultat de l'exemple ci-dessus est similaire à :


Active/désactive la récupération des exceptions

  • « Yaf_Dispatcher::autoRender
  • Yaf_Dispatcher::__construct »
  • 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::catchException(bool $flag = ?): Yaf_Dispatcher

Lorsque application.dispatcher.throwException est actif (vous pouvez aussi appeler la méthode Yaf_Dispatcher::throwException(TRUE)() pour l'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;
}
}
}
?>

Résultat de l'exemple ci-dessus est 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é


Constructeur de Yaf_Dispatcher

  • « Yaf_Dispatcher::catchException
  • 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()

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 Yaf_Dispatcher::disableView(): bool

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_Dispatcher::dispatch(Yaf_Request_Abstract $request): Yaf_Response_Abstract

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 Yaf_Dispatcher::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::enableView(): Yaf_Dispatcher

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::flushInstantly(bool $flag = ?): Yaf_Dispatcher

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::getDefaultAction »
  • 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_Dispatcher::getApplication(): Yaf_Application

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 le nom de l'action par défaut

  • « Yaf_Dispatcher::getApplication
  • Yaf_Dispatcher::getDefaultController »
  • PHP Manual
  • Yaf_Dispatcher
  • Récupère le nom de l'action par défaut

Yaf_Dispatcher::getDefaultAction

(Yaf >=3.2.0)

Yaf_Dispatcher::getDefaultAction — Récupère le nom de l'action par défaut

Description

public Yaf_Dispatcher::getDefaultAction(): string

Récupère le nom de l'action par défaut.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une chaîne de caractères représentant le nom de l'action par défaut ; par défaut, veut "index".


Récupère le nom du contrôleur par défaut

  • « Yaf_Dispatcher::getDefaultAction
  • Yaf_Dispatcher::getDefaultModule »
  • PHP Manual
  • Yaf_Dispatcher
  • Récupère le nom du contrôleur par défaut

Yaf_Dispatcher::getDefaultController

(Yaf >=3.2.0)

Yaf_Dispatcher::getDefaultController — Récupère le nom du contrôleur par défaut

Description

public Yaf_Dispatcher::getDefaultController(): string

Récupère le nom du contrôleur par défaut.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une chaîne de caractères représentant le nom du contrôleur par défaut ; par défaut, vaut "Index"


Récupère le nom du module par défaut

  • « Yaf_Dispatcher::getDefaultController
  • Yaf_Dispatcher::getInstance »
  • PHP Manual
  • Yaf_Dispatcher
  • Récupère le nom du module par défaut

Yaf_Dispatcher::getDefaultModule

(Yaf >=3.2.0)

Yaf_Dispatcher::getDefaultModule — Récupère le nom du module par défaut

Description

public Yaf_Dispatcher::getDefaultModule(): string

Récupère le nom du module par défaut.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom du module par défaut, sous la forme d'une chaîne de caractères ; par défaut, vaut "Index"


Récupère l'instance du module d'envoi

  • « Yaf_Dispatcher::getDefaultModule
  • 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::getInstance(): Yaf_Dispatcher

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_Dispatcher::getRequest(): Yaf_Request_Abstract

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_Dispatcher::getRouter(): Yaf_Router

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_Dispatcher::initView(string $templates_dir, array $options = ?): Yaf_View_Interface

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::registerPlugin(Yaf_Plugin_Abstract $plugin): Yaf_Dispatcher

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::returnResponse(bool $flag): Yaf_Dispatcher

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::setDefaultAction(string $action): Yaf_Dispatcher

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::setDefaultController(string $controller): Yaf_Dispatcher

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::setDefaultModule(string $module): Yaf_Dispatcher

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::setErrorHandler(call $callback, int $error_types): Yaf_Dispatcher

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::setRequest(Yaf_Request_Abstract $request): Yaf_Dispatcher

Liste de paramètres

plugin

Valeurs de retour


Définit un moteur de visualisation personnalisé

  • « Yaf_Dispatcher::setRequest
  • Yaf_Dispatcher::throwException »
  • 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::setView(Yaf_View_Interface $view): Yaf_Dispatcher

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


Active/désactive le lancement d'exceptions

  • « Yaf_Dispatcher::setView
  • Yaf_Config_Abstract »
  • 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::throwException(bool $flag = ?): Yaf_Dispatcher

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());
}
?>

Résultat de l'exemple ci-dessus est 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();
?>

Résultat de l'exemple ci-dessus est 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


La classe Yaf_Config_Abstract

(Yaf >=1.0.0)

Introduction

Synopsis de la classe

abstract class Yaf_Config_Abstract {
/* Propriétés */
protected $_config;
protected $_readonly;
/* Méthodes */
abstract public get(string $name, mixed $value): mixed
abstract public readonly(): bool
abstract public set(): Yaf_Config_Abstract
abstract public toArray(): array
}

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 Yaf_Config_Abstract::get(string $name, mixed $value): mixed

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Config_Abstract::readonly(): bool

Avertissement

Cette fonction est actuellement non documentée ; 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::set(): Yaf_Config_Abstract

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Config_Abstract::toArray(): array

Avertissement

Cette fonction est actuellement non documentée ; 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

class Yaf_Config_Ini extends Yaf_Config_Abstract implements Iterator, ArrayAccess, Countable {
/* Propriétés */
/* Méthodes */
public __construct(string $config_file, string $section = ?)
public count(): void
public current(): void
public __get(string $name = ?): void
public __isset(string $name): void
public key(): void
public next(): void
public offsetExists(string $name): void
public offsetGet(string $name): void
public offsetSet(string $name, string $value): void
public offsetUnset(string $name): void
public readonly(): void
public rewind(): void
public __set(string $name, mixed $value): void
public toArray(): array
public valid(): void
/* Méthodes héritées */
abstract public Yaf_Config_Abstract::get(string $name, mixed $value): mixed
abstract public Yaf_Config_Abstract::readonly(): bool
abstract public Yaf_Config_Abstract::set(): Yaf_Config_Abstract
abstract public Yaf_Config_Abstract::toArray(): array
}

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"));
?>

Résultat de l'exemple ci-dessus est 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 — Compte tous les élements dans Yaf_Config.ini
  • Yaf_Config_Ini::current — Récupérer la valeur actuelle
  • Yaf_Config_Ini::__get — Récupérer un élément
  • Yaf_Config_Ini::__isset — Déterminer si une clé existe
  • Yaf_Config_Ini::key — Récupérer la clé de l'élément actuel
  • Yaf_Config_Ini::next — Avancer le pointeur interne
  • 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 la configuration dans 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


Compte tous les élements dans Yaf_Config.ini

  • « Yaf_Config_Ini::__construct
  • Yaf_Config_Ini::current »
  • PHP Manual
  • Yaf_Config_Ini
  • Compte tous les élements dans Yaf_Config.ini

Yaf_Config_Ini::count

(Yaf >=1.0.0)

Yaf_Config_Ini::count — Compte tous les élements dans Yaf_Config.ini

Description

public Yaf_Config_Ini::count(): void

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupérer la valeur actuelle

  • « Yaf_Config_Ini::count
  • Yaf_Config_Ini::__get »
  • PHP Manual
  • Yaf_Config_Ini
  • Récupérer la valeur actuelle

Yaf_Config_Ini::current

(Yaf >=1.0.0)

Yaf_Config_Ini::current — Récupérer la valeur actuelle

Description

public Yaf_Config_Ini::current(): void

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Récupérer un élément

  • « Yaf_Config_Ini::current
  • Yaf_Config_Ini::__isset »
  • PHP Manual
  • Yaf_Config_Ini
  • Récupérer un élément

Yaf_Config_Ini::__get

(Yaf >=1.0.0)

Yaf_Config_Ini::__get — Récupérer un élément

Description

public Yaf_Config_Ini::__get(string $name = ?): void

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

name

Valeurs de retour


Déterminer si une clé existe

  • « Yaf_Config_Ini::__get
  • Yaf_Config_Ini::key »
  • PHP Manual
  • Yaf_Config_Ini
  • Déterminer si une clé existe

Yaf_Config_Ini::__isset

(Yaf >=1.0.0)

Yaf_Config_Ini::__isset — Déterminer si une clé existe

Description

public Yaf_Config_Ini::__isset(string $name): void

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

name

Valeurs de retour


Récupérer la clé de l'élément actuel

  • « Yaf_Config_Ini::__isset
  • Yaf_Config_Ini::next »
  • PHP Manual
  • Yaf_Config_Ini
  • Récupérer la clé de l'élément actuel

Yaf_Config_Ini::key

(Yaf >=1.0.0)

Yaf_Config_Ini::key — Récupérer la clé de l'élément actuel

Description

public Yaf_Config_Ini::key(): void

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Avancer le pointeur interne

  • « Yaf_Config_Ini::key
  • Yaf_Config_Ini::offsetExists »
  • PHP Manual
  • Yaf_Config_Ini
  • Avancer le pointeur interne

Yaf_Config_Ini::next

(Yaf >=1.0.0)

Yaf_Config_Ini::next — Avancer le pointeur interne

Description

public Yaf_Config_Ini::next(): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Config_Ini::offsetExists(string $name): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Config_Ini::offsetGet(string $name): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Config_Ini::offsetSet(string $name, string $value): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Config_Ini::offsetUnset(string $name): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Config_Ini::readonly(): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Config_Ini::rewind(): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Config_Ini::__set(string $name, mixed $value): void

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

name

value

Valeurs de retour


Retourne la configuration dans un tableau PHP

  • « Yaf_Config_Ini::__set
  • Yaf_Config_Ini::valid »
  • PHP Manual
  • Yaf_Config_Ini
  • Retourne la configuration dans un tableau PHP

Yaf_Config_Ini::toArray

(Yaf >=1.0.0)

Yaf_Config_Ini::toArray — Retourne la configuration dans un tableau PHP

Description

public Yaf_Config_Ini::toArray(): array

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 Yaf_Config_Ini::valid(): void

Avertissement

Cette fonction est actuellement non documentée ; 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

class Yaf_Config_Simple extends Yaf_Config_Abstract implements Iterator, ArrayAccess, Countable {
/* Propriétés */
protected $_readonly;
/* Méthodes */
public __construct(array $configs, bool $readonly = false)
public count(): void
public current(): void
public __get(string $name = ?): void
public __isset(string $name): void
public key(): void
public next(): void
public offsetExists(string $name): void
public offsetGet(string $name): void
public offsetSet(string $name, string $value): void
public offsetUnset(string $name): void
public readonly(): void
public rewind(): void
public __set(string $name, string $value): void
public toArray(): array
public valid(): void
/* Méthodes héritées */
abstract public Yaf_Config_Abstract::get(string $name, mixed $value): mixed
abstract public Yaf_Config_Abstract::readonly(): bool
abstract public Yaf_Config_Abstract::set(): Yaf_Config_Abstract
abstract public Yaf_Config_Abstract::toArray(): array
}

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(array $configs, bool $readonly = false)

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

configs

readonly

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 Yaf_Config_Simple::count(): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Config_Simple::current(): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Config_Simple::__get(string $name = ?): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Config_Simple::__isset(string $name): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Config_Simple::key(): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Config_Simple::next(): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Config_Simple::offsetExists(string $name): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Config_Simple::offsetGet(string $name): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Config_Simple::offsetSet(string $name, string $value): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Config_Simple::offsetUnset(string $name): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Config_Simple::readonly(): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Config_Simple::rewind(): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Config_Simple::__set(string $name, string $value): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Config_Simple::toArray(): array

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 Yaf_Config_Simple::valid(): void

Avertissement

Cette fonction est actuellement non documentée ; 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 cœur 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 class 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 __construct()
protected display(string $tpl, array $parameters = ?): bool
public forward(string $action, array $paramters = ?): bool
public getInvokeArg(string $name): void
public getInvokeArgs(): void
public getModuleName(): string
public getName(): string
public getRequest(): Yaf_Request_Abstract
public getResponse(): Yaf_Response_Abstract
public getView(): Yaf_View_Interface
public getViewpath(): string
public init(): void
public initView(array $options = ?): void
public redirect(string $url): bool
protected render(string $tpl, array $parameters = ?): string
public setViewpath(string $view_directory): void
}

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 function 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 function 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::__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::getName — Récupère le nom du contrôleur
  • 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


Constructeur de Yaf_Controller_Abstract

  • « Yaf_Controller_Abstract
  • 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()

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 Yaf_Controller_Abstract::display(string $tpl, array $parameters = ?): bool

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 Yaf_Controller_Abstract::forward(string $action, array $paramters = ?): bool
public Yaf_Controller_Abstract::forward(string $controller, string $action, array $paramters = ?): bool
public Yaf_Controller_Abstract::forward(
string $module,
string $controller,
string $action,
array $paramters = ?
): bool

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

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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";
}
}
?>

Résultat de l'exemple ci-dessus est similaire à :

login, redirected from Index action

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 Yaf_Controller_Abstract::getInvokeArg(string $name): void

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 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::getName »
  • 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 Yaf_Controller_Abstract::getModuleName(): string

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 le nom du contrôleur

  • « Yaf_Controller_Abstract::getModuleName
  • Yaf_Controller_Abstract::getRequest »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Récupère le nom du contrôleur

Yaf_Controller_Abstract::getName

(Yaf >=3.2.0)

Yaf_Controller_Abstract::getName — Récupère le nom du contrôleur

Description

public Yaf_Controller_Abstract::getName(): string

Récupère le nom du contrôleur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom du contrôleur, sous la forme d'une chaîne de caractères.


Récupère l'objet de la demande courante

  • « Yaf_Controller_Abstract::getName
  • 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_Controller_Abstract::getRequest(): Yaf_Request_Abstract

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_Controller_Abstract::getResponse(): Yaf_Response_Abstract

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_Controller_Abstract::getView(): Yaf_View_Interface

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 Yaf_Controller_Abstract::getViewpath(): string

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 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 Yaf_Controller_Abstract::initView(array $options = ?): void

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 Yaf_Controller_Abstract::redirect(string $url): bool

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 Yaf_Controller_Abstract::render(string $tpl, array $parameters = ?): string

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 Yaf_Controller_Abstract::setViewpath(string $view_directory): void

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, vous devez implémenter la méthode abstraite Yaf_Action_Abstract::execute() dans la classe personnalisée de l'action.

Synopsis de la classe

class Yaf_Action_Abstract extends Yaf_Controller_Abstract {
/* Propriétés */
protected $_controller;
/* Méthodes */
abstract publicexecute(mixed ...$args): mixed
publicgetController(): Yaf_Controller_Abstract
public getControllerName(): string
/* Méthodes héritées */
protected Yaf_Controller_Abstract::display(string $tpl, array $parameters = ?): bool
public Yaf_Controller_Abstract::forward(string $action, array $paramters = ?): bool
public Yaf_Controller_Abstract::getInvokeArg(string $name): void
public Yaf_Controller_Abstract::getInvokeArgs(): void
public Yaf_Controller_Abstract::getModuleName(): string
public Yaf_Controller_Abstract::getName(): string
public Yaf_Controller_Abstract::getRequest(): Yaf_Request_Abstract
public Yaf_Controller_Abstract::getResponse(): Yaf_Response_Abstract
public Yaf_Controller_Abstract::getView(): Yaf_View_Interface
public Yaf_Controller_Abstract::getViewpath(): string
public Yaf_Controller_Abstract::init(): void
public Yaf_Controller_Abstract::initView(array $options = ?): void
public Yaf_Controller_Abstract::redirect(string $url): bool
protected Yaf_Controller_Abstract::render(string $tpl, array $parameters = ?): string
public Yaf_Controller_Abstract::setViewpath(string $view_directory): void
}

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
  • Yaf_Action_Abstract::getControllerName — Récupère le nom du 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 publicYaf_Action_Abstract::execute(mixed ...$args): 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

args

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"));
}
}
?>

Résultat de l'exemple ci-dessus est 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_Action_Abstract::getControllerName »
  • 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_Action_Abstract::getController(): Yaf_Controller_Abstract

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.


Récupère le nom du contrôleur

  • « Yaf_Action_Abstract::getController
  • Yaf_View_Interface »
  • PHP Manual
  • Yaf_Action_Abstract
  • Récupère le nom du contrôleur

Yaf_Action_Abstract::getControllerName

(No version information available, might only be in Git)

Yaf_Action_Abstract::getControllerName — Récupère le nom du contrôleur

Description

public Yaf_Action_Abstract::getControllerName(): string

Récupère le nom du contrôleur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom du contrôleur, sous la forme d'une chaîne de caractères.


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

class Yaf_View_Interface {
/* Méthodes */
abstract public assign(string $name, string $value = ?): bool
abstract public display(string $tpl, array $tpl_vars = ?): bool
abstract public getScriptPath(): void
abstract public render(string $tpl, array $tpl_vars = ?): string
abstract public setScriptPath(string $template_dir): void
}

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 Yaf_View_Interface::assign(string $name, string $value = ?): bool

Assigne une valeur au moteur de rendu, la rendant ainsi disponible directement par son nom au sein du template.

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_View_Interface::display(string $tpl, array $tpl_vars = ?): bool

Construit le template et affiche immédiatement le résultat.

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_View_Interface::getScriptPath(): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_View_Interface::render(string $tpl, array $tpl_vars = ?): string

Construit un template et retourne le résultat.

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_View_Interface::setScriptPath(string $template_dir): void

Définit le dossier de base contenant les templates. Habituellement, ce dossier est défini en utilisant la classe Yaf_Dispatcher.

Avertissement

Cette fonction est actuellement non documentée ; 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

class Yaf_View_Simple implements Yaf_View_Interface {
/* Propriétés */
protected $_tpl_vars;
protected $_tpl_dir;
/* Méthodes */
final public __construct(string $template_dir, array $options = ?)
public assign(string $name, mixed $value = ?): bool
public assignRef(string $name, mixed &$value): bool
public clear(string $name = ?): bool
public display(string $tpl, array $tpl_vars = ?): bool
public eval(string $tpl_content, array $tpl_vars = ?): string
public __get(string $name = ?): void
public getScriptPath(): string
public __isset(string $name): void
public render(string $tpl, array $tpl_vars = ?): string
public __set(string $name, mixed $value): void
public setScriptPath(string $template_dir): bool
}

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 Yaf_View_Simple::assign(string $name, mixed $value = ?): bool

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 Yaf_View_Simple::assignRef(string $name, mixed &$value): bool

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>

Résultat de l'exemple ci-dessus est 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 Yaf_View_Simple::clear(string $name = ?): bool

Avertissement

Cette fonction est actuellement non documentée ; 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
));
?>


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 Yaf_View_Simple::display(string $tpl, array $tpl_vars = ?): bool

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 Yaf_View_Simple::eval(string $tpl_content, array $tpl_vars = ?): string

É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 Yaf_View_Simple::__get(string $name = ?): void

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 Yaf_View_Simple::getScriptPath(): string

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 Yaf_View_Simple::__isset(string $name): void

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 Yaf_View_Simple::render(string $tpl, array $tpl_vars = ?): string

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 Yaf_View_Simple::__set(string $name, mixed $value): void

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 Yaf_View_Simple::setScriptPath(string $template_dir): bool

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'autochargement. 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

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

class Yaf_Loader {
/* Propriétés */
protected $_local_ns;
protected $_library;
protected $_global_library;
static $_instance;
/* Méthodes */
private __construct()
public autoload(): void
public clearLocalNamespace(): void
public static getInstance(): void
public getLibraryPath(bool $is_global = false): Yaf_Loader
public getLocalNamespace(): void
public getNamespacePath(string $namespaces): string
public getNamespaces(): array
public static import(): void
public isLocalName(): void
public registerLocalNamespace(mixed $prefix): void
public registerNamespace(string|array $namespaces, string $path = ?): bool
public setLibraryPath(string $directory, bool $is_global = false): Yaf_Loader
}

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::__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::getNamespacePath — Récupère le chemin d'un espace de noms enregistré
  • Yaf_Loader::getLocalNamespace — Récupère toutes les informations de tous les espaces de noms enregistrés
  • 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::registerNamespace — Register namespace with searching path
  • Yaf_Loader::setLibraryPath — Modifie le chemin de la bibliothèque


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 Yaf_Loader::autoload(): void

Avertissement

Cette fonction est actuellement non documentée ; 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::__construct »
  • PHP Manual
  • Yaf_Loader
  • Le but de clearLocalNamespace

Yaf_Loader::clearLocalNamespace

(Yaf >=1.0.0)

Yaf_Loader::clearLocalNamespace — Le but de clearLocalNamespace

Description

public Yaf_Loader::clearLocalNamespace(): void

Avertissement

Cette fonction est actuellement non documentée ; 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::clearLocalNamespace
  • 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()

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Loader::getInstance(): void

Avertissement

Cette fonction est actuellement non documentée ; 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::getLibraryPath(bool $is_global = false): Yaf_Loader

Avertissement

Cette fonction est actuellement non documentée ; 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::getNamespacePath »
  • PHP Manual
  • Yaf_Loader
  • Le but de getLocalNamespace

Yaf_Loader::getLocalNamespace

(Yaf >=1.0.0)

Yaf_Loader::getLocalNamespace — Le but de getLocalNamespace

Description

public Yaf_Loader::getLocalNamespace(): void

Avertissement

Cette fonction est actuellement non documentée ; 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 d'un espace de noms enregistré

  • « Yaf_Loader::getLocalNamespace
  • Yaf_Loader::getLocalNamespace »
  • PHP Manual
  • Yaf_Loader
  • Récupère le chemin d'un espace de noms enregistré

Yaf_Loader::getNamespacePath

(Yaf >=3.2.0)

Yaf_Loader::getNamespacePath — Récupère le chemin d'un espace de noms enregistré

Description

public Yaf_Loader::getNamespacePath(string $namespaces): string

Récupère le chemin d'un espace de noms enregistré.

Liste de paramètres

namespace

une chaîne de caractères représentant un espace de noms.

Valeurs de retour

Le chemin, sous la forme d'une chaîne de caractères ; si l'espace de noms n'est pas enregistré, retourne null ; la bibliothèque par défaut sera retournée.

Exemples

Exemple #1 Exemple avec Yaf_Loader::registerNamespace()

<?php
$loader = Yaf_Loader::getInstance("/var/application/lib");
$loader->registerNamespace("\Vendor\PHP", "/var/lib/php");

$loader->getNamespacePath("\Vendor\PHP"); // '/var/lib/php'
$loader->getNamespacePath("\Vendor\JSP"); // '/var/application/lib'

?>


Récupère toutes les informations de tous les espaces de noms enregistrés

  • « Yaf_Loader::getNamespacePath
  • Yaf_Loader::import »
  • PHP Manual
  • Yaf_Loader
  • Récupère toutes les informations de tous les espaces de noms enregistrés

Yaf_Loader::getLocalNamespace

(Yaf >=1.0.0)

Yaf_Loader::getLocalNamespace — Récupère toutes les informations de tous les espaces de noms enregistrés

Description

public Yaf_Loader::getNamespaces(): array

Récupère toutes les informations de tous les espaces de noms enregistrés.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

tableau


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 Yaf_Loader::import(): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Loader::isLocalName(): void

Avertissement

Cette fonction est actuellement non documentée ; 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::registerNamespace »
  • 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 Yaf_Loader::registerLocalNamespace(mixed $prefix): void

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'autochargement 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 autochargements 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/'

?>


Register namespace with searching path

  • « Yaf_Loader::registerLocalNamespace
  • Yaf_Loader::setLibraryPath »
  • PHP Manual
  • Yaf_Loader
  • Register namespace with searching path

Yaf_Loader::registerNamespace

(Yaf >=3.2.0)

Yaf_Loader::registerNamespace — Register namespace with searching path

Description

public Yaf_Loader::registerNamespace(string|array $namespaces, string $path = ?): bool

Register a namespace with searching path, Yaf_Loader searchs classes under this namespace in path, the one is also could be configureded via application.library.directory.namespace(in application.ini);

Note:

Yaf still think underline as folder separator.

Liste de paramètres

namespace

a string of namespace, or a array of namespaces with paths.

path

a string of path, it is better to use abosolute path here for performance

Valeurs de retour

bool

Exemples

Exemple #1 Yaf_Loader::registerNamespace()example

<?php
$loader = Yaf_Loader::getInstance();
$loader->registerNamespace("\Vendor\PHP", "/var/lib/php");
$loader->registerNamespace(array(
"\Vendor\ASP" => "/var/lib/asp",
"\Vendor\JSP" => "/usr/lib/vendor/",
));

$loader->autoload("\Vendor\PHP\Dummy"); //load '/var/lib/php/Dummy.php'
$loader->autoload("\Vendor\PHP\Foo_Bar"); //load '/var/lib/php/Foo/Bar.php'
$loader->autoload("\Vendor\JSP\Dummy"); //load '/usr/lib/vendor/Dummy.php'

?>


Modifie le chemin de la bibliothèque

  • « Yaf_Loader::registerNamespace
  • Yaf_Plugin_Abstract »
  • 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::setLibraryPath(string $directory, bool $is_global = false): Yaf_Loader

Avertissement

Cette fonction est actuellement non documentée ; 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();
?>

Résultat de l'exemple ci-dessus est similaire à :

string(13) "routerStartup"
string(14) "routerShutdown"
string(19) "dispatchLoopStartup"
string(11) "preDispatch"
string(12) "postDispatch"
string(20) "dispatchLoopShutdown"

Synopsis de la classe

class Yaf_Plugin_Abstract {
/* Méthodes */
public dispatchLoopShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response): void
public dispatchLoopStartup(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response): void
public postDispatch(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response): void
public preDispatch(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response): void
public preResponse(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response): void
public routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response): void
public routerStartup(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response): void
}

Sommaire

  • Yaf_Plugin_Abstract::dispatchLoopShutdown — Le but de dispatchLoopShutdown
  • Yaf_Plugin_Abstract::dispatchLoopStartup — Crochet avant une boucle de répétitionp
  • 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 Yaf_Plugin_Abstract::dispatchLoopShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response): void

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 est actuellement non documentée ; 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() - Crochet avant une boucle de répétitionp
  • Yaf_Plugin_Abstract::preDispatch() - Le but de preDispatch
  • Yaf_Plugin_Abstract::postDispatch() - Le but de postDispatch


Crochet avant une boucle de répétitionp

  • « Yaf_Plugin_Abstract::dispatchLoopShutdown
  • Yaf_Plugin_Abstract::postDispatch »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • Crochet avant une boucle de répétitionp

Yaf_Plugin_Abstract::dispatchLoopStartup

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::dispatchLoopStartup — Crochet avant une boucle de répétitionp

Description

public Yaf_Plugin_Abstract::dispatchLoopStartup(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response): void

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 Yaf_Plugin_Abstract::postDispatch(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Plugin_Abstract::preDispatch(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Plugin_Abstract::preResponse(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Plugin_Abstract::routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response): void

Ce hook sera lancé lorsque le processus route sera terminé ; il est habituellement utilisé pour une vérification du login.

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;
}

/* Échec de la verification des accès, ré-identification nécessaire */
$response->setRedirect("http://yourdomain.com/login/");
return FALSE;
}
}
?>

Voir aussi

  • Yaf_Plugin_Abstract::routerStartup() - Hook RouterStartup
  • Yaf_Plugin_Abstract::dispatchLoopStartup() - Crochet avant une boucle de répétitionp
  • 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 Yaf_Plugin_Abstract::routerStartup(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response): void

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 est actuellement non documentée ; 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() - Crochet avant une boucle de répétitionp
  • 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

class Yaf_Registry {
/* Propriétés */
static $_instance;
protected $_entries;
/* Méthodes */
private __construct()
public static del(string $name): void
public static get(string $name): mixed
public static has(string $name): bool
public static set(string $name, string $value): bool
}

Propriétés

_instance

_entries

Sommaire

  • 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


Constructeur de la classe Yaf_Registry

  • « Yaf_Registry
  • 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()

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 Yaf_Registry::del(string $name): void

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 Yaf_Registry::get(string $name): mixed

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 Yaf_Registry::has(string $name): bool

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 Yaf_Registry::set(string $name, string $value): bool

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

class 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 clearParams(): bool
public getActionName(): void
public getBaseUri(): void
public getControllerName(): void
public getEnv(string $name, string $default = ?): void
public getException(): void
public getLanguage(): void
public getMethod(): string
public getModuleName(): void
public getParam(string $name, string $default = ?): mixed
public getParams(): array
public getRequestUri(): void
public getServer(string $name, string $default = ?): void
public isCli(): bool
public isDispatched(): bool
public isGet(): bool
public isHead(): bool
public isOptions(): bool
public isPost(): bool
public isPut(): bool
public isRouted(): bool
public isXmlHttpRequest(): bool
public setActionName(string $action, bool $format_name = true): void
public setBaseUri(string $uir): bool
public setControllerName(string $controller, bool $format_name = true): void
public setDispatched(): void
public setModuleName(string $module, bool $format_name = true): void
public setParam(string $name, string $value = ?): bool
public setRequestUri(string $uir): void
public setRouted(string $flag = ?): void
}

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::clearParams — Supprime tous les paramètres
  • 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 — Récupère la langue préférée du client
  • Yaf_Request_Abstract::getMethod — Récupère la méthode utilisée
  • Yaf_Request_Abstract::getModuleName — Le but de getModuleName
  • Yaf_Request_Abstract::getParam — Récupère un paramètre
  • Yaf_Request_Abstract::getParams — Récupère tous les paramètres
  • Yaf_Request_Abstract::getRequestUri — Le but de getRequestUri
  • Yaf_Request_Abstract::getServer — Récupère une variable SERVER
  • Yaf_Request_Abstract::isCli — Vérifie si la requête est une requête en ligne de commande
  • Yaf_Request_Abstract::isDispatched — Vérifie si la requête est une requête isDispatched
  • Yaf_Request_Abstract::isGet — Vérifie si la requête est une requête GET
  • Yaf_Request_Abstract::isHead — Vérifie si la requête est une requête HEAD
  • Yaf_Request_Abstract::isOptions — Vérifie si la requête est une requête OPTIONS
  • Yaf_Request_Abstract::isPost — Vérifie si la requête est une requête isPost
  • Yaf_Request_Abstract::isPut — Vérifie si la requête est une requête PUT
  • Yaf_Request_Abstract::isRouted — Vérifie si la requête a été routée
  • Yaf_Request_Abstract::isXmlHttpRequest — Vérifie si la requête est une requête AJAX
  • Yaf_Request_Abstract::setActionName — Définie le nom de l'action
  • Yaf_Request_Abstract::setBaseUri — Défini l'URI de base
  • Yaf_Request_Abstract::setControllerName — Définie le nom du contrôleur
  • Yaf_Request_Abstract::setDispatched — Le but de setDispatched
  • Yaf_Request_Abstract::setModuleName — Définit le nom du module
  • Yaf_Request_Abstract::setParam — Définie un paramètre dans une requête
  • Yaf_Request_Abstract::setRequestUri — Le but de setRequestUri
  • Yaf_Request_Abstract::setRouted — Le but de setRouted


Supprime tous les paramètres

  • « Yaf_Request_Abstract
  • Yaf_Request_Abstract::getActionName »
  • PHP Manual
  • Yaf_Request_Abstract
  • Supprime tous les paramètres

Yaf_Request_Abstract::clearParams

(No version information available, might only be in Git)

Yaf_Request_Abstract::clearParams — Supprime tous les paramètres

Description

public Yaf_Request_Abstract::clearParams(): bool

Supprime tous les paramètres définis par le routeur, ou par la méthode Yaf_Request_Abstract::setParam()

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

booléen

Voir aussi

  • Yaf_Request_Abstract::isHead() - Vérifie si la requête est une requête HEAD
  • Yaf_Request_Abstract::isGet() - Vérifie si la requête est une requête GET
  • Yaf_Request_Abstract::isPost() - Vérifie si la requête est une requête isPost
  • Yaf_Request_Abstract::isPut() - Vérifie si la requête est une requête PUT
  • Yaf_Request_Abstract::isOptions() - Vérifie si la requête est une requête OPTIONS
  • Yaf_Request_Abstract::isXmlHTTPRequest() - Vérifie si la requête est une requête AJAX


Le but de getActionName

  • « Yaf_Request_Abstract::clearParams
  • 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 Yaf_Request_Abstract::getActionName(): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Request_Abstract::getBaseUri(): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Request_Abstract::getControllerName(): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Request_Abstract::getEnv(string $name, string $default = ?): void

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

Retourne une chaîne de caractères.

Voir aussi

  • Yaf_Request_Abstract::getServer() - Récupère une variable SERVER
  • Yaf_Request_Abstract::getParam() - Récupère un paramètre


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 Yaf_Request_Abstract::getException(): void

Avertissement

Cette fonction est actuellement non documentée ; 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 langue préférée du client

  • « Yaf_Request_Abstract::getException
  • Yaf_Request_Abstract::getMethod »
  • PHP Manual
  • Yaf_Request_Abstract
  • Récupère la langue préférée du client

Yaf_Request_Abstract::getLanguage

(Yaf >=1.0.0)

Yaf_Request_Abstract::getLanguage — Récupère la langue préférée du client

Description

public Yaf_Request_Abstract::getLanguage(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne de caractères


Récupère la méthode utilisée

  • « Yaf_Request_Abstract::getLanguage
  • Yaf_Request_Abstract::getModuleName »
  • PHP Manual
  • Yaf_Request_Abstract
  • Récupère la méthode utilisée

Yaf_Request_Abstract::getMethod

(Yaf >=1.0.0)

Yaf_Request_Abstract::getMethod — Récupère la méthode utilisée

Description

public Yaf_Request_Abstract::getMethod(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une chaîne comme "POST", "GET" etc.

Voir aussi

  • Yaf_Request_Abstract::isHead() - Vérifie si la requête est une requête HEAD
  • Yaf_Request_Abstract::isCli() - Vérifie si la requête est une requête en ligne de commande
  • Yaf_Request_Abstract::isPost() - Vérifie si la requête est une requête isPost
  • Yaf_Request_Abstract::isPut() - Vérifie si la requête est une requête PUT
  • Yaf_Request_Abstract::isOptions() - Vérifie si la requête est une requête OPTIONS
  • Yaf_Request_Abstract::isXmlHTTPRequest() - Vérifie si la requête est une requête AJAX


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 Yaf_Request_Abstract::getModuleName(): void

Avertissement

Cette fonction est actuellement non documentée ; 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 paramètre

  • « Yaf_Request_Abstract::getModuleName
  • Yaf_Request_Abstract::getParams »
  • PHP Manual
  • Yaf_Request_Abstract
  • Récupère un paramètre

Yaf_Request_Abstract::getParam

(Yaf >=1.0.0)

Yaf_Request_Abstract::getParam — Récupère un paramètre

Description

public Yaf_Request_Abstract::getParam(string $name, string $default = ?): mixed

Liste de paramètres

name

default

Valeurs de retour

Voir aussi

  • Yaf_Request_Abstract::setParam() - Définie un paramètre dans une requête


Récupère tous les paramètres

  • « Yaf_Request_Abstract::getParam
  • Yaf_Request_Abstract::getRequestUri »
  • PHP Manual
  • Yaf_Request_Abstract
  • Récupère tous les paramètres

Yaf_Request_Abstract::getParams

(Yaf >=1.0.0)

Yaf_Request_Abstract::getParams — Récupère tous les paramètres

Description

public Yaf_Request_Abstract::getParams(): array

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • Yaf_Request_Abstract::setParam() - Définie un paramètre dans une requête


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 Yaf_Request_Abstract::getRequestUri(): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Request_Abstract::getServer(string $name, string $default = ?): void

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() - Récupère un paramètre
  • Yaf_Request_Abstract::getEnv() - Récupère une variable ENV


Vérifie si la requête est une requête en ligne de commande

  • « Yaf_Request_Abstract::getServer
  • Yaf_Request_Abstract::isDispatched »
  • PHP Manual
  • Yaf_Request_Abstract
  • Vérifie si la requête est une requête en ligne de commande

Yaf_Request_Abstract::isCli

(Yaf >=1.0.0)

Yaf_Request_Abstract::isCli — Vérifie si la requête est une requête en ligne de commande

Description

public Yaf_Request_Abstract::isCli(): bool

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un booléen.

Voir aussi

  • Yaf_Request_Abstract::isHead() - Vérifie si la requête est une requête HEAD
  • Yaf_Request_Abstract::isGet() - Vérifie si la requête est une requête GET
  • Yaf_Request_Abstract::isPost() - Vérifie si la requête est une requête isPost
  • Yaf_Request_Abstract::isPut() - Vérifie si la requête est une requête PUT
  • Yaf_Request_Abstract::isOptions() - Vérifie si la requête est une requête OPTIONS
  • Yaf_Request_Abstract::isXmlHTTPRequest() - Vérifie si la requête est une requête AJAX


Vérifie si la requête est une requête isDispatched

  • « Yaf_Request_Abstract::isCli
  • Yaf_Request_Abstract::isGet »
  • PHP Manual
  • Yaf_Request_Abstract
  • Vérifie si la requête est une requête isDispatched

Yaf_Request_Abstract::isDispatched

(Yaf >=1.0.0)

Yaf_Request_Abstract::isDispatched — Vérifie si la requête est une requête isDispatched

Description

public Yaf_Request_Abstract::isDispatched(): bool

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un booléen.

Voir aussi

  • Yaf_Dispatcher::dispatch() - Envoi une demande


Vérifie si la requête est une requête GET

  • « Yaf_Request_Abstract::isDispatched
  • Yaf_Request_Abstract::isHead »
  • PHP Manual
  • Yaf_Request_Abstract
  • Vérifie si la requête est une requête GET

Yaf_Request_Abstract::isGet

(Yaf >=1.0.0)

Yaf_Request_Abstract::isGet — Vérifie si la requête est une requête GET

Description

public Yaf_Request_Abstract::isGet(): bool

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un booléen.

Voir aussi

  • Yaf_Request_Abstract::isHead() - Vérifie si la requête est une requête HEAD
  • Yaf_Request_Abstract::isCli() - Vérifie si la requête est une requête en ligne de commande
  • Yaf_Request_Abstract::isPost() - Vérifie si la requête est une requête isPost
  • Yaf_Request_Abstract::isPut() - Vérifie si la requête est une requête PUT
  • Yaf_Request_Abstract::isOptions() - Vérifie si la requête est une requête OPTIONS
  • Yaf_Request_Abstract::isXmlHTTPRequest() - Vérifie si la requête est une requête AJAX


Vérifie si la requête est une requête HEAD

  • « Yaf_Request_Abstract::isGet
  • Yaf_Request_Abstract::isOptions »
  • PHP Manual
  • Yaf_Request_Abstract
  • Vérifie si la requête est une requête HEAD

Yaf_Request_Abstract::isHead

(Yaf >=1.0.0)

Yaf_Request_Abstract::isHead — Vérifie si la requête est une requête HEAD

Description

public Yaf_Request_Abstract::isHead(): bool

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • Yaf_Request_Abstract::isGet() - Vérifie si la requête est une requête GET
  • Yaf_Request_Abstract::isCli() - Vérifie si la requête est une requête en ligne de commande
  • Yaf_Request_Abstract::isPost() - Vérifie si la requête est une requête isPost
  • Yaf_Request_Abstract::isPut() - Vérifie si la requête est une requête PUT
  • Yaf_Request_Abstract::isOptions() - Vérifie si la requête est une requête OPTIONS
  • Yaf_Request_Abstract::isXmlHTTPRequest() - Vérifie si la requête est une requête AJAX


Vérifie si la requête est une requête OPTIONS

  • « Yaf_Request_Abstract::isHead
  • Yaf_Request_Abstract::isPost »
  • PHP Manual
  • Yaf_Request_Abstract
  • Vérifie si la requête est une requête OPTIONS

Yaf_Request_Abstract::isOptions

(Yaf >=1.0.0)

Yaf_Request_Abstract::isOptions — Vérifie si la requête est une requête OPTIONS

Description

public Yaf_Request_Abstract::isOptions(): bool

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Vérifie si la requête est une requête isPost

  • « Yaf_Request_Abstract::isOptions
  • Yaf_Request_Abstract::isPut »
  • PHP Manual
  • Yaf_Request_Abstract
  • Vérifie si la requête est une requête isPost

Yaf_Request_Abstract::isPost

(Yaf >=1.0.0)

Yaf_Request_Abstract::isPost — Vérifie si la requête est une requête isPost

Description

public Yaf_Request_Abstract::isPost(): bool

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un booléen.

Voir aussi

  • Yaf_Request_Abstract::isGet() - Vérifie si la requête est une requête GET
  • Yaf_Request_Abstract::isCli() - Vérifie si la requête est une requête en ligne de commande
  • Yaf_Request_Abstract::isHead() - Vérifie si la requête est une requête HEAD
  • Yaf_Request_Abstract::isPut() - Vérifie si la requête est une requête PUT
  • Yaf_Request_Abstract::isOptions() - Vérifie si la requête est une requête OPTIONS
  • Yaf_Request_Abstract::isXmlHTTPRequest() - Vérifie si la requête est une requête AJAX


Vérifie si la requête est une requête PUT

  • « Yaf_Request_Abstract::isPost
  • Yaf_Request_Abstract::isRouted »
  • PHP Manual
  • Yaf_Request_Abstract
  • Vérifie si la requête est une requête PUT

Yaf_Request_Abstract::isPut

(Yaf >=1.0.0)

Yaf_Request_Abstract::isPut — Vérifie si la requête est une requête PUT

Description

public Yaf_Request_Abstract::isPut(): bool

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un booléen.

Voir aussi

  • Yaf_Request_Abstract::isHead() - Vérifie si la requête est une requête HEAD
  • Yaf_Request_Abstract::isCli() - Vérifie si la requête est une requête en ligne de commande
  • Yaf_Request_Abstract::isPost() - Vérifie si la requête est une requête isPost
  • Yaf_Request_Abstract::isGet() - Vérifie si la requête est une requête GET
  • Yaf_Request_Abstract::isOptions() - Vérifie si la requête est une requête OPTIONS
  • Yaf_Request_Abstract::isXmlHTTPRequest() - Vérifie si la requête est une requête AJAX


Vérifie si la requête a été routée

  • « Yaf_Request_Abstract::isPut
  • Yaf_Request_Abstract::isXmlHttpRequest »
  • PHP Manual
  • Yaf_Request_Abstract
  • Vérifie si la requête a été routée

Yaf_Request_Abstract::isRouted

(Yaf >=1.0.0)

Yaf_Request_Abstract::isRouted — Vérifie si la requête a été routée

Description

public Yaf_Request_Abstract::isRouted(): bool

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un booléen.


Vérifie si la requête est une requête AJAX

  • « Yaf_Request_Abstract::isRouted
  • Yaf_Request_Abstract::setActionName »
  • PHP Manual
  • Yaf_Request_Abstract
  • Vérifie si la requête est une requête AJAX

Yaf_Request_Abstract::isXmlHttpRequest

(Yaf >=1.0.0)

Yaf_Request_Abstract::isXmlHttpRequest — Vérifie si la requête est une requête AJAX

Description

public Yaf_Request_Abstract::isXmlHttpRequest(): bool

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un booléen.

Voir aussi

  • Yaf_Request_Abstract::isHead() - Vérifie si la requête est une requête HEAD
  • Yaf_Request_Abstract::isCli() - Vérifie si la requête est une requête en ligne de commande
  • Yaf_Request_Abstract::isPost() - Vérifie si la requête est une requête isPost
  • Yaf_Request_Abstract::isPut() - Vérifie si la requête est une requête PUT
  • Yaf_Request_Abstract::isOptions() - Vérifie si la requête est une requête OPTIONS
  • Yaf_Request_Abstract::isGet() - Vérifie si la requête est une requête GET


Définie le nom de l'action

  • « Yaf_Request_Abstract::isXmlHttpRequest
  • Yaf_Request_Abstract::setBaseUri »
  • PHP Manual
  • Yaf_Request_Abstract
  • Définie le nom de l'action

Yaf_Request_Abstract::setActionName

(Yaf >=1.0.0)

Yaf_Request_Abstract::setActionName — Définie le nom de l'action

Description

public Yaf_Request_Abstract::setActionName(string $action, bool $format_name = true): void

Définie le nom de l'action à requérir ; habituellement utilisé pour personnalisé le routeur pour définir le nom du contrôleur de la route résultante.

Liste de paramètres

action

chaîne de caractères ; le nom de l'action, en minuscule, comme "index" ou "foo_bar"

format_name

Ceci a été introduit en Yaf 3.2.0 ; par défaut, Yaf va formater le nom en minuscule, si définit à false, Yaf va définir le nom original pour la requête.

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 Yaf_Request_Abstract::setBaseUri(string $uir): bool

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.


Définie le nom du contrôleur

  • « Yaf_Request_Abstract::setBaseUri
  • Yaf_Request_Abstract::setDispatched »
  • PHP Manual
  • Yaf_Request_Abstract
  • Définie le nom du contrôleur

Yaf_Request_Abstract::setControllerName

(Yaf >=1.0.0)

Yaf_Request_Abstract::setControllerName — Définie le nom du contrôleur

Description

public Yaf_Request_Abstract::setControllerName(string $controller, bool $format_name = true): void

Définie le nom du contrôleur dans la requête ; habituellement utilisé par les routeurs personnalisées pour définir le nom du contrôleur de la route résultante.

Liste de paramètres

controller

chaîne de caractères ; nom du contrôleur, en sryle camel, comme "Index" ou "Foo_Bar"

format_name

Introduit en Yaf 3.2.0 ; par défaut, Yaf formattera le nom en mode camel ; si définit à false, Yaf définira le nom original dans la requête.

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 Yaf_Request_Abstract::setDispatched(): void

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Définit le nom du module

  • « Yaf_Request_Abstract::setDispatched
  • Yaf_Request_Abstract::setParam »
  • PHP Manual
  • Yaf_Request_Abstract
  • Définit le nom du module

Yaf_Request_Abstract::setModuleName

(Yaf >=1.0.0)

Yaf_Request_Abstract::setModuleName — Définit le nom du module

Description

public Yaf_Request_Abstract::setModuleName(string $module, bool $format_name = true): void

Définit le nom du module dans la requête ; habituellement utilisé par le routeur personnalisé pour définir le nom du module de la route résultante.

Liste de paramètres

module

chaîne de caractères ; nom du module, au style camel comme "Index" ou "Foo_Bar"

format_name

Introduit en Yaf 3.2.0 ; par défaut, Yaf formattera le nom en mode camel ; si définit à false, Yaf définira le nom original dans la requête.

Valeurs de retour


Définie un paramètre dans une requête

  • « Yaf_Request_Abstract::setModuleName
  • Yaf_Request_Abstract::setRequestUri »
  • PHP Manual
  • Yaf_Request_Abstract
  • Définie un paramètre dans une requête

Yaf_Request_Abstract::setParam

(Yaf >=1.0.0)

Yaf_Request_Abstract::setParam — Définie un paramètre dans une requête

Description

public Yaf_Request_Abstract::setParam(string $name, string $value = ?): bool

Définie un paramètre dans une requête, qui pourra être récupéré via la méthode Yaf_Request_Abstract::getParam().

Liste de paramètres

name

value

Valeurs de retour

Voir aussi

  • Yaf_Request_Abstract::getParam() - Récupère un paramètre
  • Yaf_Request_Abstract::getParams() - Récupère tous les paramètres


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 Yaf_Request_Abstract::setRequestUri(string $uir): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Request_Abstract::setRouted(string $flag = ?): void

Avertissement

Cette fonction est actuellement non documentée ; 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 fonctionnalité 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

class Yaf_Request_Http extends Yaf_Request_Abstract {
/* Propriétés */
/* Méthodes */
public __construct(string $request_uri = ?, string $base_uri = ?)
public get(string $name, string $default = ?): mixed
public getCookie(string $name, string $default = ?): mixed
public getFiles(): void
public getPost(string $name, string $default = ?): mixed
public getQuery(string $name, string $default = ?): mixed
public getRaw(): mixed
public getRequest(): void
public isXmlHttpRequest(): bool
/* Méthodes héritées */
public Yaf_Request_Abstract::clearParams(): bool
public Yaf_Request_Abstract::getActionName(): void
public Yaf_Request_Abstract::getBaseUri(): void
public Yaf_Request_Abstract::getControllerName(): void
public Yaf_Request_Abstract::getEnv(string $name, string $default = ?): void
public Yaf_Request_Abstract::getException(): void
public Yaf_Request_Abstract::getLanguage(): void
public Yaf_Request_Abstract::getMethod(): string
public Yaf_Request_Abstract::getModuleName(): void
public Yaf_Request_Abstract::getParam(string $name, string $default = ?): mixed
public Yaf_Request_Abstract::getParams(): array
public Yaf_Request_Abstract::getRequestUri(): void
public Yaf_Request_Abstract::getServer(string $name, string $default = ?): void
public Yaf_Request_Abstract::isCli(): bool
public Yaf_Request_Abstract::isDispatched(): bool
public Yaf_Request_Abstract::isGet(): bool
public Yaf_Request_Abstract::isHead(): bool
public Yaf_Request_Abstract::isOptions(): bool
public Yaf_Request_Abstract::isPost(): bool
public Yaf_Request_Abstract::isPut(): bool
public Yaf_Request_Abstract::isRouted(): bool
public Yaf_Request_Abstract::isXmlHttpRequest(): bool
public Yaf_Request_Abstract::setActionName(string $action, bool $format_name = true): void
public Yaf_Request_Abstract::setBaseUri(string $uir): bool
public Yaf_Request_Abstract::setControllerName(string $controller, bool $format_name = true): void
public Yaf_Request_Abstract::setDispatched(): void
public Yaf_Request_Abstract::setModuleName(string $module, bool $format_name = true): void
public Yaf_Request_Abstract::setParam(string $name, string $value = ?): bool
public Yaf_Request_Abstract::setRequestUri(string $uir): void
public Yaf_Request_Abstract::setRouted(string $flag = ?): void
}

Propriétés

module

controller

action

method

params

language

_exception

_base_uri

uri

dispatched

routed

Sommaire

  • 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::getRaw — Récupère le corps brut 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


Constructeur de __construct

  • « Yaf_Request_Http
  • 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 est actuellement non documentée ; 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 Yaf_Request_Http::get(string $name, string $default = ?): mixed

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() - Récupère un paramètre de la requête
  • Yaf_Request_Http::getPost() - Récupère une variable POST
  • Yaf_Request_Http::getCookie() - Récupère une variable Cookie
  • Yaf_Request_Http::getRaw() - Récupère le corps brut de la requête
  • Yaf_Request_Abstract::getServer() - Récupère une variable SERVER
  • Yaf_Request_Abstract::getParam() - Récupère un paramètre


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 Yaf_Request_Http::getCookie(string $name, string $default = ?): mixed

Récupère une variable Cookie.

Avertissement

Cette fonction est actuellement non documentée ; 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() - Récupère la variable depuis le client
  • Yaf_Request_Http::getQuery() - Récupère un paramètre de la requête
  • Yaf_Request_Http::getPost() - Récupère une variable POST
  • Yaf_Request_Http::getRaw() - Récupère le corps brut de la requête
  • Yaf_Request_Abstract::getServer() - Récupère une variable SERVER
  • Yaf_Request_Abstract::getParam() - Récupère un paramètre


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 Yaf_Request_Http::getFiles(): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Request_Http::getPost(string $name, string $default = ?): mixed

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() - Récupère la variable depuis le client
  • Yaf_Request_Http::getQuery() - Récupère un paramètre de la requête
  • Yaf_Request_Http::getCookie() - Récupère une variable Cookie
  • Yaf_Request_Http::getRaw() - Récupère le corps brut de la requête
  • Yaf_Request_Abstract::getServer() - Récupère une variable SERVER
  • Yaf_Request_Abstract::getParam() - Récupère un paramètre


Récupère un paramètre de la requête

  • « Yaf_Request_Http::getPost
  • Yaf_Request_Http::getRaw »
  • 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 Yaf_Request_Http::getQuery(string $name, string $default = ?): mixed

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() - Récupère la variable depuis le client
  • Yaf_Request_Http::getPost() - Récupère une variable POST
  • Yaf_Request_Http::getCookie() - Récupère une variable Cookie
  • Yaf_Request_Http::getRaw() - Récupère le corps brut de la requête
  • Yaf_Request_Abstract::getServer() - Récupère une variable SERVER
  • Yaf_Request_Abstract::getParam() - Récupère un paramètre


Récupère le corps brut de la requête

  • « Yaf_Request_Http::getQuery
  • Yaf_Request_Http::getRequest »
  • PHP Manual
  • Yaf_Request_Http
  • Récupère le corps brut de la requête

Yaf_Request_Http::getRaw

(Yaf >=3.0.7)

Yaf_Request_Http::getRaw — Récupère le corps brut de la requête

Description

public Yaf_Request_Http::getRaw(): mixed

Récupère le corps brut de la requête.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne chaîne de caractères en cas de réussite, false en cas d'échec.

Voir aussi

  • Yaf_Request_Http::get() - Récupère la variable depuis le client
  • Yaf_Request_Http::getPost() - Récupère une variable POST
  • Yaf_Request_Http::getCookie() - Récupère une variable Cookie
  • Yaf_Request_Http::getQuery() - Récupère un paramètre de la requête
  • Yaf_Request_Abstract::getServer() - Récupère une variable SERVER
  • Yaf_Request_Abstract::getParam() - Récupère un paramètre


Le but de getRequest

  • « Yaf_Request_Http::getRaw
  • 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 Yaf_Request_Http::getRequest(): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Request_Http::isXmlHttpRequest(): bool

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

Un booléen


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

class Yaf_Request_Simple extends Yaf_Request_Abstract {
/* Constants */
const string SCHEME_HTTP = http;
const string SCHEME_HTTPS = https;
/* Propriétés */
/* Méthodes */
public __construct(
string $method = ?,
string $module = ?,
string $controller = ?,
string $action = ?,
array $params = ?
)
public get(): void
public getCookie(): void
public getFiles(): void
public getPost(): void
public getQuery(): void
public getRequest(): void
public isXmlHttpRequest(): void
/* Méthodes héritées */
public Yaf_Request_Abstract::clearParams(): bool
public Yaf_Request_Abstract::getActionName(): void
public Yaf_Request_Abstract::getBaseUri(): void
public Yaf_Request_Abstract::getControllerName(): void
public Yaf_Request_Abstract::getEnv(string $name, string $default = ?): void
public Yaf_Request_Abstract::getException(): void
public Yaf_Request_Abstract::getLanguage(): void
public Yaf_Request_Abstract::getMethod(): string
public Yaf_Request_Abstract::getModuleName(): void
public Yaf_Request_Abstract::getParam(string $name, string $default = ?): mixed
public Yaf_Request_Abstract::getParams(): array
public Yaf_Request_Abstract::getRequestUri(): void
public Yaf_Request_Abstract::getServer(string $name, string $default = ?): void
public Yaf_Request_Abstract::isCli(): bool
public Yaf_Request_Abstract::isDispatched(): bool
public Yaf_Request_Abstract::isGet(): bool
public Yaf_Request_Abstract::isHead(): bool
public Yaf_Request_Abstract::isOptions(): bool
public Yaf_Request_Abstract::isPost(): bool
public Yaf_Request_Abstract::isPut(): bool
public Yaf_Request_Abstract::isRouted(): bool
public Yaf_Request_Abstract::isXmlHttpRequest(): bool
public Yaf_Request_Abstract::setActionName(string $action, bool $format_name = true): void
public Yaf_Request_Abstract::setBaseUri(string $uir): bool
public Yaf_Request_Abstract::setControllerName(string $controller, bool $format_name = true): void
public Yaf_Request_Abstract::setDispatched(): void
public Yaf_Request_Abstract::setModuleName(string $module, bool $format_name = true): void
public Yaf_Request_Abstract::setParam(string $name, string $value = ?): bool
public Yaf_Request_Abstract::setRequestUri(string $uir): void
public Yaf_Request_Abstract::setRouted(string $flag = ?): void
}

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::__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 — Détermine si la requête est une requête AJAX


Constructeur de __construct

  • « Yaf_Request_Simple
  • 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 est actuellement non documentée ; 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 Yaf_Request_Simple::get(): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Request_Simple::getCookie(): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Request_Simple::getFiles(): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Request_Simple::getPost(): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Request_Simple::getQuery(): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Request_Simple::getRequest(): void

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Détermine si la requête est une requête AJAX

  • « Yaf_Request_Simple::getRequest
  • Yaf_Response_Abstract »
  • PHP Manual
  • Yaf_Request_Simple
  • Détermine si la requête est une requête AJAX

Yaf_Request_Simple::isXmlHttpRequest

(Yaf >=1.0.0)

Yaf_Request_Simple::isXmlHttpRequest — Détermine si la requête est une requête AJAX

Description

public Yaf_Request_Simple::isXmlHttpRequest(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne toujours false pour Yaf_Request_Simple

Voir aussi

  • Yaf_Request_Abstract::isXmlHTTPRequest() - Vérifie si la requête est une requête AJAX
  • Yaf_Request_Http::isXmlHTTPRequest() - Vérifie s'il s'agit d'une requête Ajax


La classe Yaf_Response_Abstract

(Yaf >=1.0.0)

Introduction

Synopsis de la classe

class Yaf_Response_Abstract {
/* Constantes */
const string DEFAULT_BODY = "content";
/* Propriétés */
protected $_header;
protected $_body;
protected $_sendheader;
/* Méthodes */
public __construct()
public appendBody(string $content, string $key = ?): bool
public clearBody(string $key = ?): bool
public clearHeaders(): void
public getBody(string $key = ?): mixed
public getHeader(): void
public prependBody(string $content, string $key = ?): bool
public response(): void
protected setAllHeaders(): void
public setBody(string $content, string $key = ?): bool
public setHeader(string $name, string $value, bool $replace = ?): bool
public setRedirect(string $url): bool
private __toString(): string
public __destruct()
}

Propriétés

_header

_body

_sendheader

Sommaire

  • Yaf_Response_Abstract::appendBody — Ajoute le corps de la réponse
  • Yaf_Response_Abstract::clearBody — Supprime tous les corps de réponse existants
  • Yaf_Response_Abstract::clearHeaders — Supprime toutes les en-têtes définies
  • 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 — Envoie 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 — Définit l'en-tête de réponse
  • Yaf_Response_Abstract::setRedirect — Le but de setRedirect
  • Yaf_Response_Abstract::__toString — Récupère tout le corps sous la forme d'une chaîne de caractères


Ajoute le corps de la réponse

  • « Yaf_Response_Abstract
  • Yaf_Response_Abstract::clearBody »
  • PHP Manual
  • Yaf_Response_Abstract
  • Ajoute le corps de la réponse

Yaf_Response_Abstract::appendBody

(Yaf >=1.0.0)

Yaf_Response_Abstract::appendBody — Ajoute le corps de la réponse

Description

public Yaf_Response_Abstract::appendBody(string $content, string $key = ?): bool

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;
?>

Résultat de l'exemple ci-dessus est similaire à :

Hello World

Voir aussi

  • Yaf_Config_Ini
  • 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() - Supprime tous les corps de réponse existants


Supprime tous les corps de réponse existants

  • « Yaf_Response_Abstract::appendBody
  • Yaf_Response_Abstract::clearHeaders »
  • PHP Manual
  • Yaf_Response_Abstract
  • Supprime tous les corps de réponse existants

Yaf_Response_Abstract::clearBody

(Yaf >=1.0.0)

Yaf_Response_Abstract::clearBody — Supprime tous les corps de réponse existants

Description

public Yaf_Response_Abstract::clearBody(string $key = ?): bool

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 de la réponse
  • Yaf_Response_Abstract::prependBody() - Le but de prependBody
  • Yaf_Response_Abstract::getBody() - Récupère un contenu existant


Supprime toutes les en-têtes définies

  • « Yaf_Response_Abstract::clearBody
  • Yaf_Response_Abstract::__construct »
  • PHP Manual
  • Yaf_Response_Abstract
  • Supprime toutes les en-têtes définies

Yaf_Response_Abstract::clearHeaders

(Yaf >=1.0.0)

Yaf_Response_Abstract::clearHeaders — Supprime toutes les en-têtes définies

Description

public Yaf_Response_Abstract::clearHeaders(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • Yaf_Response_Abstract::getHeader() - Le but de getHeader
  • Yaf_Response_Abstract::setHeader() - Définit l'en-tête de réponse


Le but de __construct

  • « Yaf_Response_Abstract::clearHeaders
  • 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()

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Response_Abstract::__destruct()

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Response_Abstract::getBody(string $key = ?): mixed

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
?>

Résultat de l'exemple ci-dessus est 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 de la réponse
  • Yaf_Response_Abstract::prependBody() - Le but de prependBody
  • Yaf_Response_Abstract::clearBody() - Supprime tous les corps de réponse existants


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 Yaf_Response_Abstract::getHeader(): void

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • Yaf_Response_Abstract::setHeader() - Définit l'en-tête de réponse
  • Yaf_Response_Abstract::cleanHeaders()


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 Yaf_Response_Abstract::prependBody(string $content, string $key = ?): bool

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;
?>

Résultat de l'exemple ci-dessus est 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 de la réponse
  • Yaf_Response_Abstract::clearBody() - Supprime tous les corps de réponse existants


Envoie la réponse

  • « Yaf_Response_Abstract::prependBody
  • Yaf_Response_Abstract::setAllHeaders »
  • PHP Manual
  • Yaf_Response_Abstract
  • Envoie la réponse

Yaf_Response_Abstract::response

(Yaf >=1.0.0)

Yaf_Response_Abstract::response — Envoie la réponse

Description

public Yaf_Response_Abstract::response(): void

Envoie 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();
?>

Résultat de l'exemple ci-dessus est similaire à :

Hello World

Voir aussi

  • Yaf_Response_Abstract::setBody() - Définit le contenu de la réponse
  • Yaf_Response_Abstract::clearBody() - Supprime tous les corps de réponse existants


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 Yaf_Response_Abstract::setAllHeaders(): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Response_Abstract::setBody(string $content, string $key = ?): bool

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;
?>

Résultat de l'exemple ci-dessus est 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 de la réponse
  • Yaf_Response_Abstract::prependBody() - Le but de prependBody
  • Yaf_Response_Abstract::clearBody() - Supprime tous les corps de réponse existants


Définit l'en-tête de réponse

  • « Yaf_Response_Abstract::setBody
  • Yaf_Response_Abstract::setRedirect »
  • PHP Manual
  • Yaf_Response_Abstract
  • Définit l'en-tête de réponse

Yaf_Response_Abstract::setHeader

(Yaf >=1.0.0)

Yaf_Response_Abstract::setHeader — Définit l'en-tête de réponse

Description

public Yaf_Response_Abstract::setHeader(string $name, string $value, bool $replace = ?): bool

Utilisé pour envoyer l'en-tête HTTP.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Voir aussi

  • Yaf_Response_Abstract::getHeader() - Le but de getHeader
  • Yaf_Response_Abstract::cleanHeaders()


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 Yaf_Response_Abstract::setRedirect(string $url): bool

Liste de paramètres

url

Adresse à rediriger

Valeurs de retour


Récupère tout le corps sous la forme d'une chaîne de caractères

  • « Yaf_Response_Abstract::setRedirect
  • Yaf_Route_Interface »
  • PHP Manual
  • Yaf_Response_Abstract
  • Récupère tout le corps sous la forme d'une chaîne de caractères

Yaf_Response_Abstract::__toString

(Yaf >=1.0.0)

Yaf_Response_Abstract::__toString — Récupère tout le corps sous la forme d'une chaîne de caractères

Description

private Yaf_Response_Abstract::__toString(): string

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

class Yaf_Route_Interface {
/* Méthodes */
abstract public assemble(array $info, array $query = ?): string
abstract public route(Yaf_Request_Abstract $request): bool
}

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 Yaf_Route_Interface::assemble(array $info, array $query = ?): string

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 Yaf_Route_Interface::route(Yaf_Request_Abstract $request): bool

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

class Yaf_Route_Map implements Yaf_Route_Interface {
/* Propriétés */
protected $_ctl_router;
protected $_delimiter;
/* Méthodes */
public __construct(string $controller_prefer = false, string $delimiter = "")
public assemble(array $info, array $query = ?): string
public route(Yaf_Request_Abstract $request): bool
}

Propriétés

_ctl_router

_delimiter

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 Yaf_Route_Map::assemble(array $info, array $query = ?): string

Assemble une URL.

Liste de paramètres

info

query

Valeurs de retour

Retourne chaîne de caractères en cas de succès ou null en cas d'échec.

Erreurs / Exceptions

Peut lancer Yaf_Exception_TypeError.

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'
)
)
);

Résultat de l'exemple ci-dessus est similaire à :

string(%d) "/foo/bar?tkey1=tval1&tkey2=tval2"
string(%d) "/foo/bar/_/tkey1/tval1/tkey2/tval2"


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());
?>

Résultat de l'exemple ci-dessus est 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, "_"));
?>

Résultat de l'exemple ci-dessus est 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 Yaf_Route_Map::route(Yaf_Request_Abstract $request): bool

Avertissement

Cette fonction est actuellement non documentée ; 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

class 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 __construct(
string $match,
array $route,
array $map = ?,
array $verify = ?,
string $reverse = ?
)
public assemble(array $info, array $query = ?): ?string
public route(Yaf_Request_Abstract $request): bool
/* Méthodes héritées */
abstract public Yaf_Route_Interface::assemble(array $info, array $query = ?): string
abstract public Yaf_Route_Interface::route(Yaf_Request_Abstract $request): bool
}

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 Yaf_Route_Regex::assemble(array $info, array $query = ?): ?string

Assemble une URL.

Liste de paramètres

info

query

Valeurs de retour

Retourne chaîne de caractères en cas de succès ou null en cas d'échec.

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'
)
)
);

Résultat de l'exemple ci-dessus est similaire à :

string(49) "/module/controller/action?tkey1=tval1&tkey2=tval2"


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 Yaf_Route_Regex::route(Yaf_Request_Abstract $request): bool

Route une requête entrante.

Avertissement

Cette fonction est actuellement non documentée ; 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

class Yaf_Route_Rewrite extends Yaf_Route_Interface implements Yaf_Route_Interface {
/* Propriétés */
protected $_route;
protected $_default;
protected $_verify;
/* Méthodes */
public __construct(string $match, array $route, array $verify = ?)
public assemble(array $info, array $query = ?): string
public route(Yaf_Request_Abstract $request): bool
/* Méthodes héritées */
abstract public Yaf_Route_Interface::assemble(array $info, array $query = ?): string
abstract public Yaf_Route_Interface::route(Yaf_Request_Abstract $request): bool
}

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 Yaf_Route_Rewrite::assemble(array $info, array $query = ?): string

Assemble une URL.

Liste de paramètres

info

query

Valeurs de retour

Retourne chaîne de caractères.

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'
)
)
);

Résultat de l'exemple ci-dessus est similaire à :

string(57) "/product/foo/bar/tmpkey1/tmpval1/?tkey1=tval1&tkey2=tval2"


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,
),
)
);
?>

Résultat de l'exemple ci-dessus est 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));
?>

Résultat de l'exemple ci-dessus est 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));
?>

Résultat de l'exemple ci-dessus est 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 Yaf_Route_Rewrite::route(Yaf_Request_Abstract $request): bool

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 parmi) :

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

class Yaf_Router {
/* Propriétés */
protected $_routes;
protected $_current;
/* Méthodes */
public __construct()
public addConfig(Yaf_Config_Abstract $config): bool
public addRoute(string $name, Yaf_Route_Abstract $route): bool
public getCurrentRoute(): string
public getRoute(string $name): Yaf_Route_Interface
public getRoutes(): mixed
public route(Yaf_Request_Abstract $request): bool
}

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 Yaf_Router::addConfig(Yaf_Config_Abstract $config): bool

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 Yaf_Router::addRoute(string $name, Yaf_Route_Abstract $route): bool

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://example.com/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()

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 Yaf_Router::getCurrentRoute(): string

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());
}
}
?>

Résultat de l'exemple ci-dessus est 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_Router::getRoute(string $name): Yaf_Route_Interface

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 Yaf_Router::getRoutes(): mixed

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 Yaf_Router::route(Yaf_Request_Abstract $request): bool

Avertissement

Cette fonction est actuellement non documentée ; 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

class Yaf_Route_Simple implements Yaf_Route_Interface {
/* Propriétés */
protected $controller;
protected $module;
protected $action;
/* Méthodes */
public __construct(string $module_name, string $controller_name, string $action_name)
public assemble(array $info, array $query = ?): string
public route(Yaf_Request_Abstract $request): bool
}

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 Yaf_Route_Simple::assemble(array $info, array $query = ?): string

Assemble une URL.

Liste de paramètres

info

query

Valeurs de retour

Retourne une chaîne de caractères.

Erreurs / Exceptions

Lance une Yaf_Exception_TypeError si les clés de info ':c' ou ':a' ne sont pas définie.

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'
)
));

Résultat de l'exemple ci-dessus est similaire à :

string(64) "?m=yafmodule&c=yafcontroller&a=yafaction&tkey1=tval1&tkey2=tval2"


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 est actuellement non documentée ; 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 Yaf_Route_Simple::route(Yaf_Request_Abstract $request): bool

Voir la méthode Yaf_Route_Simple::__construct().

Avertissement

Cette fonction est actuellement non documentée ; 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

class Yaf_Route_Static implements Yaf_Router {
/* Méthodes */
public assemble(array $info, array $query = ?): string
public match(string $uri): void
public route(Yaf_Request_Abstract $request): bool
}

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 Yaf_Route_Static::assemble(array $info, array $query = ?): string

Assemble une URL.

Liste de paramètres

info

query

Valeurs de retour

Retourne une chaîne de caractères.

Erreurs / Exceptions

Lance une Yaf_Exception_TypeError si les clés de info ':c' et ':a' ne sont pas définie.

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'
)
)
);

Résultat de l'exemple ci-dessus est similaire à :

string(%d) "/yafmodule/yafcontroller/yafaction"
string(%d) "/yafmodule/yafcontroller/yafaction?tkey1=tval1&tkey2=tval2"


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 Yaf_Route_Static::match(string $uri): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Route_Static::route(Yaf_Request_Abstract $request): bool

Avertissement

Cette fonction est actuellement non documentée ; 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

class Yaf_Route_Supervar implements Yaf_Route_Interface {
/* Propriétés */
protected $_var_name;
/* Méthodes */
public __construct(string $supervar_name)
public assemble(array $info, array $query = ?): string
public route(Yaf_Request_Abstract $request): bool
}

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 Yaf_Route_Supervar::assemble(array $info, array $query = ?): string

Assemble une URL.

Liste de paramètres

info

query

Valeurs de retour

Retourne une chaîne de caractères.

Erreurs / Exceptions

Lance une Yaf_Exception_TypeError si les clés de info ':c' et ':a' ne sont pas définie.

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());
}

Résultat de l'exemple ci-dessus est similaire à :

string(%d) "?r=/yafmodule/yafcontroller/yafaction&tkey1=tval1&tkey2=tval2"
string(%d) "You need to specify the controller by ':c'"


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")
);
?>

Résultat de l'exemple ci-dessus est 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 Yaf_Route_Supervar::route(Yaf_Request_Abstract $request): bool

Avertissement

Cette fonction est actuellement non documentée ; 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

class Yaf_Session implements Iterator, ArrayAccess, Countable {
/* Propriétés */
protected static $_instance;
protected $_session;
protected $_started;
/* Méthodes */
private __construct()
public count(): void
public current(): void
public del(string $name): void
public __get(string $name): void
public static getInstance(): void
public has(string $name): void
public __isset(string $name): void
public key(): void
public next(): void
public offsetExists(string $name): void
public offsetGet(string $name): void
public offsetSet(string $name, string $value): void
public offsetUnset(string $name): void
public rewind(): void
public __set(string $name, string $value): void
public start(): void
public __unset(string $name): void
public valid(): void
}

Propriétés

_instance

_session

_started

Sommaire

  • 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::start — Le but de start
  • Yaf_Session::__unset — Le but de __unset
  • Yaf_Session::valid — Le but de valid


Le constructeur de __construct

  • « Yaf_Session
  • 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()

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Session::count(): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Session::current(): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Session::del(string $name): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Session::__get(string $name): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Session::getInstance(): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Session::has(string $name): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Session::__isset(string $name): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Session::key(): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Session::next(): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Session::offsetExists(string $name): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Session::offsetGet(string $name): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Session::offsetSet(string $name, string $value): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Session::offsetUnset(string $name): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Session::rewind(): void

Avertissement

Cette fonction est actuellement non documentée ; 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::start »
  • PHP Manual
  • Yaf_Session
  • Le but de __set

Yaf_Session::__set

(Yaf >=1.0.0)

Yaf_Session::__set — Le but de __set

Description

public Yaf_Session::__set(string $name, string $value): void

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

name

value

Valeurs de retour


Le but de start

  • « Yaf_Session::__set
  • 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 Yaf_Session::start(): void

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Session::__unset(string $name): void

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

name

Valeurs de retour


Le but de valid

  • « Yaf_Session::__unset
  • Yaf_Exception »
  • PHP Manual
  • Yaf_Session
  • Le but de valid

Yaf_Session::valid

(Yaf >=1.0.0)

Yaf_Session::valid — Le but de valid

Description

public Yaf_Session::valid(): void

Avertissement

Cette fonction est actuellement non documentée ; 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

class Yaf_Exception extends Exception {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes */
public __construct()
public getPrevious(): void
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private 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()

Avertissement

Cette fonction est actuellement non documentée ; 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 Yaf_Exception::getPrevious(): void

Avertissement

Cette fonction est actuellement non documentée ; 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

class Yaf_Exception_TypeError extends Yaf_Exception {
/* Propriétés */
/* Méthodes */
/* Méthodes héritées */
public Yaf_Exception::getPrevious(): void
}


La classe Yaf_Exception_StartupError

(Yaf >=1.0.0)

Introduction

Synopsis de la classe

class Yaf_Exception_StartupError extends Yaf_Exception {
/* Propriétés */
/* Méthodes */
/* Méthodes héritées */
public Yaf_Exception::getPrevious(): void
}


La classe Yaf_Exception_DispatchFailed

(Yaf >=1.0.0)

Introduction

Synopsis de la classe

class Yaf_Exception_DispatchFailed extends Yaf_Exception {
/* Propriétés */
/* Méthodes */
/* Méthodes héritées */
public Yaf_Exception::getPrevious(): void
}


La classe Yaf_Exception_RouterFailed

(Yaf >=1.0.0)

Introduction

Synopsis de la classe

class Yaf_Exception_RouterFailed extends Yaf_Exception {
/* Propriétés */
/* Méthodes */
/* Méthodes héritées */
public Yaf_Exception::getPrevious(): void
}


La classe Yaf_Exception_LoadFailed

(Yaf >=1.0.0)

Introduction

Synopsis de la classe

class Yaf_Exception_LoadFailed extends Yaf_Exception {
/* Propriétés */
/* Méthodes */
/* Méthodes héritées */
public Yaf_Exception::getPrevious(): void
}


La classe Yaf_Exception_LoadFailed_Module

(Yaf >=1.0.0)

Introduction

Synopsis de la classe

class Yaf_Exception_LoadFailed_Module extends Yaf_Exception_LoadFailed {
/* Propriétés */
/* Méthodes */
/* Méthodes héritées */
public Yaf_Exception::getPrevious(): void
}


La classe Yaf_Exception_LoadFailed_Controller

(Yaf >=1.0.0)

Introduction

Synopsis de la classe

class Yaf_Exception_LoadFailed_Controller extends Yaf_Exception_LoadFailed {
/* Propriétés */
/* Méthodes */
/* Méthodes héritées */
public Yaf_Exception::getPrevious(): void
}


La classe Yaf_Exception_LoadFailed_Action

(Yaf >=1.0.0)

Introduction

Synopsis de la classe

class Yaf_Exception_LoadFailed_Action extends Yaf_Exception_LoadFailed {
/* Propriétés */
/* Méthodes */
/* Méthodes héritées */
public Yaf_Exception::getPrevious(): void
}


La classe Yaf_Exception_LoadFailed_View

(Yaf >=1.0.0)

Introduction

Synopsis de la classe

class Yaf_Exception_LoadFailed_View extends Yaf_Exception_LoadFailed {
/* Propriétés */
/* Méthodes */
/* Méthodes héritées */
public Yaf_Exception::getPrevious(): void
}


Yaconf

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
  • Constantes pré-définies
  • Yaconf — La classe Yaconf
    • Yaconf::get — Récupère une entrée
    • Yaconf::has — Détermine si une entrée existe


Introduction

Yet Another Configurations Container (Yaconf) est un conteneur de configuration, il analyse les fichiers INI, enregistre le résultat en PHP quand PHP est démarré, le résultat vit tout le long du cycle de vie de PHP.

Yaconf enregistre toutes les configurations en tant que chaîne interné ou un tableau immuable, ce qui signifie qu'ils ne sont pas comptabilisé dans les références, ainsi quand vous récupérez les configurations depuis yaconf, ceci peut être considéré sans copie, très rapide.

Yaconf supporte les sections et l'héritage des sections dans les fichiers INI. Si PHP est compilé en tant que non-ZTS, Yaconf supporte aussi le rechargement automatique après que les fichiers INI sont modifiés.

Yaconf nécessite PHP 7.0 ou supérieur.

Exemple #1 Exemple INI

;simple key val
key=val
;hash
hash.a=val
;array
arr.0=val
;or
arr[]=val
;use PHP constants
version=PHP_VERSION
;use environment
env=${PATH}

Exemple #2 Exemple avec les sections INI

[SectionA]
key=val
hash.a=val

;SectionB inherits SectionA
[SectionB:SectionA]
;override configuration key in SectionA
key=new_val


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

Yaconf nécessite PHP 7.0 ou supérieur.


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 : » https://pecl.php.net/package/yaconf.

Les binaires Windows (les fichiers DLL) pour cette extension PECL sont disponibles sur le site web PECL.


Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Yaconf Options de configuration
Nom | Défaut | Modifiable | Historique
yaconf.check_delay | 300 | INI_SYSTEM |
yaconf.directory | /tmp/conf/ | INI_SYSTEM |

Voici un éclaircissement sur l'utilisation des directives de configuration.

yaconf.check_delay int

Intervalle dans laquelle Yaconf détectera les modifications de fichier INI (grâce au mtime du dossier), si ceci est définie à zéro, vous devez redémarrer PHP pour recharger les configurations.

yaconf.directory string

Chemin vers le dossier où tous les fichiers de configuration INI sont placés.


  • « Types de ressources
  • Yaconf »
  • PHP Manual
  • Yaconf
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


La classe Yaconf

(PECL yaconf >= 1.0.0)

Introduction

Yaconf est un conteneur de configuration, il analyse les fichiers INIT, enregistre le résultat en PHP quand PHP est démarré, le résultat vit tout le long du cycle de vie de PHP.

Synopsis de la classe

class Yaconf {
/* Méthodes */
public static get(string $name, mixed $default_value = NULL): mixed
public static has(string $name): bool
}

Sommaire

  • Yaconf::get — Récupère une entrée
  • Yaconf::has — Détermine si une entrée existe


Récupère une entrée

  • « Yaconf
  • Yaconf::has »
  • PHP Manual
  • Yaconf
  • Récupère une entrée

Yaconf::get

(PECL yaconf >= 1.0.0)

Yaconf::get — Récupère une entrée

Description

public static Yaconf::get(string $name, mixed $default_value = NULL): mixed

Liste de paramètres

name

Clé de configuration, la clé ressemble à "filename.key", ou "filename.sectionName,key".

default_value

Si la clé n'existe pas, Yaconf::get retourne ceci comme résultat.

Valeurs de retour

Retourne la valeur de configuration (chaîne de caractères ou tableau) si la clé existe, retourne Returns configuration result(string or array) if the key exists, return default_value sinon.

Exemples

Exemple #1 Exemple INI()

;filenmame foo.ini, placed in directory which is yaconf.directoy
[SectionA]
;key value pair
key=val
;hash[a]=val
hash.a=val
;arr[0]=val
arr.0=val
;or
arr[]=val

;SectionB inherits SectionA
[SectionB:SectionA]
;override configuration key in SectionA
key=new_val

Résultat de l'exemple ci-dessus est similaire à :

php7 -r 'var_dump(Yaconf::get("foo.SectionA.key"));'
//string(3) "val"

php7 -r 'var_dump(Yaconf::get("foo.SectionB.key"));'
//string(7) "new_val"

php7 -r 'var_dump(Yaconf::get("foo")["SectionA"]["hash"]);'
//array(1)


Détermine si une entrée existe

  • « Yaconf::get
  • Taint »
  • PHP Manual
  • Yaconf
  • Détermine si une entrée existe

Yaconf::has

(PECL yaconf >= 1.0.0)

Yaconf::has — Détermine si une entrée existe

Description

public static Yaconf::has(string $name): bool

Liste de paramètres

name

Valeurs de retour


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);
?>

Résultat de l'exemple ci-dessus est 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 : » https://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 | INI_SYSTEM |
taint.error_level | E_WARNING | INI_ALL |

Voici un éclaircissement sur l'utilisation des directives de configuration.

taint.enable int

Si l'on doit activer taint.

taint.error_level int

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/split | 0.3.0
implode/join | 0.3.0
sprintf | 0.3.0
vsprintf | 0.3.0
trim | 0.4.0
rtrim | 0.4.0
ltrim | 0.4.0
strstr | 0.5.0
str_pad | 0.5.0
str_replace | 0.5.0
substr | 0.5.0
strtolower | 0.5.0
strtoupper | 0.5.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
SQLite3::query | 2.0.1
SQLite3::prepare | 2.0.1
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

is_tainted(string $string): bool

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

taint(string &$string, string ...$strings): bool

Rend une chaîne propre. Utilisé uniquement dans un but de test.

Liste de paramètres

string

strings

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
  • Data Structures »
  • PHP Manual
  • Fonctions Taint
  • Ne nettoie pas une chaîne

untaint

(PECL taint >=0.1.0)

untaint — Ne nettoie pas une chaîne

Description

untaint(string &$string, string ...$strings): bool

Ne nettoie pas une chaîne.

Liste de paramètres

string

strings

Valeurs de retour


Data Structures

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
  • Constantes pré-définies
  • Exemples
  • Ds\Collection — The Collection interface
    • Ds\Collection::clear — Supprimer toutes les valeurs
    • Ds\Collection::copy — Retourne une copie superficielle de la collection
    • Ds\Collection::isEmpty — Indique si la collection est vide
    • Ds\Collection::toArray — Convertit la collection en un tableau
  • Ds\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
  • Ds\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
  • Ds\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
  • Ds\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
  • Ds\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
  • Ds\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
  • Ds\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
  • Ds\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
  • Ds\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
  • Ds\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);

?>

Résultat de l'exemple ci-dessus est 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);

?>

Résultat de l'exemple ci-dessus est 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

(PECL ds >= 1.0.0)

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

interface Ds\Collection extends Countable, IteratorAggregate, JsonSerializable {
/* Méthodes */
public clear(): void
public copy(): Ds\Collection
public isEmpty(): bool
public toArray(): array
/* Méthodes héritées */
public Countable::count(): int
public IteratorAggregate::getIterator(): Traversable
public JsonSerializable::jsonSerialize(): mixed
}

Historique

Version | Description
PECL ds 1.4.0 | Collection implements IteratorAggregate now instead of just Traversable. (This change came to the polyfill in 1.4.1.)

Sommaire

  • Ds\Collection::clear — Supprimer toutes les valeurs
  • Ds\Collection::copy — Retourne une copie superficielle de la collection
  • Ds\Collection::isEmpty — Indique si la collection est vide
  • Ds\Collection::toArray — Convertit la collection en un tableau


Supprimer toutes les valeurs

  • « Ds\Collection
  • Ds\Collection::copy »
  • PHP Manual
  • Ds\Collection
  • Supprimer toutes les valeurs

Ds\Collection::clear

(PECL ds >= 1.0.0)

Ds\Collection::clear — Supprimer toutes les valeurs

Description

public Ds\Collection::clear(): void

Supprimer toutes les valeurs de la 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);
?>

Résultat de l'exemple ci-dessus est similaire à :

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Vector Object
(
)


Retourne une copie superficielle de la collection

  • « Ds\Collection::clear
  • Ds\Collection::isEmpty »
  • PHP Manual
  • Ds\Collection
  • Retourne une copie superficielle de la collection

Ds\Collection::copy

(PECL ds >= 1.0.0)

Ds\Collection::copy — Retourne une copie superficielle de la collection

Description

public Ds\Collection::copy(): Ds\Collection

Retourne une copie superficielle de la collection.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une copie superficielle de la collection.

Exemples

Exemple #1 Ds\Collection::copy() exemple

<?php
$a = new \Ds\Vector([1, 2, 3]);
$b = $a->copy();

$b->push(4);

print_r($a);
print_r($b);
?>

Résultat de l'exemple ci-dessus est similaire à :

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)


Indique si la collection est vide

  • « Ds\Collection::copy
  • Ds\Collection::toArray »
  • PHP Manual
  • Ds\Collection
  • Indique si la collection est vide

Ds\Collection::isEmpty

(PECL ds >= 1.0.0)

Ds\Collection::isEmpty — Indique si la collection est vide

Description

public Ds\Collection::isEmpty(): bool

Indique si la collection est vide.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true si la collection est vide, false dans le cas contraire.

Exemples

Exemple #1 Ds\Collection::isEmpty() exemple

<?php
$a = new \Ds\Vector([1, 2, 3]);
$b = new \Ds\Vector();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

Résultat de l'exemple ci-dessus est similaire à :

bool(false)
bool(true)


Convertit la collection en un tableau

  • « Ds\Collection::isEmpty
  • Ds\Hashable »
  • PHP Manual
  • Ds\Collection
  • Convertit la collection en un tableau

Ds\Collection::toArray

(PECL ds >= 1.0.0)

Ds\Collection::toArray — Convertit la collection en un tableau

Description

public Ds\Collection::toArray(): array

Convertit la collection en un tableau.

Note:

Le casting vers un tableau n'est pas encore supporté.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau contenant toutes les valeurs dans le même ordre que la collection.

Exemples

Exemple #1 Ds\Collection::toArray() exemple

<?php
$collection = new \Ds\Vector([1, 2, 3]);

var_dump($collection->toArray());
?>

Résultat de l'exemple ci-dessus est similaire à :

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


The Hashable interface

(PECL ds >= 1.0.0)

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

interface Ds\Hashable {
/* Méthodes */
abstract public equals(object $obj): bool
abstract public hash(): mixed
}

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

  • « Ds\Hashable
  • Ds\Hashable::hash »
  • PHP Manual
  • Ds\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 Ds\Hashable::equals(object $obj): bool

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
  • Ds\Sequence »
  • PHP Manual
  • Ds\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 Ds\Hashable::hash(): mixed

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

(PECL ds >= 1.0.0)

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

interface Ds\Sequence extends Ds\Collection, ArrayAccess {
/* Méthodes */
abstract public allocate(int $capacity): void
abstract public apply(callable $callback): void
abstract public capacity(): int
abstract public contains(mixed ...$values): bool
abstract public filter(callable $callback = ?): Ds\Sequence
abstract public find(mixed $value): mixed
abstract public first(): mixed
abstract public get(int $index): mixed
abstract public insert(int $index, mixed ...$values): void
abstract public join(string $glue = ?): string
abstract public last(): mixed
abstract public map(callable $callback): Ds\Sequence
abstract public merge(mixed $values): Ds\Sequence
abstract public pop(): mixed
abstract public push(mixed ...$values): void
abstract public reduce(callable $callback, mixed $initial = ?): mixed
abstract public remove(int $index): mixed
abstract public reverse(): void
abstract public reversed(): Ds\Sequence
abstract public rotate(int $rotations): void
abstract public set(int $index, mixed $value): void
abstract public shift(): mixed
abstract public slice(int $index, int $length = ?): Ds\Sequence
abstract public sort(callable $comparator = ?): void
abstract public sorted(callable $comparator = ?): Ds\Sequence
abstract public sum(): int|float
abstract public unshift(mixed $values = ?): void
/* Méthodes héritées */
public Ds\Collection::clear(): void
public Ds\Collection::copy(): Ds\Collection
public Ds\Collection::isEmpty(): bool
public Ds\Collection::toArray(): array
public Countable::count(): int
public IteratorAggregate::getIterator(): Traversable
public JsonSerializable::jsonSerialize(): mixed
public ArrayAccess::offsetExists(mixed $offset): bool
public ArrayAccess::offsetGet(mixed $offset): mixed
public ArrayAccess::offsetSet(mixed $offset, mixed $value): void
public ArrayAccess::offsetUnset(mixed $offset): void
}

Historique

Version | Description
PECL ds 1.3.0 | The interface now extends ArrayAccess.

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

  • « Ds\Sequence
  • Ds\Sequence::apply »
  • PHP Manual
  • Ds\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 Ds\Sequence::allocate(int $capacity): void

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

int(10)
int(100)


Updates all values by applying a callback function to each value

  • « Ds\Sequence::allocate
  • Ds\Sequence::capacity »
  • PHP Manual
  • Ds\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 Ds\Sequence::apply(callable $callback): void

Updates all values by applying a callback function to each value in the sequence.

Liste de paramètres

callback

callback(mixed $value): mixed

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\Sequence([1, 2, 3]);
$sequence->apply(function($value) { return $value * 2; });

print_r($sequence);
?>

Résultat de l'exemple ci-dessus est similaire à :

Ds\Vector Object
(
    [0] => 2
    [1] => 4
    [2] => 6
)


Returns the current capacity

  • « Ds\Sequence::apply
  • Ds\Sequence::contains »
  • PHP Manual
  • Ds\Sequence
  • Returns the current capacity

Ds\Sequence::capacity

(PECL ds >= 1.0.0)

Ds\Sequence::capacity — Returns the current capacity

Description

abstract public Ds\Sequence::capacity(): int

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

int(10)
int(50)
int(75)


Determines if the sequence contains given values

  • « Ds\Sequence::capacity
  • Ds\Sequence::filter »
  • PHP Manual
  • Ds\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 Ds\Sequence::contains(mixed ...$values): bool

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
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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::filter(callable $callback = ?): Ds\Sequence

Creates a new sequence using a callable to determine which values to include.

Liste de paramètres

callback

callback(mixed $value): bool

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;
}));
?>

Résultat de l'exemple ci-dessus est 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());
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Sequence::find(mixed $value): mixed

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
?>

Résultat de l'exemple ci-dessus est similaire à :

int(0)
bool(false)
bool(false)
int(1)


Returns the first value in the sequence

  • « Ds\Sequence::find
  • Ds\Sequence::get »
  • PHP Manual
  • Ds\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 Ds\Sequence::first(): mixed

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

int(1)


Returns the value at a given index

  • « Ds\Sequence::first
  • Ds\Sequence::insert »
  • PHP Manual
  • Ds\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 Ds\Sequence::get(int $index): mixed

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));
?>

Résultat de l'exemple ci-dessus est 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]);
?>

Résultat de l'exemple ci-dessus est similaire à :

string(1) "a"
string(1) "b"
string(1) "c"


Inserts values at a given index

  • « Ds\Sequence::get
  • Ds\Sequence::join »
  • PHP Manual
  • Ds\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 Ds\Sequence::insert(int $index, mixed ...$values): void

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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Sequence::join(string $glue = ?): string

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("|"));
?>

Résultat de l'exemple ci-dessus est 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());
?>

Résultat de l'exemple ci-dessus est similaire à :

string(11) "abc123"


Returns the last value

  • « Ds\Sequence::join
  • Ds\Sequence::map »
  • PHP Manual
  • Ds\Sequence
  • Returns the last value

Ds\Sequence::last

(PECL ds >= 1.0.0)

Ds\Sequence::last — Returns the last value

Description

abstract public Ds\Sequence::last(): mixed

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

int(3)


Returns the result of applying a callback to each value

  • « Ds\Sequence::last
  • Ds\Sequence::merge »
  • PHP Manual
  • Ds\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::map(callable $callback): Ds\Sequence

Returns the result of applying a callback function to each value in the sequence.

Liste de paramètres

callback

callback(mixed $value): mixed

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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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::merge(mixed $values): Ds\Sequence

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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Sequence::pop(): mixed

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

int(3)
int(2)
int(1)


Adds values to the end of the sequence

  • « Ds\Sequence::pop
  • Ds\Sequence::reduce »
  • PHP Manual
  • Ds\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 Ds\Sequence::push(mixed ...$values): void

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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Sequence::reduce(callable $callback, mixed $initial = ?): mixed

Reduces the sequence to a single value using a callback function.

Liste de paramètres

callback
callback(mixed $carry, mixed $value): mixed
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
?>

Résultat de l'exemple ci-dessus est 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
?>

Résultat de l'exemple ci-dessus est similaire à :

int(21)


Removes and returns a value by index

  • « Ds\Sequence::reduce
  • Ds\Sequence::reverse »
  • PHP Manual
  • Ds\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 Ds\Sequence::remove(int $index): mixed

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));
?>

Résultat de l'exemple ci-dessus est similaire à :

string(1) "b"
string(1) "a"
string(1) "c"


Reverses the sequence in-place

  • « Ds\Sequence::remove
  • Ds\Sequence::reversed »
  • PHP Manual
  • Ds\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 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);
?>

Résultat de l'exemple ci-dessus est similaire à :

Ds\Vector Object
(
    [0] => c
    [1] => b
    [2] => a
)


Returns a reversed copy

  • « Ds\Sequence::reverse
  • Ds\Sequence::rotate »
  • PHP Manual
  • Ds\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::reversed(): Ds\Sequence

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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Sequence::rotate(int $rotations): void

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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Sequence::set(int $index, mixed $value): void

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);
?>

Résultat de l'exemple ci-dessus est 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);
?>

Résultat de l'exemple ci-dessus est similaire à :

Ds\Vector Object
(
    [0] => a
    [1] => _
    [2] => c
)


Removes and returns the first value

  • « Ds\Sequence::set
  • Ds\Sequence::slice »
  • PHP Manual
  • Ds\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 Ds\Sequence::shift(): mixed

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());
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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::slice(int $index, int $length = ?): Ds\Sequence

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));
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Sequence::sort(callable $comparator = ?): void

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.

callback(mixed $a, mixed $b): int
Attention

Retourner des valeurs non-entières à partir de la fonction de comparaison, telles que float, entraînera une conversion interne de la valeur de retour du rappel en int. Ainsi, des valeurs telles que 0.99 et 0.1 seront toutes deux converties en une valeur entière de 0, ce qui comparera de telles valeurs comme égales.

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);
?>

Résultat de l'exemple ci-dessus est 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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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::sorted(callable $comparator = ?): Ds\Sequence

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.

callback(mixed $a, mixed $b): int
Attention

Retourner des valeurs non-entières à partir de la fonction de comparaison, telles que float, entraînera une conversion interne de la valeur de retour du rappel en int. Ainsi, des valeurs telles que 0.99 et 0.1 seront toutes deux converties en une valeur entière de 0, ce qui comparera de telles valeurs comme égales.

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());
?>

Résultat de l'exemple ci-dessus est 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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Sequence::sum(): int|float

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

int(6)

Exemple #2 Ds\Sequence::sum() float example

<?php
$sequence = new \Ds\Vector([1, 2.5, 3]);
var_dump($sequence->sum());
?>

Résultat de l'exemple ci-dessus est similaire à :

float(6.5)


Adds values to the front of the sequence

  • « Ds\Sequence::sum
  • Ds\Vector »
  • PHP Manual
  • Ds\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 Ds\Sequence::unshift(mixed $values = ?): void

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);
?>

Résultat de l'exemple ci-dessus est similaire à :

Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => a
    [3] => 1
    [4] => 2
    [5] => 3
)


The Vector class

(PECL ds >= 1.0.0)

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

class Ds\Vector implements Ds\Sequence, ArrayAccess {
/* Constantes */
const int MIN_CAPACITY = 10;
/* Méthodes */
public allocate(int $capacity): void
public apply(callable $callback): void
public capacity(): int
public clear(): void
public contains(mixed ...$values): bool
public copy(): Ds\Vector
public filter(callable $callback = ?): Ds\Vector
public find(mixed $value): mixed
public first(): mixed
public get(int $index): mixed
public insert(int $index, mixed ...$values): void
public isEmpty(): bool
public join(string $glue = ?): string
public last(): mixed
public map(callable $callback): Ds\Vector
public merge(mixed $values): Ds\Vector
public pop(): mixed
public push(mixed ...$values): void
public reduce(callable $callback, mixed $initial = ?): mixed
public remove(int $index): mixed
public reverse(): void
public reversed(): Ds\Vector
public rotate(int $rotations): void
public set(int $index, mixed $value): void
public shift(): mixed
public slice(int $index, int $length = ?): Ds\Vector
public sort(callable $comparator = ?): void
public sorted(callable $comparator = ?): Ds\Vector
public sum(): int|float
public toArray(): array
public unshift(mixed $values = ?): void
}

Constantes pré-définies

Ds\Vector::MIN_CAPACITY

Historique

Version | Description
PECL ds 1.3.0 | The class now implements ArrayAccess.

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

  • « Ds\Vector
  • Ds\Vector::apply »
  • PHP Manual
  • Ds\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 Ds\Vector::allocate(int $capacity): void

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

int(10)
int(100)


Updates all values by applying a callback function to each value

  • « Ds\Vector::allocate
  • Ds\Vector::capacity »
  • PHP Manual
  • Ds\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 Ds\Vector::apply(callable $callback): void

Updates all values by applying a callback function to each value in the vector.

Liste de paramètres

callback

callback(mixed $value): mixed

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);
?>

Résultat de l'exemple ci-dessus est similaire à :

Ds\Vector Object
(
    [0] => 2
    [1] => 4
    [2] => 6
)


Returns the current capacity

  • « Ds\Vector::apply
  • Ds\Vector::clear »
  • PHP Manual
  • Ds\Vector
  • Returns the current capacity

Ds\Vector::capacity

(PECL ds >= 1.0.0)

Ds\Vector::capacity — Returns the current capacity

Description

public Ds\Vector::capacity(): int

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

int(10)
int(50)
int(75)


Removes all values

  • « Ds\Vector::capacity
  • Ds\Vector::__construct »
  • PHP Manual
  • Ds\Vector
  • Removes all values

Ds\Vector::clear

(PECL ds >= 1.0.0)

Ds\Vector::clear — Removes all values

Description

public 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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Vector::contains(mixed ...$values): bool

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
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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::copy(): Ds\Vector

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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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

Description

See Countable::count()


Creates a new vector using a callable to determine which values to include

  • « Ds\Vector::count
  • Ds\Vector::find »
  • PHP Manual
  • Ds\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::filter(callable $callback = ?): Ds\Vector

Creates a new vector using a callable to determine which values to include.

Liste de paramètres

callback

callback(mixed $value): bool

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;
}));
?>

Résultat de l'exemple ci-dessus est 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());
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Vector::find(mixed $value): mixed

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
?>

Résultat de l'exemple ci-dessus est similaire à :

int(0)
bool(false)
bool(false)
int(1)


Returns the first value in the vector

  • « Ds\Vector::find
  • Ds\Vector::get »
  • PHP Manual
  • Ds\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 Ds\Vector::first(): mixed

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

int(1)


Returns the value at a given index

  • « Ds\Vector::first
  • Ds\Vector::insert »
  • PHP Manual
  • Ds\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 Ds\Vector::get(int $index): mixed

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));
?>

Résultat de l'exemple ci-dessus est 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]);
?>

Résultat de l'exemple ci-dessus est similaire à :

string(1) "a"
string(1) "b"
string(1) "c"


Inserts values at a given index

  • « Ds\Vector::get
  • Ds\Vector::isEmpty »
  • PHP Manual
  • Ds\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 Ds\Vector::insert(int $index, mixed ...$values): void

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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Vector::isEmpty(): bool

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

bool(false)
bool(true)


Joins all values together as a string

  • « Ds\Vector::isEmpty
  • Ds\Vector::jsonSerialize »
  • PHP Manual
  • Ds\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 Ds\Vector::join(string $glue = ?): string

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("|"));
?>

Résultat de l'exemple ci-dessus est 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());
?>

Résultat de l'exemple ci-dessus est similaire à :

string(11) "abc123"


Returns a representation that can be converted to JSON

  • « Ds\Vector::join
  • Ds\Vector::last »
  • PHP Manual
  • Ds\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

Description

See JsonSerializable::jsonSerialize()

Note:

You should never need to call this directly.


Returns the last value

  • « Ds\Vector::jsonSerialize
  • Ds\Vector::map »
  • PHP Manual
  • Ds\Vector
  • Returns the last value

Ds\Vector::last

(PECL ds >= 1.0.0)

Ds\Vector::last — Returns the last value

Description

public Ds\Vector::last(): mixed

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

int(3)


Returns the result of applying a callback to each value

  • « Ds\Vector::last
  • Ds\Vector::merge »
  • PHP Manual
  • Ds\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::map(callable $callback): Ds\Vector

Returns the result of applying a callback function to each value in the vector.

Liste de paramètres

callback

callback(mixed $value): mixed

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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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::merge(mixed $values): Ds\Vector

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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Vector::pop(): mixed

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

int(3)
int(2)
int(1)


Adds values to the end of the vector

  • « Ds\Vector::pop
  • Ds\Vector::reduce »
  • PHP Manual
  • Ds\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 Ds\Vector::push(mixed ...$values): void

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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Vector::reduce(callable $callback, mixed $initial = ?): mixed

Reduces the vector to a single value using a callback function.

Liste de paramètres

callback
callback(mixed $carry, mixed $value): mixed
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
?>

Résultat de l'exemple ci-dessus est 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
?>

Résultat de l'exemple ci-dessus est similaire à :

int(21)


Removes and returns a value by index

  • « Ds\Vector::reduce
  • Ds\Vector::reverse »
  • PHP Manual
  • Ds\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 Ds\Vector::remove(int $index): mixed

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));
?>

Résultat de l'exemple ci-dessus est similaire à :

string(1) "b"
string(1) "a"
string(1) "c"


Reverses the vector in-place

  • « Ds\Vector::remove
  • Ds\Vector::reversed »
  • PHP Manual
  • Ds\Vector
  • Reverses the vector in-place

Ds\Vector::reverse

(PECL ds >= 1.0.0)

Ds\Vector::reverse — Reverses the vector in-place

Description

public 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);
?>

Résultat de l'exemple ci-dessus est similaire à :

Ds\Vector Object
(
    [0] => c
    [1] => b
    [2] => a
)


Returns a reversed copy

  • « Ds\Vector::reverse
  • Ds\Vector::rotate »
  • PHP Manual
  • Ds\Vector
  • Returns a reversed copy

Ds\Vector::reversed

(PECL ds >= 1.0.0)

Ds\Vector::reversed — Returns a reversed copy

Description

public Ds\Vector::reversed(): Ds\Vector

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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Vector::rotate(int $rotations): void

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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Vector::set(int $index, mixed $value): void

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);
?>

Résultat de l'exemple ci-dessus est 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);
?>

Résultat de l'exemple ci-dessus est similaire à :

Ds\Vector Object
(
    [0] => a
    [1] => _
    [2] => c
)


Removes and returns the first value

  • « Ds\Vector::set
  • Ds\Vector::slice »
  • PHP Manual
  • Ds\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 Ds\Vector::shift(): mixed

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());
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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::slice(int $index, int $length = ?): Ds\Vector

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));
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\Vector
  • Sorts the vector in-place

Ds\Vector::sort

(PECL ds >= 1.0.0)

Ds\Vector::sort — Sorts the vector in-place

Description

public Ds\Vector::sort(callable $comparator = ?): void

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.

callback(mixed $a, mixed $b): int
Attention

Retourner des valeurs non-entières à partir de la fonction de comparaison, telles que float, entraînera une conversion interne de la valeur de retour du rappel en int. Ainsi, des valeurs telles que 0.99 et 0.1 seront toutes deux converties en une valeur entière de 0, ce qui comparera de telles valeurs comme égales.

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);
?>

Résultat de l'exemple ci-dessus est 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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\Vector
  • Returns a sorted copy

Ds\Vector::sorted

(PECL ds >= 1.0.0)

Ds\Vector::sorted — Returns a sorted copy

Description

public Ds\Vector::sorted(callable $comparator = ?): Ds\Vector

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.

callback(mixed $a, mixed $b): int
Attention

Retourner des valeurs non-entières à partir de la fonction de comparaison, telles que float, entraînera une conversion interne de la valeur de retour du rappel en int. Ainsi, des valeurs telles que 0.99 et 0.1 seront toutes deux converties en une valeur entière de 0, ce qui comparera de telles valeurs comme égales.

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());
?>

Résultat de l'exemple ci-dessus est 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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Vector::sum(): int|float

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

int(6)

Exemple #2 Ds\Vector::sum() float example

<?php
$vector = new \Ds\Vector([1, 2.5, 3]);
var_dump($vector->sum());
?>

Résultat de l'exemple ci-dessus est similaire à :

float(6.5)


Converts the vector to an tableau

  • « Ds\Vector::sum
  • Ds\Vector::unshift »
  • PHP Manual
  • Ds\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 Ds\Vector::toArray(): array

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Adds values to the front of the vector

  • « Ds\Vector::toArray
  • Ds\Deque »
  • PHP Manual
  • Ds\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 Ds\Vector::unshift(mixed $values = ?): void

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);
?>

Résultat de l'exemple ci-dessus est similaire à :

Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => a
    [3] => 1
    [4] => 2
    [5] => 3
)


The Deque class

(PECL ds >= 1.0.0)

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

class Ds\Deque implements Ds\Sequence, ArrayAccess {
/* Constantes */
const int MIN_CAPACITY = 8;
/* Méthodes */
public allocate(int $capacity): void
public apply(callable $callback): void
public capacity(): int
public clear(): void
public contains(mixed ...$values): bool
public copy(): Ds\Deque
public filter(callable $callback = ?): Ds\Deque
public find(mixed $value): mixed
public first(): mixed
public get(int $index): mixed
public insert(int $index, mixed ...$values): void
public isEmpty(): bool
public join(string $glue = ?): string
public last(): mixed
public map(callable $callback): Ds\Deque
public merge(mixed $values): Ds\Deque
public pop(): mixed
public push(mixed ...$values): void
public reduce(callable $callback, mixed $initial = ?): mixed
public remove(int $index): mixed
public reverse(): void
public reversed(): Ds\Deque
public rotate(int $rotations): void
public set(int $index, mixed $value): void
public shift(): mixed
public slice(int $index, int $length = ?): Ds\Deque
public sort(callable $comparator = ?): void
public sorted(callable $comparator = ?): Ds\Deque
public sum(): int|float
public toArray(): array
public unshift(mixed $values = ?): void
}

Constantes pré-définies

Ds\Deque::MIN_CAPACITY

Historique

Version | Description
PECL ds 1.3.0 | The class now implements ArrayAccess.

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

  • « Ds\Deque
  • Ds\Deque::apply »
  • PHP Manual
  • Ds\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 Ds\Deque::allocate(int $capacity): void

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

int(8)
int(128)


Updates all values by applying a callback function to each value

  • « Ds\Deque::allocate
  • Ds\Deque::capacity »
  • PHP Manual
  • Ds\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 Ds\Deque::apply(callable $callback): void

Updates all values by applying a callback function to each value in the deque.

Liste de paramètres

callback

callback(mixed $value): mixed

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);
?>

Résultat de l'exemple ci-dessus est similaire à :

Ds\Deque Object
(
    [0] => 2
    [1] => 4
    [2] => 6
)


Returns the current capacity

  • « Ds\Deque::apply
  • Ds\Deque::clear »
  • PHP Manual
  • Ds\Deque
  • Returns the current capacity

Ds\Deque::capacity

(PECL ds >= 1.0.0)

Ds\Deque::capacity — Returns the current capacity

Description

public Ds\Deque::capacity(): int

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

int(8)
int(64)


Removes all values from the deque

  • « Ds\Deque::capacity
  • Ds\Deque::__construct »
  • PHP Manual
  • Ds\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 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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Deque::contains(mixed ...$values): bool

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
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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::copy(): Ds\Deque

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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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

Description

See Countable::count()


Creates a new deque using a callable to determine which values to include

  • « Ds\Deque::count
  • Ds\Deque::find »
  • PHP Manual
  • Ds\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::filter(callable $callback = ?): Ds\Deque

Creates a new deque using a callable to determine which values to include.

Liste de paramètres

callback

callback(mixed $value): bool

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;
}));
?>

Résultat de l'exemple ci-dessus est 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());
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Deque::find(mixed $value): mixed

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
?>

Résultat de l'exemple ci-dessus est similaire à :

int(0)
bool(false)
bool(false)
int(1)


Returns the first value in the deque

  • « Ds\Deque::find
  • Ds\Deque::get »
  • PHP Manual
  • Ds\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 Ds\Deque::first(): mixed

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

int(1)


Returns the value at a given index

  • « Ds\Deque::first
  • Ds\Deque::insert »
  • PHP Manual
  • Ds\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 Ds\Deque::get(int $index): mixed

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));
?>

Résultat de l'exemple ci-dessus est 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]);
?>

Résultat de l'exemple ci-dessus est similaire à :

string(1) "a"
string(1) "b"
string(1) "c"


Inserts values at a given index

  • « Ds\Deque::get
  • Ds\Deque::isEmpty »
  • PHP Manual
  • Ds\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 Ds\Deque::insert(int $index, mixed ...$values): void

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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Deque::isEmpty(): bool

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

bool(false)
bool(true)


Joins all values together as a string

  • « Ds\Deque::isEmpty
  • Ds\Deque::jsonSerialize »
  • PHP Manual
  • Ds\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 Ds\Deque::join(string $glue = ?): string

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("|"));
?>

Résultat de l'exemple ci-dessus est 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());
?>

Résultat de l'exemple ci-dessus est similaire à :

string(11) "abc123"


Returns a representation that can be converted to JSON

  • « Ds\Deque::join
  • Ds\Deque::last »
  • PHP Manual
  • Ds\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

Description

See JsonSerializable::jsonSerialize()

Note:

You should never need to call this directly.


Returns the last value

  • « Ds\Deque::jsonSerialize
  • Ds\Deque::map »
  • PHP Manual
  • Ds\Deque
  • Returns the last value

Ds\Deque::last

(PECL ds >= 1.0.0)

Ds\Deque::last — Returns the last value

Description

public Ds\Deque::last(): mixed

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

int(3)


Returns the result of applying a callback to each value

  • « Ds\Deque::last
  • Ds\Deque::merge »
  • PHP Manual
  • Ds\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::map(callable $callback): Ds\Deque

Returns the result of applying a callback function to each value in the deque.

Liste de paramètres

callback

callback(mixed $value): mixed

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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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::merge(mixed $values): Ds\Deque

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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Deque::pop(): mixed

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

int(3)
int(2)
int(1)


Adds values to the end of the deque

  • « Ds\Deque::pop
  • Ds\Deque::reduce »
  • PHP Manual
  • Ds\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 Ds\Deque::push(mixed ...$values): void

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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Deque::reduce(callable $callback, mixed $initial = ?): mixed

Reduces the deque to a single value using a callback function.

Liste de paramètres

callback
callback(mixed $carry, mixed $value): mixed
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
?>

Résultat de l'exemple ci-dessus est 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
?>

Résultat de l'exemple ci-dessus est similaire à :

int(21)


Removes and returns a value by index

  • « Ds\Deque::reduce
  • Ds\Deque::reverse »
  • PHP Manual
  • Ds\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 Ds\Deque::remove(int $index): mixed

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));
?>

Résultat de l'exemple ci-dessus est similaire à :

string(1) "b"
string(1) "a"
string(1) "c"


Reverses the deque in-place

  • « Ds\Deque::remove
  • Ds\Deque::reversed »
  • PHP Manual
  • Ds\Deque
  • Reverses the deque in-place

Ds\Deque::reverse

(PECL ds >= 1.0.0)

Ds\Deque::reverse — Reverses the deque in-place

Description

public 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);
?>

Résultat de l'exemple ci-dessus est similaire à :

Ds\Deque Object
(
    [0] => c
    [1] => b
    [2] => a
)


Returns a reversed copy

  • « Ds\Deque::reverse
  • Ds\Deque::rotate »
  • PHP Manual
  • Ds\Deque
  • Returns a reversed copy

Ds\Deque::reversed

(PECL ds >= 1.0.0)

Ds\Deque::reversed — Returns a reversed copy

Description

public Ds\Deque::reversed(): Ds\Deque

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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Deque::rotate(int $rotations): void

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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Deque::set(int $index, mixed $value): void

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);
?>

Résultat de l'exemple ci-dessus est 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);
?>

Résultat de l'exemple ci-dessus est similaire à :

Ds\Deque Object
(
    [0] => a
    [1] => _
    [2] => c
)


Removes and returns the first value

  • « Ds\Deque::set
  • Ds\Deque::slice »
  • PHP Manual
  • Ds\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 Ds\Deque::shift(): mixed

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());
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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::slice(int $index, int $length = ?): Ds\Deque

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));
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\Deque
  • Sorts the deque in-place

Ds\Deque::sort

(PECL ds >= 1.0.0)

Ds\Deque::sort — Sorts the deque in-place

Description

public Ds\Deque::sort(callable $comparator = ?): void

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.

callback(mixed $a, mixed $b): int
Attention

Retourner des valeurs non-entières à partir de la fonction de comparaison, telles que float, entraînera une conversion interne de la valeur de retour du rappel en int. Ainsi, des valeurs telles que 0.99 et 0.1 seront toutes deux converties en une valeur entière de 0, ce qui comparera de telles valeurs comme égales.

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);
?>

Résultat de l'exemple ci-dessus est 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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\Deque
  • Returns a sorted copy

Ds\Deque::sorted

(PECL ds >= 1.0.0)

Ds\Deque::sorted — Returns a sorted copy

Description

public Ds\Deque::sorted(callable $comparator = ?): Ds\Deque

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.

callback(mixed $a, mixed $b): int
Attention

Retourner des valeurs non-entières à partir de la fonction de comparaison, telles que float, entraînera une conversion interne de la valeur de retour du rappel en int. Ainsi, des valeurs telles que 0.99 et 0.1 seront toutes deux converties en une valeur entière de 0, ce qui comparera de telles valeurs comme égales.

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());
?>

Résultat de l'exemple ci-dessus est 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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Deque::sum(): int|float

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

int(6)

Exemple #2 Ds\Deque::sum() float example

<?php
$deque = new \Ds\Deque([1, 2.5, 3]);
var_dump($deque->sum());
?>

Résultat de l'exemple ci-dessus est similaire à :

float(6.5)


Converts the deque to an tableau

  • « Ds\Deque::sum
  • Ds\Deque::unshift »
  • PHP Manual
  • Ds\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 Ds\Deque::toArray(): array

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Adds values to the front of the deque

  • « Ds\Deque::toArray
  • Ds\Map »
  • PHP Manual
  • Ds\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 Ds\Deque::unshift(mixed $values = ?): void

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);
?>

Résultat de l'exemple ci-dessus est similaire à :

Ds\Deque Object
(
    [0] => b
    [1] => c
    [2] => a
    [3] => 1
    [4] => 2
    [5] => 3
)


The Map class

(PECL ds >= 1.0.0)

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

class Ds\Map implements Ds\Collection, ArrayAccess {
/* Constantes */
const int MIN_CAPACITY = 16;
/* Méthodes */
public allocate(int $capacity): void
public apply(callable $callback): void
public capacity(): int
public clear(): void
public copy(): Ds\Map
public diff(Ds\Map $map): Ds\Map
public filter(callable $callback = ?): Ds\Map
public first(): Ds\Pair
public get(mixed $key, mixed $default = ?): mixed
public hasKey(mixed $key): bool
public hasValue(mixed $value): bool
public intersect(Ds\Map $map): Ds\Map
public isEmpty(): bool
public keys(): Ds\Set
public ksort(callable $comparator = ?): void
public ksorted(callable $comparator = ?): Ds\Map
public last(): Ds\Pair
public map(callable $callback): Ds\Map
public merge(mixed $values): Ds\Map
public pairs(): Ds\Sequence
public put(mixed $key, mixed $value): void
public putAll(mixed $pairs): void
public reduce(callable $callback, mixed $initial = ?): mixed
public remove(mixed $key, mixed $default = ?): mixed
public reverse(): void
public reversed(): Ds\Map
public skip(int $position): Ds\Pair
public slice(int $index, int $length = ?): Ds\Map
public sort(callable $comparator = ?): void
public sorted(callable $comparator = ?): Ds\Map
public sum(): int|float
public toArray(): array
public union(Ds\Map $map): Ds\Map
public values(): Ds\Sequence
public xor(Ds\Map $map): Ds\Map
}

Constantes pré-définies

Ds\Map::MIN_CAPACITY

Historique

Version | Description
PECL ds 1.3.0 | The class now implements ArrayAccess.

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

  • « Ds\Map
  • Ds\Map::apply »
  • PHP Manual
  • Ds\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 Ds\Map::allocate(int $capacity): void

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

int(16)
int(128)


Updates all values by applying a callback function to each value

  • « Ds\Map::allocate
  • Ds\Map::capacity »
  • PHP Manual
  • Ds\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 Ds\Map::apply(callable $callback): void

Updates all values by applying a callback function to each value in the map.

Liste de paramètres

callback

callback(mixed $key, mixed $value): mixed

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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\Map
  • Returns the current capacity

Ds\Map::capacity

(PECL ds >= 1.0.0)

Ds\Map::capacity — Returns the current capacity

Description

public Ds\Map::capacity(): int

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

int(16)


Removes all values

  • « Ds\Map::capacity
  • Ds\Map::__construct »
  • PHP Manual
  • Ds\Map
  • Removes all values

Ds\Map::clear

(PECL ds >= 1.0.0)

Ds\Map::clear — Removes all values

Description

public 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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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::copy(): Ds\Map

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());
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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

Description

See Countable::count()


Creates a new map using keys that aren't in another map

  • « Ds\Map::count
  • Ds\Map::filter »
  • PHP Manual
  • Ds\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::diff(Ds\Map $map): Ds\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.

Voir aussi

  • » Complement 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));
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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::filter(callable $callback = ?): Ds\Map

Creates a new map using a callable to determine which pairs to include.

Liste de paramètres

callback

callback(mixed $key, mixed $value): bool

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;
}));
?>

Résultat de l'exemple ci-dessus est 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());
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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\Map::first(): Ds\Pair

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());
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Map::get(mixed $key, mixed $default = ?): mixed

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)
?>

Résultat de l'exemple ci-dessus est 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
?>

Résultat de l'exemple ci-dessus est similaire à :

int(1)


Determines whether the map contains a given key

  • « Ds\Map::get
  • Ds\Map::hasValue »
  • PHP Manual
  • Ds\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 Ds\Map::hasKey(mixed $key): bool

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
?>

Résultat de l'exemple ci-dessus est similaire à :

bool(true)
bool(false)


Determines whether the map contains a given value

  • « Ds\Map::hasKey
  • Ds\Map::intersect »
  • PHP Manual
  • Ds\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 Ds\Map::hasValue(mixed $value): bool

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
?>

Résultat de l'exemple ci-dessus est similaire à :

bool(true)
bool(false)


Creates a new map by intersecting keys with another map

  • « Ds\Map::hasValue
  • Ds\Map::isEmpty »
  • PHP Manual
  • Ds\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::intersect(Ds\Map $map): Ds\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.

Voir aussi

  • » 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));
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Map::isEmpty(): bool

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

bool(false)
bool(true)


Returns a representation that can be converted to JSON

  • « Ds\Map::isEmpty
  • Ds\Map::keys »
  • PHP Manual
  • Ds\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

Description

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
  • Ds\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\Map::keys(): Ds\Set

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());
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Map::ksort(callable $comparator = ?): void

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.

callback(mixed $a, mixed $b): int
Attention

Retourner des valeurs non-entières à partir de la fonction de comparaison, telles que float, entraînera une conversion interne de la valeur de retour du rappel en int. Ainsi, des valeurs telles que 0.99 et 0.1 seront toutes deux converties en une valeur entière de 0, ce qui comparera de telles valeurs comme égales.

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);
?>

Résultat de l'exemple ci-dessus est 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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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::ksorted(callable $comparator = ?): Ds\Map

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.

callback(mixed $a, mixed $b): int
Attention

Retourner des valeurs non-entières à partir de la fonction de comparaison, telles que float, entraînera une conversion interne de la valeur de retour du rappel en int. Ainsi, des valeurs telles que 0.99 et 0.1 seront toutes deux converties en une valeur entière de 0, ce qui comparera de telles valeurs comme égales.

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());
?>

Résultat de l'exemple ci-dessus est 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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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\Map::last(): Ds\Pair

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());
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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::map(callable $callback): Ds\Map

Returns the result of applying a callback function to each value of the map.

Liste de paramètres

callback

callback(mixed $key, mixed $value): mixed

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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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::merge(mixed $values): Ds\Map

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]));
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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\Map::pairs(): Ds\Sequence

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());
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Map::put(mixed $key, mixed $value): void

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);
?>

Résultat de l'exemple ci-dessus est 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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Map::putAll(mixed $pairs): void

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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Map::reduce(callable $callback, mixed $initial = ?): mixed

Reduces the map to a single value using a callback function.

Liste de paramètres

callback
callback(mixed $carry, mixed $key, mixed $value): mixed
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
?>

Résultat de l'exemple ci-dessus est 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
?>

Résultat de l'exemple ci-dessus est similaire à :

int(21)


Removes and returns a value by key

  • « Ds\Map::reduce
  • Ds\Map::reverse »
  • PHP Manual
  • Ds\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 Ds\Map::remove(mixed $key, mixed $default = ?): mixed

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)
?>

Résultat de l'exemple ci-dessus est similaire à :

int(1)
int(10)


Reverses the map in-place

  • « Ds\Map::remove
  • Ds\Map::reversed »
  • PHP Manual
  • Ds\Map
  • Reverses the map in-place

Ds\Map::reverse

(PECL ds >= 1.0.0)

Ds\Map::reverse — Reverses the map in-place

Description

public 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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\Map
  • Returns a reversed copy

Ds\Map::reversed

(PECL ds >= 1.0.0)

Ds\Map::reversed — Returns a reversed copy

Description

public Ds\Map::reversed(): Ds\Map

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());
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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\Map::skip(int $position): Ds\Pair

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));
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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::slice(int $index, int $length = ?): Ds\Map

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());
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Map::sort(callable $comparator = ?): void

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.

callback(mixed $a, mixed $b): int
Attention

Retourner des valeurs non-entières à partir de la fonction de comparaison, telles que float, entraînera une conversion interne de la valeur de retour du rappel en int. Ainsi, des valeurs telles que 0.99 et 0.1 seront toutes deux converties en une valeur entière de 0, ce qui comparera de telles valeurs comme égales.

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);
?>

Résultat de l'exemple ci-dessus est 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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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::sorted(callable $comparator = ?): Ds\Map

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.

callback(mixed $a, mixed $b): int
Attention

Retourner des valeurs non-entières à partir de la fonction de comparaison, telles que float, entraînera une conversion interne de la valeur de retour du rappel en int. Ainsi, des valeurs telles que 0.99 et 0.1 seront toutes deux converties en une valeur entière de 0, ce qui comparera de telles valeurs comme égales.

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());
?>

Résultat de l'exemple ci-dessus est 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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Map::sum(): int|float

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());
?>

Résultat de l'exemple ci-dessus est 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());
?>

Résultat de l'exemple ci-dessus est similaire à :

float(6.5)


Converts the map to an tableau

  • « Ds\Map::sum
  • Ds\Map::union »
  • PHP Manual
  • Ds\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 Ds\Map::toArray(): array

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());
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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::union(Ds\Map $map): Ds\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.

Voir aussi

  • » 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));
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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\Map::values(): Ds\Sequence

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

object(Ds\Vector)#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
  • Ds\Pair »
  • PHP Manual
  • Ds\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::xor(Ds\Map $map): Ds\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.

Voir aussi

  • » 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));
?>

Résultat de l'exemple ci-dessus est similaire à :

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => d
            [value] => 6
        )

)


The Pair class

(PECL ds >= 1.0.0)

Introduction

A pair is used by Ds\Map to pair keys with values.

Synopsis de la classe

class Ds\Pair implements JsonSerializable {
/* Méthodes */
public __construct(mixed $key = ?, mixed $value = ?)
public clear(): void
public copy(): Ds\Pair
public isEmpty(): bool
public toArray(): array
}

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

  • « Ds\Pair
  • Ds\Pair::__construct »
  • PHP Manual
  • Ds\Pair
  • Removes all values

Ds\Pair::clear

(No version information available, might only be in Git)

Ds\Pair::clear — Removes all values

Description

public 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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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
  • Ds\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::copy(): Ds\Pair

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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Pair::isEmpty(): bool

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

bool(false)
bool(true)


Returns a representation that can be converted to JSON

  • « Ds\Pair::isEmpty
  • Ds\Pair::toArray »
  • PHP Manual
  • Ds\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

Description

See JsonSerializable::jsonSerialize()

Note:

You should never need to call this directly.


Converts the pair to an tableau

  • « Ds\Pair::jsonSerialize
  • Ds\Set »
  • PHP Manual
  • Ds\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 Ds\Pair::toArray(): array

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

array(2) {
  ["key"]=>
  string(1) "a"
  ["value"]=>
  int(1)
}


The Set class

(PECL ds >= 1.0.0)

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

class Ds\Set implements Ds\Collection, ArrayAccess {
/* Constantes */
const int MIN_CAPACITY = 16;
/* Méthodes */
public add(mixed ...$values): void
public allocate(int $capacity): void
public capacity(): int
public clear(): void
public contains(mixed ...$values): bool
public copy(): Ds\Set
public diff(Ds\Set $set): Ds\Set
public filter(callable $callback = ?): Ds\Set
public first(): mixed
public get(int $index): mixed
public intersect(Ds\Set $set): Ds\Set
public isEmpty(): bool
public join(string $glue = ?): string
public last(): mixed
public merge(mixed $values): Ds\Set
public reduce(callable $callback, mixed $initial = ?): mixed
public remove(mixed ...$values): void
public reverse(): void
public reversed(): Ds\Set
public slice(int $index, int $length = ?): Ds\Set
public sort(callable $comparator = ?): void
public sorted(callable $comparator = ?): Ds\Set
public sum(): int|float
public toArray(): array
public union(Ds\Set $set): Ds\Set
public xor(Ds\Set $set): Ds\Set
}

Constantes pré-définies

Ds\Set::MIN_CAPACITY

Historique

Version | Description
PECL ds 1.3.0 | The class now implements ArrayAccess.

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

  • « Ds\Set
  • Ds\Set::allocate »
  • PHP Manual
  • Ds\Set
  • Adds values to the set

Ds\Set::add

(PECL ds >= 1.0.0)

Ds\Set::add — Adds values to the set

Description

public Ds\Set::add(mixed ...$values): void

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);
?>

Résultat de l'exemple ci-dessus est 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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Set::allocate(int $capacity): void

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

int(16)
int(128)


Returns the current capacity

  • « Ds\Set::allocate
  • Ds\Set::clear »
  • PHP Manual
  • Ds\Set
  • Returns the current capacity

Ds\Set::capacity

(PECL ds >= 1.0.0)

Ds\Set::capacity — Returns the current capacity

Description

public Ds\Set::capacity(): int

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->add(...range(1, 50));
var_dump($set->capacity());
?>

Résultat de l'exemple ci-dessus est similaire à :

int(16)
int(64)


Removes all values

  • « Ds\Set::capacity
  • Ds\Set::__construct »
  • PHP Manual
  • Ds\Set
  • Removes all values

Ds\Set::clear

(PECL ds >= 1.0.0)

Ds\Set::clear — Removes all values

Description

public 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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Set::contains(mixed ...$values): bool

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
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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::copy(): Ds\Set

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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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

Description

See Countable::count()


Creates a new set using values that aren't in another set

  • « Ds\Set::count
  • Ds\Set::filter »
  • PHP Manual
  • Ds\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::diff(Ds\Set $set): Ds\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.

Voir aussi

  • » Complement 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));
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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::filter(callable $callback = ?): Ds\Set

Creates a new set using a callable to determine which values to include.

Liste de paramètres

callback

callback(mixed $value): bool

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;
}));
?>

Résultat de l'exemple ci-dessus est 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());
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Set::first(): mixed

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

int(1)


Returns the value at a given index

  • « Ds\Set::first
  • Ds\Set::intersect »
  • PHP Manual
  • Ds\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 Ds\Set::get(int $index): mixed

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));
?>

Résultat de l'exemple ci-dessus est 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]);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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::intersect(Ds\Set $set): Ds\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.

Voir aussi

  • » 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));
?>

Résultat de l'exemple ci-dessus est similaire à :

object(Ds\Set)#3 (1) {
  [0]=>
  int(3)
}


Returns whether the set is empty

  • « Ds\Set::intersect
  • Ds\Set::join »
  • PHP Manual
  • Ds\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 Ds\Set::isEmpty(): bool

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

bool(false)
bool(true)


Joins all values together as a string

  • « Ds\Set::isEmpty
  • Ds\Set::jsonSerialize »
  • PHP Manual
  • Ds\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 Ds\Set::join(string $glue = ?): string

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("|"));
?>

Résultat de l'exemple ci-dessus est 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());
?>

Résultat de l'exemple ci-dessus est similaire à :

string(11) "abc123"


Returns a representation that can be converted to JSON

  • « Ds\Set::join
  • Ds\Set::last »
  • PHP Manual
  • Ds\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

Description

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
  • Ds\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 Ds\Set::last(): mixed

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

int(3)


Returns the result of adding all given values to the set

  • « Ds\Set::last
  • Ds\Set::reduce »
  • PHP Manual
  • Ds\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::merge(mixed $values): Ds\Set

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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Set::reduce(callable $callback, mixed $initial = ?): mixed

Reduces the set to a single value using a callback function.

Liste de paramètres

callback
callback(mixed $carry, mixed $value): mixed
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
?>

Résultat de l'exemple ci-dessus est 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
?>

Résultat de l'exemple ci-dessus est similaire à :

int(21)


Removes all given values from the set

  • « Ds\Set::reduce
  • Ds\Set::reverse »
  • PHP Manual
  • Ds\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 Ds\Set::remove(mixed ...$values): void

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);
?>

Résultat de l'exemple ci-dessus est similaire à :

object(Ds\Set)#1 (1) {
  [0]=>
  int(5)
}


Reverses the set in-place

  • « Ds\Set::remove
  • Ds\Set::reversed »
  • PHP Manual
  • Ds\Set
  • Reverses the set in-place

Ds\Set::reverse

(PECL ds >= 1.0.0)

Ds\Set::reverse — Reverses the set in-place

Description

public 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);
?>

Résultat de l'exemple ci-dessus est similaire à :

Ds\Set Object
(
    [0] => c
    [1] => b
    [2] => a
)


Returns a reversed copy

  • « Ds\Set::reverse
  • Ds\Set::slice »
  • PHP Manual
  • Ds\Set
  • Returns a reversed copy

Ds\Set::reversed

(PECL ds >= 1.0.0)

Ds\Set::reversed — Returns a reversed copy

Description

public Ds\Set::reversed(): Ds\Set

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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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::slice(int $index, int $length = ?): Ds\Set

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));
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\Set
  • Sorts the set in-place

Ds\Set::sort

(PECL ds >= 1.0.0)

Ds\Set::sort — Sorts the set in-place

Description

public Ds\Set::sort(callable $comparator = ?): void

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.

callback(mixed $a, mixed $b): int
Attention

Retourner des valeurs non-entières à partir de la fonction de comparaison, telles que float, entraînera une conversion interne de la valeur de retour du rappel en int. Ainsi, des valeurs telles que 0.99 et 0.1 seront toutes deux converties en une valeur entière de 0, ce qui comparera de telles valeurs comme égales.

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);
?>

Résultat de l'exemple ci-dessus est 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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\Set
  • Returns a sorted copy

Ds\Set::sorted

(PECL ds >= 1.0.0)

Ds\Set::sorted — Returns a sorted copy

Description

public Ds\Set::sorted(callable $comparator = ?): Ds\Set

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.

callback(mixed $a, mixed $b): int
Attention

Retourner des valeurs non-entières à partir de la fonction de comparaison, telles que float, entraînera une conversion interne de la valeur de retour du rappel en int. Ainsi, des valeurs telles que 0.99 et 0.1 seront toutes deux converties en une valeur entière de 0, ce qui comparera de telles valeurs comme égales.

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());
?>

Résultat de l'exemple ci-dessus est 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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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 Ds\Set::sum(): int|float

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

int(6)

Exemple #2 Ds\Set::sum() float example

<?php
$set = new \Ds\Set([1, 2.5, 3]);
var_dump($set->sum());
?>

Résultat de l'exemple ci-dessus est similaire à :

float(6.5)


Converts the set to an tableau

  • « Ds\Set::sum
  • Ds\Set::union »
  • PHP Manual
  • Ds\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 Ds\Set::toArray(): array

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());
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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::union(Ds\Set $set): Ds\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.

Voir aussi

  • » 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));
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\Stack »
  • PHP Manual
  • Ds\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::xor(Ds\Set $set): Ds\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.

Voir aussi

  • » 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));
?>

Résultat de l'exemple ci-dessus est similaire à :

object(Ds\Set)#3 (4) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(4)
  [3]=>
  int(5)
}


The Stack class

(PECL ds >= 1.0.0)

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

class Ds\Stack implements Ds\Collection, ArrayAccess {
/* Méthodes */
public allocate(int $capacity): void
public capacity(): int
public clear(): void
public copy(): Ds\Stack
public isEmpty(): bool
public peek(): mixed
public pop(): mixed
public push(mixed ...$values): void
public toArray(): array
}

Historique

Version | Description
PECL ds 1.3.0 | The class now implements ArrayAccess.

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

  • « Ds\Stack
  • Ds\Stack::capacity »
  • PHP Manual
  • Ds\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 Ds\Stack::allocate(int $capacity): void

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
  • Ds\Stack
  • Returns the current capacity

Ds\Stack::capacity

(PECL ds >= 1.0.0)

Ds\Stack::capacity — Returns the current capacity

Description

public Ds\Stack::capacity(): int

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
  • Ds\Stack
  • Removes all values

Ds\Stack::clear

(PECL ds >= 1.0.0)

Ds\Stack::clear — Removes all values

Description

public 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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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::copy(): Ds\Stack

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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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

Description

See Countable::count()


Returns whether the stack is empty

  • « Ds\Stack::count
  • Ds\Stack::jsonSerialize »
  • PHP Manual
  • Ds\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 Ds\Stack::isEmpty(): bool

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

bool(false)
bool(true)


Returns a representation that can be converted to JSON

  • « Ds\Stack::isEmpty
  • Ds\Stack::peek »
  • PHP Manual
  • Ds\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

Description

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
  • Ds\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 Ds\Stack::peek(): mixed

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

string(1) "c"


Removes and returns the value at the top of the stack

  • « Ds\Stack::peek
  • Ds\Stack::push »
  • PHP Manual
  • Ds\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 Ds\Stack::pop(): mixed

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

string(1) "c"
string(1) "b"
string(1) "a"


Pushes values onto the stack

  • « Ds\Stack::pop
  • Ds\Stack::toArray »
  • PHP Manual
  • Ds\Stack
  • Pushes values onto the stack

Ds\Stack::push

(PECL ds >= 1.0.0)

Ds\Stack::push — Pushes values onto the stack

Description

public Ds\Stack::push(mixed ...$values): void

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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\Queue »
  • PHP Manual
  • Ds\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 Ds\Stack::toArray(): array

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

array(3) {
  [0]=>
  int(3)
  [1]=>
  int(2)
  [2]=>
  int(1)
}


The Queue class

(PECL ds >= 1.0.0)

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

class Ds\Queue implements Ds\Collection, ArrayAccess {
/* Constantes */
const int MIN_CAPACITY = 8;
/* Méthodes */
public allocate(int $capacity): void
public capacity(): int
public clear(): void
public copy(): Ds\Queue
public isEmpty(): bool
public peek(): mixed
public pop(): mixed
public push(mixed ...$values): void
public toArray(): array
}

Constantes pré-définies

Ds\Queue::MIN_CAPACITY

Historique

Version | Description
PECL ds 1.3.0 | The class now implements ArrayAccess.

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

  • « Ds\Queue
  • Ds\Queue::capacity »
  • PHP Manual
  • Ds\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 Ds\Queue::allocate(int $capacity): void

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

int(8)
int(128)


Returns the current capacity

  • « Ds\Queue::allocate
  • Ds\Queue::clear »
  • PHP Manual
  • Ds\Queue
  • Returns the current capacity

Ds\Queue::capacity

(PECL ds >= 1.0.0)

Ds\Queue::capacity — Returns the current capacity

Description

public Ds\Queue::capacity(): int

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

int(8)
int(64)


Removes all values

  • « Ds\Queue::capacity
  • Ds\Queue::__construct »
  • PHP Manual
  • Ds\Queue
  • Removes all values

Ds\Queue::clear

(PECL ds >= 1.0.0)

Ds\Queue::clear — Removes all values

Description

public 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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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::copy(): Ds\Queue

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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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

Description

See Countable::count()


Returns whether the queue is empty

  • « Ds\Queue::count
  • Ds\Queue::jsonSerialize »
  • PHP Manual
  • Ds\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 Ds\Queue::isEmpty(): bool

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

bool(false)
bool(true)


Returns a representation that can be converted to JSON

  • « Ds\Queue::isEmpty
  • Ds\Queue::peek »
  • PHP Manual
  • Ds\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

Description

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
  • Ds\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 Ds\Queue::peek(): mixed

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

string(1) "a"


Removes and returns the value at the front of the queue

  • « Ds\Queue::peek
  • Ds\Queue::push »
  • PHP Manual
  • Ds\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 Ds\Queue::pop(): mixed

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

string(1) "a"
string(1) "b"
string(1) "c"


Pushes values into the queue

  • « Ds\Queue::pop
  • Ds\Queue::toArray »
  • PHP Manual
  • Ds\Queue
  • Pushes values into the queue

Ds\Queue::push

(PECL ds >= 1.0.0)

Ds\Queue::push — Pushes values into the queue

Description

public Ds\Queue::push(mixed ...$values): void

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);
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\PriorityQueue »
  • PHP Manual
  • Ds\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 Ds\Queue::toArray(): array

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


The PriorityQueue class

(PECL ds >= 1.0.0)

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

class Ds\PriorityQueue implements Ds\Collection {
/* Constantes */
const int MIN_CAPACITY = 8;
/* Méthodes */
public allocate(int $capacity): void
public capacity(): int
public clear(): void
public copy(): Ds\PriorityQueue
public isEmpty(): bool
public peek(): mixed
public pop(): mixed
public push(mixed $value, int $priority): void
public toArray(): array
}

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

  • « Ds\PriorityQueue
  • Ds\PriorityQueue::capacity »
  • PHP Manual
  • Ds\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 Ds\PriorityQueue::allocate(int $capacity): void

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

int(8)
int(128)


Returns the current capacity

  • « Ds\PriorityQueue::allocate
  • Ds\PriorityQueue::clear »
  • PHP Manual
  • Ds\PriorityQueue
  • Returns the current capacity

Ds\PriorityQueue::capacity

(PECL ds >= 1.0.0)

Ds\PriorityQueue::capacity — Returns the current capacity

Description

public Ds\PriorityQueue::capacity(): int

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

int(8)


Removes all values

  • « Ds\PriorityQueue::capacity
  • Ds\PriorityQueue::__construct »
  • PHP Manual
  • Ds\PriorityQueue
  • Removes all values

Ds\PriorityQueue::clear

(PECL ds >= 1.0.0)

Ds\PriorityQueue::clear — Removes all values

Description

public 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);
?>

Résultat de l'exemple ci-dessus est similaire à :

Ds\PriorityQueue Object
(
)


Creates a new instance

  • « Ds\PriorityQueue::clear
  • Ds\PriorityQueue::copy »
  • PHP Manual
  • Ds\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()

Creates a new instance.

Exemples

Exemple #1 Ds\PriorityQueue::__construct() example

<?php
$queue = new \Ds\PriorityQueue();
var_dump($queue);
?>

Résultat de l'exemple ci-dessus est similaire à :

object(Ds\PriorityQueue)#1 (0) {
}


Returns a shallow copy of the queue

  • « Ds\PriorityQueue::__construct
  • Ds\PriorityQueue::count »
  • PHP Manual
  • Ds\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::copy(): Ds\PriorityQueue

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());
?>

Résultat de l'exemple ci-dessus est 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
  • Ds\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

Description

See Countable::count()


Returns whether the queue is empty

  • « Ds\PriorityQueue::count
  • Ds\PriorityQueue::jsonSerialize »
  • PHP Manual
  • Ds\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 Ds\PriorityQueue::isEmpty(): bool

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

bool(false)
bool(true)


Returns a representation that can be converted to JSON

  • « Ds\PriorityQueue::isEmpty
  • Ds\PriorityQueue::peek »
  • PHP Manual
  • Ds\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

Description

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
  • Ds\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 Ds\PriorityQueue::peek(): mixed

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

string(1) "b"


Removes and returns the value with the highest priority

  • « Ds\PriorityQueue::peek
  • Ds\PriorityQueue::push »
  • PHP Manual
  • Ds\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 Ds\PriorityQueue::pop(): mixed

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

string(1) "a"
string(1) "b"
string(1) "c"


Pushes values into the queue

  • « Ds\PriorityQueue::pop
  • Ds\PriorityQueue::toArray »
  • PHP Manual
  • Ds\PriorityQueue
  • Pushes values into the queue

Ds\PriorityQueue::push

(PECL ds >= 1.0.0)

Ds\PriorityQueue::push — Pushes values into the queue

Description

public Ds\PriorityQueue::push(mixed $value, int $priority): void

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

string(1) "b"
string(1) "c"
string(1) "a"


Converts the queue to an tableau

  • « Ds\PriorityQueue::push
  • var_representation »
  • PHP Manual
  • Ds\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 Ds\PriorityQueue::toArray(): array

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());
?>

Résultat de l'exemple ci-dessus est similaire à :

array(3) {
  [0]=>
  string(1) "b"
  [1]=>
  string(1) "c"
  [2]=>
  string(1) "a"
}


var_representation

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
  • Constantes pré-définies
  • var_representation Fonctions
    • var_representation — Returns a short, readable, parsable string representation of a variable


Introduction

The var_representation extension provides a compact alternative to var_export() that properly escapes control characters.


  • « Introduction
  • Pré-requis »
  • PHP Manual
  • var_representation
  • Installation/Configuration

Installation/Configuration

Sommaire

  • Pré-requis
  • 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 : » https://pecl.php.net/package/var_representation.

Les binaires Windows (les fichiers DLL) pour cette extension PECL sont disponibles sur le site web PECL.


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.

VAR_REPRESENTATION_SINGLE_LINE (int)
var_representation() flag indicating that newlines should not be used for whitespace in variable representations.
VAR_REPRESENTATION_UNESCAPED (int)
var_representation() flag indicating that strings should be encoded as single quoted strings with unescaped control characters.


var_representation Fonctions

Sommaire

  • var_representation — Returns a short, readable, parsable string representation of a variable


Returns a short, readable, parsable string representation of a variable

  • « var_representation Fonctions
  • Autres services »
  • PHP Manual
  • var_representation Fonctions
  • Returns a short, readable, parsable string representation of a variable

var_representation

(PECL var_representation >= 0.1.0)

var_representation — Returns a short, readable, parsable string representation of a variable

Description

var_representation(mixed $value, int $flags = 0): string

var_representation() (from the var_representation PECL) returns a string with structured information about the given variable. It is similar to var_export() with differences in indentation, string escaping, and array representations.

Liste de paramètres

value

The variable to generate a representation of.

flags

Bitmask consisting of VAR_REPRESENTATION_SINGLE_LINE, VAR_REPRESENTATION_UNESCAPED. The behaviour of these constants is described on the var_representation constants page.

Valeurs de retour

Returns the variable representation.

Exemples

Exemple #1 var_representation() Examples

<?php
$a = [1, 2, ['key' => 'value']];
echo var_representation($a), "\n";
echo var_representation($a, VAR_REPRESENTATION_SINGLE_LINE), "\n";
?>

L'exemple ci-dessus va afficher :

[
  1,
  2,
  [
    'key' => 'value',
  ],
]
[1, 2, ['key' => 'value']]

Exemple #2 Escaping control characters

<?php
echo var_representation("Content-Length: 123\r\n");

L'exemple ci-dessus va afficher :

"Content-Length: 123\r\n"

Exemple #3 Exporting stdClass

<?php
$person = new stdClass;
$person->name = 'ElePHPant ElePHPantsdotter';
$person->website = 'https://php.net/elephpant.php';

echo var_representation($person);

L'exemple ci-dessus va afficher :

(object) [
  'name' => 'ElePHPant ElePHPantsdotter',
  'website' => 'https://php.net/elephpant.php',
]

Exemple #4 Exporting classes

<?php
class A { public $var; }
$a = new A;
$a->var = 5;
echo var_representation($a);
?>

L'exemple ci-dessus va afficher :

\A::__set_state([
  'var' => 5,
])

Exemple #5 Using __set_state()

<?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_representation($a) . ';'); // $b = \A::__set_state([
// 'var1' => 5,
// 'var2' => 'foo',
// ]);
var_dump($b);
?>

L'exemple ci-dessus va afficher :

object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}

Voir aussi

  • var_export() - Retourne le code PHP utilisé pour générer une variable


Autres services

  • cURL — Bibliothèque d'URL client
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions cURL
    • CurlHandle — La classe CurlHandle
    • CurlMultiHandle — La classe CurlMultiHandle
    • CurlShareHandle — La classe CurlShareHandle
    • CURLFile — La classe CURLFile
    • CURLStringFile — La classe CURLStringFile
  • 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
    • EventException — The EventException class
  • FTP
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Fonctions FTP
    • FTP\Connection — The FTP\Connection class
  • 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
  • LDAP — Lightweight Directory Access Protocol
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Utiliser les fonctions LDAP de PHP
    • LDAP controls
    • Exemples
    • Fonctions LDAP
    • LDAP\Connection — The LDAP\Connection class
    • LDAP\Result — The LDAP\Result class
    • LDAP\ResultEntry — The LDAP\ResultEntry class
  • 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
  • ScoutAPM
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Scoutapm Fonctions
  • 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
    • Socket — La classe Socket
    • AddressInfo — La classe AddressInfo
  • 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
  • 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
    • Fonctions ZooKeeper
    • Zookeeper — The Zookeeper class
    • ZookeeperConfig — The ZookeeperConfig class
    • ZookeeperException — The ZookeeperException class
    • ZookeeperAuthenticationException — The ZookeeperAuthenticationException class
    • ZookeeperConnectionException — The ZookeeperConnectionException class
    • ZookeeperMarshallingException — The ZookeeperMarshallingException class
    • ZookeeperNoNodeException — The ZookeeperNoNodeException class
    • ZookeeperOperationTimeoutException — The ZookeeperOperationTimeoutException class
    • ZookeeperSessionException — The ZookeeperSessionException class


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_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_errno — Retourne le dernier numéro d'erreur multiple 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 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_errno — Retourne le dernier numéro d'erreur du gestionnaire partagé cURL
    • curl_share_init — Initialise un gestionnaire partagé cURL
    • curl_share_setopt — Définit une option du gestionnaire partagé cURL
    • curl_share_strerror — Retourne une chaîne qui décrit le code d'erreur fournit
    • curl_strerror — Retourne la chaîne descriptive du code erreur fourni
    • curl_unescape — Décode l'URL fourni
    • curl_upkeep — Effectue les contrôles de maintenance de la connexion
    • curl_version — Retourne la version courante de cURL
  • CurlHandle — La classe CurlHandle
  • CurlMultiHandle — La classe CurlMultiHandle
  • CurlShareHandle — La classe CurlShareHandle
  • 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
  • CURLStringFile — La classe CURLStringFile
    • CURLStringFile::__construct — Crée un objet CURLStringFile


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. À partir de PHP 7.3.0, la version 7.15.5 ou ultérieure est requise. A partir de PHP 8.0.0, la version 7.29.0 ou ultérieure est requise.


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.

Note: Note aux utilisateurs Win32
Afin d'activer ce module dans l'environnement Windows, libeay32.dll et ssleay32.dll, ou, depuis OpenSSL 1.1 libcrypto-*.dll et libssl-*.dll, doivent être présents dans votre PATH. libssh2.dll doit aussi être présent 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 | INI_SYSTEM |
Pour plus de détails sur les modes 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.


Types de ressources

Antérieur à PHP 8.0.0, cette extension définissait trois types de ressources : un gestionnaire curl, un gestionnaire curl_multi et un gestionnaire curl_share.


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 descriptions ainsi que les usages de ces constantes sont décrites dans la documentation des fonctions curl_setopt(), curl_multi_setopt() et curl_getinfo().

CURLOPT_AUTOREFERER (int)
CURLOPT_COOKIESESSION (int)
CURLOPT_DOH_URL (int)
Fournit l'URL du DNS-over-HTTPS. Disponible à partir de PHP 8.1.0 et cURL 7.62.0.
CURLOPT_DOH_SSL_VERIFYHOST (int)
Vérifie le nom du certificat SSL du serveur DNS-over-HTTPS avec le nom d'hôte. Disponible à partir de PHP 8.2.0 et cURL 7.76.0.
CURLOPT_DOH_SSL_VERIFYPEER (int)
Vérifie l'authenticité du certificat SSL du serveur DNS-over-HTTPS. Disponible à partir de PHP 8.2.0 et cURL 7.76.0.
CURLOPT_DOH_SSL_VERIFYSTATUS (int)
Indique à cURL de vérifier l'état du certificat du serveur DNS-over-HTTPS en utilisant l'extension "Certificate Status Request" de TLS (Agrafage OCSP). Disponible à partir de PHP 8.2.0 et cURL 7.76.0.
CURLOPT_DNS_USE_GLOBAL_CACHE (int)
CURLOPT_DNS_CACHE_TIMEOUT (int)
CURLOPT_FTP_SSL (int)
CURLFTP_CREATE_DIR (int)
Disponible à partir de PHP 7.0.7 et cURL 7.19.3
CURLFTP_CREATE_DIR_NONE (int)
Disponible à partir de PHP 7.0.7 et cURL 7.19.3
CURLFTP_CREATE_DIR_RETRY (int)
Disponible à partir de PHP 7.0.7 et cURL 7.19.3
CURLFTPSSL_TRY (int)
CURLFTPSSL_ALL (int)
CURLFTPSSL_CONTROL (int)
CURLFTPSSL_NONE (int)
CURLFTPMETHOD_DEFAULT (int)
Disponible à partir de PHP 8.2.0 et cURL 7.15.3
CURLOPT_PRIVATE (int)
CURLOPT_FTPSSLAUTH (int)
CURLOPT_PORT (int)
CURLOPT_FILE (int)
CURLOPT_INFILE (int)
CURLOPT_INFILESIZE (int)
CURLOPT_ISSUERCERT_BLOB (int)
Certificat SSL de l'émetteur à partir du blob de mémoire. Disponible à partir de PHP 8.1.0 et cURL 7.71.0.
CURLOPT_URL (int)
CURLOPT_PROXY (int)
CURLOPT_PROXY_ISSUERCERT (int)
Nom de fichier du certificat SSL de l'émetteur du proxy. Disponible à partir de PHP 8.1.0 et cURL 7.71.0.
CURLOPT_PROXY_ISSUERCERT_BLOB (int)
Certificat SSL de l'émetteur du proxy à partir d'un blob de mémoire. Disponible à partir de PHP 8.1.0 et cURL 7.71.0.
CURLOPT_PROXY_SSLCERT_BLOB (int)
Certificat client du proxy SSL à partir d'un blob de mémoire. Disponible à partir de PHP 8.1.0 et cURL 7.71.0.
CURLOPT_PROXY_SSLKEY_BLOB (int)
Clé privée pour le certificat du proxy à partir du blob de mémoire. Disponible à partir de PHP 8.1.0 et cURL 7.71.0.
CURLOPT_VERBOSE (int)
CURLOPT_ALTSVC (int)
Disponible à partir de PHP 8.2.0 et cURL 7.64.1
CURLOPT_ALTSVC_CTRL (int)
Disponible à partir de PHP 8.2.0 et cURL 7.64.1
CURLALTSVC_H1 (int)
Disponible à partir de PHP 8.2.0 et cURL 7.64.1
CURLALTSVC_H2 (int)
Disponible à partir de PHP 8.2.0 et cURL 7.64.1
CURLALTSVC_H3 (int)
Disponible à partir de PHP 8.2.0 et cURL 7.64.1
CURLALTSVC_READONLYFILE (int)
Disponible à partir de PHP 8.2.0 et cURL 7.64.1
CURLOPT_HEADER (int)
CURLOPT_HTTPHEADER (int)
CURLOPT_NOPROGRESS (int)
CURLOPT_NOBODY (int)
CURLOPT_FAILONERROR (int)
CURLOPT_UPLOAD (int)
CURLOPT_UPLOAD_BUFFERSIZE (int)
Disponible à partir de PHP 8.2.0 et cURL 7.62.0
CURLOPT_POST (int)
CURLOPT_FTPLISTONLY (int)
CURLOPT_FTPAPPEND (int)
CURLOPT_FTP_CREATE_MISSING_DIRS (int)
CURLOPT_NETRC (int)
CURLOPT_FOLLOWLOCATION (int)
Cette constante n'est pas disponible lorsque open_basedir est actif.
CURLOPT_FTPASCII (int)
CURLOPT_PUT (int)
CURLOPT_MIME_OPTIONS (int)
Disponible à partir de PHP 8.3.0 et cURL 7.81.0
CURLOPT_MUTE (int)
Supprimée à partir de cURL 7.15.5; utiliser CURLOPT_RETURNTRANSFER à la place.
CURLOPT_USERPWD (int)
CURLOPT_PROXYUSERPWD (int)
CURLOPT_RANGE (int)
CURLOPT_TIMEOUT (int)
CURLOPT_TIMEOUT_MS (int)
CURLOPT_TCP_NODELAY (int)
CURLOPT_POSTFIELDS (int)
CURLOPT_PROGRESSFUNCTION (int)
CURLOPT_REFERER (int)
CURLOPT_USERAGENT (int)
CURLOPT_FTPPORT (int)
CURLOPT_FTP_USE_EPSV (int)
CURLOPT_LOW_SPEED_LIMIT (int)
CURLOPT_LOW_SPEED_TIME (int)
CURLOPT_RESUME_FROM (int)
CURLOPT_COOKIE (int)
CURLOPT_COOKIELIST (int)
Disponible à partir de cURL 7.14.1
CURLOPT_SSLCERT (int)
CURLOPT_SSLCERT_BLOB (int)
Certificat client SSL à partir d'un blob de mémoire. Disponible à partir de PHP 8.1.0 et cURL 7.71.0.
CURLOPT_SSLCERTPASSWD (int)
CURLOPT_SSLKEY_BLOB (int)
Clé privée pour le certificat du client à partir du blob de mémoire. Disponible à partir de PHP 8.1.0 et cURL 7.71.0.
CURLOPT_WRITEHEADER (int)
CURLOPT_WS_OPTIONS (int)
Disponible à partir de PHP 8.3.0 et cURL 7.86.0
CURLOPT_SSL_VERIFYHOST (int)
CURLOPT_COOKIEFILE (int)
CURLOPT_SSLVERSION (int)
CURL_SSLVERSION_DEFAULT (int)
CURL_SSLVERSION_TLSv1 (int)
CURL_SSLVERSION_SSLv2 (int)
CURL_SSLVERSION_SSLv3 (int)
CURL_SSLVERSION_TLSv1_0 (int)
CURL_SSLVERSION_TLSv1_1 (int)
CURL_SSLVERSION_TLSv1_2 (int)
CURL_SSLVERSION_TLSv1_3 (int)
CURLOPT_TIMECONDITION (int)
CURLOPT_TIMEVALUE (int)
CURLOPT_CUSTOMREQUEST (int)
CURLOPT_STDERR (int)
CURLOPT_TRANSFERTEXT (int)
CURLOPT_RETURNTRANSFER (int)
CURLOPT_QUICK_EXIT (int)
Available as of PHP 8.3.0 and cURL 7.87.0
CURLOPT_QUOTE (int)
CURLOPT_POSTQUOTE (int)
CURLOPT_INTERFACE (int)
CURLOPT_KRB4LEVEL (int)
CURLOPT_HTTPPROXYTUNNEL (int)
CURLOPT_FILETIME (int)
CURLOPT_WRITEFUNCTION (int)
CURLOPT_READFUNCTION (int)
CURLOPT_PASSWDFUNCTION (int)
Supprimée à partir de PHP 7.3.0.
CURLOPT_HEADERFUNCTION (int)
CURLOPT_MAXAGE_CONN (int)
Disponible à partir de PHP 8.2.0 et cURL 7.65.0
CURLOPT_MAXFILESIZE_LARGE (int)
Disponible à partir de PHP 8.2.0 et cURL 7.11.0
CURLOPT_MAXLIFETIME_CONN (int)
Disponible à partir de PHP 8.2.0 et cURL 7.80.0
CURLOPT_MAXREDIRS (int)
CURLOPT_MAXCONNECTS (int)
CURLOPT_FRESH_CONNECT (int)
CURLOPT_FORBID_REUSE (int)
CURLOPT_RANDOM_FILE (int)
CURLOPT_EGDSOCKET (int)
CURLOPT_CONNECTTIMEOUT (int)
CURLOPT_CONNECTTIMEOUT_MS (int)
CURLOPT_SSL_VERIFYPEER (int)
CURLOPT_CA_CACHE_TIMEOUT (int)
Disponible à partir de PHP 8.3.0 et cURL 7.87.0
CURLOPT_CAINFO (int)
CURLOPT_CAINFO_BLOB (int)
Disponible à partir de PHP 8.2.0 et cURL 7.77.0
CURLOPT_CAPATH (int)
CURLOPT_COOKIEJAR (int)
CURLOPT_SSL_CIPHER_LIST (int)
CURLOPT_SSL_EC_CURVES (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLOPT_BINARYTRANSFER (int)
CURLOPT_NOSIGNAL (int)
CURLOPT_PROXYTYPE (int)
Disponible à partir de cURL 7.10.
CURLOPT_BUFFERSIZE (int)
CURLOPT_HTTPGET (int)
CURLOPT_HTTP_VERSION (int)
CURLOPT_HSTS (int)
Disponible à partir de PHP 8.2.0 et cURL 7.74.0
CURLOPT_HSTS_CTRL (int)
Disponible à partir de PHP 8.2.0 et cURL 7.74.0
CURLHSTS_ENABLE (int)
Disponible à partir de PHP 8.2.0 et cURL 7.74.0
CURLHSTS_READONLYFILE (int)
Disponible à partir de PHP 8.2.0 et cURL 7.74.0
CURLOPT_SSLKEY (int)
CURLOPT_SSLKEYTYPE (int)
CURLOPT_SSLKEYPASSWD (int)
CURLOPT_SSLENGINE (int)
CURLOPT_SSLENGINE_DEFAULT (int)
CURLOPT_SSLCERTTYPE (int)
CURLOPT_CRLF (int)
CURLOPT_ENCODING (int)
CURLOPT_PROXYPORT (int)
CURLOPT_UNRESTRICTED_AUTH (int)
CURLOPT_FTP_USE_EPRT (int)
CURLOPT_HTTP200ALIASES (int)
CURLOPT_HTTPAUTH (int)
CURLOPT_AWS_SIGV4 (int)
Disponible à partir de PHP 8.2.0 et cURL 7.75.0
CURLAUTH_BASIC (int)
CURLAUTH_DIGEST (int)
CURLAUTH_GSSNEGOTIATE (int)
CURLAUTH_NEGOTIATE (int)
Disponible à partir de PHP 7.0.7 et cURL 7.38.0.
CURLAUTH_NTLM (int)
CURLAUTH_NTLM_WB (int)
Disponible à partir de PHP 7.0.7 et cURL 7.22.0
CURLAUTH_ANY (int)
CURLAUTH_ANYSAFE (int)
CURLAUTH_AWS_SIGV4 (int)
Disponible à partir de PHP 8.2.0 et cURL 7.75.0.
CURLOPT_PROXYAUTH (int)
CURLOPT_MAIL_RCPT_ALLLOWFAILS (int)
Disponible à partir de PHP 8.2.0 et cURL 7.69.0
CURLOPT_UPKEEP_INTERVAL_MS (int)
Disponible à partir de PHP 8.2.0 et cURL 7.62.0
CURLOPT_MAX_RECV_SPEED_LARGE (int)
Disponible à partir de cURL 7.15.5
CURLOPT_MAX_SEND_SPEED_LARGE (int)
Disponible à partir de cURL 7.15.5
CURLOPT_HEADEROPT (int)
Disponible à partir de PHP 7.0.7 et cURL 7.37.0
CURLOPT_PROXYHEADER (int)
Disponible à partir de PHP 7.0.7 et cURL 7.37.0
CURLINFO_PRIVATE (int)
CURLINFO_EFFECTIVE_URL (int)
CURLINFO_HTTP_CODE (int)
À partir de cURL 7.10.8, il s'agit d'un alias hérité de CURLINFO_RESPONSE_CODE
CURLINFO_PROXY_ERROR (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLPX_BAD_ADDRESS_TYPE (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLPX_BAD_VERSION (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLPX_CLOSED (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLPX_GSSAPI (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLPX_GSSAPI_PERMSG (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLPX_GSSAPI_PROTECTION (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLPX_IDENTD_DIFFER (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLPX_IDENTD (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLPX_LONG_HOSTNAME (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLPX_LONG_PASSWD (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLPX_LONG_USER (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLPX_NO_AUTH (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLPX_OK (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLPX_RECV_ADDRESS (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLPX_RECV_AUTH (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLPX_RECV_CONNECT (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLPX_RECV_REQACK (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLPX_REPLY_ADDRESS_TYPE_NOT_SUPPORTED (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLPX_REPLY_COMMAND_NOT_SUPPORTED (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLPX_REPLY_CONNECTION_REFUSED (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLPX_REPLY_GENERAL_SERVER_FAILURE (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLPX_REPLY_HOST_UNREACHABLE (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLPX_REPLY_NETWORK_UNREACHABLE (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLPX_REPLY_NOT_ALLOWED (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLPX_REPLY_TTL_EXPIRED (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLPX_REPLY_UNASSIGNED (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLPX_REQUEST_FAILED (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLPX_RESOLVE_HOST (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLPX_SEND_AUTH (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLPX_SEND_CONNECT (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLPX_SEND_REQUEST (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLPX_UNKNOWN_FAIL (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLPX_UNKNOWN_MODE (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLPX_USER_REJECTED (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLINFO_REFERER (int)
Disponible à partir de PHP 8.2.0 et cURL 7.76.0
CURLINFO_RESPONSE_CODE (int)
Disponible à partir de cURL 7.10.8
CURLINFO_RETRY_AFTER (int)
Disponible à partir de PHP 8.2.0 et cURL 7.66.0
CURLINFO_HEADER_OUT (int)
CURLINFO_HEADER_SIZE (int)
CURLINFO_REQUEST_SIZE (int)
CURLINFO_TOTAL_TIME (int)
CURLINFO_NAMELOOKUP_TIME (int)
CURLINFO_CAINFO (int)
Disponible à partir de PHP 8.3.0 et cURL 7.84.0
CURLINFO_CAPATH (int)
Disponible à partir de PHP 8.3.0 et cURL 7.84.0
CURLINFO_CONNECT_TIME (int)
CURLINFO_PRETRANSFER_TIME (int)
CURLINFO_SIZE_UPLOAD (int)
CURLINFO_SIZE_DOWNLOAD (int)
CURLINFO_SPEED_DOWNLOAD (int)
CURLINFO_SPEED_UPLOAD (int)
CURLINFO_FILETIME (int)
CURLINFO_SSL_VERIFYRESULT (int)
CURLINFO_CONTENT_LENGTH_DOWNLOAD (int)
CURLINFO_CONTENT_LENGTH_UPLOAD (int)
CURLINFO_STARTTRANSFER_TIME (int)
CURLINFO_CONTENT_TYPE (int)
CURLINFO_REDIRECT_TIME (int)
CURLINFO_REDIRECT_COUNT (int)
CURLINFO_REDIRECT_URL (int)
CURLINFO_PRIMARY_IP (int)
CURLINFO_PRIMARY_PORT (int)
CURLINFO_LOCAL_IP (int)
CURLINFO_LOCAL_PORT (int)
CURL_PUSH_OK (int)
Disponible à partir de PHP 7.1.0 et cURL 7.44.0
CURL_PUSH_DENY (int)
Disponible à partir de PHP 7.1.0 et cURL 7.44.0
CURL_REDIR_POST_301 (int)
Disponible à partir de PHP 7.0.7 et cURL 7.18.2
CURL_REDIR_POST_302 (int)
Disponible à partir de PHP 7.0.7 et cURL 7.18.2
CURL_REDIR_POST_303 (int)
Disponible à partir de PHP 7.0.7 et cURL 7.25.1
CURL_REDIR_POST_ALL (int)
Disponible à partir de PHP 7.0.7 et cURL 7.18.2
CURL_TIMECOND_NONE (int)
CURL_TIMECOND_IFMODSINCE (int)
CURL_TIMECOND_IFUNMODSINCE (int)
CURL_TIMECOND_LASTMOD (int)
CURL_VERSION_ALTSVC (int)
Disponible à partir de PHP 7.3.6 et cURL 7.64.1
CURL_VERSION_ASYNCHDNS (int)
Résout le DNS de façon asynchrone. Disponible à partir de PHP 7.3.0 et cURL 7.10.7
CURL_VERSION_BROTLI (int)
Disponible à partir de PHP PHP 7.3.0 et cURL 7.57.0
CURL_VERSION_CONV (int)
La conversion de caractères est supportée. Disponible à partir de PHP 7.3.0 et cURL 7.15.4
CURL_VERSION_CURLDEBUG (int)
Le traçage du débogage mémoire est supporté. Disponible à partir de PHP 7.3.6 et cURL 7.19.6
CURL_VERSION_DEBUG (int)
Compilé avec les capacités de débogage. Disponible à partir de PHP 7.3.0 et cURL 7.10.6
CURL_VERSION_GSASL (int)
Disponible à partir de PHP 8.2.0 et cURL 7.76.0
CURL_VERSION_GSSAPI (int)
Compilé contre une bibliothèque GSS-API. Disponible à partir de PHP 7.3.0 et cURL 7.38.0
CURL_VERSION_GSSNEGOTIATE (int)
L'authentification negotiate est supportée. Disponible à partir de PHP 7.3.0 et cURL 7.10.6 (obsolète à partir de 7.38.0)
CURL_VERSION_HSTS (int)
Disponible à partir de PHP 8.2.0 et cURL 7.74.0
CURL_VERSION_IDN (int)
Les Internationized Domain Names sont supportés. Disponible à partir de PHP 7.3.0 et cURL 7.12.0
CURL_VERSION_MULTI_SSL (int)
Disponible à partir de PHP 7.3.0 et cURL 7.56.0
CURL_VERSION_NTLM (int)
L'authentification NTLM est supportée. Disponible à partir de PHP 7.3.0 et cURL 7.10.6
CURL_VERSION_NTLM_WB (int)
Disponible à partir de PHP 7.3.0 et cURL 7.22.0
CURL_VERSION_IPV6 (int)
IPv6 est activé.
CURL_VERSION_KERBEROS4 (int)
L'authentification Kerberos V4 est supportée.
CURL_VERSION_KERBEROS5 (int)
L'authentification Kerberos V5 est supportée. Disponible à partir de PHP 7.0.7 et cURL 7.40.0
CURL_VERSION_HTTP2 (int)
Support HTTP2 intégré. Disponible à partir de cURL 7.33.0
CURL_VERSION_HTTP3 (int)
Disponible à partir de PHP 8.2.0 et cURL 7.66.0
CURL_VERSION_LARGEFILE (int)
Supporte les fichiers plus large que 2 Go Disponible à partir de cURL 7.33.0
CURL_VERSION_PSL (int)
Le Public Suffix List de Mozilla, utilisé pour la vérification de domaine de cookie Disponible à partir de PHP 7.3.6 et cURL 7.47.0
CURL_VERSION_SPNEGO (int)
L'authentification SPNEGO est supportée. Disponible à partir de PHP 7.3.0 et cURL 7.10.8
CURL_VERSION_SSPI (int)
Compilé contre Windows SSPI. Disponible à partir de PHP 7.3.0 et cURL 7.13.2
CURL_VERSION_SSL (int)
Les options SSL sont présent.
CURL_VERSION_TLSAUTH_SRP (int)
L'authentification TLS-SRP est supportée. Disponible à partir de PHP 7.3.0 et cURL 7.21.4
CURL_VERSION_UNICODE (int)
Disponible à partir de PHP 8.2.0 et cURL 7.72.0
CURL_VERSION_UNIX_SOCKETS (int)
Support des sockets de domaine Unix. Disponible à partir de PHP 7.0.7 et cURL 7.40.0
CURL_VERSION_ZSTD (int)
Disponible à partir de PHP 8.2.0 et cURL 7.72.0
CURL_VERSION_LIBZ (int)
Les fonctionnalités libz sont présent.
CURLVERSION_NOW (int)
CURLE_OK (int)
CURLE_UNSUPPORTED_PROTOCOL (int)
CURLE_FAILED_INIT (int)
CURLE_URL_MALFORMAT (int)
CURLE_URL_MALFORMAT_USER (int)
CURLE_COULDNT_RESOLVE_PROXY (int)
CURLE_COULDNT_RESOLVE_HOST (int)
CURLE_COULDNT_CONNECT (int)
CURLE_FTP_WEIRD_SERVER_REPLY (int)
CURLE_FTP_ACCESS_DENIED (int)
CURLE_FTP_USER_PASSWORD_INCORRECT (int)
CURLE_FTP_WEIRD_PASS_REPLY (int)
CURLE_FTP_WEIRD_USER_REPLY (int)
CURLE_FTP_WEIRD_PASV_REPLY (int)
CURLE_FTP_WEIRD_227_FORMAT (int)
CURLE_FTP_CANT_GET_HOST (int)
CURLE_FTP_CANT_RECONNECT (int)
CURLE_FTP_COULDNT_SET_BINARY (int)
CURLE_PARTIAL_FILE (int)
CURLE_PROXY (int)
Disponible à partir de PHP 8.2.0 et cURL 7.73.0
CURLE_FTP_COULDNT_RETR_FILE (int)
CURLE_FTP_WRITE_ERROR (int)
CURLE_FTP_QUOTE_ERROR (int)
CURLE_HTTP_NOT_FOUND (int)
CURLE_WRITE_ERROR (int)
CURLE_MALFORMAT_USER (int)
CURLE_FTP_COULDNT_STOR_FILE (int)
CURLE_READ_ERROR (int)
CURLE_OUT_OF_MEMORY (int)
CURLE_OPERATION_TIMEOUTED (int)
CURLE_FTP_COULDNT_SET_ASCII (int)
CURLE_FTP_PORT_FAILED (int)
CURLE_FTP_COULDNT_USE_REST (int)
CURLE_FTP_COULDNT_GET_SIZE (int)
CURLE_HTTP_RANGE_ERROR (int)
CURLE_HTTP_POST_ERROR (int)
CURLE_SSL_CONNECT_ERROR (int)
CURLE_FTP_BAD_DOWNLOAD_RESUME (int)
CURLE_FILE_COULDNT_READ_FILE (int)
CURLE_LDAP_CANNOT_BIND (int)
CURLE_LDAP_SEARCH_FAILED (int)
CURLE_LIBRARY_NOT_FOUND (int)
CURLE_FUNCTION_NOT_FOUND (int)
CURLE_ABORTED_BY_CALLBACK (int)
CURLE_BAD_FUNCTION_ARGUMENT (int)
CURLE_BAD_CALLING_ORDER (int)
CURLE_HTTP_PORT_FAILED (int)
CURLE_BAD_PASSWORD_ENTERED (int)
CURLE_TOO_MANY_REDIRECTS (int)
CURLE_UNKNOWN_TELNET_OPTION (int)
CURLE_TELNET_OPTION_SYNTAX (int)
CURLE_OBSOLETE (int)
CURLE_SSL_PEER_CERTIFICATE (int)
CURLE_GOT_NOTHING (int)
CURLE_SSL_ENGINE_NOTFOUND (int)
CURLE_SSL_ENGINE_SETFAILED (int)
CURLE_SEND_ERROR (int)
CURLE_RECV_ERROR (int)
CURLE_SHARE_IN_USE (int)
CURLE_SSL_CERTPROBLEM (int)
CURLE_SSL_CIPHER (int)
CURLE_SSL_CACERT (int)
CURLE_BAD_CONTENT_ENCODING (int)
CURLE_LDAP_INVALID_URL (int)
CURLE_FILESIZE_EXCEEDED (int)
CURLE_FTP_SSL_FAILED (int)
CURLE_SSH (int)
Disponible à partir de cURL 7.16.1.
CURLFTPAUTH_DEFAULT (int)
CURLFTPAUTH_SSL (int)
CURLFTPAUTH_TLS (int)
CURLPROXY_HTTP (int)
Disponible à partir de cURL 7.10.
CURLPROXY_HTTP_1_0 (int)
Disponible à partir de PHP 7.0.7 et cURL 7.19.3
CURLPROXY_SOCKS4 (int)
Disponible à partir de cURL 7.10.
CURLPROXY_SOCKS5 (int)
Disponible à partir de cURL 7.10.
CURL_NETRC_OPTIONAL (int)
CURL_NETRC_IGNORED (int)
CURL_NETRC_REQUIRED (int)
CURL_HTTP_VERSION_NONE (int)
CURL_HTTP_VERSION_1_0 (int)
CURL_HTTP_VERSION_1_1 (int)
CURL_HTTP_VERSION_2 (int)
Disponible à partir de PHP 7.0.7 et cURL 7.43.0
CURL_HTTP_VERSION_2_0 (int)
Disponible à partir de cURL 7.33.0
CURL_HTTP_VERSION_2TLS (int)
Disponible à partir de PHP 7.0.7 et cURL 7.47.0
CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE (int)
Disponible à partir de PHP 7.0.7 et cURL 7.49.0
CURLM_CALL_MULTI_PERFORM (int)
CURLM_OK (int)
CURLM_BAD_HANDLE (int)
CURLM_BAD_EASY_HANDLE (int)
CURLM_OUT_OF_MEMORY (int)
CURLM_INTERNAL_ERROR (int)
CURLMSG_DONE (int)
CURLOPT_KEYPASSWD (int)
CURLOPT_SSH_AUTH_TYPES (int)
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 (int)
CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256 (int)
Disponible à partir de PHP 8.2.0 et cURL 7.80.0
CURLOPT_SSH_HOSTKEYFUNCTION (int)
Disponible à partir de PHP 8.3.0 et cURL 7.84.0
CURLOPT_SSH_PRIVATE_KEYFILE (int)
CURLOPT_SSH_PUBLIC_KEYFILE (int)
CURLOPT_SSL_OPTIONS (int)
Disponible à partir de cURL 7.25.0
CURLSSLOPT_ALLOW_BEAST (int)
Disponible à partir de cURL 7.25.0
CURLSSLOPT_NO_REVOKE (int)
Disponible à partir de PHP 7.0.7 et cURL 7.44.0
CURLSSLOPT_AUTO_CLIENT_CERT (int)
Disponible à partir de PHP 8.2.0 et cURL 7.77.0
CURLSSLOPT_NATIVE_CA (int)
Disponible à partir de PHP 8.2.0 et cURL 7.71.0
CURLSSLOPT_NO_PARTIALCHAIN (int)
Disponible à partir de PHP 8.2.0 et cURL 7.68.0
CURLSSLOPT_REVOKE_BEST_EFFORT (int)
Disponible à partir de PHP 8.2.0 et cURL 7.70.0
CURLOPT_USERNAME (int)
Disponible à partir de cURL 7.19.1
CURLOPT_SASL_AUTHZID (int)
Disponible à partir de PHP 8.2.0 et cURL 7.66.0
CURLOPT_SASL_IR (int)
Disponible à partir de PHP 7.0.7 et cURL 7.31.0
CURLOPT_DNS_INTERFACE (int)
Disponible à partir de PHP 7.0.7 et cURL 7.33.0
CURLOPT_DNS_LOCAL_IP4 (int)
Disponible à partir de PHP 7.0.7 et cURL 7.33.0
CURLOPT_DNS_LOCAL_IP6 (int)
Disponible à partir de PHP 7.0.7 et cURL 7.33.0
CURLOPT_XOAUTH2_BEARER (int)
Disponible à partir de PHP 7.0.7 et cURL 7.33.0
CURLOPT_LOGIN_OPTIONS (int)
Disponible à partir de PHP 7.0.7 et cURL 7.34.0
CURLOPT_EXPECT_100_TIMEOUT_MS (int)
Disponible à partir de PHP 7.0.7 et cURL 7.36.0
CURLOPT_SSL_ENABLE_ALPN (int)
Disponible à partir de PHP 7.0.7 et cURL 7.36.0
CURLOPT_SSL_ENABLE_NPN (int)
Disponible à partir de PHP 7.0.7 et cURL 7.36.0
CURLOPT_PINNEDPUBLICKEY (int)
Disponible à partir de PHP 7.0.7 et cURL 7.39.0
CURLOPT_UNIX_SOCKET_PATH (int)
Disponible à partir de PHP 7.0.7 et cURL 7.40.0
CURLOPT_SSL_VERIFYSTATUS (int)
Disponible à partir de PHP 7.0.7 et cURL 7.41.0
CURLOPT_PATH_AS_IS (int)
Disponible à partir de PHP 7.0.7 et cURL 7.42.0
CURLOPT_SSL_FALSESTART (int)
Disponible à partir de PHP 7.0.7 et cURL 7.42.0
CURLOPT_PIPEWAIT (int)
Disponible à partir de PHP 7.0.7 et cURL 7.43.0
CURLOPT_PROTOCOLS_STR (int)
Available as of PHP 8.3.0 and cURL 7.85.0
CURLOPT_PROXY_SERVICE_NAME (int)
Disponible à partir de PHP 7.0.7 et cURL 7.43.0
CURLOPT_SERVICE_NAME (int)
Disponible à partir de PHP 7.0.7 et cURL 7.43.0
CURLOPT_DEFAULT_PROTOCOL (int)
Disponible à partir de PHP 7.0.7 et cURL 7.45.0
CURLOPT_STREAM_WEIGHT (int)
Disponible à partir de PHP 7.0.7 et cURL 7.46.0
CURLOPT_TFTP_NO_OPTIONS (int)
Disponible à partir de PHP 7.0.7 et cURL 7.48.0
CURLOPT_CONNECT_TO (int)
Disponible à partir de PHP 7.0.7 et cURL 7.49.0
CURLOPT_TCP_FASTOPEN (int)
Disponible à partir de PHP 7.0.7 et cURL 7.49.0
CURLOPT_TCP_KEEPALIVE (int)
Disponible à partir de cURL 7.25.0
CURLOPT_TCP_KEEPIDLE (int)
Disponible à partir de cURL 7.25.0
CURLOPT_TCP_KEEPINTVL (int)
Disponible à partir de cURL 7.25.0
CURLMOPT_PIPELINING (int)
Disponible à partir de cURL 7.16.0.
CURLMOPT_MAXCONNECTS (int)
Disponible à partir de cURL 7.16.3.
CURLMOPT_MAX_CONCURRENT_STREAMS (int)
Disponible à partir de PHP 8.2.0 et cURL 7.67.0.
CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE (int)
Disponible à partir de PHP 7.0.7 et cURL 7.30.0
CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE (int)
Disponible à partir de PHP 7.0.7 et cURL 7.30.0
CURLMOPT_MAX_HOST_CONNECTIONS (int)
Disponible à partir de PHP 7.0.7 et cURL 7.30.0
CURLMOPT_MAX_PIPELINE_LENGTH (int)
Disponible à partir de PHP 7.0.7 et cURL 7.30.0
CURLMOPT_MAX_TOTAL_CONNECTIONS (int)
Disponible à partir de PHP 7.0.7 et cURL 7.30.0
CURLMOPT_PUSHFUNCTION (int)
Disponible à partir de PHP 7.1.0 et cURL 7.44.0
CURLSSH_AUTH_AGENT (int)
Disponible à partir de PHP 7.0.7 et cURL 7.28.0
CURLSSH_AUTH_ANY (int)
CURLSSH_AUTH_DEFAULT (int)
CURLSSH_AUTH_HOST (int)
CURLSSH_AUTH_KEYBOARD (int)
CURLSSH_AUTH_NONE (int)
CURLSSH_AUTH_PASSWORD (int)
CURLSSH_AUTH_PUBLICKEY (int)
CURLPAUSE_ALL (int)
Disponible à partir de cURL 7.18.0.
CURLPAUSE_CONT (int)
Disponible à partir de cURL 7.18.0.
CURLPAUSE_RECV (int)
Disponible à partir de cURL 7.18.0.
CURLPAUSE_RECV_CONT (int)
Disponible à partir de cURL 7.18.0.
CURLPAUSE_SEND (int)
Disponible à partir de cURL 7.18.0.
CURLPAUSE_SEND_CONT (int)
Disponible à partir de cURL 7.18.0.
CURLPIPE_NOTHING (int)
Disponible à partir de cURL 7.43.0.
CURLPIPE_HTTP1 (int)
Disponible à partir de cURL 7.43.0.
CURLPIPE_MULTIPLEX (int)
Disponible à partir de cURL 7.43.0.
CURLPROXY_SOCKS4A (int)
Disponible à partir de cURL 7.18.0.
CURLPROXY_SOCKS5_HOSTNAME (int)
Disponible à partir de cURL 7.18.0.
CURLHEADER_SEPARATE (int)
Disponible à partir de PHP 7.0.7 et cURL 7.37.0.
CURLHEADER_UNIFIED (int)
Disponible à partir de PHP 7.0.7 et cURL 7.37.0.
CURLPROTO_SMB (int)
Disponible à partir de PHP 7.0.7 et cURL 7.40.0.
CURLPROTO_SMBS (int)
Disponible à partir de PHP 7.0.7 et cURL 7.40.0.
CURLPROTO_MQTT (int)
Disponible à partir de PHP 8.2.0 et cURL 7.71.0.
CURLOPT_REDIR_PROTOCOLS_STR (int)
Disponible à partir de PHP 8.3.0 et cURL 7.85.0.
CURLOPT_REQUEST_TARGET (int)
Disponible à partir de PHP 7.3.0 et cURL 7.55.0.
CURLAUTH_GSSAPI (int)
Disponible à partir de PHP 7.3.0 et cURL 7.54.1
CURLE_WEIRD_SERVER_REPLY (int)
Disponible à partir de PHP 7.3.0 et cURL 7.51.0
CURLINFO_CONTENT_LENGTH_DOWNLOAD_T (int)
Disponible à partir de PHP 7.3.0 et cURL 7.55.0
CURLINFO_CONTENT_LENGTH_UPLOAD_T (int)
Disponible à partir de PHP 7.3.0 et cURL 7.55.0
CURLINFO_HTTP_VERSION (int)
Disponible à partir de PHP 7.3.0 et cURL 7.50.0
CURLINFO_PROTOCOL (int)
Disponible à partir de PHP 7.3.0 et cURL 7.52.0
CURLINFO_PROXY_SSL_VERIFYRESULT (int)
Disponible à partir de PHP 7.3.0 et cURL 7.52.0
CURLINFO_SCHEME (int)
Disponible à partir de PHP 7.3.0 et cURL 7.52.0
CURLINFO_SIZE_DOWNLOAD_T (int)
Disponible à partir de PHP 7.3.0 et cURL 7.50.0
CURLINFO_SIZE_UPLOAD_T (int)
Disponible à partir de PHP 7.3.0 et cURL 7.50.0
CURLINFO_SPEED_DOWNLOAD_T (int)
Disponible à partir de PHP 7.3.0 et cURL 7.50.0
CURLINFO_SPEED_UPLOAD_T (int)
Disponible à partir de PHP 7.3.0 et cURL 7.50.0
CURL_MAX_READ_SIZE (int)
Disponible à partir de PHP 7.3.0 et cURL 7.53.0
CURLOPT_ABSTRACT_UNIX_SOCKET (int)
Disponible à partir de PHP 7.3.0 et cURL 7.53.0
CURLOPT_KEEP_SENDING_ON_ERROR (int)
Disponible à partir de PHP 7.3.0 et cURL 7.51.0
CURLOPT_PRE_PROXY (int)
Disponible à partir de PHP 7.3.0 et cURL 7.52.0
CURLOPT_PROXY_CAINFO (int)
Disponible à partir de PHP 7.3.0 et cURL 7.52.0
CURLOPT_PROXY_CAINFO_BLOB (int)
Disponible à partir de PHP 8.2.0 et cURL 7.77.0
CURLOPT_PROXY_CAPATH (int)
Disponible à partir de PHP 7.3.0 et cURL 7.52.0
CURLOPT_PROXY_CRLFILE (int)
Disponible à partir de PHP 7.3.0 et cURL 7.52.0
CURLOPT_PROXY_KEYPASSWD (int)
Disponible à partir de PHP 7.3.0 et cURL 7.52.0
CURLOPT_PROXY_PINNEDPUBLICKEY (int)
Disponible à partir de PHP 7.3.0 et cURL 7.52.0
CURLOPT_PROXY_SSLCERT (int)
Disponible à partir de PHP 7.3.0 et cURL 7.52.0
CURLOPT_PROXY_SSLCERTTYPE (int)
Disponible à partir de PHP 7.3.0 et cURL 7.52.0
CURLOPT_PROXY_SSL_CIPHER_LIST (int)
Disponible à partir de PHP 7.3.0 et cURL 7.52.0
CURLOPT_PROXY_SSLKEY (int)
Disponible à partir de PHP 7.3.0 et cURL 7.52.0
CURLOPT_PROXY_SSLKEYTYPE (int)
Disponible à partir de PHP 7.3.0 et cURL 7.52.0
CURLOPT_PROXY_SSL_OPTIONS (int)
Disponible à partir de PHP 7.3.0 et cURL 7.52.0
CURLOPT_PROXY_SSL_VERIFYHOST (int)
Disponible à partir de PHP 7.3.0 et cURL 7.52.0
CURLOPT_PROXY_SSL_VERIFYPEER (int)
Disponible à partir de PHP 7.3.0 et cURL 7.52.0
CURLOPT_PROXY_SSLVERSION (int)
Disponible à partir de PHP 7.3.0 et cURL 7.52.0
CURLOPT_PROXY_TLSAUTH_PASSWORD (int)
Disponible à partir de PHP 7.3.0 et cURL 7.52.0
CURLOPT_PROXY_TLSAUTH_TYPE (int)
Disponible à partir de PHP 7.3.0 et cURL 7.52.0
CURLOPT_PROXY_TLSAUTH_USERNAME (int)
Disponible à partir de PHP 7.3.0 et cURL 7.52.0
CURLOPT_SOCKS5_AUTH (int)
Disponible à partir de PHP 7.3.0 et cURL 7.55.0
CURLOPT_SUPPRESS_CONNECT_HEADERS (int)
Disponible à partir de PHP 7.3.0 et cURL 7.54.0
CURLPROXY_HTTPS (int)
Disponible à partir de PHP 7.3.0 et cURL 7.52.0
CURL_SSLVERSION_MAX_DEFAULT (int)
Disponible à partir de PHP 7.3.0 et cURL 7.54.0
CURL_SSLVERSION_MAX_NONE (int)
Disponible à partir de PHP 7.3.0 et cURL 7.54.0
CURL_SSLVERSION_MAX_TLSv1_0 (int)
Disponible à partir de PHP 7.3.0 et cURL 7.54.0
CURL_SSLVERSION_MAX_TLSv1_1 (int)
Disponible à partir de PHP 7.3.0 et cURL 7.54.0
CURL_SSLVERSION_MAX_TLSv1_2 (int)
Disponible à partir de PHP 7.3.0 et cURL 7.54.0
CURL_SSLVERSION_MAX_TLSv1_3 (int)
Disponible à partir de PHP 7.3.0 et cURL 7.54.0
CURL_SSLVERSION_TLSv1_3 (int)
Disponible à partir de PHP 7.3.0 et cURL 7.52.0
CURL_VERSION_HTTPS_PROXY (int)
Disponible à partir de PHP 7.3.0 et cURL 7.52.0
CURLAUTH_BEARER (int)
Disponible à partir de PHP 7.3.0 et cURL 7.61.0.
CURLINFO_APPCONNECT_TIME_T (int)
Disponible à partir de PHP 7.3.0 et cURL 7.61.0
CURLINFO_CONNECT_TIME_T (int)
Disponible à partir de PHP 7.3.0 et cURL 7.61.0
CURLINFO_FILETIME_T (int)
Disponible à partir de PHP 7.3.0 et cURL 7.59.0
CURLINFO_NAMELOOKUP_TIME_T (int)
Disponible à partir de PHP 7.3.0 et cURL 7.61.0
CURLINFO_PRETRANSFER_TIME_T (int)
Disponible à partir de PHP 7.3.0 et cURL 7.61.0
CURLINFO_REDIRECT_TIME_T (int)
Disponible à partir de PHP 7.3.0 et cURL 7.61.0
CURLINFO_STARTTRANSFER_TIME_T (int)
Disponible à partir de PHP 7.3.0 et cURL 7.61.0
CURLINFO_TOTAL_TIME_T (int)
Disponible à partir de PHP 7.3.0 et cURL 7.61.0
CURL_LOCK_DATA_CONNECT (int)
Disponible à partir de PHP 7.3.0 et cURL 7.10.0
CURL_LOCK_DATA_PSL (int)
Disponible à partir de PHP 7.3.0 et cURL 7.61.0
CURLOPT_DISALLOW_USERNAME_IN_URL (int)
Disponible à partir de PHP 7.3.0 and cURL 7.61.0
CURLOPT_DNS_SHUFFLE_ADDRESSES (int)
Disponible à partir de PHP 7.3.0 et cURL 7.60.0
CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS (int)
Disponible à partir de PHP 7.3.0 and cURL 7.59.0
CURLOPT_HAPROXYPROTOCOL (int)
Disponible à partir de PHP 7.3.0 et cURL 7.60.0
CURLOPT_PROXY_TLS13_CIPHERS (int)
Disponible à partir de PHP 7.3.0 et cURL 7.61.0
CURLOPT_SSH_COMPRESSION (int)
Disponible à partir de PHP 7.3.0 et cURL 7.56.0
CURLOPT_TIMEVALUE_LARGE (int)
Disponible à partir de PHP 7.3.0 et cURL 7.59.0
CURLOPT_TLS13_CIPHERS (int)
Disponible à partir de PHP 7.3.0 et cURL 7.61.0
CURLSSH_AUTH_GSSAPI (int)
Disponible à partir de PHP 7.3.0 et cURL 7.58.0
CURLOPT_HTTP09_ALLOWED (int)
Disponible respectivement à partir de PHP 7.3.15 and 7.4.3 et cURL 7.64.0
CURLMIMEOPT_FORMESCAPE (int)
Disponible à partir de PHP 8.3.0 et cURL 7.81.0
CURLWS_RAW_MODE (int)
Disponible à partir de PHP 8.3.0 et cURL 7.86.0
CURLKHMATCH_OK (int)
Disponible à partir de PHP 8.3.0 et cURL 7.19.6
CURLKHMATCH_MISMATCH (int)
Disponible à partir de PHP 8.3.0 et cURL 7.19.6
CURLKHMATCH_MISSING (int)
Disponible à partir de PHP 8.3.0 et cURL 7.19.6
CURLKHMATCH_LAST (int)
Disponible à partir de PHP 8.3.0 et cURL 7.19.6


  • « 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);
if(curl_error($ch)) {
fwrite($fp, curl_error($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_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_errno — Retourne le dernier numéro d'erreur multiple 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 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_errno — Retourne le dernier numéro d'erreur du gestionnaire partagé cURL
  • curl_share_init — Initialise un gestionnaire partagé cURL
  • curl_share_setopt — Définit une option du gestionnaire partagé cURL
  • curl_share_strerror — Retourne une chaîne qui décrit le code d'erreur fournit
  • curl_strerror — Retourne la chaîne descriptive du code erreur fourni
  • curl_unescape — Décode l'URL fourni
  • curl_upkeep — Effectue les contrôles de maintenance de la connexion
  • 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, PHP 8)

curl_close — Ferme une session CURL

Description

curl_close(CurlHandle $handle): void

Note:

Cette fonction n'a aucun effet. Antérieur à PHP 8.0.0, cette fonction était utilisé pour fermer une ressource.

Ferme une session cURL et libère toutes les ressources réservées. L'identifiant cURL handle est aussi effacé.

Liste de paramètres

handle

Un gestionnaire cURL retourné par curl_init().

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version | Description
8.0.0 | handle attend désormais une instance de CurlHandle; auparavant; une resource était attendue.

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, PHP 8)

curl_copy_handle — Copie une ressource cURL avec toutes ses préférences

Description

curl_copy_handle(CurlHandle $handle): CurlHandle|false

Copie une ressource cURL, retournant une nouvelle ressource cURL avec les mêmes préférences.

Liste de paramètres

handle

Un gestionnaire cURL retourné par curl_init().

Valeurs de retour

Retourne une nouvelle ressource cURL, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | handle attend désormais une instance de CurlHandle; auparavant; une resource était attendue.
8.0.0 | En cas de succès, cette fonction retourne désormais une instance de CurlHandle; auparavant uneresource était retourné.

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, PHP 8)

curl_errno — Retourne le dernier message d'erreur cURL

Description

curl_errno(CurlHandle $handle): int

Retourne le numéro d'erreur de la dernière opération cURL.

Liste de paramètres

handle

Un gestionnaire cURL retourné par curl_init().

Valeurs de retour

Retourne le numéro de l'erreur ou 0 si aucune erreur n'est survenue.

Historique

Version | Description
8.0.0 | handle attend désormais une instance de CurlHandle; auparavant; une resource était attendue.

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, PHP 8)

curl_error — Retourne une chaîne contenant le dernier message d'erreur cURL

Description

curl_error(CurlHandle $handle): string

Retourne un message clair représentant la dernière erreur cURL.

Liste de paramètres

handle

Un gestionnaire cURL retourné par curl_init().

Valeurs de retour

Retourne le message d'erreur ou '' (chaîne vide) si aucune erreur n'est survenue.

Historique

Version | Description
8.0.0 | handle attend désormais une instance de CurlHandle; auparavant; une resource était attendue.

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, PHP 8)

curl_escape — Encode URL la chaîne fournie

Description

curl_escape(CurlHandle $handle, string $string): string|false

Cette fonction URL-encode la chaîne fournie suivant la » RFC 3986.

Liste de paramètres

handle

Un gestionnaire cURL retourné par curl_init().

string

La chaîne à encoder.

Valeurs de retour

Retourne la chaîne encodée ou false si une erreur survient.

Historique

Version | Description
8.0.0 | handle attend désormais une instance de CurlHandle; auparavant; une resource était attendue.

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_getinfo »
  • PHP Manual
  • Fonctions cURL
  • Exécute une session cURL

curl_exec

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

curl_exec — Exécute une session cURL

Description

curl_exec(CurlHandle $handle): string|bool

Exécute la session cURL fournie.

Cette fonction doit être appelée après l'initialisation et le paramétrage de la session cURL.

Liste de paramètres

handle

Un gestionnaire cURL retourné par 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 en cas d'échec.

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:

Notez que les codes de status d'une réponse qui indiquent des erreurs (tel que 404 Not found) ne sont pas considérés comme des échecs. curl_getinfo() peut être utilisé pour vérifier ces cas.

Historique

Version | Description
8.0.0 | handle attend désormais une instance de CurlHandle; auparavant; une resource était attendue.

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 navigateur
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


Lit les informations détaillant un transfert cURL

  • « curl_exec
  • 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, PHP 8)

curl_getinfo — Lit les informations détaillant un transfert cURL

Description

curl_getinfo(CurlHandle $handle, ?int $option = null): mixed

curl_getinfo() lit les informations concernant le transfert handle.

Liste de paramètres

handle

Un gestionnaire cURL retourné par curl_init().

option

Ce paramètre peut prendre l'une des valeurs suivantes :

Option | Description
CURLINFO_CAINFO | Chemin d'accès par défaut du certificat CA intégré
CURLINFO_CAPATH | Chaîne de chemin d'accès CA intégré par défaut
CURLINFO_EFFECTIVE_URL | Dernière URL effective
CURLINFO_HTTP_CODE | Le dernier code de réponse. À partir de cURL 7.10.8, ceci est un alias hérité de CURLINFO_RESPONSE_CODE
CURLINFO_FILETIME | Date distante du document récupéré, avec CURLOPT_FILETIME activé ; si -1 est retourné 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_REFERER | L'en-tête referrer
CURLINFO_REQUEST_SIZE | Taille totale des requêtes envoyées. Actuellement, uniquement pour les requêtes HTTP
CURLINFO_RETRY_AFTER | L'information de l'en-tête Retry-After:, ou zéro s'il n'y a pas d'en-tête valide.
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()
CURLINFO_PROXY_ERROR | Le code d'erreur détaillé du proxy quand le transfert le plus récent a retourné une erreur CURLE_PROXY. La valeur de retour sera exactement une des valeurs parmi CURLPX_*. Le code d'erreur sera CURLPX_OK si aucun code de réponse est disponible.
CURLINFO_RESPONSE_CODE | Le dernier code de réponse
CURLINFO_HTTP_CONNECTCODE | Le code réponse CONNECT
CURLINFO_HTTPAUTH_AVAIL | Masque binaire indiquant la(/les) méthode(s) d'authentification disponbile en accord avec la réponse précédente
CURLINFO_PROXYAUTH_AVAIL | Masque binaire indiquant la(/les) méthode(s) d'authentification proxy disponbile en accord avec la réponse précédente
CURLINFO_OS_ERRNO | Errno depuis un échec de connexion. Le numéro est spécifique au système et à l'OP.
CURLINFO_NUM_CONNECTS | Nombre de connexion curl a dû créer pour achever le transfert précédent
CURLINFO_SSL_ENGINES | Moteur-crypto OpenSSL supporté
CURLINFO_COOKIELIST | Tous les cookies connue
CURLINFO_FTP_ENTRY_PATH | Chemin d'entrée dans un serveur FTP
CURLINFO_APPCONNECT_TIME | Temps en seconde qu'il ait fallu depuis le début jusqu'à ce que la connexion/poignée de main SSL/SSH à l'hôte distant a été complété.
CURLINFO_CERTINFO | Chaîne de certificats TLS
CURLINFO_CONDITION_UNMET | Info sur le temps conditionel non satisfait
CURLINFO_RTSP_CLIENT_CSEQ | Prochain client RTSP CSeq
CURLINFO_RTSP_CSEQ_RECV | Récemment reçu CSeq
CURLINFO_RTSP_SERVER_CSEQ | Prochain serveur RTSP CSeq
CURLINFO_RTSP_SESSION_ID | ID de session RTSP
CURLINFO_CONTENT_LENGTH_DOWNLOAD_T | Le content-length du téléchargement. Cette valeur est lu depuis le champ Content-Length:. -1 si la taille est inconnue
CURLINFO_CONTENT_LENGTH_UPLOAD_T | La taille spécifié pour le téléversment. -1 si la taille est inconnue
CURLINFO_HTTP_VERSION | La version utilisé lors de la dernière connexion HTTP. La valeur de retour sera l'une des constantes CURL_HTTP_VERSION_* définie, ou 0 si la version ne peut être déterminée
CURLINFO_PROTOCOL | Le protocole utilisé lors de la dernière connexion HTTP. La valeur retourné sera exactement l'une des valeur CURLPROTO_*
CURLINFO_PROXY_SSL_VERIFYRESULT | Le résultat de la vérification de certificat qui a été demandé (utilisant l'option CURLOPT_PROXY_SSL_VERIFYPEER). Utilisé seulement pour les proxies HTTPS
CURLINFO_SCHEME | La schéma de l'URL utilisé pour la connexion la plus récente
CURLINFO_SIZE_DOWNLOAD_T | Nombre total d'octets qui ont été téléchargé. Le nombre est uniquement pour le dernier transfer et sera réinitiallisé denouveau pour chaque nouveau transfer
CURLINFO_SIZE_UPLOAD_T | Nombre total d'octets qui ont été téléversé
CURLINFO_SPEED_DOWNLOAD_T | La vitesse de téléchargement moyenne en octet/seconde que curl a mesuré pour le téléchargement complet
CURLINFO_SPEED_UPLOAD_T | La vitesse de téléchargement moyenne en octet/seconde que curl a mesuré pour le téléversement complet
CURLINFO_APPCONNECT_TIME_T | Temps, en microseconde, qu'il a prit entre le début jusqu'à ce que la connexion/poignée de main SSL/SSH à l'hôte distant a été complété
CURLINFO_CONNECT_TIME_T | Temps total pris, en microsecondes, depuis le début jusqu'à ce que la connexion à l'hôte distant (ou proxy) a été complété
CURLINFO_FILETIME_T | Temps distant du document récupéré (en tant qu'horodatage Unix), une alternative à CURLINFO_FILETIME pour permettre aux systèmes avec des variables long 32 bits d'extraire les dates en dehors de l'intervalle 32bit de l'horodatage
CURLINFO_NAMELOOKUP_TIME_T | Temps en microsecondes depuis le début jusqu'à ce que la résolution de nom a été complété
CURLINFO_PRETRANSFER_TIME_T | Temps pris depuis le début jusqu'à ce que le transfer de fichier est sur le point de commencer, en microsecondes
CURLINFO_REDIRECT_TIME_T | Temps total, en microsecondes, prit pour que toutes les étapes de redirection, incluant la recherche de nom, connexion, pré-transfer et transfer avant que la transaction finale a été commencé
CURLINFO_STARTTRANSFER_TIME_T | Temps, en microsecondes, il a prit depuis le début jusqu'à ce que le premier octet a été reçu
CURLINFO_TOTAL_TIME_T | Temps total en microsecondes pour le transfer précédent, incluant la résolution de nom, connexion TCP, etc.

Valeurs de retour

Si option est fourni, la valeur sera retournée. Sinon, ce sera un tableau associatif contenant les éléments suivants (qui correspond à option), 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
8.3.0 | Introduit CURLINFO_CAINFO et CURLINFO_CAPATH.
8.2.0 | Introduction des nouvelles constantes CURLINFO_PROXY_ERROR, CURLINFO_REFERER, CURLINFO_RETRY_AFTER.
8.0.0 | handle attend désormais une instance de CurlHandle; auparavant; une resource était attendue.
8.0.0 | option est désormais nullable ; auparavant, la valeur par défaut était 0.
7.3.0 | Ajout de CURLINFO_CONTENT_LENGTH_DOWNLOAD_T, CURLINFO_CONTENT_LENGTH_UPLOAD_T, CURLINFO_HTTP_VERSION, CURLINFO_PROTOCOL, CURLINFO_PROXY_SSL_VERIFYRESULT, CURLINFO_SCHEME, CURLINFO_SIZE_DOWNLOAD_T, CURLINFO_SIZE_UPLOAD_T, CURLINFO_SPEED_DOWNLOAD_T, CURLINFO_SPEED_UPLOAD_T, CURLINFO_APPCONNECT_TIME_T, CURLINFO_CONNECT_TIME_T, CURLINFO_FILETIME_T, CURLINFO_NAMELOOKUP_TIME_T, CURLINFO_PRETRANSFER_TIME_T, CURLINFO_REDIRECT_TIME_T, CURLINFO_STARTTRANSFER_TIME_T, CURLINFO_TOTAL_TIME_T.

Exemples

Exemple #1 Exemple avec curl_getinfo()

<?php
// Création d'un gestionnaire cURL
$ch = curl_init('http://www.example.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);
?>

Exemple #2 Exemple de curl_getinfo() avec le paramètre option

<?php
// Création d'un gestionnaire cURL
$ch = curl_init('http://www.example.com/');

// Exécution
curl_exec($ch);

// Vérification du code d'état HTTP
if (!curl_errno($ch)) {
switch ($http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE)) {
case 200: # OK
break;
default:
echo 'Unexpected HTTP code: ', $http_code, "\n";
}
}

// Close handle
curl_close($ch);
?>

Notes

Note:

Les informations fournies 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, PHP 8)

curl_init — Initialise une session cURL

Description

curl_init(?string $url = null): CurlHandle|false

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.

Historique

Version | Description
8.0.0 | Cette fonction retourne désormais une instance de CurlHandle; auparavant, une resource était retournée.
8.0.0 | url est désormais nullable.

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, PHP 8)

curl_multi_add_handle — Ajoute une ressource cURL à un cURL multiple

Description

curl_multi_add_handle(CurlMultiHandle $multi_handle, CurlHandle $handle): int

Ajoute la session handle au gestionnaire multiple multi_handle

Liste de paramètres

multi_handle

Un gestionnaire cURL multiple retourné par curl_multi_init().

handle

Un gestionnaire cURL retourné par curl_init().

Valeurs de retour

Retourne 0 en cas de succès, ou un des codes erreurs CURLM_XXX.

Historique

Version | Description
8.0.0 | multi_handle attend désormais une instance de CurlMultiHandle; auparavant; une resource était attendue.
8.0.0 | handle attend désormais une instance de CurlHandle; auparavant; une resource était attendue.

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 cURL multiple
$mh = curl_multi_init();

// Ajoute les deux gestionnaires
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);

// Exécute le gestionnaire multiple
do {
$status = curl_multi_exec($mh, $active);
if ($active) {
curl_multi_select($mh);
}
} while ($active && $status == CURLM_OK);

// 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_errno »
  • PHP Manual
  • Fonctions cURL
  • Termine un jeu de sessions cURL

curl_multi_close

(PHP 5, PHP 7, PHP 8)

curl_multi_close — Termine un jeu de sessions cURL

Description

curl_multi_close(CurlMultiHandle $multi_handle): void

Note:

Cette fonction n'a aucun effet. Antérieur à PHP 8.0.0, cette fonction était utilisé pour fermer une ressource.

Ferme un jeu de gestionnaires cURL.

Liste de paramètres

multi_handle

Un gestionnaire cURL multiple retourné par curl_multi_init().

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version | Description
8.0.0 | multi_handle attend désormais une instance de CurlMultiHandle; auparavant; une resource était attendue.

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);

// Exécute le gestionnaire multiple
do {
$status = curl_multi_exec($mh, $active);
if ($active) {
curl_multi_select($mh);
}
} while ($active && $status == CURLM_OK);

// 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


Retourne le dernier numéro d'erreur multiple cURL

  • « curl_multi_close
  • curl_multi_exec »
  • PHP Manual
  • Fonctions cURL
  • Retourne le dernier numéro d'erreur multiple cURL

curl_multi_errno

(PHP 7 >= 7.1.0, PHP 8)

curl_multi_errno — Retourne le dernier numéro d'erreur multiple cURL

Description

curl_multi_errno(CurlMultiHandle $multi_handle): int

Retourne un entier contenant le dernier numéro d'erreur multiple cURL.

Liste de paramètres

multi_handle

Un gestionnaire cURL multiple retourné par curl_multi_init().

Valeurs de retour

Retourne un entier contenant le dernier numéro d'erreur multiple cURL.

Historique

Version | Description
8.0.0 | Cette fonction ne retourne plus false en cas d'échec.
8.0.0 | multi_handle attend désormais une instance de CurlMultiHandle; auparavant; une resource était attendue.

Voir aussi

  • curl_errno() - Retourne le dernier message d'erreur cURL


Exécute les sous-requêtes de la session cURL

  • « curl_multi_errno
  • curl_multi_getcontent »
  • PHP Manual
  • Fonctions cURL
  • Exécute les sous-requêtes de la session cURL

curl_multi_exec

(PHP 5, PHP 7, PHP 8)

curl_multi_exec — Exécute les sous-requêtes de la session cURL

Description

curl_multi_exec(CurlMultiHandle $multi_handle, int &$still_running): int

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

multi_handle

Un gestionnaire cURL multiple retourné par 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.

Historique

Version | Description
8.0.0 | multi_handle attend désormais une instance de CurlMultiHandle; auparavant; une resource était attendue.

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://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();

// Ajoute les deux gestionnaires
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);

// Exécute le gestionnaire multiple
do {
$status = curl_multi_exec($mh, $active);
if ($active) {
// Wait a short time for more activity
curl_multi_select($mh);
}
} while ($active && $status == CURLM_OK);

// 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, PHP 8)

curl_multi_getcontent — Retourne le contenu obtenu avec l'option CURLOPT_RETURNTRANSFER

Description

curl_multi_getcontent(CurlHandle $handle): ?string

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

handle

Un gestionnaire cURL retourné par curl_init().

Valeurs de retour

Retourne le contenu du gestionnaire cURL, si CURLOPT_RETURNTRANSFER est défini ou null si il ne l'est pas.

Historique

Version | Description
8.0.0 | handle attend désormais une instance de CurlHandle; auparavant; une resource était attendue.

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, PHP 8)

curl_multi_info_read — Lit les informations sur les transferts actuels

Description

curl_multi_info_read(CurlMultiHandle $multi_handle, int &$queued_messages = null): array|false

Appelle 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 queued_messages 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

multi_handle

Un gestionnaire cURL multiple retourné par curl_multi_init().

queued_messages

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é.

Historique

Version | Description
8.0.0 | multi_handle attend désormais une instance de CurlMultiHandle; auparavant; une resource était attendue.

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);
if ($active) {
curl_multi_select($mh);
}
while (false !== ($info = curl_multi_info_read($mh))) {
var_dump($info);
}
} while ($active && $status == CURLM_OK);

foreach ($urls as $i => $url) {
$res[$i] = curl_multi_getcontent($conn[$i]);
curl_close($conn[$i]);
}

var_dump(curl_multi_info_read($mh));

?>

Résultat de l'exemple ci-dessus est 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)

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, PHP 8)

curl_multi_init — Retourne un nouveau cURL multiple

Description

curl_multi_init(): CurlMultiHandle

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.

Historique

Version | Description
8.0.0 | Cette fonction retourne désormais une instance de CurlMultiHandle; auparavant, une resource était retournée.

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 cURL multiple
$mh = curl_multi_init();

// Ajoute les deux gestionnaires
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);

// Exécute le gestionnaire multiple
do {
$status = curl_multi_exec($mh, $active);
if ($active) {
curl_multi_select($mh);
}
} while ($active && $status == CURLM_OK);

// 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, PHP 8)

curl_multi_remove_handle — Retire une ressource cURL d'un cURL multiple

Description

curl_multi_remove_handle(CurlMultiHandle $multi_handle, CurlHandle $handle): int

Retire un gestionnaire handle donné du gestionnaire multi_handle. Lorsque le gestionnaire handle 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 handle en cours d'utilisation stoppe tous les transferts en cours.

Liste de paramètres

multi_handle

Un gestionnaire cURL multiple retourné par curl_multi_init().

handle

Un gestionnaire cURL retourné par curl_init().

Valeurs de retour

Retourne 0 en cas de succès, ou un des codes erreurs CURLM_XXX.

Historique

Version | Description
8.0.0 | multi_handle attend désormais une instance de CurlMultiHandle; auparavant; une resource était attendue.
8.0.0 | handle attend désormais une instance de CurlHandle; auparavant; une resource était attendue.

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, PHP 8)

curl_multi_select — Attend une activité sur n'importe quelle connexion curl_multi

Description

curl_multi_select(CurlMultiHandle $multi_handle, float $timeout = 1.0): int

Patiente tant qu'il y a de l'activité sur une des connexions curl_multi.

Liste de paramètres

multi_handle

Un gestionnaire cURL multiple retourné par 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).

Historique

Version | Description
8.0.0 | multi_handle attend désormais une instance de CurlMultiHandle; auparavant; une resource était attendue.

Voir aussi

  • curl_multi_init() - Retourne un nouveau cURL multiple


Définit une option multiple cURL

  • « curl_multi_select
  • curl_multi_strerror »
  • PHP Manual
  • Fonctions cURL
  • Définit une option multiple cURL

curl_multi_setopt

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

curl_multi_setopt — Définit une option multiple cURL

Description

curl_multi_setopt(CurlMultiHandle $multi_handle, int $option, mixed $value): bool

Définit une option sur le gestionnaire multi cURL donnée.

Liste de paramètres

multi_handle

Un gestionnaire cURL multiple retourné par curl_multi_init().

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 exis À partir de cURL 7.43.0, la valeur est un masque de bit, et il est possible de passer 2 pour tenter de multiplex le nouveau transfert via une connexion HTTP/2 existante si possible. Passer 3 ordonne à cURL de demander pour le pipelining et le multiplexing indépendant l'un de l'autre. À partir de cURL 7.62.0, définir le bit de pipelining n'a aucun effet. Au lieu d'entier litérals, les constantes CURLPIPE_* peuvent être utilisé si disponible.
CURLMOPT_MAXCONNECTS | Nombre maximal de connexions ouvertes simultanément que libcurl peut mettre en cache. Par défaut, la taille sera élargie pour rentrer quatre fois le nombre de gestionnaires ajouté grâce à curl_multi_add_handle(). Lorsque le cache est complet, curl ferme la plus ancienne connexion du cache, afin d'éviter que le nombre de connexions ouvertes n'augmente.
CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE | Passe un nombre qui définit le seuil de la longeur des tranches pour le pipelining en octets.
CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE | Passe un nombre qui définit le seuil de la taille pour les pénalités de pipelining en octets.
CURLMOPT_MAX_CONCURRENT_STREAMS | Le nombre défini sera utilisé comme le nombre maximal de flux simultanés pour une connexion que cURL devrait prendre en charge sur les connexions effectuées à l'aide de HTTP/2. Les valeurs valides vont de 1 à 2147483647 (2^31 - 1). La valeur transmise ici sera respectée en fonction des autres propriétés des ressources du système. La valeur par défaut est 100.
CURLMOPT_MAX_HOST_CONNECTIONS | Passe un nombre qui définit le nombre maximal de connexion à un hôte unique.
CURLMOPT_MAX_PIPELINE_LENGTH | Passe un nombre qui définit le nombre maximal de requête dans une pipeline.
CURLMOPT_MAX_TOTAL_CONNECTIONS | Passe un nombre qui définit le nombre maximal de connexions simultanées ouvertes.
CURLMOPT_PUSHFUNCTION Passe une fonction de rappel qui sera déclarée pour gérer les pushs serveurs et devrait avoir la signature suivante :
pushfunction(resource $parent_ch, resource $pushed_ch, array $headers): int
parent_ch

Le gestionnaire cURL parent (la requête que le client a faite).

pushed_ch

Un nouveau gestionnaire cURL pour les requêtes pushées.

headers

Les en-têtes de promise de push.

La fonction de push est supposé de retourner soit CURL_PUSH_OK si il peut gérer le push, ou CURL_PUSH_DENY pour le rejeter.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.2.0 | Ajout de CURLMOPT_MAX_CONCURRENT_STREAMS.
8.0.0 | multi_handle attend désormais une instance de CurlMultiHandle; auparavant; une resource était attendue.
7.1.0 | Ajout de CURLMOPT_PUSHFUNCTION.
7.0.7 | Ajout de CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE, CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE, CURLMOPT_MAX_HOST_CONNECTIONS, CURLMOPT_MAX_PIPELINE_LENGTH et CURLMOPT_MAX_TOTAL_CONNECTIONS.


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, PHP 8)

curl_multi_strerror — Retourne la description d'un code erreur

Description

curl_multi_strerror(int $error_code): ?string

Retourne le message d'erreur décrivant le code erreur CURLM fourni.

Liste de paramètres

error_code

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 cURL multiple
$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);
if ($active) {
curl_multi_select($mh);
}
} while ($active && $status === CURLM_OK);

// Vérifier les erreurs
if ($status != CURLM_OK) {
// Display error message
echo "ERROR!\n " . curl_multi_strerror($status);
}

?>

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, PHP 8)

curl_pause — Met en pause, ou sort de la pause une connexion

Description

curl_pause(CurlHandle $handle, int $flags): int

Met en pause ou reprend une session cURL. Une session peut être mise en pause tant qu'un transfert est en cours, dans les directions de lecture, d'écriture ou les deux, en appelant cette fonction à partir d'une fonction de rappel enregistré avec la fonction curl_setopt().

Liste de paramètres

handle

Un gestionnaire cURL retourné par curl_init().

flags

Une constante parmi CURLPAUSE_*.

Valeurs de retour

Retourne un code erreur (CURLE_OK correspond à aucune erreur).

Historique

Version | Description
8.0.0 | handle attend désormais une instance de CurlHandle; auparavant; une resource était attendue.


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, PHP 8)

curl_reset — Ré-initialise toutes les options d'un gestionnaire de session libcurl

Description

curl_reset(CurlHandle $handle): void

Cette fonction ré-initialise toutes les options définies sur le gestionnaire cURL donné en leurs valeurs par défaut.

Liste de paramètres

handle

Un gestionnaire cURL retourné par curl_init().

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version | Description
8.0.0 | handle attend désormais une instance de CurlHandle; auparavant; une resource était attendue.

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, PHP 8)

curl_setopt_array — Fixe plusieurs options pour un transfert cURL

Description

curl_setopt_array(CurlHandle $handle, array $options): bool

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

handle

Un gestionnaire cURL retourné par 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.

Historique

Version | Description
8.0.0 | handle attend désormais une instance de CurlHandle; auparavant; une resource était attendue.

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);
?>

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, PHP 8)

curl_setopt — Définit une option de transmission cURL

Description

curl_setopt(CurlHandle $handle, int $option, mixed $value): bool

Définit une option pour le gestionnaire de session cURL fournit.

Liste de paramètres

handle

Un gestionnaire cURL retourné par curl_init().

option

L'option CURLOPT_XXX à définir.

value

La valeur à définir pour option.

value doit être un booléen pour les valeurs suivantes du paramètre option :

Option | Définir value à | Notes
CURLOPT_AUTOREFERER | true pour définir automatiquement le champ Referer: dans les requêtes où une redirection Location: suit.
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. Nécessite 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.
CURLOPT_CRLF | true pour convertir les nouvelles lignes Unix en nouvelles lignes CRLF durant les transferts.
CURLOPT_DISALLOW_USERNAME_IN_URL | true pour ne pas permettre les URLs qui incluent un nom d'utilisateur. Les noms d'utilisateurs sont autorisé par défaut (0). | Ajouté en cURL 7.61.0. Disponible à partir de PHP 7.3.0.
CURLOPT_DNS_SHUFFLE_ADDRESSES | true pour mélanger l'ordre de toutes les addresses retournées pour qu'elles soit utilisées dans un ordre aléatoire, quand un nom est résolu et que plus d'une addresse IP est retournée. Ceci peut causer d'utiliser IPv4 avant IPv6 ou vice versa. | Ajouté en cURL 7.60.0. Disponible à partir de PHP 7.3.0.
CURLOPT_HAPROXYPROTOCOL | true pour envoyer un en-tête HAProxy PROXY protocol v1 au début de la connexion. L'action par défaut est de ne pas envoyer cet en-tête. | Ajouté en cURL 7.60.0. Disponible à partir de PHP 7.3.0.
CURLOPT_SSH_COMPRESSION | true pour activer la compression SSH intégré. Ceci est une demande, pas un ordre ; le serveur peut ou ne peut pas le faire. | Ajouté en cURL 7.56.0. Disponible à partir de PHP 7.3.0.
CURLOPT_DNS_USE_GLOBAL_CACHE | true pour utiliser un cache DNS global. Cette option n'est pas compatible avec les threads. Elle est conditionellement activée par défaut si PHP est compilé pour une utilisation non threadé (CLI, FFCGI, Apache2-Prefork, etc.).
CURLOPT_FAILONERROR | true pour échouer verbalement si le code HTTP retourné est supérieur ou égal à 400. Le comportement par défaut est de retourner la page normalement, en ignorant le code.
CURLOPT_SSL_FALSESTART | true pour activer le faux départ TLS. | Ajouté en cURL 7.42.0. Disponible à partir de PHP 7.0.7.
CURLOPT_FILETIME | true pour tenter de récupérer la date de modification du document distant. Cette valeur peut être récupérée en utilisant l'option CURLINFO_FILETIME avec curl_getinfo().
CURLOPT_FOLLOWLOCATION | true pour suivre tous les en-têtes "Location: " que le serveur envoie dans les en-têtes HTTP. Voir aussi CURLOPT_MAXREDIRS.
CURLOPT_FORBID_REUSE | true pour forcer à fermer explicitement la connexion lorsque le processus est terminé. Elle ne sera donc pas mise en cache pour réutilisation.
CURLOPT_FRESH_CONNECT | true pour forcer l'utilisation d'une nouvelle connexion au lieu d'une en cache.
CURLOPT_FTP_USE_EPRT | true pour utiliser EPRT (et LPRT) lors des téléchargements FTP actifs. 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éfinir à 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 | true pour désactiver l'algorithme Nagle de TCP, qui tente de réduire le nombre de petits paquets sur le réseau. | Disponible 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 dans 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 caractères du gestionnaire de requête. | Le préfixe CURLINFO_ est intentionnel.
CURLOPT_HTTP09_ALLOWED | Si on doit ou non autoriser les réponses HTTP/0.9. Par défaut, vaut false depuis libcurl 7.66.0; Auparavant, vallait true par défaut. | Available since PHP 7.3.15 and 7.4.3, respectively, if built against libcurl >= 7.64.0
CURLOPT_HTTPGET | true pour réinitialiser la méthode de la requête HTTP à GET. Sachant que GET est la valeur par défaut, cela est uniquement nécessaire si la méthode de la requête a été modifiée.
CURLOPT_HTTPPROXYTUNNEL | true pour passer par un proxy HTTP donné.
CURLOPT_HTTP_CONTENT_DECODING | false pour récupérer le corps de la réponse HTTP brute. | Disponible si compilé contre libcurl >= 7.16.2.
CURLOPT_KEEP_SENDING_ON_ERROR | true pour continuer d'envoyer le corps de la requête si le code HTTP est supérieur ou égal à 300. La valeur par défaut est d'arrêter l'envoie et de fermer le flux ou connexion. Adapté pour une authentication NTLM manuelle. La plupart des applications n'ont pas besoin de cette option. | Disponible à partir de PHP 7.3.0 si compilé contre libcurl >= 7.51.0.
CURLOPT_MUTE | true pour que PHP soit totalement silencieux concernant toutes les fonctions cURL. | Supprimé en cURL 7.15.5 (Utiliser CURLOPT_RETURNTRANSFER à la place)
CURLOPT_NETRC | true pour analyser le fichier ~./netrc pour trouver un nom d'utilisateur et mot de passe pour le site distant où une connexion est en train d'être établie.
CURLOPT_NOBODY | true pour exclure le corps de la sortie. La méthode de la requête est alors définie à HEAD. Modifier ceci à false ne modifie pas la méthode en GET.
CURLOPT_NOPROGRESS

true pour désactiver la barre de progression des transferts cURL.

Note:

PHP définit automatiquement cette option à true, ceci devrait être modifié uniquement pour des raisons de déboguage.

CURLOPT_NOSIGNAL | true pour ignorer toutes les fonctions cURL qui causent l'envoi d'un signal au processus PHP. Activée par défaut dans les SAPIs multithreadés afin que les options d'expiration puissent toujours être utilisées. | Ajouté dans cURL 7.10.
CURLOPT_PATH_AS_IS | true pour ne pas gérer les séquences point point. | Ajouté dans cURL 7.42.0. Disponible à partir de PHP 7.0.7.
CURLOPT_PIPEWAIT | true pour attendre pour le pipelining/multiplexing. | Ajouté dans cURL 7.43.0. Disponible à partir de PHP 7.0.7.
CURLOPT_POST | true pour que PHP fasse un HTTP POST régulier. Ce POST est le type normal application/x-www-form-urlencoded, utilisé couramment par les formulaires HTML.
CURLOPT_PUT | true pour HTTP PUT un fichier. Le fichier à téléverser avec PUT doit être définit avec CURLOPT_INFILE et CURLOPT_INFILESIZE.
CURLOPT_RETURNTRANSFER | true pour retourner le transfert en tant que chaîne de caractères de la valeur retournée par curl_exec() au lieu de l'afficher directement.
CURLOPT_SASL_IR | true pour permettre d'envoyer la réponse initiale dans le premier paquet. | Ajouté dans cURL 7.31.10. Disponible à partir de PHP 7.0.7.
CURLOPT_SSL_ENABLE_ALPN | false pour désactiver ALPN dans la poignée de main SSL (si le back-end SSL libcurl est compilé pour utiliser le supporte), qui peut être utilisée pour négocier http2. | Ajouté dans cURL 7.36.0. Disponible à partir de PHP 7.0.7.
CURLOPT_SSL_ENABLE_NPN | false pour désactiver NPN dans la poignée de main SSL (si le back-end SSL libcurl est compilé pour utiliser le supporte), qui peut être utilisé pour négocier http2. | Ajouté dans cURL 7.36.0. Disponible à partir de PHP 7.0.7.
CURLOPT_SSL_VERIFYPEER | false pour arrêter cURL de vérifier le certificat du pair. Les certificats alternatifs à vérifier contre peuvent être spécifiés avec l'option CURLOPT_CAINFO ou un répertoire de certificat peut être spécifié avec l'option CURLOPT_CAPATH. | true par défaut à partir de cURL 7.10. Paquet installé par défaut à partir de cURL 7.10.
CURLOPT_SSL_VERIFYSTATUS | true pour vérifier l'état du certificat. | Ajouté dans cURL 7.41.0. Disponible à partir de PHP 7.0.7.
CURLOPT_PROXY_SSL_VERIFYPEER | false pour arrêter cURL de vérifié le certificat du homologue. Des certificats alternatifs à vérifier contre peuvent être définie avec l'option CURLOPT_CAINFO ou un dossier de certificat peut être définie avec l'option CURLOPT_CAPATH. Quand définie à false, la vérification du certificat homologue réussit malgré tout. | true par défaut. Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.52.0.
CURLOPT_SAFE_UPLOAD | Toujours true, ce qui désactive la prise en charge du préfixe @ pour le téléversement de fichiers dans CURLOPT_POSTFIELDS, ce qui signifie que les valeurs commençant par @ peuvent être transmises en tant que champs en toute sécurité. CURLFile peut être utilisé pour les téléversements à la place.
CURLOPT_SUPPRESS_CONNECT_HEADERS | true pour réprimer les en-têtes de réponse proxy CONNECT des fonctions de rappels utilisateurs CURLOPT_HEADERFUNCTION et CURLOPT_WRITEFUNCTION, quand CURLOPT_HTTPPROXYTUNNEL est utilisé et une requête CONNECT est faite. | Ajouté dans cURL 7.54.0. Disponible à partir de PHP 7.3.0.
CURLOPT_TCP_FASTOPEN | true pour activer TCP Fast Open. | Ajouté dans cURL 7.49.0. Disponible à partir de PHP 7.0.7.
CURLOPT_TFTP_NO_OPTIONS | true pour ne pas envoyer les requêtes d'options TFTP. | Ajouté dans cURL 7.48.0. Disponible à partir de PHP 7.0.7.
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 continuer d'envoyer le nom d'utilisateur et 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 préparer pour un téléversement.
CURLOPT_VERBOSE | true pour afficher les informations de façon verbeuse. Écrit la sortie sur STDERR, ou dans le fichier spécifié en utilisant CURLOPT_STDERR.

value devrait être un entier pour les valeurs suivantes du paramètres option :

Option | Définir value à | Notes
CURLOPT_BUFFERSIZE | La taille du tampon à utiliser pour chaque lecture. Cependant, il n'y a aucune garantie que cette requête soit accomplie. | Ajouté en cURL 7.10.
CURLOPT_CONNECTTIMEOUT | Le nombre de secondes à attendre durant la tentative de connexion. Utiliser 0 pour attendre indéfiniment.
CURLOPT_CONNECTTIMEOUT_MS | Le nombre de millisecondes à attendre durant la tentative de connexion. Utiliser 0 pour attendre indéfiniment. Si libcurl est compilé 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.
CURLOPT_DNS_CACHE_TIMEOUT | Le temps en seconde pour conserver les entrées DNS en mémoire. Cette option est définie à 120 secondes (2 minutes) par défaut.
CURLOPT_EXPECT_100_TIMEOUT_MS | Le délais d'attente pour les réponses Expect: 100-continue en millisecondes. Par défaut 1000 millisecondes. | Ajouté dans cURL 7.36.0. Disponible à partir de PHP 7.0.7.
CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS | Une longueur d'avance pour ipv6 pour l'algorithme happy eyeballs. Happy eyeballs tente se connecter à la fois aux adresses IPv4 et IPv6 pour les hôtes à double pile, préférant IPv6 d'abord pour les millisecondes d'expiration. Par défaut CURL_HET_DEFAULT, qui est actuellement 200 millisecondes. | Ajouté en cURL 7.59.0. Disponible à partir de PHP 7.3.0.
CURLOPT_FTPSSLAUTH | La méthode d'identification FTP, lorsqu'elle est activée : CURLFTPAUTH_SSL (tenter SSL en premier), CURLFTPAUTH_TLS (tenter TLS en premier), ou CURLFTPAUTH_DEFAULT (laisser cURL décider). | Ajouté en cURL 7.12.2.
CURLOPT_HEADEROPT | Comment gérer les en-têtes. Une des constantes suivantes : CURLHEADER_UNIFIED : les en-têtes spécifié dans CURLOPT_HTTPHEADER seront utilisés dans les requêtes à la fois aux serveurs ainsi qu'aux proxies. Avec cette option activé, CURLOPT_PROXYHEADER n'aura pas d'effet. CURLHEADER_SEPARATE : fait que les en-têtes CURLOPT_HTTPHEADER sont uniquement envoyés aux serveurs et pas à un proxy. Les en-têtes pour les proxies doivent être définit avec CURLOPT_PROXYHEADER pour être utilisé. Il est à noter que si une requête non-CONNECT est envoyé à un proxy, libcurl envera à la fois les en-têtes de serveur et de proxy. Lors de CONNECT, libcurl envera les en-têtes CURLOPT_PROXYHEADER seulement au proxy et les en-têtes CURLOPT_HTTPHEADER seulement au serveur. Par défaut CURLHEADER_SEPARATE à partir de cURL 7.42.1, et CURLHEADER_UNIFIED auparavant. | Ajouté dans cURL 7.37.0. Disponible à partir de PHP 7.0.7.
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), CURL_HTTP_VERSION_2_0 (tente HTTP 2), CURL_HTTP_VERSION_2 (alias de CURL_HTTP_VERSION_2_0) ,CURL_HTTP_VERSION_2TLS (tente HTTP 2 sur TLS (HTTPS) uniquement) ou CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE (émet des requêtes HTTP non TLS en utilisant HTTP / 2 sans mise à niveau HTTP / 1.1).
CURLOPT_HTTPAUTH

La méthode d'identification HTTP à utiliser. Ces options sont : CURLAUTH_BASIC, CURLAUTH_DIGEST, CURLAUTH_GSSNEGOTIATE, CURLAUTH_NTLM, CURLAUTH_AWS_SIGV4, CURLAUTH_ANY et CURLAUTH_ANYSAFE.

L'opérateur bit à bit | (ou) peut être utilisé pour combiner plus d'une méthode. Si ceci est fait, cURL interrogera le serveur pour voir quelles sont les méthodes supportées et prendra la meilleur.

CURLAUTH_ANY définit tous les bits. cURL sélectionnera automatiquement celui qu'il trouve le plus sécurisé.

CURLAUTH_ANYSAFE définit tous les bits sauf CURLAUTH_BASIC. cURL sélectionnera automatiquement celui qu'il trouve le plus sécurisé.

CURLOPT_INFILESIZE | La taille attendue, en octets, du fichier lors du téléversemement d'un fichier vers un site distant. Notez que l'utilisation de cette option n'arrêtera pas libcurl d'envoyer 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, 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_MAIL_RCPT_ALLLOWFAILS | Autorise l'échec de la commande RCPT TO pour certains destinataires. | Lors de l'envoi de données à plusieurs destinataires, cURL interrompt la conversation SMTP par défaut si au moins l'un des destinataires provoque une erreur avec la commande RCPT TO. Cette option indique à cURL d'ignorer les erreurs et de continuer avec les destinataires valides restants. Si tous les destinataires génèrent des échecs RCPT TO et que ce drapeau est activé, cURL interrompra la conversation SMTP et renverra l'erreur reçue de la dernière commande RCPT TO.
CURLOPT_MAXAGE_CONN | Le temps d'inactivité maximal autorisé pour qu'une connexion existante soit considérée comme réutilisable. La durée maximale par défaut est de 118 secondes.
CURLOPT_MAXFILESIZE_LARGE | La taille maximale du fichier en octets autorisée à télécharger. Si la taille du fichier demandé est supérieure à cette valeur, le transfert ne commencera pas et CURLE_FILESIZE_EXCEEDED sera renvoyé. La taille du fichier n'est pas toujours connue avant le téléchargement, et pour de tels fichiers, cette option n'a aucun effet, même si le transfert de fichier finit par être plus grand que cette limite donnée.
CURLOPT_MAXLIFETIME_CONN | Le temps maximal en secondes, depuis la création de la connexion, qui est autorisé pour qu'une connexion existante soit considérée pour être réutilisable. Si une connexion est trouvée dans la mémoire cache et est plus ancienne que cette valeur, elle sera fermée une fois que tous les transferts en cours seront terminés. La valeur par défaut est de 0 seconde, ce qui signifie que l'option est désactivée et que toutes les connexions sont éligibles pour être réutilisées.
CURLOPT_MAXCONNECTS | Le nombre maximal de connexions persistantes autorisées. Lorsque la limite est atteinte, la plus ancienne dans le cache est fermée pour éviter d'augmenter le nombre de connexions ouvertes.
CURLOPT_MAXREDIRS | Le nombre maximal de redirections HTTP à suivre. Utilisez cette option avec l'option CURLOPT_FOLLOWLOCATION. Une valeur par défaut de 20 est définit pour prévenir les redirections infinies. Définir à -1 permet les redirections infinies, et 0 refuse toute redirection.
CURLOPT_PORT | Un numéro de port alternatif auquel se connecter.
CURLOPT_POSTREDIR | Un masque de bit de 1 (301 Moved Permanently), 2 (302 Found) et 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.
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. Voir 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_MQTT, CURLPROTO_ALL

Ajouté en cURL 7.19.4.
CURLOPT_PROXYAUTH | La méthode d'authentifucation 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 CURLOPT_PROXY.
CURLOPT_PROXYTYPE | Soit CURLPROXY_HTTP (par défaut), CURLPROXY_SOCKS4, CURLPROXY_SOCKS5, CURLPROXY_SOCKS4A ou CURLPROXY_SOCKS5_HOSTNAME. | Ajouté en cURL 7.10.
CURLOPT_REDIR_PROTOCOLS | Masque de bits des valeurs CURLPROTO_*. S'il est utilisé, ce masque limite les protocoles que libcurl peut utiliser dans un transfert qu'il suit après une redirection lorsque CURLOPT_FOLLOWLOCATION est activé. Cela permet de limiter certains transferts spécifique à utiliser un sous groupe des protocoles lors d'une redirection. Par défaut, libcurl va autoriser tous les protocoles, hormis FILE et SCP. Ceci est différent comparé aux versions antérieurs à 7.19.4 qui suivaient inconditionnellement tous les protocoles supportés. Voir aussi CURLOPT_PROTOCOLS pour les valeurs des constantes de protocoles. | Ajoutés en cURL 7.19.4.
CURLOPT_RESUME_FROM | La position, en octets, où reprendre un transfert.
CURLOPT_SOCKS5_AUTH

Les méthode(s) d'authentification SOCKS5 à utiliser. Les options sont : CURLAUTH_BASIC, CURLAUTH_GSSAPI, CURLAUTH_NONE.

L'opérateur bit à bit | (ou) peut être combiné pour utiliser plus d'une méthode. Si ceci est fait, cURL interrogera le serveur pour voir quelles méthodes sont prises en charge et choisir la meilleure.

CURLAUTH_BASIC autorise l'authentification utilisateur/mot de passe.

CURLAUTH_GSSAPI autorise l'authentification GSS-API.

CURLAUTH_NONE autorise aucune authentification.

Par défaut CURLAUTH_BASIC|CURLAUTH_GSSAPI. Définir l'utilisateur actuel et mot de passe avec l'option CURLOPT_PROXYUSERPWD.

Disponible à partir de PHP 7.3.0 et curl >= 7.55.0.
CURLOPT_SSL_OPTIONS | Définit les options de comportement SSL, qui est un masque de bits des constantes suivantes : CURLSSLOPT_ALLOW_BEAST : n'essaye pas d'utiliser des solutions de contournement pour une faille de sécurité dans les protocoles SSL3 et TLS1.0. CURLSSLOPT_NO_REVOKE : désactiver les vérifications de révocation de certificats pour les serveurs SSL où un tel comportement est présent. CURLSSLOPT_AUTO_CLIENT_CERT : localisation automatique et utilisation d'un certificat client pour l'authentification, lorsque demandé par le serveur. Cette option est uniquement prise en charge pour Schannel (la bibliothèque SSL native de Windows). CURLSSLOPT_NATIVE_CA : utilisation du magasin de certificats natif du système d'exploitation pour la vérification des certificats. Fonctionne uniquement sous Windows lorsqu'il est construit pour utiliser OpenSSL. Cette option est expérimentale et son comportement est susceptible de changer. CURLSSLOPT_NO_PARTIALCHAIN : ne pas accepter les chaînes de certificats "partielles", que cURL accepte par défaut. Cette option est uniquement prise en charge pour OpenSSL et échouera la vérification du certificat si la chaîne se termine par un certificat intermédiaire et non par un certificat racine. CURLSSLOPT_REVOKE_BEST_EFFORT : ignorer les vérifications de révocation de certificat en cas d'absence ou d'indisponibilité des points de distribution pour les bibliothèques SSL où un tel comportement est présent. Cette option est uniquement prise en charge pour Schannel (la bibliothèque SSL native de Windows). Si elle est combinée avec CURLSSLOPT_NO_REVOKE, cette dernière prévaut. | Ajouté dans cURL 7.25.0. Disponible à partir de PHP 7.0.7.
CURLOPT_SSL_VERIFYHOST | 2 pour vérifier qu'un champ Common Name field ou Subject Alternate Name dans le certificat SSL correspond avec le nom d'hôte fourni. 0 pour ne pas vérifier les noms. 1 ne devrait pas être utilisé. Dans les 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) ou CURL_SSLVERSION_TLSv1_2 (6) ou CURL_SSLVERSION_TLSv1_3 (7). La version TLS maximale peut être définie en utilisant une des constantes CURL_SSLVERSION_MAX_*. Il est aussi possible de OU une des constantes CURL_SSLVERSION_* avec une des constantes CURL_SSLVERSION_MAX_*. CURL_SSLVERSION_MAX_DEFAULT (la version maximale supporté par la bibliothèque), CURL_SSLVERSION_MAX_TLSv1_0, CURL_SSLVERSION_MAX_TLSv1_1, CURL_SSLVERSION_MAX_TLSv1_2, ou CURL_SSLVERSION_MAX_TLSv1_3.

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_PROXY_SSL_OPTIONS | Définit les options de comportement proxie SSL, qui est un masque de bits des constantes suivantes : CURLSSLOPT_ALLOW_BEAST : n'essaye pas d'utiliser des solutions de contournement pour une faille de sécurité dans les protocoles SSL3 et TLS1.0. CURLSSLOPT_NO_REVOKE : désactiver les vérifications de révocation de certificats pour les serveurs SSL où un tel comportement est présent. (curl >= 7.44.0) CURLSSLOPT_NO_PARTIALCHAIN : n'accepte pas des chaînes "partielles" de certificats, qui est sinon la valeur par défaut. (curl >= 7.68.0) | Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.52.0.
CURLOPT_PROXY_SSL_VERIFYHOST | Définir à 2 pour vérifier dans le certificats du proxie HTTPS les champs de nom contre le nom du proxie. Quand définie à 0 la connexion succède peut importe des noms utilisés dans le certificat. Utilisez cette fonctionnalité avec précaution! 1 est traité comme une option de debug dans curl 7.28.0 et antérieur. Entre curl 7.28.1 et 7.65.3 CURLE_BAD_FUNCTION_ARGUMENT est retourné. À partir de curl 7.66.0 1 et 2 sont traité comme la même valeur. En environnement de production, la valeur de cette option doit être conservée à 2 (valeur par défaut). | Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.52.0.
CURLOPT_PROXY_SSLVERSION Une de CURL_SSLVERSION_DEFAULT, CURL_SSLVERSION_TLSv1, CURL_SSLVERSION_TLSv1_0, CURL_SSLVERSION_TLSv1_1, CURL_SSLVERSION_TLSv1_2, CURL_SSLVERSION_TLSv1_3, CURL_SSLVERSION_MAX_DEFAULT, CURL_SSLVERSION_MAX_TLSv1_0, CURL_SSLVERSION_MAX_TLSv1_1, CURL_SSLVERSION_MAX_TLSv1_2, CURL_SSLVERSION_MAX_TLSv1_3 ou CURL_SSLVERSION_SSLv3.

Note:

Dans votre intérêt, il est préférable de ne pas définir ceci et de le laisser utiliser la valeur par défaut CURL_SSLVERSION_DEFAULT qui tentera de comprendre la version du protocole SSL distant.

Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.52.0.
CURLOPT_STREAM_WEIGHT | Définit le poid numérique du flux (un nombre entre 1 et 256). | Ajouté dans cURL 7.46.0. Disponible à partir de PHP 7.0.7.
CURLOPT_TCP_KEEPALIVE | Si définie à 1, Des sondes TCP keepalive seront envoyées. Le délais et fréquence de ces sondes peut être controllé par les options CURLOPT_TCP_KEEPIDLE et CURLOPT_TCP_KEEPINTVL, à condition que le système d'exploitation les supporte. Si définie à 0 (par défaut) les sondes keepalive sont désactivées. | Ajouté dans cURL 7.25.0.
CURLOPT_TCP_KEEPIDLE | Définie le délais, en secondes, que le système d'exploitation attendra pendent que la connexion est inoccupé, avant d'envoyer des sondes keepalive, si CURLOPT_TCP_KEEPALIVE est activé. Pas tout les systèmes d'exploitations supportent cette option. La valeur par défaut est 60. | Ajouté dans cURL 7.25.0.
CURLOPT_TCP_KEEPINTVL | Définie l'intervalle, en secondes, que le système d'exploitation attendra entre les envoies des sondes keepalive, si CURLOPT_TCP_KEEPALIVE est activé. Pas tout les systèmes d'exploitations supportent cette option. La valeur par défaut est 60. | Ajouté dans cURL 7.25.0.
CURLOPT_TIMECONDITION | Comment CURLOPT_TIMEVALUE est traité. Utiliser CURL_TIMECOND_IFMODSINCE pour retourner la page uniquement si elle a été modifiée depuis le temps spécifié dans CURLOPT_TIMEVALUE. Si elle n'a pas été modifiée, un en-tête "304 Not Modified" sera retourné en supposant que CURLOPT_HEADER vaut true. Utiliser CURL_TIMECOND_IFUNMODSINCE pour faire l'inverse. Utiliser CURL_TIMECOND_NONE pour ignorer CURLOPT_TIMEVALUE et toujours retourner la page. La valeur par défaut est CURL_TIMECOND_NONE. | Antérieur à cURL 7.46.0 la valeur par défaut était CURL_TIMECOND_IFMODSINCE.
CURLOPT_TIMEOUT | Le temps maximum d'exécution de la fonction cURL exprimé en secondes.
CURLOPT_TIMEOUT_MS | Le nombre maximal de millisecondes autorisé aux fonctions cURL pour l'exécution. Si libcurl est compilé 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.
CURLOPT_TIMEVALUE | Le temps en secondes depuis le 1er janvier 1970. Le temps sera utilisée par CURLOPT_TIMECONDITION.
CURLOPT_TIMEVALUE_LARGE | Le temps en secondes depuis le 1er Janvier, 1970. Le temps sera utilisé par CURLOPT_TIMECONDITION. Par défaut zéro. La différence entre cette option et CURLOPT_TIMEVALUE est le type d'argument. Sur les systèmes où 'long' est seulement large de 32 bits, cette option doit être utilisé pour définir des dates au delà de l'année 2038. | Ajouté dans cURL 7.59.0. Disponible à partir de PHP 7.3.0.
CURLOPT_UPKEEP_INTERVAL_MS | Certains protocoles disposent de mécanismes de "maintenance de connexion". Ces mécanismes envoient généralement du trafic sur des connexions existantes pour les maintenir actives. Cette option définit l'intervalle de maintenance de la connexion. Actuellement, le seul protocole avec un mécanisme de maintenance de la connexion est HTTP/2. Lorsque l'intervalle de maintenance de la connexion est dépassé, une trame PING HTTP/2 est envoyée sur la connexion. La valeur par défaut est de 60 secondes.
CURLOPT_UPLOAD_BUFFERSIZE | Taille de mémoire tampon préférée en octets pour la mémoire tampon d'envoi cURL. La taille de la mémoire tampon d'envoi est par défaut de 64 kilooctets. La taille maximale de mémoire tampon autorisée est de 2 mégaoctets. La taille minimale de mémoire tampon autorisée est de 16 kilooctets.
CURLOPT_MAX_RECV_SPEED_LARGE | Si un téléchargement 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.
CURLOPT_MAX_SEND_SPEED_LARGE | Si un téléversement 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.
CURLOPT_SSH_AUTH_TYPES | Un masque de bit constitué d'une ou plusieurs de : CURLSSH_AUTH_PUBLICKEY, CURLSSH_AUTH_PASSWORD, CURLSSH_AUTH_HOST, CURLSSH_AUTH_KEYBOARD. Définir à CURLSSH_AUTH_ANY pour laisser libcurl choisir. | 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 CURL_IPRESOLVE_WHATEVER. | Ajouté en cURL 7.10.8.
CURLOPT_FTP_FILEMETHOD | Dit à curl quelle méthode à utiliser pour atteindre un fichier sur un serveur FTP(S). Valeur possible sont CURLFTPMETHOD_DEFAULT, CURLFTPMETHOD_MULTICWD, CURLFTPMETHOD_NOCWD, et CURLFTPMETHOD_SINGLECWD. | Ajouté en cURL 7.15.1.

value doit être une chaîne de caractères pour les valeurs suivantes du paramètres option :

Option | Définir value à | Notes
CURLOPT_ABSTRACT_UNIX_SOCKET | Active l'usage d'un socket domaine Unix abstrait au lieu d'établir une connexion TCP à un hôte et définie le chemin à la chaîne de caractères fournie. Cette option partage les mêmes sémantiques que CURLOPT_UNIX_SOCKET_PATH. Ces deux options partagent le même stockage et doc seul un des deux peut être définie par gestionnaire. | Disponible à partir de PHP 7.3.0 et cURL 7.53.0
CURLOPT_ALTSVC | Indique au fichier que cURL doit utiliser comme cache Alt-Svc pour lire le contenu du cache existant et, éventuellement, pour le réécrire après un transfert, sauf si CURLALTSVC_READONLYFILE est activé via CURLOPT_ALTSVC_CTRL.
CURLOPT_ALTSVC_CTRL | Remplit le jeu de bits avec le bon ensemble de fonctionnalités pour indiquer à cURL comment gérer Alt-Svc pour les transferts effectués avec cette poignée. cURL n'accepte que les en-têtes Alt-Svc sur HTTPS. Il achèvera également une requête vers une origine alternative uniquement si cette origine est correctement hébergée sur HTTPS. Le réglage de n'importe quel bit activera le moteur alt-svc. Les options sont : CURLALTSVC_H1, CURLALTSVC_H2, CURLALTSVC_H3, et CURLALTSVC_READONLYFILE.
CURLOPT_AWS_SIGV4

Fournit une authentification de signature AWS V4 dans l'en-tête HTTP(S).

Cette option remplace tout autre type d'authentification qui a été défini dans CURLOPT_HTTPAUTH. Cette méthode ne peut pas être combinée avec d'autres types d'authentification.

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. | Peut nécessiter un chemin absolu.
CURLOPT_CAINFO_BLOB | Le nom d'un fichier PEM contenant un ou plusieurs certificats pour vérifier le pair. Cette option remplace CURLOPT_CAINFO. | Disponible à partir de PHP 8.2.0 et cURL 7.77.0
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_COOKIELIST | Une chaîne cookie (c.à.d. une seule ligne dans le format Netscape/Mozilla, ou un en-tête de style HTTP régulier Set-Cookie) ajoute cet unique cookie au stockage interne de cookie. "ALL" efface tout les cookies tenu en mémoire. "SESS" efface tout les cookies de session tenu en mémoire. "FLUSH" écrit tout les connues dans le fichier spécifié par CURLOPT_COOKIEJAR. "RELOAD" charge tout les cookies depuis les fichiers spécifié par CURLOPT_COOKIEFILE. | Disponible à partir de cURL 7.14.1.
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 complète ici. Par exemple, entrer "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_DEFAULT_PROTOCOL

Le protocole par défaut à utiliser si l'URL manque un nom de schème.

Ajouté en cURL 7.45.0. Disponible à partir de PHP 7.0.7.
CURLOPT_HSTS

Nom du fichier de cache HSTS (HTTP Strict Transport Security).

CURLOPT_HSTS_CTRL

Contrôle le comportement HSTS (HTTP Strict Transport Security). Remplit le jeu de bits avec le bon ensemble de fonctionnalités pour indiquer à cURL comment gérer HSTS pour les transferts effectués avec cette poignée. CURLHSTS_ENABLE active le cache HSTS en mémoire. Si le fichier de cache HSTS est défini, réglez CURLHSTS_READONLYFILE pour rendre le fichier en lecture seule.

CURLOPT_DNS_INTERFACE

Définit le nom de l'interface réseau à laquelle le résolveur DNS doit se lier. Ceci doit être un nom d'interface (pas une adresse).

Ajouté en cURL 7.33.0. Disponible à partir de PHP 7.0.7.
CURLOPT_DNS_LOCAL_IP4

Définit l'adresse IPv4 locale à laquelle le résolveur DNS doit se lier. L'argument devrait contenir une seule adresse numérique IPv4 sous chaîne de caractères

Ajouté en cURL 7.33.0. Disponible à partir de PHP 7.0.7.
CURLOPT_DNS_LOCAL_IP6

Définit l'adresse IPv6 locale à laquelle le résolveur DNS doit se lier. L'argument devrait contenir une seule adresse numérique IPv6 sous chaîne de caractères

Ajouté en cURL 7.33.0. Disponible à partir de PHP 7.0.7.
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_LOGIN_OPTIONS | Peut être utilisé pour définir des options de connexion spécifiques au protocole, telles que le mécanisme d’authentification préféré via "AUTH = NTLM" ou "AUTH = *", et doit être utilisé conjointement avec l'option CURLOPT_USERNAME. | Ajouté en cURL 7.34.0. Disponible à partir de PHP 7.0.7.
CURLOPT_PINNEDPUBLICKEY | Définit la clé publique épinglée. La chaîne de caractères peut être le nom de fichier de votre clé publique épinglée. Le format de fichier attendu est "PEM" ou "DER". La chaîne de caractères peut également être un nombre quelconque de hachages sha256 codés en base64, précédés de "sha256//" et séparés par ";". | Ajouté en cURL 7.39.0. Disponible à partir de PHP 7.0.7.
CURLOPT_POSTFIELDS | Toutes les données à passer lors d'une opération de HTTP POST. 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. Des fichiers peuvent être envoyé en utilisant CURLFile ou CURLStringFile, dans quel cas value doit être un tableau.
CURLOPT_PRIVATE | Toutes les données devant être associées à ce descripteur cURL. Ces données peuvent ensuite être récupérées avec l'option CURLINFO_PRIVATE de curl_getinfo(). cURL ne fait rien avec ces données. Lors de l'utilisation d'un multidescripteur cURL, ces données privées sont généralement une clé unique pour identifier un descripteur cURL standard. | Ajouté en cURL 7.10.3.
CURLOPT_PRE_PROXY | Définie une chaîne de caractères contenant le nom d'hôte ou addresse OP sous notation décimale à point à utiliser en tant que pré-proxy que curl se connecte avant qu'il se connecte au proxy HTTP(S) spécifié dans l'option CURLOPT_PROXY pour la requête à venir. Le pré-proxy peut uniquement être un proxy SOCKS et devrait être préfixé avec [scheme]:// pour spécifier quel type de socks est utilisé. Une addresse IPv6 numérique doit être écrit entre [crochet]. Définir le pré-proxy à une chaîne vide désactive explicitement l'utilisation d'un pré-proxy. Pour spécifier le numéro de port dans la chaîne, ajouter :[port] à la fin du nom d'hôte. Le numéro de port du proxy peut être optionellement définie avec l'option distincte CURLOPT_PROXYPORT. Utilise le port 1080 pour les proxies par défaut si aucun port n'a été spécifié. | Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.52.0.
CURLOPT_PROXY | Le nom du proxy HTTP au tunnel qui le demande.
CURLOPT_PROXY_SERVICE_NAME | Le nom du service d'authentification proxy. | Ajouté en cURL 7.43.0 pour les proxys HTTP et en cURL 7.49.0 pour les proxys SOCK5. Disponible à partir de PHP 7.0.7.
CURLOPT_PROXY_CAINFO | Le chemin vers le bundle d'autorité de certification (CA) du proxy. Définir le chemin en tant que chaîne de caractères nomant un fichier tenant un ou plusieurs certificats pour vérifier le proxy HTTPS avec. Cette option est pour se connecter à un proxy HTTPS, pas un serveur HTTPS. Par défaut définit au chemin système où le bundle cacert de libcurl est supposé être stocké. | Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.52.0.
CURLOPT_PROXY_CAINFO_BLOB | Le nom d'un fichier PEM contenant un ou plusieurs certificats pour vérifier le proxy HTTPS. Cette option est destinée à la connexion à un proxy HTTPS, et non à un serveur HTTPS. La valeur par défaut est définie sur le chemin système où le paquet de certificats cacert de libcurl est supposé être stocké. | Disponible à partir de PHP 8.2.0 et libcurl >= cURL 7.77.0.
CURLOPT_PROXY_CAPATH | Le dossier tenant plusieurs certificats CA pour vérifier le proxy HTTPS avec. | Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.52.0.
CURLOPT_PROXY_CRLFILE | Définie le nom de fichier avec la concatenation de CRL (Certificate Revocation List) en format PEM pour utiliser lors de la validation de certificat qui se produit lors de l'échange SSL. | Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.52.0.
CURLOPT_PROXY_KEYPASSWD | Définie la chaîne de caractères a utiliser comme mot de passe nécessaire pour uriliser la clé privée CURLOPT_PROXY_SSLKEY. Vous n'avez jamais besoin d'une passphrase pour charger un certificat mais vous en avez besoin d'un pour charger votre clé privée. Cette option est pour se connecter à un proxy HTTPS, et non un serveur HTTPS. | Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.52.0.
CURLOPT_PROXY_PINNEDPUBLICKEY | Définie la clé pubique éplinglé pour le proxy HTTPS. La chaîne de caractères peut être le nom de fichier de votre clé publique. Le format de fichier attendue est "PEM" ou "DER". La chaîne de caractères peut également être un nombre quelconque de hachages sha256 encodés en base64 précédés de "sha256//" et séparé de ";" | Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.52.0.
CURLOPT_PROXY_SSLCERT | Le nom de fichier de votre certificat client utilisé pour se connecter au proxy HTTPS. Le format par défaut est "P12" sur Secure Transport et "PEM" sur les autres moteurs, et peut être modifié avec CURLOPT_PROXY_SSLCERTTYPE. Avec NSS ou Secure Transport, ceci peut être le surnom du certificat avec lequel vous souhaitez vous authentifier avec tel qu'il est nommée dans la base de donnée sécurité. Si vous voulez utiliser un fichier du dossier courrent, veuillez le précédez avec le préfix "./", de l'ordre à éviter une confusion avec le surnom. | Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.52.0.
CURLOPT_PROXY_SSLCERTTYPE | Le format de vos certificats client utilisé lors de la connexion à un proxy HTTPS. Les formats supporté sont "PEM" et "DER", sauf avec Secure Transport. OpenSSL (version 0.9.3 et ultérieur) et Secure Transport (sur iOS 5 ou ultérieur, ou OS X 10.7 ou ultérieur) supportent aussi les fichier encodé PKCS#12. Par défaut "PEM". | Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.52.0.
CURLOPT_PROXY_SSL_CIPHER_LIST | La liste des suites de chiffrement à utiliser pour la connexion au proxy HTTPS. La liste doit être syntaxiquement correcte, elle consiste de une ou plusieurs suites de chiffrement séparé par des deux-points. Les virgules ou espaces sont aussi des séparateurs acceptable mais les deux-points sont normalement utilisé, !, - et + peuvent être utilisé comme des opérations. | Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.52.0.
CURLOPT_PROXY_TLS13_CIPHERS | La liste des suites de chiffrement à utiliser pour la connexion TLS 1.3 à un proxy. La liste doit être syntaxiquement correcte, elle consiste de une ou plusieurs suites de chiffrement séparé par des deux-points. Cette option est actuellement seulement utilisé quand curl est compilé pour utiliser OpenSSL 1.1.1 ou ultérieur. Si vous utilisé un backend SSL différent vous pouvez essayer de définir les suites de chiffrement TLS 1.3 en utilisant l'option CURLOPT_PROXY_SSL_CIPHER_LIST. | Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.61.0. Disponible si compilé avec OpenSSL >= 1.1.1.
CURLOPT_PROXY_SSLKEY | Le nom de fichier de votre clé privé utilisé pour se connecter au proxy HTTPS. Le format par défaut est "PEM" et peut être modifié avec CURLOPT_PROXY_SSLKEYTYPE. (iOS et Mac OS X uniquement) Cette option est ignoré si curl est compilé contre Secure Transport. | Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.52.0. Disponible si TLS est activé.
CURLOPT_PROXY_SSLKEYTYPE | Le format de votre clé privée. Format supporté sont "PEM", "DER" et "ENG". | Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.52.0.
CURLOPT_PROXY_TLSAUTH_PASSWORD | Le mot de passe à utiliser pour la méthode d'authentification TLS spécifié avec l'option CURLOPT_PROXY_TLSAUTH_TYPE. Nécessite que l'option CURLOPT_PROXY_TLSAUTH_USERNAME soit aussi définie. | Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.52.0.
CURLOPT_PROXY_TLSAUTH_TYPE La méthode d'authentification TLS utilisé pour la connexion HTTPS. Méthode supporté est "SRP".

Note:

L'authentification Secure Remote Password (SRP) pour TLS fournit une authentification mutuelle si les deux côté ont un secret partagé. Pour utiliser TLS-SRP, vous devez aussi définir les options CURLOPT_PROXY_TLSAUTH_USERNAME et CURLOPT_PROXY_TLSAUTH_PASSWORD.

Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.52.0.
CURLOPT_PROXY_TLSAUTH_USERNAME | Tusername à utiliser pour la méthode d'autenthification TLS du proxy HTTPS spécifié avec l'option CURLOPT_PROXY_TLSAUTH_TYPE. Nécessite que l'option CURLOPT_PROXY_TLSAUTH_PASSWORD soit aussi définie. | Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.52.0.
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_SASL_AUTHZID | L'identité d'autorisation (authzid) pour le transfert. Applicable uniquement au mécanisme d'authentification SASL PLAIN où elle est facultative. Lorsqu'elle n'est pas spécifiée, seule l'identité d'authentification (authcid) telle que spécifiée par le nom d'utilisateur sera envoyée au serveur, accompagnée du mot de passe. Le serveur déduira l'authzid de l'authcid lorsqu'il n'est pas fourni, qu'il utilisera ensuite en interne.
CURLOPT_SERVICE_NAME | Le nom du service d'authentification. | Ajouté en cURL 7.43.0. Disponible à partir de PHP 7.0.7.
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_HOST_PUBLIC_KEY_SHA256 | Hachage SHA256 encodé en Base64 de la clé publique de l'hôte distant. Le transfert échouera si le hachage fourni ne correspond pas au hachage fourni par l'hôte distant.
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_SSL_EC_CURVES | Une liste de courbes elliptiques délimitées par des deux-points. Par exemple, X25519:P-521 est une liste valide de deux courbes elliptiques. Cette option définit les algorithmes d'échange de clés du client dans la poignée SSL, si le backend SSL utilisé par cURL le prend en charge.
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". À partir de OpenSSL 0.9.3, "P12" (pour fichiers encodé PKCS#12) et aussi supporté. | 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_TLS13_CIPHERS | La liste des suites de chiffrement à utiliser pour la connexion TLS 1.3. La liste doit être syntaxiquement correcte, elle consiste de un ou plusieurs chaînes de suites de chiffrement séparé par des deux-points. Cette option est actuellement uniquement quand curl est compilé pour utiliser OpenSSL 1.1.1 ou ultérieur. Si vous utiliser un backend SSL différent vous pouvez essayer de définir les suites de chiffrement TLS 1.3 en utilisant l'option CURLOPT_SSL_CIPHER_LIST. | Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.61.0. Disponible quand compilé avec OpenSSL >= 1.1.1.
CURLOPT_UNIX_SOCKET_PATH | Permet l’utilisation de sockets de domaine Unix en tant que point de connexion et définit le chemin à la chaîne de caractères fournit. | Ajouté en cURL 7.40.0. Disponible à partir de PHP 7.0.7.
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_USERNAME | Le nom d'utilisateur à utiliser lors de l'authentification. | Ajouté en cURL 7.19.1.
CURLOPT_PASSWORD | Le mot de passe à utiliser lors de l'authentification. | Ajouté en cURL 7.19.1.
CURLOPT_USERPWD | Un nom d'utilisateur et un mot de passe formatés sous la forme "[username]:[password]" à utiliser pour la connexion.
CURLOPT_XOAUTH2_BEARER | Spécifie le jeton d'accès OAuth 2.0. | Ajouté en cURL 7.33.0. Disponible à partir de PHP 7.0.7.

value doit être un tableau pour les valeurs suivantes du paramètres option :

Option | Définir value à | Notes
CURLOPT_CONNECT_TO | Connecte à un hôte et à un port spécifiques au lieu de l'hôte et du port de l'URL. Accepte un tableau de chaîne de caractères ave le format HOST:PORT:CONNECT-TO-HOST:CONNECT-TO-PORT. | Ajouté en cURL 7.49.0. Disponible à partir de PHP 7.0.7.
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_PROXYHEADER | Un tableau d'en-têtes HTTP personalisé à passer aux proxies. | Ajouté en cURL 7.37.0. Disponible à partir de PHP 7.0.7.
CURLOPT_QUOTE | Un tableau de commandes FTP à exécuter sur le serveur avant la requête FTP.
CURLOPT_RESOLVE | Fournissez une adresse personnalisée pour une paire hôte / port spécifique. Un tableau de chaîne de caractères de nom d'hôte, de port et d'adresse IP, chaque élément étant séparé par deux-points. Dans le format : array("example.com:80:127.0.0.1") | Ajouté en cURL 7.21.3.

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éfinir value à | Note
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. | Supprimée à partir de PHP 7.3.0.
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.
CURLOPT_XFERFUNCTION | Une fonction de rappel qui prend deux arguments. A un objectif identique à CURLOPT_PROGRESSFUNCTION mais est plus récente et est l'option préféree de cURL. | Ajouté en cURL 7.32.0. Disponible à partir de PHP 8.2.0.

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
8.0.0 | handle attend désormais une instance de CurlHandle; auparavant; une resource était attendue.
7.3.15, 7.4.3 | Introduction de la constante CURLOPT_HTTP09_ALLOWED.
7.3.0 | Introduit CURLOPT_ABSTRACT_UNIX_SOCKET, CURLOPT_KEEP_SENDING_ON_ERROR, CURLOPT_PRE_PROXY, CURLOPT_PROXY_CAINFO, CURLOPT_PROXY_CAPATH, CURLOPT_PROXY_CRLFILE, CURLOPT_PROXY_KEYPASSWD, CURLOPT_PROXY_PINNEDPUBLICKEY, CURLOPT_PROXY_SSLCERT, CURLOPT_PROXY_SSLCERTTYPE, CURLOPT_PROXY_SSL_CIPHER_LIST, CURLOPT_PROXY_SSLKEY, CURLOPT_PROXY_SSLKEYTYPE, CURLOPT_PROXY_SSL_OPTIONS, CURLOPT_PROXY_SSL_VERIFYHOST, CURLOPT_PROXY_SSL_VERIFYPEER, CURLOPT_PROXY_SSLVERSION, CURLOPT_PROXY_TLSAUTH_PASSWORD, CURLOPT_PROXY_TLSAUTH_TYPE, CURLOPT_PROXY_TLSAUTH_USERNAME, CURLOPT_SOCKS5_AUTH, CURLOPT_SUPPRESS_CONNECT_HEADERS, CURLOPT_DISALLOW_USERNAME_IN_URL, CURLOPT_DNS_SHUFFLE_ADDRESSES, CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS, CURLOPT_HAPROXYPROTOCOL, CURLOPT_PROXY_TLS13_CIPHERS, CURLOPT_SSH_COMPRESSION, CURLOPT_TIMEVALUE_LARGE et CURLOPT_TLS13_CIPHERS.
7.0.7 | Introduit CURL_HTTP_VERSION_2, CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE, CURL_HTTP_VERSION_2TLS, CURL_REDIR_POST_301, CURL_REDIR_POST_302, CURL_REDIR_POST_303, CURL_REDIR_POST_ALL, CURL_VERSION_KERBEROS5, CURL_VERSION_PSL, CURL_VERSION_UNIX_SOCKETS, CURLAUTH_NEGOTIATE, CURLAUTH_NTLM_WB, CURLFTP_CREATE_DIR, CURLFTP_CREATE_DIR_NONE, CURLFTP_CREATE_DIR_RETRY, CURLHEADER_SEPARATE, CURLHEADER_UNIFIED, CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE, CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE, CURLMOPT_MAX_HOST_CONNECTIONS, CURLMOPT_MAX_PIPELINE_LENGTH, CURLMOPT_MAX_TOTAL_CONNECTIONS, CURLOPT_CONNECT_TO, CURLOPT_DEFAULT_PROTOCOL, CURLOPT_DNS_INTERFACE, CURLOPT_DNS_LOCAL_IP4, CURLOPT_DNS_LOCAL_IP6, CURLOPT_EXPECT_100_TIMEOUT_MS, CURLOPT_HEADEROPT, CURLOPT_LOGIN_OPTIONS, CURLOPT_PATH_AS_IS, CURLOPT_PINNEDPUBLICKEY, CURLOPT_PIPEWAIT, CURLOPT_PROXY_SERVICE_NAME, CURLOPT_PROXYHEADER, CURLOPT_SASL_IR, CURLOPT_SERVICE_NAME, CURLOPT_SSL_ENABLE_ALPN, CURLOPT_SSL_ENABLE_NPN, CURLOPT_SSL_FALSESTART, CURLOPT_SSL_VERIFYSTATUS, CURLOPT_STREAM_WEIGHT, CURLOPT_TCP_FASTOPEN, CURLOPT_TFTP_NO_OPTIONS, CURLOPT_UNIX_SOCKET_PATH, CURLOPT_XOAUTH2_BEARER, CURLPROTO_SMB, CURLPROTO_SMBS, CURLPROXY_HTTP_1_0, CURLSSH_AUTH_AGENT et CURLSSLOPT_NO_REVOKE.

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);
?>

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
  • CURLFile
  • CURLStringFile


Ferme un gestionnaire partagé cURL

  • « curl_setopt
  • curl_share_errno »
  • PHP Manual
  • Fonctions cURL
  • Ferme un gestionnaire partagé cURL

curl_share_close

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

curl_share_close — Ferme un gestionnaire partagé cURL

Description

curl_share_close(CurlShareHandle $share_handle): void

Note:

Cette fonction n'a aucun effet. Antérieur à PHP 8.0.0, cette fonction était utilisé pour fermer une ressource.

Ferme un gestionnaire partagé cURL et libère toutes les ressources associées.

Liste de paramètres

share_handle

Un gestionnaire cURL partagé retourné par curl_share_init().

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version | Description
8.0.0 | share_handle attend désormais une instance de CurlShareHandle; auparavant; une resource était attendue.

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


Retourne le dernier numéro d'erreur du gestionnaire partagé cURL

  • « curl_share_close
  • curl_share_init »
  • PHP Manual
  • Fonctions cURL
  • Retourne le dernier numéro d'erreur du gestionnaire partagé cURL

curl_share_errno

(PHP 7 >= 7.1.0, PHP 8)

curl_share_errno — Retourne le dernier numéro d'erreur du gestionnaire partagé cURL

Description

curl_share_errno(CurlShareHandle $share_handle): int

Retourne un entier contenant le dernier numéro d'erreur du gestionnaire partagé cURL.

Liste de paramètres

share_handle

Un gestionnaire cURL partagé retourné par curl_share_init().

Valeurs de retour

Retourne un entier contenant le dernier numéro d'erreur du gestionnaire partagé cURL.

Historique

Version | Description
8.0.0 | The function no longer returns false on failure.
8.0.0 | share_handle attend désormais une instance de CurlShareHandle; auparavant; une resource était attendue.

Voir aussi

  • curl_errno() - Retourne le dernier message d'erreur cURL


Initialise un gestionnaire partagé cURL

  • « curl_share_errno
  • curl_share_setopt »
  • PHP Manual
  • Fonctions cURL
  • Initialise un gestionnaire partagé cURL

curl_share_init

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

curl_share_init — Initialise un gestionnaire partagé cURL

Description

curl_share_init(): CurlShareHandle

Autorise le partage de données entre gestionnaires cURL.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un gestionnaire cURL partagé.

Historique

Version | Description
8.0.0 | Cette fonction retourne désormais une instance de CurlShareHandle; auparavant, une resource était retournée.

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_share_strerror »
  • PHP Manual
  • Fonctions cURL
  • Définit une option du gestionnaire partagé cURL

curl_share_setopt

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

curl_share_setopt — Définit une option du gestionnaire partagé cURL

Description

curl_share_setopt(CurlShareHandle $share_handle, int $option, mixed $value): bool

Définit une option sur le gestionnaire partagé cURL fourni.

Liste de paramètres

share_handle

Un gestionnaire cURL partagé retourné par 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 reconnexion 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.

Historique

Version | Description
8.0.0 | share_handle attend désormais une instance de CurlShareHandle; auparavant; une resource était attendue.

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 une chaîne qui décrit le code d'erreur fournit

  • « curl_share_setopt
  • curl_strerror »
  • PHP Manual
  • Fonctions cURL
  • Retourne une chaîne qui décrit le code d'erreur fournit

curl_share_strerror

(PHP 7 >= 7.1.0, PHP 8)

curl_share_strerror — Retourne une chaîne qui décrit le code d'erreur fournit

Description

curl_share_strerror(int $error_code): ?string

Retourne un message d'erreur textuel décrivant le code d'erreur fournit.

Liste de paramètres

error_code

L'une des constantes des » codes d'erreurs cURL.

Valeurs de retour

Retourne une description de l'erreur ou null pour les codes d'erreurs invalides.

Voir aussi

  • curl_share_errno() - Retourne le dernier numéro d'erreur du gestionnaire partagé cURL
  • curl_strerror() - Retourne la chaîne descriptive du code erreur fourni


Retourne la chaîne descriptive du code erreur fourni

  • « curl_share_strerror
  • curl_unescape »
  • PHP Manual
  • Fonctions cURL
  • Retourne la chaîne descriptive du code erreur fourni

curl_strerror

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

curl_strerror — Retourne la chaîne descriptive du code erreur fourni

Description

curl_strerror(int $error_code): ?string

Retourne le message d'erreur décrivant le code erreur fourni.

Liste de paramètres

error_code

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_upkeep »
  • PHP Manual
  • Fonctions cURL
  • Décode l'URL fourni

curl_unescape

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

curl_unescape — Décode l'URL fourni

Description

curl_unescape(CurlHandle $handle, string $string): string|false

Cette fonction décode l'URL fourni.

Liste de paramètres

handle

Un gestionnaire cURL retourné par curl_init().

string

L'URL encodé, à décoder.

Valeurs de retour

Retourne la chaîne décodée ou false si une erreur survient.

Historique

Version | Description
8.0.0 | handle attend désormais une instance de CurlHandle; auparavant; une resource était attendue.

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


Effectue les contrôles de maintenance de la connexion

  • « curl_unescape
  • curl_version »
  • PHP Manual
  • Fonctions cURL
  • Effectue les contrôles de maintenance de la connexion

curl_upkeep

(PHP 8 >= 8.2.0)

curl_upkeep — Effectue les contrôles de maintenance de la connexion

Description

curl_upkeep(CurlHandle $handle): bool

Disponible si construit avec libcurl >= 7.62.0.

Certains protocoles ont des mécanismes de "maintien de la connexion". Ces mécanismes envoient généralement du trafic sur les connexions existantes afin de les maintenir en vie ; Cela permet par exemple d'éviter que les connexions ne soient fermées à cause de pare-feu trop zélés.

Le maintien de la connexion n'est actuellement disponible que pour les connexions HTTP/2. Une petite quantité de trafic est généralement envoyée pour maintenir une connexion en vie. HTTP/2 maintient sa connexion en envoyant une trame HTTP/2 PING.

Liste de paramètres

handle

Un gestionnaire cURL retourné par curl_init().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 Exemple de curl_upkeep()

<?php
$url = "https://example.com";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTP_VERSION,CURL_HTTP_VERSION_2_0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_UPKEEP_INTERVAL_MS, 200);
if (curl_exec($ch)) {
usleep(300);
var_dump(curl_upkeep($ch));
}
curl_close($ch);
?>

Voir aussi

  • curl_init() - Initialise une session cURL


Retourne la version courante de cURL

  • « curl_upkeep
  • CurlHandle »
  • PHP Manual
  • Fonctions cURL
  • Retourne la version courante de cURL

curl_version

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

curl_version — Retourne la version courante de cURL

Description

curl_version(): array|false

Retourne des informations sur la version cURL.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau associatif contenant les éléments suivants :

Clé | 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

Historique

Version | Description
8.0.0 | Le paramètre optionnel age a été supprimée.
7.4.0 | Le paramètre optionnel age est obsolète ; si une valeur est fournit, elle est ignoré.

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 CurlHandle

(PHP 8)

Introduction

Une classe totalement opaque qui remplace les ressources curl à partir de PHP 8.0.0.

Synopsis de la classe

final class CurlHandle {
}


La classe CurlMultiHandle

(PHP 8)

Introduction

Une classe totalement opaque qui remplace les ressources curl_multi à partir de PHP 8.0.0.

Synopsis de la classe

final class CurlMultiHandle {
}


La classe CurlShareHandle

(PHP 8)

Introduction

Une classe totalement opaque qui remplace les ressources curl_share à partir de PHP 8.0.0.

Synopsis de la classe

final class CurlShareHandle {
}


La classe CURLFile

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Introduction

Cette classe ou CURLStringFile doit être utilisé pour transférer un fichier avec des constantes CURLOPT_POSTFIELDS.

La désérialisation des instances CURLFile n'est pas permit. À partir de PHP 7.4.0, la sérialisation est interdite en premier lieu.

Synopsis de la classe

class CURLFile {
/* Propriétés */
public string $name = "";
public string $mime = "";
public string $postname = "";
/* Méthodes */
public __construct(string $filename, ?string $mime_type = null, ?string $posted_filename = null)
public getFilename(): string
public getMimeType(): string
public getPostFilename(): string
public setMimeType(string $mime_type): void
public setPostFilename(string $posted_filename): 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()
  • CURLStringFile

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


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, PHP 8)

CURLFile::__construct -- curl_file_create — Crée un objet CURLFile

Description

Style orienté objet

public CURLFile::__construct(string $filename, ?string $mime_type = null, ?string $posted_filename = null)

Style procédural

curl_file_create(string $filename, ?string $mime_type = null, ?string $posted_filename = null): CURLFile

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.

mime_type

Type MIME du fichier.

posted_filename

Nom du fichier à utiliser dans les données téléchargées.

Valeurs de retour

Retourne un objet CURLFile.

Historique

Version | Description
8.0.0 | mime_type and posted_filename are nullable now; previously their default was 0.

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)
  }
}

Exemple #2 Exemple de téléversement de plusieurs fichiers avec CURLFile::__construct()

Style orienté objet

<?php
$request = curl_init('http://www.example.com/upload.php');
curl_setopt($request, CURLOPT_POST, true);
curl_setopt($request, CURLOPT_SAFE_UPLOAD, true);
curl_setopt($request, CURLOPT_POSTFIELDS, [
'blob[0]' => new CURLFile(realpath('first-file.jpg'), 'image/jpeg'),
'blob[1]' => new CURLFile(realpath('second-file.txt'), 'text/plain'),
'blob[2]' => new CURLFile(realpath('third-file.exe'), 'application/octet-stream'),
]);
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);

echo curl_exec($request);

var_dump(curl_getinfo($request));

curl_close($request);

Style procédural

<?php
// procedural
$request = curl_init('http://www.example.com/upload.php');
curl_setopt($request, CURLOPT_POST, true);
curl_setopt($request, CURLOPT_SAFE_UPLOAD, true);
curl_setopt($request, CURLOPT_POSTFIELDS, [
'blob[0]' => curl_file_create(realpath('first-file.jpg'), 'image/jpeg'),
'blob[1]' => curl_file_create(realpath('second-file.txt'), 'text/plain'),
'blob[2]' => curl_file_create(realpath('third-file.exe'), 'application/octet-stream'),
]);
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);

echo curl_exec($request);

var_dump(curl_getinfo($request));

curl_close($request);

L'exemple ci-dessus va afficher :

array(26) {
  ["url"]=>
  string(31) "http://www.example.com/upload.php"
  ["content_type"]=>
  string(24) "text/html; CHARSET=Windows-1252"
  ["http_code"]=>
  int(200)
  ["header_size"]=>
  int(198)
  ["request_size"]=>
  int(196)
  ["filetime"]=>
  int(-1)
  ["ssl_verify_result"]=>
  int(0)
  ["redirect_count"]=>
  int(0)
  ["total_time"]=>
  float(0.060062)
  ["namelookup_time"]=>
  float(0.028575)
  ["connect_time"]=>
  float(0.029011)
  ["pretransfer_time"]=>
  float(0.029121)
  ["size_upload"]=>
  float(3230730)
  ["size_download"]=>
  float(811)
  ["speed_download"]=>
  float(13516)
  ["speed_upload"]=>
  float(53845500)
  ["download_content_length"]=>
  float(811)
  ["upload_content_length"]=>
  float(3230730)
  ["starttransfer_time"]=>
  float(0.030355)
  ["redirect_time"]=>
  float(0)
  ["redirect_url"]=>
  string(0) ""
  ["primary_ip"]=>
  string(13) "0.0.0.0"
  ["certinfo"]=>
  array(0) {
  }
  ["primary_port"]=>
  int(80)
  ["local_ip"]=>
  string(12) "0.0.0.0"
  ["local_port"]=>
  int(34856)
}

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, PHP 8)

CURLFile::getFilename — Récupère le nom du fichier

Description

public CURLFile::getFilename(): string

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, PHP 8)

CURLFile::getMimeType — Récupère le type MIME

Description

public CURLFile::getMimeType(): string

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, PHP 8)

CURLFile::getPostFilename — Récupère le nom de fichier pour POST

Description

public CURLFile::getPostFilename(): string

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, PHP 8)

CURLFile::setMimeType — Définit le type MIME

Description

public CURLFile::setMimeType(string $mime_type): void

Liste de paramètres

mime_type

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
  • CURLStringFile »
  • PHP Manual
  • CURLFile
  • Définit le nom du fichier pour POST

CURLFile::setPostFilename

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

CURLFile::setPostFilename — Définit le nom du fichier pour POST

Description

public CURLFile::setPostFilename(string $posted_filename): void

Liste de paramètres

posted_filename

Nom du fichier à utiliser pour les données POST.

Valeurs de retour

Aucune valeur n'est retournée.


La classe CURLStringFile

(PHP 8 >= 8.1.0)

Introduction

CURLStringFile permet de télécharger un fichier directement à partir d'une variable. Ceci est similaire à CURLFile, mais fonctionne avec le contenu du fichier, et non avec le nom du fichier. Cette classe ou CURLFile doit être utilisée pour télécharger le contenu du fichier avec CURLOPT_POSTFIELDS.

Synopsis de la classe

class CURLStringFile {
/* Propriétés */
public string $data;
public string $postname;
public string $mime;
/* Méthodes */
public __construct(string $data, string $postname, string $mime = "application/octet-stream")
}

Propriétés

data

Le contenu à télécharger.

postname

Le nom du fichier à utiliser dans les données de téléchargement.

mime

Le type MIME du fichier (par défaut, application/octet-stream).

Voir aussi

  • curl_setopt()
  • CURLFile

Sommaire

  • CURLStringFile::__construct — Crée un objet CURLStringFile


Crée un objet CURLStringFile

  • « CURLStringFile
  • Event »
  • PHP Manual
  • CURLStringFile
  • Crée un objet CURLStringFile

CURLStringFile::__construct

(PHP 8 >= 8.1.0)

CURLStringFile::__construct — Crée un objet CURLStringFile

Description

public CURLStringFile::__construct(string $data, string $postname, string $mime = "application/octet-stream")

Crée un objet CURLStringFile, utilisé pour télécharger un fichier avec CURLOPT_POSTFIELDS.

Liste de paramètres

data

Le contenu à télécharger.

postname

Le nom du fichier à utiliser dans les données à télécharger.

mime

Le type MIME du fichier (par défaut : application/octet-stream).

Exemples

Exemple #1 Exemple de CURLStringFile::__construct()

<?php
/* http://example.com/upload.php:
<?php
var_dump($_FILES);
var_dump(file_get_contents($_FILES['test_string']['tmp_name']));
?>
*/

// Crée un handle cURL
$ch = curl_init('http://example.com/upload.php');

// Crée un objet CURLStringFile
$cstringfile = new CURLStringFile('test upload contents','test.txt','text/plain');

// Assigne les data POST
$data = array('test_string' => $cstringfile);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

// Execute le handle
curl_exec($ch);
?>

L'exemple ci-dessus va afficher :

array(1) {
  ["test_string"]=>
  array(5) {
    ["name"]=>
    string(8) "test.txt"
    ["type"]=>
    string(10) "text/plain"
    ["tmp_name"]=>
    string(14) "/tmp/phpTtaoCz"
    ["error"]=>
    int(0)
    ["size"]=>
    int(20)
  }
}
string(20) "test upload contents"

Voir aussi

  • curl_setopt() - Définit une option de transmission cURL


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 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 fonctionnalité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 — Sérialise 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 fonctionnalité de méthode d'événement demandée par l'application
    • EventConfig::setFlags — Sets one or more flags to configure the eventual EventBase will be initialized
    • 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()
  • EventException — The EventException class


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 fonctionnalité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 : » https://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();
?>

Résultat de l'exemple ci-dessus est 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 autosigné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 autosigné, 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 "fonctionnalité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/deleting events\n";
($features & EventConfig::FEATURE_FDS) and print "FDS - arbitrary file descriptor types, and not just sockets\n";

// Nécessite la fonctionnalité FDS
if ($cfg->requireFeatures(EventConfig::FEATURE_FDS)) {
echo "La fonctionnalité 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();
?>

Résultat de l'exemple ci-dessus est 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();
?>

Résultat de l'exemple ci-dessus est 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 :

callback( mixed $fd = null , int $what = ?, mixed $arg = null ): void

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 :

callback( mixed $arg = null ): void

arg

Données utilisateurs personnalitées.

La méthode Event::signal() attend une fonction de rappel correspondant au prototype suivant :

callback( int $signum = ?, mixed $arg = null ): void

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 class Event {
/* Constantes */
const int ET = 32;
const int PERSIST = 16;
const int READ = 2;
const int WRITE = 4;
const int SIGNAL = 8;
const int TIMEOUT = 1;
/* Propriétés */
public readonly bool $pending;
/* Méthodes */
public add( float $timeout = ?): bool
public __construct(
EventBase $base ,
mixed $fd ,
int $what ,
callable $cb ,
mixed $arg = NULL
)
public del(): bool
public free(): void
public static getSupportedMethods(): array
public pending( int $flags ): bool
public set(
EventBase $base ,
mixed $fd ,
int $what = ?,
callable $cb = ?,
mixed $arg = ?
): bool
public setPriority( int $priority ): bool
public setTimer( EventBase $base , callable $cb , mixed $arg = ?): bool
public static signal(
EventBase $base ,
int $signum ,
callable $cb ,
mixed $arg = ?
): Event
public static timer( EventBase $base , callable $cb , mixed $arg = ?): Event
}

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 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 event >= 1.2.6-beta)

Event::add — Bascule un évènement en attente

Description

public Event::add( float $timeout = ?): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 Ajout d'un signal personnalisé

<?php
/*
Lancez dans une fenêtre de terminal :

$ php examples/signal.php

Dans une autre fenêtre de terminal, trouvez le pid et envoyez SIGTERM, par exemple :

$ 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 la première fenêtre du terminal, vous devriez voir ce qui suit :

Signal attrapé 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 "Signal attrapé $no\n";
$this->base->exit();
}
}

$base = new EventBase();
$c = new MyEventSignal($base);

$base->loop();
?>

Résultat de l'exemple ci-dessus est similaire à :

Signal attrapé 15

Exemple #2 Ajout d'une minuterie

<?php

$base = new EventBase();
$n = 2;
$e = Event::timer($base, function($n) use (&$e) {
echo "$n secondes écoulées\n";
$e->delTimer();
}, $n);
$e->add($n);
$base->loop();
?>

Résultat de l'exemple ci-dessus est similaire à :

2 secondes écoulées

Voir aussi

  • Event::add()
  • Event::del() - Supprime un événement de la liste des événements surveillés
  • Event::signal() - Construit un objet d'événement signal
  • Event::timer() - Construit un objet d'événement timer


Alias de Event::add

  • « Event::add
  • Event::addTimer »
  • PHP Manual
  • Event
  • Alias de Event::add

Event::addSignal

(PECL event >= 1.2.6-beta)

Event::addSignal — Alias de Event::add()

Description

Cette méthode est un alias de: Event::add()


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

Cette méthode est un alias de: Event::add()


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.

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 event >= 1.2.6-beta)

Event::del — Supprime un événement de la liste des événements surveillés

Description

public Event::del(): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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

Cette méthode est un alias de: Event::del()


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

Cette méthode est un alias de: Event::del()


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 event >= 1.2.6-beta)

Event::free — Supprime une événement de la liste des événements surveillés et libère les ressources associées

Description

public 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 Event::getSupportedMethods(): array

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 Event::pending( int $flags ): bool

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 event >= 1.2.6-beta)

Event::set — Re-configure l'événement

Description

public Event::set(
EventBase $base ,
mixed $fd ,
int $what = ?,
callable $cb = ?,
mixed $arg = ?
): bool

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

Une ressource de flux, une ressource de socket, ou un descripteur numérique de fichier. Pour les événements de type minuteur passez -1. Pour les événements de type signal passez le numéro du signal, par exemple SIGHUP.

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.


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 Event::setPriority( int $priority ): bool

Défini la priorité de l'événement.

Liste de paramètres

priority

La priorité de l'événement.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.


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 Event::setTimer( EventBase $base , callable $cb , mixed $arg = ?): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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::signal(
EventBase $base ,
int $signum ,
callable $cb ,
mixed $arg = ?
): Event

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::timer( EventBase $base , callable $cb , mixed $arg = ?): Event

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 class EventBase {
/* Constants */
const int LOOP_ONCE = 1;
const int LOOP_NONBLOCK = 2;
const int NOLOCK = 1;
const int STARTUP_IOCP = 4;
const int NO_CACHE_TIME = 8;
const int EPOLL_USE_CHANGELIST = 16;
/* Méthodes */
public __construct( EventConfig $cfg = ?)
public dispatch(): void
public exit( float $timeout = ?): bool
public free(): void
public getFeatures(): int
public getMethod(): string
public getTimeOfDayCached(): float
public gotExit(): bool
public gotStop(): bool
public loop( int $flags = ?): bool
public priorityInit( int $n_priorities ): bool
public reInit(): bool
public stop(): bool
}

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 fonctionnalité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.

Erreurs / Exceptions

Si EventBase ne peut pas être construit avec la configuration fournie, une exception de type EventException sera déclenchée.

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 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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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 EventBase::exit( float $timeout = ?): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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 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 fonctionnalités supportées

  • « EventBase::free
  • EventBase::getMethod »
  • PHP Manual
  • EventBase
  • Retourne un masque des fonctionnalités supportées

EventBase::getFeatures

(PECL event >= 1.2.6-beta)

EventBase::getFeatures — Retourne un masque des fonctionnalités supportées

Description

public EventBase::getFeatures(): int

Retourne un masque des fonctionnalité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 fonctionnalité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 "fonctionnalité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/deleting 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 EventBase::getMethod(): string

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;

?>

Résultat de l'exemple ci-dessus est 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 fonctionnalité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 EventBase::getTimeOfDayCached(): float

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 EventBase::gotExit(): bool

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 EventBase::gotStop(): bool

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 EventBase::loop( int $flags = ?): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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 EventBase::priorityInit( int $n_priorities ): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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 EventBase::reInit(): bool

Re-initialise l'événement de base. Doit être appelée après un fork.

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.


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 EventBase::stop(): bool

Demande à event_base de stopper la distribution d'événements.

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

  • 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

class EventBuffer {
/* Constantes */
const int EOL_ANY = 0;
const int EOL_CRLF = 1;
const int EOL_CRLF_STRICT = 2;
const int EOL_LF = 3;
const int PTR_SET = 0;
const int PTR_ADD = 1;
/* Propriétés */
public readonly int $length;
public readonly int $contiguous_space;
/* Méthodes */
public add( string $data ): bool
public addBuffer( EventBuffer $buf ): bool
public appendFrom( EventBuffer $buf , int $len ): int
public __construct()
public copyout( string &$data , int $max_bytes ): int
public drain( int $len ): bool
public enableLocking(): void
public expand( int $len ): bool
public freeze( bool $at_front ): bool
public lock(): void
public prepend( string $data ): bool
public prependBuffer( EventBuffer $buf ): bool
public pullup( int $size ): string
public read( int $max_bytes ): string
public read( mixed $fd , int $howmuch ): int
public readLine( int $eol_style ): string
public search( string $what , int $start = -1 , int $end = -1 ): mixed
public searchEol( int $start = -1 , int $eol_style = EventBuffer::EOL_ANY ): mixed
public substr( int $start , int $length = ?): string
public unfreeze( bool $at_front ): bool
public unlock(): bool
public write( mixed $fd , int $howmuch = ?): int
}

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 — Sérialise 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 EventBuffer::add( string $data ): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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 EventBuffer::addBuffer( EventBuffer $buf ): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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 EventBuffer::appendFrom( EventBuffer $buf , int $len ): int

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
PECL event 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() - Sérialise 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()

Construit un objet EventBuffer.

Liste de paramètres

Cette fonction ne contient aucun paramètre.


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 EventBuffer::copyout( string &$data , int $max_bytes ): int

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 EventBuffer::drain( int $len ): bool

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

Cette fonction retourne true en cas de succès ou false 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


Description

  • « EventBuffer::drain
  • EventBuffer::expand »
  • PHP Manual
  • EventBuffer
  • Description

EventBuffer::enableLocking

(PECL event >= 1.2.6-beta)

EventBuffer::enableLocking —

Description

public 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 EventBuffer::expand( int $len ): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.


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 EventBuffer::freeze( bool $at_front ): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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 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 EventBuffer::prepend( string $data ): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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 EventBuffer::prependBuffer( EventBuffer $buf ): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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


Sérialise 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
  • Sérialise 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 — Sérialise les données du buffer et retourne le contenu du buffer sous la forme d'une chaîne

Description

public EventBuffer::pullup( int $size ): string

Sérialise 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 EventBuffer::read( int $max_bytes ): string

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
PECL event 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() - Sérialise 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 EventBuffer::read( mixed $fd , int $howmuch ): int

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() - Sérialise 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 EventBuffer::readLine( int $eol_style ): string

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() - Sérialise 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 EventBuffer::search( string $what , int $start = -1 , int $end = -1 ): mixed

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"));
?>

Résultat de l'exemple ci-dessus est 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 EventBuffer::searchEol( int $start = -1 , int $eol_style = EventBuffer::EOL_ANY ): mixed

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 EventBuffer::substr( int $start , int $length = ?): string

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 EventBuffer::unfreeze( bool $at_front ): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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 EventBuffer::unlock(): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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 EventBuffer::write( mixed $fd , int $howmuch = ?): int

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 class EventBufferEvent {
/* Constants */
const int READING = 1;
const int WRITING = 2;
const int EOF = 16;
const int ERROR = 32;
const int TIMEOUT = 64;
const int CONNECTED = 128;
const int OPT_CLOSE_ON_FREE = 1;
const int OPT_THREADSAFE = 2;
const int OPT_DEFER_CALLBACKS = 4;
const int OPT_UNLOCK_CALLBACKS = 8;
const int SSL_OPEN = 0;
const int SSL_CONNECTING = 1;
const int SSL_ACCEPTING = 2;
/* Propriétés */
public int $fd;
public int $priority;
public readonly EventBuffer $input;
public readonly EventBuffer $output;
/* Méthodes */
public close(): void
public connect( string $addr ): bool
public connectHost(
EventDnsBase $dns_base ,
string $hostname ,
int $port ,
int $family = EventUtil::AF_UNSPEC
): bool
public __construct(
EventBase $base ,
mixed $socket = null ,
int $options = 0 ,
callable $readcb = null ,
callable $writecb = null ,
callable $eventcb = null ,
mixed $arg = null
)
public static createPair( EventBase $base , int $options = 0 ): array
public disable( int $events ): bool
public enable( int $events ): bool
public free(): void
public getDnsErrorString(): string
public getEnabled(): int
public getInput(): EventBuffer
public getOutput(): EventBuffer
public read( int $size ): string
public readBuffer( EventBuffer $buf ): bool
public setCallbacks(
callable $readcb ,
callable $writecb ,
callable $eventcb ,
mixed $arg = ?
): void
public setPriority( int $priority ): bool
public setTimeouts( float $timeout_read , float $timeout_write ): bool
public setWatermark( int $events , int $lowmark , int $highmark ): void
public sslError(): string
public static sslFilter(
EventBase $base ,
EventBufferEvent $underlying ,
EventSslContext $ctx ,
int $state ,
int $options = 0
): EventBufferEvent
public sslGetCipherInfo(): string
public sslGetCipherName(): string
public sslGetCipherVersion(): string
public sslGetProtocol(): string
public sslRenegotiate(): void
public static sslSocket(
EventBase $base ,
mixed $socket ,
EventSslContext $ctx ,
int $state ,
int $options = ?
): EventBufferEvent
public write( string $data ): bool
public writeBuffer( EventBuffer $buf ): bool
}

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 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 EventBufferEvent::connect( string $addr ): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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");
}

/* Connexion à 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();

Résultat de l'exemple ci-dessus est 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();
?>

Résultat de l'exemple ci-dessus est 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 EventBufferEvent::connectHost(
EventDnsBase $dns_base ,
string $hostname ,
int $port ,
int $family = EventUtil::AF_UNSPEC
): bool

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 fonctionnalité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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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();
?>

Résultat de l'exemple ci-dessus est 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 ,
mixed $arg = 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.

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 EventBufferEvent::createPair( EventBase $base , int $options = 0 ): array

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
PECL event 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 EventBufferEvent::disable( int $events ): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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 EventBufferEvent::enable( int $events ): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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 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 EventBufferEvent::getDnsErrorString(): string

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 EventBufferEvent::getEnabled(): int

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 EventBufferEvent::getInput(): EventBuffer

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 EventBufferEvent::getOutput(): EventBuffer

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 EventBufferEvent::read( int $size ): string

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 EventBufferEvent::readBuffer( EventBuffer $buf ): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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 EventBufferEvent::setCallbacks(
callable $readcb ,
callable $writecb ,
callable $eventcb ,
mixed $arg = ?
): void

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 EventBufferEvent::setPriority( int $priority ): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.


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 EventBufferEvent::setTimeouts( float $timeout_read , float $timeout_write ): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.


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 EventBufferEvent::setWatermark( int $events , int $lowmark , int $highmark ): void

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 EventBufferEvent::sslError(): string

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::sslFilter(
EventBase $base ,
EventBufferEvent $underlying ,
EventSslContext $ctx ,
int $state ,
int $options = 0
): EventBufferEvent

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 EventBufferEvent::sslGetCipherInfo(): string

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 EventBufferEvent::sslGetCipherName(): string

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 EventBufferEvent::sslGetCipherVersion(): string

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 EventBufferEvent::sslGetProtocol(): string

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 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::sslSocket(
EventBase $base ,
mixed $socket ,
EventSslContext $ctx ,
int $state ,
int $options = ?
): EventBufferEvent

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 EventBufferEvent::write( string $data ): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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 EventBufferEvent::writeBuffer( EventBuffer $buf ): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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 :

callback( EventBufferEvent $bev = null , mixed $arg = null ): void

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 :

callback( EventBufferEvent $bev = null , int $events = 0 , mixed $arg = null ): void

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 class EventConfig {
/* Constants */
const int FEATURE_ET = 1;
const int FEATURE_O1 = 2;
const int FEATURE_FDS = 4;
/* Méthodes */
public avoidMethod( string $method ): bool
public __construct()
public requireFeatures( int $feature ): bool
public setFlags( int $flags ): bool
public setMaxDispatchInterval( int $max_interval , int $max_callbacks , int $min_priority ): void
}

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 fonctionnalité de méthode d'événement demandée par l'application
  • EventConfig::setFlags — Sets one or more flags to configure the eventual EventBase will be initialized
  • 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 EventConfig::avoidMethod( string $method ): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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()

Construit un objet EventConfig qui pourra être passé au constructeur EventBase::__construct().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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 fonctionnalité de méthode d'événement demandée par l'application

  • « EventConfig::__construct
  • EventConfig::setFlags »
  • PHP Manual
  • EventConfig
  • Entre dans une fonctionnalité de méthode d'événement demandée par l'application

EventConfig::requireFeatures

(PECL event >= 1.2.6-beta)

EventConfig::requireFeatures — Entre dans une fonctionnalité de méthode d'événement demandée par l'application

Description

public EventConfig::requireFeatures( int $feature ): bool

Entre dans une fonctionnalité de méthode d'événement demandée par l'application.

Liste de paramètres

feature

Masque de fonctionnalités demandées. Voir les constantes EventConfig::FEATURE_*.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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 fonctionnalité FDS
if ($cfg->requireFeatures(EventConfig::FEATURE_FDS)) {
echo "fonctionnalité 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";
}
?>

Résultat de l'exemple ci-dessus est similaire à :

fonctionnalité FDS demandée
FDS - types arbitraire de descripteur de fichier et non pas juste des sockets

Voir aussi

  • EventBase::getFeatures() - Retourne un masque des fonctionnalités supportées


Sets one or more flags to configure the eventual EventBase will be initialized

  • « EventConfig::requireFeatures
  • EventConfig::setMaxDispatchInterval »
  • PHP Manual
  • EventConfig
  • Sets one or more flags to configure the eventual EventBase will be initialized

EventConfig::setFlags

(PECL event >= 2.0.2-alpha)

EventConfig::setFlags — Sets one or more flags to configure the eventual EventBase will be initialized

Description

public EventConfig::setFlags( int $flags ): bool

Sets one or more flags to configure what parts of the eventual EventBase will be initialized, and how they'll work.

Liste de paramètres

flags

One of EventBase::LOOP_* constants. See EventBase constants.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Voir aussi

  • EventBase::getFeatures() - Retourne un masque des fonctionnalités supportées


Evite l'inversion des priorités

  • « EventConfig::setFlags
  • EventDnsBase »
  • PHP Manual
  • EventConfig
  • Evite l'inversion des priorités

EventConfig::setMaxDispatchInterval

(PECL event >= 2.1.0-alpha)

EventConfig::setMaxDispatchInterval — Evite l'inversion des priorités

Description

public EventConfig::setMaxDispatchInterval( int $max_interval , int $max_callbacks , int $min_priority ): void

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.


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 class EventDnsBase {
/* Constantes */
const int OPTION_SEARCH = 1;
const int OPTION_NAMESERVERS = 2;
const int OPTION_MISC = 4;
const int OPTION_HOSTSFILE = 8;
const int OPTIONS_ALL = 15;
const int DISABLE_WHEN_INACTIVE = 32768;
const int INITIALIZE_NAMESERVERS = 1;
const int NAMESERVERS_NO_DEFAULT = 65536;
/* Méthodes */
public __construct( EventBase $base , int|bool $initialize )
public addNameserverIp( string $ip ): bool
public addSearch( string $domain ): void
public clearSearch(): void
public countNameservers(): int
public loadHosts( string $hosts ): bool
public parseResolvConf( int $flags , string $filename ): bool
public setOption( string $option , string $value ): bool
public setSearchNdots( int $ndots ): bool
}

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.

EventDnsBase::DISABLE_WHEN_INACTIVE

Ne pas empêcher la boucle d'événements de libevent de se terminer lorsque nous n'avons pas de requêtes DNS actives.

EventDnsBase::INITIALIZE_NAMESERVERS

Traiter le fichier resolv.conf.

EventDnsBase::NAMESERVERS_NO_DEFAULT

Ne pas ajouter de serveur de noms par défaut s'il n'y a pas de serveurs de noms dans le 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 EventDnsBase::addNameserverIp( string $ip ): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.


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 EventDnsBase::addSearch( string $domain ): void

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 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 , int|bool $initialize )

Construit un objet EventDnsBase.

Liste de paramètres

base

Evénement de base.

initialize

Si initialize est true, il tente d'utiliser les paramètres par défaut du système d'exploitation sous-jacent pour configurer judicieusement la base DNS. Si c'est false, la base DNS est laissée non configurée, sans serveurs de noms ni options définies. Dans ce dernier cas, la base DNS doit être configurée manuellement, par exemple avec la méthode EventDnsBase::parseResolvConf().

Si initialize est un entier, il doit être l'un des drapeaux suivants:

Drapeau | Description
EventDnsBase::DISABLE_WHEN_INACTIVE | Ne pas empêcher la boucle d'événements de libevent de se terminer lorsque nous n'avons pas de requêtes DNS actives.
EventDnsBase::INITIALIZE_NAMESERVERS | Traiter le fichier resolv.conf.
EventDnsBase::NAMESERVERS_NO_DEFAULT | Ne pas ajouter de serveur de noms par défaut s'il n'y a pas de serveurs de noms dans le fichier resolv.conf.

Erreurs / Exceptions

Si initialize a un type autre que int|bool, une TypeError est déclenchée.

Si la valeur de initialize est invalide, une EventException est déclenchée.

Historique

Version | Description
PECL event 3.1.3 | Si initialize a un type autre que int|bool, une TypeError est déclenchée.
PECL event 3.1.0RC1 | Le type du paramètre initialize a été changé de bool à mixed. La valeur peut être soit bool (en préservant le sens précédent) ou l'une des constantes suivantes: EventDnsBase::DISABLE_WHEN_INACTIVE, EventDnsBase::INITIALIZE_NAMESERVERS, ou EventDnsBase::NAMESERVERS_NO_DEFAULT.


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 EventDnsBase::countNameservers(): int

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 EventDnsBase::loadHosts( string $hosts ): bool

Charge un fichier hosts (au même format que /etc/hosts).

Liste de paramètres

hosts

Chemin vers le fichier hosts.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.


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 EventDnsBase::parseResolvConf( int $flags , string $filename ): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.


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 EventDnsBase::setOption( string $option , string $value ): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.


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 EventDnsBase::setSearchNdots( int $ndots ): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.


La classe EventHttp

(PECL event >= 1.4.0-beta)

Introduction

Représente le serveur HTTP.

Synopsis de la classe

final class EventHttp {
/* Méthodes */
public accept( mixed $socket ): bool
public addServerAlias( string $alias ): bool
public bind( string $address , int $port ): void
public __construct( EventBase $base , EventSslContext $ctx = null )
public removeServerAlias( string $alias ): bool
public setAllowedMethods( int $methods ): void
public setCallback( string $path , string $cb , string $arg = ?): void
public setDefaultCallback( string $cb , string $arg = ?): void
public setMaxBodySize( int $value ): void
public setMaxHeadersSize( int $value ): void
public setTimeout( int $value ): void
}

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 EventHttp::accept( mixed $socket ): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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.
?>

Résultat de l'exemple ci-dessus est 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 EventHttp::addServerAlias( string $alias ): bool

Ajoute un alias du serveur pour l'objet serveur HTTP.

Liste de paramètres

alias

L'alias à ajouter.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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 EventHttp::bind( string $address , int $port ): void

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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();
?>

Résultat de l'exemple ci-dessus est 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.

Historique

Version | Description
PECL event 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();
?>

Résultat de l'exemple ci-dessus est 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 EventHttp::removeServerAlias( string $alias ): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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 EventHttp::setAllowedMethods( int $methods ): void

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 EventHttp::setCallback( string $path , string $cb , string $arg = ?): void

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 :

callback( EventHttpRequest $req = NULL , mixed $arg = NULL ): void

req

Un objet EventHttpRequest.

arg

Données personnalisées.

arg

Données personnalisées.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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();
?>

Résultat de l'exemple ci-dessus est 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 EventHttp::setDefaultCallback( string $cb , string $arg = ?): void

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 :

callback( EventHttpRequest $req = NULL , mixed $arg = NULL ): void

req

EventHttpRequest Objet.

arg

Données personnalisées.

arg

Données personnalisées fournies par l'utilisateur à la fonction de rappel.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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 EventHttp::setMaxBodySize( int $value ): void

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 EventHttp::setMaxHeadersSize( int $value ): void

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 EventHttp::setTimeout( int $value ): void

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

class EventHttpConnection {
/* Méthodes */
public __construct(
EventBase $base ,
EventDnsBase $dns_base ,
string $address ,
int $port ,
EventSslContext $ctx = null
)
public getBase(): EventBase
public getPeer( string &$address , int &$port ): void
public makeRequest( EventHttpRequest $req , int $type , string $uri ): bool
public setCloseCallback( callable $callback , mixed $data = ?): void
public setLocalAddress( string $address ): void
public setLocalPort( int $port ): void
public setMaxBodySize( string $max_size ): void
public setMaxHeadersSize( string $max_size ): void
public setRetries( int $retries ): void
public setTimeout( int $timeout ): void
}

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.

Historique

Version | Description
PECL event 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 EventHttpConnection::getBase(): EventBase

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 EventHttpConnection::getPeer( string &$address , int &$port ): void

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 EventHttpConnection::makeRequest( EventHttpRequest $req , int $type , string $uri ): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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();
?>

Résultat de l'exemple ci-dessus est 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 EventHttpConnection::setCloseCallback( callable $callback , mixed $data = ?): void

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 :

callback( EventHttpConnection $conn = null , mixed $arg = null ): void

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 EventHttpConnection::setLocalAddress( string $address ): void

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 EventHttpConnection::setLocalPort( int $port ): void

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 EventHttpConnection::setMaxBodySize( string $max_size ): void

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 EventHttpConnection::setMaxHeadersSize( string $max_size ): void

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 EventHttpConnection::setRetries( int $retries ): void

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 EventHttpConnection::setTimeout( int $timeout ): void

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

class EventHttpRequest {
/* Constants */
const int CMD_GET = 1;
const int CMD_POST = 2;
const int CMD_HEAD = 4;
const int CMD_PUT = 8;
const int CMD_DELETE = 16;
const int CMD_OPTIONS = 32;
const int CMD_TRACE = 64;
const int CMD_CONNECT = 128;
const int CMD_PATCH = 256;
const int INPUT_HEADER = 1;
const int OUTPUT_HEADER = 2;
/* Méthodes */
public addHeader( string $key , string $value , int $type ): bool
public cancel(): void
public clearHeaders(): void
public closeConnection(): void
public __construct( callable $callback , mixed $data = null )
public findHeader( string $key , string $type ): void
public free(): void
public closeConnection(): EventBufferEvent
public getCommand(): void
public closeConnection(): EventHttpConnection
public getHost(): string
public getInputBuffer(): EventBuffer
public getInputHeaders(): array
public getOutputBuffer(): EventBuffer
public getOutputHeaders(): void
public getResponseCode(): int
public getUri(): string
public removeHeader( string $key , string $type ): void
public sendError( int $error , string $reason = null ): void
public sendReply( int $code , string $reason , EventBuffer $buf = ?): void
public sendReplyChunk( EventBuffer $buf ): void
public sendReplyEnd(): void
public sendReplyStart( int $code , string $reason ): void
}

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 EventHttpRequest::addHeader( string $key , string $value , int $type ): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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 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 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 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 :

callback( EventHttpRequest $req = null , mixed $arg = null ): void
data

Données utilisateur personnalisées à passer à la fonction de rappel.

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 EventHttpRequest::findHeader( string $key , string $type ): void

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 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 EventHttpRequest::closeConnection(): EventBufferEvent

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 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 EventHttpRequest::closeConnection(): EventHttpConnection

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 EventHttpRequest::getHost(): string

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 EventHttpRequest::getInputBuffer(): EventBuffer

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 EventHttpRequest::getInputHeaders(): array

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 EventHttpRequest::getOutputBuffer(): EventBuffer

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 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 EventHttpRequest::getResponseCode(): int

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 EventHttpRequest::getUri(): string

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 EventHttpRequest::removeHeader( string $key , string $type ): void

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 EventHttpRequest::sendError( int $error , string $reason = null ): void

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 EventHttpRequest::sendReply( int $code , string $reason , EventBuffer $buf = ?): void

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 EventHttpRequest::sendReplyChunk( EventBuffer $buf ): void

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 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 EventHttpRequest::sendReplyStart( int $code , string $reason ): void

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 class EventListener {
/* Constants */
const int OPT_LEAVE_SOCKETS_BLOCKING = 1;
const int OPT_CLOSE_ON_FREE = 2;
const int OPT_CLOSE_ON_EXEC = 4;
const int OPT_REUSEABLE = 8;
const int 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 disable(): bool
public enable(): bool
public getBase(): void
public static getSocketName( string &$address , mixed &$port = ?): bool
public setCallback( callable $cb , mixed $arg = null ): void
public setErrorCallback( string $cb ): void
}

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 à Libevent de les laisser en mode 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'.

Historique

Version | Description
PECL event 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 EventListener::disable(): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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 EventListener::enable(): bool

Active un objet d'écoute d'événement de connexion.

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

  • 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 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 EventListener::getSocketName( string &$address , mixed &$port = ?): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.


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 EventListener::setCallback( callable $cb , mixed $arg = null ): void

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 :

callback(
EventListener $listener = null ,
mixed $fd = null ,
array $address = null ,
mixed $arg = null
): void

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 EventListener::setErrorCallback( string $cb ): void

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 :

callback( EventListener $listener = null , mixed $data = null ): void

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 class EventSslContext {
/* Constantes */
const int SSLv2_CLIENT_METHOD = 1;
const int SSLv3_CLIENT_METHOD = 2;
const int SSLv23_CLIENT_METHOD = 3;
const int TLS_CLIENT_METHOD = 4;
const int SSLv2_SERVER_METHOD = 5;
const int SSLv3_SERVER_METHOD = 6;
const int SSLv23_SERVER_METHOD = 7;
const int TLS_SERVER_METHOD = 8;
const int OPT_LOCAL_CERT = 1;
const int OPT_LOCAL_PK = 2;
const int OPT_PASSPHRASE = 3;
const int OPT_CA_FILE = 4;
const int OPT_CA_PATH = 5;
const int OPT_ALLOW_SELF_SIGNED = 6;
const int OPT_VERIFY_PEER = 7;
const int OPT_VERIFY_DEPTH = 8;
const int 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 autosigné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_*.

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 class EventUtil {
/* Constantes */
const int AF_INET = 2;
const int AF_INET6 = 10;
const int AF_UNSPEC = 0;
const int LIBEVENT_VERSION_NUMBER = 33559808;
const int SO_DEBUG = 1;
const int SO_REUSEADDR = 2;
const int SO_KEEPALIVE = 9;
const int SO_DONTROUTE = 5;
const int SO_LINGER = 13;
const int SO_BROADCAST = 6;
const int SO_OOBINLINE = 10;
const int SO_SNDBUF = 7;
const int SO_RCVBUF = 8;
const int SO_SNDLOWAT = 19;
const int SO_RCVLOWAT = 18;
const int SO_SNDTIMEO = 21;
const int SO_RCVTIMEO = 20;
const int SO_TYPE = 3;
const int SO_ERROR = 4;
const int SOL_SOCKET = 1;
const int SOL_TCP = 6;
const int SOL_UDP = 17;
const int IPPROTO_IP = 0;
const int IPPROTO_IPV6 = 41;
/* Méthodes */
abstract public __construct()
public static getLastSocketErrno( mixed $socket = null ): int
public static getLastSocketError( mixed $socket = ?): string
public static getSocketFd( mixed $socket ): int
public static getSocketName( mixed $socket , string &$address , mixed &$port = ?): bool
public static setSocketOption(
mixed $socket ,
int $level ,
int $optname ,
mixed $optval
): bool
public static 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()

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.


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 EventUtil::getLastSocketErrno( mixed $socket = null ): int

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 EventUtil::getLastSocketError( mixed $socket = ?): string

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 EventUtil::getSocketFd( mixed $socket ): int

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 descripteur de fichier numérique 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 EventUtil::getSocketName( mixed $socket , string &$address , mixed &$port = ?): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.


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 EventUtil::setSocketOption(
mixed $socket ,
int $level ,
int $optname ,
mixed $optval
): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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
  • EventException »
  • 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 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.


The EventException class

(No version information available, might only be in Git)

Introduction

A EventException is thrown when the Event extension methods encounter invalid user input or identify an unrecoverable error. This exception serves as a signal for developers to handle exceptional situations gracefully.

Synopsis de la classe

class EventException extends RuntimeException {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Error::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Error::getMessage(): string
final public Error::getPrevious(): ?Throwable
final public Error::getCode(): int
final public Error::getFile(): string
final public Error::getLine(): int
final public Error::getTrace(): array
final public Error::getTraceAsString(): string
public Error::__toString(): string
private Error::__clone(): void
}


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_append — Ajoute le contenu d'un fichier à un autre fichier sur le serveur FTP
    • 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 — Téléverse 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_mlsd — Retourne la liste des fichiers d'un dossier donné
    • 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
  • FTP\Connection — The FTP\Connection class


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.

Sous Windows, cette extension est toujours construite comme extension partagée, ainsi doit être activer dans le php.ini.


Types de ressources

Antérieur à PHP 8.1.0, cette extension utilisait un type de ressource, qui est l'identifiant de lien de la connexion FTP retourné par ftp_connect() ou 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 (int)

FTP_AUTOSEEK (int)

Voir ftp_set_option() pour plus d'informations.

FTP_AUTORESUME (int)

Déterminer automatiquement la position de reprise et la position de départ pour les requêtes GET et PUT (ne fonctionne que si FTP_AUTOSEEK est activé)

FTP_FAILED (int)

Le transfert asynchrone a échoué

FTP_FINISHED (int)

Le transfert asynchrone est terminé

FTP_MOREDATA (int)

Le transfert asynchrone est toujours actif

FTP_TEXT (int)

Alias de FTP_ASCII.

FTP_BINARY (int)

FTP_IMAGE (int)

Alias de FTP_BINARY.

FTP_TIMEOUT_SEC (int)

Voir ftp_set_option() pour plus d'informations.

FTP_USEPASVADDRESS (int)

Voir ftp_set_option() pour plus d'informations.


  • « 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
$ftp = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// Vérification de la connexion
if ((!$ftp) || (!$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($ftp, $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 de la connexion FTP
ftp_close($ftp);
?>


Fonctions FTP

Sommaire

  • ftp_alloc — Alloue de l'espace pour un téléchargement de fichier
  • ftp_append — Ajoute le contenu d'un fichier à un autre fichier sur le serveur FTP
  • 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 — Téléverse 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_mlsd — Retourne la liste des fichiers d'un dossier donné
  • 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_append »
  • PHP Manual
  • Fonctions FTP
  • Alloue de l'espace pour un téléchargement de fichier

ftp_alloc

(PHP 5, PHP 7, PHP 8)

ftp_alloc — Alloue de l'espace pour un téléchargement de fichier

Description

ftp_alloc(FTP\Connection $ftp, int $size, string &$response = null): bool

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

Une instance de FTP\Connection.

size

Le nombre d'octets à allouer.

response

Une représentation textuelle de la réponse du serveur qui sera retournée par référence dans response si une variable est fournie.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | La paramètre ftp attend désormais une instance de FTP\Connection ; auparavant, une ressource était attendu.

Exemples

Exemple #1 Exemple avec ftp_alloc()

<?php

$file = "/home/user/myfile";

// Connexion au serveur
$ftp = ftp_connect('ftp.example.com');
$login_result = ftp_login($ftp, 'anonymous', 'user@example.com');

if (ftp_alloc($ftp, filesize($file), $result)) {
echo "Espace alloué avec succès sur le serveur. Envoi de $file.\n";
ftp_put($ftp, '/incoming/myfile', $file, FTP_BINARY);
} else {
echo "Impossible d'allouer l'espace sur le serveur. Réponse du serveur : $result\n";
}

ftp_close($ftp);

?>

Voir aussi

  • ftp_put() - Charge un fichier sur un serveur FTP
  • ftp_fput() - Téléverse un fichier sur un serveur FTP


Ajoute le contenu d'un fichier à un autre fichier sur le serveur FTP

  • « ftp_alloc
  • ftp_cdup »
  • PHP Manual
  • Fonctions FTP
  • Ajoute le contenu d'un fichier à un autre fichier sur le serveur FTP

ftp_append

(PHP 7 >= 7.2.0, PHP 8)

ftp_append — Ajoute le contenu d'un fichier à un autre fichier sur le serveur FTP

Description

ftp_append(
FTP\Connection $ftp,
string $remote_filename,
string $local_filename,
int $mode = FTP_BINARY
): bool

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

ftp

Une instance de FTP\Connection.

remote_filename

local_filename

mode

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | La paramètre ftp attend désormais une instance de FTP\Connection ; auparavant, une ressource était attendu.


Change de dossier et passe au dossier parent

  • « ftp_append
  • ftp_chdir »
  • PHP Manual
  • Fonctions FTP
  • Change de dossier et passe au dossier parent

ftp_cdup

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_cdup — Change de dossier et passe au dossier parent

Description

ftp_cdup(FTP\Connection $ftp): bool

ftp_cdup() change de dossier et passe au dossier parent.

Liste de paramètres

ftp

Une instance de FTP\Connection.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | La paramètre ftp attend désormais une instance de FTP\Connection ; auparavant, une ressource était attendu.

Exemples

Exemple #1 Exemple avec ftp_cdup()

<?php
// Mise en place d'une connexion basique
$ftp = ftp_connect($ftp_server);

// Identification avec nom d'utilisateur et mot de passe
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// Modifie le dossier courant en html
ftp_chdir($ftp, 'html');

echo ftp_pwd($ftp); // /html

// Retour au dossier parent
if (ftp_cdup($ftp)) {
echo "succès de cdup\n";
} else {
echo "Echec de cdup\n";
}

echo ftp_pwd($ftp); // /

ftp_close($ftp);
?>

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, PHP 8)

ftp_chdir — Modifie le dossier FTP courant

Description

ftp_chdir(FTP\Connection $ftp, string $directory): bool

ftp_chdir() modifie le dossier courant en directory.

Liste de paramètres

ftp

Une instance de FTP\Connection.

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.

Historique

Version | Description
8.1.0 | La paramètre ftp attend désormais une instance de FTP\Connection ; auparavant, une ressource était attendu.

Exemples

Exemple #1 Exemple avec ftp_chdir()

<?php

// Mise en place d'une connexion basique
$ftp = ftp_connect($ftp_server)

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// Vérification de la connexion
if ((!$ftp) || (!$login_result)) {
die("Echec de la connexion FTP !");
}

echo "Dossier courant : " . ftp_pwd($ftp) . "\n";

// Tentative de modification du dossier en "somedir"
if (ftp_chdir($ftp, "somedir")) {
echo "Le dossier courant est maintenant : " . ftp_pwd($ftp) . "\n";
} else {
echo "Impossible de changer de dossier\n";
}

// Fermeture de la connexion
ftp_close($ftp);
?>

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, PHP 8)

ftp_chmod — Modifie les droits d'un fichier via FTP

Description

ftp_chmod(FTP\Connection $ftp, int $permissions, string $filename): int|false

ftp_chmod() modifie les droits d'accès au fichier filename sur le serveur FTP ftp, en lui attribuant les droits de permissions, spécifié sous la forme d'un entier en base octale.

Liste de paramètres

ftp

Une instance de FTP\Connection.

permissions

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.

Historique

Version | Description
8.1.0 | La paramètre ftp attend désormais une instance de FTP\Connection ; auparavant, une ressource était attendu.

Exemples

Exemple #1 Exemple avec ftp_chmod()

<?php
$file = 'public_html/index.php';

// Mise en place d'une connexion basique
$ftp = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// Tentative de modification des permissions du fichier $file en 644
if (ftp_chmod($ftp, 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($ftp);
?>

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, PHP 8)

ftp_close — Ferme une connexion FTP

Description

ftp_close(FTP\Connection $ftp): bool

ftp_close() ferme la connexion ftp 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

Une instance de FTP\Connection.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | La paramètre ftp attend désormais une instance de FTP\Connection ; auparavant, une ressource était attendu.

Exemples

Exemple #1 Exemple avec ftp_close()

<?php

// Mise en place d'une connexion basique
$ftp = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// Affichage du dossier courant
echo ftp_pwd($ftp); // /

// Fermeture de la connexion
ftp_close($ftp);
?>

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, PHP 8)

ftp_connect — Ouvre une connexion FTP

Description

ftp_connect(string $hostname, int $port = 21, int $timeout = 90): FTP\Connection|false

ftp_connect() ouvre une connexion FTP avec l'hôte hostname.

Liste de paramètres

hostname

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 FTP par défaut, 21, sera utilisé.

timeout

Ce paramètre spécifie le délai de connexion en secondes pour toutes les opérations ultérieures en 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 fonctions ftp_set_option() et ftp_get_option().

Valeurs de retour

Retourne une instance de FTP\Connection en cas de succès, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Retourne désormais une instance de FTP\Connection ; auparavant, une ressource était retournée.

Exemples

Exemple #1 Exemple avec ftp_connect()

<?php

$ftp_server = "ftp.example.com";

// Mise en place d'une connexion
$ftp = 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, PHP 8)

ftp_delete — Efface un fichier sur un serveur FTP

Description

ftp_delete(FTP\Connection $ftp, string $filename): bool

ftp_delete() efface le fichier filename sur un serveur FTP.

Liste de paramètres

ftp

Une instance de FTP\Connection.

filename

Le fichier à effacer.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | La paramètre ftp attend désormais une instance de FTP\Connection ; auparavant, une ressource était attendu.

Exemples

Exemple #1 Exemple avec ftp_delete()

<?php
$file = 'public_html/old.txt';

// Mise en place d'une connexion basique
$ftp = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// Tente d'effacer le fichier $file
if (ftp_delete($ftp, $file)) {
echo "$file effacé avec succès\n";
} else {
echo "Impossible d'effacer le fichier $file\n";
}

// Fermeture de la connexion
ftp_close($ftp);
?>


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, PHP 8)

ftp_exec — Exécute une commande sur un serveur FTP

Description

ftp_exec(FTP\Connection $ftp, string $command): bool

ftp_exec() envoie une commande SITE EXEC au serveur FTP, pour qu'il exécute le programme command.

Liste de paramètres

ftp

Une instance de FTP\Connection.

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.

Historique

Version | Description
8.1.0 | La paramètre ftp attend désormais une instance de FTP\Connection ; auparavant, une ressource était attendu.

Exemples

Exemple #1 Exemple avec ftp_exec()

<?php

// Initialisation de la variable
$command = 'ls -al >files.txt';

// Initialisation de la connexion
$ftp = ftp_connect($ftp_server);

// Identification
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// Éxécution d'une commande
if (ftp_exec($ftp, $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($ftp);

?>

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, PHP 8)

ftp_fget — Télécharge un fichier via FTP dans un fichier local

Description

ftp_fget(
FTP\Connection $ftp,
resource $stream,
string $remote_filename,
int $mode = FTP_BINARY,
int $offset = 0
): bool

ftp_fget() télécharge le fichier remote_filename depuis le serveur FTP et l'écrit dans le fichier identifié par stream.

Liste de paramètres

ftp

Une instance de FTP\Connection.

stream

Un pointeur de fichier ouvert dans lequel on écrit les données.

remote_filename

Le chemin vers le fichier distant.

mode

Le mode de transfert. Doit être soit FTP_ASCII, soit FTP_BINARY.

offset

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.

Historique

Version | Description
8.1.0 | La paramètre ftp attend désormais une instance de FTP\Connection ; auparavant, une ressource était attendu.
7.3.0 | Le paramètre mode est maintenant optionel. Précédemment il était obligatoire.

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
$ftp = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// Tente de téléchargement le fichier $remote_file et de le sauvegarder dans $handle
if (ftp_fget($ftp, $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($ftp);
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)


Téléverse un fichier sur un serveur FTP

  • « ftp_fget
  • ftp_get_option »
  • PHP Manual
  • Fonctions FTP
  • Téléverse un fichier sur un serveur FTP

ftp_fput

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_fput — Téléverse un fichier sur un serveur FTP

Description

ftp_fput(
FTP\Connection $ftp,
string $remote_filename,
resource $stream,
int $mode = FTP_BINARY,
int $offset = 0
): bool

ftp_fput() charge les données issues du fichier identifié par stream jusqu'à la fin du fichier.

Liste de paramètres

ftp

Une instance de FTP\Connection.

remote_filename

Le chemin vers le fichier distant.

stream

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.

offset

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.

Historique

Version | Description
8.1.0 | La paramètre ftp attend désormais une instance de FTP\Connection ; auparavant, une ressource était attendu.
7.3.0 | Le paramètre mode est maintenant optionnel. Précédemment il était obligatoire.

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
$ftp = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// Tente de charger le fichier $file
if (ftp_fput($ftp, $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($ftp);
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, PHP 8)

ftp_get_option — Lit différentes options pour la connexion FTP courante

Description

ftp_get_option(FTP\Connection $ftp, int $option): int|bool

ftp_get_option() retourne la valeur de l'option option depuis la connexion FTP spécifiée.

Liste de paramètres

ftp

Une instance de FTP\Connection.

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é.

Historique

Version | Description
8.1.0 | La paramètre ftp attend désormais une instance de FTP\Connection ; auparavant, une ressource était attendu.

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($ftp, 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, PHP 8)

ftp_get — Télécharge un fichier depuis un serveur FTP

Description

ftp_get(
FTP\Connection $ftp,
string $local_filename,
string $remote_filename,
int $mode = FTP_BINARY,
int $offset = 0
): bool

ftp_get() télécharge le fichier remote_filename depuis le serveur FTP, et le sauve dans le fichier local local_filename.

Liste de paramètres

ftp

Une instance de FTP\Connection.

local_filename

Le chemin vers le fichier local (sera écrasé si le fichier existe déjà).

remote_filename

Le chemin vers le fichier distant.

mode

Le mode de transfert. Doit être soit FTP_ASCII, soit FTP_BINARY.

offset

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.

Historique

Version | Description
8.1.0 | La paramètre ftp attend désormais une instance de FTP\Connection ; auparavant, une ressource était attendu.
7.3.0 | Le paramètre mode est maintenant optionnel. Précédemment il était obligatoire.

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
$ftp = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($ftp, $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($ftp, $local_file, $server_file, FTP_BINARY)) {
echo "Le fichier $local_file a été écrit avec succès\n";
} else {
echo "Il y a un problème\n";
}

// Fermeture de la connexion
ftp_close($ftp);

?>

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, PHP 8)

ftp_login — Identification sur un serveur FTP

Description

ftp_login(FTP\Connection $ftp, string $username, string $password): bool

ftp_login() identifie la connexion FTP sur le serveur, avec le nom d'utilisateur username et le mot de passe password.

Liste de paramètres

ftp

Une instance de FTP\Connection.

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.

Historique

Version | Description
8.1.0 | La paramètre ftp attend désormais une instance de FTP\Connection ; auparavant, une ressource était attendu.

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
$ftp = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");

// Tentative d'identification
if (@ftp_login($ftp, $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($ftp);
?>


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, PHP 8)

ftp_mdtm — Retourne la date de dernière modification d'un fichier sur un serveur FTP

Description

ftp_mdtm(FTP\Connection $ftp, string $filename): int

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

Une instance de FTP\Connection.

filename

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 qu'un horodatage locale Unix en cas de succès, ou -1 si une erreur survient.

Historique

Version | Description
8.1.0 | La paramètre ftp attend désormais une instance de FTP\Connection ; auparavant, une ressource était attendu.

Exemples

Exemple #1 Exemple avec ftp_mdtm()

<?php

$file = 'somefile.txt';

// Mise en place d'une connexion basique
$ftp = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// Récupération de la date de dernière modification
$buff = ftp_mdtm($ftp, $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($ftp);

?>


Crée un dossier sur un serveur FTP

  • « ftp_mdtm
  • ftp_mlsd »
  • PHP Manual
  • Fonctions FTP
  • Crée un dossier sur un serveur FTP

ftp_mkdir

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_mkdir — Crée un dossier sur un serveur FTP

Description

ftp_mkdir(FTP\Connection $ftp, string $directory): string|false

ftp_mkdir() crée le dossier nommé directory sur le serveur FTP.

Liste de paramètres

ftp

Une instance de FTP\Connection.

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.

Erreurs / Exceptions

Émet une erreur de niveau E_WARNING si le dossier existe déjà ou les permissions concernées empêche la création du dossier.

Historique

Version | Description
8.1.0 | La paramètre ftp attend désormais une instance de FTP\Connection ; auparavant, une ressource était attendu.

Exemples

Exemple #1 Exemple avec ftp_mkdir()

<?php

$dir = 'www';

// Mise en place d'une connexion basique
$ftp = ftp_connect($ftp_server);

// Identication avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// Tentative de création du dossier $dir
if (ftp_mkdir($ftp, $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($ftp);
?>

Voir aussi

  • ftp_rmdir() - Efface un dossier FTP


Retourne la liste des fichiers d'un dossier donné

  • « ftp_mkdir
  • ftp_nb_continue »
  • PHP Manual
  • Fonctions FTP
  • Retourne la liste des fichiers d'un dossier donné

ftp_mlsd

(PHP 7 >= 7.2.0, PHP 8)

ftp_mlsd — Retourne la liste des fichiers d'un dossier donné

Description

ftp_mlsd(FTP\Connection $ftp, string $directory): array|false

Liste de paramètres

ftp

Une instance de FTP\Connection.

directory

Le dossier à parcourir.

Valeurs de retour

Retourne un tableau de tableaux avec les informations des fichiers du dossier spécifié en cas de réussite ou false s'il y a une erreur.

Historique

Version | Description
8.1.0 | La paramètre ftp attend désormais une instance de FTP\Connection ; auparavant, une ressource était attendu.

Exemples

Exemple #1 Exemple avec ftp_mlsd()

<?php

// mise en place d'une connexion basique
$ftp = ftp_connect($ftp_server);

// connexion avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// récupère le contenue du dossier courant
$contents = ftp_mlsd($ftp, ".");

// affiche $contents
var_dump($contents);

?>

Résultat de l'exemple ci-dessus est similaire à :

array(5) {
  [0]=>
  array(8) {
    ["name"]=>
    string(1) "."
    ["modify"]=>
    string(14) "20171212154511"
    ["perm"]=>
    string(7) "flcdmpe"
    ["type"]=>
    string(4) "cdir"
    ["unique"]=>
    string(11) "811U5740002"
    ["UNIX.group"]=>
    string(2) "33"
    ["UNIX.mode"]=>
    string(4) "0755"
    ["UNIX.owner"]=>
    string(2) "33"
  }
  [1]=>
  array(8) {
    ["name"]=>
    string(2) ".."
    ["modify"]=>
    string(14) "20171212154511"
    ["perm"]=>
    string(7) "flcdmpe"
    ["type"]=>
    string(4) "pdir"
    ["unique"]=>
    string(11) "811U5740002"
    ["UNIX.group"]=>
    string(2) "33"
    ["UNIX.mode"]=>
    string(4) "0755"
    ["UNIX.owner"]=>
    string(2) "33"
  }
  [2]=>
  array(8) {
    ["name"]=>
    string(11) "public_html"
    ["modify"]=>
    string(14) "20171211171525"
    ["perm"]=>
    string(7) "flcdmpe"
    ["type"]=>
    string(3) "dir"
    ["unique"]=>
    string(11) "811U5740525"
    ["UNIX.group"]=>
    string(2) "33"
    ["UNIX.mode"]=>
    string(4) "0755"
    ["UNIX.owner"]=>
    string(2) "33"
  }
  [3]=>
  array(8) {
    ["name"]=>
    string(10) "public_ftp"
    ["modify"]=>
    string(14) "20171211174536"
    ["perm"]=>
    string(7) "flcdmpe"
    ["type"]=>
    string(3) "dir"
    ["unique"]=>
    string(11) "811U57405EE"
    ["UNIX.group"]=>
    string(2) "33"
    ["UNIX.mode"]=>
    string(4) "0755"
    ["UNIX.owner"]=>
    string(2) "33"
  }
  [4]=>
  array(8) {
    ["name"]=>
    string(3) "www"
    ["modify"]=>
    string(14) "www"
    ["perm"]=>
    string(7) "flcdmpe"
    ["type"]=>
    string(3) "dir"
    ["unique"]=>
    string(11) "811U5740780"
    ["UNIX.group"]=>
    string(2) "33"
    ["UNIX.mode"]=>
    string(4) "0755"
    ["UNIX.owner"]=>
    string(2) "33"
  }
}

Voir aussi

  • ftp_rawlist() - Fait une liste détaillée des fichiers d'un dossier
  • ftp_nlist() - Retourne la liste des fichiers d'un dossier


Reprend le téléchargement d'un fichier (non bloquant)

  • « ftp_mlsd
  • 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, PHP 8)

ftp_nb_continue — Reprend le téléchargement d'un fichier (non bloquant)

Description

ftp_nb_continue(FTP\Connection $ftp): int

ftp_nb_continue() reprend le téléchargement d'un fichier sur la connexion ftp, de manière asynchrone.

Liste de paramètres

ftp

Une instance de FTP\Connection.

Valeurs de retour

Retourne FTP_FAILED ou FTP_FINISHED ou FTP_MOREDATA.

Historique

Version | Description
8.1.0 | La paramètre ftp attend désormais une instance de FTP\Connection ; auparavant, une ressource était attendu.

Exemples

Exemple #1 Exemple avec ftp_nb_continue()

<?php

// Initialisation du téléchargement
$ret = ftp_nb_get($ftp, "test", "README", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

// Continue le téléchargement...
$ret = ftp_nb_continue($ftp);
}
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, PHP 8)

ftp_nb_fget — Lit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)

Description

ftp_nb_fget(
FTP\Connection $ftp,
resource $stream,
string $remote_filename,
int $mode = FTP_BINARY,
int $offset = 0
): int

ftp_nb_fget() lit le fichier remote_filename présent sur le serveur FTP ftp.

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

Une instance de FTP\Connection.

stream

Un pointeur de fichier ouvert dans lequel les données sont écrites.

remote_filename

Le chemin vers le fichier distant.

mode

Le mode de transfert. Doit être soir FTP_ASCII ou FTP_BINARY.

offset

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.

Historique

Version | Description
8.1.0 | La paramètre ftp attend désormais une instance de FTP\Connection ; auparavant, une ressource était attendu.
7.3.0 | Le paramètre mode est maintenant optionnel. Précédemment il était obligatoire.

Exemples

Exemple #1 Exemple avec ftp_nb_fget()

<?php

// Ouverture de quelques fichiers pour lecture
$file = 'index.php';
$fp = fopen($file, 'w');

$ftp = ftp_connect($ftp_server);

$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// Initialise le téléchargement
$ret = ftp_nb_fget($ftp, $fp, $file, FTP_BINARY);
while ($ret == FTP_MOREDATA) {

// Faites ce que vous voulez...
echo ".";

// Continue le téléchargement...
$ret = ftp_nb_continue($ftp);
}
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, PHP 8)

ftp_nb_fput — Écrit un fichier sur un serveur FTP, et le lit depuis un fichier (non bloquant)

Description

ftp_nb_fput(
FTP\Connection $ftp,
string $remote_filename,
resource $stream,
int $mode = FTP_BINARY,
int $offset = 0
): int

ftp_nb_fput() écrit le fichier remote_filename présent sur la machine locale, sur le serveur FTP ftp.

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

Une instance de FTP\Connection.

remote_filename

Le chemin vers le fichier distant.

stream

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.

offset

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.

Historique

Version | Description
8.1.0 | La paramètre ftp attend désormais une instance de FTP\Connection ; auparavant, une ressource était attendu.
7.3.0 | Le paramètre mode est maintenant optionel. Précédemment il était obligatoire.

Exemples

Exemple #1 Exemple avec ftp_nb_fput()

<?php

$file = 'index.php';

$fp = fopen($file, 'r');

$ftp = ftp_connect($ftp_server);

$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// Initialise le téléversement
$ret = ftp_nb_fput($ftp, $file, $fp, FTP_BINARY);
while ($ret == FTP_MOREDATA) {

// Faites ce que vous voulez...
echo ".";

// Continue le téléversement...
$ret = ftp_nb_continue($ftp);
}
if ($ret != FTP_FINISHED) {
echo "Il y a eu un problème lors du téléversement 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() - Téléverse 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, PHP 8)

ftp_nb_get — Lit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)

Description

ftp_nb_get(
FTP\Connection $ftp,
string $local_filename,
string $remote_filename,
int $mode = FTP_BINARY,
int $offset = 0
): int|false

ftp_nb_get() lit le fichier remote_filename présent sur le serveur FTP ftp 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

Une instance de FTP\Connection.

local_filename

Le chemin vers le fichier local (sera écrasé si le fichier existe déjà).

remote_filename

Le chemin vers le fichier distant.

mode

Le mode de transfert. Doit être soit FTP_ASCII ou FTP_BINARY.

offset

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, ou false en cas d'échec d'ouverture du fichier local.

Historique

Version | Description
8.1.0 | La paramètre ftp attend désormais une instance de FTP\Connection ; auparavant, une ressource était attendu.
7.3.0 | Le paramètre mode est maintenant optionnel. Précédemment il était obligatoire.

Exemples

Exemple #1 Exemple avec ftp_nb_get()

<?php

// Initialise le téléchargement
$ret = ftp_nb_get($ftp, "test", "README", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

// Faites ce que vous voulez...
echo ".";

// Continue le téléchargement...
$ret = ftp_nb_continue($ftp);
}
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($ftp, "test", "README", FTP_BINARY,
filesize("test"));
// Ou : $ret = ftp_nb_get($ftp, "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($ftp);
}
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($ftp, FTP_AUTOSEEK, false);

// Initialisation
$ret = ftp_nb_get($ftp, "newfile", "README", FTP_BINARY, 100);
while ($ret == FTP_MOREDATA) {

/* ... */

// Continue le téléchargement...
$ret = ftp_nb_continue($ftp);
}
?>

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, PHP 8)

ftp_nb_put — Envoie un fichier sur un serveur FTP (non-bloquant)

Description

ftp_nb_put(
FTP\Connection $ftp,
string $remote_filename,
string $local_filename,
int $mode = FTP_BINARY,
int $offset = 0
): int|false

ftp_nb_put() écrit le fichier remote_filename présent sur la machine locale, sur le serveur FTP ftp.

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

Une instance de FTP\Connection.

remote_filename

Le chemin vers le fichier distant.

local_filename

Le chemin vers le fichier local.

mode

Le mode de transfert. Doit être soit FTP_ASCII, soit FTP_BINARY.

offset

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, ou false en cas d'échec de l'ouverture du fichier local.

Historique

Version | Description
8.1.0 | La paramètre ftp attend désormais une instance de FTP\Connection ; auparavant, une ressource était attendu.
7.3.0 | Le paramètre mode est maintenant optionel. Précédemment il était obligatoire.

Exemples

Exemple #1 Exemple avec ftp_nb_put()

<?php

// Initialisation du chargement
$ret = ftp_nb_put($ftp, "test.remote", "test.local", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

// Faites ce que vous voulez...
echo ".";

// Continue le chargement...
$ret = ftp_nb_continue($ftp);
}
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($ftp, "test.remote", "test.local",
FTP_BINARY, ftp_size("test.remote"));
// Ou : $ret = ftp_nb_put($ftp, "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($ftp);
}
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() - Téléverse 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, PHP 8)

ftp_nlist — Retourne la liste des fichiers d'un dossier

Description

ftp_nlist(FTP\Connection $ftp, string $directory): array|false

Liste de paramètres

ftp

Une instance de FTP\Connection.

directory

Le dossier à lister. Ce paramètre peut également inclure des arguments, e.g. ftp_nlist($ftp, "-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.

Historique

Version | Description
8.1.0 | La paramètre ftp attend désormais une instance de FTP\Connection ; auparavant, une ressource était attendu.

Exemples

Exemple #1 Exemple avec ftp_nlist()

<?php

// Mise en place d'une connexion basique
$ftp = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// Récupération du contenu d'un dossier
$contents = ftp_nlist($ftp, ".");

// Affichage de $contents
var_dump($contents);

?>

Résultat de l'exemple ci-dessus est 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
  • ftp_mlsd() - Retourne la liste des fichiers d'un dossier donné


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, PHP 8)

ftp_pasv — Active ou désactive le mode passif

Description

ftp_pasv(FTP\Connection $ftp, bool $enable): bool

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

Une instance de FTP\Connection.

enable

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.

Historique

Version | Description
8.1.0 | La paramètre ftp attend désormais une instance de FTP\Connection ; auparavant, une ressource était attendu.

Exemples

Exemple #1 Exemple avec ftp_pasv()

<?php
$file = 'somefile.txt';
$remote_file = 'readme.txt';

// Mise en place d'une connexion basique
$ftp = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// Activation du mode passif
ftp_pasv($ftp, true);

// Chargement d'un fichier
if (ftp_put($ftp, $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($ftp);
?>


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, PHP 8)

ftp_put — Charge un fichier sur un serveur FTP

Description

ftp_put(
FTP\Connection $ftp,
string $remote_filename,
string $local_filename,
int $mode = FTP_BINARY,
int $offset = 0
): bool

ftp_put() enregistre le fichier local_filename sur le serveur FTP.

Liste de paramètres

ftp

Une instance de FTP\Connection.

remote_filename

Le chemin vers le fichier distant.

local_filename

Le chemin vers le fichier local.

mode

Le mode de transfert. Doit être soit FTP_ASCII, soit FTP_BINARY.

offset

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.

Historique

Version | Description
8.1.0 | La paramètre ftp attend désormais une instance de FTP\Connection ; auparavant, une ressource était attendu.
7.3.0 | Le paramètre mode est maintenant optionel. Précédemment il était obligatoire.

Exemples

Exemple #1 Exemple avec ftp_put()

<?php
$file = 'somefile.txt';
$remote_file = 'readme.txt';

// Mise en place d'une connexion basique
$ftp = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// Charge un fichier
if (ftp_put($ftp, $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($ftp);
?>

Voir aussi

  • ftp_pasv() - Active ou désactive le mode passif
  • ftp_fput() - Téléverse 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, PHP 8)

ftp_pwd — Retourne le nom du dossier courant

Description

ftp_pwd(FTP\Connection $ftp): string|false

Liste de paramètres

ftp

Une instance de FTP\Connection.

Valeurs de retour

Retourne le nom du dossier courant ou false si une erreur survient.

Historique

Version | Description
8.1.0 | La paramètre ftp attend désormais une instance de FTP\Connection ; auparavant, une ressource était attendu.

Exemples

Exemple #1 Exemple avec ftp_pwd()

<?php

// Mise en place d'une connexion basique
$ftp = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// Change le dossier en public_html
ftp_chdir($ftp, 'public_html');

// Affiche le dossier courant
echo ftp_pwd($ftp); // /public_html

// Fermeture de la connexion
ftp_close($ftp);
?>

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, PHP 8)

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, PHP 8)

ftp_raw — Envoie une commande FTP brute

Description

ftp_raw(FTP\Connection $ftp, string $command): ?array

ftp_raw() envoie la commande FTP brute command au serveur FTP identifié par ftp.

Liste de paramètres

ftp

Une instance de FTP\Connection.

command

La commande à exécuter.

Valeurs de retour

Retourne la réponse du serveur en tant qu'un tableau de chaînes, ou null en cas d'échec. Aucune analyse n'est faite sur la chaîne de réponse, ni si la commande a réussi.

Historique

Version | Description
8.1.0 | La paramètre ftp attend désormais une instance de FTP\Connection ; auparavant, une ressource était attendu.

Exemples

Exemple #1 Utilisation de ftp_raw() pour s'identifier manuellement sur un serveur FTP

<?php
$ftp = ftp_connect("ftp.example.com");

/* Ceci est l'équivalent de :
ftp_login($ftp, "joeblow", "secret");
*/

ftp_raw($ftp, "USER joeblow");
ftp_raw($ftp, "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, PHP 8)

ftp_rawlist — Fait une liste détaillée des fichiers d'un dossier

Description

ftp_rawlist(FTP\Connection $ftp, string $directory, bool $recursive = false): array|false

ftp_rawlist() exécute la commande FTP LIST, et retourne le résultat dans un tableau.

Liste de paramètres

ftp

Une instance de FTP\Connection.

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.

Historique

Version | Description
8.1.0 | La paramètre ftp attend désormais une instance de FTP\Connection ; auparavant, une ressource était attendu.

Exemples

Exemple #1 Exemple avec ftp_rawlist()

<?php

// Mise en place d'une connexion basique
$ftp = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// Récupère la liste des fichiers de /
$buff = ftp_rawlist($ftp, '/');

// Fermeture de la connexion
ftp_close($ftp);

// Affiche le buffer
var_dump($buff);
?>

Résultat de l'exemple ci-dessus est 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
  • ftp_mlsd() - Retourne la liste des fichiers d'un dossier donné


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, PHP 8)

ftp_rename — Renomme un fichier sur un serveur FTP

Description

ftp_rename(FTP\Connection $ftp, string $from, string $to): bool

ftp_rename() renomme le fichier ou le dossier from en to, sur le serveur ftp.

Liste de paramètres

ftp

Une instance de FTP\Connection.

from

L'ancien nom du dossier / fichier.

to

Le nouveau nom.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient. En cas d'échec (comme tenter de renommer un fichier inexistant), une erreur E_WARNING sera émise.

Historique

Version | Description
8.1.0 | La paramètre ftp attend désormais une instance de FTP\Connection ; auparavant, une ressource était attendu.

Exemples

Exemple #1 Exemple avec ftp_rename()

<?php
$old_file = 'somefile.txt.bak';
$new_file = 'somefile.txt';

// Mise en place d'une connexion basique
$ftp = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// Tentative de renommage de $old_file en $new_file
if (ftp_rename($ftp, $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($ftp);

?>


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, PHP 8)

ftp_rmdir — Efface un dossier FTP

Description

ftp_rmdir(FTP\Connection $ftp, string $directory): bool

ftp_rmdir() efface le dossier directory.

Liste de paramètres

ftp

Une instance de FTP\Connection.

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.

Historique

Version | Description
8.1.0 | La paramètre ftp attend désormais une instance de FTP\Connection ; auparavant, une ressource était attendu.

Exemples

Exemple #1 Exemple avec ftp_rmdir()

<?php

$dir = 'www/';

// Mise en place d'une connexion basique
$ftp = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// Tentative d'effacement du dossier $dir
if (ftp_rmdir($ftp, $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($ftp);

?>

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, PHP 8)

ftp_set_option — Modifie les options de la connexion FTP

Description

ftp_set_option(FTP\Connection $ftp, int $option, int|bool $value): bool

ftp_set_option() contrôle diverses options une connexion FTP spécifié.

Liste de paramètres

ftp

Une instance de FTP\Connection.

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.
FTP_USEPASVADDRESS | Lorsqu'il est désactivé, PHP ignore l'adresse IP retournée par le serveur FTP en réponse à la commande PASV et utilise plutôt l'adresse IP fournie dans le ftp_connect(). value doit être une valeur booléenne.

value

Ce paramètre dépend de l'option option que l'on veut modifier.

Historique

Version | Description
8.1.0 | La paramètre ftp attend désormais une instance de FTP\Connection ; auparavant, une ressource était attendu.

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($ftp, 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, PHP 8)

ftp_site — Exécute la commande SITE sur un serveur FTP

Description

ftp_site(FTP\Connection $ftp, string $command): bool

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

Une instance de FTP\Connection.

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.

Historique

Version | Description
8.1.0 | La paramètre ftp attend désormais une instance de FTP\Connection ; auparavant, une ressource était attendu.

Exemples

Exemple #1 Envoi d'une commande SITE à un serveur FTP

<?php
// Connexion au serveur FTP
$ftp = ftp_connect('ftp.example.com');
if (!$ftp) die('Impossible de se connecter au serveur ftp.example.com');

// Identification avec l'utilisateur "user" et le mot de passe "pass"
if (!ftp_login($ftp, '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($ftp, '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, PHP 8)

ftp_size — Retourne la taille d'un fichier

Description

ftp_size(FTP\Connection $ftp, string $filename): int

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

Une instance de FTP\Connection.

filename

Le fichier distant.

Valeurs de retour

Retourne la taille du fichier en cas de succès, ou -1 si une erreur survient.

Historique

Version | Description
8.1.0 | La paramètre ftp attend désormais une instance de FTP\Connection ; auparavant, une ressource était attendu.

Exemples

Exemple #1 Exemple avec ftp_size()

<?php

$file = 'somefile.txt';

// Mise en place d'une connexion basique
$ftp = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);

// Récupération de la taille du fichier $file
$res = ftp_size($ftp, $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($ftp);

?>

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, PHP 8)

ftp_ssl_connect — Ouvre une connexion FTP sécurisée avec SSL

Description

ftp_ssl_connect(string $hostname, int $port = 21, int $timeout = 90): FTP\Connection|false

ftp_ssl_connect() ouvre explicitement une connexion SSL-FTP à l'hostname spécifié. Cela implique que ftp_ssl_connect() réussira même si le serveur n'est pas configuré SSL-FTP, ou si le certificat est invalide. C'est uniquement quand ftp_login() est appelé, que le client recevra la commande AUTH FTP appropriée, alors ftp_login() échouera dans les cas mentionnés.

Note: Pourquoi cette fonction peut ne pas exister ?

Antérieur à PHP 7.0.0, ftp_ssl_connect() n'était disponible que si le module ftp et le support OpenSSL avaient été compilé statiquement dans php; cela signifie que, sous Windows, cette fonction n'était pas définie dans la version officielle de PHP. Afin d'avoir cette fonction disponible sous Windows, il était nécessaire de compiler ses 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

hostname

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 une instance de FTP\Connection en cas de succès, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Retourne désormais une instance de FTP\Connection ; auparavant, une ressource était retournée.

Exemples

Exemple #1 Exemple avec ftp_ssl_connect()

<?php

// Mise en place d'une connexion basique
$ftp = ftp_ssl_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass);
if (!$login_result) {
// PHP aura déjà soulevé un message de niveau E_WARNING dans ce cas
die("can't login");
}

echo ftp_pwd($ftp);

// Fermeture de la connexion SSL
ftp_close($ftp);
?>

Voir aussi

  • ftp_connect() - Ouvre une connexion FTP


Retourne un identifiant de type de serveur FTP

  • « ftp_ssl_connect
  • FTP\Connection »
  • PHP Manual
  • Fonctions FTP
  • Retourne un identifiant de type de serveur FTP

ftp_systype

(PHP 4, PHP 5, PHP 7, PHP 8)

ftp_systype — Retourne un identifiant de type de serveur FTP

Description

ftp_systype(FTP\Connection $ftp): string|false

ftp_systype() retourne le type de serveur FTP distant.

Liste de paramètres

ftp

Une instance de FTP\Connection.

Valeurs de retour

Retourne le type de serveur distant ou false si une erreur survient.

Historique

Version | Description
8.1.0 | La paramètre ftp attend désormais une instance de FTP\Connection ; auparavant, une ressource était attendu.

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";
}

?>

Résultat de l'exemple ci-dessus est similaire à :

Example.com est exécuté par UNIX


The FTP\Connection class

(PHP 8 >= 8.1.0)

Introduction

Une classe complètement opaque qui remplace la ressource ftp à partir de PHP 8.1.0.

Synopsis de la classe

final class FTP\Connection {
}


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
    • GearmanClient::wait — Wait for I/O activity on all connections in a client
  • 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 : » https://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 (int)
Quelque soit l'action entreprise, elle a été couronnée de succès.
GEARMAN_IO_WAIT (int)
En mode non-bloquant, un événement qui aurait été bloquant a été atteint.
GEARMAN_ERRNO (int)
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 (int)
GearmanClient::wait() ou GearmanWorker() a été appelé sans connexion.
GEARMAN_UNEXPECTED_PACKET (int)
Indique que quelque chose de grave est survenu dans gearmand. S'applique seulement à GearmanWorker.
GEARMAN_GETADDRINFO (int)
La résolution DNS a échoué (hôte ou port invalide, etc).
GEARMAN_NO_SERVERS (int)
Aucun appel à GearmanClient::addServer() n'a été fait avant de soumettre une tâche.
GEARMAN_LOST_CONNECTION (int)
Perte de connexion pendant une requête.
GEARMAN_MEMORY_ALLOCATION_FAILURE (int)
L'allocation mémoire a échoué (plus de mémoire disponible).
GEARMAN_SERVER_ERROR (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
Echec de la connexion aux serveurs.
GEARMAN_INVALID_FUNCTION_NAME (int)
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 (int)
Tentative de référencement d'une fonction avec une fonction de rappel NULL.
GEARMAN_NO_REGISTERED_FUNCTIONS (int)
Quand un agent reçoit une tâche pour une fonction qu'il n'a pas référencée.
GEARMAN_NO_JOBS (int)
Pour un agent non-bloquant, quand GearmanWorker::work() n'a aucune tâche active.
GEARMAN_ECHO_DATA_CORRUPTION (int)
Après GearmanClient::echo() ou GearmanWorker::echo(), les données retournées ne correspondent pas aux données envoyées.
GEARMAN_NEED_WORKLOAD_FN (int)
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 (int)
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 (int)
Erreur d'état client/agent interne.
GEARMAN_SEND_BUFFER_TOO_SMALL (int)
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 (int)
La limite de temps de l'agent/du client a été atteinte.

Les options GearmanClient :

GEARMAN_CLIENT_GENERATE_UNIQUE (int)
Génère un identifiant unique (UUID) pour chaque tache.
GEARMAN_CLIENT_NON_BLOCKING (int)
Lance le client en mode non-bloquant.
GEARMAN_CLIENT_UNBUFFERED_RESULT (int)
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 (int)
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 (int)
Lance l'agent en mode non-bloquant.
GEARMAN_WORKER_GRAB_UNIQ (int)
Retourne l'identifiant unique alloué au client en plus du descripteur de tâche.

Configuration de base de Gearman :

GEARMAN_DEFAULT_TCP_HOST (string)
GEARMAN_DEFAULT_TCP_PORT (int)
GEARMAN_DEFAULT_SOCKET_TIMEOUT (int)
GEARMAN_DEFAULT_SOCKET_SEND_SIZE (int)
GEARMAN_DEFAULT_SOCKET_RECV_SIZE (int)
GEARMAN_MAX_ERROR_SIZE (int)
GEARMAN_PACKET_HEADER_SIZE (int)
GEARMAN_JOB_HANDLE_SIZE (int)
GEARMAN_OPTION_SIZE (int)
GEARMAN_UNIQUE_SIZE (int)
GEARMAN_MAX_COMMAND_ARGS (int)
GEARMAN_ARGS_BUFFER_SIZE (int)
GEARMAN_SEND_BUFFER_SIZE (int)
GEARMAN_RECV_BUFFER_SIZE (int)
GEARMAN_WORKER_WAIT_TIMEOUT (int)


  • « Constantes pré-définies
  • Utilisation simple »
  • PHP Manual
  • Gearman
  • Exemples

Exemples

Sommaire

  • Utilisation simple


Utilisation simple

Exemple #1 Client et agent 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->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:
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());
}

?>

Résultat de l'exemple ci-dessus est 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());
}

?>

Résultat de l'exemple ci-dessus est 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é, mis à 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());
}

?>

Résultat de l'exemple ci-dessus est 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

class GearmanClient {
/* Méthodes */
public __construct()
public addOptions(int $option): bool
public addServer(string $host = null, int $port = 0, bool $setupExceptionHandler = true): bool
public addServers(string $servers = null, bool $setupExceptionHandler = true): bool
public addTask(
string $function_name,
string|int|float $workload,
mixed $context = null,
?string $unique_key = null
): GearmanTask|false
public addTaskBackground(
string $function_name,
string|int|float $workload,
mixed $context = null,
?string $unique_key = null
): GearmanTask|false
public addTaskHigh(
string $function_name,
string|int|float $workload,
mixed $context = null,
?string $unique_key = null
): GearmanTask|false
public addTaskHighBackground(
string $function_name,
string|int|float $workload,
mixed $context = null,
?string $unique_key = null
): GearmanTask|false
public addTaskLow(
string $function_name,
string|int|float $workload,
mixed $context = null,
?string $unique_key = null
): GearmanTask|false
public addTaskLowBackground(
string $function_name,
string|int|float $workload,
mixed $context = null,
?string $unique_key = null
): GearmanTask|false
public addTaskStatus(string $job_handle, mixed $context = null): GearmanTask|false
public clearCallbacks(): bool
public context(): string
public doBackground(string $function, string $workload, ?string $unique = null): string
public doHigh(string $function, string $workload, ?string $unique = null): string
public doHighBackground(string $function, string $workload, ?string $unique = null): string
public doJobHandle(): string
public doLow(string $function, string $workload, ?string $unique = null): string
public doLowBackground(string $function, string $workload, ?string $unique = null): string
public doNormal(string $function, string $workload, ?string $unique = null): string
public doStatus(): array
public error(): string|false
public getErrno(): int
public jobStatus(string $job_handle): array
public ping(string $workload): bool
public removeOptions(int $option): bool
public returnCode(): int
public runTasks(): bool
public setCompleteCallback(callable $function): bool
public setContext(string $data): bool
public setCreatedCallback(callable $function): bool
public setDataCallback(callable $function): bool
public setExceptionCallback(callable $function): bool
public setFailCallback(callable $function): bool
public setOptions(int $option): bool
public setStatusCallback(callable $function): bool
public setTimeout(int $timeout): bool
public setWarningCallback(callable $function): bool
public setWorkloadCallback(callable $function): bool
public timeout(): int
public wait(): bool
}

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
  • GearmanClient::wait — Wait for I/O activity on all connections in a client


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 GearmanClient::addOptions(int $option): bool

Ajoute une ou plusieurs options à celles déjà présentes.

Liste de paramètres

option

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 GearmanClient::addServer(string $host = null, int $port = 0, bool $setupExceptionHandler = true): bool

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 GearmanClient::addServers(string $servers = null, bool $setupExceptionHandler = true): bool

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 GearmanClient::addTask(
string $function_name,
string|int|float $workload,
mixed $context = null,
?string $unique_key = null
): GearmanTask|false

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 sérialisées à analyser

context

Contexte de l'application à associer avec une tâche

unique_key

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";
}

?>

Résultat de l'exemple ci-dessus est 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());
}

?>

Résultat de l'exemple ci-dessus est 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 GearmanClient::addTaskBackground(
string $function_name,
string|int|float $workload,
mixed $context = null,
?string $unique_key = null
): GearmanTask|false

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 sérialisées à analyser

context

Contexte de l'application à associer avec une tâche

unique_key

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 GearmanClient::addTaskHigh(
string $function_name,
string|int|float $workload,
mixed $context = null,
?string $unique_key = null
): GearmanTask|false

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 sérialisées à analyser

context

Contexte de l'application à associer avec une tâche

unique_key

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";
}

?>

Résultat de l'exemple ci-dessus est 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 GearmanClient::addTaskHighBackground(
string $function_name,
string|int|float $workload,
mixed $context = null,
?string $unique_key = null
): GearmanTask|false

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 sérialisées à analyser

context

Contexte de l'application à associer avec une tâche

unique_key

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 GearmanClient::addTaskLow(
string $function_name,
string|int|float $workload,
mixed $context = null,
?string $unique_key = null
): GearmanTask|false

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 sérialisées à analyser

context

Contexte de l'application à associer avec une tâche

unique_key

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";
}

?>

Résultat de l'exemple ci-dessus est 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 GearmanClient::addTaskLowBackground(
string $function_name,
string|int|float $workload,
mixed $context = null,
?string $unique_key = null
): GearmanTask|false

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 sérialisées à analyser

context

Contexte de l'application à associer avec une tâche

unique_key

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 GearmanClient::addTaskStatus(string $job_handle, mixed $context = null): GearmanTask|false

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 ou false en cas d'échec.

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++;
}

?>

Résultat de l'exemple ci-dessus est 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 GearmanClient::clearCallbacks(): bool

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::clone(): GearmanClient

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()

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 GearmanClient::context(): string

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 GearmanClient::data(): string

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 GearmanClient::do(string $function_name, string $workload, string $unique = ?): string

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 sérialisé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());
}

?>

Résultat de l'exemple ci-dessus est 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;
}

?>

Résultat de l'exemple ci-dessus est 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 GearmanClient::doBackground(string $function, string $workload, ?string $unique = null): string

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

Une fonction enregistrée que le travailleur va exécuter

workload

Données sérialisé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";

?>

Résultat de l'exemple ci-dessus est 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 GearmanClient::doHigh(string $function, string $workload, ?string $unique = null): string

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

Une fonction enregistrée que le travailleur va exécuter

workload

Données sérialisé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 GearmanClient::doHighBackground(string $function, string $workload, ?string $unique = null): string

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

Une fonction enregistrée que le travailleur va exécuter

workload

Données sérialisé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 GearmanClient::doJobHandle(): string

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 GearmanClient::doLow(string $function, string $workload, ?string $unique = null): string

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

Une fonction enregistrée que le travailleur va exécuter

workload

Données sérialisé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 GearmanClient::doLowBackground(string $function, string $workload, ?string $unique = null): string

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

Une fonction enregistrée que le travailleur va exécuter

workload

Données sérialisé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 GearmanClient::doNormal(string $function, string $workload, ?string $unique = null): string

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

Une fonction enregistrée que le travailleur va exécuter

workload

Données sérialisé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());
}

?>

Résultat de l'exemple ci-dessus est 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;
}

?>

Résultat de l'exemple ci-dessus est 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 GearmanClient::doStatus(): array

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";

?>

Résultat de l'exemple ci-dessus est 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 GearmanClient::echo(string $workload): bool

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 sérialisé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 GearmanClient::error(): string|false

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 lisible représentant la dernière erreur survenue, ou false s'il n'y a pas de message d'erreur disponible.

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 GearmanClient::getErrno(): int

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 GearmanClient::jobStatus(string $job_handle): array

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";

?>

Résultat de l'exemple ci-dessus est 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 GearmanClient::ping(string $workload): bool

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 GearmanClient::removeOptions(int $option): bool

Supprime une ou plusieurs options.

Liste de paramètres

option

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 GearmanClient::returnCode(): int

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 GearmanClient::runTasks(): bool

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 GearmanClient::setClientCallback(callable $callback): void

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 GearmanClient::setCompleteCallback(callable $function): bool

Définit une fonction à appeler lorsqu'une GearmanTask se termine, ou quand GearmanJob::sendComplete() est appelé par le worker (selon ce qui se passe en premier).

Cette fonction de rappel est exécuté uniquement lors de l'exécution d'une GearmanTask à l'aide de GearmanClient::runTasks(). Il n'est pas utilisé pour des travaux individuels.

Liste de paramètres

function

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 GearmanClient::setContext(string $data): bool

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

data

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 GearmanClient::setCreatedCallback(callable $function): bool

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 GearmanTask.

Liste de paramètres

function

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 GearmanClient::setData(string $data): bool

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 GearmanClient::setDataCallback(callable $function): bool

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

function

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 GearmanClient::setExceptionCallback(callable $function): bool

Spécifie une fonction à appeler lorsqu'un agent émet une exception.

Liste de paramètres

function

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 GearmanClient::setFailCallback(callable $function): bool

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

function

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 GearmanClient::setOptions(int $option): bool

Définit une ou plusieurs options du client.

Liste de paramètres

option

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 GearmanClient::setStatusCallback(callable $function): bool

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

function

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 GearmanClient::setTimeout(int $timeout): bool

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 GearmanClient::setWarningCallback(callable $function): bool

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

function

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 GearmanClient::setWorkloadCallback(callable $function): bool

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

function

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
  • GearmanClient::wait »
  • 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 GearmanClient::timeout(): int

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


Wait for I/O activity on all connections in a client

  • « GearmanClient::timeout
  • GearmanJob »
  • PHP Manual
  • GearmanClient
  • Wait for I/O activity on all connections in a client

GearmanClient::wait

(PECL gearman >= 0.6.0)

GearmanClient::wait — Wait for I/O activity on all connections in a client

Description

public GearmanClient::wait(): bool

This waits for activity from any one of the connected servers.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

true on success false on an error.

Voir aussi

  • GearmanWorker::wait() - Attente une activité d'un ou plusieurs serveurs de travaux


La classe GearmanJob

(PECL gearman >= 0.5.0)

Introduction

Synopsis de la classe

class GearmanJob {
/* Méthodes */
public functionName(): false|string
public handle(): false|string
public returnCode(): int
public sendComplete(string $result): bool
public sendData(string $data): bool
public sendException(string $exception): bool
public sendFail(): bool
public sendStatus(int $numerator, int $denominator): bool
public sendWarning(string $warning): bool
public setReturn(int $gearman_return_t): bool
public unique(): false|string
public workload(): string
public workloadSize(): int
}

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 GearmanJob::complete(string $result): bool

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 sérialisé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()

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 GearmanJob::data(string $data): bool

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 sérialisé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 GearmanJob::exception(string $exception): bool

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 GearmanJob::fail(): bool

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 GearmanJob::functionName(): false|string

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, ou false si le travail n'a pas été initialisé.

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 GearmanJob::handle(): false|string

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, ou false si le travail n'a pas été initialisé.

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 GearmanJob::returnCode(): int

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 GearmanJob::sendComplete(string $result): bool

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 sérialisé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 GearmanJob::sendData(string $data): bool

Envoie les données au serveur de travaux (et à tous les clients à l'écoute) pour ce travail.

Liste de paramètres

data

Données sérialisé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 GearmanJob::sendException(string $exception): bool

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 GearmanJob::sendFail(): bool

Envoie un statut d'échec pour ce travail, indiquant que le travail a échoué de façon inattendue (a 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 GearmanJob::sendStatus(int $numerator, int $denominator): bool

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 GearmanJob::sendWarning(string $warning): bool

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 GearmanJob::setReturn(int $gearman_return_t): bool

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 GearmanJob::status(int $numerator, int $denominator): bool

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 GearmanJob::unique(): false|string

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, ou false si le travail n'a pas été initialisé.

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 GearmanJob::warning(string $warning): bool

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 GearmanJob::workload(): string

Récupère la charge pour ce travail. Ce sont les données sérialisées à analyser par l'agent.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Les données sérialisé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 GearmanJob::workloadSize(): int

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

class GearmanTask {
/* Méthodes */
public __construct()
public data(): false|string
public dataSize(): int|false
public functionName(): false|string
public isKnown(): bool
public isRunning(): bool
public jobHandle(): false|string
public recvData(int $data_len): false|array
public returnCode(): int
public sendWorkload(string $data): int|false
public taskDenominator(): false|int
public taskNumerator(): false|int
public unique(): false|string
}

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()

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::create(): GearmanTask|false

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 GearmanTask::data(): false|string

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 sérialisé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 GearmanTask::dataSize(): int|false

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 GearmanTask::function(): string

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 GearmanTask::functionName(): false|string

Retourne le nom de la fonction associée à cette tâche, c'est-à-dire, 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, ou false si la tâche n'a pas encore été créée.


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 GearmanTask::isKnown(): bool

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 GearmanTask::isRunning(): bool

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 GearmanTask::jobHandle(): false|string

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, ou false si la tâche n'a pas encore été créée.

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 GearmanTask::recvData(int $data_len): false|array

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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 GearmanTask::returnCode(): int

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 GearmanTask::sendData(string $data): int

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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 GearmanTask::sendWorkload(string $data): int|false

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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 GearmanTask::taskDenominator(): false|int

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 GearmanTask::taskNumerator(): false|int

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 GearmanTask::unique(): false|string

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 GearmanTask::uuid(): string

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

class GearmanWorker {
/* Méthodes */
public __construct()
public addFunction(
string $function_name,
callable $function,
mixed $context = null,
int $timeout = 0
): bool
public addOptions(int $option): true
public addServer(string $host = null, int $port = 0, bool $setupExceptionHandler = true): bool
public addServers(string $servers = null, bool $setupExceptionHandler = true): bool
public error(): string|false
public getErrno(): int
public options(): int
public register(string $function_name, int $timeout = 0): bool
public removeOptions(int $option): true
public returnCode(): int
public setId(string $id): bool
public setOptions(int $option): true
public setTimeout(int $timeout): true
public timeout(): int
public unregister(string $function_name): bool
public unregisterAll(): bool
public wait(): bool
public work(): bool
}

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 GearmanWorker::addFunction(
string $function_name,
callable $function,
mixed $context = null,
int $timeout = 0
): bool

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 GearmanWorker::addOptions(int $option): true

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 GearmanWorker::addServer(string $host = null, int $port = 0, bool $setupExceptionHandler = true): bool

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 GearmanWorker::addServers(string $servers = null, bool $setupExceptionHandler = true): bool

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 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()

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 GearmanWorker::echo(string $workload): bool

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 sérialisé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 GearmanWorker::error(): string|false

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 chaîne de caractères humainement lisible représentant la dernière erreur survenue, ou false s'il n'y a pas de message d'erreur disponible.

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 GearmanWorker::getErrno(): int

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 GearmanWorker::options(): int

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 GearmanWorker::register(string $function_name, int $timeout = 0): bool

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 GearmanWorker::removeOptions(int $option): true

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 GearmanWorker::returnCode(): int

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 GearmanWorker::setId(string $id): bool

Assigne au worker un identifiant, permettant ainsi qu'il soit identifiable lorsque gearman 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');
?>

Résultat de l'exemple ci-dessus est 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 GearmanWorker::setOptions(int $option): true

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 GearmanWorker::setTimeout(int $timeout): true

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 GearmanWorker::timeout(): int

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 GearmanWorker::unregister(string $function_name): bool

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 GearmanWorker::unregisterAll(): bool

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 GearmanWorker::wait(): bool

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 GearmanWorker::work(): bool

Attend un travail et appèlle 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

/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes */
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


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
  • LDAP controls
  • Exemples
    • Utilisation simple
    • LDAP Controls
  • Fonctions LDAP
    • ldap_8859_to_t61 — Convertit les caractères 8859 en caractères t61
    • ldap_add_ext — Ajoute une entrée dans un dossier LDAP
    • ldap_add — Ajoute une entrée dans un dossier LDAP
    • ldap_bind_ext — Lie 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_wallet — Connect to an LDAP server
    • 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_count_references — Counts the number of references in a search result
    • ldap_delete_ext — Supprime une entrée d'un dossier
    • 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 — Échappe une chaîne pour l'utiliser dans un filtre LDAP ou un DN
    • ldap_exop_passwd — PASSWD extended operation helper
    • ldap_exop_refresh — Refresh extended operation helper
    • ldap_exop_sync — Performs an extended operation
    • ldap_exop_whoami — WHOAMI extended operation helper
    • ldap_exop — Performs an extended operation
    • 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_ext — Add attribute values to current attributes
    • ldap_mod_add — Ajoute un attribut à l'entrée courante
    • ldap_mod_del_ext — Delete attribute values from current attributes
    • ldap_mod_del — Efface un attribut à l'entrée courante
    • ldap_mod_replace_ext — Replace attribute values with new ones
    • 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 — Alias de ldap_mod_replace
    • 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_exop — Parse result object from an LDAP extended operation
    • 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_ext — Modify the name of an entry
    • 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 côté client
    • 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
  • LDAP\Connection — The LDAP\Connection class
  • LDAP\Result — The LDAP\Result class
  • LDAP\ResultEntry — The LDAP\ResultEntry class


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

  • Internet Engineering Taskforce RFCs » 4510 à » 4519.

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. Pour PHP 5.6 ou plus récent, vous aurez besoin d'OpenLDAP 2.4 ou plus récent.


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 F.A.Q 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, ou, depuis OpenSSL 1.1 libcrypto-*.dll et libssl-*.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" | INI_SYSTEM |
Pour plus de détails sur les modes 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 int

Le nombre maximal de connexions LDAP par processus.


Types de ressources

Antérieur à PHP 8.1.0, la plupart des fonctions LDAP opèrent 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 (int)
Règle de déréférencement d'alias - Jamais.
LDAP_DEREF_SEARCHING (int)
Règle de déréférencement d'alias - Rechercher.
LDAP_DEREF_FINDING (int)
Règle de déréférencement d'alias - Trouver.
LDAP_DEREF_ALWAYS (int)
Règle de déréférencement d'alias - Toujours.
LDAP_OPT_DEREF (int)
Applique des règles alternatives pour suivre les alias sur le serveur.
LDAP_OPT_SIZELIMIT (int)

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 (int)
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 (int)
Option pour ldap_set_option() qui permet de définir le timeout. (Disponible depuis PHP 5.3.0)
LDAP_OPT_PROTOCOL_VERSION (int)
Spécifie la version du protocole LDAP à utiliser (V2 ou V3).
LDAP_OPT_ERROR_NUMBER (int)
Dernier numéro d'erreur de session.
LDAP_OPT_REFERRALS (int)
Spécifie si oui ou non suivre les référrants retournés par le serveur.
LDAP_OPT_RESTART (int)
Détermine si la connexion doit ou non être redémarrée implicitement.
LDAP_OPT_HOST_NAME (int)
Définit/obtient les hôtes séparé par un espace lorsque vous essayez de vous connecter.
LDAP_OPT_ERROR_STRING (int)
Alias de LDAP_OPT_DIAGNOSTIC_MESSAGE.
LDAP_OPT_DIAGNOSTIC_MESSAGE (int)
Obtient le dernier message d'erreur de session.
LDAP_OPT_MATCHED_DN (int)
Définit/obtient le DN associé correspondant à la connexion.
LDAP_OPT_SERVER_CONTROLS (int)
Spécifie une liste de contrôles serveurs à envoyer avec chaque requête.
LDAP_OPT_CLIENT_CONTROLS (int)
Spécifie une liste de contrôles clients à envoyer avec chaque requête.
LDAP_OPT_DEBUG_LEVEL (int)
Spécifie un niveau pour les traces de déboguage, sous forme de masque de bits.
LDAP_OPT_X_KEEPALIVE_IDLE (int)
Spécifie le nombre de secondes pendant lesquelles une connexion doit rester inactif avant que TCP ne commence à envoyer des sondes KeepAlive.
LDAP_OPT_X_KEEPALIVE_PROBES (int)
Spécifie le nombre maximal de sondes KeepAlive que TCP doit envoyer avant de supprimer la connexion.
LDAP_OPT_X_KEEPALIVE_INTERVAL (int)
Spécifie l'intervalle en secondes entre deux sondes KeepAlive.
LDAP_OPT_X_TLS_CACERTDIR (int)
Spécifie le chemin d'accès du répertoire contenant les certificats d'autorité de certification.
LDAP_OPT_X_TLS_CACERTFILE (int)
Spécifie le chemin d'accès complet du fichier de certificat de l'autorité de certification.
LDAP_OPT_X_TLS_CERTFILE (int)
Spécifie le chemin d'accès complet du fichier de certificat.
LDAP_OPT_X_TLS_CIPHER_SUITE (int)
Spécifie la suite de chiffrement autorisée.
LDAP_OPT_X_TLS_CRLCHECK (int)
Spécifie la stratégie d'évaluation des CRL. Ce doit être l'une des valeurs suivantes : LDAP_OPT_X_TLS_CRL_NONE,LDAP_OPT_X_TLS_CRL_PEER, LDAP_OPT_X_TLS_CRL_ALL.

Note: Valide uniquement pour OpenSSL.

LDAP_OPT_X_TLS_CRLFILE (int)
Spécifie le chemin d'accès complet du fichier CRL.

Note: Valide uniquement pour GnuTLS.

LDAP_OPT_X_TLS_DHFILE (int)
Spécifie le chemin d'accès complet du fichier contenant les paramètres de l'échange de clés éphémères Diffie-Hellman.

Note: Cette option est ignorée par GnuTLS et Mozilla NSS.

LDAP_OPT_X_TLS_KEYFILE (int)
Spécifie le chemin d'accès complet du fichier de clé du certificat.
LDAP_OPT_X_TLS_PROTOCOL_MIN (int)
Spécifie la version minimum du protocole. Cela peut être l'une des valeurs suivantes : 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_RANDOM_FILE (int)
Définit/obtient le fichier aléatoire lorsque l'une des valeurs par défaut du système n'est pas disponible.
LDAP_OPT_X_TLS_REQUIRE_CERT (int)
Spécifie la stratégie de vérification des certificats. Ce doit être l'une des valeurs suivantes : LDAP_OPT_X_TLS_NEVER,LDAP_OPT_X_TLS_HARD, LDAP_OPT_X_TLS_DEMAND, LDAP_OPT_X_TLS_ALLOW, LDAP_OPT_X_TLS_TRY. (Disponible à partir de PHP 7.0.0)
GSLC_SSL_NO_AUTH (int)
Mode d'authentification SSL - Aucune authentification requise. (uniquement pour Oracle LDAP)
GSLC_SSL_ONEWAY_AUTH (int)
Mode d'authentification SSL - Seule l'authentification du serveur est requise. (uniquement pour Oracle LDAP)
GSLC_SSL_TWOWAY_AUTH (int)
Mode d'authentification SSL - Authentification du serveur et du client requise. (uniquement pour Oracle LDAP)
LDAP_EXOP_START_TLS (string)
Constantes des opérations étendues - Démarrer TLS (» RFC 4511).
LDAP_EXOP_MODIFY_PASSWD (string)
Constantes des opérations étendues - Modifier le mot de passe (» RFC 3062).
LDAP_EXOP_REFRESH (string)
Constantes des opérations étendues - Actualiser (» RFC 2589).
LDAP_EXOP_WHO_AM_I (string)
Constantes des opérations étendues - WHOAMI (» RFC 4532).
LDAP_EXOP_TURN (string)
Constantes des opérations étendues - Tourner (» RFC 4531).
LDAP_CONTROL_MANAGEDSAIT (string)
Constante de contrôle - Gère DSA IT (» RFC 3296). Disponible à partir de PHP 7.3.0.
LDAP_CONTROL_PROXY_AUTHZ (string)
Constante de contrôle - Autorisation par Procuration (» RFC 4370). Disponible à partir de PHP 7.3.0.
LDAP_CONTROL_SUBENTRIES (string)
Constante de contrôle - Sous-entrée (» RFC 3672). Disponible à partir de PHP 7.3.0.
LDAP_CONTROL_VALUESRETURNFILTER (string)
Constante de contrôle - Filtre valeur retourné (» RFC 3876). Disponible à partir de PHP 7.3.0.
LDAP_CONTROL_ASSERT (string)
Constante de contrôle - Assertion (» RFC 4528). Disponible à partir de PHP 7.3.0.
LDAP_CONTROL_PRE_READ (string)
Constante de contrôle - Avant lecture (» RFC 4527). Disponible à partir de PHP 7.3.0.
LDAP_CONTROL_POST_READ (string)
Constante de contrôle - Après lecture (» RFC 4527). Disponible à partir de PHP 7.3.0.
LDAP_CONTROL_SORTREQUEST (string)
Constante de contrôle - Demande de tri (» RFC 2891). Disponible à partir de PHP 7.3.0.
LDAP_CONTROL_SORTRESPONSE (string)
Constante de contrôle - Réponse de tri (» RFC 2891). Disponible à partir de PHP 7.3.0.
LDAP_CONTROL_PAGEDRESULTS (string)
Constante de contrôle - Résultats paginé (» RFC 2696). Disponible à partir de PHP 7.3.0.
LDAP_CONTROL_AUTHZID_REQUEST (string)
Constante de contrôle - Demande d'Autorisation d'Identité (» RFC 3829). Disponible à partir de PHP 7.3.0.
LDAP_CONTROL_AUTHZID_RESPONSE (string)
Constante de contrôle - Réponse d'Autorisation d'Identité (» RFC 3829). Disponible à partir de PHP 7.3.0.
LDAP_CONTROL_SYNC (string)
Constante de contrôle - Opération de Synchronisation du Contenue (» RFC 4533). Disponible à partir de PHP 7.3.0.
LDAP_CONTROL_SYNC_STATE (string)
Constante de contrôle - Etat de l'Opération de Synchronisation du Contenue (» RFC 4533). Disponible à partir de PHP 7.3.0.
LDAP_CONTROL_SYNC_DONE (string)
Constante de contrôle - Opération de Synchronisation du Contenue Faite (» RFC 4533). Disponible à partir de PHP 7.3.0.
LDAP_CONTROL_DONTUSECOPY (string)
Constante de contrôle - N'utilisez pas Copier (» RFC 6171). Disponible à partir de PHP 7.3.0.
LDAP_CONTROL_PASSWORDPOLICYREQUEST (string)
Constante de contrôle - Demande de la politique de mot de passe. Disponible à partir de PHP 7.3.0.
LDAP_CONTROL_PASSWORDPOLICYRESPONSE (string)
Constante de contrôle - Réponse de la politique de mot de passe. Disponible à partir de PHP 7.3.0.
LDAP_CONTROL_X_INCREMENTAL_VALUES (string)
Constante de contrôle - Valeurs incrémentales du dossier actif. Disponible à partir de PHP 7.3.0.
LDAP_CONTROL_X_DOMAIN_SCOPE (string)
Constante de contrôle - Portée du domaine du dossier actif Disponible à partir de PHP 7.3.0.
LDAP_CONTROL_X_PERMISSIVE_MODIFY (string)
Constante de contrôle - Permission de modification du dossier actif. Disponible à partir de PHP 7.3.0.
LDAP_CONTROL_X_SEARCH_OPTIONS (string)
Constante de contrôle - Option de recherche du dossier actif. Disponible à partir de PHP 7.3.0.
LDAP_CONTROL_X_TREE_DELETE (string)
Constante de contrôle - Suppression de l'arbre du dossier actif. Disponible à partir de PHP 7.3.0.
LDAP_CONTROL_X_EXTENDED_DN (string)
Constante de contrôle - Dossier actif étendu DN. Disponible à partir de PHP 7.3.0.
LDAP_CONTROL_VLVREQUEST (string)
Constante de contrôle - Liste Virtuelle de Requête de Vue. Disponible à partir de PHP 7.3.0.
LDAP_CONTROL_VLVRESPONSE (string)
Constante de contrôle - Liste Virtuelle de Réponse de Vue. Disponible à partir de PHP 7.3.0.


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


LDAP controls

Controls are special objects which may be sent alongside an LDAP request to alter LDAP server behavior while performing the request. There may also be controls sent by the server alongside the response to provide more information, usually to answer a control object from the request.

Note:

Not all controls are supported by all LDAP servers. To know which controls are supported by a server, you need to query the root DSE by reading an empty dn with the filter (objectClass=*).

Exemple #1 Testing support for paged result control

<?php

// $ds is a valid link identifier for a directory server

$result = ldap_read($ds, '', '(objectClass=*)', ['supportedControl']);
if (!in_array(LDAP_CONTROL_PAGEDRESULTS, ldap_get_entries($ds, $result)[0]['supportedcontrol'])) {
die("This server does not support paged result control");
}

?>

As of PHP 7.3, you can send controls with your request in all request functions using the controls parameter. When a ext version of a function exists, you should use it if you want to get access to the full response object and be able to parse response controls from it using ldap_parse_result().

controls must be an array containing an array for each control to send, containing the following keys:

oid (string)
The OID of the control. You should use constants starting with LDAP_CONTROL_ for this. See LDAP Constants.
iscritical (bool)
If a control is noted as critical, the request will fail if the control is not supported by the server, or if it fails to be applied. Note that some controls should always be marked as critical as noted in the RFC introducing them. Defaults to false.
value (mixed)
If applicable, the value of the control. Read below for more information.

Most control values are sent to the server BER-encoded. You may either BER-encode the value yourself, or you can instead pass an array with the correct keys so that the encoding is done for you. Supported controls to be passed as an array are:

  • LDAP_CONTROL_PAGEDRESULTS Expected keys are [size] and [cookie]

  • LDAP_CONTROL_ASSERT Expected key is filter

  • LDAP_CONTROL_VALUESRETURNFILTER Expected key is filter

  • LDAP_CONTROL_PRE_READ Expected key is attrs

  • LDAP_CONTROL_POST_READ Expected key is attrs

  • LDAP_CONTROL_SORTREQUEST Expects an array of arrays with keys attr, [oid], [reverse].

  • LDAP_CONTROL_VLVREQUEST Expected keys are before, after, attrvalue|(offset, count), [context]

The following controls do not need any value:

  • LDAP_CONTROL_PASSWORDPOLICYREQUEST

  • LDAP_CONTROL_MANAGEDSAIT

  • LDAP_CONTROL_DONTUSECOPY

The control LDAP_CONTROL_PROXY_AUTHZ is a special case as its value is not expected to be BER-encoded, so you can directly use a string for its value.

When controls are parsed by ldap_parse_result(), values are turned into an array if supported. This is supported for:

  • LDAP_CONTROL_PASSWORDPOLICYRESPONSE Keys are expire, grace, [error]

  • LDAP_CONTROL_PAGEDRESULTS Keys are size, cookie

  • LDAP_CONTROL_PRE_READ Keys are dn and LDAP attributes names

  • LDAP_CONTROL_POST_READ Keys are dn and LDAP attributes names

  • LDAP_CONTROL_SORTRESPONSE Keys are errcode, [attribute]

  • LDAP_CONTROL_VLVRESPONSE Keys are target, count, errcode, context


  • « LDAP controls
  • Utilisation simple »
  • PHP Manual
  • LDAP
  • Exemples

Exemples

Sommaire

  • Utilisation simple
  • LDAP Controls


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 de famille
$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>';
}
?>


LDAP Controls

Voici quelques exemples d'utilisation des contrôles LDAP avec PHP >= 7.3.0.

Exemple #1 Lier avec des informations policy

<?php

$user = 'cn=admin,dc=example,dc=com';
$passwd = 'adminpassword';

$ds = ldap_connect('ldap://localhost');

if ($ds) {
$r = ldap_bind_ext($ds, $user, $passwd, [['oid' => LDAP_CONTROL_PASSWORDPOLICYREQUEST]]);

if (ldap_parse_result($ds, $r, $errcode, $matcheddn, $errmsg, $referrals, $ctrls)) {
if ($errcode != 0) {
die("Error: $errmsg ($errcode)");
}
if (isset($ctrls[LDAP_CONTROL_PASSWORDPOLICYRESPONSE])) {
$value = $ctrls[LDAP_CONTROL_PASSWORDPOLICYRESPONSE]['value'];
echo "Expire dans : ".$value['expire']." secondes\n";
echo "Nombres d'authentification restantes : ".$value['grace']."\n";
if (isset($value['error'])) {
echo "Code d'erreur Policy : ".$value['error'];
}
}
}
} else {
die("Impossible de se connecter au serveur LDAP");
}
?>

Exemple #2 Modifier la description uniquement si elle n'est pas vide

<?php
// $link est une connexion LDAP

$result = ldap_mod_replace_ext(
$link,
'o=test,dc=example,dc=com',
['description' => 'Nouvelle description'],
[
[
'oid' => LDAP_CONTROL_ASSERT,
'iscritical' => TRUE,
'value' => ['filter' => '(!(description=*))']
]
]
);

// Puis utiliser ldap_parse_result
?>

Exemple #3 Lire des valeurs avant leurs suppresion

<?php
// $link est une connexion LDAP

$result = ldap_delete_ext(
$link,
'o=test,dc=example,dc=com',
[
[
'oid' => LDAP_CONTROL_PRE_READ,
'iscritical' => TRUE,
'value' => ['attrs' => ['o', 'description']]
]
]
);

// Puis utiliser ldap_parse_result
?>

Exemple #4 Supprimer une référence

<?php
// $link est une connexion LDAP

// Sans le contrôle ceci supprimerait le nœud référencé
// Assurez-vous de définir le contrôle en tant que critique pour éviter ceci
$result = ldap_delete_ext(
$link,
'cn=reference,dc=example,dc=com',
[['oid' => LDAP_CONTROL_MANAGEDSAIT, 'iscritical' => TRUE]]
);

// Puis utiliser ldap_parse_result
?>

Exemple #5 Utiliser la pagination pour une recherche

<?php
// $link est une connexion LDAP

$cookie = '';

do {
$result = ldap_search(
$link, 'dc=example,dc=base', '(cn=*)', ['cn'], 0, 0, 0, LDAP_DEREF_NEVER,
[['oid' => LDAP_CONTROL_PAGEDRESULTS, 'value' => ['size' => 2, 'cookie' => $cookie]]]
);
ldap_parse_result($link, $result, $errcode , $matcheddn , $errmsg , $referrals, $controls);
// Pour garder l'exemple simple les erreurs ne sont pas testées
$entries = ldap_get_entries($link, $result);
foreach ($entries as $entry) {
echo "cn: ".$entry['cn'][0]."\n";
}
if (isset($controls[LDAP_CONTROL_PAGEDRESULTS]['value']['cookie'])) {
// Vous devez passer le cookie du dernier appel au prochain
$cookie = $controls[LDAP_CONTROL_PAGEDRESULTS]['value']['cookie'];
} else {
$cookie = '';
}
// Cookie vide signifie dernière page
} while (strlen($cookie) > 0);
?>


Fonctions LDAP

Sommaire

  • ldap_8859_to_t61 — Convertit les caractères 8859 en caractères t61
  • ldap_add_ext — Ajoute une entrée dans un dossier LDAP
  • ldap_add — Ajoute une entrée dans un dossier LDAP
  • ldap_bind_ext — Lie 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_wallet — Connect to an LDAP server
  • 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_count_references — Counts the number of references in a search result
  • ldap_delete_ext — Supprime une entrée d'un dossier
  • 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 — Échappe une chaîne pour l'utiliser dans un filtre LDAP ou un DN
  • ldap_exop_passwd — PASSWD extended operation helper
  • ldap_exop_refresh — Refresh extended operation helper
  • ldap_exop_sync — Performs an extended operation
  • ldap_exop_whoami — WHOAMI extended operation helper
  • ldap_exop — Performs an extended operation
  • 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_ext — Add attribute values to current attributes
  • ldap_mod_add — Ajoute un attribut à l'entrée courante
  • ldap_mod_del_ext — Delete attribute values from current attributes
  • ldap_mod_del — Efface un attribut à l'entrée courante
  • ldap_mod_replace_ext — Replace attribute values with new ones
  • 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 — Alias de ldap_mod_replace
  • 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_exop — Parse result object from an LDAP extended operation
  • 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_ext — Modify the name of an entry
  • 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 côté client
  • 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_ext »
  • 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, PHP 8)

ldap_8859_to_t61 — Convertit les caractères 8859 en caractères t61

Description

ldap_8859_to_t61(string $value): string|false

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, ou false si une erreur survient.

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_add »
  • PHP Manual
  • Fonctions LDAP
  • Ajoute une entrée dans un dossier LDAP

ldap_add_ext

(PHP 7 >= 7.3.0, PHP 8)

ldap_add_ext — Ajoute une entrée dans un dossier LDAP

Description

ldap_add_ext(
LDAP\Connection $ldap,
string $dn,
array $entry,
?array $controls = null
): LDAP\Result|false

Réalise la même chose que la fonction ldap_add() mais retourne une instance LDAP\Result à analyser avec ldap_parse_result().

Liste de paramètres

Voir la fonction ldap_add()

Valeurs de retour

Retourne une instance de LDAP\Result, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.
8.1.0 | Retourne désormais une instance de LDAP\Result ; auparavant, une ressource était attendu.
8.0.0 | controls est désormais nullable ; auparavant, sa valeur par défaut était [].

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • ldap_add() - Ajoute une entrée dans un dossier LDAP
  • ldap_parse_result() - Extrait des informations d'un résultat


Ajoute une entrée dans un dossier LDAP

  • « ldap_add_ext
  • ldap_bind_ext »
  • PHP Manual
  • Fonctions LDAP
  • Ajoute une entrée dans un dossier LDAP

ldap_add

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_add — Ajoute une entrée dans un dossier LDAP

Description

ldap_add(
LDAP\Connection $ldap,
string $dn,
array $entry,
?array $controls = null
): bool

Ajoute une entrée dans un dossier LDAP.

Liste de paramètres

ldap

Une instance LDAP\Connection, retourné par 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";
?>

controls

Tableau de Contrôles LDAP à envoyer avec la requête.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.
8.0.0 | controls est désormais nullable ; auparavant, sa valeur par défaut était [].
7.3.0 | Support pour controls a été ajouté.

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_add_ext() - Ajoute une entrée dans un dossier LDAP
  • ldap_delete() - Efface une entrée dans un dossier


Lie un dossier LDAP

  • « ldap_add
  • ldap_bind »
  • PHP Manual
  • Fonctions LDAP
  • Lie un dossier LDAP

ldap_bind_ext

(PHP 7 >= 7.3.0, PHP 8)

ldap_bind_ext — Lie un dossier LDAP

Description

ldap_bind_ext(
LDAP\Connection $ldap,
?string $dn = null,
?string $password = null,
?array $controls = null
): LDAP\Result|false

Réalise la même chose que la fonction ldap_bind() mais retourne une instance LDAP\Result à analyser avec ldap_parse_result().

Liste de paramètres

See ldap_bind()

Valeurs de retour

Retourne une instance de LDAP\Result, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.
8.1.0 | Retourne désormais une instance de LDAP\Result ; auparavant, une ressource était attendu.
8.0.0 | controls est désormais nullable ; auparavant, sa valeur par défaut était [].

Voir aussi

  • ldap_bind() - Authentification au serveur LDAP
  • ldap_parse_result() - Extrait des informations d'un résultat


Authentification au serveur LDAP

  • « ldap_bind_ext
  • ldap_close »
  • PHP Manual
  • Fonctions LDAP
  • Authentification au serveur LDAP

ldap_bind

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_bind — Authentification au serveur LDAP

Description

ldap_bind(LDAP\Connection $ldap, ?string $dn = null, ?string $password = null): bool

Authentification au serveur LDAP avec le RDN et le mot de passe spécifiés.

Liste de paramètres

ldap

Une instance LDAP\Connection, retourné par ldap_connect().

dn

password

Si password n'est pas spécifié ou est vide, une authentification anonyme est essayée. dn peut également être laissé vide pour une liaison anonyme. Ceci est défini dans https://tools.ietf.org/html/rfc2251#section-4.2.2

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.

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://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://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 anonyme réussie...";
} else {
echo "Connexion LDAP anonyme échouée...";
}

}

?>

Voir aussi

  • ldap_bind_ext() - Lie un dossier LDAP
  • 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, PHP 8)

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_wallet »
  • PHP Manual
  • Fonctions LDAP
  • Compare une entrée avec des valeurs d'attributs

ldap_compare

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

ldap_compare — Compare une entrée avec des valeurs d'attributs

Description

ldap_compare(
LDAP\Connection $ldap,
string $dn,
string $attribute,
string $value,
?array $controls = null
): bool|int

Sert à comparer la valeur value de l'attribut attribute à la valeur du même attribut de l'entrée dn.

Liste de paramètres

ldap

Une instance LDAP\Connection, retourné par ldap_connect().

dn

Le DN de l'entrée LDAP.

attribute

Le nom de l'attribut.

value

La valeur comparée.

controls

Tableau de Contrôles LDAP à envoyer avec la requête.

Valeurs de retour

Retourne true si la valeur value correspond, sinon, retourne false. Retourne -1 si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.
8.0.0 | controls est désormais nullable ; auparavant, sa valeur par défaut était [].
7.3.0 | Support pour controls a été ajouté.

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 !


Connect to an LDAP server

  • « ldap_compare
  • ldap_connect »
  • PHP Manual
  • Fonctions LDAP
  • Connect to an LDAP server

ldap_connect_wallet

(PHP 8 >= 8.3.0)

ldap_connect_wallet — Connect to an LDAP server

Description

ldap_connect_wallet(
?string $uri = null,
string $wallet,
string $password,
int $auth_mode = GSLC_SSL_NO_AUTH
): LDAP\Connection|false

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

uri

wallet

password

auth_mode

Valeurs de retour

Voir aussi

  • ldap_connect() - Connexion à un serveur LDAP


Connexion à un serveur LDAP

  • « ldap_connect_wallet
  • ldap_control_paged_result_response »
  • PHP Manual
  • Fonctions LDAP
  • Connexion à un serveur LDAP

ldap_connect

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_connect — Connexion à un serveur LDAP

Description

ldap_connect(?string $uri = null): LDAP\Connection|false
Avertissement

À partir de PHP 8.3.0, la signature suivante est obsolète.

ldap_connect(?string $host = null, int $port = 389): LDAP\Connection|false

Crée une instance LDAP\Connection et vérifie si l'uri donnée est plausible.

Note: Cette fonction n'ouvre pas de connexion. Il vérifie si les paramètres donnés sont plausibles et peuvent être utilisés pour ouvrir une connexion dès qu'on en a besoin.

Liste de paramètres

uri

Un URI LDAP complet de la forme LDAP://hostname:port ou LDAPS://hostname:port pour le chiffrement SSL.

Vous pouvez également fournir plusieurs URI LDAP séparés par un espace comme une chaîne

Notez que hostname:port n'est pas un URI LDAP pris en charge car le schéma est manquant.

host

Le nom d'hôte à se connecter.

port

Le port utilisé pour la connexion.

Valeurs de retour

Retourne une instance de LDAP\Connection lorsque l'URI LDAP semble plausible. Il s'agit d'un contrôle syntaxique des paramètres fournis, mais le serveur(s) ne sera pas contacté ! Si la vérification syntaxique échoue, elle retourne false. ldap_connect() retournera sinon une instance de LDAP\Connection car elle 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, alors l'instance LDAP\Connection de la dernière connexion déjà ouverte sera retourné.

Historique

Version | Description
8.3.0 | Appeler ldap_connect() avec hostname et port séparé est désormais obsolète.
8.1.0 | Retourne désormais une instance de LDAP\Connection ; auparavant, une ressource était attendu.

Exemples

Exemple #1 Exemple de connexion à un serveur LDAP

<?php

// LDAP variables
$ldapuri = "ldap://ldap.example.com:389"; // voter ldap-uri

// Connexion LDAP
$ldapconn = ldap_connect($ldaphost, $ldapport)
or die("Cette LDAP-URI n'a pas été analysable");

?>

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("Cette LDAP-URI n'a pas été analysable");

?>

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

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.4.0, et SUPPRIMÉE à partir de PHP 8.0.0. À la place le paramètre controls de ldap_search() devrait être utilisée. Voir les Contrôles LDAP pour plus d'information.

Description

ldap_control_paged_result_response(
resource $link,
resource $result,
string &$cookie = ?,
int &$estimated = ?
): bool

Récupère les informations de pagination envoyées par le serveur.

Liste de paramètres

link

Une ressource LDAP, retourné par 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.

Historique

Version | Description
8.0.0 | Cette fonction a été supprimée.
7.4.0 | Cette fonction est devenue obsolète.

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

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.4.0, et SUPPRIMÉE à partir de PHP 8.0.0. À la place le paramètre controls de ldap_search() devrait être utilisée. Voir les Contrôles LDAP pour plus d'information.

Description

ldap_control_paged_result(
resource $link,
int $pagesize,
bool $iscritical = false,
string $cookie = ""
): bool

Active la pagination LDAP en envoyant le contrôle de pagination (taille de la page, cookie,...).

Liste de paramètres

link

Une ressource LDAP, retourné par 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.

Historique

Version | Description
8.0.0 | Cette fonction a été supprimée.
7.4.0 | Cette fonction est devenue obsolète.

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 fonctionnalité 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_count_references »
  • PHP Manual
  • Fonctions LDAP
  • Compte le nombre d'entrées après une recherche

ldap_count_entries

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_count_entries — Compte le nombre d'entrées après une recherche

Description

ldap_count_entries(LDAP\Connection $ldap, LDAP\Result $result): int

Retourne le nombre d'entrées trouvées dans le résultat result_identifier, sur la connexion link_identifier.

Liste de paramètres

ldap

Une instance LDAP\Connection, retourné par ldap_connect().

result

Une instance LDAP\Result, retourné par ldap_list() ou ldap_search().

Valeurs de retour

Retourne le nombre d'entrées dans le résultat, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.
8.1.0 | Le paramètre result attend désormais une instance de LDAP\Result ; auparavant, une ressource ldap result était attendue.

Exemples

Exemple #1 Exemple avec ldap_count_entries()

Retrieve number of entries in the result.

// $ds doit être une instance de connexion LDAP\Connection valide

$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));

Résultat de l'exemple ci-dessus est similaire à :

int(1)


Counts the number of references in a search result

  • « ldap_count_entries
  • ldap_delete_ext »
  • PHP Manual
  • Fonctions LDAP
  • Counts the number of references in a search result

ldap_count_references

(PHP 8)

ldap_count_references — Counts the number of references in a search result

Description

ldap_count_references(LDAP\Connection $ldap, LDAP\Result $result): int

Counts the number of references in a search result.

Liste de paramètres

ldap

Une instance LDAP\Connection, retourné par ldap_connect().

result

Une instance LDAP\Result, retourné par ldap_list() ou ldap_search().

Valeurs de retour

Returns the number of references in a search result.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.
8.1.0 | Le paramètre result attend désormais une instance de LDAP\Result ; auparavant, une ressource ldap result était attendue.

Voir aussi

  • ldap_connect() - Connexion à un serveur LDAP


Supprime une entrée d'un dossier

  • « ldap_count_references
  • ldap_delete »
  • PHP Manual
  • Fonctions LDAP
  • Supprime une entrée d'un dossier

ldap_delete_ext

(PHP 7 >= 7.3.0, PHP 8)

ldap_delete_ext — Supprime une entrée d'un dossier

Description

ldap_delete_ext(LDAP\Connection $ldap, string $dn, ?array $controls = null): LDAP\Result|false

Réalise la même chose que la fonction ldap_delete() mais retourne une instance LDAP\Result à analyser avec ldap_parse_result().

Liste de paramètres

Voir la fonction ldap_delete()

Valeurs de retour

Retourne une instance de LDAP\Result, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.
8.1.0 | Retourne désormais une instance de LDAP\Result ; auparavant, une ressource était attendu.
8.0.0 | controls est désormais nullable ; auparavant, sa valeur par défaut était [].

Voir aussi

  • ldap_delete() - Efface une entrée dans un dossier
  • ldap_parse_result() - Extrait des informations d'un résultat


Efface une entrée dans un dossier

  • « ldap_delete_ext
  • ldap_dn2ufn »
  • PHP Manual
  • Fonctions LDAP
  • Efface une entrée dans un dossier

ldap_delete

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_delete — Efface une entrée dans un dossier

Description

ldap_delete(LDAP\Connection $ldap, string $dn, ?array $controls = null): bool

Efface une entrée spécifique d'un dossier LDAP.

Liste de paramètres

ldap

Une instance LDAP\Connection, retourné par ldap_connect().

dn

Le nom DN de l'entrée LDAP.

controls

Tableau de Contrôles LDAP à envoyer avec la requête.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.
8.0.0 | controls est désormais nullable ; auparavant, sa valeur par défaut était [].
7.3.0 | Support pour controls a été ajouté.

Voir aussi

  • ldap_delete_ext() - Supprime une entrée d'un dossier
  • 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, PHP 8)

ldap_dn2ufn — Convertit un DN en format UFN (User Friendly Naming)

Description

ldap_dn2ufn(string $dn): string|false

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, ou false si une erreur survient.


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, PHP 8)

ldap_err2str — Convertit un numéro d'erreur LDAP en message d'erreur

Description

ldap_err2str(int $errno): string

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, PHP 8)

ldap_errno — Retourne le numéro d'erreur LDAP de la dernière commande exécutée

Description

ldap_errno(LDAP\Connection $ldap): int

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

ldap

Une instance LDAP\Connection, retourné par ldap_connect().

Valeurs de retour

Retourne le numéro d'erreur LDAP généré par la dernière commande.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.

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, PHP 8)

ldap_error — Retourne le message LDAP de la dernière commande LDAP

Description

ldap_error(LDAP\Connection $ldap): string

Retourne le message d'erreur lié à la connexion ldap. 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

ldap

Une instance LDAP\Connection, retourné par ldap_connect().

Valeurs de retour

Retourne un message d'erreur LDAP.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.

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


Échappe une chaîne pour l'utiliser dans un filtre LDAP ou un DN

  • « ldap_error
  • ldap_exop_passwd »
  • PHP Manual
  • Fonctions LDAP
  • Échappe une chaîne pour l'utiliser dans un filtre LDAP ou un DN

ldap_escape

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

ldap_escape — Échappe une chaîne pour l'utiliser dans un filtre LDAP ou un DN

Description

ldap_escape(string $value, string $ignore = "", int $flags = 0): string

Échappe 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. Si aucun drapeau n'est passé, tous les caractères sont échappés.

Valeurs de retour

Retourne la chaîne échappée.

Exemples

Lors de la construction d'un filtre LDAP, vous devriez utiliser ldap_escape avec le drapeau LDAP_ESCAPE_FILTER.

Exemple #1 Chercher une addresse email

<?php
// $ds doit être une instance de connexion LDAP\Connection valide

// $mail est une addresse email fournit par l'utilisateur dans un formulaire

$base = "o=My Company, c=US";
$filter = "(mail=".ldap_escape($mail, "", LDAP_ESCAPE_FILTER).")";

$sr = ldap_search($ds, $base, $filter, array("sn", "givenname", "mail"));

$info = ldap_get_entries($ds, $sr);

echo $info["count"]." entrées retournées\n";
?>


PASSWD extended operation helper

  • « ldap_escape
  • ldap_exop_refresh »
  • PHP Manual
  • Fonctions LDAP
  • PASSWD extended operation helper

ldap_exop_passwd

(PHP 7 >= 7.2.0, PHP 8)

ldap_exop_passwd — PASSWD extended operation helper

Description

ldap_exop_passwd(
LDAP\Connection $ldap,
string $user = "",
string $old_password = "",
string $new_password = "",
array &$controls = null
): string|bool

Performs a PASSWD extended operation.

Liste de paramètres

ldap

Une instance LDAP\Connection, retourné par ldap_connect().

user

dn of the user to change the password of.

old_password

The old password of this user. May be ommited depending of server configuration.

new_password

The new password for this user. May be omitted or empty to have a generated password.

controls

If provided, a password policy request control is send with the request and this is filled with an array of LDAP Controls returned with the request.

Valeurs de retour

Returns the generated password if new_password is empty or omitted. Otherwise returns true on success and false on failure.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.
8.0.0 | controls est désormais nullable ; auparavant, sa valeur par défaut était [].
7.3.0 | Support for controls added

Exemples

Exemple #1 PASSWD extended operation

<?php
$ds = ldap_connect("localhost"); // assuming the LDAP server is on this host

if ($ds) {
// bind with appropriate dn to give update access
$bind = ldap_bind($ds, "cn=root, o=My Company, c=US", "secret");
if (!$bind) {
echo "Unable to bind to LDAP server";
exit;
}

// use PASSWD EXOP to change the user password for a generated one
$genpw = ldap_exop_passwd($ds, "cn=root, o=My Company, c=US", "secret");
if ($genpw) {
// use the generated password to bind
$bind = ldap_bind($ds, "cn=root, o=My Company, c=US", $genpw);
}

// set the password back to "secret"
ldap_exop_passwd($ds, "cn=root, o=My Company, c=US", $genpw, "secret");

ldap_close($ds);
} else {
echo "Unable to connect to LDAP server";
}
?>

Voir aussi

  • ldap_exop() - Performs an extended operation
  • ldap_parse_exop() - Parse result object from an LDAP extended operation


Refresh extended operation helper

  • « ldap_exop_passwd
  • ldap_exop_sync »
  • PHP Manual
  • Fonctions LDAP
  • Refresh extended operation helper

ldap_exop_refresh

(PHP 7 >= 7.3.0, PHP 8)

ldap_exop_refresh — Refresh extended operation helper

Description

ldap_exop_refresh(LDAP\Connection $ldap, string $dn, int $ttl): int|false

Performs a Refresh extended operation and returns the data.

Liste de paramètres

ldap

Une instance LDAP\Connection, retourné par ldap_connect().

dn

dn of the entry to refresh.

ttl

Time in seconds (between 1 and 31557600) that the client requests that the entry exists in the directory before being automatically removed.

Valeurs de retour

From RFC: The responseTtl field is the time in seconds which the server chooses to have as the time-to-live field for that entry. It must not be any smaller than that which the client requested, and it may be larger. However, to allow servers to maintain a relatively accurate directory, and to prevent clients from abusing the dynamic extensions, servers are permitted to shorten a client-requested time-to-live value, down to a minimum of 86400 seconds (one day). false will be returned on error.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.

Voir aussi

  • ldap_exop() - Performs an extended operation


Performs an extended operation

  • « ldap_exop_refresh
  • ldap_exop_whoami »
  • PHP Manual
  • Fonctions LDAP
  • Performs an extended operation

ldap_exop_sync

(PHP 8 >= 8.3.0)

ldap_exop_sync — Performs an extended operation

Description

ldap_exop_sync(
LDAP\Connection $ldap,
string $request_oid,
?string $request_data = null,
?array $controls = null,
string &$response_data = null,
string &$response_oid = null
): LDAP\Result|bool

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

ldap

Une instance LDAP\Connection, retourné par ldap_connect().

request_oid

request_data

controls

response_data

response_oid

Valeurs de retour

Voir aussi

  • ldap_exop() - Performs an extended operation


WHOAMI extended operation helper

  • « ldap_exop_sync
  • ldap_exop »
  • PHP Manual
  • Fonctions LDAP
  • WHOAMI extended operation helper

ldap_exop_whoami

(PHP 7 >= 7.2.0, PHP 8)

ldap_exop_whoami — WHOAMI extended operation helper

Description

ldap_exop_whoami(LDAP\Connection $ldap): string|false

Performs a WHOAMI extended operation and returns the data.

Liste de paramètres

ldap

Une instance LDAP\Connection, retourné par ldap_connect().

Valeurs de retour

The data returned by the server, or false on error.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.

Voir aussi

  • ldap_exop() - Performs an extended operation


Performs an extended operation

  • « ldap_exop_whoami
  • ldap_explode_dn »
  • PHP Manual
  • Fonctions LDAP
  • Performs an extended operation

ldap_exop

(PHP 7 >= 7.2.0, PHP 8)

ldap_exop — Performs an extended operation

Description

ldap_exop(
LDAP\Connection $ldap,
string $request_oid,
string $request_data = null,
array $controls = null,
string &$response_data = ?,
string &$response_oid = ?
): mixed

Performs an extended operation on the specified ldap with request_oid the OID of the operation and request_data the data.

Liste de paramètres

ldap

Une instance LDAP\Connection, retourné par ldap_connect().

request_oid

The extended operation request OID. You may use one of LDAP_EXOP_START_TLS, LDAP_EXOP_MODIFY_PASSWD, LDAP_EXOP_REFRESH, LDAP_EXOP_WHO_AM_I, LDAP_EXOP_TURN, or a string with the OID of the operation you want to send.

request_data

The extended operation request data. May be NULL for some operations like LDAP_EXOP_WHO_AM_I, may also need to be BER encoded.

controls

Array of LDAP Controls to send with the request.

response_data

Will be filled with the extended operation response data if provided. If not provided you may use ldap_parse_exop on the result object later to get this data.

response_oid

Will be filled with the response OID if provided, usually equal to the request OID.

Valeurs de retour

When used with response_data, returns true on success or false on error. When used without response_data, returns a result identifier or false on error.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.
7.3.0 | Support for controls added

Exemples

Exemple #1 Whoami extended operation

<?php
$ds = ldap_connect("localhost"); // assuming the LDAP server is on this host

if ($ds) {
// bind with appropriate dn to give update access
$bind = ldap_bind($ds, "cn=root, o=My Company, c=US", "secret");
if (!$bind) {
echo "Unable to bind to LDAP server";
exit;
}

// Call WHOAMI EXOP
$r = ldap_exop($ds, LDAP_EXOP_WHO_AM_I);

// Parse the result object
ldap_parse_exop($ds, $r, $retdata);
// Output: string(31) "dn:cn=root, o=My Company, c=US"
var_dump($retdata);

// Same thing using $response_data parameter
$success = ldap_exop($ds, LDAP_EXOP_WHO_AM_I, NULL, NULL, $retdata, $retoid);
if ($success) {
var_dump($retdata);
}

ldap_close($ds);
} else {
echo "Unable to connect to LDAP server";
}
?>

Voir aussi

  • ldap_parse_result() - Extrait des informations d'un résultat
  • ldap_parse_exop() - Parse result object from an LDAP extended operation
  • ldap_exop_whoami() - WHOAMI extended operation helper
  • ldap_exop_refresh() - Refresh extended operation helper
  • ldap_exop_passwd() - PASSWD extended operation helper


Sépare les différents composants d'un DN

  • « ldap_exop
  • 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, PHP 8)

ldap_explode_dn — Sépare les différents composants d'un DN

Description

ldap_explode_dn(string $dn, int $with_attrib): array|false

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, PHP 8)

ldap_first_attribute — Retourne le premier attribut

Description

ldap_first_attribute(LDAP\Connection $ldap, LDAP\ResultEntry $entry): string|false

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

ldap

Une instance LDAP\Connection, retourné par ldap_connect().

entry

Une instance LDAP\ResultEntry.

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
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.
8.1.0 | Le paramètre entry attend désormais une instance de LDAP\ResultEntry ; auparavant, une ressource ldap result entry était attendue.
8.0.0 | Le troisième paramètre inutilisé ber_identifier n'est plus accepté.

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, PHP 8)

ldap_first_entry — Retourne la première entrée

Description

ldap_first_entry(LDAP\Connection $ldap, LDAP\Result $result): LDAP\ResultEntry|false

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

ldap

Une instance LDAP\Connection, retourné par ldap_connect().

result

Une instance LDAP\Result, retourné par ldap_list() ou ldap_search().

Valeurs de retour

Retourne une instance de LDAP\ResultEntry, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.
8.1.0 | Le paramètre result attend désormais une instance de LDAP\Result ; auparavant, une ressource ldap result était attendue.
8.1.0 | Retourne désormais une instance de LDAP\ResultEntry ; auparavant, une ressource était attendu.

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, PHP 8)

ldap_first_reference — Retourne la première référence

Description

ldap_first_reference(LDAP\Connection $ldap, LDAP\Result $result): LDAP\ResultEntry|false
Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

ldap_free_result — Libère la mémoire du résultat

Description

ldap_free_result(LDAP\Result $result): bool

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

Une instance LDAP\Result, retourné par ldap_list() ou ldap_search().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre result attend désormais une instance de LDAP\Result ; auparavant, une ressource ldap result était attendue.


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, PHP 8)

ldap_get_attributes — Lit les attributs d'une entrée

Description

ldap_get_attributes(LDAP\Connection $ldap, LDAP\ResultEntry $entry): array

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

ldap

Une instance LDAP\Connection, retourné par ldap_connect().

entry

Une instance LDAP\ResultEntry.

Valeurs de retour

Retourne le détail des informations d'une entrée sous la forme d'un tableau multidimensionnel.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.
8.1.0 | Le paramètre entry attend désormais une instance de LDAP\ResultEntry ; auparavant, une ressource ldap result entry était attendue.

Exemples

Exemple #1 Affiche la liste des attributs d'une entrée

<?php
// $ds doit être une instance de connexion LDAP\Connection 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, PHP 8)

ldap_get_dn — Lit le DN d'une entrée

Description

ldap_get_dn(LDAP\Connection $ldap, LDAP\ResultEntry $entry): string|false

Lit le DN d'une entrée d'un résultat.

Liste de paramètres

ldap

Une instance LDAP\Connection, retourné par ldap_connect().

entry

Une instance LDAP\ResultEntry.

Valeurs de retour

Retourne le DN de l'entrée du résultat, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.
8.1.0 | Le paramètre entry attend désormais une instance de LDAP\ResultEntry ; auparavant, une ressource ldap result entry était attendue.


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, PHP 8)

ldap_get_entries — Lit toutes les entrées du résultat

Description

ldap_get_entries(LDAP\Connection $ldap, LDAP\Result $result): array|false

Lit toutes les entrées du résultat fourni, ainsi que les attributs et les valeurs multiples.

Liste de paramètres

ldap

Une instance LDAP\Connection, retourné par ldap_connect().

result

Une instance LDAP\Result, retourné par ldap_list() ou ldap_search().

Valeurs de retour

Retourne toutes les entrées du résultat sous la forme d'un tableau multidimensionnel, ou false si une erreur survient.

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

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.
8.1.0 | Le paramètre result attend désormais une instance de LDAP\Result ; auparavant, une ressource ldap result était attendue.

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, PHP 8)

ldap_get_option — Lit/écrit la valeur courante d'une option

Description

ldap_get_option(LDAP\Connection $ldap, int $option, array|string|int &$value = null): bool

Définit la valeur value à l'option spécifié.

Liste de paramètres

ldap

Une instance LDAP\Connection, retourné par ldap_connect().

option

Le paramètre option peut prendre l'une des valeurs suivantes :

Option | Type | Disponible depuis
LDAP_OPT_DEREF int
LDAP_OPT_SIZELIMIT int
LDAP_OPT_TIMELIMIT int
LDAP_OPT_NETWORK_TIMEOUT int
LDAP_OPT_PROTOCOL_VERSION int
LDAP_OPT_ERROR_NUMBER int
LDAP_OPT_DIAGNOSTIC_MESSAGE string
LDAP_OPT_REFERRALS int
LDAP_OPT_RESTART int
LDAP_OPT_HOST_NAME string
LDAP_OPT_ERROR_STRING string
LDAP_OPT_MATCHED_DN string
LDAP_OPT_SERVER_CONTROLS array
LDAP_OPT_CLIENT_CONTROLS array
LDAP_OPT_X_KEEPALIVE_IDLE | int | 7.1
LDAP_OPT_X_KEEPALIVE_PROBES | int | 7.1
LDAP_OPT_X_KEEPALIVE_INTERVAL | int | 7.1
LDAP_OPT_X_TLS_CACERTDIR | string | 7.1
LDAP_OPT_X_TLS_CACERTFILE | string | 7.1
LDAP_OPT_X_TLS_CERTFILE | string | 7.1
LDAP_OPT_X_TLS_CIPHER_SUITE | string | 7.1
LDAP_OPT_X_TLS_CRLCHECK | int | 7.1
LDAP_OPT_X_TLS_CRL_NONE | int | 7.1
LDAP_OPT_X_TLS_CRL_PEER | int | 7.1
LDAP_OPT_X_TLS_CRL_ALL | int | 7.1
LDAP_OPT_X_TLS_CRLFILE | string | 7.1
LDAP_OPT_X_TLS_DHFILE | string | 7.1
LDAP_OPT_X_TLS_KEYFILE | string | 7.1
LDAP_OPT_X_TLS_PACKAGE | string | 7.1
LDAP_OPT_X_TLS_PROTOCOL_MIN | int | 7.1
LDAP_OPT_X_TLS_RANDOM_FILE | string | 7.1
LDAP_OPT_X_TLS_REQUIRE_CERT int

value

Valeur à définir pour l'option.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.

Exemples

Exemple #1 Vérification de la version du protocole

<?php
// $ds doit être une instance de connexion LDAP\Connection 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, PHP 8)

ldap_get_values_len — Lit toutes les valeurs binaires d'une entrée

Description

ldap_get_values_len(LDAP\Connection $ldap, LDAP\ResultEntry $entry, string $attribute): array|false

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

ldap

Une instance LDAP\Connection, retourné par ldap_connect().

entry

Une instance LDAP\ResultEntry.

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é.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.
8.1.0 | Le paramètre entry attend désormais une instance de LDAP\ResultEntry ; auparavant, une ressource ldap result entry était attendue.

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, PHP 8)

ldap_get_values — Lit toutes les valeurs d'une entrée LDAP

Description

ldap_get_values(LDAP\Connection $ldap, LDAP\ResultEntry $entry, string $attribute): array|false

Lit toutes les valeurs de l'attribut d'une entrée dans un résultat.

L'appel de cette fonction requiert une entry 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

ldap

Une instance LDAP\Connection, retourné par ldap_connect().

entry

Une instance LDAP\ResultEntry.

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

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.
8.1.0 | Le paramètre entry attend désormais une instance de LDAP\ResultEntry ; auparavant, une ressource ldap result entry était attendue.

Exemples

Exemple #1 Liste toutes les valeurs de l'attribut "mail" d'une entrée

<?php
// $ds doit être une instance de connexion LDAP\Connection 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_ext »
  • PHP Manual
  • Fonctions LDAP
  • Recherche dans un niveau

ldap_list

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_list — Recherche dans un niveau

Description

ldap_list(
LDAP\Connection|array $ldap,
array|string $base,
array|string $filter,
array $attributes = [],
int $attributes_only = 0,
int $sizelimit = -1,
int $timelimit = -1,
int $deref = LDAP_DEREF_NEVER,
?array $controls = null
): LDAP\Result|array|false

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 (c'est l'équivalent de la commande ls, pour obtenir la liste des fichiers et dossiers du dossier courant).

Il est également possible d'effectuer des recherches parallèles. Dans ce cas, le premier argument doit être un tableau des instances de LDAP\Connection, plutôt qu'une seule. Si les recherches ne devraient pas utiliser le même nom distingué (DN) de base et filtre, un tableau de DN de base et/ou un tableau de filtre peuvent être passé comme arguments à la place. Ces tableaux doivent être de la même taille que le tableau des instances de LDAP\Connection, puisque les premières entrées des tableaux sont utilisées pour une recherche, les secondes pour une autre, et ainsi de suite. Lors de recherches parallèles, un tableau des instances de LDAP\Result est retourné, sauf en cas d'erreur, où la valeur de retour sera false.

Liste de paramètres

ldap

Une instance LDAP\Connection, retourné par ldap_connect().

base

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.

attributes_only

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.

controls

Tableau de Contrôles LDAP à envoyer avec la requête.

Valeurs de retour

Retourne une instance de LDAP\Result, un tableau des instances de LDAP\Result, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.
8.1.0 | Retourne désormais une instance de LDAP\Result ; auparavant, une ressource était attendu.
8.0.0 | controls est désormais nullable ; auparavant, sa valeur par défaut était [].
7.3.0 | Support pour controls a été ajouté.

Exemples

Exemple #1 Produit une liste de tous les services d'une société

<?php
// $ds doit être une instance de connexion LDAP\Connection 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


Add attribute values to current attributes

  • « ldap_list
  • ldap_mod_add »
  • PHP Manual
  • Fonctions LDAP
  • Add attribute values to current attributes

ldap_mod_add_ext

(PHP 7 >= 7.3.0, PHP 8)

ldap_mod_add_ext — Add attribute values to current attributes

Description

ldap_mod_add_ext(
LDAP\Connection $ldap,
string $dn,
array $entry,
?array $controls = null
): LDAP\Result|false

Does the same thing as ldap_mod_add() but returns an LDAP\Result instance to be parsed with ldap_parse_result().

Liste de paramètres

See ldap_mod_add()

Valeurs de retour

Retourne une instance de LDAP\Result, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.
8.1.0 | Retourne désormais une instance de LDAP\Result ; auparavant, une ressource était attendu.
8.0.0 | controls est désormais nullable ; auparavant, sa valeur par défaut était [].
7.3.0 | Support for controls added

Voir aussi

  • ldap_mod_add() - Ajoute un attribut à l'entrée courante
  • ldap_parse_result() - Extrait des informations d'un résultat


Ajoute un attribut à l'entrée courante

  • « ldap_mod_add_ext
  • ldap_mod_del_ext »
  • PHP Manual
  • Fonctions LDAP
  • Ajoute un attribut à l'entrée courante

ldap_mod_add

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_mod_add — Ajoute un attribut à l'entrée courante

Description

ldap_mod_add(
LDAP\Connection $ldap,
string $dn,
array $entry,
?array $controls = null
): bool

Ajoute l'attribut entry à l'entrée dn. Pour ajouter un nouvel objet entier, consultez la fonction ldap_add() .

Liste de paramètres

ldap

Une instance LDAP\Connection, retourné par ldap_connect().

dn

Le nom DN de l'entrée LDAP.

entry

Tableau associatif répertoriant les valeurs des attributs à ajouter. Si un attribut n'était pas encore existant, il sera ajouté. Si un attribut est existant, vous pouvez uniquement y ajouter des valeurs s'il prend en charge plusieurs valeurs.

controls

Tableau de Contrôles LDAP à envoyer avec la requête.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.
8.0.0 | controls est désormais nullable ; auparavant, sa valeur par défaut était [].
7.3.0 | Support pour controls a été ajouté.

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • ldap_mod_add_ext() - Add attribute values to current attributes
  • 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


Delete attribute values from current attributes

  • « ldap_mod_add
  • ldap_mod_del »
  • PHP Manual
  • Fonctions LDAP
  • Delete attribute values from current attributes

ldap_mod_del_ext

(PHP 7 >= 7.3.0, PHP 8)

ldap_mod_del_ext — Delete attribute values from current attributes

Description

ldap_mod_del_ext(
LDAP\Connection $ldap,
string $dn,
array $entry,
?array $controls = null
): LDAP\Result|false

Does the same thing as ldap_mod_del() but returns an LDAP\Result instance to be parsed with ldap_parse_result().

Liste de paramètres

See ldap_mod_del()

Valeurs de retour

Retourne une instance de LDAP\Result, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.
8.1.0 | Retourne désormais une instance de LDAP\Result ; auparavant, une ressource était attendu.
8.0.0 | controls est désormais nullable ; auparavant, sa valeur par défaut était [].
7.3.0 | Support for controls added

Voir aussi

  • ldap_mod_del() - Efface un attribut à l'entrée courante
  • ldap_parse_result() - Extrait des informations d'un résultat


Efface un attribut à l'entrée courante

  • « ldap_mod_del_ext
  • ldap_mod_replace_ext »
  • PHP Manual
  • Fonctions LDAP
  • Efface un attribut à l'entrée courante

ldap_mod_del

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_mod_del — Efface un attribut à l'entrée courante

Description

ldap_mod_del(
LDAP\Connection $ldap,
string $dn,
array $entry,
?array $controls = null
): bool

Efface un ou plusieurs attribut de l'entrée dn. Les suppressions d'objets sont réalisées par ldap_delete().

Liste de paramètres

ldap

Une instance LDAP\Connection, retourné par ldap_connect().

dn

Le nom DN de l'entrée LDAP.

entry

controls

Tableau de Contrôles LDAP à envoyer avec la requête.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.
8.0.0 | controls est désormais nullable ; auparavant, sa valeur par défaut était [].
7.3.0 | Support pour controls a été ajouté.

Voir aussi

  • ldap_mod_del_ext() - Delete attribute values from current attributes
  • ldap_mod_add() - Ajoute 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


Replace attribute values with new ones

  • « ldap_mod_del
  • ldap_mod_replace »
  • PHP Manual
  • Fonctions LDAP
  • Replace attribute values with new ones

ldap_mod_replace_ext

(PHP 7 >= 7.3.0, PHP 8)

ldap_mod_replace_ext — Replace attribute values with new ones

Description

ldap_mod_replace_ext(
LDAP\Connection $ldap,
string $dn,
array $entry,
?array $controls = null
): LDAP\Result|false

Does the same thing as ldap_mod_replace() but returns an LDAP\Result instance to be parsed with ldap_parse_result().

Liste de paramètres

See ldap_mod_replace()

Valeurs de retour

Retourne une instance de LDAP\Result, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.
8.1.0 | Retourne désormais une instance de LDAP\Result ; auparavant, une ressource était attendu.
8.0.0 | controls est désormais nullable ; auparavant, sa valeur par défaut était [].
7.3.0 | Support for controls added

Voir aussi

  • ldap_mod_replace() - Remplace un attribut dans l'entrée courante
  • ldap_parse_result() - Extrait des informations d'un résultat


Remplace un attribut dans l'entrée courante

  • « ldap_mod_replace_ext
  • ldap_modify_batch »
  • PHP Manual
  • Fonctions LDAP
  • Remplace un attribut dans l'entrée courante

ldap_mod_replace

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_mod_replace — Remplace un attribut dans l'entrée courante

Description

ldap_mod_replace(
LDAP\Connection $ldap,
string $dn,
array $entry,
?array $controls = null
): bool

Remplace un ou plusieurs attribut de l'entrée dn. Il peut également ajouter ou supprimer des attributs.

Liste de paramètres

ldap

Une instance LDAP\Connection, retourné par ldap_connect().

dn

Le nom DN de l'entrée LDAP.

entry

Tableau associatif répertoriant les attributs à remplacer. L'envoi d'un tableau vide en tant que valeur supprimera l'attribut, alors que l'envoi d'un attribut qui n'existe pas encore sur cette entrée l'ajoutera.

controls

Tableau de Contrôles LDAP à envoyer avec la requête.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.
8.0.0 | controls est désormais nullable ; auparavant, sa valeur par défaut était [].
7.3.0 | Support pour controls a été ajouté.

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • ldap_mod_replace_ext() - Replace attribute values with new ones
  • ldap_mod_del() - Efface un attribut à l'entrée courante
  • ldap_mod_add() - Ajoute un attribut à l'entrée courante
  • ldap_modify_batch() - Mets en lot des modifications et les exécute sur une entrée LDAP


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, PHP 8)

ldap_modify_batch — Mets en lot des modifications et les exécute sur une entrée LDAP

Description

ldap_modify_batch(
LDAP\Connection $ldap,
string $dn,
array $modifications_info,
?array $controls = null
): bool

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

ldap

Une ressource LDAP, retourné par la fonction ldap_connect().

dn

Le nom unique de l'entrée LDAP.

modifications_info

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_*.

controls

Tableau de Contrôles LDAP à envoyer avec la requête.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.
8.0.0 | controls est désormais nullable ; auparavant, sa valeur par défaut était [].
7.3.0 | Support pour controls a été ajouté.

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);


Alias de ldap_mod_replace

  • « ldap_modify_batch
  • ldap_next_attribute »
  • PHP Manual
  • Fonctions LDAP
  • Alias de ldap_mod_replace

ldap_modify

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_modify — Alias de ldap_mod_replace()

Description

Cette fonction est un alias de : ldap_mod_replace().

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, PHP 8)

ldap_next_attribute — Lit l'attribut suivant

Description

ldap_next_attribute(LDAP\Connection $ldap, LDAP\ResultEntry $entry): string|false

Lit l'attribut suivant d'une entrée. Le premier appel à ldap_next_attribute() est fait avec le entry retourné par ldap_first_attribute().

Liste de paramètres

ldap

Une instance LDAP\Connection, retourné par ldap_connect().

entry

Une instance LDAP\ResultEntry.

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
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.
8.1.0 | Le paramètre entry attend désormais une instance de LDAP\ResultEntry ; auparavant, une ressource ldap result entry était attendue.
8.0.0 | Le troisième paramètre inutilisé ber_identifier n'est plus accepté.

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, PHP 8)

ldap_next_entry — Lit la prochaine entrée

Description

ldap_next_entry(LDAP\Connection $ldap, LDAP\ResultEntry $entry): LDAP\ResultEntry|false

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 entry est celui qui a été retourné par la fonction ldap_first_entry().

Liste de paramètres

ldap

Une instance LDAP\Connection, retourné par ldap_connect().

entry

Une instance LDAP\ResultEntry.

Valeurs de retour

Retourne une instance de LDAP\ResultEntry pour 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é.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.
8.1.0 | Le paramètre entry attend désormais une instance de LDAP\ResultEntry ; auparavant, une ressource ldap result entry était attendue.
8.1.0 | Retourne désormais une instance de LDAP\Result ; auparavant, une ressource était attendu.

Voir aussi

  • ldap_get_entries() - Lit toutes les entrées du résultat


Lit la référence suivante

  • « ldap_next_entry
  • ldap_parse_exop »
  • PHP Manual
  • Fonctions LDAP
  • Lit la référence suivante

ldap_next_reference

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

ldap_next_reference — Lit la référence suivante

Description

ldap_next_reference(LDAP\Connection $ldap, LDAP\ResultEntry $entry): LDAP\ResultEntry|false
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.


Parse result object from an LDAP extended operation

  • « ldap_next_reference
  • ldap_parse_reference »
  • PHP Manual
  • Fonctions LDAP
  • Parse result object from an LDAP extended operation

ldap_parse_exop

(PHP 7 >= 7.2.0, PHP 8)

ldap_parse_exop — Parse result object from an LDAP extended operation

Description

ldap_parse_exop(
LDAP\Connection $ldap,
LDAP\Result $result,
string &$response_data = null,
string &$response_oid = null
): bool

Parse LDAP extended operation data from result object result

Liste de paramètres

ldap

Une instance LDAP\Connection, retourné par ldap_connect().

result

Une instance LDAP\Result, retourné par ldap_list() ou ldap_search().

response_data

Will be filled by the response data.

response_oid

Will be filled by the response OID.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.
8.1.0 | Le paramètre result attend désormais une instance de LDAP\Result ; auparavant, une ressource ldap result était attendue.

Voir aussi

  • ldap_exop() - Performs an extended operation


Extrait les informations d'une référence d'entrée

  • « ldap_parse_exop
  • 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, PHP 8)

ldap_parse_reference — Extrait les informations d'une référence d'entrée

Description

ldap_parse_reference(LDAP\Connection $ldap, LDAP\ResultEntry $entry, array &$referrals): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

ldap_parse_result — Extrait des informations d'un résultat

Description

ldap_parse_result(
LDAP\Connection $ldap,
LDAP\Result $result,
int &$error_code,
string &$matched_dn = null,
string &$error_message = null,
array &$referrals = null,
array &$controls = null
): bool

Analyse un résultat de recherche LDAP.

Liste de paramètres

ldap

Une instance LDAP\Connection, retourné par ldap_connect().

result

Une instance LDAP\Result, retourné par ldap_list() ou ldap_search().

error_code

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.

matched_dn

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.

error_message

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.

controls

Tableau de Contrôles LDAP à envoyer avec la requête.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.
8.1.0 | Le paramètre result attend désormais une instance de LDAP\Result ; auparavant, une ressource ldap result était attendue.
7.3.0 | Support pour controls a été ajouté.

Exemples

Exemple #1 Exemple avec ldap_parse_result()

<?php
$result = ldap_search($ldap, "cn=userref,dc=my-domain,dc=com", "(cn=user*)");
$errcode = $dn = $errmsg = $refs = null;
if (ldap_parse_result($ldap, $result, $errcode, $dn, $errmsg, $refs)) {
// faîtes quelques choses avec $errcode, $dn, $errmsg et $refs
}
?>


Lit une entrée

  • « ldap_parse_result
  • ldap_rename_ext »
  • PHP Manual
  • Fonctions LDAP
  • Lit une entrée

ldap_read

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_read — Lit une entrée

Description

ldap_read(
LDAP\Connection|array $ldap,
array|string $base,
array|string $filter,
array $attributes = [],
int $attributes_only = 0,
int $sizelimit = -1,
int $timelimit = -1,
int $deref = LDAP_DEREF_NEVER,
?array $controls = null
): LDAP\Result|array|false

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.

Il est également possible d'effectuer des recherches parallèles. Dans ce cas, le premier argument doit être un tableau des instances de LDAP\Connection, plutôt qu'une seule. Si les recherches ne devraient pas utiliser le même nom distingué (DN) de base et filtre, un tableau de DN de base et/ou un tableau de filtre peuvent être passé comme arguments à la place. Ces tableaux doivent être de la même taille que le tableau des instances de LDAP\Connection, puisque les premières entrées des tableaux sont utilisées pour une recherche, les secondes pour une autre, et ainsi de suite. Lors de recherches parallèles, un tableau des instances de LDAP\Result est retourné, sauf en cas d'erreur, où la valeur de retour sera false.

Liste de paramètres

ldap

Une instance LDAP\Connection, retourné par ldap_connect().

base

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.

attributes_only

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.

controls

Tableau de Contrôles LDAP à envoyer avec la requête.

Valeurs de retour

Retourne une instance de LDAP\Result, un tableau des instances de LDAP\Result, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.
8.1.0 | Retourne désormais une instance de LDAP\Result ; auparavant, une ressource était attendu.
8.0.0 | controls est désormais nullable ; auparavant, sa valeur par défaut était [].
4.0.5 | Les recherches parallèles ont été ajoutées. Voir la fonction ldap_search() pour plus de détails.
7.3.0 | Support pour controls a été ajouté.


Modify the name of an entry

  • « ldap_read
  • ldap_rename »
  • PHP Manual
  • Fonctions LDAP
  • Modify the name of an entry

ldap_rename_ext

(PHP 7 >= 7.3.0, PHP 8)

ldap_rename_ext — Modify the name of an entry

Description

ldap_rename_ext(
LDAP\Connection $ldap,
string $dn,
string $new_rdn,
string $new_parent,
bool $delete_old_rdn,
?array $controls = null
): LDAP\Result|false

Does the same thing as ldap_rename() but returns an LDAP\Result instance to be parsed with ldap_parse_result().

Liste de paramètres

See ldap_rename()

Valeurs de retour

Retourne une instance de LDAP\Result, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.
8.1.0 | Retourne désormais une instance de LDAP\Result ; auparavant, une ressource était attendu.
8.0.0 | controls est désormais nullable ; auparavant, sa valeur par défaut était [].
7.3.0 | Support for controls added

Voir aussi

  • ldap_rename() - Modifie le nom d'une entrée
  • ldap_parse_result() - Extrait des informations d'un résultat


Modifie le nom d'une entrée

  • « ldap_rename_ext
  • 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, PHP 8)

ldap_rename — Modifie le nom d'une entrée

Description

ldap_rename(
LDAP\Connection $ldap,
string $dn,
string $new_rdn,
string $new_parent,
bool $delete_old_rdn,
?array $controls = null
): bool

Modifie l'entrée dn, autant pour son nom que pour sa localisation.

Liste de paramètres

ldap

Une instance LDAP\Connection, retourné par ldap_connect().

dn

Le nom DN de l'entrée LDAP.

new_rdn

Le nouveau RDN.

new_parent

La nouvelle entrée parent/supérieure.

delete_old_rdn

Si ce paramètre vaut true, l'ancienne valeur RDN est supprimée. Sinon elle est conservée comme une valeur non distinguée.

controls

Tableau de Contrôles LDAP à envoyer avec la requête.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.
8.0.0 | controls est désormais nullable ; auparavant, sa valeur par défaut était [].
7.3.0 | Support pour controls a été ajouté.

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_rename_ext() - Modify the name of an entry
  • ldap_modify() - Alias de ldap_mod_replace


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, PHP 8)

ldap_sasl_bind — Authentification au serveur LDAP en utilisant SASL

Description

ldap_sasl_bind(
LDAP\Connection $ldap,
?string $dn = null,
?string $password = null,
?string $mech = null,
?string $realm = null,
?string $authc_id = null,
?string $authz_id = null,
?string $props = null
): bool
Avertissement

Cette fonction est actuellement non documentée ; 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.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.
8.0.0 | dn, password, mech, realm, authc_id, authz_id and props are nullable now.

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.


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, PHP 8)

ldap_search — Recherche sur le serveur LDAP

Description

ldap_search(
LDAP\Connection|array $ldap,
array|string $base,
array|string $filter,
array $attributes = [],
int $attributes_only = 0,
int $sizelimit = -1,
int $timelimit = -1,
int $deref = LDAP_DEREF_NEVER,
?array $controls = null
): LDAP\Result|array|false

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.

Il est également possible d'effectuer des recherches parallèles. Dans ce cas, le premier argument doit être un tableau des instances de LDAP\Connection, plutôt qu'une seule. Si les recherches ne devraient pas utiliser le même nom distingué (DN) de base et filtre, un tableau de DN de base et/ou un tableau de filtre peuvent être passé comme arguments à la place. Ces tableaux doivent être de la même taille que le tableau des instances de LDAP\Connection, puisque les premières entrées des tableaux sont utilisées pour une recherche, les secondes pour une autre, et ainsi de suite. Lors de recherches parallèles, un tableau des instances de LDAP\Result est retourné, sauf en cas d'erreur, où la valeur de retour sera false.

Liste de paramètres

ldap

Une instance LDAP\Connection, retourné par ldap_connect().

base

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.

attributes_only

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.

controls

Tableau de Contrôles LDAP à envoyer avec la requête.

Valeurs de retour

Retourne une instance de LDAP\Result, un tableau des instances de LDAP\Result, ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.
8.1.0 | Retourne désormais une instance de LDAP\Result ; auparavant, une ressource était attendu.
8.0.0 | controls est désormais nullable ; auparavant, sa valeur par défaut était [].
7.3.0 | Support pour controls a été ajouté.

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 est une instance de connexion LDAP\Connection valide pour un serveur d'annuaire.

// $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, PHP 8)

ldap_set_option — Modifie la valeur d'une option LDAP

Description

ldap_set_option(?LDAP\Connection $ldap, int $option, array|string|int|bool $value): bool

Modifie la valeur de l'option option en remplaçant la valeur courante par value.

Liste de paramètres

ldap

Soit une instance LDAP\Connection, retournée par ldap_connect(), pour définir l'option pour cette connexion, soit null pour définir l'option globalement.

option

Le paramètre option peut prendre l'une des valeurs suivantes :

Option | Type | Disponible depuis
LDAP_OPT_DEREF int
LDAP_OPT_SIZELIMIT int
LDAP_OPT_TIMELIMIT int
LDAP_OPT_NETWORK_TIMEOUT int
LDAP_OPT_PROTOCOL_VERSION int
LDAP_OPT_ERROR_NUMBER int
LDAP_OPT_REFERRALS bool
LDAP_OPT_RESTART bool
LDAP_OPT_HOST_NAME string
LDAP_OPT_ERROR_STRING string
LDAP_OPT_DIAGNOSTIC_MESSAGE string
LDAP_OPT_MATCHED_DN string
LDAP_OPT_SERVER_CONTROLS array
LDAP_OPT_CLIENT_CONTROLS array
LDAP_OPT_X_KEEPALIVE_IDLE | int | PHP 7.1.0
LDAP_OPT_X_KEEPALIVE_PROBES | int | PHP 7.1.0
LDAP_OPT_X_KEEPALIVE_INTERVAL | int | PHP 7.1.0
LDAP_OPT_X_TLS_CACERTDIR | string | PHP 7.1.0
LDAP_OPT_X_TLS_CACERTFILE | string | PHP 7.1.0
LDAP_OPT_X_TLS_CERTFILE | string | PHP 7.1.0
LDAP_OPT_X_TLS_CIPHER_SUITE | string | PHP 7.1.0
LDAP_OPT_X_TLS_CRLCHECK | int | PHP 7.1.0
LDAP_OPT_X_TLS_CRLFILE | string | PHP 7.1.0
LDAP_OPT_X_TLS_DHFILE | string | PHP 7.1.0
LDAP_OPT_X_TLS_KEYILE | string | PHP 7.1.0
LDAP_OPT_X_TLS_PROTOCOL_MIN | int | PHP 7.1.0
LDAP_OPT_X_TLS_RANDOM_FILE | string | PHP 7.1.0
LDAP_OPT_X_TLS_REQUIRE_CERT | int | PHP 7.0.5

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.

value

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.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.

Exemples

Exemple #1 Modification de la version du protocole

<?php
// $ds doit être une instance de connexion LDAP\Connection 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 instance de connexion LDAP\Connection valide
$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, PHP 8)

ldap_set_rebind_proc — Configure une fonction de retour pour refaire des liaisons lors de recherche de référants

Description

ldap_set_rebind_proc(LDAP\Connection $ldap, ?callable $callback): bool
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.
8.0.0 | callback est désormais nullable.


Trie les entrées d'un résultat LDAP côté client

  • « ldap_set_rebind_proc
  • ldap_start_tls »
  • PHP Manual
  • Fonctions LDAP
  • Trie les entrées d'un résultat LDAP côté client

ldap_sort

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ldap_sort — Trie les entrées d'un résultat LDAP côté client

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.0.0 et a été SUPPRIMÉE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

ldap_sort(resource $link, resource $result, string $sortfilter): bool

Trie le résultat d'une recherche LDAP, retournée par la fonction ldap_search().

Comme cette fonction trie les valeurs retournées du côté client, il est possible que vous n'obteniez pas les résultats escomptés si vous atteignez sizelimit soit du serveur, soit défini dans ldap_search().

Liste de paramètres

link

Une ressource LDAP, retourné par ldap_connect().

result

Un identifiant de recherche LDAP, retourné par la fonction ldap_search().

sortfilter

L'attribut à utiliser comme clé lors du tri.

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version | Description
8.0.0 | Cette fonction a été supprimée.

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, PHP 8)

ldap_start_tls — Démarre TLS

Description

ldap_start_tls(LDAP\Connection $ldap): bool
Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

ldap_t61_to_8859 — Convertit les caractères t61 en caractères 8859

Description

ldap_t61_to_8859(string $value): string|false
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.


Déconnecte d'un serveur LDAP

  • « ldap_t61_to_8859
  • LDAP\Connection »
  • PHP Manual
  • Fonctions LDAP
  • Déconnecte d'un serveur LDAP

ldap_unbind

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_unbind — Déconnecte d'un serveur LDAP

Description

ldap_unbind(LDAP\Connection $ldap): bool

Déconnecte d'un serveur LDAP.

Liste de paramètres

ldap

Une instance LDAP\Connection, retourné par ldap_connect().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.1.0 | Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.

Voir aussi

  • ldap_bind() - Authentification au serveur LDAP


The LDAP\Connection class

(PHP 8 >= 8.1.0)

Introduction

Une classe complètement opaque qui remplace la ressource ldap à partir de PHP 8.1.0.

Synopsis de la classe

final class LDAP\Connection {
}


The LDAP\Result class

(PHP 8 >= 8.1.0)

Introduction

Une classe complètement opaque qui remplace la ressource ldap result à partir de PHP 8.1.0.

Synopsis de la classe

final class LDAP\Result {
}


The LDAP\ResultEntry class

(PHP 8 >= 8.1.0)

Introduction

Une classe complètement opaque qui remplace la ressource ldap result entry à partir de PHP 8.1.0.

Synopsis de la classe

final class LDAP\ResultEntry {
}


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.


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 : » https://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" | INI_ALL | Disponible à partir de memcache 2.0.2.
memcache.max_failover_attempts | "20" | INI_ALL | Disponible à partir de memcache 2.1.0.
memcache.chunk_size | "8192" | INI_ALL | Disponible à partir de memcache 2.0.2.
memcache.default_port | "11211" | INI_ALL | Disponible à partir de memcache 2.0.2.
memcache.hash_strategy | "standard" | INI_ALL | Disponible à partir de memcache 2.2.0.
memcache.hash_function | "crc32" | INI_ALL | Disponible à partir de memcache 2.2.0.
memcache.protocol | ascii | INI_ALL | Supporté à partir de memcache 3.0.0
memcache.redundancy | 1 | INI_ALL | Supporté à partir de memcache 3.0.0
memcache.session_redundancy | 2 | INI_ALL | Supporté à partir de memcache 3.0.0
memcache.compress_threshold | 20000 | INI_ALL | Supporté à partir de memcache 3.0.3
memcache.lock_timeout | 15 | INI_ALL | Supporté à partir de memcache 3.0.4
Options de Configurations de Session Affectant le Comportement de Memcache
Nom | Défaut | Modifiable | Historique
session.save_handler | "files" | INI_ALL | Supporté à partir de memcache 2.1.2
session.save_path | "" | INI_ALL | Supporté à partir de memcache 2.1.2
Pour plus de détails sur les modes 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

Si l'on doit basculer sur d'autres serveurs en cas d'erreur.

memcache.max_failover_attempts int

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 int

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 string

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 hachage 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 hachage à appliquer lors du mappage des clés sur les serveurs, crc32 utilisera le CRC32 standard, tandis que fnv utilisera FNV-1a.

memcache.protocol string

memcache.redundancy int

memcache.session_redundancy int

memcache.compress_threshold int

memcache.lock_timeout int

session.save_handler string

Utilisez memcache comme gestionnaire de session en définissant cette valeur à memcache.

session.save_path string

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"


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 (int) | 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 (int) | 1 si le gestionnaire de session Memcache est disponible, 0 sinon.
MEMCACHE_USER1 (int) | 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 (int) | 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 (int) | 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 (int) | 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 sérialisé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

class Memcache {
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(): bool
connect(string $host, int $port = ?, int $timeout = ?): bool
decrement(string $key, int $value = 1): int|false
delete(string $key, int $timeout = 0): bool
flush(): bool
get(string $key, int &$flags = ?): string
getExtendedStats(string $type = ?, int $slabid = ?, int $limit = 100): array
getServerStatus(string $host, int $port = 11211): int
getStats(string $type = ?, int $slabid = ?, int $limit = 100): array|false
getVersion(): string|false
increment(string $key, int $value = 1): int|false
pconnect(string $host, int $port = ?, int $timeout = ?): mixed
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 = ?
): bool
}

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

Memcache::add(
string $key,
mixed $var,
int $flag = ?,
int $expire = ?
): bool

Memcache::add() stocke la variable var avec la clé key seulement si cette clé n'existe pas déjà 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éjà. 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

Memcache::addServer(
string $host,
int $port = 11211,
bool $persistent = ?,
int $weight = ?,
int $timeout = ?,
int $retry_interval = ?,
bool $status = ?,
callable $failure_callback = ?,
int $timeoutms = ?
): bool

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

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);

?>

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 inattendus : pour cette raison, il convient de toujours spécifier le port explicitement lors de l'appel à la méthode.

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

Memcache::close(): bool

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().

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 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

Memcache::connect(string $host, int $port = ?, int $timeout = ?): bool

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.

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);

?>

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 inattendus : pour cette raison, il convient de toujours spécifier le port explicitement lors de l'appel à la méthode.

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

Memcache::decrement(string $key, int $value = 1): int|false

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

Memcache::delete(string $key, int $timeout = 0): bool

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.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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.

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

Memcache::flush(): bool

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().

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 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

Memcache::get(string $key, int &$flags = ?): string
Memcache::get(array $keys, array &$flags = ?): array

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 sérialisation).

Valeurs de retour

Retourne la valeur 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

Memcache::getExtendedStats(string $type = ?, int $slabid = ?, int $limit = 100): array

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

Memcache::getServerStatus(string $host, int $port = 11211): int

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

Memcache::getStats(string $type = ?, int $slabid = ?, int $limit = 100): array|false

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

Memcache::getVersion(): string|false

Memcache::getVersion() retourne une chaîne avec le numéro de version du serveur. Vous pouvez aussi utiliser la fonction memcache_get_version().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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

Memcache::increment(string $key, int $value = 1): int|false

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

Memcache::pconnect(string $host, int $port = ?, int $timeout = ?): mixed

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

Memcache::replace(
string $key,
mixed $var,
int $flag = ?,
int $expire = ?
): bool

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

Memcache::set(
string $key,
mixed $var,
int $flag = ?,
int $expire = ?
): bool

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

Memcache::setCompressThreshold(int $threshold, float $min_savings = ?): bool

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

Memcache::setServerParams(
string $host,
int $port = 11211,
int $timeout = ?,
int $retry_interval = false,
bool $status = ?,
callable $failure_callback = ?
): bool

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

memcache_debug(bool $on_off): bool

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 : » https://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.

Memcached Options de configuration
Nom | Défaut | Modifiable | Historique
memcached.sess_locking | On | INI_ALL | Available as of memcached 0.1.0.
memcached.sess_consistent_hash | On | INI_ALL | Available as of memcached 2.1.0. Default value is On as of memcached 3.0.0.
memcached.sess_binary | Off | INI_ALL | Available as of memcached 2.0.0. Replaced by memcached.sess_binary_protocol as of memcached 3.0.0.
memcached.sess_lock_wait | 150000 | INI_ALL | Available as of memcached 0.1.0. Removed as of memcached 3.0.0.
memcached.sess_prefix | memc.sess.key. | INI_ALL | Available as of memcached 0.1.0.
memcached.sess_number_of_replicas | 0 | INI_ALL | Available as of memcached 2.1.0.
memcached.sess_randomize_replica_read | Off | INI_ALL | Available as of memcached 2.1.0.
memcached.sess_remove_failed | On | INI_ALL | Available as of memcached 2.1.0. Replaced by memcached.sess_remove_failed_servers as of memcached 3.0.0.
memcached.compression_type | fastlz | INI_ALL | Available as of memcached 0.1.0.
memcached.compression_factor | 1.3 | INI_ALL | Available as of memcached 0.1.0.
memcached.compression_threshold | 2000 | INI_ALL | Available as of memcached 0.1.0.
memcached.serializer | igbinary | INI_ALL | Available as of memcached 0.1.0.
memcached.use_sasl | Off | INI_ALL | Available as of memcached 2.2.0. Removed as of memcached 3.0.0.
memcached.default_binary_protocol | Off | INI_ALL | Available as of memcached 3.0.0.
memcached.default_connect_timeout | 0 | INI_ALL | Available as of memcached 3.0.0.
memcached.default_consistent_hash | Off | INI_ALL | Available as of memcached 3.0.0.
memcached.sess_binary_protocol | On | INI_ALL | Available as of memcached 3.0.0. Replace memcached.sess_binary.
memcached.sess_connect_timeout | 1000 | INI_ALL | Available as of memcached 2.2.0.
memcached.sess_consistent_hash_type | ketama | INI_ALL | Available as of memcached 3.1.0.
memcached.sess_lock_expire | 0 | INI_ALL | Available as of memcached 2.2.0.
memcached.sess_lock_retries | 5 | INI_ALL | Available as of memcached 3.0.0.
memcached.sess_lock_wait_max | 150 | INI_ALL | Available as of memcached 3.0.0. Default value 150 as of memcached 3.1.0 (previously 2000).
memcached.sess_lock_wait_min | 150 | INI_ALL | Available as of memcached 3.0.0. Default value 150 as of memcached 3.1.0 (previously 1000).
memcached.sess_persistent | Off | INI_ALL | Available as of memcached 3.0.0.
memcached.sess_remove_failed_servers | Off | INI_ALL | Available as of memcached 3.0.0. Replace memcached.sess_remove_failed.
memcached.sess_server_failure_limit | 0 | INI_ALL | Available as of memcached 3.0.0.
memcached.sess_sasl_password | null | INI_ALL | Available as of memcached 2.2.0.
memcached.sess_sasl_username | null | INI_ALL | Available as of memcached 2.2.0.
memcached.store_retry_count | 0 | INI_ALL | Available as of memcached 2.2.0. Default value 0 as of memcached 3.2.0 (previously 2).

Voici un éclaircissement sur l'utilisation des directives de configuration.

memcached.sess_locking bool

Use session locking. Valid values: On, Off, the default is On.

memcached.sess_consistent_hash bool

If set to On, consistent hashing (libketama) is used for session handling. When consistent hashing is used, one can add or remove cache node(s) without messing up too much with existing keys. Default is On.

memcached.sess_binary bool

Use memcached session binary mode. Libmemcached replicas only work if binary mode is enabled. The default is Off.

memcached.sess_lock_wait int

Session spin lock retry wait time in microseconds. Be careful 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. The default is 150000.

memcached.sess_prefix string

Memcached session key prefix. Valid values are strings less than 219 bytes long. The default value is memc.sess.key.

memcached.sess_number_of_replicas int

Write data to a number of additional memcached servers. This is "poor man's HA" as libmemcached calls it. If this value is positive and sess_remove_failed_servers is enabled when a memcached server fails the session will continue to be available from a replica. However, if the failed memcache server becomes available again it will read the session from there which could have old data or no data at all. Default is 0.

memcached.sess_randomize_replica_read bool

Memcached session replica read randomize.

memcached.sess_remove_failed int

Allow failed memcached server to automatically be removed.

memcached.compression_type string

Set the compression type, valid values are: fastlz, zlib. The default is fastlz.

memcached.compression_factor float

Compression factor. Store compressed value only if the compression factor (saving) exceeds the set limit. Store compressed if: plain_len > comp_len * factor. The default value is 1.3 (23% space saving).

memcached.compression_threshold int

The compression threshold. Do not compress serialized values below this threshold. The default is 2000 bytes.

memcached.serializer string

Set the default serializer for new memcached objects. Valid values are: php, igbinary, json, json_array, msgpack.

json

Standard PHP JSON encoding. This serializer is fast and compact but only works on UTF-8 encoded data and does not fully implement serializing. See the JSON extension. Available as of memcached 0.2.0.

json_array

As json, but decodes into arrays. Available as of memcached 2.0.0.

php

The standard PHP serializer.

igbinary

A binary serializer. Available as of memcached 0.1.4.

msgpack

A cross-language binary serializer. Available as of memcached 2.2.0.

The default is igbinary if available, then msgpack if available, then php otherwise.

memcached.use_sasl bool

Use SASL authentication for connections. Valid values: On, Off. The default is Off.

memcached.default_binary_protocol bool

Sets the default memcached protocol for new connections. (To configure the memcached protocol for connections used by sessions, use memcached.sess_binary_protocol instead.) If set to On, the memcached binary protocol is used by default. If set to Off, the memcached text protocol is used. Default is Off.

memcached.default_connect_timeout int

Sets the default memcached connection timeout for new connections. (To configure the memcached connection timeout for sessions, use memcached.sess_connect_timeout instead.) In non-blocking mode this changes the value of the timeout. During socket connection in milliseconds. Specifying -1 means an infinite timeout. Specifying 0 means using the memcached library's default connection timeout. Default is 0.

memcached.default_consistent_hash bool

Sets the default for consistent hashing for new connections. (To configure consistent hashing for session connections, use memcached.sess_consistent_hash instead.) If set to On, consistent hashing (libketama) is used for session handling. When consistent hashing is used, one can add or remove cache node(s) without messing up too much with existing keys default is Off.

memcached.sess_binary_protocol bool

Use the memcached binary protocol for memcached sessions instead of the text protocol. libmemcached replicas only work if the binary mode is enabled. However, certain proxies (such as twemproxy) will only work if the binary protocol is disabled. Default is On as of libmemcached 1.0.18. Prior to libmemcached 1.0.18, the default was Off.

Note: In previous versions of php-memcached, this setting was called memcached.sess_binary.

memcached.sess_connect_timeout int

memcached connect timeout value In non-blocking mode this changes the value of the timeout during socket connection in milliseconds. Specifying -1 means an infinite timeout.

memcached.sess_consistent_hash_type string

Memcached session consistent hash type. If set to ketama, consistent hashing (libketama) is used for session handling. If set to ketama_weighted, weighted consistent hashing (libketama) is used for session handling. Default is ketama. Prior to php-memcached 3.0, the default was ketama_weighted.

memcached.sess_lock_expire int

The time, in seconds, before a lock should release itself. Setting to 0 results in the default behaviour, which is to use PHP's max_execution_time. Default is 0.

memcached.sess_lock_retries int

The number of times to retry locking the session lock, not including the first attempt. Default is 5.

memcached.sess_lock_wait_max int

The maximum time, in milliseconds, to wait between session lock attempts. The default is 150.

memcached.sess_lock_wait_min int

The minimum time, in milliseconds, to wait between session lock attempts. This value is double on each lock retry until memcached.sess_lock_wait_max is reached, after which any further retries will take memcached.sess_lock_wait_max seconds. The default is 150.

memcached.sess_persistent bool

Whether or not to re-use the memcached connections corresponding to the value(s) of session.save_path after the execution of the script ends. Don't use this if certain settings (e.g. SASL settings, sess_binary_protocol) would be overridden between requests. Default is Off.

memcached.sess_remove_failed_servers bool

Allow failed memcached server to automatically be removed. Default is Off.

Note: In previous versions of php-memcached, this setting was called memcached.sess_remove_failed.

memcached.sess_server_failure_limit int

Set this value to enable the server be removed after configured number of continuous times connection failure. Default is 0.

memcached.sess_sasl_password string

Session SASL password. Both username and password need to be set for SASL to be enabled.

memcached.sess_sasl_username string

Session SASL username. Both username and password need to be set for SASL to be enabled.

memcached.store_retry_count int

The amount of retries for failed store commands. This mechanism allows transparent fail-over to secondary servers when set/increment/decrement/setMulti operations fail on the desired server in a multi-server environment. The default is 2.


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 : booléen, par défaut : true.

Memcached::OPT_SERIALIZER

Spécifie la fonction de sérialisation à 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 : entier, par défaut : Memcached::SERIALIZER_PHP.

Memcached::SERIALIZER_PHP

La fonction de sérialisation 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 sérialisation JSON.

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 : chaîne de caractères, par défaut : "".

Memcached::OPT_HASH

Spécifie l'algorithme de hachage utilisé pour les clé. Les valeurs valides sont fournies avec les constantes Memcached::HASH_*. Chaque algorithme de hachage 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 : entier, par défaut : Memcached::HASH_DEFAULT

Memcached::HASH_DEFAULT

L'algorithme par défaut (Jenkins one-at-a-time) de hachage.

Memcached::HASH_MD5

L'algorithme de hachage par MD5

Memcached::HASH_CRC

L'algorithme de hachage par CRC

Memcached::HASH_FNV1_64

L'algorithme de hachage par FNV1_64

Memcached::HASH_FNV1A_64

L'algorithme de hachage par FNV1_64A

Memcached::HASH_FNV1_32

L'algorithme de hachage par FNV1_32

Memcached::HASH_FNV1A_32

L'algorithme de hachage par FNV1_32A

Memcached::HASH_HSIEH

L'algorithme de hachage par Hsieh

Memcached::HASH_MURMUR

L'algorithme de hachage 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 hachage cohérent. Le hachage cohérent fournit la meilleure distribution, et permet aux serveurs d'être ajouté au groupe avec un minimum de pertes de cache.

Type : entier, par défaut : Memcached::DISTRIBUTION_MODULA.

Memcached::DISTRIBUTION_MODULA

L'algorithme de distribution par modulo

Memcached::DISTRIBUTION_CONSISTENT

L'algorithme de distribution par hachage 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 hachage est MD5, et la distribution est le hachage 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 hachage cohérent, et il est probable qu'elle soit activée par défaut dans de futures versions.

Type : booléen, 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 : booléen, 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 : booléen, 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 : booléen, par défaut : false.

Memcached::OPT_NOREPLY

Active ou désactive l'ignoration du résultat des commendes de stockage (set, add, replace, append, prepend, delete, increment, decrement, etc.). Les commendes de stockage seront envoyé sans passer du temps à attendre pour une réponse (il n'y aurait pas de réponse). Les commandes de récupérations tel que Memcached::get() ne sont pas affecté par ce paramètrage.

Type: booléen, 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 : booléen, par défaut : false.

Memcached::OPT_SOCKET_SEND_SIZE

La taille maximale du buffer d'envoi par socket, en octets.

Type : entier, 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 : entier, 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 : entier, 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 : entier, 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 : entier, 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 : entier, par défaut : 0.

Memcached::OPT_POLL_TIMEOUT

Délai d'expiration pour le polling de connexions, en millisecondes.

Type : entier, par défaut : 1000.

Memcached::OPT_CACHE_LOOKUPS

Active ou non le cache de DNS.

Type : booléen, 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 : entier, par défaut : 0.

Memcached::HAVE_IGBINARY

Indique si le support de la fonction de sérialisation igbinary est activé.

Type : booléen.

Memcached::HAVE_JSON

Indique si la fonction de sérialisation JSON est disponible.

Type : booléen.

Memcached::HAVE_MSGPACK

Indique si le support du sérialiseur msgpack est disponible.

Type : booléen.

Disponible à partir de Memcached 3.0.0.

Memcached::HAVE_SESSION

Type : booléen.

Disponible à partir de Memcached 3.0.0.

Memcached::HAVE_SASL

Type : booléen.

Disponible à partir de Memcached 3.0.0.

Memcached::GET_EXTENDED

Un drapeau pour Memcached::get(),
Memcached::getMulti() et
Memcached::getMultiByKey() pour s'assurer
que les valeurs du jeton CAS sont également renvoyées.

Disponible à partir de Memcached 3.0.0.

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 sérialiser la valeur.

Memcached::RES_AUTH_PROBLEM

Disponible à partir de Memcached 3.0.0.

Memcached::RES_AUTH_FAILURE

Disponible à partir de Memcached 3.0.0.

Memcached::RES_AUTH_CONTINUE

Disponible à partir de Memcached 3.0.0.

Memcached::RES_E2BIG

Disponible à partir de Memcached 3.0.0.

Memcached::RES_KEY_TOO_BIG

Disponible à partir de Memcached 3.0.0.

Memcached::RES_SERVER_TEMPORARILY_DISABLED

Disponible à partir de Memcached 3.0.0.

Memcached::RES_SERVER_MEMORY_ALLOCATION_FAILURE

Disponible à partir de Memcached 3.0.0.


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 callable) 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);
}
?>

Résultat de l'exemple ci-dessus est 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

class Memcached {
/* Méthodes */
public __construct(?string $persistent_id = null, ?callable $callback = null, ?string $connection_str = null)
public add(string $key, mixed $value, int $expiration = 0): bool
public addByKey(
string $server_key,
string $key,
mixed $value,
int $expiration = 0
): bool
public addServer(string $host, int $port, int $weight = 0): bool
public addServers(array $servers): bool
public append(string $key, string $value): ?bool
public appendByKey(string $server_key, string $key, string $value): ?bool
public cas(
string|int|float $cas_token,
string $key,
mixed $value,
int $expiration = 0
): bool
public casByKey(
string|int|float $cas_token,
string $server_key,
string $key,
mixed $value,
int $expiration = 0
): bool
public decrement(
string $key,
int $offset = 1,
int $initial_value = 0,
int $expiry = 0
): int|false
public decrementByKey(
string $server_key,
string $key,
int $offset = 1,
int $initial_value = 0,
int $expiry = 0
): int|false
public delete(string $key, int $time = 0): bool
public deleteByKey(string $server_key, string $key, int $time = 0): bool
public deleteMulti(array $keys, int $time = 0): array
public deleteMultiByKey(string $server_key, array $keys, int $time = 0): array
public fetch(): array|false
public fetchAll(): array|false
public flush(int $delay = 0): bool
public get(string $key, ?callable $cache_cb = null, int $get_flags = 0): mixed
public getAllKeys(): array|false
public getByKey(
string $server_key,
string $key,
?callable $cache_cb = null,
int $get_flags = 0
): mixed
public getDelayed(array $keys, bool $with_cas = false, ?callable $value_cb = null): bool
public getDelayedByKey(
string $server_key,
array $keys,
bool $with_cas = false,
?callable $value_cb = null
): bool
public getMulti(array $keys, int $get_flags = 0): array|false
public getMultiByKey(string $server_key, array $keys, int $get_flags = 0): array|false
public getOption(int $option): mixed
public getResultCode(): int
public getResultMessage(): string
public getServerByKey(string $server_key): array|false
public getServerList(): array
public getStats(?string $type = null): array|false
public getVersion(): array|false
public increment(
string $key,
int $offset = 1,
int $initial_value = 0,
int $expiry = 0
): int|false
public incrementByKey(
string $server_key,
string $key,
int $offset = 1,
int $initial_value = 0,
int $expiry = 0
): int|false
public isPersistent(): bool
public isPristine(): bool
public prepend(string $key, string $value): ?bool
public prependByKey(string $server_key, string $key, string $value): ?bool
public quit(): bool
public replace(string $key, mixed $value, int $expiration = 0): bool
public replaceByKey(
string $server_key,
string $key,
mixed $value,
int $expiration = 0
): bool
public resetServerList(): bool
public set(string $key, mixed $value, int $expiration = 0): bool
public setByKey(
string $server_key,
string $key,
mixed $value,
int $expiration = 0
): bool
public setMulti(array $items, int $expiration = 0): bool
public setMultiByKey(string $server_key, array $items, int $expiration = 0): bool
public setOption(int $option, mixed $value): bool
public setOptions(array $options): bool
public setSaslAuthData(string $username, string $password): bool
public touch(string $key, int $expiration = 0): bool
public touchByKey(string $server_key, string $key, int $expiration = 0): bool
}

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 Memcached::add(string $key, mixed $value, int $expiration = 0): bool

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 Memcached::addByKey(
string $server_key,
string $key,
mixed $value,
int $expiration = 0
): bool

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 Memcached::addServer(string $host, int $port, int $weight = 0): bool

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 hachage 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 Memcached::addServers(array $servers): bool

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 Memcached::append(string $key, string $value): ?bool

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. Retourne null si la compression est activée.

Erreurs / Exceptions

Retourne null et lève un E_WARNING si la compression est activée.

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 Memcached::appendByKey(string $server_key, string $key, string $value): ?bool

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. Retourne null si la compression est activée.

Erreurs / Exceptions

Retourne null et lève un E_WARNING si la compression est activée.

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 Memcached::cas(
string|int|float $cas_token,
string $key,
mixed $value,
int $expiration = 0
): bool

Memcached::cas() effectue une opération de "check and set" (littéralement, vérifie et assigne), de manière 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. Voir la documentation de Memcached::get*() pour savoir comment obtenir cette valeur. Notez que cette valeur est représentée par un nombre flottant, à 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 Memcached::casByKey(
string|int|float $cas_token,
string $server_key,
string $key,
mixed $value,
int $expiration = 0
): bool

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 = null, ?callable $callback = null, ?string $connection_str = null)

Crée un objet Memcached représentant la connexion au serveur memcache.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

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.

callback

connection_str

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 Memcached::decrement(
string $key,
int $offset = 1,
int $initial_value = 0,
int $expiry = 0
): int|false

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 Memcached::decrementByKey(
string $server_key,
string $key,
int $offset = 1,
int $initial_value = 0,
int $expiry = 0
): int|false

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 Memcached::delete(string $key, int $time = 0): bool

Efface l'élément représenté par la clé key du serveur.

Liste de paramètres

key

La clé a effacer.

time

La durée d'effacement sur le serveur.

Note: À partir de memcached 1.3.0 (sortie en 2009) cette fonctionalité n'est plus supporté. Passer un time non-zéro causera l'échec de la suppression. Memcached::getResultCode() retournera MEMCACHED_INVALID_ARGUMENTS.

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 Memcached::deleteByKey(string $server_key, string $key, int $time = 0): bool

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.

Note: À partir de memcached 1.3.0 (sortie en 2009) cette fonctionalité n'est plus supporté. Passer un time non-zéro causera l'échec de la suppression. Memcached::getResultCode() retournera MEMCACHED_INVALID_ARGUMENTS.

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 Memcached::deleteMulti(array $keys, int $time = 0): array

Supprime le tableau de clés keys du serveur.

Liste de paramètres

keys

Les clés à supprimer.

time

Le délai d'attente du serveur pour supprimer les éléments.

Note: À partir de memcached 1.3.0 (sortie en 2009) cette fonctionalité n'est plus supporté. Passer un time non-zéro causera l'échec de la suppression. Memcached::getResultCode() retournera MEMCACHED_INVALID_ARGUMENTS.

Valeurs de retour

Retourne un tableau indexé par keys. Chaque élément est true si la clé correspondante a été supprimée, ou une des constantes Memcached::RES_* si la suppression correspondante a échoué.

La méthode Memcached::getResultCode() retournera le code de résultat pour la dernière opération de suppression éxécuté, c'est à dire, l'opération de suppression pour le dernier élément de keys.

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 Memcached::deleteMultiByKey(string $server_key, array $keys, int $time = 0): array

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.

Note: À partir de memcached 1.3.0 (sortie en 2009) cette fonctionalité n'est plus supporté. Passer un time non-zéro causera l'échec de la suppression. Memcached::getResultCode() retournera MEMCACHED_INVALID_ARGUMENTS.

Valeurs de retour

Retourne un tableau indexé par keys. Chaque élément est true si la clé correspondante a été supprimée, ou une des constantes Memcached::RES_* si la suppression correspondante a échoué.

La méthode Memcached::getResultCode() retournera le code de résultat pour la dernière opération de suppression éxécuté, c'est à dire, l'opération de suppression pour le dernier élément de keys.

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 Memcached::fetch(): array|false

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);
}
?>

Résultat de l'exemple ci-dessus est 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 Memcached::fetchAll(): array|false

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 Memcached::flush(int $delay = 0): bool

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 Memcached::get(string $key, ?callable $cache_cb = null, int $get_flags = 0): mixed

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 get_flags est fournit Memcached::GET_EXTENDED, la valeur du jeton CAS du l'élément sera aussi retournée. Voir Memcached::cas() pour savoir comment utiliser les jetons 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.

get_flags

Drapeaux pour contrôler le résultat retourné. Quand Memcached::GET_EXTENDED est fournit, la fonction retournera aussi le jeton CAS.

Valeurs de retour

Retourne la valeur stockée dans le cache, ou bien false sinon. Si get_flags est définit à Memcached::GET_EXTENDED, un tableau contenant la valeur et le jeton CAS est retourné au lieu d'uniquement la valeur. La méthode Memcached::getResultCode() retourne Memcached::RES_NOTFOUND si la clé n'existe pas.

Historique

Version | Description
PECL memcached 3.0.0 | Le paramètre &cas_tokens a été supprimé. Memcached::GET_EXTENDED a été ajoutée et quand passé en tant que drapeau il s'assure que les jetons CAS sont récupérés.

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 Memcached::getAllKeys(): array|false

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 atomique, 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.

Note:

Cette méthode est destinée à des fins de débogage et ne doit pas être utilisée à grande échelle !

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 Memcached::getByKey(
string $server_key,
string $key,
?callable $cache_cb = null,
int $get_flags = 0
): mixed

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

get_flags

Drapeaux pour contrôler le résultat retourné. Quand Memcached::GET_EXTENDED est fournit, la fonction retournera aussi le jeton 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.

Historique

Version | Description
PECL memcached 3.0.0 | Le paramètre &cas_tokens a été supprimé. Memcached::GET_EXTENDED a été ajoutée et quand passé en tant que drapeau il s'assure que les jetons CAS sont récupérés.

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 Memcached::getDelayed(array $keys, bool $with_cas = false, ?callable $value_cb = null): bool

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 Memcached::getDelayedByKey(
string $server_key,
array $keys,
bool $with_cas = false,
?callable $value_cb = null
): bool

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 Memcached::getMulti(array $keys, int $get_flags = 0): array|false

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.

Note:

Antérieur à v3.0 un deuxième argument &cas_tokens était utilisé. Il était remplie avec les valeurs des jetons CAS pour les éléments trouvés. Le paramètre &cas_tokens a été supprimé dans la v3.0 de l'extension. Il a été remplacé par un nouveau drapeau Memcached::GET_EXTENDED qui doit être utilisé comme valeur pour get_flags.

Le paramètre get_flags sert à spécifier des options supplémentaires pour Memcached::getMulti(). Memcached::GET_PRESERVE_ORDER garantit que les clés sont retournées dans le même ordre que celui de leur requête. Memcached::GET_EXTENDED garentit que les jetons CAS seront aussi récupérés.

Liste de paramètres

keys

Un tableau de clé à lire.

get_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.

Historique

Version | Description
PECL memcached 3.0.0 | Le paramètre &cas_tokens a été supprimé. Memcached::GET_EXTENDED a été ajoutée et quand passé en tant que drapeau il s'assure que les jetons CAS sont récupérés.

Exemples

Exemple #1 Exemple de Memcached::getMulti() pour Memcached v3

<?php
// Valide pour la v3 de l'extension

$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'));
var_dump($result);
?>

Résultat de l'exemple ci-dessus est similaire à :

array(2) {
  ["key1"]=>
  string(6) "value1"
  ["key3"]=>
  string(6) "value3"
}

Exemple #2 Exemple de Memcached::getMulti() pour Memcached v1 et v2

<?php
// Valide pour la v1 et v2 de l'extension

$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);
?>

Résultat de l'exemple ci-dessus est similaire à :

array(2) {
  ["key1"]=>
  string(6) "value1"
  ["key3"]=>
  string(6) "value3"
}
array(2) {
  ["key1"]=>
  float(2360)
  ["key3"]=>
  float(2362)
}

Exemple #3 Exemple de Memcached::GET_PRESERVE_ORDER pour Memcached v3

<?php
// Valide pour la v3 de l'extension

$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);

$keys = array_keys($data);
$keys[] = 'zoo';
$got = $m->getMulti($keys, Memcached::GET_PRESERVE_ORDER);

foreach ($got as $k => $v) {
echo "$k $v\n";
}
?>

Résultat de l'exemple ci-dessus est similaire à :

foo foo-data
bar bar-data
baz baz-data
lol lol-data
kek kek-data
zoo

Exemple #4 Exemple de Memcached::GET_PRESERVE_ORDER pour Memcached v1 et v2

<?php
// Valide pour la v1 et v2 de l'extension

$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";
}
?>

Résultat de l'exemple ci-dessus est 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 Memcached::getMultiByKey(string $server_key, array $keys, int $get_flags = 0): array|false

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.

get_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.

Historique

Version | Description
PECL memcached 3.0.0 | Le paramètre &cas_tokens a été supprimé. Memcached::GET_EXTENDED a été ajoutée et quand passé en tant que drapeau il s'assure que les jetons CAS sont récupérés.

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 Memcached::getOption(int $option): mixed

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));
?>

Résultat de l'exemple ci-dessus est 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 Memcached::getResultCode(): int

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 Memcached::getResultMessage(): string

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 Memcached::getServerByKey(string $server_key): array|false

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'));
?>

Résultat de l'exemple ci-dessus est 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 Memcached::getServerList(): array

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 Memcached::getStats(?string $type = null): array|false

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

type

Le type de statistiques à récupérer.

Valeurs de retour

Un tableau de statistiques de serveurs, une entrée par serveur, ou false si une erreur survient.

Exemples

Exemple #1 Exemple avec Memcached::getStats()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

print_r($m->getStats());
?>

Résultat de l'exemple ci-dessus est 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 Memcached::getVersion(): array|false

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());
?>

Résultat de l'exemple ci-dessus est 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 Memcached::increment(
string $key,
int $offset = 1,
int $initial_value = 0,
int $expiry = 0
): int|false

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 Memcached::incrementByKey(
string $server_key,
string $key,
int $offset = 1,
int $initial_value = 0,
int $expiry = 0
): int|false

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 Memcached::isPersistent(): bool

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 Memcached::isPristine(): bool

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 Memcached::prepend(string $key, string $value): ?bool

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. Retourne null si la compression est activée.

Erreurs / Exceptions

Retourne null et lève un E_WARNING si la compression est activée.

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 Memcached::prependByKey(string $server_key, string $key, string $value): ?bool

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. Retourne null si la compression est activée.

Erreurs / Exceptions

Retourne null et lève un E_WARNING si la compression est activée.

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 Memcached::quit(): bool

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 Memcached::replace(string $key, mixed $value, int $expiration = 0): bool

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 Memcached::replaceByKey(
string $server_key,
string $key,
mixed $value,
int $expiration = 0
): bool

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 Memcached::resetServerList(): bool

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 Memcached::set(string $key, mixed $value, int $expiration = 0): bool

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 sérialisé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'));
?>

Résultat de l'exemple ci-dessus est 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 Memcached::setByKey(
string $server_key,
string $key,
mixed $value,
int $expiration = 0
): bool

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 Memcached::setMulti(array $items, int $expiration = 0): bool

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 Memcached::setMultiByKey(string $server_key, array $items, int $expiration = 0): bool

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 Memcached::setOption(int $option, mixed $value): bool

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.

Liste de paramètres

option

Une des constantes Memcached::OPT_*. Voir Memcached Constants pour plus d'informations.

value

La valeur à définir.

Note:

Les options ci-dessous nécessite que les valeurs soit spécifié via les constantes.

  • Memcached::OPT_HASH nécessite une valeur Memcached::HASH_*.
  • Memcached::OPT_DISTRIBUTION nécessite une valeur 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 Memcached::setOptions(array $options): bool

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 Memcached::setSaslAuthData(string $username, string $password): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.


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 Memcached::touch(string $key, int $expiration = 0): bool

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 Memcached::touchByKey(string $server_key, string $key, int $expiration = 0): bool

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

class MemcachedException extends RuntimeException {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private 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.


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 : » https://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

mqseries_back(resource $hconn, resource &$compCode, resource &$reason): void

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

mqseries_begin(
resource $hconn,
array $beginOptions,
resource &$compCode,
resource &$reason
): void

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

mqseries_close(
resource $hconn,
resource $hobj,
int $options,
resource &$compCode,
resource &$reason
): void

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

mqseries_cmit(resource $hconn, resource &$compCode, resource &$reason): void

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

mqseries_conn(
string $qManagerName,
resource &$hconn,
resource &$compCode,
resource &$reason
): void

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

mqseries_connx(
string $qManagerName,
array &$connOptions,
resource &$hconn,
resource &$compCode,
resource &$reason
): void

L'appel de mqseries_connx() (MQCONNX) connecte un programme d'application à un gestionnaire de files d'attente. Il fournit un descripteur de connexion du gestionnaire de files d'attente, qui est utilisé par l'application lors d'appels MQ ultérieurs.

L'appel de mqseries_connx() est comme l'appel de mqseries_conn() (MQCONN), à l'exception que MQCONNX permet de spécifier des options pour contrôler le fonctionnement de l'appel.

Liste de paramètres

qManagerName

Nom du gestionnaire de files d'attente.

Nom du gestionnaire de files d'attente avec qui l'application veut se connecter.

connOps

Options qui contrôle les actions de la fonction

Voir aussi la structure MQCNO.

hConn

Gestionnaire de connexion.

Ce gestionnaire représente la connexion au gestionaire de files d'attente.

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

mqseries_disc(resource $hconn, resource &$compCode, resource &$reason): void

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

mqseries_get(
resource $hConn,
resource $hObj,
array &$md,
array &$gmo,
int &$bufferLength,
string &$msg,
int &$data_length,
resource &$compCode,
resource &$reason
): void

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));
}

// Ferme la référence vers l'objet $obj
mqseries_close($conn, $obj, MQSERIES_MQCO_NONE, $comp_code, $reason);

// Déconnecte du 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_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

mqseries_inq(
resource $hconn,
resource $hobj,
int $selectorCount,
array $selectors,
int $intAttrCount,
resource &$intAttr,
int $charAttrLength,
resource &$charAttr,
resource &$compCode,
resource &$reason
): void

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

mqseries_open(
resource $hconn,
array &$objDesc,
int $option,
resource &$hobj,
resource &$compCode,
resource &$reason
): void

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

mqseries_put1(
resource $hconn,
resource &$objDesc,
resource &$msgDesc,
resource &$pmo,
string $buffer,
resource &$compCode,
resource &$reason
): void

L'appel de mqseries_put1() (MQPUT1) ajoute un message à une file d'attente. La file d'attente n'a pas besoin d'être ouverte.

Vous pouvez utiliser à la fois des appels à mqseries_put() ainsi qu'à mqseries_put1() pour ajouter des messages à une file d'attente ; quel appel à utiliser dépend des circonstances. calls to put messages on a queue; which call to use depends on the circumstances. Utiliser l'appel à mqseries_put() (MQPUT) pour ajouter plusieurs messages à la même file d'attente. Utiliser l'appel à mqseries_put1() (MQPUT1) pour ajouter un seul message à une file d'attente. Cet appel englobe les appels à MQOPEN, MQPUT, et MQCLOSE dans un seul appel, minimisant le nombre d'appels à émettre.

Liste de paramètres

hConn

Gestionnaire de connexion.

Ce gestionnaire représente la connexion au gestionaire de files d'attente.

objDesc

Descripteur de l'objet. (MQOD)

Cette structure identifie la file d'attente dans laquelle le message sera ajouté.

msgDesc

Descripteur du 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

mqseries_put(
resource $hConn,
resource $hObj,
array &$md,
array &$pmo,
string $message,
resource &$compCode,
resource &$reason
): void

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

mqseries_set(
resource $hConn,
resource $hObj,
int $selectorCount,
array $selectors,
int $intAttrCount,
array $intAttrs,
int $charAttrLength,
array $charAttrs,
resource &$compCode,
resource &$reason
): void

L'appel de mqseries_set() (MQSET) est utilisé pour modifier les attributs d'un objet représenté par un gestionnaire. L'objet doit être une file d'attente.

Liste de paramètres

hConn

Gestionnaire de connexion.

Ce gestionnaire représente la connexion au gestionaire de files d'attente.

hObj

Gestionnaire d'objet.

Ce gestionnaire représente l'objet à utiliser.

selectorCount

Compte des sélecteurs.

selectors

Tableau d'attributs des sélecteurs.

intAttrCount

Compte d'attributs entier.

intAttrs

Tableau d'attributs entier.

charAttrLength

Longueur du tampon d'attributs de caractères.

charAttrs

Attributs de caractère.

compCode

Code de complétion.

reason

La raison qui qualifie le 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

mqseries_strerror(int $reason): string

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
    • 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 brut
    • 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 définit le code de 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) en notation décimale à point en une adresse entier long
    • long2ip — Convertit une adresse entier long (IPv4) en sa notation décimale à point
    • net_get_interfaces — Get network interfaces
    • 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.


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 | réservé à un usage local, non disponible sous Windows
LOG_LOCAL1 | réservé à un usage local, non disponible sous Windows
LOG_LOCAL2 | réservé à un usage local, non disponible sous Windows
LOG_LOCAL3 | réservé à un usage local, non disponible sous Windows
LOG_LOCAL4 | réservé à un usage local, non disponible sous Windows
LOG_LOCAL5 | réservé à un usage local, non disponible sous Windows
LOG_LOCAL6 | réservé à un usage local, non disponible sous Windows
LOG_LOCAL7 | réservé à un usage local, non disponible 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_CAA | Certification Authority Authorization Resource (disponible à partir de PHP 7.0.16 et 7.1.2)
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
  • 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 brut
  • 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 définit le code de 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) en notation décimale à point en une adresse entier long
  • long2ip — Convertit une adresse entier long (IPv4) en sa notation décimale à point
  • net_get_interfaces — Get network interfaces
  • 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, PHP 8)

checkdnsrr — Résolution DNS d'une adresse IP

Description

checkdnsrr(string $hostname, string $type = "MX"): bool

Recherche l'enregistrement DNS de type type correspondant à l'hôte hostname.

Liste de paramètres

hostname

hostname 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é.

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
  • dns_check_record »
  • PHP Manual
  • Fonctions réseaux
  • Ferme la connexion à l'historique système

closelog

(PHP 4, PHP 5, PHP 7, PHP 8)

closelog — Ferme la connexion à l'historique système

Description

closelog(): true

closelog() ferme le pointeur qui sert à écrire dans l'historique système. L'utilisation de closelog() est optionnelle.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne toujours true.

Voir aussi

  • syslog() - Génère un message dans l'historique système
  • openlog() - Ouvre la connexion à l'historique système


Alias de checkdnsrr

  • « closelog
  • dns_get_mx »
  • PHP Manual
  • Fonctions réseaux
  • Alias de checkdnsrr

dns_check_record

(PHP 5, PHP 7, PHP 8)

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, PHP 8)

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, PHP 8)

dns_get_record — Lit les données DNS associées à un hôte

Description

dns_get_record(
string $hostname,
int $type = DNS_ANY,
array &$authoritative_name_servers = null,
array &$additional_records = null,
bool $raw = false
): array|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_CAA, 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.

Note:

Windows : DNS_CAA n'est pas supporté. Support pour DNS_A6 n'est pas implémenté.

authoritative_name_servers

Passé par référence, et, s'il est fourni, recevra les enregistrements de ressources pour les Authoritative Name Servers.

additional_records

Passé par référence, et, s'il est fourni, recevra tous les enregistrements supplémentaires.

raw

Le type sera interprété comme un ID de type DNS brut (les constantes DNS_* ne peuvent pas être utilisé). La valeur de retour contiendra une clé data, qui doit être manuellement analysé.

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.
CAA | flags : Un champ-bit d'un octet : actuellement seul le bit 0 est définit, signifiant 'critical' (critique) ; les autres bits sont réservés et devrait être ignoré. tag: Le nom du tag CAA (chaîne alphanumérique ASCII). value : La valeur du tag CAA (chaîne binaire, peut utiliser des sous-formats). Pour plus d'informations voir : » RFC 6844
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 | 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
7.0.16, 7.1.2 | Ajout du support pour les enregistrements de type CAA.

Exemples

Exemple #1 Exemple avec dns_get_record()

<?php
$result = dns_get_record("php.net");
print_r($result);
?>

Résultat de l'exemple ci-dessus est 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 additional_records qui contiendra les enregistrements associés. authoritative_name_servers 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);
?>

Résultat de l'exemple ci-dessus est 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
        )

)

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, PHP 8)

fsockopen — Ouvre un socket de connexion Internet ou Unix

Description

fsockopen(
string $hostname,
int $port = -1,
int &$error_code = null,
string &$error_message = null,
?float $timeout = null
): resource|false

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://.

error_code

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 error_code 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.

error_message

Le message d'erreur, sous la forme d'une chaîne de caractères.

timeout

Le délai d'attente maximal, en secondes. Si null le paramètre php.ini default_socket_timeout est utilisé.

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.

Historique

Version | Description
8.0.0 | timeout est désormais nullable.

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 à partir de l'emplacement du pointeur sur 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, PHP 8)

gethostbyaddr — Retourne le nom d'hôte correspondant à une IP

Description

gethostbyaddr(string $ip): string|false

gethostbyaddr() retourne le nom d'hôte correspondant à l'IP ip.

Liste de paramètres

ip

L'adresse IP de l'hôte.

Valeurs de retour

Retourne le nom de l'hôte en cas de succès, l'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, PHP 8)

gethostbyname — Retourne l'adresse IPv4 correspondant à un hôte

Description

gethostbyname(string $hostname): string

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, PHP 8)

gethostbynamel — Retourne la liste d'IPv4 correspondante à un hôte

Description

gethostbynamel(string $hostname): array|false

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 >= 5.3.0, PHP 7, PHP 8)

gethostname — Lit le nom de l'hôte

Description

gethostname(): string|false

gethostname() lit le nom d'hôte standard pour la machine hôte.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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
?>

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, PHP 8)

getmxrr — Retourne les enregistrements MX d'un hôte

Description

getmxrr(string $hostname, array &$hosts, array &$weights = null): bool

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.

hosts

La liste des enregistrements MX est placée dans le tableau hosts.

weights

Si le tableau weights 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.

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, PHP 8)

getprotobyname — Retourne le numéro de protocole associé à un nom de protocole

Description

getprotobyname(string $protocol): int|false

getprotobyname() retourne le numéro de protocole associé avec le nom de protocole protocol, comme dans /etc/protocols.

Liste de paramètres

protocol

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, PHP 8)

getprotobynumber — Retourne le nom de protocole associé à un numéro de protocole

Description

getprotobynumber(int $protocol): string|false

getprotobynumber() retourne le nom de protocole associé le protocole protocol, comme décrit dans /etc/protocols.

Liste de paramètres

protocol

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, PHP 8)

getservbyname — Retourne le numéro de port associé à un service Internet et un protocole

Description

getservbyname(string $service, string $protocol): int|false

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, PHP 8)

getservbyport — Retourne le service Internet qui correspond au port et protocole

Description

getservbyport(int $port, string $protocol): string|false

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, ou false si une erreur survient.

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, PHP 8)

header_register_callback — Enregistre une fonction de rappel pour l'envoi des en-têtes

Description

header_register_callback(callable $callback): bool

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";
?>

Résultat de l'exemple ci-dessus est 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 supporte 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 brut


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, PHP 8)

header_remove — Supprime un en-tête HTTP

Description

header_remove(?string $name = null): void

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. Si null tout les en-têtes définit précédemment sont supprimés.

Note: Ce paramètre est insensible à la casse.

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version | Description
8.0.0 | name est désormais nullable.

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");
?>

Résultat de l'exemple ci-dessus est 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();
?>

Résultat de l'exemple ci-dessus est 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 supporte sera utilisé.

Voir aussi

  • header() - Envoie un en-tête HTTP brut
    •

  • headers_sent() - Indique si les en-têtes HTTP ont déjà été envoyés
    •


Envoie un en-tête HTTP brut

  • « header_remove
  • headers_list »
  • PHP Manual
  • Fonctions réseaux
  • Envoie un en-tête HTTP brut

header

(PHP 4, PHP 5, PHP 7, PHP 8)

header — Envoie un en-tête HTTP brut

Description

header(string $header, bool $replace = true, int $response_code = 0): void

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

header

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), assurez-vous que le script génère un code statut correct.

<?php
// This example illustrates the "HTTP/" special case
// Better alternatives in typical use cases include:
// 1. header($_SERVER["SERVER_PROTOCOL"] . " 404 Not Found");
// (to override http status messages for clients that are still using HTTP/1.0)
// 2. http_response_code(404); (to use the default message)
header("HTTP/1.1 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);
?>

response_code

Force le code réponse HTTP à la valeur spécifiée. À noter que ce paramètre a un effet uniquement si header n'est pas vide.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Lors de l'échec de la planification de l'envoi d'un en-tête, header() lève une erreur de niveau E_WARNING.

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.

Exemple #3 Paramétrer un cookie

setcookie() offre un moyen pratique de paramétrer des cookies. Pour définir un cookie avec des attributs non pris en charge par setcookie(), header() peut être utilisé.

Par exemple, le code suivant définit un cookie qui inclut un attribut Partitioned.

<?php
header('Set-Cookie: name=value; Secure; Path=/; SameSite=None; Partitioned;');
?>

Notes

Note:

Les en-têtes ne seront accessibles et s'afficheront que lorsqu'un SAPI qui les supporte 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:

La plupart des clients moderne accepte des URIs relative comme argument de » Location:, mais certains client plus ancien exigent une URI absolue y compris le protocole, l'hôte et le chemin absolu. 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 définit le code de réponse HTTP
  • header_remove() - Supprime un en-tête HTTP
  • headers_list() - Retourne la liste des en-têtes de réponse du script courant
  • 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, PHP 8)

headers_list — Retourne la liste des en-têtes de réponse du script courant

Description

headers_list(): array

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().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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("Example-Test: foo");

/* Spécification de la réponse en texte simple */
header('Content-Type: text/plain; CHARSET=Windows-1252');

/* Quels sont les en-têtes qui vont être envoyés ? */
var_dump(headers_list());

?>

Résultat de l'exemple ci-dessus est similaire à :

array(4) {
  [0]=>
  string(19) "Set-Cookie: foo=bar"
  [1]=>
  string(17) "Example-Test: foo"
  [2]=>
  string(39) "Content-Type: text/plain; CHARSET=Windows-1252"
}

Notes

Note:

Les en-têtes ne seront accessibles et s'afficheront que lorsqu'un SAPI qui les supporte 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 brut
  • 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 définit le code de 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, PHP 8)

headers_sent — Indique si les en-têtes HTTP ont déjà été envoyés

Description

headers_sent(string &$filename = null, int &$line = null): bool

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

filename

Si les paramètres optionnels filename 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 filename et line.

Note:

Si l'affichage a commencé avant l'exécution du fichier source PHP (par exemple en raison d'une erreur de démarrage), le paramètre nom du fichier sera défini comme une chaîne vide.

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.
// 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
cliquer <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 supporte 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 HTTP brut pour plus de détails sur les tenants et aboutissants.


Récupère ou définit le code de réponse HTTP

  • « headers_sent
  • inet_ntop »
  • PHP Manual
  • Fonctions réseaux
  • Récupère ou définit le code de réponse HTTP

http_response_code

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

http_response_code — Récupère ou définit le code de réponse HTTP

Description

http_response_code(int $response_code = 0): int|bool

Récupère ou définit le code d'état de réponse HTTP.

Liste de paramètres

response_code

Le paramètre optionnel response_code définira le code de réponse.

Valeurs de retour

Si response_code est fournit, dans ce cas là le code d'état précédent sera retourné. Si response_code n'est pas fournit, alors le code d'état actuel sera retourné. Ces deux valeurs seront par défaut le code d'état 200 si utilisé dans un environnement de serveur Web.

false sera retourné si response_code n'est pas fournit et n'est pas invoqué dans un environnement de serveur Web (par exemple depuis une application CLI) true sera retourné si response_code est fournit et n'est pas invoqué dans un environnement de serveur Web (mais uniquement si aucun état de réponse précédent n'a été défini).

Exemples

Exemple #1 Utiliser http_response_code() dans un environnement de serveur Web

<?php

// Récupérer le code actuel de réponse et définir un nouveau
var_dump(http_response_code(404));

// Récupérer le nouveau code de réponse
var_dump(http_response_code());
?>

L'exemple ci-dessus va afficher :

int(200)
int(404)

Exemple #2 Utiliser http_response_code() dans un environnement CLI

<?php

// Récupérer le code de réponse par défaut
var_dump(http_response_code());

// Définir un code de réponse
http_response_code(404);

// Récupérer le nouveau code de réponse
var_dump(http_response_code());
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)
int(201)

Voir aussi

  • header() - Envoie un en-tête HTTP brut
  • 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, PHP 8)

inet_ntop — Convertit un paquet d'adresses internet en une représentation humainement lisible

Description

inet_ntop(string $ip): string|false

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

ip

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;
?>

Voir aussi

  • long2ip() - Convertit une adresse entier long (IPv4) en sa notation décimale à point
  • ip2long() - Convertit une chaîne contenant une adresse (IPv4) en notation décimale à point en une adresse entier long
  • 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, PHP 8)

inet_pton — Convertit une adresse IP lisible en sa représentation in_addr

Description

inet_pton(string $ip): string|false

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

ip

Une adresse IPv4 ou IPv6.

Valeurs de retour

Retourne la représentation in_addr de l'adresse fournie par le paramètre ip ou false si le paramètre ip 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');
?>

Voir aussi

  • ip2long() - Convertit une chaîne contenant une adresse (IPv4) en notation décimale à point en une adresse entier long
  • long2ip() - Convertit une adresse entier long (IPv4) en sa notation décimale à point
  • inet_ntop() - Convertit un paquet d'adresses internet en une représentation humainement lisible


Convertit une chaîne contenant une adresse (IPv4) en notation décimale à point en une adresse entier long

  • « inet_pton
  • long2ip »
  • PHP Manual
  • Fonctions réseaux
  • Convertit une chaîne contenant une adresse (IPv4) en notation décimale à point en une adresse entier long

ip2long

(PHP 4, PHP 5, PHP 7, PHP 8)

ip2long — Convertit une chaîne contenant une adresse (IPv4) en notation décimale à point en une adresse entier long

Description

ip2long(string $ip): int|false

La fonction ip2long() génère une représentation en entier long d'une adresse IPv4 depuis son format standard (notation décimale à point)

ip2long() fonctionne également avec des adresses IP incomplètes. Lire » http://ps-2.kev009.com/wisclibrary/aix52/usr/share/man/info/en_US/a_doc_lib/libs/commtrf2/inet_addr.htm pour plus d'informations.

Liste de paramètres

ip

Une adresse au format standard.

Valeurs de retour

Retourne l'entier long, ou false si ip est invalide.

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() :

<?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"; // 3221234342 (-1073732954 sur les sytèmes 32-bit, à cause du débordement d'entier)
printf("%u\n", ip2long($ip)); // 3221234342
}
?>

Notes

Note:

Comme les entier PHP sont signés et que beaucoup d'adresses IP résulteront en 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() retournera -1 pour l'IP 255.255.255.255 sur les systèmes 32-bits à cause du débordement de la valeur d'entier.

Voir aussi

  • long2ip() - Convertit une adresse entier long (IPv4) en sa notation décimale à point
  • sprintf() - Retourne une chaîne formatée


Convertit une adresse entier long (IPv4) en sa notation décimale à point

  • « ip2long
  • net_get_interfaces »
  • PHP Manual
  • Fonctions réseaux
  • Convertit une adresse entier long (IPv4) en sa notation décimale à point

long2ip

(PHP 4, PHP 5, PHP 7, PHP 8)

long2ip — Convertit une adresse entier long (IPv4) en sa notation décimale à point

Description

long2ip(int $ip): string

La fonction long2ip() génère une adresse Internet en notation décimale à point (format aaa.bbb.ccc.ddd) à partir de sa représentation entier long.

Liste de paramètres

ip

Une propre représentation d'une adresse sous forme entier long

Valeurs de retour

Retourne l'adresse IP Internet, sous la forme d'une chaîne de caractères, ou false si une erreur survient.

Historique

Version | Description
7.1.0 | La type du paramètre ip a été modifié de string en int.

Notes

Note:

Sur les architectures 32-bits, transtyper la représention d'adresses IP de string à int ne donnera pas de résultats correct pour les nombres qui dépassent PHP_INT_MAX.

Voir aussi

  • ip2long() - Convertit une chaîne contenant une adresse (IPv4) en notation décimale à point en une adresse entier long


Get network interfaces

  • « long2ip
  • openlog »
  • PHP Manual
  • Fonctions réseaux
  • Get network interfaces

net_get_interfaces

(PHP 7 >= 7.3, PHP 8)

net_get_interfaces — Get network interfaces

Description

net_get_interfaces(): array|false

Returns an enumeration of network interfaces (adapters) on the local machine.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns an associative tableau where the key is the name of the interface and the value an associative array of interface attributes, ou false si une erreur survient.

Each interface associative array contains:

Interface attributes
Nom | Description
description | Optional string value for description of the interface. Windows only.
mac | Optional string value for MAC address of the interface. Windows only.
mtu | Integer value for Maximum transmission unit (MTU) of the interface. Windows only.
unicast | Array of associative arrays, see Unicast attributes below.
up | Boolean status (on/off) for interface.

Unicast attributes
Nom | Description
flags | Integer value.
family | Integer value.
address | String value for address in either IPv4 or IPv6.
netmask | String value for netmask in either IPv4 or IPv6.

Erreurs / Exceptions

Emits an E_WARNING on failure to get interface information.


Ouvre la connexion à l'historique système

  • « net_get_interfaces
  • pfsockopen »
  • PHP Manual
  • Fonctions réseaux
  • Ouvre la connexion à l'historique système

openlog

(PHP 4, PHP 5, PHP 7, PHP 8)

openlog — Ouvre la connexion à l'historique système

Description

openlog(string $prefix, int $flags, int $facility): bool

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 prefix vaudra par défaut false.

Liste de paramètres

prefix

La chaîne prefix sera ajoutée à chaque message.

flags

L'argument flags 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, PHP 8)

pfsockopen — Ouvre un socket de connexion Internet ou Unix persistante

Description

pfsockopen(
string $hostname,
int $port = -1,
int &$error_code = null,
string &$error_message = null,
?float $timeout = null
): resource|false

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().

Valeurs de retour

pfsockopen() retourne un pointeur de fichier qui peut être utilisé avec d'autres functions de fichier (tel que fgets(), fgetss(), fwrite(), fclose(), et feof()), ou false si une erreur survient.

Historique

Version | Description
8.0.0 | timeout est désormais nullable.

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, PHP 8)

setcookie — Envoie un cookie

Description

setcookie(
string $name,
string $value = "",
int $expires_or_options = 0,
string $path = "",
string $domain = "",
bool $secure = false,
bool $httponly = false
): bool

Signature alternative disponible à partir de PHP 7.3.0 (pas supporté avec les paramètres nommés) :

setcookie(string $name, string $value = "", array $options = []): bool

setcookie() définit un cookie qui sera envoyé avec le reste des en-têtes HTTP. 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> et aussi des caractères d'espacement blanc.

Une fois que les cookies ont été placés, ils seront accessibles lors du prochain chargement de page dans le tableau $_COOKIE. Les valeurs des cookies peuvent aussi exister dans la variable $_REQUEST.

Liste de paramètres

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', cette valeur est récupéré avec $_COOKIE['cookiename'].

expires_or_options

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). Une façon de définir cette valeur est d'ajouter le nombre de secondes avant que le cookie n'expire au résultat d'un appel à time(). Par exemple time()+60*60*24*30 configurera le cookie pour qu'il expire dans 30 jours. Une autre possibilité consiste à utiliser la fonction mktime(). 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 expires_or_options prend un horodatage 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 (sous-)domaine pour lequel le cookie est disponible. Définir ceci à un sous-domaine (tel que 'www.example.com') rendra le cookie disponible pour ce sous-domaine ainsi que tous ses sous-domaines (par exemple : w2.www.example.com). Pour rendre le cookie disponible sur tout le domaine (ainsi que tous ses sous-domaines), définissez simplement la valeur avec le nom de domaine ('example.com', avec cet exemple).

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. Lorsque ce paramètre vaut 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é suggéré que cette configuration permet de limiter les attaques via XSS (bien qu'elle ne soit pas supportée par tous les navigateurs), néanmoins ce fait est souvent contesté. true ou false

options

Un tableau associatif qui peut avoir comme clés expires, path, domain, secure, httponly et samesite. Si une autre clé est présente une erreur de niveau E_WARNING est émise. Les valeurs ont la même signification que celles décrits pour les paramètres avec le même nom. La valeur de l'élément samesite doit être None, Lax ou Strict. Si une options autorisé n'est pas donnée alors sa valeur par défaut sera identique à la valeur par défaut des paramètres explicite. Si l'élément samesite est omit, alors l'attribut SameSite du cookie ne sera pas définie.

Note:

Pour définir un cookie qui inclut des attributs qui ne figurent pas parmi les clés répertoriées, utilisez header().

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.

Historique

Version | Description
8.2.0 | Le date du cookie est au format 'D, d M Y H:i:s \G\M'T'; précédemment c'était 'D, d-M-Y H:i:s T'.
7.3.0 | Une signature alternative supportant un tableau d'options a été ajouté. Cette signature supporte la définition de l'attribut SameSite du cookie.

Exemples

Les exemples suivants démontrent quelques façons d'envoyer des 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"];

// 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
// Définie la date d'expiration à une heure avant la date courante
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

Note: L'utilisation des caractères de séparation comme [ et ] comme faisant partie du nom du cookie n'est pas respectueux de la RFC 6265, section 4, mais est supposé être supporté par les user agents, suivant la RFC 6265, section 5.

Notes

Note:

Vous pouvez utiliser un tampon 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.

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 expires_or_options. 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 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 brut
  • setrawcookie() - Envoie un cookie sans encoder sa valeur en URL
  • 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, PHP 8)

setrawcookie — Envoie un cookie sans encoder sa valeur en URL

Description

setrawcookie(
string $name,
string $value = ?,
int $expires_or_options = 0,
string $path = ?,
string $domain = ?,
bool $secure = false,
bool $httponly = false
): bool

Signature alternative disponible à partir de PHP 7.3.0 (pas supporté avec les paramètres nommés) :

setrawcookie(string $name, string $value = ?, array $options = []): bool

setrawcookie() est identique à 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
7.3.0 | Une signature alternative supportant un tableau d'options a été ajouté. Cette signature supporte la définition de l'attribut SameSite du cookie.

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, PHP 8)

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, PHP 8)

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, PHP 8)

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, PHP 8)

syslog — Génère un message dans l'historique système

Description

syslog(int $priority, string $message): true

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.

Valeurs de retour

Retourne toujours true.

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

Sur Windows, 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
  • Paramètre INI syslog.filter (à partir de PHP 7.3)


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.

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 multithread 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 : » https://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

rrd_create(string $filename, array $options): bool

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

rrd_error(): string

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

rrd_fetch(string $filename, array $options): array

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

rrd_first(string $file, int $raaindex = 0): int

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

rrd_graph(string $filename, array $options): array

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

rrd_info(string $filename): array

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

rrd_last(string $filename): int

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

rrd_lastupdate(string $filename): array

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

rrd_restore(string $xml_file, string $rrd_file, array $options = ?): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.


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

rrd_tune(string $filename, array $options): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.


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

rrd_update(string $filename, array $options): bool

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

Cette fonction 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

rrd_version(): string

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

rrd_xport(array $options): array

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

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

class RRDCreator {
/* Méthodes */
public __construct(string $path, string $startTime = ?, int $step = 0)
public addArchive(string $description): void
public addDataSource(string $description): void
public save(): bool
}

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 RRDCreator::addArchive(string $description): void

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 RRDCreator::addDataSource(string $description): void

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.


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 RRDCreator::save(): bool

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

class RRDGraph {
/* Méthodes */
public __construct(string $path)
public save(): array
public saveVerbose(): array
public setOptions(array $options): void
}

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.


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 RRDGraph::save(): array

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 RRDGraph::saveVerbose(): array

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é, 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 RRDGraph::setOptions(array $options): void

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

class RRDUpdater {
/* Méthodes */
public __construct(string $path)
public update(array $values, string $time = time() ): bool
}

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.


Met à jour un fichier de base de données RRD

  • « RRDUpdater::__construct
  • ScoutAPM »
  • 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 RRDUpdater::update(array $values, string $time = time() ): bool

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");
?>


ScoutAPM

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
  • Constantes pré-définies
  • Scoutapm Fonctions
    • scoutapm_get_calls — Returns a list of instrumented calls that have occurred
    • scoutapm_list_instrumented_functions — List functions scoutapm will instrument.


Introduction

Note: Cette extension n'est pas disponible sur les plates-formes Windows.

ScoutAPM's extension for PHP provides additional capabilities to application monitoring over just using the base PHP userland library.


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

  • PHP >= 7.1.0
  • Windows is not currently supported


Installation

This extension is available on PECL. Run:

$ sudo pecl install scoutapm
You may need to add Scout to your php.ini, for example:
extension=scoutapm.so


  • « Configuration à l'exécution
  • Scoutapm Fonctions »
  • PHP Manual
  • ScoutAPM
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Scoutapm Fonctions

Sommaire

  • scoutapm_get_calls — Returns a list of instrumented calls that have occurred
  • scoutapm_list_instrumented_functions — List functions scoutapm will instrument.


Returns a list of instrumented calls that have occurred

  • « Scoutapm Fonctions
  • scoutapm_list_instrumented_functions »
  • PHP Manual
  • Scoutapm Fonctions
  • Returns a list of instrumented calls that have occurred

scoutapm_get_calls

(PECL scoutapm >= 1.0.0)

scoutapm_get_calls — Returns a list of instrumented calls that have occurred

Description

scoutapm_get_calls(): array

Returns a list of any instrumented function calls since scoutapm_get_calls() was last called. The list is cleared each time the function is called.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

scoutapm_get_calls() returns an array containing a list of all recorded calls to instrumented function calls.

Exemples

Exemple #1 Fetch instrumented calls

<?php

file_get_contents('a.txt');
file_get_contents('b.txt');

print_r(scoutapm_get_calls());
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => Array
        (
            [function] => file_get_contents
            [entered] => 1576839727.7934
            [exited] => 1576839727.7935
            [time_taken] => 2.7894973754883E-5
            [argv] => Array
                (
                    [0] => a.txt
                )

        )

    [1] => Array
        (
            [function] => file_get_contents
            [entered] => 1576839727.7935
            [exited] => 1576839727.7935
            [time_taken] => 7.8678131103516E-6
            [argv] => Array
                (
                    [0] => b.txt
                )

        )

)


List functions scoutapm will instrument.

  • « scoutapm_get_calls
  • SNMP »
  • PHP Manual
  • Scoutapm Fonctions
  • List functions scoutapm will instrument.

scoutapm_list_instrumented_functions

(PECL scoutapm >= 1.0.2)

scoutapm_list_instrumented_functions — List functions scoutapm will instrument.

Description

scoutapm_list_instrumented_functions(): array

Returns a list of the functions the extension will instrument.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

scoutapm_list_instrumented_functions() returns an array containing a list of all functions that the scoutapm extension is able to instrument in the current installation.

Exemples

Exemple #1 Fetch the list of functions scoutapm will instrument

<?php
print_r(scoutapm_list_instrumented_functions());
?>

Résultat de l'exemple ci-dessus est similaire à :

Array
(
    [0] => file_get_contents
    [1] => file_put_contents
    [2] => fopen
    [3] => fread
    [4] => fwrite
    [5] => pdo->exec
    [6] => pdo->query
    [7] => pdo->prepare
    [8] => pdostatement->execute
)


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 NET-SNMP
    • 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 — Alias de snmp_set_oid_output_format
    • snmp_set_oid_output_format — Définit le format de sortie OID
    • snmp_set_quick_print — Écrit la valeur courante de l'option enable de la bibliothèque NET-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éfinit la 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, tous les concepts sont identiques et les fonctions PHP modifient leurs comportements suivant les fichiers de configuration Net-SNMP et les variables d'environnement.

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é.

Net-SNMP version 5.3+ est nécessaire pour les installations sous Unix, et Net-SNMP version 5.4+ sous Windows.


Installation

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.


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 (int)
SNMP_OID_OUTPUT_MODULE (int)
SNMP_OID_OUTPUT_FULL (int)
SNMP_OID_OUTPUT_NUMERIC (int)
SNMP_OID_OUTPUT_UCD (int)
SNMP_OID_OUTPUT_NONE (int)
Pour snmp_set_valueretrieval()
SNMP_VALUE_LIBRARY (int)
SNMP_VALUE_PLAIN (int)
SNMP_VALUE_OBJECT (int)
Types SNMP tels que retournés si SNMP_VALUE_OBJECT a été utilisé avec snmp_set_valueretrieval()
SNMP_BIT_STR (int)
SNMP_OCTET_STR (int)
SNMP_OPAQUE (int)
SNMP_NULL (int)
SNMP_OBJECT_ID (int)
SNMP_IPADDRESS (int)
SNMP_COUNTER (int)
SNMP_UNSIGNED (int)
SNMP_TIMETICKS (int)
SNMP_UINTEGER (int)
SNMP_INTEGER (int)
SNMP_COUNTER64 (int)


Fonctions SNMP

Sommaire

  • snmp_get_quick_print — Lit la valeur courante de l'option quick_print de la bibliothèque NET-SNMP
  • 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 — Alias de snmp_set_oid_output_format
  • snmp_set_oid_output_format — Définit le format de sortie OID
  • snmp_set_quick_print — Écrit la valeur courante de l'option enable de la bibliothèque NET-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 NET-SNMP

  • « Fonctions SNMP
  • snmp_get_valueretrieval »
  • PHP Manual
  • Fonctions SNMP
  • Lit la valeur courante de l'option quick_print de la bibliothèque NET-SNMP

snmp_get_quick_print

(PHP 4, PHP 5, PHP 7, PHP 8)

snmp_get_quick_print — Lit la valeur courante de l'option quick_print de la bibliothèque NET-SNMP

Description

snmp_get_quick_print(): bool

snmp_get_quick_print() retourne la valeur courante, stockée dans la bibliothèque NET-SNMP, de l'option quick_print. Par défaut, quick_print est désactivée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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 enable de la bibliothèque NET-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, PHP 8)

snmp_get_valueretrieval — Retourne la méthode avec laquelle les valeurs SNMP seront retournées

Description

snmp_get_valueretrieval(): int

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

snmp_read_mib — Lit et analyse un fichier MIB dans l'arbre actif MIB

Description

snmp_read_mib(string $filename): bool

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.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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, PHP 8)

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

snmp_set_enum_print(bool $enable): true

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

enable

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".

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.2.0 | Le type de retour est maintenant true, auparavant il était bool.

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


Alias de snmp_set_oid_output_format

  • « snmp_set_enum_print
  • snmp_set_oid_output_format »
  • PHP Manual
  • Fonctions SNMP
  • Alias de snmp_set_oid_output_format

snmp_set_oid_numeric_print

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

snmp_set_oid_numeric_print — Alias de snmp_set_oid_output_format()

Description

Cette fonction est un alias de : snmp_set_oid_output_format().

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, PHP 8)

snmp_set_oid_output_format — Définit le format de sortie OID

Description

snmp_set_oid_output_format(int $format): true

snmp_set_oid_output_format() définit le format de sortie afin qu'il soit complet ou numérique.

Liste de paramètres

format
Représentation OID .1.3.6.1.2.1.1.3.0 pour plusieurs valeurs de 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
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

Retourne toujours true.

Historique

Version | Description
8.2.0 | Le type de retour est maintenant true, auparavant il était bool.

Exemples

Exemple #1 Exemple avec snmprealwalk()

<?php

snmp_read_mib("/usr/share/mibs/netsnmp/NET-SNMP-TC");

// défaut ou SNMP_OID_OUTPUT_MODULE
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 enable de la bibliothèque NET-SNMP

  • « snmp_set_oid_output_format
  • snmp_set_valueretrieval »
  • PHP Manual
  • Fonctions SNMP
  • Écrit la valeur courante de l'option enable de la bibliothèque NET-SNMP

snmp_set_quick_print

(PHP 4, PHP 5, PHP 7, PHP 8)

snmp_set_quick_print — Écrit la valeur courante de l'option enable de la bibliothèque NET-SNMP

Description

snmp_set_quick_print(bool $enable): true

Fixe la valeur de l'option enable de la bibliothèque NET-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 enable n'est pas activée (par défaut), la bibliothèque NET-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, NET-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

enable

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.2.0 | Le type de retour est maintenant true, auparavant il était bool.

Exemples

Modifier enable 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";
?>

Résultat de l'exemple ci-dessus est 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 NET-SNMP


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, PHP 8)

snmp_set_valueretrieval — Spécifie la méthode avec laquelle les valeurs SNMP seront retournées

Description

snmp_set_valueretrieval(int $method): true

Liste de paramètres

method
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'information 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.

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.2.0 | Le type de retour est maintenant true, auparavant il était bool.

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
// )

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
// )

?>

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, PHP 8)

snmp2_get — Récupère un objet SNMP

Description

snmp2_get(
string $hostname,
string $community,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): mixed

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

hostname

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, PHP 7, PHP 8)

snmp2_getnext — Récupère l'objet SNMP qui suit immédiatement l'identifiant de l'objet fourni

Description

snmp2_getnext(
string $hostname,
string $community,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): mixed

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

hostname

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, PHP 7, PHP 8)

snmp2_real_walk — Retourne tous les objets incluant les identifiants de leurs objets respectifs

Description

snmp2_real_walk(
string $hostname,
string $community,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): array|false

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

hostname

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, PHP 7, PHP 8)

snmp2_set — Définit la valeur d'un objet SNMP

Description

snmp2_set(
string $hostname,
string $community,
array|string $object_id,
array|string $type,
array|string $value,
int $timeout = -1,
int $retries = -1
): bool

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

hostname

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 hexadé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, PHP 7, PHP 8)

snmp2_walk — Récupère tous les objets SNMP depuis un agent

Description

snmp2_walk(
string $hostname,
string $community,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): array|false

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

hostname

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 snmp2_walk()

<?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, PHP 8)

snmp3_get — Récupère un objet SNMP

Description

snmp3_get(
string $hostname,
string $security_name,
string $security_level,
string $auth_protocol,
string $auth_passphrase,
string $privacy_protocol,
string $privacy_passphrase,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): mixed

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

hostname

Le nom de l'hôte de l'agent SNMP (serveur).

security_name

Le nom de la sécurité, habituellement, le nom d'utilisateur.

security_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.

privacy_protocol

Le protocole d'authentification ("MD5", "SHA", "SHA256" ou "SHA512").

privacy_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.

Historique

Version | Description
8.1.0 | Le paramètre auth_protocol accepte désormais "SHA256" et "SHA512" lorsqu'il est supporté par libnetsnmp.

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, PHP 8)

snmp3_getnext — Récupère l'objet SNMP qui suit immédiatement l'objet fourni

Description

snmp3_getnext(
string $hostname,
string $security_name,
string $security_level,
string $auth_protocol,
string $auth_passphrase,
string $privacy_protocol,
string $privacy_passphrase,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): mixed

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

hostname

Le nom d'hôte de l'agent SNMP (serveur).

security_name

Le nom de la sécurité, habituellement, le nom d'utilisateur.

security_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.

privacy_protocol

Le protocole d'authentification ("MD5", "SHA", "SHA256" ou "SHA512").

privacy_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.

Historique

Version | Description
8.1.0 | Le paramètre auth_protocol accepte désormais "SHA256" et "SHA512" lorsqu'il est supporté par libnetsnmp.

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, PHP 8)

snmp3_real_walk — Retourne tous les objets incluant les identifiants de leurs objets respectifs

Description

snmp3_real_walk(
string $hostname,
string $security_name,
string $security_level,
string $auth_protocol,
string $auth_passphrase,
string $privacy_protocol,
string $privacy_passphrase,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): array|false

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

hostname

Le nom d'hôte de l'agent SNMP (serveur).

security_name

Le nom de la sécurité, habituellement, le nom d'utilisateur.

security_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.

privacy_protocol

Le protocole d'authentification ("MD5", "SHA", "SHA256" ou "SHA512").

privacy_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.

Historique

Version | Description
8.1.0 | Le paramètre auth_protocol accepte désormais "SHA256" et "SHA512" lorsqu'il est supporté par libnetsnmp.

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, PHP 8)

snmp3_set — Définit la valeur d'un objet SNMP

Description

snmp3_set(
string $hostname,
string $security_name,
string $security_level,
string $auth_protocol,
string $auth_passphrase,
string $privacy_protocol,
string $privacy_passphrase,
array|string $object_id,
array|string $type,
array|string $value,
int $timeout = -1,
int $retries = -1
): bool

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

hostname

Le nom de l'hôte de l'agent SNMP (serveur).

security_name

Le nom de la sécurité, habituellement, le nom d'utilisateur.

security_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.

privacy_protocol

Le protocole privé (DES ou AES)

privacy_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 hexadé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, PHP 8)

snmp3_walk — Récupère tous les objets SNMP depuis un agent

Description

snmp3_walk(
string $hostname,
string $security_name,
string $security_level,
string $auth_protocol,
string $auth_passphrase,
string $privacy_protocol,
string $privacy_passphrase,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): array|false

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

hostname

Le nom de l'hôte de l'agent SNMP (serveur).

security_name

Le nom de la sécurité, habituellement, le nom de l'utilisateur.

security_level

Le niveau de sécurité (noAuthNoPriv|authNoPriv|authPriv).

auth_protocol

Le protocole d'authentification ("MD5", "SHA", "SHA256" ou "SHA512").

auth_passphrase

La phrase secrète d'authentification.

privacy_protocol

Le protocole privé (DES ou AES).

privacy_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.

Historique

Version | Description
8.1.0 | Le paramètre auth_protocol accepte désormais "SHA256" et "SHA512" lorsqu'il est supporté par libnetsnmp.

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, PHP 8)

snmpget — Reçoit un objet SNMP

Description

snmpget(
string $hostname,
string $community,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): mixed

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, PHP 8)

snmpgetnext — Récupère un objet SNMP qui suit immédiatement l'objet fourni

Description

snmpgetnext(
string $hostname,
string $community,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): mixed

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

hostname

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, PHP 8)

snmprealwalk — Retourne tous les objets, y compris les identifiants respectifs inclus dans l'objet

Description

snmprealwalk(
string $hostname,
string $community,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): array|false

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

hostname

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, PHP 8)

snmpset — Définit la valeur d'un objet SNMP

Description

snmpset(
string $hostname,
string $community,
array|string $object_id,
array|string $type,
array|string $value,
int $timeout = -1,
int $retries = -1
): bool

snmpset() sert à définir la valeur de l'objet SNMP spécifié par object_id.

Liste de paramètres

hostname

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 hexadé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, PHP 8)

snmpwalk — Reçoit tous les objets SNMP d'un agent

Description

snmpwalk(
string $hostname,
string $community,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): array|false

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, PHP 8)

snmpwalkoid — Demande d'informations d'arbre sur une entité du réseau

Description

snmpwalkoid(
string $hostname,
string $community,
array|string $object_id,
int $timeout = -1,
int $retries = -1
): array|false

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, PHP 8)

Introduction

Représente une session SNMP.

Synopsis de la classe

class SNMP {
/* Constantes */
public const int VERSION_1;
public const int VERSION_2c;
public const int VERSION_2C;
public const int VERSION_3;
public const int ERRNO_NOERROR;
public const int ERRNO_ANY;
public const int ERRNO_GENERIC;
public const int ERRNO_TIMEOUT;
public const int ERRNO_ERROR_IN_REPLY;
public const int ERRNO_OID_NOT_INCREASING;
public const int ERRNO_OID_PARSING_ERROR;
public const int ERRNO_MULTIPLE_SET_QUERIES;
/* Propriétés */
public readonly array $info;
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;
/* Méthodes */
public __construct(
int $version,
string $hostname,
string $community,
int $timeout = -1,
int $retries = -1
)
public close(): bool
public get(array|string $objectId, bool $preserveKeys = false): mixed
public getErrno(): int
public getError(): string
public getnext(array|string $objectId): mixed
public set(array|string $objectId, array|string $type, array|string $value): bool
public setSecurity(
string $securityLevel,
string $authProtocol = "",
string $authPassphrase = "",
string $privacyProtocol = "",
string $privacyPassphrase = "",
string $contextName = "",
string $contextEngineId = ""
): bool
public walk(
array|string $objectId,
bool $suffixAsKey = false,
int $maxRepetitions = -1,
int $nonRepeaters = -1
): array|false
}

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 l'information de 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 NET-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éfinit la 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, PHP 8)

SNMP::close — Ferme une session SNMP

Description

public SNMP::close(): bool

Libère les objets de la session SNMP précédemment alloué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 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, PHP 8)

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 = -1,
int $retries = -1
)

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.

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";
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

SNMP::get — Récupère un objet SNMP

Description

public SNMP::get(array|string $objectId, bool $preserveKeys = false): mixed

Récupère un objet SNMP spécifié par l'identifiant objectId en utilisant une requête GET.

Liste de paramètres

Si objectId 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 objectId 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.

objectId

Le ou les objets SNMP (OID)

preserve_keys

Lorsque objectId 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 objectId, 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 objectId, 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);
?>

Résultat de l'exemple ci-dessus est 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();

Résultat de l'exemple ci-dessus est 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, PHP 8)

SNMP::getErrno — Récupère le dernier code erreur

Description

public SNMP::getErrno(): int

Retourne le code erreur de la dernière requête SNMP.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

SNMP::getError — Récupère le dernier message d'erreur

Description

public SNMP::getError(): string

Récupère le dernier message d'erreur de la dernière requête SNMP.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

SNMP::getnext — Récupère un objet SNMP qui suit l'identifiant d'objet fourni

Description

public SNMP::getnext(array|string $objectId): mixed

Récupère un objet SNMP qui suit l'objet spécifié par le paramètre objectId.

Liste de paramètres

Si objectId 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 objectId 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.

objectId

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 objectId 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);
?>

Résultat de l'exemple ci-dessus est 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();
?>

Résultat de l'exemple ci-dessus est 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éfinit la valeur d'un objet SNMP

  • « SNMP::getnext
  • SNMP::setSecurity »
  • PHP Manual
  • SNMP
  • Définit la valeur d'un objet SNMP

SNMP::set

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SNMP::set — Définit la valeur d'un objet SNMP

Description

public SNMP::set(array|string $objectId, array|string $type, array|string $value): bool

Demande à l'agent distant SNMP de définir la valeur d'un ou plusieurs objets SNMP spécifiés par son identifiant objectId.

Liste de paramètres

Si objectId est une chaîne de caractères, alors les paramètres type et value doivent aussi être une chaîne de caractères. Si objectId 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 objectId-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.

objectId

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 hexadé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, PHP 8)

SNMP::setSecurity — Configure les paramètres de sécurité des sessions SNMPv3

Description

public SNMP::setSecurity(
string $securityLevel,
string $authProtocol = "",
string $authPassphrase = "",
string $privacyProtocol = "",
string $privacyPassphrase = "",
string $contextName = "",
string $contextEngineId = ""
): bool

Configure les paramètres de sécurité des sessions du protocole SNMPv3.

Liste de paramètres

securityLevel

le niveau de sécurité (noAuthNoPriv|authNoPriv|authPriv)

authProtocol

le protocole d'authentification (MD5 ou SHA)

authPassphrase

le passphrase pour l'authentification

privacyProtocol

le protocole privé (DES ou AES)

privacyPassphrase

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, PHP 8)

SNMP::walk — Récupère le sous-objet d'un objet SNMP

Description

public SNMP::walk(
array|string $objectId,
bool $suffixAsKey = false,
int $maxRepetitions = -1,
int $nonRepeaters = -1
): array|false

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

objectId

Racine du sous-objet à lire

suffixAsKey

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.

nonRepeaters

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.

maxRepetitions

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();
?>

Résultat de l'exemple ci-dessus est 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 suffixAsKey

Le paramètre suffixAsKey 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);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

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

class SNMPException extends RuntimeException {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private 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_addrinfo_bind — Create and bind to a socket from a given addrinfo
    • socket_addrinfo_connect — Create and connect to a socket from a given addrinfo
    • socket_addrinfo_explain — Get information about addrinfo
    • socket_addrinfo_lookup — Get array with contents of getaddrinfo about the given hostname
    • socket_atmark — Determines whether socket is at out-of-band mark
    • 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 une instance de 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_export_stream — Export a socket into a stream that encapsulates a 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
    • socket_wsaprotocol_info_export — Exports the WSAPROTOCOL_INFO Structure
    • socket_wsaprotocol_info_import — Imports a Socket from another Process
    • socket_wsaprotocol_info_release — Releases an exported WSAPROTOCOL_INFO Structure
  • Socket — La classe Socket
  • AddressInfo — La classe AddressInfo


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.


Types de ressources

Antérieur à PHP 8.0.0,
socket_accept(), socket_import_stream(),
socket_addrinfo_connect(), socket_addrinfo_bind(),
socket_create_listen(), socket_wsaprotocol_info_import() et
socket_create() retournaient des ressources Socket.

Antérieur à PHP 8.0.0, socket_addrinfo_lookup() retournait un tableau de ressources AddressInfo.


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 (int)
AF_INET (int)
AF_INET6 (int)
Uniquement disponible si PHP est compilé avec le support IPv6.
AF_DIVERT (int)
Disponible à partir de PHP 8.3.0 (uniquement sur FreeBSD)
SOCK_STREAM (int)
SOCK_DGRAM (int)
SOCK_RAW (int)
SOCK_SEQPACKET (int)
SOCK_RDM (int)
MSG_OOB (int)
MSG_WAITALL (int)
MSG_PEEK (int)
MSG_DONTROUTE (int)
MSG_EOR (int)
Indisponible sur les plate-formes Windows.
MSG_EOF (int)
Indisponible sur les plate-formes Windows.
MSG_ZEROCOPY (int)
Disponible à partir de PHP 8.2.0
SO_DEBUG (int)
SO_REUSEADDR (int)
SO_REUSEPORT (int)
Cette constante est uniquement disponible sur les plateformes qui supportent l'option de socket SO_REUSEPORT : ceci inclut Linux, macOS et *BSD, mais pas Windows.
SO_KEEPALIVE (int)
SO_DONTROUTE (int)
SO_LINGER (int)
SO_BROADCAST (int)
SO_OOBINLINE (int)
SO_SNDBUF (int)
SO_RCVBUF (int)
SO_SNDLOWAT (int)
SO_RCVLOWAT (int)
SO_SNDTIMEO (int)
SO_RCVTIMEO (int)
SO_TYPE (int)
SO_ERROR (int)
SO_ZEROCOPY (int)
Disponible à partir de PHP 8.2.0
TCP_NODELAY (int)
Utilisé pour désactiver l'algorithme Nagle TCP.
TCP_KEEPCNT (int)
Disponible à partir de PHP 8.2.0
TCP_KEEPIDLE (int)
Disponible à partir de PHP 8.2.0
TCP_KEEPINTVL (int)
Disponible à partir de PHP 8.2.0
TCP_KEEPALIVE (int)
Disponible à partir de PHP 8.2.0
TCP_NOTSENT_LOWAT (int)
Disponible à partir de PHP 8.2.0
SO_MARK (int)
Disponible à partir de PHP 8.1.0
SO_USER_COOKIE (int)
Disponible à partir de PHP 8.1.0
SO_RTABLE (int)
Disponible à partir de PHP 8.2.0
SO_ACCEPTFILTER (int)
Disponible à partir de PHP 8.1.0
SO_DONTTRUNC (int)
Disponible à partir de PHP 8.1.0
SO_WANTMORE (int)
Disponible à partir de PHP 8.1.0
SO_INCOMING_CPU (int)
Disponible à partir de PHP 8.2.0
SO_MEMINFO (int)
Disponible à partir de PHP 8.2.0
SO_BPF_EXTENSIONS (int)
Disponible à partir de PHP 8.2.0
SO_SETFIB (int)
Disponible à partir de PHP 8.2.0
SO_ATTACH_REUSEPORT_CBPF (int)
Disponible à partir de PHP 8.3.0 (uniquement sur Linux)
SO_DETACH_BPF (int)
Disponible à partir de PHP 8.3.0 (uniquement sur Linux)
SO_DETACH_FILTER (int)
Disponible à partir de PHP 8.3.0 (uniquement sur Linux)
SO_RERROR (int)
Disponible à partir de PHP 8.3.0 (uniquement sur NetBSD)
SO_ZEROIZE (int)
Disponible à partir de PHP 8.3.0 (uniquement sur OpenBSD)
SO_SPLICE (int)
Disponible à partir de PHP 8.3.0 (uniquement sur OpenBSD)
SO_REUSEPORT_LB (int)
Disponible à partir de PHP 8.3.0 (uniquement sur FreeBSD)
SOL_FILTER (int)
Disponible à partir de PHP 8.2.0
SOL_UDPLITE (int)
Disponible à partir de PHP 8.3.0
UDPLITE_RECV_CSCOV (int)
Disponible à partir de PHP 8.3.0
UDPLITE_SEND_CSCOV (int)
Disponible à partir de PHP 8.3.0
TCP_DEFER_ACCEPT (int)
Disponible à partir de PHP 8.1.0
TCP_CONGESTION (int)
Disponible à partir de PHP 8.2.0
TCP_QUICKACK (int)
Disponible à partir de PHP 8.3.0 (uniquement sur Linux)
TCP_REPAIR (int)
Disponible à partir de PHP 8.3.0 (uniquement sur Linux)
IP_DONTFRAG (int)
Disponible à partir de PHP 8.3.0 (uniquement sur FreeBSD)
IP_MTU_DISCOVER (int)
Disponible à partir de PHP 8.3.0 (uniquement sur Linux)
IP_PMTUDISC_DO (int)
Disponible à partir de PHP 8.3.0 (uniquement sur Linux)
IP_PMTUDISC_DONT (int)
Disponible à partir de PHP 8.3.0 (uniquement sur Linux)
IP_PMTUDISC_WANT (int)
Disponible à partir de PHP 8.3.0 (uniquement sur Linux)
IP_PMTUDISC_PROBE (int)
Disponible à partir de PHP 8.3.0 (uniquement sur Linux)
IP_PMTUDISC_INTERFACE (int)
Disponible à partir de PHP 8.3.0 (uniquement sur Linux)
IP_PMTUDISC_OMIT (int)
Disponible à partir de PHP 8.3.0 (uniquement sur Linux)
IP_BIND_ADDRESS_NO_PORT (int)
Disponible à partir de PHP 8.3.0 (uniquement sur Linux)
SOL_SOCKET (int)
PHP_NORMAL_READ (int)
PHP_BINARY_READ (int)
SOL_TCP (int)
SOL_UDP (int)

Les constantes suivantes sont définit sous Windows et les plateformes UNIX-like. Chaque constante est seulement définit si leur égal est disponible sur la plateforme.

SOCKET_EINTR (int)
Appel système interrompu.
SOCKET_EBADF (int)
Mauvais numéro de descripteur de fichier
SOCKET_EACCES (int)
Permission refusée
SOCKET_EFAULT (int)
Mauvaise adresse.
SOCKET_EINVAL (int)
Argument invalide.
SOCKET_EMFILE (int)
Trop de fichiers ouverts.
SOCKET_ENAMETOOLONG (int)
Nom de fichier trop long
SOCKET_ENOTEMPTY (int)
Dossier non vide.
SOCKET_ELOOP (int)
Trop de liens symboliques rencontrés.
SOCKET_EWOULDBLOCK (int)
Opération bloquante.
SOCKET_EREMOTE (int)
L'objet est distant.
SOCKET_EUSERS (int)
Trop d'utilisateurs.
SOCKET_ENOTSOCK (int)
Opération de socket sur un non-socket.
SOCKET_EDESTADDRREQ (int)
Adresse de destination requise.
SOCKET_EMSGSIZE (int)
Message trop long.
SOCKET_EPROTOTYPE (int)
Type de protocole erroné pour un socket.
SOCKET_EPROTONOSUPPORT (int)
Protocole non supporté.
SOCKET_ESOCKTNOSUPPORT (int)
Type de socket non supporté.
SOCKET_EOPNOTSUPP (int)
Opération non supportée sur la cible du transport.
SOCKET_EPFNOSUPPORT (int)
Famille de protocoles non supportée.
SOCKET_EAFNOSUPPORT (int)
Famille d'adresses non supportée par le protocole.
SOCKET_EADDRNOTAVAIL (int)
Impossible d'assigner l'adresse demandée.
SOCKET_ENETDOWN (int)
Le réseau n'est pas disponible.
SOCKET_ENETUNREACH (int)
Le réseau ne peut être atteint.
SOCKET_ENETRESET (int)
Le réseau à annuler la connexion en raison d'une réinitialisation.
SOCKET_ECONNABORTED (int)
Le logiciel a provoqué un échec de la connexion.
SOCKET_ECONNRESET (int)
La connexion a été réinitialisée par les paires.
SOCKET_ENOBUFS (int)
Plus de place de disponible dans le buffer.
SOCKET_EISCONN (int)
La cible du transport est déjà connectée.
SOCKET_ENOTCONN (int)
La cible du transport n'est pas connectée.
SOCKET_ESHUTDOWN (int)
Impossible d'envoyer, car la cible du transport est arrêtée.
SOCKET_ETIMEDOUT (int)
La connexion a expirée.
SOCKET_ECONNREFUSED (int)
Connexion refusée.
SOCKET_EHOSTDOWN (int)
L'hôte est arrêté.
SOCKET_EHOSTUNREACH (int)
Aucune route vers l'hôte.
SOCKET_EALREADY (int)
Opération déjà en cours.
SOCKET_EINPROGRESS (int)
Opération maintenant en cours.

Les constantes suivantes ne sont disponibles que sous Windows.

SOCKET_ENOPROTOOPT (int)
SOCKET_EADDRINUSE (int)
SOCKET_ETOOMYREFS (int)
SOCKET_EPROCLIM (int)
SOCKET_EDUOT (int)
SOCKET_ESTALE (int)
SOCKET_EDISCON (int)
SOCKET_SYSNOTREADY (int)
SOCKET_VERNOTSUPPORTED (int)
SOCKET_NOTINITIALISED (int)
SOCKET_HOST_NOT_FOUND (int)
SOCKET_TRY_AGAIN (int)
SOCKET_NO_RECOVERY (int)
SOCKET_NO_DATA (int)
SOCKET_NO_ADDRESS (int)

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 (int)
Opération non permise.
SOCKET_ENOENT (int)
Aucun fichier ou dossier trouvé.
SOCKET_EIO (int)
Erreur I/O.
SOCKET_ENXIO (int)
Aucun périphérique ou adresse trouvé.
SOCKET_E2BIG (int)
Liste d'arguments trop longue.
SOCKET_EAGAIN (int)
Réessayer.
SOCKET_ENOMEM (int)
Dépassement de mémoire.
SOCKET_ENOTBLK (int)
Périphérique de bloc requis.
SOCKET_EBUSY (int)
Périphérique ou ressource occupé.
SOCKET_EEXIST (int)
Le fichier existe.
SOCKET_EXDEV (int)
Lien multipériphérique.
SOCKET_ENODEV (int)
Aucun périphérique trouvé.
SOCKET_ENOTDIR (int)
Ce n'est pas un dossier.
SOCKET_EISDIR (int)
C'est un dossier.
SOCKET_ENFILE (int)
Table de fichier dépassé.
SOCKET_ENOTTY (int)
Ce n'est pas une machine à écrire.
SOCKET_ENOSPC (int)
Plus d'espace disponible sur le périphérique.
SOCKET_ESPIPE (int)
Position illégale.
SOCKET_EROFS (int)
Système de fichiers en lecture seule.
SOCKET_EMLINK (int)
Trop de lien.
SOCKET_EPIPE (int)
Pipe rompu.
SOCKET_ENOLCK (int)
Aucun verrou d'enregistrement de disponible.
SOCKET_ENOSYS (int)
Fonction non implémentée.
SOCKET_ENOMSG (int)
Aucun message du type désiré.
SOCKET_EIDRM (int)
Identifiant supprimé.
SOCKET_ECHRNG (int)
Numéro de canal en dehors de l'intervalle.
SOCKET_EL2NSYNC (int)
Level 2 non synchronisé.
SOCKET_EL3HLT (int)
Level 3 arrêté.
SOCKET_EL3RST (int)
Level 3 réinitialisé.
SOCKET_ELNRNG (int)
Numéro de lien en dehors de l'intervalle.
SOCKET_EUNATCH (int)
Protocole du pilote non attaché.
SOCKET_ENOCSI (int)
Aucune structure CSI disponible.
SOCKET_EL2HLT (int)
Level 2 arrêté.
SOCKET_EBADE (int)
Echange invalide.
SOCKET_EBADR (int)
Descripteur de requête invalide.
SOCKET_EXFULL (int)
Echange complet.
SOCKET_ENOANO (int)
Aucune anode.
SOCKET_EBADRQC (int)
Code de requête invalide.
SOCKET_EBADSLT (int)
Slot invalide.
SOCKET_ENOSTR (int)
Le périphérique n'est pas un flux.
SOCKET_ENODATA (int)
Aucune donnée de disponible.
SOCKET_ETIME (int)
Timer expiré.
SOCKET_ENOSR (int)
Ressources de flux dépassées.
SOCKET_ENONET (int)
La machine n'est pas sur le réseau.
SOCKET_ENOLINK (int)
Le lien a été coupé.
SOCKET_EADV (int)
Erreur d'avertissement.
SOCKET_ESRMNT (int)
Erreur Srmount.
SOCKET_ECOMM (int)
Erreur de communication lors de l'envoi.
SOCKET_EPROTO (int)
Erreur du protocole.
SOCKET_EMULTIHOP (int)
Multihop essayé.
SOCKET_EBADMSG (int)
Ce n'est pas un message de données.
SOCKET_ENOTUNIQ (int)
Le nom n'est pas unique sur le réseau.
SOCKET_EBADFD (int)
Descripteur de fichier dans un mauvais état.
SOCKET_EREMCHG (int)
L'adresse distante a changé.
SOCKET_ERESTART (int)
Appel système interrompu devrait être redémarré.
SOCKET_ESTRPIPE (int)
Erreur de pipe de flux.
SOCKET_EPROTOOPT (int)
Le protocole n'est pas disponible.
SOCKET_ADDRINUSE (int)
Adresse déjà utilisée.
SOCKET_ETOOMANYREFS (int)
Trop de références : impossible de les raccorder.
SOCKET_EISNAM (int)
Est un fichier de type nommé.
SOCKET_EREMOTEIO (int)
Erreur I/O distante.
SOCKET_EDQUOT (int)
Quota dépassé.
SOCKET_ENOMEDIUM (int)
Aucun intermédiaire trouvé.
SOCKET_EMEDIUMTYPE (int)
Type d'intermédiaire erroné.
SCM_RIGHTS (int)
Envoie ou reçoit un jeu de descripteurs de fichiers ouverts depuis un autre processus.
SCM_CREDENTIALS (int)
SCM_CREDS (int)
Disponible à partir de PHP 8.2.0
SCM_CREDS2 (int)
Disponible à partir de PHP 8.2.0
LOCAL_CREDS (int)
Disponible à partir de PHP 8.2.0
LOCAL_CREDS_PERSISTENT (int)
Disponible à partir de PHP 8.2.0
SKF_AD_OFF (int)
Disponible à partir de PHP 8.2.0
SKF_AD_PROTOCOL (int)
Disponible à partir de PHP 8.2.0
SKF_AD_PKTTYPE (int)
Disponible à partir de PHP 8.2.0
SKF_AD_IFINDEX (int)
Disponible à partir de PHP 8.2.0
SKF_AD_NLATTR (int)
Disponible à partir de PHP 8.2.0
SKF_AD_NLATTR_NEST (int)
Disponible à partir de PHP 8.2.0
SKF_AD_MARK (int)
Disponible à partir de PHP 8.2.0
SKF_AD_QUEUE (int)
Disponible à partir de PHP 8.2.0
SKF_AD_HATYPE (int)
Disponible à partir de PHP 8.2.0
SKF_AD_RXHASH (int)
Disponible à partir de PHP 8.2.0
SKF_AD_CPU (int)
Disponible à partir de PHP 8.2.0
SKF_AD_ALU_XOR_X (int)
Disponible à partir de PHP 8.2.0
SKF_AD_VLAN_TAG (int)
Disponible à partir de PHP 8.2.0
SKF_AD_VLAN_TAG_PRESENT (int)
Disponible à partir de PHP 8.2.0
SKF_AD_PAY_OFFSET (int)
Disponible à partir de PHP 8.2.0
SKF_AD_RANDOM (int)
Disponible à partir de PHP 8.2.0
SKF_AD_VLAN_TPID (int)
Disponible à partir de PHP 8.2.0
SKF_AD_MAX (int)
Disponible à partir de PHP 8.2.0


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_addrinfo_bind — Create and bind to a socket from a given addrinfo
  • socket_addrinfo_connect — Create and connect to a socket from a given addrinfo
  • socket_addrinfo_explain — Get information about addrinfo
  • socket_addrinfo_lookup — Get array with contents of getaddrinfo about the given hostname
  • socket_atmark — Determines whether socket is at out-of-band mark
  • 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 une instance de 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_export_stream — Export a socket into a stream that encapsulates a 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
  • socket_wsaprotocol_info_export — Exports the WSAPROTOCOL_INFO Structure
  • socket_wsaprotocol_info_import — Imports a Socket from another Process
  • socket_wsaprotocol_info_release — Releases an exported WSAPROTOCOL_INFO Structure


Accepte une connexion sur un socket

  • « Fonctions sur les sockets
  • socket_addrinfo_bind »
  • PHP Manual
  • Fonctions sur les sockets
  • Accepte une connexion sur un socket

socket_accept

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_accept — Accepte une connexion sur un socket

Description

socket_accept(Socket $socket): Socket|false

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 instance 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é.

L'instance 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 instance de Socket créée par socket_create().

Valeurs de retour

Retourne une nouvelle instance 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.

Historique

Version | Description
8.0.0 | En cas de succès, cette fonction retourne désormais une instance de Socket ; auparavant, une resource était retournée.

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


Create and bind to a socket from a given addrinfo

  • « socket_accept
  • socket_addrinfo_connect »
  • PHP Manual
  • Fonctions sur les sockets
  • Create and bind to a socket from a given addrinfo

socket_addrinfo_bind

(PHP 7 >= 7.2.0, PHP 8)

socket_addrinfo_bind — Create and bind to a socket from a given addrinfo

Description

socket_addrinfo_bind(AddressInfo $address): Socket|false

Create a Socket instance, and bind it to the provided AddressInfo. The return value of this function may be used with socket_listen().

Liste de paramètres

address

AddressInfo instance created from socket_addrinfo_lookup().

Valeurs de retour

Returns a Socket instance on success or false on failure.

Historique

Version | Description
8.0.0 | On success, this function returns a Socket instance now; previously, a resource was returned.
8.0.0 | address est désormais une instance de AddressInfo ; auparavant, c'était une resource.

Voir aussi

  • socket_addrinfo_connect() - Create and connect to a socket from a given addrinfo
  • socket_addrinfo_explain() - Get information about addrinfo
  • socket_addrinfo_lookup() - Get array with contents of getaddrinfo about the given hostname
  • socket_listen() - Attend une connexion sur un socket


Create and connect to a socket from a given addrinfo

  • « socket_addrinfo_bind
  • socket_addrinfo_explain »
  • PHP Manual
  • Fonctions sur les sockets
  • Create and connect to a socket from a given addrinfo

socket_addrinfo_connect

(PHP 7 >= 7.2.0, PHP 8)

socket_addrinfo_connect — Create and connect to a socket from a given addrinfo

Description

socket_addrinfo_connect(AddressInfo $address): Socket|false

Create a Socket instance, and connect it to the provided AddressInfo instance. The return value of this function may be used with the rest of the socket functions.

Liste de paramètres

address

AddressInfo instance created from socket_addrinfo_lookup()

Valeurs de retour

Returns a Socket instance on success or false on failure.

Historique

Version | Description
8.0.0 | On success, this function returns a Socket instance now; previously, a resource was returned.
8.0.0 | address est désormais une instance de AddressInfo ; auparavant, c'était une resource.

Voir aussi

  • socket_addrinfo_bind() - Create and bind to a socket from a given addrinfo
  • socket_addrinfo_explain() - Get information about addrinfo
  • socket_addrinfo_lookup() - Get array with contents of getaddrinfo about the given hostname


Get information about addrinfo

  • « socket_addrinfo_connect
  • socket_addrinfo_lookup »
  • PHP Manual
  • Fonctions sur les sockets
  • Get information about addrinfo

socket_addrinfo_explain

(PHP 7 >= 7.2.0, PHP 8)

socket_addrinfo_explain — Get information about addrinfo

Description

socket_addrinfo_explain(AddressInfo $address): array

socket_addrinfo_explain() exposed the underlying addrinfo structure.

Liste de paramètres

address

AddressInfo instance created from socket_addrinfo_lookup()

Valeurs de retour

Returns an array containing the fields in the addrinfo structure.

Historique

Version | Description
8.0.0 | address est désormais une instance de AddressInfo ; auparavant, c'était une resource.

Voir aussi

  • socket_addrinfo_bind() - Create and bind to a socket from a given addrinfo
  • socket_addrinfo_connect() - Create and connect to a socket from a given addrinfo
  • socket_addrinfo_lookup() - Get array with contents of getaddrinfo about the given hostname


Get array with contents of getaddrinfo about the given hostname

  • « socket_addrinfo_explain
  • socket_atmark »
  • PHP Manual
  • Fonctions sur les sockets
  • Get array with contents of getaddrinfo about the given hostname

socket_addrinfo_lookup

(PHP 7 >= 7.2.0, PHP 8)

socket_addrinfo_lookup — Get array with contents of getaddrinfo about the given hostname

Description

socket_addrinfo_lookup(string $host, ?string $service = null, array $hints = []): array|false

Lookup different ways we can connect to host. The returned array contains a set of AddressInfo instances that we can bind to using socket_addrinfo_bind().

Liste de paramètres

host

Hostname to search.

service

The service to connect to. If service is a numeric string, it designates the port. Otherwise it designates a network service name, which is mapped to a port by the operating system.

hints

Hints provide criteria for selecting addresses returned. You may specify the hints as defined by getaddrinfo.

Valeurs de retour

Returns an array of AddressInfo instances that can be used with the other socket_addrinfo functions. On failure, false is returned.

Historique

Version | Description
8.0.0 | On success, this function returns a array of AddressInfo instances now; previously, an array of resources was returned.
8.0.0 | service is nullable now.

Voir aussi

  • socket_addrinfo_bind() - Create and bind to a socket from a given addrinfo
  • socket_addrinfo_connect() - Create and connect to a socket from a given addrinfo
  • socket_addrinfo_explain() - Get information about addrinfo


Determines whether socket is at out-of-band mark

  • « socket_addrinfo_lookup
  • socket_bind »
  • PHP Manual
  • Fonctions sur les sockets
  • Determines whether socket is at out-of-band mark

socket_atmark

(PHP 8 >= 8.3.0, PHP 8)

socket_atmark — Determines whether socket is at out-of-band mark

Description

socket_atmark(Socket $socket): bool

Determines whether socket is at out-of-band mark.

Liste de paramètres

socket

A Socket instance created with socket_create().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 Using socket_atmark() to set the source address

<?php
// Create a new socket
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
var_dump(socket_atmark($sock));
// Close
socket_close($sock);
?>

Voir aussi

  • socket_connect() - Crée une connexion sur un socket
  • socket_create() - Crée un socket


Lie un nom à un socket

  • « socket_atmark
  • 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, PHP 8)

socket_bind — Lie un nom à un socket

Description

socket_bind(Socket $socket, string $address, int $port = 0): bool

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 instance de Socket créée par 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.

Historique

Version | Description
8.0.0 | socket est désormais une instance de Socket ; auparavant, c'était une resource.

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, PHP 8)

socket_clear_error — Efface toutes les erreurs précédemment générées par un socket

Description

socket_clear_error(?Socket $socket = null): void

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 instance de Socket créée par socket_create().

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version | Description
8.0.0 | socket est désormais une instance de Socket ; auparavant, c'était une resource.
8.0.0 | socket est désormais nullable.

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 une instance de Socket

  • « socket_clear_error
  • socket_cmsg_space »
  • PHP Manual
  • Fonctions sur les sockets
  • Ferme une instance de Socket

socket_close

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_close — Ferme une instance de Socket

Description

socket_close(Socket $socket): void

socket_close() ferme l'instance Socket fournis par socket.

Liste de paramètres

socket

Une instance de Socket créée par socket_create() ou socket_accept().

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version | Description
8.0.0 | socket est désormais une instance de Socket ; auparavant, c'était une resource.

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, PHP 8)

socket_cmsg_space — Calcule la taille du buffer

Description

socket_cmsg_space(int $level, int $type, int $num = 0): ?int

Calcule la taille du buffer qui doit être allouée pour recevoir les données auxiliaires.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

socket_connect — Crée une connexion sur un socket

Description

socket_connect(Socket $socket, string $address, ?int $port = null): bool

Crée une nouvelle connexion en utilisant l'instance Socket socket, qui doit être une instance de Socket créée par socket_create().

Liste de paramètres

socket

Une instance de Socket créée avec socket_create().

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.

Historique

Version | Description
8.0.0 | socket est désormais une instance de Socket ; auparavant, c'était une resource.
8.0.0 | port est désormais nullable.

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, PHP 8)

socket_create_listen — Ouvre un socket sur un port pour accepter les connexions

Description

socket_create_listen(int $port, int $backlog = 128): Socket|false

socket_create_listen() crée une nouvelle instance 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 instance 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.

Historique

Version | Description
8.0.0 | En cas de succès, cette fonction retourne désormais une instance de Socket ; auparavant, une resource était retournée.

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, PHP 8)

socket_create_pair — Crée une paire de sockets identiques et les stocke dans un tableau

Description

socket_create_pair(
int $domain,
int $type,
int $protocol,
array &$pair
): bool

socket_create_pair() crée une paire de sockets identiques et les stocke dans pair. 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.

pair

Une référence vers un tableau dans lequel les deux instances de Socket 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
8.0.0 | pair est une référence à un tableau d'instance de Socket ; auparavant, c'était une référence à un tableau de resources.

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 "Réception de $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_export_stream »
  • PHP Manual
  • Fonctions sur les sockets
  • Crée un socket

socket_create

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_create — Crée un socket

Description

socket_create(int $domain, int $type, int $protocol): Socket|false

socket_create() crée un point de communication (une socket) et retourne une instance 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 instance 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).

Historique

Version | Description
8.0.0 | En cas de succès, cette fonction retourne désormais une instance de Socket ; auparavant, une resource était retournée.

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


Export a socket into a stream that encapsulates a socket

  • « socket_create
  • socket_get_option »
  • PHP Manual
  • Fonctions sur les sockets
  • Export a socket into a stream that encapsulates a socket

socket_export_stream

(PHP 7 >= 7.0.7, PHP 8)

socket_export_stream — Export a socket into a stream that encapsulates a socket

Description

socket_export_stream(Socket $socket): resource|false

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

socket

Valeurs de retour

Return resource ou false si une erreur survient.

Historique

Version | Description
8.0.0 | socket est désormais une instance de Socket ; auparavant, c'était une resource.


Lit les options du socket

  • « socket_export_stream
  • 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, PHP 8)

socket_get_option — Lit les options du socket

Description

socket_get_option(Socket $socket, int $level, int $option): array|int|false

socket_get_option() récupère la valeur de l'option spécifiée par le paramètre option pour le socket spécifié par le paramètre socket.

Liste de paramètres

socket

Une instance de Socket créée par socket_create() ou 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().

option
Options disponibles pour les sockets
Option | Description | Type
SO_DEBUG | Reporte si les informations de débogage sont enregistrées ou pas. | int
SO_BROADCAST | Reporte si la transmission des annonces globales est supportée ou pas. | int
SO_REUSEADDR | Indique si les adresses locales peuvent être réutilisées ou pas. | int
SO_REUSEPORT | Indique si les ports locaux peuvent être réutilisés. | 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 multicast. | Un tableau avec une clé "group", spécifiant une chaîne de caractères avec les adresses multicast 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 multicast. | 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 multicast spécifique, qui aura du être joint auparavant. | 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 multicast spécifique, qui aura dû être joins auparavant. | 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 multicast spécifique dont l'adresse source correspond à une valeur spécifique. | 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 multicast spécifique dont l'adresse source correspond à une valeur spécifique. | 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 multicast IPv4. | 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 multicast IPv6. | Identique à la constante IP_MULTICAST_IF.
IP_MULTICAST_LOOP | La politique de la boucle locale multicast pour les paquets IPv4 active ou désactive le bouclage des multidiffusions sortantes, qui doivent avoir été jointes auparavant. L'effet diffère cependant selon qu'il s'applique à Unix ou à Windows, le premier étant sur le chemin de réception tandis que le second sur le chemin d'envoi. | 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. | Un entier. Voir la constante IP_MULTICAST_LOOP.
IP_MULTICAST_TTL | La durée de vie des paquets sortants multicast 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). | 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. | Un entier compris entre -1 et 255.
SO_MARK | Définit un identifiant sur le socket pour le but de filtrer les packets sur Linux. | int
SO_ACCEPTFILTER | Ajoute un filtre d'acceptation sur le socket écouté (FreeBSD/NetBSD). Un module kernel de filtre d'acceptation doit d'abord être chargé sur FreeBSD (e.g. accf_http). | string name of the filter (length 15 max).
SO_USER_COOKIE | Définit un identifiant sur le socket pour le but de filtrer les packets sur FreeBSD. | int
SO_RTABLE | Définit un identifiant sur le socket pour le but de filtrer les packets sur OpenBSD. | int
SO_DONTTRUNC | Conserve les données non lues. | int
SO_WANTMORE | Fournit un indice quand plus de données sont prêtes. | int
TCP_DEFER_ACCEPT | Ne pas notifier un socket qui écoute tant que les données ne sont pas prêtes. | int
SO_INCOMING_CPU | Récupère/Définit l'affinité du cpu pour un socket. | int
SO_MEMINFO | Récupère toute les meminfo d'un socket. | int
SO_BPF_EXTENSIONS | Récupère les extensions BPF supportées par le kernel à attacher à un socket. | int
SO_SETFIB | Définit la table de route (FIB) d'un socket. (FreeBSD uniquement) | int
SOL_FILTER | Filtres attribués à un socket. (Solaris/Illumos uniquement) | int
TCP_KEEPCNT | Définit le nombre maximal de sondes keepalive TCP devrait envoyer avant de lâcher la connexion. | int
TCP_KEEPIDLE | Définit le temps que la connexion doit rester inactive. | int
TCP_KEEPINTVL | Définit le temps entre les sondes keepalive individuelles. | int
TCP_KEEPALIVE | Définit le temps que la connexion doit rester inactive. (macOS uniquement) | int
TCP_NOTSENT_LOWAT | Définit le nombre limite de données non envoyées dans la file d'attente d'écriture par le flux de socket. (Linux uniquement) | int

Valeurs de retour

Retourne la valeur de l'option fournie, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | socket est désormais une instance de Socket ; auparavant, c'était une resource.

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, PHP 8)

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, PHP 8)

socket_getpeername — Interroge l'autre extrémité de la communication

Description

socket_getpeername(Socket $socket, string &$address, int &$port = null): bool

Interroge l'autre extrémité de la communication.

Liste de paramètres

socket

Une instance de Socket créée par socket_create() ou 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é.

Historique

Version | Description
8.0.0 | socket est désormais une instance de Socket ; auparavant, c'était une resource.

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, PHP 8)

socket_getsockname — Interroge le socket local

Description

socket_getsockname(Socket $socket, string &$address, int &$port = null): bool

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 instance de Socket créée par socket_create() ou socket_accept().

address

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é.

Historique

Version | Description
8.0.0 | socket est désormais une instance de Socket ; auparavant, c'était une resource.

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, PHP 8)

socket_import_stream — Importe un flux

Description

socket_import_stream(resource $stream): Socket|false

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 en cas d'échec.

Historique

Version | Description
8.0.0 | En cas de succès, cette fonction retourne désormais une instance de Socket ; auparavant, une resource était retournée.

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, PHP 8)

socket_last_error — Lit la dernière erreur générée par un socket

Description

socket_last_error(?Socket $socket = null): int

Si une instance de Socket est passée à cette fonction, la dernière erreur qui aura été générée par ce socket sera retourné. Si socket est null, 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.

Si aucune erreur n'est survenue, ou si l'erreur a été supprimée avec la fonction socket_clear_error(), cette fonction retournera 0.

Liste de paramètres

socket

Une instance de Socket créée par socket_create().

Valeurs de retour

Retourne le code erreur associé au socket.

Historique

Version | Description
8.0.0 | socket est désormais une instance de Socket ; auparavant, c'était une resource.
8.0.0 | socket est désormais nullable.

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, PHP 8)

socket_listen — Attend une connexion sur un socket

Description

socket_listen(Socket $socket, int $backlog = 0): bool

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 instance de Socket créée par socket_create() ou socket_addrinfo_bind().

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.

Historique

Version | Description
8.0.0 | socket est désormais une instance de Socket ; auparavant, c'était une resource.

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
  • socket_addrinfo_bind() - Create and bind to a socket from a given addrinfo


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, PHP 8)

socket_read — Lit des données d'un socket

Description

socket_read(Socket $socket, int $length, int $mode = PHP_BINARY_READ): string|false

socket_read() lit des données depuis l'instance de Socket socket, créée par socket_create() ou socket_accept().

Liste de paramètres

socket

Une instance de Socket créée par socket_create() ou 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 mode, voir ci-dessous).

mode

Le paramètre optionnel mode 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.

Historique

Version | Description
8.0.0 | socket est désormais une instance de Socket ; auparavant, c'était une resource.

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, PHP 8)

socket_recv — Reçoit des données d'un socket connecté

Description

socket_recv(
Socket $socket,
?string &$data,
int $length,
int $flags
): int|false

La fonction socket_recv() reçoit length octets de données dans data 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.

data 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 data.

Liste de paramètres

socket

socket doit être une instance de Socket précédemment créée par socket_create().

data

Les données reçues seront transmises dans data. Si une erreur survient, si la connexion est fermée ou si aucune donnée n'est disponible, data vaudra alors null.

length

Jusqu'à length 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 length sont reçues. Cependant, si un signal est intercepté 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.

Historique

Version | Description
8.0.0 | socket est désormais une instance de Socket ; auparavant, c'était une resource.

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, PHP 8)

socket_recvfrom — Reçoit des données d'un socket, connecté ou pas

Description

socket_recvfrom(
Socket $socket,
string &$data,
int $length,
int $flags,
string &$address,
int &$port = null
): int|false

La fonction socket_recvfrom() reçoit length octets de données du buffer data depuis address 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 address et port doivent être passés par référence. Si le socket n'est pas connecté, address contiendra l'adresse internet de l'hôte distant ou le chemin du socket Unix. Si le socket est connecté, address 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.

Note: Cette fonction gère les chaînes binaires.

Liste de paramètres

socket

Le paramètre socket doit être une instance de Socket créé par socket_create().

data

Les données récupérées seront placées dans la variable spécifiée par ce paramètre.

length

Jusqu'à length 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 length 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.
address

Si le socket est du type AF_UNIX, address sera le chemin vers ce fichier. Sinon, pour les sockets non-connectés, address 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.

Historique

Version | Description
8.0.0 | socket est désormais une instance de Socket ; auparavant, c'était une resource.

Exemples

Exemple #1 Exemple avec socket_recvfrom()

<?php

$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.

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, PHP 8)

socket_recvmsg — Lit un message

Description

socket_recvmsg(Socket $socket, array &$message, int $flags = 0): int|false

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

socket

message

flags

Valeurs de retour

Historique

Version | Description
8.0.0 | socket est désormais une instance de Socket ; auparavant, c'était une resource.

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, PHP 8)

socket_select — Exécute l'appel système select() sur un tableau de sockets avec une durée d'expiration

Description

socket_select(
?array &$read,
?array &$write,
?array &$except,
?int $seconds,
int $microseconds = 0
): int|false

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 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, un 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.

seconds

Les paramètres seconds et microseconds 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. seconds peut être zéro, ce qui fera que socket_select() retournera immédiatement. C'est très pratique pour faire du polling (sondage). Si seconds est null (pas de timeout), socket_select() peut se bloquer indéfiniment.

microseconds

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, PHP 8)

socket_send — Envoie des données à un socket connecté

Description

socket_send(
Socket $socket,
string $data,
int $length,
int $flags
): int|false

La fonction socket_send() envoie length octets au socket socket depuis le buffer data.

Liste de paramètres

socket

Une instance de Socket créée par socket_create() ou socket_accept().

data

Un buffer contenant les données qui seront envoyées sur l'hôte distant.

length

Le nombre d'octets qui doivent être envoyés à l'hôte distant depuis le buffer data.

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.

Historique

Version | Description
8.0.0 | socket est désormais une instance de Socket ; auparavant, c'était une resource.

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, PHP 8)

socket_sendmsg — Envoi un message

Description

socket_sendmsg(Socket $socket, array $message, int $flags = 0): int|false

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

socket

message

flags

Valeurs de retour

Retourne le nombre d'octets envoyés, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | socket est désormais une instance de Socket ; auparavant, c'était une resource.

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, PHP 8)

socket_sendto — Envoie un message à un socket, qu'il soit connecté ou pas

Description

socket_sendto(
Socket $socket,
string $data,
int $length,
int $flags,
string $address,
?int $port = null
): int|false

socket_sendto() envoie length octets issus du buffer data via le socket socket, vers le port port, à l'adresse address.

Liste de paramètres

socket

Une instance de Socket créée par socket_create().

data

Les données à envoyer seront prises depuis le buffer data.

length

length octets depuis data 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.

address

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.

Historique

Version | Description
8.0.0 | socket est désormais une instance de Socket ; auparavant, c'était une resource.
8.0.0 | port est désormais nullable.

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, PHP 8)

socket_set_block — Met le socket en mode bloquant

Description

socket_set_block(Socket $socket): bool

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 instance de Socket créée par socket_create() ou socket_accept().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | socket est désormais une instance de Socket ; auparavant, c'était une resource.

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, PHP 8)

socket_set_nonblock — Sélectionne le mode non bloquant d'un pointeur de fichier

Description

socket_set_nonblock(Socket $socket): bool

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 instance de Socket créée par socket_create() ou socket_accept().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | socket est désormais une instance de Socket ; auparavant, c'était une resource.

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, PHP 8)

socket_set_option — Modifie les options de socket

Description

socket_set_option(
Socket $socket,
int $level,
int $option,
array|string|int $value
): bool

socket_set_option() configure l'option spécifiée par option, au niveau de protocole level à la valeur pointée par value pour le socket spécifié par socket.

Liste de paramètres

socket

Une instance de Socket créée par socket_create() ou 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().

option

Les options disponibles sont les mêmes que pour la fonction socket_get_option().

value

La valeur de l'option.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | socket est désormais une instance de Socket ; auparavant, c'était une resource.

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, PHP 8)

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, PHP 8)

socket_shutdown — Éteint un socket en lecture et/ou écriture

Description

socket_shutdown(Socket $socket, int $mode = 2): bool

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.

Note:

Le ou les buffers associés peuvent, ou peuvent ne pas être vidés.

Liste de paramètres

socket

Une instance de Socket créée par socket_create().

mode

La valeur du paramètre mode peut être une des valeurs suivantes :

Valeurs possibles pour mode
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.

Historique

Version | Description
8.0.0 | socket est désormais une instance de Socket ; auparavant, c'était une resource.


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, PHP 8)

socket_strerror — Retourne une chaîne décrivant un message d'erreur

Description

socket_strerror(int $error_code): string

socket_strerror() prend un code d'erreur comme paramètre error_code. 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

error_code

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 error_code.

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
  • socket_wsaprotocol_info_export »
  • PHP Manual
  • Fonctions sur les sockets
  • Écrit dans un socket

socket_write

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

socket_write — Écrit dans un socket

Description

socket_write(Socket $socket, string $data, ?int $length = null): int|false

socket_write() écrit dans le socket socket les données du buffer data.

Liste de paramètres

socket

data

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.

Historique

Version | Description
8.0.0 | socket est désormais une instance de Socket ; auparavant, c'était une resource.
8.0.0 | length est désormais nullable.

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


Exports the WSAPROTOCOL_INFO Structure

  • « socket_write
  • socket_wsaprotocol_info_import »
  • PHP Manual
  • Fonctions sur les sockets
  • Exports the WSAPROTOCOL_INFO Structure

socket_wsaprotocol_info_export

(PHP 7 >= 7.3.0, PHP 8)

socket_wsaprotocol_info_export — Exports the WSAPROTOCOL_INFO Structure

Description

socket_wsaprotocol_info_export(Socket $socket, int $process_id): string|false

Exports the WSAPROTOCOL_INFO structure into shared memory and returns an identifier to be used with socket_wsaprotocol_info_import(). The exported ID is only valid for the given process_id.

Note: This function is available only on Windows.

Liste de paramètres

socket

A Socket instance.

process_id

The ID of the process which will import the socket.

Valeurs de retour

Returns an identifier to be used for the import, ou false si une erreur survient

Historique

Version | Description
8.0.0 | socket est désormais une instance de Socket ; auparavant, c'était une resource.

Voir aussi

  • socket_wsaprotocol_info_import() - Imports a Socket from another Process
  • socket_wsaprotocol_info_release() - Releases an exported WSAPROTOCOL_INFO Structure


Imports a Socket from another Process

  • « socket_wsaprotocol_info_export
  • socket_wsaprotocol_info_release »
  • PHP Manual
  • Fonctions sur les sockets
  • Imports a Socket from another Process

socket_wsaprotocol_info_import

(PHP 7 >= 7.3.0, PHP 8)

socket_wsaprotocol_info_import — Imports a Socket from another Process

Description

socket_wsaprotocol_info_import(string $info_id): Socket|false

Imports a socket which has formerly been exported from another process.

Note: This function is available only on Windows.

Liste de paramètres

info_id

The ID which has been returned by a former call to socket_wsaprotocol_info_export().

Valeurs de retour

Returns a Socket instance on success, ou false si une erreur survient

Historique

Version | Description
8.0.0 | On success, this function returns a Socket instance now; previously, a resource was returned.

Voir aussi

  • socket_wsaprotocol_info_export() - Exports the WSAPROTOCOL_INFO Structure


Releases an exported WSAPROTOCOL_INFO Structure

  • « socket_wsaprotocol_info_import
  • Socket »
  • PHP Manual
  • Fonctions sur les sockets
  • Releases an exported WSAPROTOCOL_INFO Structure

socket_wsaprotocol_info_release

(PHP 7 >= 7.3.0, PHP 8)

socket_wsaprotocol_info_release — Releases an exported WSAPROTOCOL_INFO Structure

Description

socket_wsaprotocol_info_release(string $info_id): bool

Releases the shared memory corresponding to the given info_id.

Note: This function is available only on Windows.

Liste de paramètres

info_id

The ID which has been returned by a former call to socket_wsaprotocol_info_export().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Voir aussi

  • socket_wsaprotocol_info_export() - Exports the WSAPROTOCOL_INFO Structure


La classe Socket

(PHP 8)

Introduction

Une classe entièrement opaque qui remplace les ressources Socket à partir de PHP 8.0.0.

Synopsis de la classe

final class Socket {
}


La classe AddressInfo

(PHP 8)

Introduction

Une classe entièrement opaque qui remplace les ressources AddressInfo à partir de PHP 8.0.0.

Synopsis de la classe

final class AddressInfo {
}


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_disconnect — Ferme une connexion à un serveur SSH distant
    • 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_forward_accept — Accept a connection created by a listener
    • ssh2_forward_listen — Bind a port on the remote server and listen for connections
    • ssh2_methods_negotiated — Retourne une liste de méthodes négociées
    • ssh2_poll — Poll the channels/listeners/streams for events
    • 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_send_eof — Send EOF to stream
    • 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 chiffré 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 : » https://pecl.php.net/package/ssh2.

Les binaires Windows (les fichiers DLL) pour cette extension PECL sont disponibles sur le site web PECL.


Types de ressources

Cette extension définis les type de ressources suivantes :

  • SSH2 Session
  • SSH2 Listener
  • SSH2 SFTP
  • SSH2 Publickey Subsystem (à partir de ssh2 0.10)


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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
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 (int)
Largeur par défaut du terminal demandé par la fonction ssh2_shell().
SSH2_DEFAULT_TERM_HEIGHT (int)
Hauteur par défaut du terminal demandé par la fonction ssh2_shell().
SSH2_DEFAULT_TERM_UNIT (int)
Unité par défaut du terminal demandé par la fonction ssh2_shell().
SSH2_STREAM_STDIO (int)
Flag pour que la fonction ssh2_fetch_stream() demande un sous-canal STDIO.
SSH2_STREAM_STDERR (int)
Flag pour que la fonction ssh2_fetch_stream() demande un sous-canal STDERR.
SSH2_DEFAULT_TERMINAL (string)
Type par défaut du terminal (e.g. "vt102", "ansi", "xterm", "vanilla") demandé par la fonction ssh2_shell().
SSH2_POLLIN (int)
SSH2_POLLEXT (int)
SSH2_POLLOUT (int)
SSH2_POLLERR (int)
SSH2_POLLHUP (int)
SSH2_POLLNVAL (int)
SSH2_POLL_SESSION_CLOSED (int)
SSH2_POLL_CHANNEL_CLOSED (int)
SSH2_POLL_LISTENER_CLOSED (int)


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_disconnect — Ferme une connexion à un serveur SSH distant
  • 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_forward_accept — Accept a connection created by a listener
  • ssh2_forward_listen — Bind a port on the remote server and listen for connections
  • ssh2_methods_negotiated — Retourne une liste de méthodes négociées
  • ssh2_poll — Poll the channels/listeners/streams for events
  • 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_send_eof — Send EOF to stream
  • 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

ssh2_auth_agent(resource $session, string $username): bool

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

ssh2_auth_hostbased_file(
resource $session,
string $username,
string $hostname,
string $pubkeyfile,
string $privkeyfile,
string $passphrase = ?,
string $local_username = ?
): bool

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

ssh2_auth_none(resource $session, string $username): mixed

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

ssh2_auth_password(resource $session, string $username, string $password): bool

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

ssh2_auth_pubkey_file(
resource $session,
string $username,
string $pubkeyfile,
string $privkeyfile,
string $passphrase = ?
): bool

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_disconnect »
  • PHP Manual
  • Fonctions Shell2
  • Connexion à un serveur SSH

ssh2_connect

(PECL ssh2 >= 0.9.0)

ssh2_connect — Connexion à un serveur SSH

Description

ssh2_connect(
string $host,
int $port = 22,
array $methods = ?,
array $callbacks = ?
): resource|false

É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 d'au plus 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
  • ssh2_disconnect() - Ferme une connexion à un serveur SSH distant


Ferme une connexion à un serveur SSH distant

  • « ssh2_connect
  • ssh2_exec »
  • PHP Manual
  • Fonctions Shell2
  • Ferme une connexion à un serveur SSH distant

ssh2_disconnect

(PECL ssh2 >= 1.0)

ssh2_disconnect — Ferme une connexion à un serveur SSH distant

Description

ssh2_disconnect(resource $session): bool

Ferme une connexion à un serveur SSH distant.

Liste de paramètres

session

Un identifiant de lien de connexion SSH, obtenu depuis un appel à ssh2_connect().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Voir aussi

  • ssh2_connect() - Connexion à un serveur SSH


Exécute une commande sur un serveur distant

  • « ssh2_disconnect
  • 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

ssh2_exec(
resource $session,
string $command,
string $pty = ?,
array $env = ?,
int $width = 80,
int $height = 25,
int $width_height_type = SSH2_TERM_UNIT_CHARS
): resource|false

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

ssh2_fetch_stream(resource $channel, int $streamid): resource

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_forward_accept »
  • 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

ssh2_fingerprint(resource $session, int $flags = SSH2_FINGERPRINT_MD5 | SSH2_FINGERPRINT_HEX): string

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 ?");
}
?>


Accept a connection created by a listener

  • « ssh2_fingerprint
  • ssh2_forward_listen »
  • PHP Manual
  • Fonctions Shell2
  • Accept a connection created by a listener

ssh2_forward_accept

(PECL ssh2 >= 0.9.0)

ssh2_forward_accept — Accept a connection created by a listener

Description

ssh2_forward_accept(resource $listener): resource|false

Accepts a connection created by a listener.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

desc

An SSH2 Listener resource, obtained from a call to ssh2_forward_listen().

Valeurs de retour

Returns a stream resource, ou false si une erreur survient.


Bind a port on the remote server and listen for connections

  • « ssh2_forward_accept
  • ssh2_methods_negotiated »
  • PHP Manual
  • Fonctions Shell2
  • Bind a port on the remote server and listen for connections

ssh2_forward_listen

(PECL ssh2 >= 0.9.0)

ssh2_forward_listen — Bind a port on the remote server and listen for connections

Description

ssh2_forward_listen(
resource $session,
int $port,
string $host = ?,
int $max_connections = 16
): resource|false

Binds a port on the remote server and listen for connections.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

session

An SSH Session resource, obtained from a call to ssh2_connect().

port

The port of the remote server.

host

max_connections

Valeurs de retour

Returns an SSH2 Listener, ou false si une erreur survient.

Voir aussi

  • ssh2_forward_accept() - Accept a connection created by a listener


Retourne une liste de méthodes négociées

  • « ssh2_forward_listen
  • ssh2_poll »
  • 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

ssh2_methods_negotiated(resource $session): array

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


Poll the channels/listeners/streams for events

  • « ssh2_methods_negotiated
  • ssh2_publickey_add »
  • PHP Manual
  • Fonctions Shell2
  • Poll the channels/listeners/streams for events

ssh2_poll

(PECL ssh2 >= 0.9.0)

ssh2_poll — Poll the channels/listeners/streams for events

Description

ssh2_poll(array &$desc, int $timeout = 30): int

Polls the channels/listeners/streams for events, and returns the number of descriptors which returned non-zero revents.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

desc

An indexed array of subarrays with the keys 'resource' and 'events'. The value of the resource is a (channel) stream or an SSH2 Listener resource. The value of the event are SSH2_POLL* flags bitwise ORed together. Each subarray will be populated with an 'revents' element on return, whose values are SSH2_POLL* flags bitwise ORed together of the events that occurred.

timeout

The timeout in seconds.

Valeurs de retour

Returns the number of descriptors which returned non-zero revents.


Ajoute une clé publique autorisée

  • « ssh2_poll
  • 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

ssh2_publickey_add(
resource $pkey,
string $algoname,
string $blob,
bool $overwrite = false,
array $attributes = ?
): bool

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

ssh2_publickey_init(resource $session): resource|false

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

ssh2_publickey_list(resource $pkey): array

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

ssh2_publickey_remove(resource $pkey, string $algoname, string $blob): bool

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

ssh2_scp_recv(resource $session, string $remote_file, string $local_file): bool

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_send_eof »
  • 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

ssh2_scp_send(
resource $session,
string $local_file,
string $remote_file,
int $create_mode = 0644
): bool

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


Send EOF to stream

  • « ssh2_scp_send
  • ssh2_sftp_chmod »
  • PHP Manual
  • Fonctions Shell2
  • Send EOF to stream

ssh2_send_eof

(PECL ssh2 >= 1.3)

ssh2_send_eof — Send EOF to stream

Description

ssh2_send_eof(resource $channel): bool

Sends an EOF to the stream; this is typically used to close standard input, while keeping output and error alive. For example, one can send a remote process some data over standard input, close it to start processing, and still be able to read out the results without creating additional files.

Liste de paramètres

channel

An SSH stream; can be acquired through functions like ssh2_fetch_stream() or ssh2_connect().

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Voir aussi

  • ssh2_fetch_stream() - Parcours un flux étendu de données


Modifie le mode d'un fichier

  • « ssh2_send_eof
  • 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

ssh2_sftp_chmod(resource $sftp, string $filename, int $mode): bool

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 Changement du mode du fichier sur le 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

ssh2_sftp_lstat(resource $sftp, string $path): array

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:// et retourne les mêmes valeurs.

Liste de paramètres

sftp

Une ressource SSH2 SFTP ouverte par ssh2_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

ssh2_sftp_mkdir(
resource $sftp,
string $dirname,
int $mode = 0777,
bool $recursive = false
): bool

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. Le mode actuel est affecté par la umask courant.

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

ssh2_sftp_readlink(resource $sftp, string $link): string

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

ssh2_sftp_realpath(resource $sftp, string $filename): string

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

ssh2_sftp_rename(resource $sftp, string $from, string $to): bool

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

ssh2_sftp_rmdir(resource $sftp, string $dirname): bool

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

ssh2_sftp_stat(resource $sftp, string $path): array

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:// 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

ssh2_sftp_symlink(resource $sftp, string $target, string $link): bool

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

ssh2_sftp_unlink(resource $sftp, string $filename): bool

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() - Supprime 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

ssh2_sftp(resource $session): resource|false

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://, ou false si une erreur survient.

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://' . intval($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

ssh2_shell(
resource $session,
string $termtype = "vanilla",
?array $env = null,
int $width = 80,
int $height = 25,
int $width_height_type = SSH2_TERM_UNIT_CHARS
): resource|false

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().

termtype

termtype 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

Retourne un flux de ressource 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_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

ssh2_tunnel(resource $session, string $host, int $port): resource

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

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 : » https://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 | INI_ALL |
stomp.default_connection_timeout_sec | 2 | INI_ALL |
stomp.default_connection_timeout_usec | 0 | INI_ALL |
stomp.default_read_timeout_sec | 2 | INI_ALL |
stomp.default_read_timeout_usec | 0 | 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 int

Le nombre de secondes entières du délai d'expiration de connexion.

stomp.default_connection_timeout_usec int

Le nombre de microsecondes entières du délai d'expiration de connexion.

stomp.default_read_timeout_sec int

Le nombre de secondes entières du délai d'expiration de lecture.

stomp.default_read_timeout_usec int

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);

?>

Résultat de l'exemple ci-dessus est 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);

?>

Résultat de l'exemple ci-dessus est 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

stomp_connect_error(): string

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());
}
?>

Résultat de l'exemple ci-dessus est 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

stomp_version(): string

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());

?>

Résultat de l'exemple ci-dessus est 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

class Stomp {
/* Méthodes */
__construct(
string $broker = ini_get("stomp.default_broker_uri"),
string $username = ?,
string $password = ?,
array $headers = ?
)
public abort(string $transaction_id, array $headers = ?): bool
stomp_abort(resource $link, string $transaction_id, array $headers = ?): bool
public ack(mixed $msg, array $headers = ?): bool
stomp_ack(resource $link, mixed $msg, array $headers = ?): bool
public begin(string $transaction_id, array $headers = ?): bool
stomp_begin(resource $link, string $transaction_id, array $headers = ?): bool
public commit(string $transaction_id, array $headers = ?): bool
stomp_commit(resource $link, string $transaction_id, array $headers = ?): bool
stomp_connect(
string $broker = ini_get("stomp.default_broker_uri"),
string $username = ?,
string $password = ?,
array $headers = ?
): resource
stomp_close(resource $link): bool
public error(): string
stomp_error(resource $link): string
public getReadTimeout(): array
stomp_get_read_timeout(resource $link): array
public getSessionId(): string|false
stomp_get_session_id(resource $link): string|false
public hasFrame(): bool
stomp_has_frame(resource $link): bool
public readFrame(string $class_name = "stompFrame"): stompframe
stomp_read_frame(resource $link): array
public send(string $destination, mixed $msg, array $headers = ?): bool
stomp_send(
resource $link,
string $destination,
mixed $msg,
array $headers = ?
): bool
public setReadTimeout(int $seconds, int $microseconds = ?): void
stomp_set_read_timeout(resource $link, int $seconds, int $microseconds = ?): void
public subscribe(string $destination, array $headers = ?): bool
stomp_subscribe(resource $link, string $destination, array $headers = ?): bool
public unsubscribe(string $destination, array $headers = ?): bool
stomp_unsubscribe(resource $link, string $destination, array $headers = ?): bool
public __destruct()
}

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 Stomp::abort(string $transaction_id, array $headers = ?): bool

Style procédural :

stomp_abort(resource $link, string $transaction_id, array $headers = ?): bool

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 contenant les en-têtes additionnels (exemple : receipt).

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 */
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);

?>

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.


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 Stomp::ack(mixed $msg, array $headers = ?): bool

Style procédural :

stomp_ack(resource $link, mixed $msg, array $headers = ?): bool

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 contenant les en-têtes additionnels (exemple : receipt).

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

$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);

?>

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.


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 Stomp::begin(string $transaction_id, array $headers = ?): bool

Style procédural :

stomp_begin(resource $link, string $transaction_id, array $headers = ?): bool

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 contenant les en-têtes additionnels (exemple : receipt).

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Voir stomp_commit() ou stomp_abort().

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.


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 Stomp::commit(string $transaction_id, array $headers = ?): bool

Style procédural :

stomp_commit(resource $link, string $transaction_id, array $headers = ?): bool

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 contenant les en-têtes additionnels (exemple : receipt).

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 */
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);

?>

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.


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 :

stomp_connect(
string $broker = ini_get("stomp.default_broker_uri"),
string $username = ?,
string $password = ?,
array $headers = ?
): resource

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 contenant les en-têtes additionnels (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
PECL stomp 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 Stomp::__destruct()

Style procédural :

stomp_close(resource $link): bool

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 Stomp::error(): string

Style procédural :

stomp_error(resource $link): string

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);

?>

Résultat de l'exemple ci-dessus est 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);

?>

Résultat de l'exemple ci-dessus est 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 Stomp::getReadTimeout(): array

Style procédural :

stomp_get_read_timeout(resource $link): array

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);

?>

Résultat de l'exemple ci-dessus est 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);

?>

Résultat de l'exemple ci-dessus est 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 Stomp::getSessionId(): string|false

Style procédural :

stomp_get_session_id(resource $link): string|false

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);

?>

Résultat de l'exemple ci-dessus est 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);

?>

Résultat de l'exemple ci-dessus est 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 Stomp::hasFrame(): bool

Style procédural :

stomp_has_frame(resource $link): bool

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 Stomp::readFrame(string $class_name = "stompFrame"): stompframe

Style procédural :

stomp_read_frame(resource $link): array

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);

?>

Résultat de l'exemple ci-dessus est 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);

?>

Résultat de l'exemple ci-dessus est 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 Stomp::send(string $destination, mixed $msg, array $headers = ?): bool

Style procédural :

stomp_send(
resource $link,
string $destination,
mixed $msg,
array $headers = ?
): bool

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 contenant les en-têtes additionnels (exemple : receipt).

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Voir stomp_ack().

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.


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 Stomp::setReadTimeout(int $seconds, int $microseconds = ?): void

Style procédural:

stomp_set_read_timeout(resource $link, int $seconds, int $microseconds = ?): void

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.

Valeurs de retour

Aucune valeur n'est retournée.

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 Stomp::subscribe(string $destination, array $headers = ?): bool

Style procédural :

stomp_subscribe(resource $link, string $destination, array $headers = ?): bool

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 contenant les en-têtes additionnels (exemple : receipt).

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Voir stomp_ack().

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.


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 Stomp::unsubscribe(string $destination, array $headers = ?): bool

Style procédural :

stomp_unsubscribe(resource $link, string $destination, array $headers = ?): bool

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 contenant les en-têtes additionnels (exemple : receipt).

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Voir stomp_ack().

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.


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

class 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

class StompException étend Exception {
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
/* Méthodes */
public getDetails(): string
}

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 StompException::getDetails(): string

Récupère les détails de l'exception.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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 : » https://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');
?>

Résultat de l'exemple ci-dessus est 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

class SVM {
/* Constantes */
const int C_SVC = 0;
const int NU_SVC = 1;
const int ONE_CLASS = 2;
const int EPSILON_SVR = 3;
const int NU_SVR = 4;
const int KERNEL_LINEAR = 0;
const int KERNEL_POLY = 1;
const int KERNEL_RBF = 2;
const int KERNEL_SIGMOID = 3;
const int KERNEL_PRECOMPUTED = 4;
const int OPT_TYPE = 101;
const int OPT_KERNEL_TYPE = 102;
const int OPT_DEGREE = 103;
const int OPT_SHRINKING = 104;
const int OPT_PROPABILITY = 105;
const int OPT_GAMMA = 201;
const int OPT_NU = 202;
const int OPT_EPS = 203;
const int OPT_P = 204;
const int OPT_COEF_ZERO = 205;
const int OPT_C = 206;
const int OPT_CACHE_SIZE = 207;
/* Méthodes */
public __construct()
public svm::crossvalidate(array $problem, int $number_of_folds): float
public getOptions(): array
public setOptions(array $params): bool
public svm::train(array $problem, array $weights = ?): SVMModel
}

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()

Construit un nouvel objet SVM prêt à accepter des données d'entrainement.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Erreurs / Exceptions

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 svm::crossvalidate(array $problem, int $number_of_folds): float

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 SVM::getOptions(): array

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 SVM::setOptions(array $params): bool

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 svm::train(array $problem, array $weights = ?): SVMModel

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

class SVMModel {
/* Méthodes */
public __construct(string $filename = ?)
public checkProbabilityModel(): bool
public getLabels(): array
public getNrClass(): int
public getSvmType(): int
public getSvrProbability(): float
public load(string $filename): bool
public predict_probability(array $data): float
public predict(array $data): float
public save(string $filename): bool
}

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 SVMModel::checkProbabilityModel(): bool

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.

Erreurs / Exceptions

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 SVMModel::getLabels(): array

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 SVMModel::getNrClass(): int

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 SVMModel::getSvmType(): int

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 SVMModel::getSvrProbability(): float

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 SVMModel::load(string $filename): bool

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 SVMModel::predict_probability(array $data): float

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 SVMModel::predict(array $data): float

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 SVMModel::save(string $filename): bool

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 — Interrompre 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 — Détermine si un chemin donné pointe vers un dossier
    • svn_fs_is_file — Détermine si un chemin donné pointe vers un fichier
    • svn_fs_make_dir — Crée un nouveau dossier vide
    • svn_fs_make_file — Crée un nouveau 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 nœud
    • 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

Cette extension est EXPERIMENTALE. Le comportement de cette extension, les noms de ses fonctions, et toute la documentation autour de cette extension peut changer sans préavis dans une prochaine version de PHP. Cette extension doit être utilisée à 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 : » https://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 (int)
Nombre magique (-1) spécifiant la révision HEAD
Constantes utilisables avec svn_auth_set_parameter()
SVN_AUTH_PARAM_DEFAULT_USERNAME (string)
Propriété pour le nom d'utilisateur par défaut, à utiliser lors de l'identification de base
SVN_AUTH_PARAM_DEFAULT_PASSWORD (string)
Propriété pour le mot de passe par défaut, à utiliser lors de l'identification de base
SVN_AUTH_PARAM_NON_INTERACTIVE (string)
SVN_AUTH_PARAM_DONT_STORE_PASSWORDS (string)
SVN_AUTH_PARAM_NO_AUTH_CACHE (string)
SVN_AUTH_PARAM_SSL_SERVER_FAILURES (string)
SVN_AUTH_PARAM_SSL_SERVER_CERT_INFO (string)
SVN_AUTH_PARAM_CONFIG (string)
SVN_AUTH_PARAM_SERVER_GROUP (string)
SVN_AUTH_PARAM_CONFIG_DIR (string)
PHP_SVN_AUTH_PARAM_IGNORE_SSL_VERIFY_ERRORS (string)
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 (string)
Clé de configuration qui détermine le type de système de fichiers
SVN_FS_TYPE_BDB (string)
Le système de fichiers est Berkeley-DB
SVN_FS_TYPE_FSFS (string)
Le système de fichiers est "système de fichiers natifs"
Constantes de propriétés réservées
SVN_PROP_REVISION_DATE (string)
svn:date
SVN_PROP_REVISION_ORIG_DATE (string)
svn:original-date
SVN_PROP_REVISION_AUTHOR (string)
svn:author
SVN_PROP_REVISION_LOG (string)
svn:log
Constantes de statut des copies de travail
SVN_WC_STATUS_NONE (int)
Le statut n'existe pas
SVN_WC_STATUS_UNVERSIONED (int)
L'élément n'est pas versionné dans la copie de travail
SVN_WC_STATUS_NORMAL (int)
L'élément existe, rien d'autre n'intervient
SVN_WC_STATUS_ADDED (int)
L'élément est programmé pour être ajouté
SVN_WC_STATUS_MISSING (int)
L'élément est versionné mais est absent de la copie de travail
SVN_WC_STATUS_DELETED (int)
L'élément est marqué pour effacement
SVN_WC_STATUS_REPLACED (int)
L'élément a été supprimé, puis, ajouté à nouveau
SVN_WC_STATUS_MODIFIED (int)
L'élément (texte ou propriété) a été modifié
SVN_WC_STATUS_MERGED (int)
Les modifications de l'élément local ont été fusionnées avec les modifications du référentiel
SVN_WC_STATUS_CONFLICTED (int)
Les modifications de l'élément local entrent en conflit avec les modifications du référentiel
SVN_WC_STATUS_IGNORED (int)
L'élément n'est pas versionné mais est configuré pour être ignoré
SVN_WC_STATUS_OBSTRUCTED (int)
L'élément non versionné s'apprête à être une ressource versionnée
SVN_WC_STATUS_EXTERNAL (int)
Le chemin non versionné a été rempli en utilisant svn:externals
SVN_WC_STATUS_INCOMPLETE (int)
Le dossier ne contient pas une liste complète d'entrées
Constantes de type de nœud
SVN_NODE_NONE (int)
Absent
SVN_NODE_FILE (int)
Fichier
SVN_NODE_DIR (int)
Dossier
SVN_NODE_UNKNOWN (int)
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 — Interrompre 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 — Détermine si un chemin donné pointe vers un dossier
  • svn_fs_is_file — Détermine si un chemin donné pointe vers un fichier
  • svn_fs_make_dir — Crée un nouveau dossier vide
  • svn_fs_make_file — Crée un nouveau 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 nœud
  • 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

svn_add(string $path, bool $recursive = true, bool $force = false): bool

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.

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.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à vos risques et périls.

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

svn_auth_get_parameter(string $key): string

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. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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

svn_auth_set_parameter(string $key, string $value): void

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.

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');
?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à vos risques et périls.

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

svn_blame(string $repository_url, int $revision_no = SVN_REVISION_HEAD): array

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) );

?>

Résultat de l'exemple ci-dessus est 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

svn_cat(string $repos_url, int $revision_no = ?): string

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.

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)
?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à vos risques et périls.

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

svn_checkout(
string $repos,
string $targetpath,
int $revision = ?,
int $flags = 0
): bool

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.

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.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à vos risques et périls.

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

svn_cleanup(string $workingdir): bool

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.

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.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à vos risques et périls.

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

svn_client_version(): string

Récupère la version des bibliothèques clientes SVN.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Numéro de la version, habituellement sous la forme x.y.z.

Exemples

Exemple #1 Exemple d'utilisation

<?php
echo svn_client_version();
?>

Résultat de l'exemple ci-dessus est similaire à :

1.3.1

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à vos risques et périls.


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

svn_commit(string $log, array $targets, bool $recursive = true): array

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.

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'
)

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à vos risques et périls.

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

svn_delete(string $path, bool $force = false): bool

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. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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

svn_diff(
string $path1,
int $rev1,
string $path2,
int $rev2
): array

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.

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);
}
?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à vos risques et périls.

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

svn_export(
string $frompath,
string $topath,
bool $working_copy = true,
int $revision_no = -1
): bool

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


Interrompre une transaction

  • « svn_export
  • svn_fs_apply_text »
  • PHP Manual
  • Fonctions SVN
  • Interrompre une transaction

svn_fs_abort_txn

(PECL svn >= 0.2.0)

svn_fs_abort_txn — Interrompre une transaction

Description

svn_fs_abort_txn(resource $txn): bool
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Stoppe une transaction, retourne true si tout est Ok, false sinon.

Liste de paramètres

txn

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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

svn_fs_apply_text(resource $root, string $path): resource
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Crée et retourne un flux à utiliser pour modifier un fichier.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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

svn_fs_begin_txn2(resource $repos, int $rev): resource
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Crée une nouvelle transaction.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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

svn_fs_change_node_prop(
resource $root,
string $path,
string $name,
string $value
): bool
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Retourne true si tout est Ok, false sinon.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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

svn_fs_check_path(resource $fsroot, string $path): int
Avertissement

Cette fonction est actuellement non documentée ; 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. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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

svn_fs_contents_changed(
resource $root1,
string $path1,
resource $root2,
string $path2
): bool
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Retourne true si le contenu est différent, false sinon

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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

svn_fs_copy(
resource $from_root,
string $from_path,
resource $to_root,
string $to_path
): bool
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Copie un fichier ou un dossier.

Liste de paramètres

from_root

from_path

to_root

to_path

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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

svn_fs_delete(resource $root, string $path): bool
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Supprime un fichier ou un dossier.

Liste de paramètres

root

path

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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

svn_fs_dir_entries(resource $fsroot, string $path): array
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Énumère les éléments d'un dossier.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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

svn_fs_file_contents(resource $fsroot, string $path): resource
Avertissement

Cette fonction est actuellement non documentée ; 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. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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

svn_fs_file_length(resource $fsroot, string $path): int
Avertissement

Cette fonction est actuellement non documentée ; 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. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à vos risques et périls.


Détermine si un chemin donné pointe vers un dossier

  • « svn_fs_file_length
  • svn_fs_is_file »
  • PHP Manual
  • Fonctions SVN
  • Détermine si un chemin donné pointe vers un dossier

svn_fs_is_dir

(PECL svn >= 0.2.0)

svn_fs_is_dir — Détermine si un chemin donné pointe vers un dossier

Description

svn_fs_is_dir(resource $root, string $path): bool
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Détermine si un chemin donné pointe vers un dossier.

Liste de paramètres

root

path

Valeurs de retour

Retourne true si le chemin pointe vers un dossier, false sinon.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à vos risques et périls.


Détermine si un chemin donné pointe vers un fichier

  • « svn_fs_is_dir
  • svn_fs_make_dir »
  • PHP Manual
  • Fonctions SVN
  • Détermine si un chemin donné pointe vers un fichier

svn_fs_is_file

(PECL svn >= 0.2.0)

svn_fs_is_file — Détermine si un chemin donné pointe vers un fichier

Description

svn_fs_is_file(resource $root, string $path): bool
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Détermine si un chemin donné pointe vers un fichier.

Liste de paramètres

root

path

Valeurs de retour

Retourne true si le chemin pointe vers un fichier, false sinon.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à vos risques et périls.


Crée un nouveau dossier vide

  • « svn_fs_is_file
  • svn_fs_make_file »
  • PHP Manual
  • Fonctions SVN
  • Crée un nouveau dossier vide

svn_fs_make_dir

(PECL svn >= 0.2.0)

svn_fs_make_dir — Crée un nouveau dossier vide

Description

svn_fs_make_dir(resource $root, string $path): bool
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Crée un nouveau dossier.

Liste de paramètres

root

path

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à vos risques et périls.


Crée un nouveau fichier vide

  • « svn_fs_make_dir
  • svn_fs_node_created_rev »
  • PHP Manual
  • Fonctions SVN
  • Crée un nouveau fichier vide

svn_fs_make_file

(PECL svn >= 0.2.0)

svn_fs_make_file — Crée un nouveau fichier vide

Description

svn_fs_make_file(resource $root, string $path): bool
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Crée un nouveau fichier vide.

Liste de paramètres

root

path

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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

svn_fs_node_created_rev(resource $fsroot, string $path): int
Avertissement

Cette fonction est actuellement non documentée ; 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. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à vos risques et périls.


Retourne la valeur d'une propriété d'un nœud

  • « svn_fs_node_created_rev
  • svn_fs_props_changed »
  • PHP Manual
  • Fonctions SVN
  • Retourne la valeur d'une propriété d'un nœud

svn_fs_node_prop

(PECL svn >= 0.1.0)

svn_fs_node_prop — Retourne la valeur d'une propriété d'un nœud

Description

svn_fs_node_prop(resource $fsroot, string $path, string $propname): string
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Retourne la valeur d'une propriété d'un nœud.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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

svn_fs_props_changed(
resource $root1,
string $path1,
resource $root2,
string $path2
): bool
Avertissement

Cette fonction est actuellement non documentée ; 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. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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

svn_fs_revision_prop(resource $fs, int $revnum, string $propname): string
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Récupère la valeur d'une propriété nommée.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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

svn_fs_revision_root(resource $fs, int $revnum): resource
Avertissement

Cette fonction est actuellement non documentée ; 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. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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

svn_fs_txn_root(resource $txn): resource
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Crée et retourne une transaction.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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

svn_fs_youngest_rev(resource $fs): int
Avertissement

Cette fonction est actuellement non documentée ; 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. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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

svn_import(string $path, string $url, bool $nonrecursive): bool

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.

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);
?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à vos risques et périls.

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

svn_log(
string $repos_url,
int $start_revision = ?,
int $end_revision = ?,
int $limit = 0,
int $flags = SVN_DISCOVER_CHANGED_PATHS | SVN_STOP_ON_COPY
): array

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é.

Exemples

Exemple #1 Exemple avec svn_log()

<?php
print_r( svn_log('http://www.example.com/', 23) );
?>

Résultat de l'exemple ci-dessus est 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'
                    )
            )
    )
)

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à vos risques et périls.

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

svn_ls(
string $repos_url,
int $revision_no = SVN_REVISION_HEAD,
bool $recurse = false,
bool $peg = false
): array

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] => ...

Exemples

Exemple #1 Exemple avec svn_ls()

<?php
print_r( svn_ls('http://www.example.com/svnroot/') );
?>

Résultat de l'exemple ci-dessus est 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
        )
)

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à vos risques et périls.

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

svn_mkdir(string $path, string $log_message = ?): bool

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

svn_repos_create(string $path, array $config = ?, array $fsconfig = ?): resource
Avertissement

Cette fonction est actuellement non documentée ; 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. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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

svn_repos_fs_begin_txn_for_commit(
resource $repos,
int $rev,
string $author,
string $log_msg
): resource
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Crée une nouvelle transaction.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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

svn_repos_fs_commit_txn(resource $txn): int
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Livre une transaction et retourne la nouvelle révision.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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

svn_repos_fs(resource $repos): resource
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Récupère un gestionnaire du système de fichiers.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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

svn_repos_hotcopy(string $repospath, string $destpath, bool $cleanlogs): bool
Avertissement

Cette fonction est actuellement non documentée ; 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. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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

svn_repos_open(string $path): resource
Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Ouvre un verrou partagé sur un référentiel.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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

svn_repos_recover(string $path): bool
Avertissement

Cette fonction est actuellement non documentée ; 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. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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

svn_revert(string $path, bool $recursive = false): bool

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

svn_status(string $path, int $flags = 0): array

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.

Exemples

Exemple #1 Exemple d'utilisation

Cet exemple montre une utilisation basique de cette fonction.

<?php
print_r(svn_status(realpath('wc')));
?>

Résultat de l'exemple ci-dessus est 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
    )
)

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à vos risques et périls.

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

svn_update(string $path, int $revno = SVN_REVISION_HEAD, bool $recurse = true): int

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.

Exemples

Exemple #1 Exemple d'utilisation

Cet exemple montre une utilisation basique de cette fonction :

<?php
echo svn_update(realpath('working-copy'));
?>

Résultat de l'exemple ci-dessus est similaire à :

234

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à vos risques et périls.

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 : » https://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

tcpwrap_check(
string $daemon,
string $address,
string $user = ?,
bool $nodns = false
): bool

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 expression 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 message 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 : » https://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 (int)
VARNISH_STATUS_UNKNOWN (int)
VARNISH_STATUS_UNIMPL (int)
VARNISH_STATUS_TOOFEW (int)
VARNISH_STATUS_TOOMANY (int)
VARNISH_STATUS_PARAM (int)
VARNISH_STATUS_AUTH (int)
VARNISH_STATUS_OK (int)
VARNISH_STATUS_CANT (int)
VARNISH_STATUS_COMMS (int)
VARNISH_STATUS_CLOSE (int)
VARNISH_CONFIG_IDENT (string)
VARNISH_CONFIG_HOST (string)
VARNISH_CONFIG_PORT (string)
VARNISH_CONFIG_TIMEOUT (string)
VARNISH_CONFIG_SECRET (string)
VARNISH_CONFIG_COMPAT (string)
VARNISH_COMPAT_2 (int)
VARNISH_COMPAT_3 (int)


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

class VarnishAdmin {
/* Méthodes */
public auth(): bool
public ban(string $vcl_regex): int
public banUrl(string $vcl_regex): int
public clearPanic(): int
public connect(): bool
public __construct(array $args = ?)
public disconnect(): bool
public getPanic(): string
public getParams(): array
public isRunning(): bool
public setCompat(int $compat): void
public setHost(string $host): void
public setIdent(string $ident): void
public setParam(string $name, string|int $value): int
public setPort(int $port): void
public setSecret(string $secret): void
public setTimeout(int $timeout): void
public start(): int
public stop(): int
}

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 expression 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 message 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 VarnishAdmin::auth(): bool

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 VarnishAdmin::ban(string $vcl_regex): int

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 expression VCL

  • « VarnishAdmin::ban
  • VarnishAdmin::clearPanic »
  • PHP Manual
  • VarnishAdmin
  • Ban une URL en utilisant une expression VCL

VarnishAdmin::banUrl

(PECL varnish >= 0.3)

VarnishAdmin::banUrl — Ban une URL en utilisant une expression VCL

Description

public VarnishAdmin::banUrl(string $vcl_regex): int

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 VarnishAdmin::clearPanic(): int

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 VarnishAdmin::connect(): bool

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 VarnishAdmin::disconnect(): bool

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 message de panique de l'instance Varnish

  • « VarnishAdmin::disconnect
  • VarnishAdmin::getParams »
  • PHP Manual
  • VarnishAdmin
  • Récupère le dernier message de panique de l'instance Varnish

VarnishAdmin::getPanic

(PECL varnish >= 0.4)

VarnishAdmin::getPanic — Récupère le dernier message de panique de l'instance Varnish

Description

public VarnishAdmin::getPanic(): string

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 VarnishAdmin::getParams(): array

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 VarnishAdmin::isRunning(): bool

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 VarnishAdmin::setCompat(int $compat): void

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 VarnishAdmin::setHost(string $host): void

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 VarnishAdmin::setIdent(string $ident): void

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 VarnishAdmin::setParam(string $name, string|int $value): int

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 VarnishAdmin::setPort(int $port): void

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 VarnishAdmin::setSecret(string $secret): void

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 VarnishAdmin::setTimeout(int $timeout): void

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 VarnishAdmin::start(): int

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 VarnishAdmin::stop(): int

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

class VarnishStat {
/* Méthodes */
public __construct(array $args = ?)
public getSnapshot(): array
}

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 VarnishStat::getSnapshot(): array

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

class VarnishLog {
/* Constants */
const int TAG_Debug = 0;
const int TAG_Error = 1;
const int TAG_CLI = 2;
const int TAG_StatSess = 3;
const int TAG_ReqEnd = 4;
const int TAG_SessionOpen = 5;
const int TAG_SessionClose = 6;
const int TAG_BackendOpen = 7;
const int TAG_BackendXID = 8;
const int TAG_BackendReuse = 9;
const int TAG_BackendClose = 10;
const int TAG_HttpGarbage = 11;
const int TAG_Backend = 12;
const int TAG_Length = 13;
const int TAG_FetchError = 14;
const int TAG_RxRequest = 15;
const int TAG_RxResponse = 16;
const int TAG_RxStatus = 17;
const int TAG_RxURL = 18;
const int TAG_RxProtocol = 19;
const int TAG_RxHeader = 20;
const int TAG_TxRequest = 21;
const int TAG_TxResponse = 22;
const int TAG_TxStatus = 23;
const int TAG_TxURL = 24;
const int TAG_TxProtocol = 25;
const int TAG_TxHeader = 26;
const int TAG_ObjRequest = 27;
const int TAG_ObjResponse = 28;
const int TAG_ObjStatus = 29;
const int TAG_ObjURL = 30;
const int TAG_ObjProtocol = 31;
const int TAG_ObjHeader = 32;
const int TAG_LostHeader = 33;
const int TAG_TTL = 34;
const int TAG_Fetch_Body = 35;
const int TAG_VCL_acl = 36;
const int TAG_VCL_call = 37;
const int TAG_VCL_trace = 38;
const int TAG_VCL_return = 39;
const int TAG_VCL_error = 40;
const int TAG_ReqStart = 41;
const int TAG_Hit = 42;
const int TAG_HitPass = 43;
const int TAG_ExpBan = 44;
const int TAG_ExpKill = 45;
const int TAG_WorkThread = 46;
const int TAG_ESI_xmlerror = 47;
const int TAG_Hash = 48;
const int TAG_Backend_health = 49;
const int TAG_VCL_Log = 50;
const int TAG_Gzip = 51;
/* Méthodes */
public __construct(array $args = ?)
public getLine(): array
public static getTagName(int $index): string
}

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 VarnishLog::getLine(): array

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 VarnishLog::getTagName(int $index): string

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 : » https://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 et YAZ ne peuvent être utilisées simultanément puisqu'elles utilisent un symbole interne commun. Note: Yaz 2.0 et supérieur ne souffre plus de ce problème.


  • « 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

yaz_addinfo(resource $id): string

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

yaz_ccl_conf(resource $id, array $config): void

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

yaz_ccl_parse(resource $id, string $query, array &$result): bool

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

yaz_close(resource $id): bool

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

yaz_connect(string $zurl, mixed $options = ?): mixed

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

yaz_database(resource $id, string $databases): bool

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

yaz_element(resource $id, string $elementset): bool

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

yaz_errno(resource $id): int

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

yaz_error(resource $id): string

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

yaz_es_result(resource $id): array

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

yaz_es( resource $id , string $type , array $args ): void

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

yaz_get_option(resource $id, string $name): string

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

yaz_hits(resource $id, array &$searchresult = ?): int

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

yaz_itemorder(resource $id, array $args): void

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

yaz_present(resource $id): bool

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

yaz_range(resource $id, int $start, int $number): void

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

yaz_record(resource $id, int $pos, string $type): string

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/nœud 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 nœuds à 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;

?>


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

yaz_scan_result(resource $id, array &$result = ?): array

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

yaz_scan(
resource $id,
string $type,
string $startterm,
array $flags = ?
): void

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

yaz_schema(resource $id, string $schema): void

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

yaz_search(resource $id, string $type, string $query): bool

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

yaz_set_option(resource $id, string $name, string $value): void
yaz_set_option(resource $id, array $options): void

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

yaz_sort(resource $id, string $criteria): void

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

yaz_syntax(resource $id, string $syntax): void

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
  • 0MQ messaging »
  • 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

yaz_wait(array &$options = ?): mixed

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.


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 : » https://pecl.php.net/package/zmq


La classe ZMQ

(PECL zmq >= 0.5.0)

Introduction

Synopsis de la classe

class ZMQ {
/* Constants */
const int SOCKET_PAIR;
const int SOCKET_PUB;
const int SOCKET_SUB;
const int SOCKET_REQ;
const int SOCKET_REP;
const int SOCKET_XREQ;
const int SOCKET_XREP;
const int SOCKET_PUSH;
const int SOCKET_PULL;
const int SOCKET_ROUTER;
const int SOCKET_DEALER;
const int SOCKET_XPUB;
const int SOCKET_XSUB;
const int SOCKET_STREAM;
const int SOCKOPT_HWM;
const int SOCKOPT_SNDHWM;
const int SOCKOPT_RCVHWM;
const int SOCKOPT_AFFINITY;
const int SOCKOPT_IDENTITY;
const int SOCKOPT_SUBSCRIBE;
const int SOCKOPT_UNSUBSCRIBE;
const int SOCKOPT_RATE;
const int SOCKOPT_RECOVERY_IVL;
const int SOCKOPT_RECONNECT_IVL;
const int SOCKOPT_RECONNECT_IVL_MAX;
const int SOCKOPT_MCAST_LOOP;
const int SOCKOPT_SNDBUF;
const int SOCKOPT_RCVBUF;
const int SOCKOPT_RCVMORE;
const int SOCKOPT_TYPE;
const int SOCKOPT_LINGER;
const int SOCKOPT_BACKLOG;
const int SOCKOPT_MAXMSGSIZE;
const int SOCKOPT_SNDTIMEO;
const int SOCKOPT_RCVTIMEO;
const int SOCKOPT_IPV4ONLY;
const int SOCKOPT_LAST_ENDPOINT;
const int SOCKOPT_TCP_KEEPALIVE_IDLE;
const int SOCKOPT_TCP_KEEPALIVE_CNT;
const int SOCKOPT_TCP_KEEPALIVE_INTVL;
const int SOCKOPT_TCP_ACCEPT_FILTER;
const int SOCKOPT_TCP_ACCEPT_FILTER;
const int SOCKOPT_DELAY_ATTACH_ON_CONNECT;
const int SOCKOPT_XPUB_VERBOSE;
const int SOCKOPT_ROUTER_RAW;
const int SOCKOPT_IPV6;
const int CTXOPT_MAX_SOCKETS;
const int POLL_IN;
const int POLL_OUT;
const int MODE_NOBLOCK;
const int MODE_DONTWAIT;
const int MODE_SNDMORE;
const int ERR_INTERNAL;
const int ERR_EAGAIN;
const int ERR_ENOTSUP;
const int ERR_EFSM;
const int ERR_ETERM;
/* Méthodes */
private __construct()
}

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 SOCKOPT_RCVHWM 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 multipart (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 multipart

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

private ZMQ::__construct()

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

(PECL zmq >= 0.5.0)

Introduction

Synopsis de la classe

class ZMQContext {
/* Méthodes */
public __construct(int $io_threads = 1, bool $is_persistent = true)
public getOpt(string $key): mixed
public getSocket(int $type, string $persistent_id = null, callable $on_new_socket = null): ZMQSocket
public isPersistent(): bool
public setOpt(int $key, mixed $value): ZMQContext
}

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

public ZMQContext::__construct(int $io_threads = 1, bool $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 persistants.

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.

Erreurs / Exceptions

Lance ZMQContextException si le contexte d'initialisation échoue.

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();
?>


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 ZMQContext::getOpt(string $key): mixed

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 ZMQContext::getSocket(int $type, string $persistent_id = null, callable $on_new_socket = null): ZMQSocket

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 persistante est ré-utilisée. La fonction de rappel prend deux arguments : ZMQSocket et persistent_id.

Valeurs de retour

Retourne un objet ZMQSocket.

Erreurs / Exceptions

Lance une ZMQSocketException en cas d'erreur.

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";
?>


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 ZMQContext::isPersistent(): bool

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::setOpt(int $key, mixed $value): ZMQContext

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

(PECL zmq >= 0.5.0)

Introduction

Synopsis de la classe

class ZMQSocket {
/* Méthodes */
public bind(string $dsn, bool $force = false): ZMQSocket
public connect(string $dsn, bool $force = false): ZMQSocket
public __construct(
ZMQContext $context,
int $type,
string $persistent_id = null,
callable $on_new_socket = null
)
public disconnect(string $dsn): ZMQSocket
public getEndpoints(): array
public getPersistentId(): string
public getSocketType(): int
public getSockOpt(string $key): mixed
public isPersistent(): bool
public recv(int $mode = 0): string
public recvMulti(int $mode = 0): array
public send(string $message, int $mode = 0): ZMQSocket
public sendmulti(array $message, int $mode = 0): ZMQSocket
public setSockOpt(int $key, mixed $value): ZMQSocket
public unbind(string $dsn): ZMQSocket
}

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::bind(string $dsn, bool $force = false): ZMQSocket

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::connect(string $dsn, bool $force = false): ZMQSocket

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.

Valeurs de retour

Retourne l'objet courant.

Erreurs / Exceptions

Lance une ZMQSocketException en cas d'erreur.

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>";
?>


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

public ZMQSocket::__construct(
ZMQContext $context,
int $type,
string $persistent_id = null,
callable $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

Fonction de rappel, qui sera exécutée lorsqu'une nouvelle structure de socket sera créée. Cette fonction ne sera pas appelée si la connexion persistente est ré-appelée.

callback(ZMQSocket $socket, string $persistent_id = null)

Erreurs / Exceptions

Lance une ZMQSocketException en cas d'erreur.

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";
?>


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::disconnect(string $dsn): ZMQSocket

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 ZMQSocket::getEndpoints(): array

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 ZMQSocket::getPersistentId(): string

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 ZMQSocket::getSocketType(): int

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 ZMQSocket::getSockOpt(string $key): mixed

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 ZMQSocket::isPersistent(): bool

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 ZMQSocket::recv(int $mode = 0): string

Recoit un message du socket. Par défaut, la réception va être bloquante tant qu'un message est disponible, à moins que ZMQ::MODE_DONTWAIT 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_*.

Valeurs de retour

Retourne le message. Si ZMQ::MODE_DONTWAIT est utilisé et que l'opération bloquerait false devrait être retourné.

Erreurs / Exceptions

Lance une ZMQSocketException en cas d'erreur.

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_DONTWAIT);
$sending = false;
} else {
echo "Réception de la réponse : " . $queue->recv(ZMQ::MODE_DONTWAIT) . "\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);
?>

Résultat de l'exemple ci-dessus est similaire à :

Envoi du message
 - Unable to execute operation, retrying (4)
Réception de la réponse : Ceci est un message


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 ZMQSocket::recvMulti(int $mode = 0): array

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::send(string $message, int $mode = 0): ZMQSocket

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::sendmulti(array $message, int $mode = 0): ZMQSocket

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::setSockOpt(int $key, mixed $value): ZMQSocket

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::unbind(string $dsn): ZMQSocket

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

(PECL zmq >= 0.5.0)

Introduction

Synopsis de la classe

class ZMQPoll {
/* Méthodes */
public add(mixed $entry, int $type): string
public clear(): ZMQPoll
public count(): int
public getLastErrors(): array
public poll(array &$readable, array &$writable, int $timeout = -1): int
public remove(mixed $item): bool
}

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 ZMQPoll::add(mixed $entry, int $type): string

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::clear(): ZMQPoll

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 ZMQPoll::count(): int

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 ZMQPoll::getLastErrors(): array

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 ZMQPoll::poll(array &$readable, array &$writable, int $timeout = -1): int

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.

Valeurs de retour

Retourne un entier représentant la quantité d'objets avec activité.

Erreurs / Exceptions

Lance une ZMQPollException en cas d'erreur.

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";
}
}
}
}
?>


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 ZMQPoll::remove(mixed $item): bool

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

(PECL zmq >= 0.5.0)

Introduction

Synopsis de la classe

class ZMQDevice {
/* Méthodes */
public __construct(ZMQSocket $frontend, ZMQSocket $backend, ZMQSocket $listener = ?)
public getIdleTimeout(): ZMQDevice
public getTimerTimeout(): ZMQDevice
public run(): void
public setIdleCallback(callable $cb_func, int $timeout, mixed $user_data = ?): ZMQDevice
public setIdleTimeout(int $timeout): ZMQDevice
public setTimerCallback(callable $cb_func, int $timeout, mixed $user_data = ?): ZMQDevice
public setTimerTimeout(int $timeout): ZMQDevice
}

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

public 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::getIdleTimeout(): ZMQDevice

Récupère le délai d'attente maximal d'inactivité. Ajouté dans l'extension ZMQ en version 1.1.0.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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::getTimerTimeout(): ZMQDevice

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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 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::setIdleCallback(callable $cb_func, int $timeout, mixed $user_data = ?): ZMQDevice

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::setIdleTimeout(int $timeout): ZMQDevice

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::setTimerCallback(callable $cb_func, int $timeout, mixed $user_data = ?): ZMQDevice

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::setTimerTimeout(int $timeout): ZMQDevice

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
  • Fonctions ZooKeeper
    • zookeeper_dispatch — Calls callbacks for pending operations
  • Zookeeper — The Zookeeper class
    • Zookeeper::addAuth — Specify application credentials
    • Zookeeper::close — Close the zookeeper handle and free up any resources
    • 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::getChildren — Lists the children of 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::getConfig — Get instance of ZookeeperConfig
    • 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
  • ZookeeperConfig — The ZookeeperConfig class
    • ZookeeperConfig::add — Add servers to the ensemble
    • ZookeeperConfig::get — Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously
    • ZookeeperConfig::remove — Remove servers from the ensemble
    • ZookeeperConfig::set — Change ZK cluster ensemble membership and roles of ensemble peers
  • ZookeeperException — The ZookeeperException class
  • ZookeeperAuthenticationException — The ZookeeperAuthenticationException class
  • ZookeeperConnectionException — The ZookeeperConnectionException class
  • ZookeeperMarshallingException — The ZookeeperMarshallingException class
  • ZookeeperNoNodeException — The ZookeeperNoNodeException class
  • ZookeeperOperationTimeoutException — The ZookeeperOperationTimeoutException class
  • ZookeeperSessionException — The ZookeeperSessionException class


Introduction

Cette extension utilise la librairie libzookeeper pour fournir une API permettant de communiquer avec le service Zookeeper.

ZooKeeper est un projet Apache qui fournit un service centralisé pour maintenir les informations de configuration et de nommage, avec une synchronisation distribuée et des groupes de services.


Pré-requis

Cette extension nécessite » ZooKeeper C Binding (version 3.4.1 or ultérieur). Pour plus d'information, consulter » ZooKeeper Programmer's Guide.


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 : » https://pecl.php.net/package/zookeeper.

Pour utiliser zookeeper, configurer PHP avec l'option --with-libzookeeper-dir=DIR. DIR est le prefixe du dossier d'installation du client C, il doit contenir le fichier 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 | INI_ALL |
zookeeper.session_lock | 1 | INI_SYSTEM |
zookeeper.sess_lock_wait | 150000 | INI_ALL |
Pour plus de détails sur les modes 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 int

Délai maximum d'attente par defaut pour toutes les sessions de ZooKeeper.

zookeeper.session_lock int

Autorise le verouillage des sessions PHP

zookeeper.sess_lock_wait int

Temps d'attente en microsecondes pour les tentatives de vérouillage de la session PHP. Soyez prudent lors de la définition de cette valeur. Les valeurs valides sont des entiers, où 0 est interprété comme la valeur par défaut. Les valeurs négatives entraînent un verrouillage réduit à une tentative de verrouillage.


  • « Types de ressources
  • Fonctions ZooKeeper »
  • PHP Manual
  • ZooKeeper
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


  • « Constantes pré-définies
  • zookeeper_dispatch »
  • PHP Manual
  • ZooKeeper
  • Fonctions ZooKeeper

Fonctions ZooKeeper

Sommaire

  • zookeeper_dispatch — Calls callbacks for pending operations


Calls callbacks for pending operations

  • « Fonctions ZooKeeper
  • Zookeeper »
  • PHP Manual
  • Fonctions ZooKeeper
  • Calls callbacks for pending operations

zookeeper_dispatch

(PECL zookeeper >= 0.4.0)

zookeeper_dispatch — Calls callbacks for pending operations

Description

zookeeper_dispatch(): void

The zookeeper_dispatch() function calls the callbacks passed by operations like Zookeeper::get() or Zookeeper::exists().

Attention

Since version 0.4.0, this function must be called manually to achieve asynchronous operations. If you want that to be done automatically, you also can declare ticks at the beginning of your program.

After PHP 7.1, you can ignore this function. This extension uses EG(vm_interrupt) to implement async dispatch.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

This method emits PHP warning when callback could not be invoked.

Exemples

Exemple #1 zookeeper_dispatch() example #1

Dispatch callbacks manually.

<?php
$client = new Zookeeper();
$client->connect('localhost:2181');
$client->get('/zookeeper', function() {
echo "Callback was called".PHP_EOL;
});
while(true) {
sleep(1);
zookeeper_dispatch();
}
?>

Exemple #2 zookeeper_dispatch() example #2

Declare ticks.

<?php
declare(ticks=1);

$client = new Zookeeper();
$client->connect('localhost:2181');
$client->get('/zookeeper', function() {
echo "Callback was called".PHP_EOL;
});
while(true) {
sleep(1);
}
?>

Voir aussi

  • 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::exists() - Checks the existence of a node in zookeeper synchronously
  • Zookeeper::get() - Gets the data associated with a node synchronously
  • Zookeeper::getChildren() - Lists the children of a node synchronously
  • Zookeeper::setWatcher() - Set a watcher function


The Zookeeper class

(PECL zookeeper >= 0.1.0)

Introduction

Represents ZooKeeper session.

Synopsis de la classe

class Zookeeper {
/* Méthodes */
public __construct(string $host = '', callable $watcher_cb = null, int $recv_timeout = 10000)
public addAuth(string $scheme, string $cert, callable $completion_cb = null): bool
public close(): void
public connect(string $host, callable $watcher_cb = null, int $recv_timeout = 10000): void
public create(
string $path,
string $value,
array $acls,
int $flags = null
): string
public delete(string $path, int $version = -1): bool
public exists(string $path, callable $watcher_cb = null): array
public get(
string $path,
callable $watcher_cb = null,
array &$stat = null,
int $max_size = 0
): string
public getAcl(string $path): array
public getChildren(string $path, callable $watcher_cb = null): array
public getClientId(): int
public getConfig(): ZookeeperConfig
public getRecvTimeout(): int
public getState(): int
public isRecoverable(): bool
public set(
string $path,
string $value,
int $version = -1,
array &$stat = null
): bool
public setAcl(string $path, int $version, array $acl): bool
public static setDebugLevel(int $logLevel): bool
public static setDeterministicConnOrder(bool $yesOrNo): bool
public setLogStream(resource $stream): bool
public setWatcher(callable $watcher_cb): bool
/* Constantes */
const int PERM_READ = 1;
const int PERM_WRITE = 2;
const int PERM_CREATE = 4;
const int PERM_DELETE = 8;
const int PERM_ADMIN = 16;
const int PERM_ALL = 31;
const int EPHEMERAL = 1;
const int SEQUENCE = 2;
const int LOG_LEVEL_ERROR = 1;
const int LOG_LEVEL_WARN = 2;
const int LOG_LEVEL_INFO = 3;
const int LOG_LEVEL_DEBUG = 4;
const int EXPIRED_SESSION_STATE = -112;
const int AUTH_FAILED_STATE = -113;
const int CONNECTING_STATE = 1;
const int ASSOCIATING_STATE = 2;
const int CONNECTED_STATE = 3;
const int READONLY_STATE = 5;
const int NOTCONNECTED_STATE = 999;
const int CREATED_EVENT = 1;
const int DELETED_EVENT = 2;
const int CHANGED_EVENT = 3;
const int CHILD_EVENT = 4;
const int SESSION_EVENT = -1;
const int NOTWATCHING_EVENT = -2;
const int SYSTEMERROR = -1;
const int RUNTIMEINCONSISTENCY = -2;
const int DATAINCONSISTENCY = -3;
const int CONNECTIONLOSS = -4;
const int MARSHALLINGERROR = -5;
const int UNIMPLEMENTED = -6;
const int OPERATIONTIMEOUT = -7;
const int BADARGUMENTS = -8;
const int INVALIDSTATE = -9;
const int NEWCONFIGNOQUORUM = -13;
const int RECONFIGINPROGRESS = -14;
const int OK = 0;
const int APIERROR = -100;
const int NONODE = -101;
const int NOAUTH = -102;
const int BADVERSION = -103;
const int NOCHILDRENFOREPHEMERALS = -108;
const int NODEEXISTS = -110;
const int NOTEMPTY = -111;
const int SESSIONEXPIRED = -112;
const int INVALIDCALLBACK = -113;
const int INVALIDACL = -114;
const int AUTHFAILED = -115;
const int CLOSING = -116;
const int NOTHING = -117;
const int SESSIONMOVED = -118;
const int NOTREADONLY = -119;
const int EPHEMERALONLOCALSESSION = -120;
const int NOWATCHER = -121;
const int RECONFIGDISABLED = -122;
}

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 Create Flags

Zookeeper::EPHEMERAL

If Zookeeper::EPHEMERAL flag is set, the node will automatically get removed if the client session goes away.

Zookeeper::SEQUENCE

If the Zookeeper::SEQUENCE flag is set, a unique monotonically increasing sequence number is appended to the path name. The sequence number is always fixed length of 10 digits, 0 padded.

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

ZooKeeper Watch Types

Zookeeper::CREATED_EVENT

A node has been created

This is only generated by watches on non-existent nodes. These watches are set using Zookeeper::exists.

Zookeeper::DELETED_EVENT

A node has been deleted

This is only generated by watches on nodes. These watches are set using Zookeeper::exists and Zookeeper::get.

Zookeeper::CHANGED_EVENT

A node has changed

This is only generated by watches on nodes. These watches are set using Zookeeper::exists and Zookeeper::get.

Zookeeper::CHILD_EVENT

A change as occurred in the list of children

This is only generated by watches on the child list of a node. These watches are set using Zookeeper::getChildren.

Zookeeper::SESSION_EVENT

A session has been lost

This is generated when a client loses contact or reconnects with a server.

Zookeeper::NOTWATCHING_EVENT

A watch has been removed

This is generated when the server for some reason, probably a resource constraint, will no longer watch a node for a client.

ZooKeeper System and Server-side Errors

Zookeeper::SYSTEMERROR

This is never thrown by the server, it shouldn't be used other than to indicate a range. Specifically error codes greater than this value, but lesser than Zookeeper::APIERROR, are system errors.

Zookeeper::RUNTIMEINCONSISTENCY

A runtime inconsistency was found.

Zookeeper::DATAINCONSISTENCY

A data inconsistency was found.

Zookeeper::CONNECTIONLOSS

Connection to the server has been lost.

Zookeeper::MARSHALLINGERROR

Error while marshalling or unmarshalling data.

Zookeeper::UNIMPLEMENTED

Operation is unimplemented.

Zookeeper::OPERATIONTIMEOUT

Operation timeout.

Zookeeper::BADARGUMENTS

Invalid arguments.

Zookeeper::INVALIDSTATE

Invliad zhandle state.

Zookeeper::NEWCONFIGNOQUORUM

No quorum of new config is connected and up-to-date with the leader of last committed config - try invoking reconfiguration after new servers are connected and synced.

Available as of ZooKeeper 3.5.0

Zookeeper::RECONFIGINPROGRESS

Reconfiguration requested while another reconfiguration is currently in progress. This is currently not supported. Please retry.

Available as of ZooKeeper 3.5.0

ZooKeeper API Errors

Zookeeper::OK

Everything is OK.

Zookeeper::APIERROR

This is never thrown by the server, it shouldn't be used other than to indicate a range. Specifically error codes greater than this value are API errors (while values less than this indicate a Zookeeper::SYSTEMERROR).

Zookeeper::NONODE

Node does not exist.

Zookeeper::NOAUTH

Not authenticated.

Zookeeper::BADVERSION

Version conflict.

Zookeeper::NOCHILDRENFOREPHEMERALS

Ephemeral nodes may not have children.

Zookeeper::NODEEXISTS

The node already exists.

Zookeeper::NOTEMPTY

The node has children.

Zookeeper::SESSIONEXPIRED

The session has been expired by the server.

Zookeeper::INVALIDCALLBACK

Invalid callback specified.

Zookeeper::INVALIDACL

Invalid ACL specified.

Zookeeper::AUTHFAILED

Client authentication failed.

Zookeeper::CLOSING

ZooKeeper is closing.

Zookeeper::NOTHING

(not error) No server responses to process.

Zookeeper::SESSIONMOVED

Session moved to another server, so operation is ignored.

Zookeeper::NOTREADONLY

State-changing request is passed to read-only server.

Zookeeper::EPHEMERALONLOCALSESSION

Attempt to create ephemeral node on a local session.

Zookeeper::NOWATCHER

The watcher couldn't be found.

Zookeeper::RECONFIGDISABLED

Attempts to perform a reconfiguration operation when reconfiguration feature is disabled.

Sommaire

  • Zookeeper::addAuth — Specify application credentials
  • Zookeeper::close — Close the zookeeper handle and free up any resources
  • 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::getChildren — Lists the children of 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::getConfig — Get instance of ZookeeperConfig
  • 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::close »
  • PHP Manual
  • Zookeeper
  • Specify application credentials

Zookeeper::addAuth

(PECL zookeeper >= 0.1.0)

Zookeeper::addAuth — Specify application credentials

Description

public Zookeeper::addAuth(string $scheme, string $cert, callable $completion_cb = null): bool

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.

Attention

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

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
  • ZookeeperException


Close the zookeeper handle and free up any resources

  • « Zookeeper::addAuth
  • Zookeeper::connect »
  • PHP Manual
  • Zookeeper
  • Close the zookeeper handle and free up any resources

Zookeeper::close

(PECL zookeeper >= 0.5.0)

Zookeeper::close — Close the zookeeper handle and free up any resources

Description

public Zookeeper::close(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

This method emits ZookeeperException and it's derivatives when closing an uninitialized instance.

Voir aussi

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper
  • Zookeeper::connect() - Create a handle to used communicate with zookeeper
  • ZookeeperException


Create a handle to used communicate with zookeeper

  • « Zookeeper::close
  • 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 Zookeeper::connect(string $host, callable $watcher_cb = null, int $recv_timeout = 10000): void

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).

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

This method emits PHP error/warning when parameters count or types are wrong or could not init instance.

Attention

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Voir aussi

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper
  • ZookeeperException


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.

Attention

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Voir aussi

  • Zookeeper::connect() - Create a handle to used communicate with zookeeper
  • ZookeeperException


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 Zookeeper::create(
string $path,
string $value,
array $acls,
int $flags = null
): string

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.

Attention

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

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::getChildren() - Lists the children of a node synchronously
  • ZooKeeper Permissions
  • ZookeeperException


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 Zookeeper::delete(string $path, int $version = -1): bool

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.

Attention

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

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
  • Zookeeper::getChildren() - Lists the children of a node synchronously
  • ZookeeperException


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 Zookeeper::exists(string $path, callable $watcher_cb = null): array

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 the value of stat for the path if the given node exists, otherwise false.

Erreurs / Exceptions

This method emits PHP error/warning when parameters count or types are wrong or fail to check the existence of a node.

Attention

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

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
  • ZookeeperException


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 Zookeeper::get(
string $path,
callable $watcher_cb = null,
array &$stat = null,
int $max_size = 0
): string

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.

Attention

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

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

Exemple #2 Zookeeper::get() stat example

Get node stat info.

<?php
$zookeeper = new Zookeeper('localhost:2181');
$path = '/path/to/node';
$stat = [];
$zookeeper->get($path, null, $stat);
var_dump($stat);
?>

L'exemple ci-dessus va afficher :

array(11) {
  ["czxid"]=>
  float(0)
  ["mzxid"]=>
  float(0)
  ["ctime"]=>
  float(0)
  ["mtime"]=>
  float(0)
  ["version"]=>
  int(0)
  ["cversion"]=>
  int(-2)
  ["aversion"]=>
  int(0)
  ["ephemeralOwner"]=>
  float(0)
  ["dataLength"]=>
  int(0)
  ["numChildren"]=>
  int(2)
  ["pzxid"]=>
  float(0)
}

Voir aussi

  • Zookeeper::set() - Sets the data associated with a node
  • ZookeeperException


Gets the acl associated with a node synchronously

  • « Zookeeper::get
  • Zookeeper::getChildren »
  • 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 Zookeeper::getAcl(string $path): array

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.

Attention

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

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
  • ZookeeperException


Lists the children of a node synchronously

  • « Zookeeper::getAcl
  • Zookeeper::getClientId »
  • PHP Manual
  • Zookeeper
  • Lists the children of a node synchronously

Zookeeper::getChildren

(PECL zookeeper >= 0.1.0)

Zookeeper::getChildren — Lists the children of a node synchronously

Description

public Zookeeper::getChildren(string $path, callable $watcher_cb = null): array

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.

Valeurs de retour

Returns an array with children paths on success, and false on failure.

Erreurs / Exceptions

This method emits PHP error/warning when parameters count or types are wrong or fail to list children of a node.

Attention

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Exemples

Exemple #1 Zookeeper::getChildren() example

Lists children of a node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$path = '/zookeeper';
$r = $zookeeper->getchildren($path);
if ($r)
var_dump($r);
else
echo 'ERR';
?>

L'exemple ci-dessus va afficher :

array(1) {
  [0]=>
  string(6) "config"
}

Voir aussi

  • Zookeeper::create() - Create a node synchronously
  • Zookeeper::delete() - Delete a node in zookeeper synchronously
  • ZookeeperException


Return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)

  • « Zookeeper::getChildren
  • Zookeeper::getConfig »
  • 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 Zookeeper::getClientId(): int

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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.

Attention

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

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
  • ZookeeperException


Get instance of ZookeeperConfig

  • « Zookeeper::getClientId
  • Zookeeper::getRecvTimeout »
  • PHP Manual
  • Zookeeper
  • Get instance of ZookeeperConfig

Zookeeper::getConfig

(PECL zookeeper >= 0.6.0, ZooKeeper >= 3.5.0)

Zookeeper::getConfig — Get instance of ZookeeperConfig

Description

public Zookeeper::getConfig(): ZookeeperConfig

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns instance of ZookeeperConfig.

Voir aussi

  • ZookeeperConfig


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::getConfig
  • 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 Zookeeper::getRecvTimeout(): int

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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.

Attention

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Voir aussi

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper
  • Zookeeper::connect() - Create a handle to used communicate with zookeeper
  • ZookeeperException


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 Zookeeper::getState(): int

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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.

Attention

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

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
  • ZookeeperException


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 Zookeeper::isRecoverable(): bool

The application must close the handle and try to reconnect.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns true/false on success, and false on failure.

Erreurs / Exceptions

This method emits PHP error/warning when operation fails.

Attention

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

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
  • ZookeeperException


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 Zookeeper::set(
string $path,
string $value,
int $version = -1,
array &$stat = null
): bool

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.

Attention

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

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
  • ZookeeperException


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 Zookeeper::setAcl(string $path, int $version, array $acl): bool

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.

Attention

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

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
  • ZookeeperException


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 Zookeeper::setDebugLevel(int $logLevel): bool

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.

Attention

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

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
  • ZookeeperException


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 Zookeeper::setDeterministicConnOrder(bool $yesOrNo): bool

If passed a true value, will make the client connect to quorum peers in the order as specified in the zookeeper_init() call. A false value causes zookeeper_init() to permute the peer endpoints which is good for more even client connection distribution among the quorum peers. ZooKeeper C Client uses false by default.

Liste de paramètres

yesOrNo

Disable/enable 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.

Attention

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Voir aussi

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper
  • Zookeeper::connect() - Create a handle to used communicate with zookeeper
  • ZookeeperException


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 Zookeeper::setLogStream(resource $stream): bool

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.

Attention

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Voir aussi

  • Zookeeper::setDebugLevel() - Sets the debugging level for the library
  • ZookeeperException


Set a watcher function

  • « Zookeeper::setLogStream
  • ZookeeperConfig »
  • PHP Manual
  • Zookeeper
  • Set a watcher function

Zookeeper::setWatcher

(PECL zookeeper >= 0.1.0)

Zookeeper::setWatcher — Set a watcher function

Description

public Zookeeper::setWatcher(callable $watcher_cb): bool

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.

Attention

Since version 0.3.0, this method emits ZookeeperException and it's derivatives.

Voir aussi

  • Zookeeper::exists() - Checks the existence of a node in zookeeper synchronously
  • Zookeeper::get() - Gets the data associated with a node synchronously
  • ZookeeperException


The ZookeeperConfig class

(PECL zookeeper >= 0.6.0, ZooKeeper >= 3.5.0)

Introduction

The ZooKeeper Config handling class.

Synopsis de la classe

class ZookeeperConfig {
/* Méthodes */
public add(string $members, int $version = -1, array &$stat = null): void
public get(callable $watcher_cb = null, array &$stat = null): string
public remove(string $id_list, int $version = -1, array &$stat = null): void
public set(string $members, int $version = -1, array &$stat = null): void
}

Sommaire

  • ZookeeperConfig::add — Add servers to the ensemble
  • ZookeeperConfig::get — Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously
  • ZookeeperConfig::remove — Remove servers from the ensemble
  • ZookeeperConfig::set — Change ZK cluster ensemble membership and roles of ensemble peers


Add servers to the ensemble

  • « ZookeeperConfig
  • ZookeeperConfig::get »
  • PHP Manual
  • ZookeeperConfig
  • Add servers to the ensemble

ZookeeperConfig::add

(PECL zookeeper >= 0.6.0, ZooKeeper >= 3.5.0)

ZookeeperConfig::add — Add servers to the ensemble

Description

public ZookeeperConfig::add(string $members, int $version = -1, array &$stat = null): void

Liste de paramètres

members

Comma separated list of servers to be added to the ensemble. Each has a configuration line for a server to be added (as would appear in a configuration file), only for maj. quorums.

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

Aucune valeur n'est retournée.

Erreurs / Exceptions

This method emits ZookeeperException and it's derivatives when parameters count or types are wrong or fail to save value to node.

Exemples

Exemple #1 ZookeeperConfig::add() example

Add members.

<?php
$client = new Zookeeper();
$client->connect('localhost:2181');
$client->addAuth('digest', 'timandes:timandes');
$zkConfig = $client->getConfig();
$zkConfig->set("server.1=localhost:2888:3888:participant;0.0.0.0:2181");
$zkConfig->add("server.2=localhost:2889:3889:participant;0.0.0.0:2182");
$r = $zkConfig->get();
if ($r)
echo $r;
else
echo 'ERR';
?>

L'exemple ci-dessus va afficher :

server.1=localhost:2888:3888:participant;0.0.0.0:2181
server.2=localhost:2889:3889:participant;0.0.0.0:2182
version=0xca01e881a2

Voir aussi

  • ZookeeperConfig::get() - Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously
  • ZookeeperConfig::set() - Change ZK cluster ensemble membership and roles of ensemble peers
  • ZookeeperConfig::remove() - Remove servers from the ensemble
  • ZookeeperException


Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously

  • « ZookeeperConfig::add
  • ZookeeperConfig::remove »
  • PHP Manual
  • ZookeeperConfig
  • Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously

ZookeeperConfig::get

(PECL zookeeper >= 0.6.0, ZooKeeper >= 3.5.0)

ZookeeperConfig::get — Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously

Description

public ZookeeperConfig::get(callable $watcher_cb = null, array &$stat = null): string

Liste de paramètres

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.

Valeurs de retour

Returns the configuration string on success, and false on failure.

Erreurs / Exceptions

This method emits ZookeeperException and it's derivatives when parameters count or types are wrong or fail to get configuration.

Exemples

Exemple #1 ZookeeperConfig::get() example

Get configuration.

<?php
$zk = new Zookeeper();
$zk->connect('localhost:2181');
$zk->addAuth('digest', 'timandes:timandes');
$zkConfig = $zk->getConfig();
$r = $zkConfig->get();
if ($r)
echo $r;
else
echo 'ERR';
?>

L'exemple ci-dessus va afficher :

server.1=localhost:2888:3888:participant;0.0.0.0:2181
version=0xca01e881a2

Voir aussi

  • ZookeeperConfig::set() - Change ZK cluster ensemble membership and roles of ensemble peers
  • ZookeeperConfig::add() - Add servers to the ensemble
  • ZookeeperConfig::remove() - Remove servers from the ensemble
  • ZookeeperException


Remove servers from the ensemble

  • « ZookeeperConfig::get
  • ZookeeperConfig::set »
  • PHP Manual
  • ZookeeperConfig
  • Remove servers from the ensemble

ZookeeperConfig::remove

(PECL zookeeper >= 0.6.0, ZooKeeper >= 3.5.0)

ZookeeperConfig::remove — Remove servers from the ensemble

Description

public ZookeeperConfig::remove(string $id_list, int $version = -1, array &$stat = null): void

Liste de paramètres

id_list

Comma separated list of server IDs to be removed from the ensemble. Each has an id of a server to be removed, only for maj. quorums.

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

Aucune valeur n'est retournée.

Erreurs / Exceptions

This method emits ZookeeperException and it's derivatives when parameters count or types are wrong or fail to save value to node.

Exemples

Exemple #1 ZookeeperConfig::remove() example

Remove members.

<?php
$client = new Zookeeper();
$client->connect('localhost:2181');
$client->addAuth('digest', 'timandes:timandes');
$zkConfig = $client->getConfig();
$zkConfig->set("server.1=localhost:2888:3888:participant;0.0.0.0:2181,server.2=localhost:2889:3889:participant;0.0.0.0:2182");
$zkConfig->remove("2");
echo $zkConfig->get();
if ($r)
echo $r;
else
echo 'ERR';
?>

L'exemple ci-dessus va afficher :

server.1=localhost:2888:3888:participant;0.0.0.0:2181
version=0xca01e881a2

Voir aussi

  • ZookeeperConfig::get() - Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously
  • ZookeeperConfig::add() - Add servers to the ensemble
  • ZookeeperConfig::set() - Change ZK cluster ensemble membership and roles of ensemble peers
  • ZookeeperException


Change ZK cluster ensemble membership and roles of ensemble peers

  • « ZookeeperConfig::remove
  • ZookeeperException »
  • PHP Manual
  • ZookeeperConfig
  • Change ZK cluster ensemble membership and roles of ensemble peers

ZookeeperConfig::set

(PECL zookeeper >= 0.6.0, ZooKeeper >= 3.5.0)

ZookeeperConfig::set — Change ZK cluster ensemble membership and roles of ensemble peers

Description

public ZookeeperConfig::set(string $members, int $version = -1, array &$stat = null): void

Liste de paramètres

members

Comma separated list of new membership (e.g., contents of a membership configuration file) - for use only with a non-incremental reconfiguration.

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

Aucune valeur n'est retournée.

Erreurs / Exceptions

This method emits ZookeeperException and it's derivatives when parameters count or types are wrong or fail to save value to node.

Exemples

Exemple #1 ZookeeperConfig::set() example

Reconfig.

<?php
$client = new Zookeeper();
$client->connect('localhost:2181');
$client->addAuth('digest', 'timandes:timandes');
$zkConfig = $client->getConfig();
$zkConfig->set("server.1=localhost:2888:3888:participant;0.0.0.0:2181");
?>

Voir aussi

  • ZookeeperConfig::get() - Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously
  • ZookeeperConfig::add() - Add servers to the ensemble
  • ZookeeperConfig::remove() - Remove servers from the ensemble
  • ZookeeperException


The ZookeeperException class

(PECL zookeeper >= 0.3.0)

Introduction

The ZooKeeper exception handling class.

Synopsis de la classe

class ZookeeperException extends Exception {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The ZookeeperAuthenticationException class

(PECL zookeeper >= 0.3.0)

Introduction

The ZooKeeper authentication exception handling class.

Synopsis de la classe

class ZookeeperAuthenticationException extends ZookeeperException {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The ZookeeperConnectionException class

(PECL zookeeper >= 0.3.0)

Introduction

The ZooKeeper connection exception handling class.

Synopsis de la classe

class ZookeeperConnectionException extends ZookeeperException {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The ZookeeperMarshallingException class

(PECL zookeeper >= 0.3.0)

Introduction

The ZooKeeper exception (while marshalling or unmarshalling data) handling class.

Synopsis de la classe

class ZookeeperMarshallingException extends ZookeeperException {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The ZookeeperNoNodeException class

(PECL zookeeper >= 0.3.0)

Introduction

The ZooKeeper exception (when node does not exist) handling class.

Synopsis de la classe

class ZookeeperNoNodeException extends ZookeeperException {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The ZookeeperOperationTimeoutException class

(PECL zookeeper >= 0.3.0)

Introduction

The ZooKeeper operation timeout exception handling class.

Synopsis de la classe

class ZookeeperOperationTimeoutException extends ZookeeperException {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The ZookeeperSessionException class

(PECL zookeeper >= 0.3.0)

Introduction

The ZooKeeper session exception handling class.

Synopsis de la classe

class ZookeeperSessionException extends ZookeeperException {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Extensions spécifiques aux moteurs de recherche

  • 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


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 sérialisation 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 — Sérialisation 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 sérialisé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 sérialisation 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 sérialisation 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

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 : » https://pecl.php.net/package/solr.

Pour de l'aide et du support, visitez le groupe google de l'extension. » Extension Apache Solr PHP

Les binaires Windows (les fichiers DLL) pour cette extension PECL sont disponibles sur le site web PECL.

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 (int)
SOLR_MINOR_VERSION (int)
SOLR_PATCH_VERSION (int)
SOLR_EXTENSION_VERSION (string)


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

solr_get_version(): string

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;

?>

Résultat de l'exemple ci-dessus est 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());

?>

Résultat de l'exemple ci-dessus est 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());

?>

Résultat de l'exemple ci-dessus est 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);

?>

Résultat de l'exemple ci-dessus est 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);

?>

Résultat de l'exemple ci-dessus est 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());

?>

Résultat de l'exemple ci-dessus est 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());

?>

Résultat de l'exemple ci-dessus est 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());

?>

Résultat de l'exemple ci-dessus est 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);

?>

Résultat de l'exemple ci-dessus est 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);

?>

Résultat de l'exemple ci-dessus est 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);

?>

Résultat de l'exemple ci-dessus est 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);

?>

Résultat de l'exemple ci-dessus est 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);
?>

Résultat de l'exemple ci-dessus est 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
                        )

                )

        )

)

Exemple #14 Exemple "Solr Real Time Get (RTG)" avec SolrClient::getById()

<?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());

?>

Résultat de l'exemple ci-dessus est 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
        )

)


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 class SolrUtils {
/* Méthodes */
public static digestXmlResponse(string $xmlresponse, int $parse_mode = 0): SolrObject
public static escapeQueryChars(string $str): string|false
public static getSolrVersion(): string
public static queryPhrase(string $str): string
}

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 SolrUtils::digestXmlResponse(string $xmlresponse, int $parse_mode = 0): SolrObject

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 SolrUtils::escapeQueryChars(string $str): string|false

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 SolrUtils::getSolrVersion(): string

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 SolrUtils::queryPhrase(string $str): string

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 class SolrInputDocument {
/* Constantes */
const int SORT_DEFAULT = 1;
const int SORT_ASC = 1;
const int SORT_DESC = 2;
const int SORT_FIELD_NAME = 1;
const int SORT_FIELD_VALUE_COUNT = 2;
const int SORT_FIELD_BOOST_VALUE = 4;
/* Méthodes */
public __construct()
public addChildDocument(SolrInputDocument $child): void
public addChildDocuments(array &$docs): void
public addField(string $fieldName, string $fieldValue, float $fieldBoostValue = 0.0): bool
public clear(): bool
public __clone(): void
public deleteField(string $fieldName): bool
public fieldExists(string $fieldName): bool
public getBoost(): float
public getChildDocuments(): array
public getChildDocumentsCount(): int
public getField(string $fieldName): SolrDocumentField
public getFieldBoost(string $fieldName): float
public getFieldCount(): int|false
public getFieldNames(): array
public hasChildDocuments(): bool
public merge(SolrInputDocument $sourceDoc, bool $overwrite = true): bool
public reset(): bool
public setBoost(float $documentBoostValue): bool
public setFieldBoost(string $fieldName, float $fieldBoostValue): bool
public sort(int $sortOrderBy, int $sortDirection = SolrInputDocument::SORT_ASC): bool
public toArray(): array
public __destruct()
}

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 SolrInputDocument::addChildDocument(SolrInputDocument $child): void

Adds a child document to construct a document block with nested documents.

Liste de paramètres

child

A SolrInputDocument object.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Throws SolrIllegalArgumentException on failure.

Throws SolrException on internal failure.

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());

Résultat de l'exemple ci-dessus est 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 SolrInputDocument::addChildDocuments(array &$docs): void

Adds an array of child documents to the current input document.

Liste de paramètres

docs

An array of SolrInputDocument objects.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Throws SolrIllegalArgumentException on failure.

Throws SolrException on internal failure.

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());

Résultat de l'exemple ci-dessus est 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 SolrInputDocument::addField(string $fieldName, string $fieldValue, float $fieldBoostValue = 0.0): bool

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 SolrInputDocument::clear(): bool

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 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()

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 SolrInputDocument::deleteField(string $fieldName): bool

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 SolrInputDocument::__destruct()

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 SolrInputDocument::fieldExists(string $fieldName): bool

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 SolrInputDocument::getBoost(): float

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 SolrInputDocument::getChildDocuments(): array

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 SolrInputDocument::getChildDocumentsCount(): int

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 SolrInputDocument::getField(string $fieldName): SolrDocumentField

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 SolrInputDocument::getFieldBoost(string $fieldName): float

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 SolrInputDocument::getFieldCount(): int|false

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 SolrInputDocument::getFieldNames(): array

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 SolrInputDocument::hasChildDocuments(): bool

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 SolrInputDocument::merge(SolrInputDocument $sourceDoc, bool $overwrite = true): bool

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 SolrInputDocument::reset(): bool

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 SolrInputDocument::setBoost(float $documentBoostValue): bool

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 SolrInputDocument::setFieldBoost(string $fieldName, float $fieldBoostValue): bool

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.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.


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 SolrInputDocument::sort(int $sortOrderBy, int $sortDirection = SolrInputDocument::SORT_ASC): bool

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 SolrInputDocument::toArray(): array

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 class SolrDocument implements ArrayAccess, Iterator, Serializable {
/* Constantes */
const int SORT_DEFAULT = 1;
const int SORT_ASC = 1;
const int SORT_DESC = 2;
const int SORT_FIELD_NAME = 1;
const int SORT_FIELD_VALUE_COUNT = 2;
const int SORT_FIELD_BOOST_VALUE = 4;
/* Méthodes */
public __construct()
public addField(string $fieldName, string $fieldValue): bool
public clear(): bool
public __clone(): void
public current(): SolrDocumentField
public deleteField(string $fieldName): bool
public fieldExists(string $fieldName): bool
public __get(string $fieldName): SolrDocumentField
public getChildDocuments(): array
public getChildDocumentsCount(): int
public getField(string $fieldName): SolrDocumentField
public getFieldCount(): int
public getFieldNames(): array
public getInputDocument(): SolrInputDocument
public hasChildDocuments(): bool
public __isset(string $fieldName): bool
public key(): string
public merge(SolrDocument $sourceDoc, bool $overwrite = true): bool
public next(): void
public offsetExists(string $fieldName): bool
public offsetGet(string $fieldName): SolrDocumentField
public offsetSet(string $fieldName, string $fieldValue): void
public offsetUnset(string $fieldName): void
public reset(): bool
public rewind(): void
public serialize(): string
public __set(string $fieldName, string $fieldValue): bool
public sort(int $sortOrderBy, int $sortDirection = SolrDocument::SORT_ASC): bool
public toArray(): array
public unserialize(string $serialized): void
public __unset(string $fieldName): bool
public valid(): bool
public __destruct()
}

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 sérialisation 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 — Sérialisation 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 SolrDocument::addField(string $fieldName, string $fieldValue): bool

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 SolrDocument::clear(): bool

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 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()

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 SolrDocument::current(): SolrDocumentField

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 SolrDocument::deleteField(string $fieldName): bool

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 SolrDocument::__destruct()

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 SolrDocument::fieldExists(string $fieldName): bool

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 SolrDocument::__get(string $fieldName): SolrDocumentField

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 SolrDocument::getChildDocuments(): array

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 SolrDocument::getChildDocumentsCount(): int

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 SolrDocument::getField(string $fieldName): SolrDocumentField

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 SolrDocument::getFieldCount(): int

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 SolrDocument::getFieldNames(): array

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 SolrDocument::getInputDocument(): SolrInputDocument

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 SolrDocument::hasChildDocuments(): bool

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 SolrDocument::__isset(string $fieldName): bool

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 SolrDocument::key(): string

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 SolrDocument::merge(SolrDocument $sourceDoc, bool $overwrite = true): bool

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 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 SolrDocument::offsetExists(string $fieldName): bool

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 SolrDocument::offsetGet(string $fieldName): SolrDocumentField

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 SolrDocument::offsetSet(string $fieldName, string $fieldValue): void

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 SolrDocument::offsetUnset(string $fieldName): void

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 SolrDocument::reset(): bool

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 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 sérialisation personnalisée

  • « SolrDocument::rewind
  • SolrDocument::__set »
  • PHP Manual
  • SolrDocument
  • Utilisé pour une sérialisation personnalisée

SolrDocument::serialize

(PECL solr >= 0.9.2)

SolrDocument::serialize — Utilisé pour une sérialisation personnalisée

Description

public SolrDocument::serialize(): string

Utilisé pour une sérialisation 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 sérialisé.


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 SolrDocument::__set(string $fieldName, string $fieldValue): bool

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 SolrDocument::sort(int $sortOrderBy, int $sortDirection = SolrDocument::SORT_ASC): bool

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 SolrDocument::toArray(): array

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());

?>

Résultat de l'exemple ci-dessus est 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
                        )

                )

        )

)


Sérialisation personnalisée d'objets SolrDocument

  • « SolrDocument::toArray
  • SolrDocument::__unset »
  • PHP Manual
  • SolrDocument
  • Sérialisation personnalisée d'objets SolrDocument

SolrDocument::unserialize

(PECL solr >= 0.9.2)

SolrDocument::unserialize — Sérialisation personnalisée d'objets SolrDocument

Description

public SolrDocument::unserialize(string $serialized): void

Sérialisation 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 SolrDocument::__unset(string $fieldName): bool

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 SolrDocument::valid(): bool

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 class SolrDocumentField {
/* Propriétés */
public readonly string $name;
public readonly float $boost;
public readonly array $values;
/* Méthodes */
public __construct()
public __destruct()
}

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()

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 SolrDocumentField::__destruct()

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 class SolrObject implements ArrayAccess {
/* Méthodes */
public __construct()
public getPropertyNames(): array
public offsetExists(string $property_name): bool
public offsetGet(string $property_name): mixed
public offsetSet(string $property_name, string $property_value): void
public offsetUnset(string $property_name): void
public __destruct()
}

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()

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
/* ... */
?>

Résultat de l'exemple ci-dessus est similaire à :

...


Destructeur

  • « SolrObject::__construct
  • SolrObject::getPropertyNames »
  • PHP Manual
  • SolrObject
  • Destructeur

SolrObject::__destruct

(PECL solr >= 0.9.2)

SolrObject::__destruct — Destructeur

Description

public SolrObject::__destruct()

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 SolrObject::getPropertyNames(): array

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 SolrObject::offsetExists(string $property_name): bool

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 SolrObject::offsetGet(string $property_name): mixed

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 SolrObject::offsetSet(string $property_name, string $property_value): void

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 SolrObject::offsetUnset(string $property_name): void

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
/* ... */
?>

Résultat de l'exemple ci-dessus est similaire à :

...


La classe SolrClient

(PECL solr >= 0.9.2)

Introduction

Utilisée pour envoyer des requêtes au serveur Solr. Actuellement, le clonage et la sérialisation des instances SolrClient ne sont pas supportés.

Synopsis de la classe

final class SolrClient {
/* Constantes */
const int SEARCH_SERVLET_TYPE = 1;
const int UPDATE_SERVLET_TYPE = 2;
const int THREADS_SERVLET_TYPE = 4;
const int PING_SERVLET_TYPE = 8;
const int TERMS_SERVLET_TYPE = 16;
const int 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 __construct(array $clientOptions)
public addDocument(SolrInputDocument $doc, bool $overwrite = true, int $commitWithin = 0): SolrUpdateResponse
public addDocuments(array $docs, bool $overwrite = true, int $commitWithin = 0): void
public commit(bool $softCommit = false, bool $waitSearcher = true, bool $expungeDeletes = false): SolrUpdateResponse
public deleteById(string $id): SolrUpdateResponse
public deleteByIds(array $ids): SolrUpdateResponse
public deleteByQueries(array $queries): SolrUpdateResponse
public deleteByQuery(string $query): SolrUpdateResponse
public getById(string $id): SolrQueryResponse
public getByIds(array $ids): SolrQueryResponse
public getDebug(): string
public getOptions(): array
public optimize(int $maxSegments = 1, bool $softCommit = true, bool $waitSearcher = true): SolrUpdateResponse
public ping(): SolrPingResponse
public query(SolrParams $query): SolrQueryResponse
public request(string $raw_request): SolrUpdateResponse
public rollback(): SolrUpdateResponse
public setResponseWriter(string $responseWriter): void
public setServlet(int $type, string $value): bool
public system(): void
public threads(): void
public __destruct()
}

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 SolrClient::addDocument(SolrInputDocument $doc, bool $overwrite = true, int $commitWithin = 0): SolrUpdateResponse

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 fonctionnalité, 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());

?>

Résultat de l'exemple ci-dessus est 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());

?>

Résultat de l'exemple ci-dessus est 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 SolrClient::addDocuments(array $docs, bool $overwrite = true, int $commitWithin = 0): void

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 fonctionnalité, 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());

?>

Résultat de l'exemple ci-dessus est 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 SolrClient::commit(bool $softCommit = false, bool $waitSearcher = true, bool $expungeDeletes = false): SolrUpdateResponse

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
PECL solr 1.1.0, 2.0.0 | Suppression de l'argument $maxSegments
PECL solr 2.0.0b | Modification de l'API : SolrClient::commit ([ int $maxSegments = 0 [, bool $softCommit = false [, bool $waitSearcher = true[, bool $expungeDeletes = false ]]] )
PECL solr 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);

?>

Résultat de l'exemple ci-dessus est 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 SolrClient::deleteById(string $id): SolrUpdateResponse

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 SolrClient::deleteByIds(array $ids): SolrUpdateResponse

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 SolrClient::deleteByQueries(array $queries): SolrUpdateResponse

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 SolrClient::deleteByQuery(string $query): SolrUpdateResponse

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 SolrClient::__destruct()

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 SolrClient::getById(string $id): SolrQueryResponse

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());

?>

Résultat de l'exemple ci-dessus est 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 SolrClient::getByIds(array $ids): SolrQueryResponse

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());

?>

Résultat de l'exemple ci-dessus est 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 SolrClient::getDebug(): string

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 SolrClient::getOptions(): array

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 SolrClient::optimize(int $maxSegments = 1, bool $softCommit = true, bool $waitSearcher = true): SolrUpdateResponse

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 SolrClient::ping(): SolrPingResponse

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();

?>

Résultat de l'exemple ci-dessus est 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 SolrClient::query(SolrParams $query): SolrQueryResponse

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);

?>

Résultat de l'exemple ci-dessus est 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 SolrClient::request(string $raw_request): SolrUpdateResponse

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);
?>

Résultat de l'exemple ci-dessus est 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 SolrClient::rollback(): SolrUpdateResponse

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 SolrClient::setResponseWriter(string $responseWriter): void

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 SolrClient::setServlet(int $type, string $value): bool

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 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 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 class SolrResponse {
/* Constantes */
const int PARSE_SOLR_OBJ = 0;
const int PARSE_SOLR_DOC = 1;
/* Propriétés */
protected int $http_status;
protected int $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 getDigestedResponse(): string
public getHttpStatus(): int
public getHttpStatusMessage(): string
public getRawRequest(): string
public getRawRequestHeaders(): string
public getRawResponse(): string
public getRawResponseHeaders(): string
public getRequestUrl(): string
public getResponse(): SolrObject
public setParseMode(int $parser_mode = 0): bool
public success(): bool
}

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 sérialisé 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 sérialisé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 sérialisées

  • « SolrResponse
  • SolrResponse::getHttpStatus »
  • PHP Manual
  • SolrResponse
  • Récupère la réponse XML sous la forme de données PHP sérialisées

SolrResponse::getDigestedResponse

(PECL solr >= 0.9.2)

SolrResponse::getDigestedResponse — Récupère la réponse XML sous la forme de données PHP sérialisées

Description

public SolrResponse::getDigestedResponse(): string

Récupère la réponse XML sous la forme de données PHP sérialisé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 sérialisé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 SolrResponse::getHttpStatus(): int

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 SolrResponse::getHttpStatusMessage(): string

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 SolrResponse::getRawRequest(): string

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 SolrResponse::getRawRequestHeaders(): string

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 SolrResponse::getRawResponse(): string

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 SolrResponse::getRawResponseHeaders(): string

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 SolrResponse::getRequestUrl(): string

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 SolrResponse::getResponse(): SolrObject

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 SolrResponse::setParseMode(int $parser_mode = 0): bool

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 SolrResponse::success(): bool

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 class SolrQueryResponse extends SolrResponse {
/* Constantes */
const int PARSE_SOLR_OBJ = 0;
const int PARSE_SOLR_DOC = 1;
/* Propriétés héritées */
const int SolrResponse::PARSE_SOLR_OBJ = 0;
const int SolrResponse::PARSE_SOLR_DOC = 1;
protected int $http_status;
protected int $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()
public __destruct()
/* Méthodes héritées */
public SolrResponse::getDigestedResponse(): string
public SolrResponse::getHttpStatus(): int
public SolrResponse::getHttpStatusMessage(): string
public SolrResponse::getRawRequest(): string
public SolrResponse::getRawRequestHeaders(): string
public SolrResponse::getRawResponse(): string
public SolrResponse::getRawResponseHeaders(): string
public SolrResponse::getRequestUrl(): string
public SolrResponse::getResponse(): SolrObject
public SolrResponse::setParseMode(int $parser_mode = 0): bool
public SolrResponse::success(): bool
}

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()

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 SolrQueryResponse::__destruct()

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 class SolrUpdateResponse extends SolrResponse {
/* Constantes */
const int PARSE_SOLR_OBJ = 0;
const int PARSE_SOLR_DOC = 1;
/* Propriétés héritées */
const int SolrResponse::PARSE_SOLR_OBJ = 0;
const int SolrResponse::PARSE_SOLR_DOC = 1;
protected int $http_status;
protected int $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()
public __destruct()
/* Méthodes héritées */
public SolrResponse::getDigestedResponse(): string
public SolrResponse::getHttpStatus(): int
public SolrResponse::getHttpStatusMessage(): string
public SolrResponse::getRawRequest(): string
public SolrResponse::getRawRequestHeaders(): string
public SolrResponse::getRawResponse(): string
public SolrResponse::getRawResponseHeaders(): string
public SolrResponse::getRequestUrl(): string
public SolrResponse::getResponse(): SolrObject
public SolrResponse::setParseMode(int $parser_mode = 0): bool
public SolrResponse::success(): bool
}

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()

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 SolrUpdateResponse::__destruct()

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 class SolrPingResponse extends SolrResponse {
/* Constantes */
const int PARSE_SOLR_OBJ = 0;
const int PARSE_SOLR_DOC = 1;
/* Propriétés */
/* Méthodes */
public __construct()
public getResponse(): string
public __destruct()
/* Méthodes héritées */
public SolrResponse::getDigestedResponse(): string
public SolrResponse::getHttpStatus(): int
public SolrResponse::getHttpStatusMessage(): string
public SolrResponse::getRawRequest(): string
public SolrResponse::getRawRequestHeaders(): string
public SolrResponse::getRawResponse(): string
public SolrResponse::getRawResponseHeaders(): string
public SolrResponse::getRequestUrl(): string
public SolrResponse::getResponse(): SolrObject
public SolrResponse::setParseMode(int $parser_mode = 0): bool
public SolrResponse::success(): bool
}

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 sérialisé 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()

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 SolrPingResponse::__destruct()

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 SolrPingResponse::getResponse(): string

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 class SolrGenericResponse extends SolrResponse {
/* Constantes */
const int PARSE_SOLR_OBJ = 0;
const int PARSE_SOLR_DOC = 1;
/* Propriétés héritées */
const int SolrResponse::PARSE_SOLR_OBJ = 0;
const int SolrResponse::PARSE_SOLR_DOC = 1;
protected int $http_status;
protected int $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()
public __destruct()
/* Méthodes héritées */
public SolrResponse::getDigestedResponse(): string
public SolrResponse::getHttpStatus(): int
public SolrResponse::getHttpStatusMessage(): string
public SolrResponse::getRawRequest(): string
public SolrResponse::getRawRequestHeaders(): string
public SolrResponse::getRawResponse(): string
public SolrResponse::getRawResponseHeaders(): string
public SolrResponse::getRequestUrl(): string
public SolrResponse::getResponse(): SolrObject
public SolrResponse::setParseMode(int $parser_mode = 0): bool
public SolrResponse::success(): bool
}

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()

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 SolrGenericResponse::__destruct()

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 class SolrParams implements Serializable {
/* Méthodes */
final public add(string $name, string $value): SolrParams
public addParam(string $name, string $value): SolrParams
final public get(string $param_name): mixed
final public getParam(string $param_name = ?): mixed
final public getParams(): array
final public getPreparedParams(): array
final public serialize(): string
final public set(string $name, string $value): void
public setParam(string $name, string $value): SolrParams
final public toString(bool $url_encode = false): string
final public unserialize(string $serialized): void
}

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 sérialisation 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 sérialisation 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::add(string $name, string $value): SolrParams

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::addParam(string $name, string $value): SolrParams

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 SolrParams::get(string $param_name): mixed

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 SolrParams::getParam(string $param_name = ?): mixed

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 SolrParams::getParams(): array

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 SolrParams::getPreparedParams(): array

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 sérialisation personnalisée

  • « SolrParams::getPreparedParams
  • SolrParams::set »
  • PHP Manual
  • SolrParams
  • Utilisé pour une sérialisation personnalisée

SolrParams::serialize

(PECL solr >= 0.9.2)

SolrParams::serialize — Utilisé pour une sérialisation personnalisée

Description

final public SolrParams::serialize(): string

Utilisé pour une sérialisation personnalisée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Utilisé pour une sérialisation 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 SolrParams::set(string $name, string $value): void

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::setParam(string $name, string $value): SolrParams

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);

?>

Résultat de l'exemple ci-dessus est 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 SolrParams::toString(bool $url_encode = false): string

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 sérialisation personnalisée

  • « SolrParams::toString
  • SolrModifiableParams »
  • PHP Manual
  • SolrParams
  • Utilisé pour la sérialisation personnalisée

SolrParams::unserialize

(PECL solr >= 0.9.2)

SolrParams::unserialize — Utilisé pour la sérialisation personnalisée

Description

final public SolrParams::unserialize(string $serialized): void

Utilisé pour la sérialisation personnalisée.

Liste de paramètres

serialized

La représentation sérialisé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

class SolrModifiableParams extends SolrParams implements Serializable {
/* Méthodes */
public __construct()
public __destruct()
/* Méthodes héritées */
final public SolrParams::add(string $name, string $value): SolrParams
public SolrParams::addParam(string $name, string $value): SolrParams
final public SolrParams::get(string $param_name): mixed
final public SolrParams::getParam(string $param_name = ?): mixed
final public SolrParams::getParams(): array
final public SolrParams::getPreparedParams(): array
final public SolrParams::serialize(): string
final public SolrParams::set(string $name, string $value): void
public SolrParams::setParam(string $name, string $value): SolrParams
final public SolrParams::toString(bool $url_encode = false): string
final public SolrParams::unserialize(string $serialized): void
}

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()

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 SolrModifiableParams::__destruct()

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

class SolrQuery extends SolrModifiableParams implements Serializable {
/* Constantes */
const int ORDER_ASC = 0;
const int ORDER_DESC = 1;
const int FACET_SORT_INDEX = 0;
const int FACET_SORT_COUNT = 1;
const int TERMS_SORT_INDEX = 0;
const int TERMS_SORT_COUNT = 1;
/* Propriétés */
/* Méthodes */
public __construct(string $q = ?)
public addExpandFilterQuery(string $fq): SolrQuery
public addExpandSortField(string $field, string $order = ?): SolrQuery
public addFacetDateField(string $dateField): SolrQuery
public addFacetDateOther(string $value, string $field_override = ?): SolrQuery
public addFacetField(string $field): SolrQuery
public addFacetQuery(string $facetQuery): SolrQuery
public addField(string $field): SolrQuery
public addFilterQuery(string $fq): SolrQuery
public addGroupField(string $value): SolrQuery
public addGroupFunction(string $value): SolrQuery
public addGroupQuery(string $value): SolrQuery
public addGroupSortField(string $field, int $order = ?): SolrQuery
public addHighlightField(string $field): SolrQuery
public addMltField(string $field): SolrQuery
public addMltQueryField(string $field, float $boost): SolrQuery
public addSortField(string $field, int $order = SolrQuery::ORDER_DESC): SolrQuery
public addStatsFacet(string $field): SolrQuery
public addStatsField(string $field): SolrQuery
public collapse(SolrCollapseFunction $collapseFunction): SolrQuery
public getExpand(): bool
public getExpandFilterQueries(): array
public getExpandQuery(): array
public getExpandRows(): int
public getExpandSortFields(): array
public getFacet(): bool
public getFacetDateEnd(string $field_override = ?): string
public getFacetDateFields(): array
public getFacetDateGap(string $field_override = ?): string
public getFacetDateHardEnd(string $field_override = ?): string
public getFacetDateOther(string $field_override = ?): array
public getFacetDateStart(string $field_override = ?): string
public getFacetFields(): array
public getFacetLimit(string $field_override = ?): int
public getFacetMethod(string $field_override = ?): string
public getFacetMinCount(string $field_override = ?): int
public getFacetMissing(string $field_override = ?): bool
public getFacetOffset(string $field_override = ?): int
public getFacetPrefix(string $field_override = ?): string
public getFacetQueries(): array
public getFacetSort(string $field_override = ?): int
public getFields(): array
public getFilterQueries(): array
public getGroup(): bool
public getGroupCachePercent(): int
public getGroupFacet(): bool
public getGroupFields(): array
public getGroupFormat(): string
public getGroupFunctions(): array
public getGroupLimit(): int
public getGroupMain(): bool
public getGroupNGroups(): bool
public getGroupOffset(): int
public getGroupQueries(): array
public getGroupSortFields(): array
public getGroupTruncate(): bool
public getHighlight(): bool
public getHighlightAlternateField(string $field_override = ?): string
public getHighlightFields(): array
public getHighlightFormatter(string $field_override = ?): string
public getHighlightFragmenter(string $field_override = ?): string
public getHighlightFragsize(string $field_override = ?): int
public getHighlightHighlightMultiTerm(): bool
public getHighlightMaxAlternateFieldLength(string $field_override = ?): int
public getHighlightMaxAnalyzedChars(): int
public getHighlightMergeContiguous(string $field_override = ?): bool
public getHighlightRegexMaxAnalyzedChars(): int
public getHighlightRegexPattern(): string
public getHighlightRegexSlop(): float
public getHighlightRequireFieldMatch(): bool
public getHighlightSimplePost(string $field_override = ?): string
public getHighlightSimplePre(string $field_override = ?): string
public getHighlightSnippets(string $field_override = ?): int
public getHighlightUsePhraseHighlighter(): bool
public getMlt(): bool
public getMltBoost(): bool
public getMltCount(): int
public getMltFields(): array
public getMltMaxNumQueryTerms(): int
public getMltMaxNumTokens(): int
public getMltMaxWordLength(): int
public getMltMinDocFrequency(): int
public getMltMinTermFrequency(): int
public getMltMinWordLength(): int
public getMltQueryFields(): array
public getQuery(): string
public getRows(): int
public getSortFields(): array
public getStart(): int
public getStats(): bool
public getStatsFacets(): array
public getStatsFields(): array
public getTerms(): bool
public getTermsField(): string
public getTermsIncludeLowerBound(): bool
public getTermsIncludeUpperBound(): bool
public getTermsLimit(): int
public getTermsLowerBound(): string
public getTermsMaxCount(): int
public getTermsMinCount(): int
public getTermsPrefix(): string
public getTermsReturnRaw(): bool
public getTermsSort(): int
public getTermsUpperBound(): string
public getTimeAllowed(): int
public removeExpandFilterQuery(string $fq): SolrQuery
public removeExpandSortField(string $field): SolrQuery
public removeFacetDateField(string $field): SolrQuery
public removeFacetDateOther(string $value, string $field_override = ?): SolrQuery
public removeFacetField(string $field): SolrQuery
public removeFacetQuery(string $value): SolrQuery
public removeField(string $field): SolrQuery
public removeFilterQuery(string $fq): SolrQuery
public removeHighlightField(string $field): SolrQuery
public removeMltField(string $field): SolrQuery
public removeMltQueryField(string $queryField): SolrQuery
public removeSortField(string $field): SolrQuery
public removeStatsFacet(string $value): SolrQuery
public removeStatsField(string $field): SolrQuery
public setEchoHandler(bool $flag): SolrQuery
public setEchoParams(string $type): SolrQuery
public setExpand(bool $value): SolrQuery
public setExpandQuery(string $q): SolrQuery
public setExpandRows(int $value): SolrQuery
public setExplainOther(string $query): SolrQuery
public setFacet(bool $flag): SolrQuery
public setFacetDateEnd(string $value, string $field_override = ?): SolrQuery
public setFacetDateGap(string $value, string $field_override = ?): SolrQuery
public setFacetDateHardEnd(bool $value, string $field_override = ?): SolrQuery
public setFacetDateStart(string $value, string $field_override = ?): SolrQuery
public setFacetEnumCacheMinDefaultFrequency(int $frequency, string $field_override = ?): SolrQuery
public setFacetLimit(int $limit, string $field_override = ?): SolrQuery
public setFacetMethod(string $method, string $field_override = ?): SolrQuery
public setFacetMinCount(int $mincount, string $field_override = ?): SolrQuery
public setFacetMissing(bool $flag, string $field_override = ?): SolrQuery
public setFacetOffset(int $offset, string $field_override = ?): SolrQuery
public setFacetPrefix(string $prefix, string $field_override = ?): SolrQuery
public setFacetSort(int $facetSort, string $field_override = ?): SolrQuery
public setGroup(bool $value): SolrQuery
public setGroupCachePercent(int $percent): SolrQuery
public setGroupFacet(bool $value): SolrQuery
public setGroupFormat(string $value): SolrQuery
public setGroupLimit(int $value): SolrQuery
public setGroupMain(string $value): SolrQuery
public setGroupNGroups(bool $value): SolrQuery
public setGroupOffset(int $value): SolrQuery
public setGroupTruncate(bool $value): SolrQuery
public setHighlight(bool $flag): SolrQuery
public setHighlightAlternateField(string $field, string $field_override = ?): SolrQuery
public setHighlightFormatter(string $formatter, string $field_override = ?): SolrQuery
public setHighlightFragmenter(string $fragmenter, string $field_override = ?): SolrQuery
public setHighlightFragsize(int $size, string $field_override = ?): SolrQuery
public setHighlightHighlightMultiTerm(bool $flag): SolrQuery
public setHighlightMaxAlternateFieldLength(int $fieldLength, string $field_override = ?): SolrQuery
public setHighlightMaxAnalyzedChars(int $value): SolrQuery
public setHighlightMergeContiguous(bool $flag, string $field_override = ?): SolrQuery
public setHighlightRegexMaxAnalyzedChars(int $maxAnalyzedChars): SolrQuery
public setHighlightRegexPattern(string $value): SolrQuery
public setHighlightRegexSlop(float $factor): SolrQuery
public setHighlightRequireFieldMatch(bool $flag): SolrQuery
public setHighlightSimplePost(string $simplePost, string $field_override = ?): SolrQuery
public setHighlightSimplePre(string $simplePre, string $field_override = ?): SolrQuery
public setHighlightSnippets(int $value, string $field_override = ?): SolrQuery
public setHighlightUsePhraseHighlighter(bool $flag): SolrQuery
public setMlt(bool $flag): SolrQuery
public setMltBoost(bool $flag): SolrQuery
public setMltCount(int $count): SolrQuery
public setMltMaxNumQueryTerms(int $value): SolrQuery
public setMltMaxNumTokens(int $value): SolrQuery
public setMltMaxWordLength(int $maxWordLength): SolrQuery
public setMltMinDocFrequency(int $minDocFrequency): SolrQuery
public setMltMinTermFrequency(int $minTermFrequency): SolrQuery
public setMltMinWordLength(int $minWordLength): SolrQuery
public setOmitHeader(bool $flag): SolrQuery
public setQuery(string $query): SolrQuery
public setRows(int $rows): SolrQuery
public setShowDebugInfo(bool $flag): SolrQuery
public setStart(int $start): SolrQuery
public setStats(bool $flag): SolrQuery
public setTerms(bool $flag): SolrQuery
public setTermsField(string $fieldname): SolrQuery
public setTermsIncludeLowerBound(bool $flag): SolrQuery
public setTermsIncludeUpperBound(bool $flag): SolrQuery
public setTermsLimit(int $limit): SolrQuery
public setTermsLowerBound(string $lowerBound): SolrQuery
public setTermsMaxCount(int $frequency): SolrQuery
public setTermsMinCount(int $frequency): SolrQuery
public setTermsPrefix(string $prefix): SolrQuery
public setTermsReturnRaw(bool $flag): SolrQuery
public setTermsSort(int $sortType): SolrQuery
public setTermsUpperBound(string $upperBound): SolrQuery
public setTimeAllowed(int $timeAllowed): SolrQuery
public __destruct()
/* Méthodes héritées */
public SolrModifiableParams::__construct()
public SolrModifiableParams::__destruct()
}

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::addExpandFilterQuery(string $fq): SolrQuery

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::addExpandSortField(string $field, string $order = ?): SolrQuery

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::addFacetDateField(string $dateField): SolrQuery

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::addFacetDateOther(string $value, string $field_override = ?): SolrQuery

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::addFacetField(string $field): SolrQuery

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']);

?>

Résultat de l'exemple ci-dessus est 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::addFacetQuery(string $facetQuery): SolrQuery

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);

?>

Résultat de l'exemple ci-dessus est 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::addField(string $field): SolrQuery

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::addFilterQuery(string $fq): SolrQuery

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->addFilterQuery('color:blue,green');

$query_response = $client->query($query);

$response = $query_response->getResponse();

print_r($response['facet_counts']['facet_fields']);

?>

Résultat de l'exemple ci-dessus est 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::addGroupField(string $value): SolrQuery

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

The name of the field.

Valeurs de retour

Returns an instance of SolrQuery.

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::addGroupFunction(string $value): SolrQuery

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::addGroupQuery(string $value): SolrQuery

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::addGroupSortField(string $field, int $order = ?): SolrQuery

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;
?>

Résultat de l'exemple ci-dessus est 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::addHighlightField(string $field): SolrQuery

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::addMltField(string $field): SolrQuery

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::addMltQueryField(string $field, float $boost): SolrQuery

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::addSortField(string $field, int $order = SolrQuery::ORDER_DESC): SolrQuery

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::addStatsFacet(string $field): SolrQuery

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::addStatsField(string $field): SolrQuery

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::collapse(SolrCollapseFunction $collapseFunction): SolrQuery

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);

?>

Résultat de l'exemple ci-dessus est 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
PECL solr 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 SolrQuery::__destruct()

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 SolrQuery::getExpand(): bool

Returns true if group expanding is enabled

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns whether 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 SolrQuery::getExpandFilterQueries(): array

Returns the expand filter queries

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

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 SolrQuery::getExpandQuery(): array

Returns the expand query expand.q parameter

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the expand query.


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 SolrQuery::getExpandRows(): int

Returns The number of rows to display in each group (expand.rows)

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the number of 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 SolrQuery::getExpandSortFields(): array

Returns an array of fields

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

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 SolrQuery::getFacet(): bool

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 SolrQuery::getFacetDateEnd(string $field_override = ?): string

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 SolrQuery::getFacetDateFields(): array

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 SolrQuery::getFacetDateGap(string $field_override = ?): string

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 SolrQuery::getFacetDateHardEnd(string $field_override = ?): string

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 SolrQuery::getFacetDateOther(string $field_override = ?): array

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 un tableau 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 SolrQuery::getFacetDateStart(string $field_override = ?): string

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 SolrQuery::getFacetFields(): array

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 SolrQuery::getFacetLimit(string $field_override = ?): int

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 SolrQuery::getFacetMethod(string $field_override = ?): string

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 SolrQuery::getFacetMinCount(string $field_override = ?): int

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 SolrQuery::getFacetMissing(string $field_override = ?): bool

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 SolrQuery::getFacetOffset(string $field_override = ?): int

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 SolrQuery::getFacetPrefix(string $field_override = ?): string

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 SolrQuery::getFacetQueries(): array

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 SolrQuery::getFacetSort(string $field_override = ?): int

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 SolrQuery::getFields(): array

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 SolrQuery::getFilterQueries(): array

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 SolrQuery::getGroup(): bool

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 SolrQuery::getGroupCachePercent(): int

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 SolrQuery::getGroupFacet(): bool

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 SolrQuery::getGroupFields(): array

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 SolrQuery::getGroupFormat(): string

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 SolrQuery::getGroupFunctions(): array

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 SolrQuery::getGroupLimit(): int

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 SolrQuery::getGroupMain(): bool

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 SolrQuery::getGroupNGroups(): bool

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 SolrQuery::getGroupOffset(): int

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 SolrQuery::getGroupQueries(): array

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 SolrQuery::getGroupSortFields(): array

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 SolrQuery::getGroupTruncate(): bool

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 SolrQuery::getHighlight(): bool

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 SolrQuery::getHighlightAlternateField(string $field_override = ?): string

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 SolrQuery::getHighlightFields(): array

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 SolrQuery::getHighlightFormatter(string $field_override = ?): string

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 SolrQuery::getHighlightFragmenter(string $field_override = ?): string

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 SolrQuery::getHighlightFragsize(string $field_override = ?): int

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 SolrQuery::getHighlightHighlightMultiTerm(): bool

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 SolrQuery::getHighlightMaxAlternateFieldLength(string $field_override = ?): int

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 SolrQuery::getHighlightMaxAnalyzedChars(): int

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 SolrQuery::getHighlightMergeContiguous(string $field_override = ?): bool

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 SolrQuery::getHighlightRegexMaxAnalyzedChars(): int

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 SolrQuery::getHighlightRegexPattern(): string

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 SolrQuery::getHighlightRegexSlop(): float

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 float 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 SolrQuery::getHighlightRequireFieldMatch(): bool

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 SolrQuery::getHighlightSimplePost(string $field_override = ?): string

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 SolrQuery::getHighlightSimplePre(string $field_override = ?): string

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 SolrQuery::getHighlightSnippets(string $field_override = ?): int

>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 SolrQuery::getHighlightUsePhraseHighlighter(): bool

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 SolrQuery::getMlt(): bool

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 SolrQuery::getMltBoost(): bool

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 SolrQuery::getMltCount(): int

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 SolrQuery::getMltFields(): array

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 SolrQuery::getMltMaxNumQueryTerms(): int

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 SolrQuery::getMltMaxNumTokens(): int

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 SolrQuery::getMltMaxWordLength(): int

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 SolrQuery::getMltMinDocFrequency(): int

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 SolrQuery::getMltMinTermFrequency(): int

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 SolrQuery::getMltMinWordLength(): int

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 SolrQuery::getMltQueryFields(): array

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 SolrQuery::getQuery(): string

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 SolrQuery::getRows(): int

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 SolrQuery::getSortFields(): array

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 SolrQuery::getStart(): int

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 SolrQuery::getStats(): bool

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 SolrQuery::getStatsFacets(): array

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 SolrQuery::getStatsFields(): array

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 SolrQuery::getTerms(): bool

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 SolrQuery::getTermsField(): string

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 SolrQuery::getTermsIncludeLowerBound(): bool

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 SolrQuery::getTermsIncludeUpperBound(): bool

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 SolrQuery::getTermsLimit(): int

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 SolrQuery::getTermsLowerBound(): string

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 SolrQuery::getTermsMaxCount(): int

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 SolrQuery::getTermsMinCount(): int

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 SolrQuery::getTermsPrefix(): string

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 SolrQuery::getTermsReturnRaw(): bool

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 SolrQuery::getTermsSort(): int

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 SolrQuery::getTermsUpperBound(): string

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 SolrQuery::getTimeAllowed(): int

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::removeExpandFilterQuery(string $fq): SolrQuery

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::removeExpandSortField(string $field): SolrQuery

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::removeFacetDateField(string $field): SolrQuery

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::removeFacetDateOther(string $value, string $field_override = ?): SolrQuery

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::removeFacetField(string $field): SolrQuery

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::removeFacetQuery(string $value): SolrQuery

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::removeField(string $field): SolrQuery

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::removeFilterQuery(string $fq): SolrQuery

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::removeHighlightField(string $field): SolrQuery

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::removeMltField(string $field): SolrQuery

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::removeMltQueryField(string $queryField): SolrQuery

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::removeSortField(string $field): SolrQuery

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::removeStatsFacet(string $value): SolrQuery

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::removeStatsField(string $field): SolrQuery

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::setEchoHandler(bool $flag): SolrQuery

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::setEchoParams(string $type): SolrQuery

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::setExpand(bool $value): SolrQuery

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;

?>

Résultat de l'exemple ci-dessus est 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::setExpandQuery(string $q): SolrQuery

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::setExpandRows(int $value): SolrQuery

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::setExplainOther(string $query): SolrQuery

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::setFacet(bool $flag): SolrQuery

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::setFacetDateEnd(string $value, string $field_override = ?): SolrQuery

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::setFacetDateGap(string $value, string $field_override = ?): SolrQuery

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::setFacetDateHardEnd(bool $value, string $field_override = ?): SolrQuery

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::setFacetDateStart(string $value, string $field_override = ?): SolrQuery

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::setFacetEnumCacheMinDefaultFrequency(int $frequency, string $field_override = ?): SolrQuery

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::setFacetLimit(int $limit, string $field_override = ?): SolrQuery

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::setFacetMethod(string $method, string $field_override = ?): SolrQuery

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::setFacetMinCount(int $mincount, string $field_override = ?): SolrQuery

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::setFacetMissing(bool $flag, string $field_override = ?): SolrQuery

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::setFacetOffset(int $offset, string $field_override = ?): SolrQuery

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::setFacetPrefix(string $prefix, string $field_override = ?): SolrQuery

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::setFacetSort(int $facetSort, string $field_override = ?): SolrQuery

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::setGroup(bool $value): SolrQuery

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::setGroupCachePercent(int $percent): SolrQuery

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::setGroupFacet(bool $value): SolrQuery

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::setGroupFormat(string $value): SolrQuery

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::setGroupLimit(int $value): SolrQuery

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::setGroupMain(string $value): 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.

Liste de paramètres

value

If true, the result of the first field grouping command is used as the main result list in the response.

Valeurs de retour

Returns an instance of 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::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::setGroupNGroups(bool $value): SolrQuery

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::setGroupOffset(int $value): SolrQuery

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::setGroupTruncate(bool $value): SolrQuery

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::setHighlight(bool $flag): SolrQuery

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::setHighlightAlternateField(string $field, string $field_override = ?): SolrQuery

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::setHighlightFormatter(string $formatter, string $field_override = ?): SolrQuery

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.

Valeurs de retour

Renvoie une instance de SolrQuery.


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::setHighlightFragmenter(string $fragmenter, string $field_override = ?): SolrQuery

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::setHighlightFragsize(int $size, string $field_override = ?): SolrQuery

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::setHighlightHighlightMultiTerm(bool $flag): SolrQuery

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::setHighlightMaxAlternateFieldLength(int $fieldLength, string $field_override = ?): SolrQuery

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::setHighlightMaxAnalyzedChars(int $value): SolrQuery

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::setHighlightMergeContiguous(bool $flag, string $field_override = ?): SolrQuery

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::setHighlightRegexMaxAnalyzedChars(int $maxAnalyzedChars): SolrQuery

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::setHighlightRegexPattern(string $value): SolrQuery

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::setHighlightRegexSlop(float $factor): SolrQuery

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::setHighlightRequireFieldMatch(bool $flag): SolrQuery

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::setHighlightSimplePost(string $simplePost, string $field_override = ?): SolrQuery

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.

Valeurs de retour

Renvoie une instance de SolrQuery.


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::setHighlightSimplePre(string $simplePre, string $field_override = ?): SolrQuery

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::setHighlightSnippets(int $value, string $field_override = ?): SolrQuery

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::setHighlightUsePhraseHighlighter(bool $flag): SolrQuery

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::setMlt(bool $flag): SolrQuery

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::setMltBoost(bool $flag): SolrQuery

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::setMltCount(int $count): SolrQuery

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::setMltMaxNumQueryTerms(int $value): SolrQuery

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::setMltMaxNumTokens(int $value): SolrQuery

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::setMltMaxWordLength(int $maxWordLength): SolrQuery

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::setMltMinDocFrequency(int $minDocFrequency): SolrQuery

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::setMltMinTermFrequency(int $minTermFrequency): SolrQuery

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::setMltMinWordLength(int $minWordLength): SolrQuery

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::setOmitHeader(bool $flag): SolrQuery

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::setQuery(string $query): SolrQuery

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::setRows(int $rows): SolrQuery

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::setShowDebugInfo(bool $flag): SolrQuery

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::setStart(int $start): SolrQuery

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::setStats(bool $flag): SolrQuery

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::setTerms(bool $flag): SolrQuery

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::setTermsField(string $fieldname): SolrQuery

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::setTermsIncludeLowerBound(bool $flag): SolrQuery

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::setTermsIncludeUpperBound(bool $flag): SolrQuery

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::setTermsLimit(int $limit): SolrQuery

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::setTermsLowerBound(string $lowerBound): SolrQuery

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::setTermsMaxCount(int $frequency): SolrQuery

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::setTermsMinCount(int $frequency): SolrQuery

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::setTermsPrefix(string $prefix): SolrQuery

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::setTermsReturnRaw(bool $flag): SolrQuery

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::setTermsSort(int $sortType): SolrQuery

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 index.

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::setTermsUpperBound(string $upperBound): SolrQuery

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::setTimeAllowed(int $timeAllowed): SolrQuery

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

class SolrDisMaxQuery extends SolrQuery implements Serializable {
/* Propriétés héritées */
const int SolrQuery::ORDER_ASC = 0;
const int SolrQuery::ORDER_DESC = 1;
const int SolrQuery::FACET_SORT_INDEX = 0;
const int SolrQuery::FACET_SORT_COUNT = 1;
const int SolrQuery::TERMS_SORT_INDEX = 0;
const int SolrQuery::TERMS_SORT_COUNT = 1;
/* Méthodes */
public __construct(string $q = ?)
public addBigramPhraseField(string $field, string $boost, string $slop = ?): SolrDisMaxQuery
public addBoostQuery(string $field, string $value, string $boost = ?): SolrDisMaxQuery
public addPhraseField(string $field, string $boost, string $slop = ?): SolrDisMaxQuery
public addQueryField(string $field, string $boost = ?): SolrDisMaxQuery
public addTrigramPhraseField(string $field, string $boost, string $slop = ?): SolrDisMaxQuery
public addUserField(string $field): SolrDisMaxQuery
public removeBigramPhraseField(string $field): SolrDisMaxQuery
public removeBoostQuery(string $field): SolrDisMaxQuery
public removePhraseField(string $field): SolrDisMaxQuery
public removeQueryField(string $field): SolrDisMaxQuery
public removeTrigramPhraseField(string $field): SolrDisMaxQuery
public removeUserField(string $field): SolrDisMaxQuery
public setBigramPhraseFields(string $fields): SolrDisMaxQuery
public setBigramPhraseSlop(string $slop): SolrDisMaxQuery
public setBoostFunction(string $function): SolrDisMaxQuery
public setBoostQuery(string $q): SolrDisMaxQuery
public setMinimumMatch(string $value): SolrDisMaxQuery
public setPhraseFields(string $fields): SolrDisMaxQuery
public setPhraseSlop(string $slop): SolrDisMaxQuery
public setQueryAlt(string $q): SolrDisMaxQuery
public setQueryPhraseSlop(string $slop): SolrDisMaxQuery
public setTieBreaker(string $tieBreaker): SolrDisMaxQuery
public setTrigramPhraseFields(string $fields): SolrDisMaxQuery
public setTrigramPhraseSlop(string $slop): SolrDisMaxQuery
public setUserFields(string $fields): SolrDisMaxQuery
public useDisMaxQueryParser(): SolrDisMaxQuery
public useEDisMaxQueryParser(): SolrDisMaxQuery
/* Méthodes héritées */
public SolrQuery::addExpandFilterQuery(string $fq): SolrQuery
public SolrQuery::addExpandSortField(string $field, string $order = ?): SolrQuery
public SolrQuery::addFacetDateField(string $dateField): SolrQuery
public SolrQuery::addFacetDateOther(string $value, string $field_override = ?): SolrQuery
public SolrQuery::addFacetField(string $field): SolrQuery
public SolrQuery::addFacetQuery(string $facetQuery): SolrQuery
public SolrQuery::addField(string $field): SolrQuery
public SolrQuery::addFilterQuery(string $fq): SolrQuery
public SolrQuery::addGroupField(string $value): SolrQuery
public SolrQuery::addGroupFunction(string $value): SolrQuery
public SolrQuery::addGroupQuery(string $value): SolrQuery
public SolrQuery::addGroupSortField(string $field, int $order = ?): SolrQuery
public SolrQuery::addHighlightField(string $field): SolrQuery
public SolrQuery::addMltField(string $field): SolrQuery
public SolrQuery::addMltQueryField(string $field, float $boost): SolrQuery
public SolrQuery::addSortField(string $field, int $order = SolrQuery::ORDER_DESC): SolrQuery
public SolrQuery::addStatsFacet(string $field): SolrQuery
public SolrQuery::addStatsField(string $field): SolrQuery
public SolrQuery::collapse(SolrCollapseFunction $collapseFunction): SolrQuery
public SolrQuery::getExpand(): bool
public SolrQuery::getExpandFilterQueries(): array
public SolrQuery::getExpandQuery(): array
public SolrQuery::getExpandRows(): int
public SolrQuery::getExpandSortFields(): array
public SolrQuery::getFacet(): bool
public SolrQuery::getFacetDateEnd(string $field_override = ?): string
public SolrQuery::getFacetDateFields(): array
public SolrQuery::getFacetDateGap(string $field_override = ?): string
public SolrQuery::getFacetDateHardEnd(string $field_override = ?): string
public SolrQuery::getFacetDateOther(string $field_override = ?): array
public SolrQuery::getFacetDateStart(string $field_override = ?): string
public SolrQuery::getFacetFields(): array
public SolrQuery::getFacetLimit(string $field_override = ?): int
public SolrQuery::getFacetMethod(string $field_override = ?): string
public SolrQuery::getFacetMinCount(string $field_override = ?): int
public SolrQuery::getFacetMissing(string $field_override = ?): bool
public SolrQuery::getFacetOffset(string $field_override = ?): int
public SolrQuery::getFacetPrefix(string $field_override = ?): string
public SolrQuery::getFacetQueries(): array
public SolrQuery::getFacetSort(string $field_override = ?): int
public SolrQuery::getFields(): array
public SolrQuery::getFilterQueries(): array
public SolrQuery::getGroup(): bool
public SolrQuery::getGroupCachePercent(): int
public SolrQuery::getGroupFacet(): bool
public SolrQuery::getGroupFields(): array
public SolrQuery::getGroupFormat(): string
public SolrQuery::getGroupFunctions(): array
public SolrQuery::getGroupLimit(): int
public SolrQuery::getGroupMain(): bool
public SolrQuery::getGroupNGroups(): bool
public SolrQuery::getGroupOffset(): int
public SolrQuery::getGroupQueries(): array
public SolrQuery::getGroupSortFields(): array
public SolrQuery::getGroupTruncate(): bool
public SolrQuery::getHighlight(): bool
public SolrQuery::getHighlightAlternateField(string $field_override = ?): string
public SolrQuery::getHighlightFields(): array
public SolrQuery::getHighlightFormatter(string $field_override = ?): string
public SolrQuery::getHighlightFragmenter(string $field_override = ?): string
public SolrQuery::getHighlightFragsize(string $field_override = ?): int
public SolrQuery::getHighlightHighlightMultiTerm(): bool
public SolrQuery::getHighlightMaxAlternateFieldLength(string $field_override = ?): int
public SolrQuery::getHighlightMaxAnalyzedChars(): int
public SolrQuery::getHighlightMergeContiguous(string $field_override = ?): bool
public SolrQuery::getHighlightRegexMaxAnalyzedChars(): int
public SolrQuery::getHighlightRegexPattern(): string
public SolrQuery::getHighlightRegexSlop(): float
public SolrQuery::getHighlightRequireFieldMatch(): bool
public SolrQuery::getHighlightSimplePost(string $field_override = ?): string
public SolrQuery::getHighlightSimplePre(string $field_override = ?): string
public SolrQuery::getHighlightSnippets(string $field_override = ?): int
public SolrQuery::getHighlightUsePhraseHighlighter(): bool
public SolrQuery::getMlt(): bool
public SolrQuery::getMltBoost(): bool
public SolrQuery::getMltCount(): int
public SolrQuery::getMltFields(): array
public SolrQuery::getMltMaxNumQueryTerms(): int
public SolrQuery::getMltMaxNumTokens(): int
public SolrQuery::getMltMaxWordLength(): int
public SolrQuery::getMltMinDocFrequency(): int
public SolrQuery::getMltMinTermFrequency(): int
public SolrQuery::getMltMinWordLength(): int
public SolrQuery::getMltQueryFields(): array
public SolrQuery::getQuery(): string
public SolrQuery::getRows(): int
public SolrQuery::getSortFields(): array
public SolrQuery::getStart(): int
public SolrQuery::getStats(): bool
public SolrQuery::getStatsFacets(): array
public SolrQuery::getStatsFields(): array
public SolrQuery::getTerms(): bool
public SolrQuery::getTermsField(): string
public SolrQuery::getTermsIncludeLowerBound(): bool
public SolrQuery::getTermsIncludeUpperBound(): bool
public SolrQuery::getTermsLimit(): int
public SolrQuery::getTermsLowerBound(): string
public SolrQuery::getTermsMaxCount(): int
public SolrQuery::getTermsMinCount(): int
public SolrQuery::getTermsPrefix(): string
public SolrQuery::getTermsReturnRaw(): bool
public SolrQuery::getTermsSort(): int
public SolrQuery::getTermsUpperBound(): string
public SolrQuery::getTimeAllowed(): int
public SolrQuery::removeExpandFilterQuery(string $fq): SolrQuery
public SolrQuery::removeExpandSortField(string $field): SolrQuery
public SolrQuery::removeFacetDateField(string $field): SolrQuery
public SolrQuery::removeFacetDateOther(string $value, string $field_override = ?): SolrQuery
public SolrQuery::removeFacetField(string $field): SolrQuery
public SolrQuery::removeFacetQuery(string $value): SolrQuery
public SolrQuery::removeField(string $field): SolrQuery
public SolrQuery::removeFilterQuery(string $fq): SolrQuery
public SolrQuery::removeHighlightField(string $field): SolrQuery
public SolrQuery::removeMltField(string $field): SolrQuery
public SolrQuery::removeMltQueryField(string $queryField): SolrQuery
public SolrQuery::removeSortField(string $field): SolrQuery
public SolrQuery::removeStatsFacet(string $value): SolrQuery
public SolrQuery::removeStatsField(string $field): SolrQuery
public SolrQuery::setEchoHandler(bool $flag): SolrQuery
public SolrQuery::setEchoParams(string $type): SolrQuery
public SolrQuery::setExpand(bool $value): SolrQuery
public SolrQuery::setExpandQuery(string $q): SolrQuery
public SolrQuery::setExpandRows(int $value): SolrQuery
public SolrQuery::setExplainOther(string $query): SolrQuery
public SolrQuery::setFacet(bool $flag): SolrQuery
public SolrQuery::setFacetDateEnd(string $value, string $field_override = ?): SolrQuery
public SolrQuery::setFacetDateGap(string $value, string $field_override = ?): SolrQuery
public SolrQuery::setFacetDateHardEnd(bool $value, string $field_override = ?): SolrQuery
public SolrQuery::setFacetDateStart(string $value, string $field_override = ?): SolrQuery
public SolrQuery::setFacetEnumCacheMinDefaultFrequency(int $frequency, string $field_override = ?): SolrQuery
public SolrQuery::setFacetLimit(int $limit, string $field_override = ?): SolrQuery
public SolrQuery::setFacetMethod(string $method, string $field_override = ?): SolrQuery
public SolrQuery::setFacetMinCount(int $mincount, string $field_override = ?): SolrQuery
public SolrQuery::setFacetMissing(bool $flag, string $field_override = ?): SolrQuery
public SolrQuery::setFacetOffset(int $offset, string $field_override = ?): SolrQuery
public SolrQuery::setFacetPrefix(string $prefix, string $field_override = ?): SolrQuery
public SolrQuery::setFacetSort(int $facetSort, string $field_override = ?): SolrQuery
public SolrQuery::setGroup(bool $value): SolrQuery
public SolrQuery::setGroupCachePercent(int $percent): SolrQuery
public SolrQuery::setGroupFacet(bool $value): SolrQuery
public SolrQuery::setGroupFormat(string $value): SolrQuery
public SolrQuery::setGroupLimit(int $value): SolrQuery
public SolrQuery::setGroupMain(string $value): SolrQuery
public SolrQuery::setGroupNGroups(bool $value): SolrQuery
public SolrQuery::setGroupOffset(int $value): SolrQuery
public SolrQuery::setGroupTruncate(bool $value): SolrQuery
public SolrQuery::setHighlight(bool $flag): SolrQuery
public SolrQuery::setHighlightAlternateField(string $field, string $field_override = ?): SolrQuery
public SolrQuery::setHighlightFormatter(string $formatter, string $field_override = ?): SolrQuery
public SolrQuery::setHighlightFragmenter(string $fragmenter, string $field_override = ?): SolrQuery
public SolrQuery::setHighlightFragsize(int $size, string $field_override = ?): SolrQuery
public SolrQuery::setHighlightHighlightMultiTerm(bool $flag): SolrQuery
public SolrQuery::setHighlightMaxAlternateFieldLength(int $fieldLength, string $field_override = ?): SolrQuery
public SolrQuery::setHighlightMaxAnalyzedChars(int $value): SolrQuery
public SolrQuery::setHighlightMergeContiguous(bool $flag, string $field_override = ?): SolrQuery
public SolrQuery::setHighlightRegexMaxAnalyzedChars(int $maxAnalyzedChars): SolrQuery
public SolrQuery::setHighlightRegexPattern(string $value): SolrQuery
public SolrQuery::setHighlightRegexSlop(float $factor): SolrQuery
public SolrQuery::setHighlightRequireFieldMatch(bool $flag): SolrQuery
public SolrQuery::setHighlightSimplePost(string $simplePost, string $field_override = ?): SolrQuery
public SolrQuery::setHighlightSimplePre(string $simplePre, string $field_override = ?): SolrQuery
public SolrQuery::setHighlightSnippets(int $value, string $field_override = ?): SolrQuery
public SolrQuery::setHighlightUsePhraseHighlighter(bool $flag): SolrQuery
public SolrQuery::setMlt(bool $flag): SolrQuery
public SolrQuery::setMltBoost(bool $flag): SolrQuery
public SolrQuery::setMltCount(int $count): SolrQuery
public SolrQuery::setMltMaxNumQueryTerms(int $value): SolrQuery
public SolrQuery::setMltMaxNumTokens(int $value): SolrQuery
public SolrQuery::setMltMaxWordLength(int $maxWordLength): SolrQuery
public SolrQuery::setMltMinDocFrequency(int $minDocFrequency): SolrQuery
public SolrQuery::setMltMinTermFrequency(int $minTermFrequency): SolrQuery
public SolrQuery::setMltMinWordLength(int $minWordLength): SolrQuery
public SolrQuery::setOmitHeader(bool $flag): SolrQuery
public SolrQuery::setQuery(string $query): SolrQuery
public SolrQuery::setRows(int $rows): SolrQuery
public SolrQuery::setShowDebugInfo(bool $flag): SolrQuery
public SolrQuery::setStart(int $start): SolrQuery
public SolrQuery::setStats(bool $flag): SolrQuery
public SolrQuery::setTerms(bool $flag): SolrQuery
public SolrQuery::setTermsField(string $fieldname): SolrQuery
public SolrQuery::setTermsIncludeLowerBound(bool $flag): SolrQuery
public SolrQuery::setTermsIncludeUpperBound(bool $flag): SolrQuery
public SolrQuery::setTermsLimit(int $limit): SolrQuery
public SolrQuery::setTermsLowerBound(string $lowerBound): SolrQuery
public SolrQuery::setTermsMaxCount(int $frequency): SolrQuery
public SolrQuery::setTermsMinCount(int $frequency): SolrQuery
public SolrQuery::setTermsPrefix(string $prefix): SolrQuery
public SolrQuery::setTermsReturnRaw(bool $flag): SolrQuery
public SolrQuery::setTermsSort(int $sortType): SolrQuery
public SolrQuery::setTermsUpperBound(string $upperBound): SolrQuery
public SolrQuery::setTimeAllowed(int $timeAllowed): SolrQuery
}

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::addBigramPhraseField(string $field, string $boost, string $slop = ?): SolrDisMaxQuery

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;

?>

Résultat de l'exemple ci-dessus est 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::addBoostQuery(string $field, string $value, string $boost = ?): SolrDisMaxQuery

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;
?>

Résultat de l'exemple ci-dessus est 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::addPhraseField(string $field, string $boost, string $slop = ?): SolrDisMaxQuery

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;
?>

Résultat de l'exemple ci-dessus est 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::addQueryField(string $field, string $boost = ?): SolrDisMaxQuery

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;

?>

Résultat de l'exemple ci-dessus est 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::addTrigramPhraseField(string $field, string $boost, string $slop = ?): SolrDisMaxQuery

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::addUserField(string $field): SolrDisMaxQuery

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;

?>

Résultat de l'exemple ci-dessus est 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


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::removeBigramPhraseField(string $field): SolrDisMaxQuery

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;

?>

Résultat de l'exemple ci-dessus est 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::removeBoostQuery(string $field): SolrDisMaxQuery

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;

?>

Résultat de l'exemple ci-dessus est 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::removePhraseField(string $field): SolrDisMaxQuery

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');
?>

Résultat de l'exemple ci-dessus est 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::removeQueryField(string $field): SolrDisMaxQuery

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');
?>

Résultat de l'exemple ci-dessus est 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::removeTrigramPhraseField(string $field): SolrDisMaxQuery

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::removeUserField(string $field): SolrDisMaxQuery

Removes a field from The User Fields Parameter (uf)

Avertissement

Cette fonction est actuellement non documentée ; 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;

?>

Résultat de l'exemple ci-dessus est 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::setBigramPhraseFields(string $fields): SolrDisMaxQuery

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;

?>

Résultat de l'exemple ci-dessus est 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::setBigramPhraseSlop(string $slop): SolrDisMaxQuery

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;

?>

Résultat de l'exemple ci-dessus est similaire à :

q=lucene&defType=edismax&ps2=5


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::setBoostFunction(string $function): SolrDisMaxQuery

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;

?>

Résultat de l'exemple ci-dessus est similaire à :

q=lucene&defType=edismax&bf=recip(ms(NOW,mydatefield),3.16e-11,1,1)


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::setBoostQuery(string $q): SolrDisMaxQuery

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;
?>

Résultat de l'exemple ci-dessus est 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::setMinimumMatch(string $value): SolrDisMaxQuery

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::setPhraseFields(string $fields): SolrDisMaxQuery

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;

?>

Résultat de l'exemple ci-dessus est 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::setPhraseSlop(string $slop): SolrDisMaxQuery

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


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::setQueryAlt(string $q): SolrDisMaxQuery

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('*:*');

?>

Résultat de l'exemple ci-dessus est 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::setQueryPhraseSlop(string $slop): SolrDisMaxQuery

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;
?>

Résultat de l'exemple ci-dessus est 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::setTieBreaker(string $tieBreaker): SolrDisMaxQuery

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::setTrigramPhraseFields(string $fields): SolrDisMaxQuery

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::setTrigramPhraseSlop(string $slop): SolrDisMaxQuery

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;

?>

Résultat de l'exemple ci-dessus est 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::setUserFields(string $fields): SolrDisMaxQuery

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;

?>

Résultat de l'exemple ci-dessus est 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::useDisMaxQueryParser(): SolrDisMaxQuery

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;
?>

Résultat de l'exemple ci-dessus est 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::useEDisMaxQueryParser(): SolrDisMaxQuery

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;

?>

Résultat de l'exemple ci-dessus est similaire à :

defType=edismax


The SolrCollapseFunction class

(PECL solr >= 2.2.0)

Introduction

Synopsis de la classe

class SolrCollapseFunction {
/* Constantes */
const string NULLPOLICY_IGNORE = ignore;
const string NULLPOLICY_EXPAND = expand;
const string NULLPOLICY_COLLAPSE = collapse;
/* Méthodes */
public __construct(string $field = ?)
public getField(): string
public getHint(): string
public getMax(): string
public getMin(): string
public getNullPolicy(): string
public getSize(): int
public setField(string $fieldName): SolrCollapseFunction
public setHint(string $hint): SolrCollapseFunction
public setMax(string $max): SolrCollapseFunction
public setMin(string $min): SolrCollapseFunction
public setNullPolicy(string $nullPolicy): SolrCollapseFunction
public setSize(int $size): SolrCollapseFunction
public __toString(): string
}

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 SolrCollapseFunction::getField(): string

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 SolrCollapseFunction::getHint(): string

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 SolrCollapseFunction::getMax(): string

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 SolrCollapseFunction::getMin(): string

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 SolrCollapseFunction::getNullPolicy(): string

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 SolrCollapseFunction::getSize(): int

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::setField(string $fieldName): SolrCollapseFunction

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::setHint(string $hint): SolrCollapseFunction

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

/* ... */

?>

Résultat de l'exemple ci-dessus est 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::setMax(string $max): SolrCollapseFunction

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::setMin(string $min): SolrCollapseFunction

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::setNullPolicy(string $nullPolicy): SolrCollapseFunction

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::setSize(int $size): SolrCollapseFunction

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 SolrCollapseFunction::__toString(): string

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

class SolrException extends Exception {
/* Propriétés */
protected int $sourceline;
protected string $sourcefile;
protected string $zif_name;
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes */
public getInternalInfo(): array
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private 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 SolrException::getInternalInfo(): array

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

class SolrClientException extends SolrException {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
protected int $sourceline;
protected string $sourcefile;
protected string $zif_name;
/* Méthodes */
public getInternalInfo(): array
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
public SolrException::getInternalInfo(): array
}

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 SolrClientException::getInternalInfo(): array

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

class SolrServerException extends SolrException {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
protected int $sourceline;
protected string $sourcefile;
protected string $zif_name;
/* Méthodes */
public getInternalInfo(): array
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
public SolrException::getInternalInfo(): array
}

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 SolrServerException::getInternalInfo(): array

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

class SolrIllegalArgumentException extends SolrException {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
protected int $sourceline;
protected string $sourcefile;
protected string $zif_name;
/* Méthodes */
public getInternalInfo(): array
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
public SolrException::getInternalInfo(): array
}

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 SolrIllegalArgumentException::getInternalInfo(): array

Retourne des informations sur l'endroit d'où l'exception a été émise.

Avertissement

Cette fonction est actuellement non documentée ; 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

class SolrIllegalOperationException extends SolrException {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
protected int $sourceline;
protected string $sourcefile;
protected string $zif_name;
/* Méthodes */
public getInternalInfo(): array
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
public SolrException::getInternalInfo(): array
}

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 SolrIllegalOperationException::getInternalInfo(): array

Récupère des informations internes lorsqu'une exception a été lancée.

Avertissement

Cette fonction est actuellement non documentée ; 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

class SolrMissingMandatoryParameterException extends SolrException {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
protected int $sourceline;
protected string $sourcefile;
protected string $zif_name;
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
public SolrException::getInternalInfo(): array
}


Extensions spécifiques aux serveurs

  • Apache
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Apache
  • Gestionnaire de processus FastCGI
    • Introduction
    • Installation/Configuration
    • Observabilité
    • Fonctions FPM


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_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.


  • « 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" | INI_ALL |
child_terminate | "0" | INI_ALL |
last_modified | "0" | INI_ALL |
xbithack | "0" | INI_ALL |
Pour plus de détails sur les modes INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

engine bool

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

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

Envoie la date de modification des scripts PHP dans l'en-tête HTTP Last-Modified:.

xbithack bool

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_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, PHP 8)

apache_child_terminate — Termine le processus Apache après cette requête

Description

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.

Fonctionne avec les serveurs web Apache, et FastCGI.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Note: Cette fonction n'est pas implémentée sur les plates-formes 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, PHP 8)

apache_get_modules — Retourne la liste des modules Apache chargés

Description

apache_get_modules(): array

Retourne la liste des modules Apache chargés.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un tableau contenant les modules Apache chargés.

Exemples

Exemple #1 Exemple avec apache_get_modules()

<?php
print_r(apache_get_modules());
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

apache_get_version — Récupère la version d'Apache

Description

apache_get_version(): string|false

Récupère la version d'Apache.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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";
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

apache_getenv — Lit une variable de processus Apache

Description

apache_getenv(string $variable, bool $walk_to_top = false): string|false

Récupère une variable d'environnement d'Apache.

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;
?>

Résultat de l'exemple ci-dessus est similaire à :

42.24.42.240

Voir aussi

  • apache_setenv() - Modifie une variable de processus Apache
  • getenv() - Retourne la valeur d'une seule ou toutes les variables 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, PHP 8)

apache_lookup_uri — Effectue une requête partielle pour l'URI spécifiée et renvoie toutes les informations la concernant

Description

apache_lookup_uri(string $filename): object|false

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.

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

Retourne false en cas d'échec.

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 !';
}
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

apache_note — Affiche ou affecte la table des notes d'Apache

Description

apache_note(string $note_name, ?string $note_value = null): string|false

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 note_value est omis ou null, elle renvoie la valeur courante de la variable note_name. Sinon, 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é.

Historique

Version | Description
8.0.0 | note_value est désormais nullable.

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_response_headers »
  • 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, PHP 8)

apache_request_headers — Récupère tous les en-têtes HTTP de la requête

Description

apache_request_headers(): array

Récupère tous les en-têtes HTTP de la requête courante. Fonctionne avec les serveurs web Apache, FastCGI, CLI, et FPM.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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
7.3.0 | Cette fonction devient disponible pour l'API serveur (SAPI) FPM (FastCGI Process Manager).

Exemples

Exemple #1 Exemple avec apache_request_headers()

<?php
$headers = apache_request_headers();

foreach ($headers as $header => $value) {
echo "$header: $value <br />\n";
}
?>

Résultat de l'exemple ci-dessus est 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


Récupère tous les en-têtes de réponse HTTP

  • « apache_request_headers
  • 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, PHP 8)

apache_response_headers — Récupère tous les en-têtes de réponse HTTP

Description

apache_response_headers(): array|false

Récupère tous les en-têtes de réponse HTTP. Fonctionne avec les serveurs web Apache, FastCGI, CLI, et FPM.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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.

Exemples

Exemple #1 Exemple avec apache_response_headers()

<?php
print_r(apache_response_headers());
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

apache_setenv — Modifie une variable de processus Apache

Description

apache_setenv(string $variable, string $value, bool $walk_to_top = false): bool

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, PHP 8)

getallheaders — Récupère tous les en-têtes de la requête HTTP

Description

getallheaders(): array

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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
7.3.0 | Cette fonction devient disponible pour l'API serveur (SAPI) FPM (FastCGI Process Manager).

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, PHP 8)

virtual — Effectue une sous-requête Apache

Description

virtual(string $uri): bool

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

uri

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
  • Observabilité
    • Page d'état
  • Fonctions FPM
    • fastcgi_finish_request — Affiche toutes les données de la réponse au client
    • fpm_get_status — Retourne l'état actuel du pool FPM


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.


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
  • Page d'état »
  • PHP Manual
  • Gestionnaire de processus FastCGI
  • Observabilité

Observabilité

Sommaire

  • Page d'état


Page d'état

Cette page fournit des informations sur la configuration et le contenu de la page d'état du FPM. Voir aussi fpm_get_status().

Configuration

La page d'état de FPM peut être activée en définissant le paramètre pm.status_path dans la configuration du pool FPM.

Attention

Pour des raisons de sécurité, la page d'état du FPM devrait être limitée aux requêtes internes ou aux IP de clients connues, car la page révèle les URLs des requêtes et des informations sur les ressources disponibles.

Selon la configuration du serveur web, il peut être nécessaire de configurer le serveur web pour autoriser les requêtes directement vers ce chemin, en contournant les scripts PHP. Un exemple de configuration pour Apache avec FPM écoutant sur UDS et pm.status_path fixé à /fpm-status:

<LocationMatch "/fpm-status">
 Order Allow,Deny
 Allow from 127.0.0.1
 ProxyPass "unix:/var/run/php-fpm.sock|fcgi://localhost/fpm-status"
</LocationMatch>

Après le rechargement ou le redémarrage de FPM et du serveur web, la page d'état sera accessible à partir du navigateur (à condition que la requête provienne d'une adresse IP autorisée si la restriction d'IP a été configurée).

Paramètres de la requête

Le format de la page d'état peut être modifié en spécifiant l'un des paramètres de requête suivants :

  • html
  • json
  • openmetrics
  • xml

Des informations supplémentaires peuvent également être retournées en utilisant le paramètre de requête full.

Exemple d'URL de page d'état :

  • https://localhost/fpm-status - Brève sortie dans le format texte par défaut
  • https://localhost/fpm-status?full - Résultats complets dans le format de texte par défaut
  • https://localhost/fpm-status?json - Résultat succinct au format JSON
  • https://localhost/fpm-status?html&full - Résultats complets au format HTML

Informations affichées

Les valeurs de date et d'heure utilisent le format d'horodatage Unix dans les sorties JSON et XML, sinon elles utilisent le format résultant de l'exemple suivant "03/Jun/2021:07:21:46 +0100".

Informations de base - Toujours affichées sur la page d'état
Paramètre | Description
pool | Le nom du pool de processus FPM.
proccess manager | Le type de gestionnaire de processus - statique, dynamique ou à la demande.
start time | Date et heure du dernier démarrage du pool de processus.
start since | Temps en secondes écoulées depuis le dernier démarrage du pool de processus.
accepted conn | Nombre total de connexions acceptées.
listen queue | Nombre de requêtes (backlog) en attente d'un processus libre.
max listen queue | Le nombre maximum de requêtes vues dans la file d'attente à un moment donné.
listen queue len | Taille maximale autorisée de la file d'attente.
idle processes | Nombre de processus actuellement inactifs (en attente de requêtes).
active processes | Nombre de processus qui traitent actuellement des requêtes.
total processes | Nombre total de processus en cours.
max active processes | Nombre maximal de processus actifs simultanément.
max children reached | Le nombre maximal de processus a-t-il déjà été atteint ? Si oui, la valeur affichée est plus grande ou égale à 1, sinon la valeur affichée est 0.
slow requests | Le nombre total de requêtes qui ont atteint le délai configuré de request_slowlog_timeout.
Informations par processus - affichées uniquement en mode de sortie complète (full)
Paramètre | Description
pid | Le PID système du processus.
state | L'état du processus - Idle, Running, ...
start time | La date/heure à laquelle le processus a démarré.
start since | Le nombre de secondes écoulées depuis le début du processus.
requests | Le nombre total de requêtes servies.
request duration | Le temps total en microsecondes passées à traiter les requêtes.
request method | La méthode HTTP de la dernière requête servie.
request uri | L'URI de la dernière requête servie (après traitement par le serveur web, il peut toujours s'agir de /index.php si vous utilisez un motif de redirection du contrôleur frontal).
content length | La longueur du corps de la requête, en octets, de la dernière requête.
user | L'utilisateur HTTP (PHP_AUTH_USER) de la dernière requête.
script | Le chemin complet du script exécuté par la dernière requête. Ce sera '-' si non applicable (par exemple, les requêtes de la page d'état).
last request cpu | Le %cpu de la dernière requête. Ce sera 0 si le processus n'est pas au repos car le calcul est effectué lorsque le traitement de la requête est terminé. La valeur peut dépasser 100 %, car l'indicateur indiquera le pourcentage total du temps CPU utilisé lors de la dernière requête - prend en compte les processus sur tous les cœurs, alors que le 100 % est pour un seul cœur.
last request memory | La quantité maximale de mémoire consommée par la dernière requête. Cette valeur sera 0 si le processus n'est pas au repos, car le calcul est effectué lorsque le traitement de la requête est terminé.

Note:

Toutes les valeurs sont spécifiques au pool et sont réinitialisées lorsque FPM est redémarré.

Note:

Le format de sortie OpenMetrics utilise différents types de paramètres pour mieux s'adapter au format OpenMetrics. Les paramètres et les descriptions de leurs valeurs sont inclus dans la sortie du format OpenMetrics.

Historique

Version | Description
8.1.0 | Le format openmetrics a été ajouté.


Fonctions FPM

Sommaire

  • fastcgi_finish_request — Affiche toutes les données de la réponse au client
  • fpm_get_status — Retourne l'état actuel du pool FPM


Affiche toutes les données de la réponse au client

  • « Fonctions FPM
  • fpm_get_status »
  • 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, PHP 8)

fastcgi_finish_request — Affiche toutes les données de la réponse au client

Description

fastcgi_finish_request(): bool

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.

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'état actuel du pool FPM

  • « fastcgi_finish_request
  • Extensions sur les Sessions »
  • PHP Manual
  • Fonctions FPM
  • Retourne l'état actuel du pool FPM

fpm_get_status

(PHP 7 >= 7.3, PHP 8)

fpm_get_status — Retourne l'état actuel du pool FPM

Description

fpm_get_status(): array|false

Cette fonction retourne l'état complet du pool de FPM sous la forme d'un tableau associatif. Elle retourne toujours l'état complet, y compris les informations d'état par processus. Voir le guide de la page d'état FPM pour plus de détails.

Notez que cette fonction ne sera définie que si FPM est utilisé pour servir le script.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Tableau associatif contenant l'état complet du pool FPM, ou false si une erreur survient.


Extensions sur les Sessions

  • Sessions — Gestion des sessions
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Progression d'un téléversement (upload) en session
    • Sessions et Sécurité
    • Fonctions Session
    • SessionHandler — La classe SessionHandler
    • SessionHandlerInterface — L'interface SessionHandlerInterface
    • SessionIdInterface — L'interface SessionIdInterface
    • SessionUpdateTimestampHandlerInterface — L'interface SessionUpdateTimestampHandlerInterface


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éversement (upload) en session
  • Sessions et Sécurité
    • Gestion basique des sessions
    • Sécurisation des configurations INI de session
  • Fonctions Session
    • session_abort — Abandonne les changements sur le tableau de session et termine la session
    • session_cache_expire — Récupère et/ou définie le 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 — Créer un nouvel ID de session
    • 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 — Exécute le ramasse miette des données de session
    • session_get_cookie_params — Lit la configuration du cookie de session
    • session_id — Lit et/ou modifie l'identifiant courant de 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_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_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
  • SessionIdInterface — L'interface SessionIdInterface
    • SessionIdInterface::create_sid — Créer un ID de session
  • SessionUpdateTimestampHandlerInterface — L'interface SessionUpdateTimestampHandlerInterface
    • SessionUpdateTimestampHandlerInterface::updateTimestamp — Mettre à jour l'horodatage
    • SessionUpdateTimestampHandlerInterface::validateId — Valider l'ID


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 sérialisées en interne par PHP en utilisant le gestionnaire de sérialisation 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 sérialisées, les variables de type resource ne peuvent être stockées dans une session.

Les gestionnaires de sérialisation (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.

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 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().


Pré-requis

Aucune bibliothèque externe n'est nécessaire pour compiler cette extension.

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

Cette extension est activée par défaut. Elle peut être désactivée en utilisant l'option de configuration : --disable-session

Pour utiliser l'allocation de mémoire partagée (mm) pour le stockage des sessions, configurez PHP --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 | "" | INI_ALL |
session.name | "PHPSESSID" | INI_ALL |
session.save_handler | "files" | INI_ALL |
session.auto_start | "0" | INI_PERDIR |
session.gc_probability | "1" | INI_ALL |
session.gc_divisor | "100" | INI_ALL |
session.gc_maxlifetime | "1440" | INI_ALL |
session.serialize_handler | "php" | INI_ALL |
session.cookie_lifetime | "0" | INI_ALL |
session.cookie_path | "/" | INI_ALL |
session.cookie_domain | "" | INI_ALL |
session.cookie_secure | "0" | INI_ALL | Antérieur à PHP 7.2.0, la valeur par défaut était "".
session.cookie_httponly | "0" | INI_ALL | Antérieur à PHP 7.2.0, la valeur par défaut était "".
session.cookie_samesite | "" | INI_ALL | Disponible à partir de PHP 7.3.0.
session.use_strict_mode | "0" | INI_ALL |
session.use_cookies | "1" | INI_ALL |
session.use_only_cookies | "1" | INI_ALL |
session.referer_check | "" | INI_ALL |
session.cache_limiter | "nocache" | INI_ALL |
session.cache_expire | "180" | INI_ALL |
session.use_trans_sid | "0" | INI_ALL |
session.trans_sid_tags | "a=href,area=href,frame=src,form=" | INI_ALL | Disponible à partir de PHP 7.1.0.
session.trans_sid_hosts | $_SERVER['HTTP_HOST'] | INI_ALL | Disponible à partir de PHP 7.1.0.
session.sid_length | "32" | INI_ALL | Disponible à partir de PHP 7.1.0.
session.sid_bits_per_character | "4" | INI_ALL | Disponible à partir de PHP 7.1.0.
session.upload_progress.enabled | "1" | INI_PERDIR |
session.upload_progress.cleanup | "1" | INI_PERDIR |
session.upload_progress.prefix | "upload_progress_" | INI_PERDIR |
session.upload_progress.name | "PHP_SESSION_UPLOAD_PROGRESS" | INI_PERDIR |
session.upload_progress.freq | "1%" | INI_PERDIR |
session.upload_progress.min_freq | "1" | INI_PERDIR |
session.lazy_write | "1" | INI_ALL |
session.hash_function | "0" | INI_ALL | Supprimé à partir de PHP 7.1.0
session.hash_bits_per_character | "4" | INI_ALL | Supprimé à partir de PHP 7.1.0
session.entropy_file | "" | INI_ALL | Supprimé à partir de PHP 7.1.0.
session.entropy_length | "0" | INI_ALL | Supprimé à partir de PHP 7.1.0.
Pour plus de détails sur les modes 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 cette option est 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 (2 ** session.sid_bits_per_character) ** 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.

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
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 sérialiser et désérialiser les données. Le format de sérialisation 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 utilise les fonctions de sérialisation/désérialisation en interne, et n'a pas les limitations que php et php_binary ont. Les anciens gestionnaires de sérialisation 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 int
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 int
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 int
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). La valeur par défaut est 1440 (24 minutes).

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 int
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. 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: Supprimé dans PHP 7.1.0. session.entropy_file vaut par défaut /dev/urandom ou /dev/arandom s'il est disponible.

session.entropy_length int
Spécifie le nombre d'octets qui seront lus dans le fichier défini ci-dessus. Par défaut 32. Supprimé dans PHP 7.1.0.
session.use_strict_mode bool
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é).

Note: Activer session.use_strict_mode est obligatoire pour la sécurité générale des sessions. Il est conseillé de l'activer pour tous les sites. Voir l'exemple de code de session_create_id() pour plus de détails.

Avertissement

Si un gestionnaire de session enregistré via la fonction session_set_save_handler() n'implémente pas SessionUpdateTimestampHandlerInterface::validateId(), ni ne fournit la fonction de rappel validate_sid, respectivement, le mode d'identifiant de session strict sera effectivement désactivé, suivant la valeur de cette directive. Notez que SessionHandler n'implémente pas la méthode SessionHandler::validateId().

session.use_cookies bool
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
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. Par défaut, vaut 1 (activé).
session.cookie_lifetime int
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
Spécifie que les cookies ne doivent être émis que sur des connexions sécurisées. Avec cette option définie sur on, les sessions ne fonctionnent qu'avec des connexions HTTPS. Si elle est définie sur off, alors les sessions fonctionnent avec les connexions HTTP et HTTPS. Par défaut, elle est définie sur off. Voir aussi session_get_cookie_params() et session_set_cookie_params().
session.cookie_httponly bool
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.cookie_samesite string
Permet qu'un cookie ne soit pas envoyé par le serveur avec des requêtes entre sites (cross-site). Cette assertion permet aux agents utilisateur de mitiger les riques de fuite d'informations d'origine du site (cross-origin), et fournit de la protection contre les attaques des fausses requêtes entre sites (cross-site request forgery). Notez que ceci n'est pas supporté par tous les navigateurs. Une valeur vide signifie qu'aucun attribut SameSite ne sera défini. Lax et Strict signifie que le cookie ne sera pas envoyé pour des requêtes POST entre domaines ; Lax enverra le cookie pour des requêtes GET entre domaines, tandis que Strict n'en enverra pas.
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 int
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
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. Depuis PHP 7.1.0, le chemin URL complet, par exemple https://php.net/, est est géré par la fonctionnalité. Précédement, PHP gérait le chemin relatif uniquement. L'hote cible de la réécriture est défini par session.trans_sid_hosts.

session.trans_sid_tags string
session.trans_sid_tags spécifie les balises HTML qui sont réécrite pour include l'ID de session lorsque le support du SID transparent est activé. Par défaut a=href,area=href,frame=src,input=src,form= form est une balise spéciale. La variable de formulaire <input hidden="session_id" name="session_name"> est ajoutée.

Note: Avant PHP 7.1.0, url_rewriter.tags était utilisé à cette fin. Depuis PHP 7.1.0, fieldset n'est plus considéré comme une balise spéciale.

session.trans_sid_hosts string
session.trans_sid_hosts spécifie kes hôtes qui sont réécrit pour inclure l'ID de session lorsque le support du SID transparent est activé. Par défaut $_SERVER['HTTP_HOST']. Plusieurs hôtes peuvent être spécifiés séparé par ",", aucun espace n'est autorisé entre les hôtes. Par exemple : php.net,wiki.php.net,bugs.php.net
session.sid_length int
session.sid_length vous permet de spécifier la longueur de la chaine d'ID de session. La longueur de l'ID de session peut être comprise entre 22 et 256. La valeur par défaut est 32. Si vous avez besoin de compatibilité, vous pouvez spécifier 32, 40, etc. L'ID de session plus long est plus difficile à deviner. Au moins 32 caractères sont recommandés.
Astuce

Note de compatibilité: utiliser 32 au lieu de
session.hash_function=0 (MD5) et
session.hash_bits_per_character=4,
session.hash_function=1 (SHA1) et
session.hash_bits_per_character=6. Utiliser 26 au lieu de
session.hash_function=0 (MD5) et
session.hash_bits_per_character=5. Utiliser 22 au lieu de
session.hash_function=0 (MD5) et
session.hash_bits_per_character=6.
Vous devez configurer les valeurs INI pour qu'il y ait 128 bits dans
l'ID de session. N'oubliez pas de définir la valeur appropriée à
session.sid_bits_per_character, sinon vous aurez des
ID de session plus faible.

Note: Disponible à partir de PHP 7.1.0.

session.sid_bits_per_character int
session.sid_bits_per_character vous permet de spécifier le nombre de bits dans le caractère codé dans l'ID de session. Les valeurs possibles sont '4' (0-9, a-f), '5' (0-9, a-v), and '6' (0-9, a-z, A-Z, "-", ","). La valeur par défaut est 4. Plus de bits aboutit à un ID de session plus fort. 5 est la valeur recommandée pour la plupart des environnements.

Note: Disponible à partir de PHP 7.1.0.

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).

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: Supprimé dans PHP 7.1.0.

session.hash_bits_per_character int
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: Supprimé dans PHP 7.1.0.

session.upload_progress.enabled bool
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 bool
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 int
Le délai minimal entre les mises à jour, en seconde. Par défaut, vaut "1" (une seconde).
session.lazy_write bool
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é.

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 (string)
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 (int)
Valeur retournée par session_status() si la session est désactivée.
PHP_SESSION_NONE (int)
Valeur retournée par session_status() si la session est activée, mais que la session n'existe pas.
PHP_SESSION_ACTIVE (int)
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 sérialiser, 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.

Note:

Les sessions basées sur un fichier (par défaut en PHP) verrouillent 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. Si l'option de compilation 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. Un gestionnaires de session peut être crée 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éversement (upload) 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éversement (upload). Cette information n'est pas particulièrement utile pour la requête de téléversement en tant que tel, mais pendant le téléversement, une application peut envoyer une requête POST séparée (via XHR par exemple) pour vérifier le statut de ce téléversement.

La progression du téléversement sera disponible dans la variable super-globale $_SESSION lorsque le téléversement est en cours, et lors d'un envoi en méthode POST d'une variable du même nom que celui défini 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éversement courant en définissant la clé $_SESSION[$key]["cancel_upload"] à la valeur true. Lors du téléversement 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éversement mais n'annulera pas les téléversement terminés avec succès. Lorsqu'un téléversement 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éversement. 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éversement.

<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éversement, 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 fonctionnalité, sinon PHP ne verra le fichier qu'une fois qu'il sera totalement téléversé. Les serveurs tel que Nginx sont connus pour mettre en mémoire tampon des grosses requêtes.

Attention

Les informations de la progression du téléversement sont écrite en session avant qu'un script soit éxécuté. Par conséquence changer le nom de session grâce à ini_set() ou session_name() donnera une session sans les informations de progression du téléversement.


Sessions et Sécurité

Sommaire

  • Gestion basique des sessions
  • Sécurisation des configurations INI de session

Lien externe : » Session fixation

La gestion des sessions HTTP représente le cœur 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 sécurité appropriés.


Gestion basique des sessions

Sécurité des sessions

Le module de session ne peut pas garantir que les informations stockées dans une session ne sont vues uniquement par l'utilisateur qui a créé la session. Des mesures supplémentaires sont nécessaires pour protégrer la confidentialité de la session, suivant la valeur qu'on lui associe.

L'importance des données stockées dans une session doit être évaluée et des protections supplémentaires peuvent être déployées ; ceci a obligatoirement un coût tel qu'être moins pratique pour l'utilisateur. Par exemple, pour protéger les utilisateurs d'une tactique simple, la directive session.use_only_cookies doit être activée. Dans ce cas, les cookies doivent être activés obligatoirement côté client sinon les sessions ne fonctionneront pas.

Il y a plusieurs façons de divulguer des identifiants de session à des tierces personnes. I.E. injections Javascripts, identifiants de session dans les URLs, reniflement de paquets, accès physique au périphérique, etc. Un identifiant de session divulgué permet à un tierce d'accéder à toutes les ressources associées avec cet identifiant. Tout d'abord, les URLs contenant les identifiants de session. S'il y a des liens vers des sites ou des ressources externes, l'URL incluant l'identifiant de session doit être stockée dans les logs refferer du site externe. Si ces données ne sont pas chiffrées, les identifiants de session vont être transmises en texte clair sur le réseau. La solution ici est d'implémenter SSL/TLS sur le serveur et le rendre madataire pour les utilisateurs. HSTS devrait être utilisé pour améliorer également la sécurité.

Note: Même HTTPS ne peut protégrer la confidentialité des données dans tous les cas. Par exemple, les vulnérabilités CRIME et BEAST permettent à un attaquant de lire les données. De plus, notez que certains réseaux utilisent des proxys HTTPS MITM pour des audites. Les attaquants peuvent également mettre en place ce genre de proxy.

Gestion des sessions non adaptatives

Le gestionnaire de sessions PHP est adaptatif, par défaut. Un gestionnaire de sessions adaptatif apporte des risques supplémentaires.

Lorsque session.use_strict_mode est activée, et que le gestionnaire de sauvegarde des sessions le supporte, un identifiant de session non initialisé est rejeté, et un nouveau est créé. Ceci prévient une attaque qui force les utilisateurs à utiliser un identifiant de session connu. Un attaquant peut passer des liens ou envoyer des emails qui contient l'identifiant de session. I.e. http://example.com/page.php?PHPSESSID=123456789 si session.use_trans_sid est activé, la victime commencera une session en utilisant l'identifiant de session fourni par l'attaquant. session.use_strict_mode permet d'annuler ce type de risque.

Avertissement

Les gestionnaires de sauvegarde définis par l'utilisateur peuvent aussi supporter le mode de session strict en implémentant la validation des identifiants de session. Tous les gestionnaires de sauvegarde définis par l'utilisateur devraient implémenter la validation des identifiants de session.

Le cookie d'identifiant de session peut être défini avec les attributs domain, path, httponly, secure et, depuis PHP 7.3, SameSite. Il existe une priorité définie par les navigateurs. En utilisant les priorités, un attaquant peut définir l'identifiant de session qui peut être utilisé en permanence. L'utilisation de la directive session.use_only_cookies ne permet pas de résoudre ce problème. session.use_strict_mode permet de mitiger ce risque. Avec la directive session.use_strict_mode=On, l'identifiant de session non initialisé sera refusé.

Note: Même si la directive session.use_strict_mode limite les risques concernant le gestionnaire adaptatif de session, un attaquant peut forcer les utilisateurs à utiliser un identifiant de session non initialisé qui a été créé par l'attaquant. i.e. via des injections Javascript. Ce type d'attaque peut être limité en utilisant les recommandations de ce manuel. En suivant ce manuel, les développeurs devraient activer la directive session.use_strict_mode, utiliser les timestamps basés sur le gestionnaire de session, et regénérer les identifiants de session en utilisant la fonction session_regenerate_id() avec les procédures recommandées. Si les développers suivent tout ceci, un identifiant de session généré par un attaquant sera normalement supprimé. Lorsqu'un accès à une session obsolète survient, les développeurs devraient sauvegarder toutes les données de la session active de l'utilisateur ; ces informations seront utiles pour de futures investigations. L'utilisateur devrait être forcé à se déconnecter de toutes les sessions, i.e. le forçant ainsi à s'identifier de nouveau. Ceci permet de contrer les attaques en utilisant des sessions volées.

Avertissement

L'accès à une session obsolète ne veut pas forcément dire qu'il s'agit d'une attaque. Un réseau instable et/ou l'effacement immédiat de la session active va conduire des utilisateurs légitimes à utiliser des sessions obsolètes.

Depuis 7.1.0, la fonction session_create_id() a été ajoutée. Cette fonction permet d'accéder à toutes les sessions actives d'un utilisateur en préfixant les identifiants de session avec l'identifiant de l'utilisateur. L'activation de la directive session.use_strict_mode est vital dans cette configuration. Sinon, les utilisateurs malicieux peuvent définir des identifiants de sessions pour les autres utilisateurs.

Note: Les utilisateurs des versions antérieures à PHP 7.1.0 doivent utiliser CSPRNG, i.e. /dev/urandom, ou la fonction random_bytes() et les fonctions de hachage pour générer un nouvel identifiant de session. La fonction session_create_id() a des mécanismes de détection de collision, et génère un identifiant de session suivant les configurations INI des sessions. L'utilisation de la fonction session_create_id() est recommandée.

Regénération d'un identifiant de session

La directive session.use_strict_mode est un bon compromis mais n'est pas suffisant. Les développeurs doivent également utiliser la fonction session_regenerate_id() pour la sécurité des sessions.

La regénération d'un identifiant de session réduit le risque de vol d'identifiants de session, aussi, la fonction session_regenerate_id() doit être utilisée périodiquement; i.e. Regénérer l'identifiant de session toutes les 15 minutes pour sécuriser le contenu sensible. Même dans le cas où un identifiant de session est volé, à la fois le légitime utilisateur et l'attaquant aura sa session qui va expirer. En d'autres termes, l'accès au contenu par l'utilisateur ou l'attaquant va générer une erreur d'accès à une session obsolète.

Les identifiants de session doivent être regénérés lorsque les privilèges de l'utilisateur sont élevés, comme après une authentification. La fonction session_regenerate_id() doit être appelée avant le stockage des informations d'authentification dans $_SESSION. (la fonction session_regenerate_id() sauvegarde les données de session courantes automatiquement afin de sauvegarder les timestamps/etc... dans la session courante.) Assurez-vous que la nouvelle session contient le drapeau d'authentification.

Les développeurs ne doivent pas se baser sur l'expiration de l'identifiant de session définie par la directive session.gc_maxlifetime. Les attaquants peuvent accéder à l'identifiant de session de la victime de façon périodique pour éviter son expiration, et permettre son exploitation y compris avec des sessions authentifiées.

Au lieu de celà, les développeurs doivent implémenter un timestamp basé sur la gestion des données de session.

Avertissement

Même si le gestionnaire de session peut gérer les timestamps de façon transparente, cette fonctionnalité n'est pas implémentée. Les données des anciennes sessions doivent être conservés tant que le récupérateur de mémoire ne soit passé. Simultanément, les développeurs doivent s'assurer eux-même que les données de session obsolète soient effectivement effacées. Cependant, les développeurs ne doivent pas supprimer les données de session active trop rapidement. i.e. session_regenerate_id(true); et session_destroy() ne doivent jamais être appelés en même temps pour une session active. Ca peut paraitre contradictoire, mais c'est une exigence du mandataire.

session_regenerate_id() n'effacera pas les sessions anciennes par défaut. Les sessions authentifiées obsolètes peuvent être présente pour être utilisées. Les développeurs doivent s'assurer que les sessions anciennes ne soient pas utilisées par tout le monde. Ils doivent interdire l'accès aux données de session obsolète en utilisant eux-même des timestamps.

Avertissement

La suppression soudaine d'une session active produit des effets de bords indésirables. Les sessions peuvent disparaître lorsqu'il y a des connexions concurentes sur l'application web et/ou lorsque le réseau est instable.

Les accès potentiellement malicieux sont indétectables avec la suppression soudaine d'une session.

Au lieu de supprimer les sessions osbolètes immédiatement, les développeurs doivent définir un court temps d'expiration (timestamp) dans $_SESSION, et interdire l'accès aux données de session.

Les développeurs ne doivent pas interdire l'accès aux données des sessions anciennes immédiatement après l'exécution de la fonction session_regenerate_id(). L'accès doit être interdit à un stade ultérieure ; i.e. quelques secondes après pour les réseaux stables, comme un réseau filaire et quelques minutes après pour les réseaux instables comme des téléphones mobiles ou des réseaux Wi-Fi.

Si un utilisateur accède à une session obsolète (session ayant expirée), l'accès à cette session doit être refusé. Il est également recommandé de supprimer le statut d'authentification de toutes les sessions utilisateurs sinon cela peut représenter un axe d'attaque.

L'utilisation prore de la directive session.use_only_cookies et de la fonction session_regenerate_id() peuvent causer des DoS personnel avec des cookies non-supprimés définis par les attaquants. Dans ce cas, les développeurs peuvent inviter les utilisateurs à supprimer les cookies et les avertir qu'ils peuvent rencontrer un problème de sécurité. Les attaquants peuvent définir des cookies malicieux via une application web vulnérable, un plugin de navigateur exposé ou vicié, un périphérique physique compromis, etc...

Avertissement

Ne vous méprenez pas sur le risque DoS. session.use_strict_mode=On est obligatoire pour la sécurité des identifiants de session ! Tous les sites sont encouragés à activer la directive session.use_strict_mode.

DoS peut uniquement survenir lorsque le compte subit une attque. Une injection Javascript dans une application représente la plupart des axes d'attaque.

Suppression des données de session

Les données de sessions obsolètes doivent être inaccessibles et doivent être supprimées. Le module courant de session ne prend pas en charge cet aspect.

Les données de sessions oàbsolètes doivent être supprimées aussi vite que possible. Cependant, les sessions actives ne doivent pas être supprimées instantanément. Pour satisfaire ces recommandations, les développeurs doivent implémenter un gestionnaire des données de session basé sur un timestamp eux-même.

Définissez et gérez l'expiration du timestamp dans la variable globale $_SESSION. Interdisez l'accès aux données de sessions périmées. Lorsqu'un accès à des données de session obsolète est détecté, il convient de supprimer toutes les status authentifiés des sessions utilisateurs et forcer les utilisateurs à s'authentifier de nouveau. L'accès à des données de sessions obsolètes peut représenter une attaque. Pour arriver à cette fin, les developpeurs doivent suivre tous les sessions actives de tous les utilisateurs.

Note: L'accès à une session obsolète peut également survenir à cause d'un réseau instable et/ou d'un accès concurent à une site web. i.e. le serveur tente de définir un nouvel identifiant de session via un cookie, mais le paquet Set-Cookie n'a jamais atteint le client en raison d'une perte de connexion. Une connexion peut créer un nouvel identifiant de session via la fonction session_regenerate_id(), mais une atre connexion concurente peut ne pas avoir encore deçu l'identifiant de session. Toutefois, les développeurs doivent interdire l'accès à une session obsolète à un moment plus éloingé. i.e. la gestion des sessions basés sur le timestamp est obligatoire.

En résumé, les données de sessions ne doivent pas être détruite avec la fonction session_regenerate_id(), ni avec la fonction session_destroy(), mais les timestamps doivent être utilisés pour contrôler l'accès aux données de session. Laissez la fonction session_gc() supprimer les données obsolètes depuis le stockage des données de sessions.

Session et Verrouillage

Les données de session sont verrouillées par défaut pour éviter les accès concurent. Le verrouillage est obligatoire pour conserver une consistance des données de session au travers les requêtes.

Cependant, le verrouillage de session peut être utilisé par les attaquants pour réaliser des attaques DoS. Pour minimiser le risque d'une attaque DoS par verrouillage de session, il convient de minimiser les verrous. Utilisez des données en lecture seule lorsque les données de session n'ont pas besoin d'être mises à jour. Utilisez l'option 'read_and_close' avec la fonction session_start(). session_start(['read_and_close'=>1]); va clôre la session aussi vite que possible après la mise à jour de la variable globale $_SESSION en utilisant la fonction session_commit().

Le module de session courant ne détecte pas toutes les modifications de la variable $_SESSION lorsque la session est inactive. Il en va de la responsabilité du développeur de ne pas modifier la variable $_SESSION lorsque la session est inactive.

Sessions actives

Les développeurs doivent conserver une traces de toutes les sessions actives de chaque utilisateur, et leur notifier le nombre de sessions actives, depuis quelle adresse IP, depuis combien de temps, etc. PHP ne conserve pas de traces de ces informations. Les développeurs sont supposés le faire eux même.

Il existe différentes façons de faire celà. Une implémentation possible est de définir une base de données qui conserve une trace des données nécessaires, et y stoquer toutes les informations pertinentes. Depuis que les données de session sont GCed, les développeurs doivent faire attention aux données GCed pour maintenir la base de données des sessions actives consistante.

Une des implémentations simple est "l'identifiant utilisateur préfixant l'identifiant de session" et stoquer les informations nécessaires dans la variable $_SESSION. La plupart des bases de données sont relativement performantes pour sélectionner un préfixe sous la forme d'une chaîne de caractères. Les développeurs DOIVENT utiliser la fonction session_regenerate_id() ainsi que la fonction session_create_id() pour celà.

Avertissement

N'utilisez jamais de données confidentielles comme préfixe. Si l'identifiant utilisateur est confidentiel, vous devriez utiliser la fonction hash_hmac().

Avertissement

L'activation de la directive session.use_strict_mode est obligatoire pour ce type de configuration. Assurez vous qu'il est activé. Sinon, la base de données des sessions actives peut être compromise.

Le gestionnaire de session basé sur un timestamp est obligatoire pour détecter l'accès à des sessions obsolètes. Lorsque l'accès à une session obsolète est détecté, le drapeau d'authentification doit être supprimé de toutes les sessions actives de l'utilisateur. Ceci permet d'éviter aux attaquants de continuer à exploiter les sessions volées.

Session et l'auto-identification

Les développeurs ne doivent pas utiliser d'identifiants de session avec une grande durée de vie pour l'auto-identification, car cela accroit le risque d'utiliser des sessions volées. Une fonctionnalité d'auto-identification doit être implémenté par le développeur.

Utilisez une clé de hachage sécurisé à usage unique comme clé d'auto-identification en utilisant la fonction setcookie(). Utilisez un hachage sécurisé plus fort que SHA-2. i.e. SHA-256 ou supérieur avec des données aléatoires depuis la fonction random_bytes() ou via /dev/urandom.

Si l'utilisateur est non authentifié, vérifiez si la clé d'auto-identification à usage unique est valide ou non. Dans ce cas où elle est valide, authentifiez l'utilisateur et définissez une nouvelle clé de hachage sécurisée à usage unique. Une clé d'auto-identification ne doit être utilisée qu'une seule fois, i.e. n'utilsez jamais une clé d'auto-identification, et regénérez la toujours.

Une clé d'auto-identification est une clé d'authentification avec une longue durée, elle doit être protégée autant que possible. Utilisez les attributs de cookie path/httponly/secure/SameSite pour la sécuriter. i.e. ne transmettez jamais la clé d'auto-identification tant que celà n'est pas nécessaire.

Les développeurs doivent implémenter les fonctionnalités qui désactivent l'auto-identification, et suppriment les cookies contenant les clés d'auto-identification non nécessaires.

Attaques CSRF (Cross-Site Request Forgeries)

Les sessions et les authentifications ne protègent pas contre les attaques CSRF. Les développeurs doivent implémenter des protections CRSF eux mêmes.

La fonction output_add_rewrite_var() peut être utilisée pour la protection CSRF. Référez vous aux pages du manuel pour plus de détails.

Note: PHP, avant sa version 7.2.0, utilise le même buffer de sortie et les mêmes configurations INI que la configuration trans-sid. Toutefois, l'utilisation de la fonction output_add_rewrite_var() avec les versions de PHP antérieures à 7.2.0 n'est pas conseillé.

La plupart des frameworks d'applications web supporte la protection CSRF. Référez vous au manuel de votre framework d'application web pour plus de détails.

Depuis PHP 7.3, l'attribut SameSite du cookie de session peut être défini. Ceci est une mesure supplémentaire qui peut minimiser les vulnérabilités CSRF.


Sécurisation des configurations INI de session

En sécurisant les configurations INI de sessions, les développeurs peuvent éprouver la sécurité des sessions. Beaucoup de configurations INI n'ont pas de configuration recommandée. Les développeurs sont responsables de la bonne configuration des sessions.

  • session.cookie_lifetime=0

    La valeur 0 a une signification importante. Elle informe les navigateurs de ne pas stocker le cookie dans un espace de stockage permanent. Aussi, lorsque le navigateur se ferme, le cookie d'identification de session est supprimé immédiatement. Si les développeurs définissent une valeur différente de 0, cela permet aux autres utilisateurs d'utiliser l'identifiant de session. La plupart des application devrait utiliser "0" comme valeur.

    Si une fonctionnalité d'auto-identification est désirée, les développeurs doivent implémenter leur propre système d'auto-identification sécurité. N'utilisez pas des idenfiants de session à longue durée pour celà. Pour plus d'informations, veuillez vous rapporter à la bonne section de cette documentation.

  • session.use_cookies=On

    session.use_only_cookies=On

    Bien que les cookies HTTP souffrent de soucis techniques, ils restent la façon préférée de gérer les identifiants de sessions. N'utilisez que les cookies pour la gestion des identifiants de sessions lorsque cela est possible. La plupart des applications doivent utiliser un cookie pour l'identifiant de session.

    Si session.use_only_cookies=Off, le module de session utilisera les valeurs de l'identifiant de sessions définies par les variables GET ou POST fournies, et le cookie de l'identifiant de session ne sera pas initialisé.

  • session.use_strict_mode=On

    Bien que l'activation de session.use_strict_mode soit obligatoire pour la sécurité des sessions, cette directive est désactivée par défaut.

    Ce mode évite que le module de session utilise un identifiant de session non initialisé. Dit différemment, le module de session ne va accepter que les identifiants de sessions valides générés par le module de session. Il va rejeter tous les identifiants de session fournis par les utilisateurs.

    En raison de la spécification des cookies, les attaquants sont capable de placer des cookies contenant les identifiants de sessions en configurant localement une base de données de cookie ou par injections Javascript. session.use_strict_mode peut éviter qu'un attaquant n'initialise un identifiant de session.

    Note:

    Les attaquants peuvent initialiser un identifiant de session avec leur propre périphérique, et peuvent définir l'identifiant de session de leur victime. Ils doivent alors conserver l'identifiant de session actif pour pouvoir en abuser. Les attaquants doivent passer par bien d'autres étapes pour réussir leur attaque dans ce scénario. Aussi, l'utilisation de la directive session.use_strict_mode permet de limiter les risques.

  • session.cookie_httponly=On

    Permet de refuser l'accès à un cookie de session depuis javascript. Cette configuration évite qu'un cookie ne soit corrompu par une injection Javascript.

    Il est possible d'utiliser un identifiant de session comme jeton CSRF, mais ce n'est pas recommandé. Par exemple, des sources HTML peuvent être sauvegardées et envoyées à d'autres utilisateurs. Les développeurs ne doivent pas écrire les identifiants de session dans les pages web pour des raisons de sécurité. Toutes les applications web doivent utiliser l'attribut httponly pour le cookie contenant l'identifiant de session.

    Note:

    Le jeton CSRF doit être renouvellé périodiquement, tout comme l'identifiant de session.

  • session.cookie_secure=On

    Permet d'accéder au cookie d'identifiant de session uniquement lorsque le protocole est HTTPS. Si un site web n'est accessible que par HTTPS, cette directive doit être activée.

    HSTS doit être utilisé pour les sites web accessibles que par HTTPS.

  • session.cookie_samesite="Lax" ou session.cookie_samesite="Strict"

    Depuis PHP 7.3, l'attribut "SameSite" peut être défini pour le cookie d'identifiant de session. Cet attribut est une façon de mitiger les attaques CSRF (Cross Site Request Forgery).

    La différence entre Lax et Strict est l'accessibilité du cookie dans les requêtes originaires d'autres domaines employant la méthode HTTP GET. Les cookies utilisant Lax seront accessible via une requête GET originaire d'un autre domaine, alors que les cookies utilisant Strict ne le seront pas..

  • session.gc_maxlifetime=[choisissez le plus petit possible]

    session.gc_maxlifetime est une configuration pour supprimer l'identifiant de session obsolète. Le fait de se reposer entièrement sur cette configuration n'est pas recommandé. Les développeurs doivent gérer la durée de vie des session avec un timestamp par eux même.

    Le GC des sessions (garbage collection) est mieux réalisé en utilisant la fonction session_gc(). La fonction session_gc() doit être exécutée par un gestionnaire de tâches ; i.e. un cron sur les systèmes Unix.

    GC est exécuté par probabilité, par défaut. Cette configuration ne garantie pas que les anciennes sessions soient supprimées. Bien que les développeurs ne doivent pas s'appuyer sur ce paramètre, il est recommandé tout de même de le définir à une valeur la plus petite possible. Il convient d'ajuster les directives session.gc_probability et session.gc_divisor de sorte à ce que les sessions obsolètes soient supprimées à fréquence appropriée. Si la fonctionnalité d'auto-identification est nécessaire, les développeurs doivent implémenter leur propre fonctionnalité d'auto-identification sécurisée ; voir ci-dessous pour plus d'informations. N'utilisez jamais l'identifiant de session de longue durée pour réaliser ce genre de fonctionnalité.

    Note:

    Quelques modules de gestion de sauvegarde des sessions n'utilisent pas cette fonctionnalité basé sur l'expiration et sur la probabilité ; i.e. memcached, memcache. Référez vous à la documentation de ces gestionnaires de sauvegarde des sessions pour plus de détails.

  • session.use_trans_sid=Off

    L'utilisation d'un gestionnaire d'identifiants de sessions transparent n'est pas interdit. Les développeurs doivent l'employer lorsque nécessaire. Pourtant, la désactivation de la gestion des identifiants de session de façon transparente permet de sécuriser un peu plus les identifiants de session en éliminant la possibilité d'une injection d'identifiant de sessions ou de fuite de cet identifiant.

    Note:

    L'identifiant de session peut fuiter depuis des URLs sauvegardées, des URLs dans des emails, d'une source HTML sauvegardée, etc...

  • session.trans_sid_tags=[drapeaux limités]

    (PHP 7.1.0 >=) Les développers ne doivent pas réécrire de drapeaux HTML non nécessaires. La valeur par défaut doit être suffisante pour la plupart des utilisations. Pour les versions de PHP plus anciennes, utilisez plutôt url_rewriter.tags.

  • session.trans_sid_hosts=[hôtes limités]

    (PHP 7.1.0 >=) Ce paramètre définit une liste blanche des hôtes qui sont autorisés à réécrire les identifiants de session transparents. Ne jamais ajouter d'hôte qui ne sont pas de confiance ! Le module de session autorise uniquement $_SERVER['HTTP_HOST'] lorsque ce paramètre est vide.

  • session.referer_check=[URL d'origine]

    Lorsque le paramètre session.use_trans_sid est actif. Ce paramètre réduit les risques d'injection d'identifiant de session. Si un site web est http://example.com/, définissez comme valeur à ce paramètre http://example.com/. Notez que les navigateurs HTTPS n'envoient pas l'en-tête referrer. Les navigateurs peuvent ne pas envoyer l'en-tête referrer de part leur propre configuration. Aussi, ce paramètre ne peut pas être considéré comme une mesure fiable de sécurité. Malgré tout, son utilisation est recommandée.

  • session.cache_limiter=nocache

    S'assure que le contenu HTTP n'est pas mis en cache pour les sessions authentifiées. Permet la mise en cache que pour les contenus qui ne sont pas privés. Sinon, le contenu sera exposé. La valeur "private" doit être employé si le contenu HTTP n'inclut pas des données sensibles d'un point de vue sécurité. Notez que "private" peut transmettre des données privées mises en cache pour les clients partagés. "public" doit être uniquement utilisé lorsque le contenu HTML ne contient aucune donnée privée.

  • session.sid_length="48"

    (PHP 7.1.0 >=) La longueur des identifiants de session permet d'avoir des identifiants de session plus fort. Les développeurs doivent utiliser des identifiants de session d'au moins 32 caractères. Au moins 26 caractères sont requis lorsque session.sid_bits_per_character="5".

  • session.sid_bits_per_character="6"

    (PHP 7.1.0 >=) Le nombre d'octets présents dans un caractère d'identifiant de sessions.

  • session.hash_function="sha256"

    (PHP 7.1.0 <) Une fonction de hachage forte va générer un identifiant de session fort. Bien qu'une collision de hachage soit peu probable avec des algorithme de hachage MD5, les développeurs doivent utiliser SHA-2 ou un algorithme de hachage plus fort comme sha384 et sha512. Les développeurs doivent s'assurer d'une longueur suffisante de l'entropie pour la fonction de hachage utilisée.

  • session.save_path=[dossier non lisible par tout le monde]

    Si ce paramètre est définit à un dossier accessible en lecture par tout le monde, comme /tmp (par défaut), les autres utilisateurs du serveur seront capables de récupérer les sessions en listant les fichiers présents dans ce répertoire.


Fonctions Session

Sommaire

  • session_abort — Abandonne les changements sur le tableau de session et termine la session
  • session_cache_expire — Récupère et/ou définie le 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 — Créer un nouvel ID de session
  • 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 — Exécute le ramasse miette des données de session
  • session_get_cookie_params — Lit la configuration du cookie de session
  • session_id — Lit et/ou modifie l'identifiant courant de 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_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_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, PHP 8)

session_abort — Abandonne les changements sur le tableau de session et termine la session

Description

session_abort(): bool

session_abort() termine la session sans sauver les données. Les valeurs originales de la session sont conservé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.

Historique

Version | Description
7.2.0 | Le type de retour de cette fonction est désormais booléen. Auparavant, c'était void.

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


Récupère et/ou définie le délai d'expiration du cache

  • « session_abort
  • session_cache_limiter »
  • PHP Manual
  • Fonctions Session
  • Récupère et/ou définie le délai d'expiration du cache

session_cache_expire

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

session_cache_expire — Récupère et/ou définie le délai d'expiration du cache

Description

session_cache_expire(?int $value = null): int|false

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

value

Si value est fourni et non null, la configuration actuelle de cache expire sera remplacée par value.

Note: La directive value 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. En cas d'échec de modification de la valeur, false est retourné.

Historique

Version | Description
8.0.0 | value est désormais nullable.

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, PHP 8)

session_cache_limiter — Lit et/ou modifie le limiteur de cache de session

Description

session_cache_limiter(?string $value = null): string|false

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

value

Si value est fourni et non null, 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. En cas d'échec, false est retourné.

Historique

Version | Description
8.0.0 | value est désormais nullable.

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, PHP 8)

session_commit — Alias de session_write_close()

Description

Cette fonction est un alias de : session_write_close().


Créer un nouvel ID de session

  • « session_commit
  • session_decode »
  • PHP Manual
  • Fonctions Session
  • Créer un nouvel ID de session

session_create_id

(PHP 7 >= 7.1.0, PHP 8)

session_create_id — Créer un nouvel ID de session

Description

session_create_id(string $prefix = ""): string|false

session_create_id() est utilisé pour créer un nouvel ID de session pour la session courante. Ceci retourne un ID de session sans colision.

Si la session n'est pas active, la vérification de colision est omise.

L'ID de session est créé en accord avec les paramètres php.ini.

Il est important d'utiliser le même ID utilisateur de votre serveur web pour le script de tâche de Ramasse-miettes (Garbage Collection). Sans quoi, vous risquez d'avoir des problèmes de permissions particulièrement avec les gestionnaires de sauvegarde des fichiers.

Liste de paramètres

prefix

Si prefix est spécifié, le nouvel ID de session est préfixé par prefix. Pas tous les caractères sont autorisés dans l'ID de session. Les caractères parmi a-z A-Z 0-9 , (virgule) et - (moins) sont autorisés..

Valeurs de retour

session_create_id() retourne un nouvel ID de session sans collision pour la session courante. Si c'est utilisé sans une session active, la vérification de collision est omise. En cas d'échec, false est retourné.

Exemples

Exemple #1 Exemple de session_create_id() avec session_regenerate_id()

<?php
// Ma fonction de session start support la gestion d'horodatage
function my_session_start() {
session_start();
// N'autorise pas l'utilisation des anciens ID de session
if (!empty($_SESSION['deleted_time']) && $_SESSION['deleted_time'] < time() - 180) {
session_destroy();
session_start();
}
}

// Ma fonction de regénération d'ID
function my_session_regenerate_id() {
// Appel à session_create_id() quand la session est active
// pour être sûr qu'il n'y a pas de colision.
if (session_status() != PHP_SESSION_ACTIVE) {
session_start();
}
// AVERTISSEMENT: N'utiliser jamais des chaînes confidentielle comme préfix !
$newid = session_create_id('myprefix-');
// Définit l'horodatage de suppression.
// Les données de session ne doivent pas être supprimer immédiatement pour certaines raisons.
$_SESSION['deleted_time'] = time();
// Termine la session
session_commit();
// Assurez vous d'accepter les ID de session définit par l'utilisateur
// NOTE: Vous devez activer use_strict_mode pour les opérations normales.
ini_set('session.use_strict_mode', 0);
// Définir un nouvel ID de session personalisé
session_id($newid);
// Démarrage avec un ID de session personalisé
session_start();
}

// Assurez vous que use_strict_mode est activé.
// use_strict_mode est obligatoire pour des raisons de sécurités.
ini_set('session.use_strict_mode', 1);
my_session_start();

// L'ID de session doit être regénéré quand
// - Un utilisateur se connecte
// - Un utilisateur se déconnecte
// - Une certaine période s'est écoulé
my_session_regenerate_id();

// Logique d'application
?>

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
  • SessionHandler::create_sid() - Retourne un nouvel ID de session


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, PHP 8)

session_decode — Décode les données encodées de session

Description

session_decode(string $data): bool

session_decode() décode les données de sessions sérialisées fournies dans le paramètre $data, et peuple la variable superglobale $_SESSION.

Par défaut, la méthode de désérialisation utilisée, est interne à PHP et n'est pas la même que la fonction unserialize(). La méthode de sérialisation peut être définie en utilisant 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, PHP 8)

session_destroy — Détruit une session

Description

session_destroy(): bool

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.

Note: Vous n'avez pas besoin d'appeler session_destroy() depuis le programme généralement. Nettoyer le tableau $_SESSION plutôt que de détruire les données de session.

Pour détruire complètement une session, 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.

Quand session.use_strict_mode est activé. Vous n'avez pas besoin d'effacer le cookies d'ID de session obsolète car le module de session n'accepte pas les cookies d'ID de sessions quand il n'y a pas données associer avec ces ID de sessions et définira un nouvel cookie d'ID de session. Activer session.use_strict_mode est recommandé pour tous les sites.

Avertissement

La suppression immédiate d'une session peut causer des résultats inattendus. Quand il y a des requêtes simultanées, les autres connexions peuvent soudainement perdre des données de session. Par exemple des requêtes depuis JavaScript et/ou des requêtes depuis des liens URL.

Bien que le module de session actuel n'accepte pas un cookie d'ID de session vide, mais la suppression immédiate de session peut provoquer un cookie d'ID de session vide à cause d'une condition de concurrence côté client (navigateur). Ceci provoquera la création de beaucoup d'ID de session inutile par le client.

Pour éviter ceci, vous devez définir un horodatage à $_SESSION et refuser l'accès à toutes les dates ultérieures. Ou assurer vous que votre application n'a pas de requêtes simultanées. Ceci s'applique aussi à session_regenerate_id().

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 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();
?>

Voir aussi

  • session.use_strict_mode
  • session_reset() - Réinitialise le tableau de session avec les valeurs originales
  • session_regenerate_id() - Remplace l'identifiant de session courant par un nouveau
  • 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, PHP 8)

session_encode — Encode les données de session

Description

session_encode(): string|false

session_encode() retourne une chaîne sérialisée contenant les variables de la session courante encodées stockées dans la variable superglobale $_SESSION.

Par défaut, la méthode de sérialisation utilisé est interne à PHP, et n'est pas la même que serialize(). La méthode de sérialisation peut être définie en utilisant l'option de configuration session.serialize_handler.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le contenu encodé de la session courante, ou false si une erreur survient.

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


Exécute le ramasse miette des données de session

  • « session_encode
  • session_get_cookie_params »
  • PHP Manual
  • Fonctions Session
  • Exécute le ramasse miette des données de session

session_gc

(PHP 7 >= 7.1.0, PHP 8)

session_gc — Exécute le ramasse miette des données de session

Description

session_gc(): int|false

session_gc() est utilisé pour exécuter le ramasse miette (Garbage Collection abrégée GC). PHP utilise une méthode probabiliste pour exécuter le ramasse miette de session par défaut.

Le ramassage de miette (GC) basé sur une méthode probabiliste fonctionne quelque peu mais a quelques problèmes. 1) Les données de session des sites à faible traffic ne seront peut être pas supprimés durant la durée préféré. 2) Les sites à fort traffic exécuteront potentiellement le ramasse miette à une trop grande fréquence. 3) Le ramasse miette est exécuté sur une requête utilisateur et celui-ci ressentira une latence due au ramasse miette.

Par conséquent, il est recommandé d'exécuter le ramasse miette périodiquement sur les systèmes de productions, par exemple, "cron" pour les systèmes de type UNIX. Assurez-vous de désactiver le ramasse miette à méthode probabiliste en définissant session.gc_probability à 0.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

session_gc() retourne le nombre de données de session effacé en tant que succès, false en cas d'échec.

Les anciens gestionnaire de sauvegarde ne retourne pas le nombre de données de session effacé mais seulement le drapeau de succès/échec. Dans ce cas là, le nombre de données de session effacé est 1 quelque soit le nombre actuel de données effacé.

Exemples

Exemple #1 Exemple de session_gc() pour les planificateurs de tâches comme cron

<?php
// Note: Ce script devrait être exécuté par le même utilisateur que le processus du serveur web.

// Nécessite l'activation des sessions pour initialiser l'accès au gestionnaire de sauvegarde des sessions
session_start();

// Exécuter le Ramasse Miette immédiatement
session_gc();

// Effacer l'ID de session créé par session_gc()
session_destroy();
?>

Exemple #2 Exemple de session_gc() pour des scripts accessible par l'utilisateur

<?php
// Note: il est recommandé que session_gc() soit utilisé par un planificateur de tâches,
// mais il peut être utilisé de la façon suivante.

// Utilisé pour vérifier l'heure de la dernière utilisation du ramasse miette
$gc_time = '/tmp/php_session_last_gc';
$gc_period = 1800;

session_start();
// Exécuter le ramasse miette seulement quand la période s'est écoulée.
// Appeler session_gc() à chaque requête est un gaspillage de ressource.
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, PHP 8)

session_get_cookie_params — Lit la configuration du cookie de session

Description

session_get_cookie_params(): array

Lit la configuration du cookie de session.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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.
  • "samesite" : Contrôle l'envoie entre domaine (cross-domain) du cookie.

Historique

Version | Description
7.3.0 | L'entrée "samesite" 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.cookie_samesite
  • 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_module_name »
  • PHP Manual
  • Fonctions Session
  • Lit et/ou modifie l'identifiant courant de session

session_id

(PHP 4, PHP 5, PHP 7, PHP 8)

session_id — Lit et/ou modifie l'identifiant courant de session

Description

session_id(?string $id = null): string|false

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 et non null, 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 , (virgule) et - (moins)!

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). En cas d'échec, false est retourné.

Historique

Version | Description
8.0.0 | id est désormais nullable.

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


Lit et/ou modifie le module de session courant

  • « session_id
  • session_name »
  • PHP Manual
  • Fonctions Session
  • Lit et/ou modifie le module de session courant

session_module_name

(PHP 4, PHP 5, PHP 7, PHP 8)

session_module_name — Lit et/ou modifie le module de session courant

Description

session_module_name(?string $module = null): string|false

session_module_name() récupère le nom du module courant de session, qui est aussi connue en tant que session.save_handler.

Liste de paramètres

module

Si module est fourni et non null, cette valeur sera alors utilisée, et remplacera la valeur courante. Passer "user" à ce paramètre est interdit. À la place session_set_save_handler() doit être appellé pour définir un gestionnaire de session définit par l'utilisateur.

Valeurs de retour

Retourne le nom du module courant de session, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | module est désormais nullable.
7.2.0 | Il est désormais explicitement interdit de définir le nom du mode en tant que "user". Auparavent, ceci était silencieusement ignoré.


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, PHP 8)

session_name — Lit et/ou modifie le nom de la session

Description

session_name(?string $name = null): string|false

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.

Si un nouveau nom de session name est fourni, session_name() modifie le cookie HTTP (et le contenue de sortie quand session.transid est activé). Une fois que le cookie HTTP est envoyé, session_name() émet une erreur. session_name() doit être appelé avant session_start() pour que la session fonctionne correctement.

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 session_start() soit appelé).

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 et non null, 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é, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | name est désormais nullable.
7.2.0 | session_name() vérifie l'état de la session, auparavant elle vérifiait uniquement l'état du cookie. Par conséquent, les versions plus anciennes de session_name() autorise l'appel de session_name() après session_start() ce qui peut causer le plantage de PHP et peut donner lieu à des comportements étranges.

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, PHP 8)

session_regenerate_id — Remplace l'identifiant de session courant par un nouveau

Description

session_regenerate_id(bool $delete_old_session = false): bool

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é.

Avertissement

Actuellement, session_regenerate_id ne gère pas bien un réseau instable. Par ex. réseau mobile et WiFi. Par conséquent, vous pouvez rencontrer une perte de session en appelant session_regenerate_id.

Vous ne devez pas détruire les anciennes données de session immédiatement, mais devez utiliser l'horodatage de destruction et contrôler l'accès à l'ancien ID de session. Sinon, l'accès simultané à la page peut entraîner un état incohérent, ou vous avez peut-être perdu la session, ou il peut provoquer un accès concurrent côté client (navigateur) et peut créer de nombreux ID de session inutilement. La suppression immédiate de données de session désactive également la détection et la prévention d'attaque de détournement de session.

Liste de paramètres

delete_old_session

Si l'on doit effacer l'ancien fichier de session associé ou pas. Vous ne devez pas supprimer l'ancienne session si vous avez besoin d'éviter les accès concurrents causés par la suppression ou de détecter/éviter les attaques de détournement de session.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 Exemple avec session_regenerate_id()

<?php
// Note: ce code ne fonctionne pas complètement, c'est un exemple!

session_start();

// Vérifier l'horodatage de destruction
if (isset($_SESSION['destroyed'])
&& $_SESSION['destroyed'] < time() - 300) {
// Ne devrait pas se produire habituellement. Cela pourrait être une attaque
// ou en raison d'un réseau instable. Supprimez tout l'état d'authentification
// de cette session utilisateurs.
remove_all_authentication_flag_from_active_sessions($_SESSION['userid']);
throw(new DestroyedSessionAccessException);
}

$old_sessionid = session_id();

// Définir l'horodatage de déstruction
$_SESSION['destroyed'] = time(); // session_regenerate_id () enregistre les anciennes données de session

// Il suffit d'appeler session_regenerate_id() peut entraîner la perte de session, etc.
// Voir l'exemple suivant.
session_regenerate_id();

// La nouvelle session n'a pas besoin du timestamp de destruction
unset($_SESSION['destroyed']);

$new_sessionid = session_id();

echo "Ancienne Session: $old_sessionid<br />";
echo "Nouvelle Session: $new_sessionid<br />";

print_r($_SESSION);
?>

Le module de session actuel ne gère pas bien le réseau instable. Vous devez gérer l'ID de session pour éviter la perte de session par session_regenerate_id.

Exemple #2 Eviter la perte de session par session_regenerate_id()

<?php
// Note: ce code ne fonctionne pas complètement, c'est un exemple!
// my_session_start() et my_session_regenerate_id() évitent les sessions perdues
// par le réseau instable. En outre, ce code peut empêcher l'exploitation de
// session volée par les attaquants.

function my_session_start() {
session_start();
if (isset($_SESSION['destroyed'])) {
if ($_SESSION['destroyed'] < time()-300) {
// Ne devrait pas se produire habituellement. Cela pourrait être une
// attaque ou en raison d'un réseau instable. Supprimez tout l'état
// d'authentification de cette session utilisateurs.
remove_all_authentication_flag_from_active_sessions($_SESSION['userid']);
throw(new DestroyedSessionAccessException);
}
if (isset($_SESSION['new_session_id'])) {
// Pas encore complètement expiré. Pourrait être perdu cookie par réseau instable.
// Essayez à nouveau de définir le cookie d'ID de session approprié.
// Remarque: n'essayez pas de redéfinir l'ID de session si vous
// souhaitez supprimer l'état d'authentification.
session_commit();
session_id($_SESSION['new_session_id']);
// Nouvel ID de session doit exister
session_start();
return;
}
}
}

function my_session_regenerate_id() {
// Le nouvel ID de session est requis pour définir l'ID de session approprié
// lorsque l'ID de session n'est pas défini en raison d'un réseau instable.
$new_session_id = session_create_id();
$_SESSION['new_session_id'] = $new_session_id;

// Définie le timestamp de destruction
$_SESSION['destroyed'] = time();

// Ecrit et ferme la session courante
session_commit();

// Démarre la session avec un nouvel ID
session_id($new_session_id);
ini_set('session.use_strict_mode', 0);
session_start();
ini_set('session.use_strict_mode', 1);

// La nouvelle session n'en a pas besoin
unset($_SESSION['destroyed']);
unset($_SESSION['new_session_id']);
}
?>

Voir aussi

  • session_id() - Lit et/ou modifie l'identifiant courant de session
  • session_create_id() - Créer un nouvel ID de session
  • session_start() - Démarre une nouvelle session ou reprend une session existante
  • session_destroy() - Détruit une session
  • session_reset() - Réinitialise le tableau de session avec les valeurs originales
  • session_name() - Lit et/ou modifie le nom de la session


Fonction de fermeture de session

  • « session_regenerate_id
  • session_reset »
  • PHP Manual
  • Fonctions Session
  • Fonction de fermeture de session

session_register_shutdown

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

session_register_shutdown — Fonction de fermeture de session

Description

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.


Réinitialise le tableau de session avec les valeurs originales

  • « session_register_shutdown
  • 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, PHP 8)

session_reset — Réinitialise le tableau de session avec les valeurs originales

Description

session_reset(): bool

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.

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.

Historique

Version | Description
7.2.0 | Le type de retour de cette fonction est désormais booléen. Auparavant, c'était void.

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, PHP 8)

session_save_path — Lit et/ou modifie le chemin de sauvegarde des sessions

Description

session_save_path(?string $path = null): string|false

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é et non null, 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, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | path est désormais nullable.

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, PHP 8)

session_set_cookie_params — Modifie les paramètres du cookie de session

Description

session_set_cookie_params(
int $lifetime_or_options,
?string $path = null,
?string $domain = null,
?bool $secure = null,
?bool $httponly = null
): bool

Signature alternative disponible à partir de PHP 7.3.0 :

session_set_cookie_params(array $lifetime_or_options): bool

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_or_options

Lors de l'utilisation de la première signature, la durée de vie du cookie, en secondes. Voir la directive lifetime.

Lors de l'utilisation de la deuxième signature, un tableau associatif qui peut avoir comme clés lifetime, path, domain, secure, httponly et samesite. Les valeurs ont la même signification que celles décrits pour les paramètres avec le même nom. La valeur de l'élément samesite doit soit être Lax soit Strict. Si une options autorisé n'est pas donnée alors sa valeur par défaut sera identique à la valeur par défaut des paramètres explicite. Si l'élément samesite est omit, alors l'attribut SameSite du cookie ne sera pas définie.

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | path, domain, secure et httponly sont désormais nullable.
7.3.0 | Une signature alternative supportant un tableau d'lifetime_or_options a été ajouté. Cette signature supporte la définition de l'attribut SameSite du cookie.
7.2.0 | Cette fonction retourne true en cas de succès ou false si une erreur survient. Auparavant la fonction retourner void.

Voir aussi

  • session.cookie_lifetime
  • session.cookie_path
  • session.cookie_domain
  • session.cookie_secure
  • session.cookie_httponly
  • session.cookie_samesite
  • 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, PHP 8)

session_set_save_handler — Configure les fonctions de stockage de sessions

Description

session_set_save_handler(
callable $open,
callable $close,
callable $read,
callable $write,
callable $destroy,
callable $gc,
callable $create_sid = ?,
callable $validate_sid = ?,
callable $update_timestamp = ?
): bool

Il est possible d'enregistrer le prototype suivant :

session_set_save_handler(object $sessionhandler, bool $register_shutdown = true): bool

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, par exemple le stockage en base de données.

Liste de paramètres

Cette fonction a deux prototypes.

sessionhandler

Une instance d'une classe implémentant une ou plusieurs des interfaces suivantes: SessionHandlerInterface, et optionellement SessionIdInterface, et/ou SessionUpdateTimestampHandlerInterface, comme la classe SessionHandler, pour l'enregistrement comme gestionnaire de session.

register_shutdown

Enregistre la fonction session_write_close() comme fonction register_shutdown_function().

ou
open

Une fonction de rappel avec la signature suivante :

open(string $savePath, string $sessionName): bool

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

Une fonction de rappel avec la signature suivante :

close(): bool

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

Une fonction de rappel avec la signature suivante :

read(string $sessionId): string

La fonction de rappel read doit toujours retournée une chaîne sérialisé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 sérialisation que celui passé pour le stockage à la fonction de rappel write. La valeur retournée sera désérialisé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

Une fonction de rappel avec la signature suivante :

write(string $sessionId, string $data): bool

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 sérialisée du contenu de la variable superglobale $_SESSION. La méthode de sérialisation utilisée en interne par PHP est spécifiée via l'option de configuration session.serialize_handler.

Les données de session sérialisé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

Une fonction de rappel avec la signature suivante :

destroy(string $sessionId): bool

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

Une fonction de rappel avec la signature suivante :

gc(int $lifetime): bool

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

Une fonction de rappel avec la signature suivante :

create_sid(): string

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.

validate_sid

Une fonction de rappel avec la signature suivante :

validate_sid(string $key): bool

Cette fonction de rappel est exécuté quand une session va démarrer, un ID de session est fournie et que session.use_strict_mode est activé. key est l'ID de session à valider. Un ID de session est valide, si une session avec cet ID existe déjà. La valeur de retour devrait être true en cas de succès, false en cas d'échec.

update_timestamp

Une fonction de rappel avec la signature suivante :

update_timestamp(string $key, string $val): bool

Cette fonction de rappel est exécuté quand une session est mise à jour. key est l'ID de session, val sont les données de session. La valeur de retour devrait être true en cas de succès, false en cas d'échec.

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.

Nous montrons juste l'invocation ici, 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

Notes

Avertissement

Les gestionnaires d'écriture write et de fermeture close sont appelés après la destruction des objets, 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().

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
  • Se reporter à » save_handler.inc pour une mise en œuvre procédurales complète


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, PHP 8)

session_start — Démarre une nouvelle session ou reprend une session existante

Description

session_start(array $options = []): bool

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 fonction 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.

Liste de paramètres

options

S'il est fourni, il s'agit d'un tableau associatif d'options qui remplacera les directives de configuration de session actuellement définies. Les clés ne doivent pas inclure le préfixe session..

En plus de l'ensemble normal des directives de configuration, une option read_and_close peut également être fournie. Si la valeur est définie sur true, cela entraîne la fermeture immédiate de la session après la lecture, ce qui évite tout blocage inutile si les données de session ne sont pas modifiées.

Valeurs de retour

Retourne true si une session a pu être démarrée avec succès, et false sinon.

Historique

Version | Description
7.1.0 | session_start() retourne maintenant false et n'initialise plus $_SESSION lorsqu'il n'a pas pu démarrer la session.

Exemples

Un exemple de session de base

Exemple #1 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>';
?>

Fournir des options à session_start()

Exemple #3 Remplacement de la durée de vie du cookie

<?php
// Cela envoie un cookie persistant qui dure une journée.
session_start([
'cookie_lifetime' => 86400,
]);
?>

Exemple #4 Lecture de la session et fermeture

<?php
// Si nous savons que nous n'avons pas besoin de changer
// quoi que ce soit dans la session, nous pouvons juste
// lire et fermer tout de suite pour éviter de verrouiller
// le fichier de session et bloquer d'autres pages
session_start([
'cookie_lifetime' => 86400,
'read_and_close' => true,
]);

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_unset »
  • PHP Manual
  • Fonctions Session
  • Détermine le statut de la session courante

session_status

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

session_status — Détermine le statut de la session courante

Description

session_status(): int

session_status() est utilisée pour connaitre l'état de la session courante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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


Détruit toutes les variables d'une session

  • « session_status
  • session_write_close »
  • PHP Manual
  • Fonctions Session
  • Détruit toutes les variables d'une session

session_unset

(PHP 4, PHP 5, PHP 7, PHP 8)

session_unset — Détruit toutes les variables d'une session

Description

session_unset(): bool

session_unset() détruit toutes les variables de la session courante.

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.

Historique

Version | Description
7.2.0 | Le type de retour de cette fonction est désormais booléen. Auparavant, c'était void.

Notes

Note:

Si vous utilisez $_SESSION 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.

Note:

Utilisez seulement session_unset() pour du vieux code obsolète qui n'utilise pas $_SESSION.

Attention

Cette fonction ne fonctionne que si une session est active. Elle ne videra pas le tableau $_SESSION si la session n'a pas encore été démarrée ou si elle a déjà été détruite. Utilisez $_SESSION = [] pour supprimer toutes les variables de session même si la session n'est pas active.


É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, PHP 8)

session_write_close — Écrit les données de session et ferme la session

Description

session_write_close(): bool

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.

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.

Historique

Version | Description
7.2.0 | Le type de retour de cette fonction est désormais booléen. Auparavant, c'était void.

Voir aussi

  • session_register_shutdown() - Fonction de fermeture de session


La classe SessionHandler

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

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 sept 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

class SessionHandler implements SessionHandlerInterface, SessionIdInterface {
/* Méthodes */
public close(): bool
public create_sid(): string
public destroy(string $id): bool
public gc(int $max_lifetime): int|false
public open(string $path, string $name): bool
public read(string $id): string|false
public write(string $id, string $data): bool
}

Notes

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.

Exemples

Exemple #1 Utilisation de la classe SessionHandler pour ajouter un cryptage aux gestionnaires de sauvegarde interne de PHP.

<?php

/**
* Déchiffrement AES 256
*
* @param data $edata
* @param string $password
* @return decrypted data
*/
function decrypt($edata, $password) {
$data = base64_decode($edata);
$salt = substr($data, 0, 16);
$ct = substr($data, 16);

$rounds = 3; // depends on key length
$data00 = $password.$salt;
$hash = array();
$hash[0] = hash('sha256', $data00, true);
$result = $hash[0];
for ($i = 1; $i < $rounds; $i++) {
$hash[$i] = hash('sha256', $hash[$i - 1].$data00, true);
$result .= $hash[$i];
}
$key = substr($result, 0, 32);
$iv = substr($result, 32,16);

return openssl_decrypt($ct, 'AES-256-CBC', $key, true, $iv);
}

/**
* Chiffrement AES 256
*
* @param data $data
* @param string $password
* @return base64 encrypted data
*/
function encrypt($data, $password) {
// Générer un sel aléatoire cryptographiquement sécurisé en utilisant random_bytes()
$salt = random_bytes(16);

$salted = '';
$dx = '';
// Salt the key(32) and iv(16) = 48
while (strlen($salted) < 48) {
$dx = hash('sha256', $dx.$password.$salt, true);
$salted .= $dx;
}

$key = substr($salted, 0, 32);
$iv = substr($salted, 32,16);

$encrypted_data = openssl_encrypt($data, 'AES-256-CBC', $key, true, $iv);
return base64_encode($salt . $encrypted_data);
}

class EncryptedSessionHandler extends SessionHandler
{
private $key;

public function __construct($key)
{
$this->key = $key;
}

public function read($id)
{
$data = parent::read($id);

if (!$data) {
return "";
} else {
return decrypt($data, $this->key);
}
}

public function write($id, $data)
{
$data = encrypt($data, $this->key);

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');

$key = 'secret_string';
$handler = new EncryptedSessionHandler($key);
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, PHP 8)

SessionHandler::close — Ferme la session

Description

public SessionHandler::close(): bool

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, PHP 8)

SessionHandler::create_sid — Retourne un nouvel ID de session

Description

public SessionHandler::create_sid(): string

Génère et retourne un nouvel ID de session.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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
  • session_create_id() - Créer un nouvel ID 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, PHP 8)

SessionHandler::destroy — Détruit une session

Description

public SessionHandler::destroy(string $id): bool

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

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, PHP 8)

SessionHandler::gc — Nettoie les anciennes sessions

Description

public SessionHandler::gc(int $max_lifetime): int|false

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

max_lifetime

Les sessions qui n'auront pas été mises à jour les dernières max_lifetime secondes seront supprimées.

Valeurs de retour

Returns the number of deleted sessions on success, ou false si une erreur survient. Note this value is returned internally to PHP for processing.

Historique

Version | Description
7.1.0 | Antérieur à cette version, cette fonction retournée true en cas de succès.


Initialise une session

  • « SessionHandler::gc
  • SessionHandler::read »
  • PHP Manual
  • SessionHandler
  • Initialise une session

SessionHandler::open

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandler::open — Initialise une session

Description

public SessionHandler::open(string $path, string $name): bool

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

path

Le chemin vers l'endroit de stockage ou de récupération de la 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, PHP 8)

SessionHandler::read — Lit les données de session

Description

public SessionHandler::read(string $id): string|false

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

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 false 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, PHP 8)

SessionHandler::write — Ecrit des données dans la session

Description

public SessionHandler::write(string $id, string $data): bool

É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

id

L'ID de 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, PHP 8)

Introduction

SessionHandlerInterface est une interface qui définit un prototype minimal 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 peut 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.

Sommaire de l'Interface

interface SessionHandlerInterface {
/* Méthodes */
public close(): bool
public destroy(string $id): bool
public gc(int $max_lifetime): int|false
public open(string $path, string $name): bool
public read(string $id): string|false
public write(string $id, string $data): bool
}

Exemples

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.

Attention

Pour plus de brièveté, cet exemple omet la validation d'entrée. Toutefois, les paramètres $id sont en fait des valeurs fournies par l'utilisateur qui nécessitent une validation/assainissement appropriée pour éviter les vulnérabilités, telles que les problèmes de parcours de chemin. N'utilisez donc pas cet exemple sans modification dans les environnements de production.

<?php
class MySessionHandler implements SessionHandlerInterface
{
private $savePath;

public function open($savePath, $sessionName): bool
{
$this->savePath = $savePath;
if (!is_dir($this->savePath)) {
mkdir($this->savePath, 0777);
}

return true;
}

public function close(): bool
{
return true;
}

#[\ReturnTypeWillChange]
public function read($id)
{
return (string)@file_get_contents("$this->savePath/sess_$id");
}

public function write($id, $data): bool
{
return file_put_contents("$this->savePath/sess_$id", $data) === false ? false : true;
}

public function destroy($id): bool
{
$file = "$this->savePath/sess_$id";
if (file_exists($file)) {
unlink($file);
}

return true;
}

#[\ReturnTypeWillChange]
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, PHP 8)

SessionHandlerInterface::close — Ferme la session

Description

public SessionHandlerInterface::close(): bool

Ferme la session courante. Cette fonction est appelée automatiquement lors de la fermeture de la session, ou explicitement grâce à 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, PHP 8)

SessionHandlerInterface::destroy — Détruit une session

Description

public SessionHandlerInterface::destroy(string $id): bool

Détruit une session. Appelée par session_regenerate_id() (avec $destroy = true), session_destroy() et lorsque session_decode() échoue.

Liste de paramètres

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, PHP 8)

SessionHandlerInterface::gc — Nettoie les vieilles sessions

Description

public SessionHandlerInterface::gc(int $max_lifetime): int|false

Nettoie les vieilles sessions expirées. Appelée par session_start(), en fonction de session.gc_divisor, session.gc_probability et session.gc_maxlifetime.

Liste de paramètres

max_lifetime

Les sessions qui n'ont pas été mit à jour durant les max_lifetime dernières secondes seront supprimées.

Valeurs de retour

Returns the number of deleted sessions on success, ou false si une erreur survient. Note this value is returned internally to PHP for processing.

Historique

Version | Description
7.1.0 | Prior to this version, the function returned true on success.


Initialise la session

  • « SessionHandlerInterface::gc
  • SessionHandlerInterface::read »
  • PHP Manual
  • SessionHandlerInterface
  • Initialise la session

SessionHandlerInterface::open

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandlerInterface::open — Initialise la session

Description

public SessionHandlerInterface::open(string $path, string $name): bool

Ré-initialise une session existante ou en crée une nouvelle. Appelé lorsqu'une session est démarrée ou lors de l'appel à session_start().

Liste de paramètres

path

Le chemin où la session est stockée/récupérée.

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, PHP 8)

SessionHandlerInterface::read — Lit les données de session

Description

public SessionHandlerInterface::read(string $id): string|false

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

id

L'identifiant de session.

Valeurs de retour

Retourne les données lues encodées. Si rien n'est lu false doit être retourné. 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
  • SessionIdInterface »
  • PHP Manual
  • SessionHandlerInterface
  • Ecrit les données de session

SessionHandlerInterface::write

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandlerInterface::write — Ecrit les données de session

Description

public SessionHandlerInterface::write(string $id, string $data): bool

Écrit les données de session dans le stockage de session. Appelé par session_write_close(), lorsque session_register_shutdown() échoue, ou lors d'un arrêt normal. Note : SessionHandlerInterface::close() est appelée immédiatement après cette fonction.

PHP appellera cette fonction lorsque la session est prête à ê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 méthode de sérialisation utilisée est définie dans le paramètre session.serialize_handler.

Cette méthode est normalement appelée par PHP après que les tampons de sortie ont été fermé sauf si session_write_close() est explicitement appelé.

Liste de paramètres

id

L'identifiant de session.

data

Les données de session encodées. Ces données sont le résultat de l'encodage interne par PHP de la superglobale $_SESSION à une chaine sérialisée et le passer en tant que ce paramètre. Veuillez noter que les sessions utilise une méthode de sérialisation alternative.

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 SessionIdInterface

(PHP 5 >= 5.5.1, PHP 7, PHP 8)

Introduction

SessionIdInterface est une interface qui définit des méthodes optionelles 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 peut 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.

Sommaire de l'Interface

interface SessionIdInterface {
/* Méthodes */
public create_sid(): string
}

Sommaire

  • SessionIdInterface::create_sid — Créer un ID de session


Créer un ID de session

  • « SessionIdInterface
  • SessionUpdateTimestampHandlerInterface »
  • PHP Manual
  • SessionIdInterface
  • Créer un ID de session

SessionIdInterface::create_sid

(PHP 5 >= 5.5.1, PHP 7, PHP 8)

SessionIdInterface::create_sid — Créer un ID de session

Description

public SessionIdInterface::create_sid(): string

Crée un nouvel ID de session. Cette fonction est automatiquement exécutée quand un nouvel ID de session doit être créé.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nouvel ID de session. Il est à noter que cette valeur est retourné internellement à PHP pour du traitement.

Voir aussi

  • SessionHandler::create_sid() - Retourne un nouvel ID de session


L'interface SessionUpdateTimestampHandlerInterface

(PHP 7, PHP 8)

Introduction

SessionUpdateTimestampHandlerInterface est une interface qui définit des méthodes optionelles 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 peut 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

interface SessionUpdateTimestampHandlerInterface {
/* Méthodes */
public updateTimestamp(string $id, string $data): bool
public validateId(string $id): bool
}

Sommaire

  • SessionUpdateTimestampHandlerInterface::updateTimestamp — Mettre à jour l'horodatage
  • SessionUpdateTimestampHandlerInterface::validateId — Valider l'ID


Mettre à jour l'horodatage

  • « SessionUpdateTimestampHandlerInterface
  • SessionUpdateTimestampHandlerInterface::validateId »
  • PHP Manual
  • SessionUpdateTimestampHandlerInterface
  • Mettre à jour l'horodatage

SessionUpdateTimestampHandlerInterface::updateTimestamp

(PHP 7, PHP 8)

SessionUpdateTimestampHandlerInterface::updateTimestamp — Mettre à jour l'horodatage

Description

public SessionUpdateTimestampHandlerInterface::updateTimestamp(string $id, string $data): bool

Met à jour l'horodatage de dernière modification de la session. Cette fonction est automatiquement exécutée quand une session est mise à jour.

Liste de paramètres

id

L'ID de session.

data

Les données de session.

Valeurs de retour

Retourne true si l'horodatage a été mis à jour, false sinon. Il est à noter que cette valeur est retourné internellement à PHP pour du traitement.


Valider l'ID

  • « SessionUpdateTimestampHandlerInterface::updateTimestamp
  • Traitement du texte »
  • PHP Manual
  • SessionUpdateTimestampHandlerInterface
  • Valider l'ID

SessionUpdateTimestampHandlerInterface::validateId

(PHP 7, PHP 8)

SessionUpdateTimestampHandlerInterface::validateId — Valider l'ID

Description

public SessionUpdateTimestampHandlerInterface::validateId(string $id): bool

Valide un ID de session donnée. Un ID de session est valide, si une session avec cet ID existe déjà. Cette fonction est automatiquement exécutée quand une session est démarrée, un ID de session est fournie et que session.use_strict_mode est activé.

Liste de paramètres

id

L'ID de session

Valeurs de retour

Retourne true pour un ID valide, false sinon. Il est à noter que cette valeur est retourné internellement à PHP pour du traitement.


Traitement du texte

  • CommonMark
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • CommonMark\Node\Document — Document concrete CommonMark\Node
    • CommonMark\Node\Heading — Heading concrete CommonMark\Node
    • CommonMark\Node\Paragraph — Paragraph concrete CommonMark\Node
    • CommonMark\Node\BlockQuote — BlockQuote concrete CommonMark\Node
    • CommonMark\Node\BulletList — BulletList concrete CommonMark\Node
    • CommonMark\Node\OrderedList — OrderedList concrete CommonMark\Node
    • CommonMark\Node\Item — Item concrete CommonMark\Node
    • CommonMark\Node\Text — Text concrete CommonMark\Node
    • CommonMark\Node\Text\Strong — Strong concrete CommonMark\Node
    • CommonMark\Node\Text\Emphasis — Emphasis concrete CommonMark\Node
    • CommonMark\Node\ThematicBreak — ThematicBreak concrete CommonMark\Node
    • CommonMark\Node\SoftBreak — SoftBreak concrete CommonMark\Node
    • CommonMark\Node\LineBreak — LineBreak concrete CommonMark\Node
    • CommonMark\Node\Code — Code concrete CommonMark\Node
    • CommonMark\Node\CodeBlock — CodeBlock concrete CommonMark\Node
    • CommonMark\Node\HTMLBlock — HTMLBlock concrete CommonMark\Node
    • CommonMark\Node\HTMLInline — HTMLInline concrete CommonMark\Node
    • CommonMark\Node\Image — Image concrete CommonMark\Node
    • CommonMark\Node\Link — Link concrete CommonMark\Node
    • CommonMark\Node\CustomBlock — CustomBlock concrete CommonMark\Node
    • CommonMark\Node\CustomInline — CustomInline concrete CommonMark\Node
    • CommonMark\Node — Abstract CommonMark\Node
    • CommonMark\Interfaces\IVisitor — The CommonMark\Interfaces\IVisitor interface
    • CommonMark\Interfaces\IVisitable — The CommonMark\Interfaces\IVisitable interface
    • CommonMark\Parser — The CommonMark\Parser class
    • CommonMark\CQL — The CommonMark\CQL class
    • CommonMark Fonctions
  • Parle — Parsing and lexing
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Pattern matching — Parle pattern matching
    • Exemples
    • Parle\Lexer — The Parle\Lexer class
    • Parle\RLexer — The Parle\RLexer class
    • Parle\Parser — The Parle\Parser class
    • Parle\RParser — The Parle\RParser class
    • Parle\Stack — The Parle\Stack class
    • Parle\Token — The Parle\Token class
    • Parle\ErrorInfo — La classe Parle\ErrorInfo
    • Parle\LexerException — La classe Parle\LexerException
    • Parle\ParserException — La classe Parle\ParserException
  • PCRE — Expressions régulières (compatible Perl)
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Masques PCRE
    • Fonctions PCRE
  • 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


CommonMark

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
  • Constantes pré-définies
  • CommonMark\Node\Document — Document concrete CommonMark\Node
  • CommonMark\Node\Heading — Heading concrete CommonMark\Node
    • CommonMark\Node\Heading::__construct — Heading Construction
  • CommonMark\Node\Paragraph — Paragraph concrete CommonMark\Node
  • CommonMark\Node\BlockQuote — BlockQuote concrete CommonMark\Node
  • CommonMark\Node\BulletList — BulletList concrete CommonMark\Node
    • CommonMark\Node\BulletList::__construct — BulletList Construction
  • CommonMark\Node\OrderedList — OrderedList concrete CommonMark\Node
    • CommonMark\Node\OrderedList::__construct — OrderedList Construction
  • CommonMark\Node\Item — Item concrete CommonMark\Node
  • CommonMark\Node\Text — Text concrete CommonMark\Node
    • CommonMark\Node\Text::__construct — Text Construction
  • CommonMark\Node\Text\Strong — Strong concrete CommonMark\Node
  • CommonMark\Node\Text\Emphasis — Emphasis concrete CommonMark\Node
  • CommonMark\Node\ThematicBreak — ThematicBreak concrete CommonMark\Node
  • CommonMark\Node\SoftBreak — SoftBreak concrete CommonMark\Node
  • CommonMark\Node\LineBreak — LineBreak concrete CommonMark\Node
  • CommonMark\Node\Code — Code concrete CommonMark\Node
  • CommonMark\Node\CodeBlock — CodeBlock concrete CommonMark\Node
    • CommonMark\Node\CodeBlock::__construct — CodeBlock Construction
  • CommonMark\Node\HTMLBlock — HTMLBlock concrete CommonMark\Node
  • CommonMark\Node\HTMLInline — HTMLInline concrete CommonMark\Node
  • CommonMark\Node\Image — Image concrete CommonMark\Node
    • CommonMark\Node\Image::__construct — Image Construction
  • CommonMark\Node\Link — Link concrete CommonMark\Node
    • CommonMark\Node\Link::__construct — Link Construction
  • CommonMark\Node\CustomBlock — CustomBlock concrete CommonMark\Node
  • CommonMark\Node\CustomInline — CustomInline concrete CommonMark\Node
  • CommonMark\Node — Abstract CommonMark\Node
    • CommonMark\Node::appendChild — AST Manipulation
    • CommonMark\Node::prependChild — AST Manipulation
    • CommonMark\Node::insertAfter — AST Manipulation
    • CommonMark\Node::insertBefore — AST Manipulation
    • CommonMark\Node::replace — AST Manipulation
    • CommonMark\Node::unlink — AST Manipulation
    • CommonMark\Node::accept — Visitation
  • CommonMark\Interfaces\IVisitor — The CommonMark\Interfaces\IVisitor interface
    • CommonMark\Interfaces\IVisitor::enter — Visitation
    • CommonMark\Interfaces\IVisitor::leave — Visitation
  • CommonMark\Interfaces\IVisitable — The CommonMark\Interfaces\IVisitable interface
    • CommonMark\Interfaces\IVisitable::accept — Visitation
  • CommonMark\Parser — The CommonMark\Parser class
    • CommonMark\Parser::__construct — Parsing
    • CommonMark\Parser::parse — Parsing
    • CommonMark\Parser::finish — Parsing
  • CommonMark\CQL — The CommonMark\CQL class
    • CommonMark\CQL::__construct — CQL Construction
    • CommonMark\CQL::__invoke — CQL Execution
  • CommonMark Fonctions
    • CommonMark\Parse — Parsing
    • CommonMark\Render — Rendering
    • CommonMark\Render\HTML — Rendering
    • CommonMark\Render\Latex — Rendering
    • CommonMark\Render\Man — Rendering
    • CommonMark\Render\XML — Rendering


Introduction

This extension provides access to the reference implementation of CommonMark, a rationalized version of Markdown syntax with a specification.

Parsing:

The CommonMark extension provides a simple parsing API:

CommonMark\Parse(string $content, int $options = ?): CommonMark\Node

Rendering:

The CommonMark extension provides simple rendering API that supports multiple formats:

CommonMark\Render(CommonMark\Node $node, int $options = ?, int $width = ?): string
CommonMark\Render\HTML(CommonMark\Node $node, int $options = ?): string
CommonMark\Render\XML(CommonMark\Node $node, int $options = ?): string
CommonMark\Render\Man(CommonMark\Node $node, int $options = ?, int $width = ?): string
CommonMark\Render\Latex(CommonMark\Node $node, int $options = ?, int $width = ?): string

AST:

The CommonMark extension implements visitation for CommonMark\Node objects:

public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void

CQL:

The CommonMark extension provides an interface to CQL, CommonMark Query Language:

public CommonMark\CQL::__construct(string $query)


  • « Introduction
  • Pré-requis »
  • PHP Manual
  • CommonMark
  • Installation/Configuration

Installation/Configuration

Sommaire

  • Pré-requis
  • Installation


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

The CommonMark extension requires the (C) reference implementation of » cmark.


Installation

The CommonMark extension releases are hosted by PECL and source is hosted on » github, the easiest route to installation is the normal PECL route: » https://pecl.php.net/package/cmark.

Windows users can download prebuilt release binaries from the » PECL website.

Attention

Windows users need to take the additional step of adding cmark.dll (distributed with Windows releases) to their PATH.


Constantes pré-définies

CommonMark\Parser\Normal (int)
CommonMark\Parser\Normalize (int)
CommonMark\Parser\Smart (int)
CommonMark\Parser\ValidateUTF8 (int)
CommonMark\Render\HardBreaks (int)
CommonMark\Render\NoBreaks (int)
CommonMark\Render\Normal (int)
CommonMark\Render\Safe (int)
CommonMark\Render\SourcePos (int)


Document concrete CommonMark\Node

(cmark >= 1.0.0)

Synopsis de la classe

final class CommonMark\Node\Document extends CommonMark\Node implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriétés héritées */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
/* Méthodes héritées */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


Heading concrete CommonMark\Node

(cmark >= 1.0.0)

Synopsis de la classe

final class CommonMark\Node\Heading extends CommonMark\Node implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriétés héritées */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
/* Propriétés */
public int $level;
/* Constructor */
public __construct()
public __construct(int $level)
/* Méthodes héritées */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}

Sommaire

  • CommonMark\Node\Heading::__construct — Heading Construction


Heading Construction

  • « CommonMark\Node\Heading
  • CommonMark\Node\Paragraph »
  • PHP Manual
  • CommonMark\Node\Heading
  • Heading Construction

CommonMark\Node\Heading::__construct

(cmark >= 1.0.0)

CommonMark\Node\Heading::__construct — Heading Construction

Description

public CommonMark\Node\Heading::__construct()
public CommonMark\Node\Heading::__construct(int $level)

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Paragraph concrete CommonMark\Node

(cmark >= 1.0.0)

Synopsis de la classe

final class CommonMark\Node\Paragraph extends CommonMark\Node implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriétés héritées */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
/* Méthodes héritées */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


BlockQuote concrete CommonMark\Node

(cmark >= 1.0.0)

Synopsis de la classe

final class CommonMark\Node\BlockQuote extends CommonMark\Node implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriétés héritées */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
/* Méthodes héritées */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


BulletList concrete CommonMark\Node

(cmark >= 1.0.0)

Synopsis de la classe

final class CommonMark\Node\BulletList extends CommonMark\Node implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriétés héritées */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
/* Propriétés */
public bool $tight;
public int $delimiter;
/* Constructor */
public __construct()
public __construct(int $tight)
public __construct(int $tight, int $delimiter)
/* Méthodes héritées */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}

Sommaire

  • CommonMark\Node\BulletList::__construct — BulletList Construction


BulletList Construction

  • « CommonMark\Node\BulletList
  • CommonMark\Node\OrderedList »
  • PHP Manual
  • CommonMark\Node\BulletList
  • BulletList Construction

CommonMark\Node\BulletList::__construct

(cmark >= 1.0.0)

CommonMark\Node\BulletList::__construct — BulletList Construction

Description

public CommonMark\Node\BulletList::__construct()
public CommonMark\Node\BulletList::__construct(int $tight)
public CommonMark\Node\BulletList::__construct(int $tight, int $delimiter)

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.


OrderedList concrete CommonMark\Node

(cmark >= 1.0.0)

Synopsis de la classe

final class CommonMark\Node\OrderedList extends CommonMark\Node implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriétés héritées */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
/* Propriétés */
public bool $tight;
public int $delimiter;
public int $start;
/* Constructor */
public __construct()
public __construct(int $tight)
public __construct(int $tight, int $delimiter)
public __construct(int $tight, int $delimiter, int $start)
/* Méthodes héritées */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}

Sommaire

  • CommonMark\Node\OrderedList::__construct — OrderedList Construction


OrderedList Construction

  • « CommonMark\Node\OrderedList
  • CommonMark\Node\Item »
  • PHP Manual
  • CommonMark\Node\OrderedList
  • OrderedList Construction

CommonMark\Node\OrderedList::__construct

(cmark >= 1.0.0)

CommonMark\Node\OrderedList::__construct — OrderedList Construction

Description

public CommonMark\Node\OrderedList::__construct()
public CommonMark\Node\OrderedList::__construct(int $tight)
public CommonMark\Node\OrderedList::__construct(int $tight, int $delimiter)
public CommonMark\Node\OrderedList::__construct(int $tight, int $delimiter, int $start)

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

tight

delimiter

start


Item concrete CommonMark\Node

(cmark >= 1.0.0)

Synopsis de la classe

final class CommonMark\Node\Item extends CommonMark\Node implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriétés héritées */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
/* Méthodes héritées */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


Text concrete CommonMark\Node

(cmark >= 1.0.0)

Synopsis de la classe

final class CommonMark\Node\Text extends CommonMark\Node implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriétés héritées */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
/* Propriétés */
public ?string $literal;
/* Constructor */
public __construct()
public __construct(string $literal)
/* Méthodes héritées */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}

Sommaire

  • CommonMark\Node\Text::__construct — Text Construction


Text Construction

  • « CommonMark\Node\Text
  • CommonMark\Node\Text\Strong »
  • PHP Manual
  • CommonMark\Node\Text
  • Text Construction

CommonMark\Node\Text::__construct

(cmark >= 1.0.0)

CommonMark\Node\Text::__construct — Text Construction

Description

public CommonMark\Node\Text::__construct()
public CommonMark\Node\Text::__construct(string $literal)

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

literal


Strong concrete CommonMark\Node

(cmark >= 1.0.0)

Synopsis de la classe

final class CommonMark\Node\Text\Strong extends CommonMark\Node implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriétés héritées */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
/* Méthodes héritées */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


Emphasis concrete CommonMark\Node

(cmark >= 1.0.0)

Synopsis de la classe

final class CommonMark\Node\Text\Emphasis extends CommonMark\Node implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriétés héritées */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
/* Méthodes héritées */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


ThematicBreak concrete CommonMark\Node

(cmark >= 1.0.0)

Synopsis de la classe

final class CommonMark\Node\ThematicBreak extends CommonMark\Node implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriétés héritées */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
/* Méthodes héritées */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


SoftBreak concrete CommonMark\Node

(cmark >= 1.0.0)

Synopsis de la classe

final class CommonMark\Node\SoftBreak extends CommonMark\Node implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriétés héritées */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
/* Méthodes héritées */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


LineBreak concrete CommonMark\Node

(cmark >= 1.0.0)

Synopsis de la classe

final class CommonMark\Node\LineBreak extends CommonMark\Node implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriétés héritées */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
/* Méthodes héritées */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


Code concrete CommonMark\Node

(cmark >= 1.0.0)

Synopsis de la classe

final class CommonMark\Node\Code extends CommonMark\Node\Text implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriétés héritées */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
public ?string $literal;
/* Constructor */
public CommonMark\Node\Text::__construct()
public CommonMark\Node\Text::__construct(string $literal)
/* Méthodes héritées */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


CodeBlock concrete CommonMark\Node

(cmark >= 1.0.0)

Synopsis de la classe

final class CommonMark\Node\CodeBlock extends CommonMark\Node\Text implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriétés héritées */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
public ?string $literal;
/* Propriétés */
public ?string $fence;
/* Constructor */
public CommonMark\Node\Text::__construct()
public CommonMark\Node\Text::__construct(string $literal)
public __construct(string $fence, string $literal)
/* Méthodes héritées */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}

Sommaire

  • CommonMark\Node\CodeBlock::__construct — CodeBlock Construction


CodeBlock Construction

  • « CommonMark\Node\CodeBlock
  • CommonMark\Node\HTMLBlock »
  • PHP Manual
  • CommonMark\Node\CodeBlock
  • CodeBlock Construction

CommonMark\Node\CodeBlock::__construct

(cmark >= 1.0.0)

CommonMark\Node\CodeBlock::__construct — CodeBlock Construction

Description

public CommonMark\Node\CodeBlock::__construct(string $fence, string $literal)

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

fence

literal


HTMLBlock concrete CommonMark\Node

(cmark >= 1.0.0)

Synopsis de la classe

final class CommonMark\Node\HTMLBlock extends CommonMark\Node\Text implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriétés héritées */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
public ?string $literal;
/* Constructor */
public CommonMark\Node\Text::__construct()
public CommonMark\Node\Text::__construct(string $literal)
/* Méthodes héritées */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


HTMLInline concrete CommonMark\Node

(cmark >= 1.0.0)

Synopsis de la classe

final class CommonMark\Node\HTMLInline extends CommonMark\Node\Text implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriétés héritées */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
public ?string $literal;
/* Constructor */
public CommonMark\Node\Text::__construct()
public CommonMark\Node\Text::__construct(string $literal)
/* Méthodes héritées */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


Image concrete CommonMark\Node

(cmark >= 1.0.0)

Synopsis de la classe

final class CommonMark\Node\Image extends CommonMark\Node implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriétés héritées */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
/* Propriétés */
public ?string $url;
public ?string $title;
/* Constructor */
public __construct()
public __construct(string $url)
public __construct(string $url, string $title)
/* Méthodes héritées */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}

Sommaire

  • CommonMark\Node\Image::__construct — Image Construction


Image Construction

  • « CommonMark\Node\Image
  • CommonMark\Node\Link »
  • PHP Manual
  • CommonMark\Node\Image
  • Image Construction

CommonMark\Node\Image::__construct

(cmark >= 1.0.0)

CommonMark\Node\Image::__construct — Image Construction

Description

public CommonMark\Node\Image::__construct()
public CommonMark\Node\Image::__construct(string $url)
public CommonMark\Node\Image::__construct(string $url, string $title)

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

url

title


Link concrete CommonMark\Node

(cmark >= 1.0.0)

Synopsis de la classe

final class CommonMark\Node\Link extends CommonMark\Node implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriétés héritées */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
/* Propriétés */
public ?string $url;
public ?string $title;
/* Constructor */
public __construct()
public __construct(string $url)
public __construct(string $url, string $title)
/* Méthodes héritées */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}

Sommaire

  • CommonMark\Node\Link::__construct — Link Construction


Link Construction

  • « CommonMark\Node\Link
  • CommonMark\Node\CustomBlock »
  • PHP Manual
  • CommonMark\Node\Link
  • Link Construction

CommonMark\Node\Link::__construct

(cmark >= 1.0.0)

CommonMark\Node\Link::__construct — Link Construction

Description

public CommonMark\Node\Link::__construct()
public CommonMark\Node\Link::__construct(string $url)
public CommonMark\Node\Link::__construct(string $url, string $title)

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

url

title


CustomBlock concrete CommonMark\Node

(cmark >= 1.0.0)

Synopsis de la classe

final class CommonMark\Node\CustomBlock extends CommonMark\Node implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriétés héritées */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
/* Propriétés */
public ?string $onEnter;
public ?string $onLeave;
/* Méthodes héritées */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


CustomInline concrete CommonMark\Node

(cmark >= 1.0.0)

Synopsis de la classe

final class CommonMark\Node\CustomInline extends CommonMark\Node implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriétés héritées */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
/* Propriétés */
public ?string $onEnter;
public ?string $onLeave;
/* Méthodes héritées */
public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node
public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node
public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node
public CommonMark\Node::unlink(): void
public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void
}


Abstract CommonMark\Node

(cmark >= 1.0.0)

Introduction

Represents an Abstract Node, this final abstract is not for direct use by the programmer.

Synopsis de la classe

final abstract class CommonMark\Node implements CommonMark\Interfaces\IVisitable, Traversable {
/* Propriétés */
public readonly ?Node $parent;
public readonly ?Node $previous;
public readonly ?Node $next;
public readonly ?Node $lastChild;
public readonly ?Node $firstChild;
public readonly int $startLine;
public readonly int $endLine;
public readonly int $startColumn;
public readonly int $endColumn;
/* Méthodes */
public appendChild(CommonMark\Node $child): CommonMark\Node
public prependChild(CommonMark\Node $child): CommonMark\Node
public insertAfter(CommonMark\Node $sibling): CommonMark\Node
public insertBefore(CommonMark\Node $sibling): CommonMark\Node
public replace(CommonMark\Node $target): CommonMark\Node
public unlink(): void
public accept(CommonMark\Interfaces\IVisitor $visitor): void
}

Sommaire

  • CommonMark\Node::appendChild — AST Manipulation
  • CommonMark\Node::prependChild — AST Manipulation
  • CommonMark\Node::insertAfter — AST Manipulation
  • CommonMark\Node::insertBefore — AST Manipulation
  • CommonMark\Node::replace — AST Manipulation
  • CommonMark\Node::unlink — AST Manipulation
  • CommonMark\Node::accept — Visitation


AST Manipulation

  • « CommonMark\Node
  • CommonMark\Node::prependChild »
  • PHP Manual
  • CommonMark\Node
  • AST Manipulation

CommonMark\Node::appendChild

(cmark >= 1.0.0)

CommonMark\Node::appendChild — AST Manipulation

Description

public CommonMark\Node::appendChild(CommonMark\Node $child): CommonMark\Node

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

child

Valeurs de retour


AST Manipulation

  • « CommonMark\Node::appendChild
  • CommonMark\Node::insertAfter »
  • PHP Manual
  • CommonMark\Node
  • AST Manipulation

CommonMark\Node::prependChild

(cmark >= 1.0.0)

CommonMark\Node::prependChild — AST Manipulation

Description

public CommonMark\Node::prependChild(CommonMark\Node $child): CommonMark\Node

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

child

Valeurs de retour


AST Manipulation

  • « CommonMark\Node::prependChild
  • CommonMark\Node::insertBefore »
  • PHP Manual
  • CommonMark\Node
  • AST Manipulation

CommonMark\Node::insertAfter

(cmark >= 1.0.0)

CommonMark\Node::insertAfter — AST Manipulation

Description

public CommonMark\Node::insertAfter(CommonMark\Node $sibling): CommonMark\Node

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

sibling

Valeurs de retour


AST Manipulation

  • « CommonMark\Node::insertAfter
  • CommonMark\Node::replace »
  • PHP Manual
  • CommonMark\Node
  • AST Manipulation

CommonMark\Node::insertBefore

(cmark >= 1.0.0)

CommonMark\Node::insertBefore — AST Manipulation

Description

public CommonMark\Node::insertBefore(CommonMark\Node $sibling): CommonMark\Node

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

sibling

Valeurs de retour


AST Manipulation

  • « CommonMark\Node::insertBefore
  • CommonMark\Node::unlink »
  • PHP Manual
  • CommonMark\Node
  • AST Manipulation

CommonMark\Node::replace

(cmark >= 1.0.0)

CommonMark\Node::replace — AST Manipulation

Description

public CommonMark\Node::replace(CommonMark\Node $target): CommonMark\Node

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

target

Valeurs de retour


AST Manipulation

  • « CommonMark\Node::replace
  • CommonMark\Node::accept »
  • PHP Manual
  • CommonMark\Node
  • AST Manipulation

CommonMark\Node::unlink

(cmark >= 1.0.0)

CommonMark\Node::unlink — AST Manipulation

Description

public CommonMark\Node::unlink(): void

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Visitation

  • « CommonMark\Node::unlink
  • CommonMark\Interfaces\IVisitor »
  • PHP Manual
  • CommonMark\Node
  • Visitation

CommonMark\Node::accept

(cmark >= 1.0.0)

CommonMark\Node::accept — Visitation

Description

public CommonMark\Node::accept(CommonMark\Interfaces\IVisitor $visitor): void

Liste de paramètres

visitor

An object implementing CommonMark\Interfaces\IVisitor

Voir aussi

  • CommonMark\Interfaces\IVisitor::enter
  • CommonMark\Interfaces\IVisitor::leave


The CommonMark\Interfaces\IVisitor interface

(cmark >= 1.0.0)

Introduction

Synopsis de la classe

final class CommonMark\Interfaces\IVisitor {
/* Constantes */
const int Done;
const int Enter;
const int Leave;
/* Méthodes */
abstract public enter(IVisitable $visitable): int|IVisitable|null
abstract public leave(IVisitable $visitable): int|IVisitable|null
}

Sommaire

  • CommonMark\Interfaces\IVisitor::enter — Visitation
  • CommonMark\Interfaces\IVisitor::leave — Visitation


Visitation

  • « CommonMark\Interfaces\IVisitor
  • CommonMark\Interfaces\IVisitor::leave »
  • PHP Manual
  • CommonMark\Interfaces\IVisitor
  • Visitation

CommonMark\Interfaces\IVisitor::enter

(cmark >= 1.0.0)

CommonMark\Interfaces\IVisitor::enter — Visitation

Description

abstract public CommonMark\Interfaces\IVisitor::enter(IVisitable $visitable): int|IVisitable|null

Liste de paramètres

visitable

The current CommonMark\Interfaces\IVisitable being entered

Valeurs de retour

Returning CommonMark\Interfaces\IVisitor::Done will cause the backing iterator to exit.

Returning CommonMark\Interfaces\IVisitor::Enter will reset the backing iterator at entering the current IVisitable

Returning CommonMark\Interfaces\IVisitor::Leave will reset the backing iterator at exiting the current IVisitable

Returning an IVisitable will reset the backing iterator at entering the given IVisitable

Returning nothing will allow the backing iterator to continue

Voir aussi

  • CommonMark\Interfaces\IVisitable::accept


Visitation

  • « CommonMark\Interfaces\IVisitor::enter
  • CommonMark\Interfaces\IVisitable »
  • PHP Manual
  • CommonMark\Interfaces\IVisitor
  • Visitation

CommonMark\Interfaces\IVisitor::leave

(cmark >= 1.0.0)

CommonMark\Interfaces\IVisitor::leave — Visitation

Description

abstract public CommonMark\Interfaces\IVisitor::leave(IVisitable $visitable): int|IVisitable|null

Liste de paramètres

visitable

The current CommonMark\Interfaces\IVisitable being exited

Valeurs de retour

Returning CommonMark\Interfaces\IVisitor::Done will cause the backing iterator to exit.

Returning CommonMark\Interfaces\IVisitor::Enter will reset the backing iterator at entering the current IVisitable

Returning CommonMark\Interfaces\IVisitor::Leave will reset the backing iterator at exiting the current IVisitable

Returning an IVisitable will reset the backing iterator at exiting the given IVisitable

Returning nothing will allow the backing iterator to continue

Voir aussi

  • CommonMark\Interfaces\IVisitable::accept


The CommonMark\Interfaces\IVisitable interface

(cmark >= 1.0.0)

Introduction

Synopsis de la classe

final class CommonMark\Interfaces\IVisitable {
abstract public accept(CommonMark\Interfaces\IVisitor $visitor): void
}

Sommaire

  • CommonMark\Interfaces\IVisitable::accept — Visitation


Visitation

  • « CommonMark\Interfaces\IVisitable
  • CommonMark\Parser »
  • PHP Manual
  • CommonMark\Interfaces\IVisitable
  • Visitation

CommonMark\Interfaces\IVisitable::accept

(cmark >= 1.0.0)

CommonMark\Interfaces\IVisitable::accept — Visitation

Description

abstract public CommonMark\Interfaces\IVisitable::accept(CommonMark\Interfaces\IVisitor $visitor): void

Liste de paramètres

visitor

An object implementing CommonMark\Interfaces\IVisitor

Voir aussi

  • CommonMark\Interfaces\IVisitor::enter
  • CommonMark\Interfaces\IVisitor::leave


The CommonMark\Parser class

(cmark >= 1.0.0)

Introduction

Provides an incremental parser as an alternative to the simple Parsing API function

Synopsis de la classe

final class CommonMark\Parser {
/* Constructor */
public __construct(int $options = ?)
/* Méthodes */
public parse(string $buffer): void
public finish(): CommonMark\Node
}

Sommaire

  • CommonMark\Parser::__construct — Parsing
  • CommonMark\Parser::parse — Parsing
  • CommonMark\Parser::finish — Parsing


Parsing

  • « CommonMark\Parser
  • CommonMark\Parser::parse »
  • PHP Manual
  • CommonMark\Parser
  • Parsing

CommonMark\Parser::__construct

(cmark >= 1.0.0)

CommonMark\Parser::__construct — Parsing

Description

public CommonMark\Parser::__construct(int $options = ?)

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

options

A mask of:

CommonMark\Parser\Normal (int)
CommonMark\Parser\Normalize (int)
CommonMark\Parser\ValidateUTF8 (int)
CommonMark\Parser\Smart (int)


Parsing

  • « CommonMark\Parser::__construct
  • CommonMark\Parser::finish »
  • PHP Manual
  • CommonMark\Parser
  • Parsing

CommonMark\Parser::parse

(cmark >= 1.0.0)

CommonMark\Parser::parse — Parsing

Description

public CommonMark\Parser::parse(string $buffer): void

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

buffer

Valeurs de retour


Parsing

  • « CommonMark\Parser::parse
  • CommonMark\CQL »
  • PHP Manual
  • CommonMark\Parser
  • Parsing

CommonMark\Parser::finish

(cmark >= 1.0.0)

CommonMark\Parser::finish — Parsing

Description

public CommonMark\Parser::finish(): CommonMark\Node

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


The CommonMark\CQL class

(cmark >= 1.1.0)

Introduction

CommonMark Query Language is a DSL for describing how to travel through a CommonMark Node tree implemented as a parser and compiler for a small set of instructions, and a virtual machine for executing those instructions.

Paths:

In it's most simplistic form, a CQL query combines the following paths and / to describe how to travel through a tree:

  • firstChild
  • lastChild
  • previous
  • next
  • parent
For example, /firstChild/lastChild would travel to the last child node of the first child node.

Loops

CQL can be instructed to loop, for example through the children of, or siblings to a particular node, by using the path children, or siblings. For example, /firstChild/children will travel to all the children of the first child node.

Subqueries

CQL can be instructed how to travel by using a subquery like [/firstChild]. For example, /firstChild/children[/firstChild] will travel to the first child node of all the children of the first child node.

Loop Constraints

While looping, CQL can be instructed to constrict the travelled path to nodes of particular type. For example /children(BlockQuote) will travel to the children of a node where the type is BlockQuote. The following types are recognized (case insensitively):

  • BlockQuote
  • List
  • Item
  • CodeBlock
  • HtmlBlock
  • CustomBlock
  • Paragraph
  • Heading
  • ThematicBreak
  • Text
  • SoftBreak
  • LineBreak
  • Code
  • HtmlInline
  • CustomInline
  • Emphasis
  • Strong
  • Link
  • Image
Types may be used as a union, for example /children(BlockQuote|List) will travel to the children of a node where the type is BlockQuote or List. Types, or unions of types, may be also negated. For example /children(~BlockQuote) will travel to the children of a node where the type is not BlockQuote, and /children(~BlockQuote|Paragraph) will travel to the children of a node where the type is not BlockQuote or Paragraph

Path Constraints

CQL can be instructed to create a loop to travel to a node of a particular type, at a particular path. For example, /firstChild(BlockQuote) will travel to the first child node where the type is BlockQuote. Note that like other loops for children and siblings, this kind of path can only be followed by a subquery.

Implementation Notes

While CQL has been implemented as part of the PHP CommonMark extension, it stands separately from PHP and does not use PHP's virtual machine or internal representation of values.

Synopsis de la classe

class CommonMark\CQL {
/* Constructor */
public __construct(string $query)
/* Méthodes */
public __invoke(CommonMark\Node $root, callable $handler)
}

Sommaire

  • CommonMark\CQL::__construct — CQL Construction
  • CommonMark\CQL::__invoke — CQL Execution


CQL Construction

  • « CommonMark\CQL
  • CommonMark\CQL::__invoke »
  • PHP Manual
  • CommonMark\CQL
  • CQL Construction

CommonMark\CQL::__construct

(cmark >= 1.1.0)

CommonMark\CQL::__construct — CQL Construction

Description

public CommonMark\CQL::__construct(string $query)

Liste de paramètres

query

a CQL string


CQL Execution

  • « CommonMark\CQL::__construct
  • CommonMark Fonctions »
  • PHP Manual
  • CommonMark\CQL
  • CQL Execution

CommonMark\CQL::__invoke

(cmark >= 1.1.0)

CommonMark\CQL::__invoke — CQL Execution

Description

public CommonMark\CQL::__invoke(CommonMark\Node $root, callable $handler)

Shall invoke the current CQL function on the given root, executing the given handler on entry to a CommonMark\Node

Liste de paramètres

root

the root node of a tree

handler

should have the prototype:

handler(CommonMark\Node $root, CommonMark\Node $entering): ?bool
  • Should handler fail to return (void), or return null, CQL will continue executing
  • Should the handler return a truthy value, CQL will continue executing.
  • Should the handler return a falsy value, CQL will stop executing


CommonMark Fonctions

Sommaire

  • CommonMark\Parse — Parsing
  • CommonMark\Render — Rendering
  • CommonMark\Render\HTML — Rendering
  • CommonMark\Render\Latex — Rendering
  • CommonMark\Render\Man — Rendering
  • CommonMark\Render\XML — Rendering


Parsing

  • « CommonMark Fonctions
  • CommonMark\Render »
  • PHP Manual
  • CommonMark Fonctions
  • Parsing

CommonMark\Parse

(cmark >= 1.0.0)

CommonMark\Parse — Parsing

Description

CommonMark\Parse(string $content, int $options = ?): CommonMark\Node

Shall parse content

Liste de paramètres

content

markdown string

options

A mask of:

CommonMark\Parser\Normal (int)
CommonMark\Parser\Normalize (int)
CommonMark\Parser\ValidateUTF8 (int)
CommonMark\Parser\Smart (int)

Valeurs de retour

Shall return root CommonMark\Node


Rendering

  • « CommonMark\Parse
  • CommonMark\Render\HTML »
  • PHP Manual
  • CommonMark Fonctions
  • Rendering

CommonMark\Render

(cmark >= 1.0.0)

CommonMark\Render — Rendering

Description

CommonMark\Render(CommonMark\Node $node, int $options = ?, int $width = ?): string

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

node

options

A mask of:

CommonMark\Render\Normal (int)
CommonMark\Render\SourcePos (int)
CommonMark\Render\HardBreaks (int)
CommonMark\Render\Safe (int)
CommonMark\Render\NoBreaks (int)
width

Valeurs de retour


Rendering

  • « CommonMark\Render
  • CommonMark\Render\Latex »
  • PHP Manual
  • CommonMark Fonctions
  • Rendering

CommonMark\Render\HTML

(cmark >= 1.0.0)

CommonMark\Render\HTML — Rendering

Description

CommonMark\Render\HTML(CommonMark\Node $node, int $options = ?): string

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

node

options

A mask of:

CommonMark\Render\Normal (int)
CommonMark\Render\SourcePos (int)
CommonMark\Render\HardBreaks (int)
CommonMark\Render\Safe (int)
CommonMark\Render\NoBreaks (int)

Valeurs de retour


Rendering

  • « CommonMark\Render\HTML
  • CommonMark\Render\Man »
  • PHP Manual
  • CommonMark Fonctions
  • Rendering

CommonMark\Render\Latex

(cmark >= 1.0.0)

CommonMark\Render\Latex — Rendering

Description

CommonMark\Render\Latex(CommonMark\Node $node, int $options = ?, int $width = ?): string

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

node

options

A mask of:

CommonMark\Render\Normal (int)
CommonMark\Render\SourcePos (int)
CommonMark\Render\HardBreaks (int)
CommonMark\Render\Safe (int)
CommonMark\Render\NoBreaks (int)
width

Valeurs de retour


Rendering

  • « CommonMark\Render\Latex
  • CommonMark\Render\XML »
  • PHP Manual
  • CommonMark Fonctions
  • Rendering

CommonMark\Render\Man

(cmark >= 1.0.0)

CommonMark\Render\Man — Rendering

Description

CommonMark\Render\Man(CommonMark\Node $node, int $options = ?, int $width = ?): string

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

node

options

A mask of:

CommonMark\Render\Normal (int)
CommonMark\Render\SourcePos (int)
CommonMark\Render\HardBreaks (int)
CommonMark\Render\Safe (int)
CommonMark\Render\NoBreaks (int)
width

Valeurs de retour


Rendering

  • « CommonMark\Render\Man
  • Parle »
  • PHP Manual
  • CommonMark Fonctions
  • Rendering

CommonMark\Render\XML

(cmark >= 1.0.0)

CommonMark\Render\XML — Rendering

Description

CommonMark\Render\XML(CommonMark\Node $node, int $options = ?): string

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

node

options

A mask of:

CommonMark\Render\Normal (int)
CommonMark\Render\SourcePos (int)
CommonMark\Render\HardBreaks (int)
CommonMark\Render\Safe (int)
CommonMark\Render\NoBreaks (int)

Valeurs de retour


Parsing and lexing

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
  • Constantes pré-définies
  • Pattern matching — Parle pattern matching
  • Exemples
    • Lexer examples
    • Parser examples
  • Parle\Lexer — The Parle\Lexer class
    • Parle\Lexer::advance — Process next lexer rule
    • Parle\Lexer::build — Finalize the lexer rule set
    • Parle\Lexer::callout — Define token callback
    • Parle\Lexer::consume — Pass the data for processing
    • Parle\Lexer::dump — Dump the state machine
    • Parle\Lexer::getToken — Retrieve the current token
    • Parle\Lexer::insertMacro — Insert regex macro
    • Parle\Lexer::push — Add a lexer rule
    • Parle\Lexer::reset — Reset lexer
  • Parle\RLexer — The Parle\RLexer class
    • Parle\RLexer::advance — Process next lexer rule
    • Parle\RLexer::build — Finalize the lexer rule set
    • Parle\RLexer::callout — Define token callback
    • Parle\RLexer::consume — Pass the data for processing
    • Parle\RLexer::dump — Dump the state machine
    • Parle\RLexer::getToken — Retrieve the current token
    • Parle\RLexer::insertMacro — Insert regex macro
    • Parle\RLexer::push — Add a lexer rule
    • Parle\RLexer::pushState — Push a new start state
    • Parle\RLexer::reset — Reset lexer
  • Parle\Parser — The Parle\Parser class
    • Parle\Parser::advance — Process next parser rule
    • Parle\Parser::build — Finalize the grammar rules
    • Parle\Parser::consume — Consume the data for processing
    • Parle\Parser::dump — Dump the grammar
    • Parle\Parser::errorInfo — Retrieve the error information
    • Parle\Parser::left — Declare a token with left-associativity
    • Parle\Parser::nonassoc — Declare a token with no associativity
    • Parle\Parser::precedence — Declare a precedence rule
    • Parle\Parser::push — Add a grammar rule
    • Parle\Parser::reset — Reset parser state
    • Parle\Parser::right — Declare a token with right-associativity
    • Parle\Parser::sigil — Retrieve a matching part of a rule
    • Parle\Parser::sigilCount — Number of elements in matched rule
    • Parle\Parser::sigilName — Retrieve a rule or token name
    • Parle\Parser::token — Declare a token
    • Parle\Parser::tokenId — Get token id
    • Parle\Parser::trace — Trace the parser operation
    • Parle\Parser::validate — Validate input
  • Parle\RParser — The Parle\RParser class
    • Parle\RParser::advance — Process next parser rule
    • Parle\RParser::build — Finalize the grammar rules
    • Parle\RParser::consume — Consume the data for processing
    • Parle\RParser::dump — Dump the grammar
    • Parle\RParser::errorInfo — Retrieve the error information
    • Parle\RParser::left — Declare a token with left-associativity
    • Parle\RParser::nonassoc — Declare a token with no associativity
    • Parle\RParser::precedence — Declare a precedence rule
    • Parle\RParser::push — Add a grammar rule
    • Parle\RParser::reset — Reset parser state
    • Parle\RParser::right — Declare a token with right-associativity
    • Parle\RParser::sigil — Retrieve a matching part of a rule
    • Parle\RParser::sigilCount — Number of elements in matched rule
    • Parle\RParser::sigilName — Retrieve a rule or token name
    • Parle\RParser::token — Declare a token
    • Parle\RParser::tokenId — Get token id
    • Parle\RParser::trace — Trace the parser operation
    • Parle\RParser::validate — Validate input
  • Parle\Stack — The Parle\Stack class
    • Parle\Stack::pop — Pop an item from the stack
    • Parle\Stack::push — Push an item into the stack
  • Parle\Token — The Parle\Token class
  • Parle\ErrorInfo — La classe Parle\ErrorInfo
  • Parle\LexerException — La classe Parle\LexerException
  • Parle\ParserException — La classe Parle\ParserException


Introduction

The parle extension provides general purpose lexing and parsing facilities. The implementation is based on » Ben Hanson's libraries and requires a » C++14 capable compiler. The lexer is based on the regex matching, the parser is LALR(1). Lexers and parsers are generated on the fly and can be used immediately after they've been finalized. Parle deals with parsing and lexing, the appropriate data structures representation and processing are the implementer's task. Serialization and code generation are not supported by the extension, yet.

Lexer analysis is a process of splitting a character sequence into a list of lexemes. The lexeme list can be then used for the syntax analysis against a formal grammar. These operations are also known as lexing and parsing. This documentation doesn't aim to provide an exhaustive information on lexing and parsing. Good information in this regard is available on the numerous resources on the net. Several usage examples are included, to show the functionality. The extension is useful for PHP programmers both willing to learn or to utilize parsing and lexing. State machines and grammar parsing don't have to be implemented manually, these complex tasks are taken away by parle. Thanks to that, the development can be focused on the actual problem solving.

The common use case for parle is, when a data format is too complex to be handled by the regex matching with PCRE. The practical application is herewith wide. Be it a specific data format, a behavior modification of existing functions, even an own programming language and beyond. The helper methods such as Parle\Lexer::dump() to inspect the generated state machine, or Parle\Parser::dump() to inspect the generated grammar, are useful. The method Parle\Parser::trace() can also be used to track the parsing operation.


  • « Introduction
  • Pré-requis »
  • PHP Manual
  • Parle
  • Installation/Configuration

Installation/Configuration

Sommaire

  • Pré-requis
  • Installation


Pré-requis

PHP 7.4 ou supérieur est supporté. Un compilateur C++14 est nécessaire. Une compilation avec succès de l'extension a été réalisée avec, au moins clang 5.0, GCC 5.0 et Visual Studio 2015.


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 : » https://pecl.php.net/package/parle.

Une DLL pour cette extension PECL est disponible ici : » http://windows.php.net/downloads/pecl/releases/parle/.

Options de configuration disponibles
Option | Description
--enable-parle | Activation de l'extension parle.
--enable-parle-utf32 | Activation du support interne UTF-32. Disponible depuis parle 0.7.2.


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.

Parle\INTERNAL_UTF32 bool
Drapeau permettant de savoir si le support interne UTF-32 a bien été compilé. Disponible depuis parle 0.7.2.


Parle pattern matching

Parle supports regex matching similar to flex. Also supported are the following POSIX character sets: [:alnum:], [:alpha:], [:blank:], [:cntrl:], [:digit:], [:graph:], [:lower:], [:print:], [:punct:], [:space:], [:upper:], [:xdigit:] .

The Unicode character classes are currently not enabled by default, pass --enable-parle-utf32 to make them available. A particular encoding can be mapped with a correctly constructed regex. For example, to match the EURO symbol encoded in UTF-8, the regular expression [\xe2][\x82][\xac] can be used. The pattern for an UTF-8 encoded string could be [ -\x7f]{+}[\x80-\xbf]{+}[\xc2-\xdf]{+}[\xe0-\xef]{+}[\xf0-\xff]+.

Character representations

Character representations
Sequence | Description
\a | Alert (bell).
\b | Backspace.
\e | ESC character, \x1b.
\n | Newline.
\r | Carriage return.
\f | Form feed, \x0c.
\t | Horizontal tab, \x09.
\v | Vertical tab, \x0b.
\oct | Character specified by a three-digit octal code.
\xhex | Character specified by a hex code.
\cchar | Named control character.

Character classes

Character classes
Sequence | Description
[...] | A single character listed or contained within a listed range. Ranges can be combined with the {+} and {-} operators. For example [a-z]{+}[0-9] is the same as [0-9a-z] and [a-z]{-}[aeiou] is the same as [b-df-hj-np-tv-z].
[^...] | A single character not listed and not contained within a listed range.
. | Any character, default [^\n].
\d | Digit character, [0-9].
\D | Non-digit character, [^0-9].
\s | White space character, [ \t\n\r\f\v].
\S | Non-white space character, [^ \t\n\r\f\v].
\w | Word character, [a-zA-Z0-9_].
\W | Non-word character, [^a-zA-Z0-9_].

Unicode character classes

Unicode character classes
Sequence | Description
\p{C} | Other.
\p{Cc} | Other, control.
\p{Cf} | Other, format.
\p{Co} | Other, private use.
\p{Cs} | Other, surrogate.
\p{L} | Letter.
\p{LC} | Letter, cased.
\p{Ll} | Letter, lowercase.
\p{Lm} | Letter, modifier.
\p{Lo} | Letter, other.
\p{Lt} | Letter, titlecase.
\p{Lu} | Letter, uppercase.
\p{M} | Mark.
\p{Mc} | Mark, space combining.
\p{Me} | Mark, enclosing.
\p{Mn} | Mark, nonspacing.
\p{N} | Number.
\p{Nd} | Number, decimal digit.
\p{Nl} | Number, letter.
\p{No} | Number, other.
\p{P} | Punctuation.
\p{Pc} | Punctiation, connector.
\p{Pd} | Punctuation, dash.
\p{Pe} | Punctuation, close.
\p{Pf} | Punctuation, final quote.
\p{Pi} | Punctuation, initial quote.
\p{Po} | Punctuation, other.
\p{Ps} | Punctuation, open.
\p{S} | Symbol.
\p{Sc} | Symbol, currency.
\p{Sk} | Symbol, modifier.
\p{Sm} | Symbol, math.
\p{So} | Symbol, other.
\p{Z} | Separator.
\p{Zl} | Separator, line.
\p{Zp} | Separator, paragraph.
\p{Zs} | Separator, space.

These character classes are only available, if the option --enable-parle-utf32 was passed at the compilation time.

Alternation and repetition

Alternation and repetition
Sequence | Greedy | Description
...|... | - | Try sub-patterns in alternation.
* | yes | Match 0 or more times.
+ | yes | Match 1 or more times.
? | yes | Match 0 or 1 times.
{n} | no | Match exactly n times.
{n,} | yes | Match at least n times.
{n,m} | yes | Match at least n times but no more than m times.
*? | no | Match 0 or more times.
+? | no | Match 1 or more times.
?? | no | Match 0 or 1 times.
{n,}? | no | Match at least n times.
{n,m}? | no | Match at least n times but no more than m times.
{MACRO} | - | Include the regex MACRO in the current regex.

Anchors

Anchors
Sequence | Description
^ | Start of string or after a newline.
$ | End of string or before a newline.

Grouping

Grouping
Sequence | Description
(...) | Group a regular expression to override default operator precedence.
(?r-s:pattern) | Apply option r and omit option s while interpreting pattern. Options may be zero or more of the characters i, s, or x. i means case-insensitive. -i means case-sensitive. s alters the meaning of . to match any character whatsoever. -s alters the meaning of . to match any character except \n. x ignores comments and whitespace in patterns. Whitespace is ignored unless it is backslash-escaped, contained within ""s, or appears inside a character range. These options can be applied globally at the rules level by passing a combination of the bit flags to the lexer.
(?# comment ) | Omit everything within (). The first ) character encountered ends the pattern. It is not possible for the comment to contain a ) character. The comment may span lines.


  • « Pattern matching
  • Lexer examples »
  • PHP Manual
  • Parle
  • Exemples

Exemples

Sommaire

  • Lexer examples
  • Parser examples


Lexer examples

Exemple #1 Tokenize comma separated integer list

<?php

use Parle\Token;
use Parle\Lexer;
use Parle\LexerException;

/* name => id */
$token = array(
"COMMA" => 1,
"CRLF" => 2,
"DECIMAL" => 3,
);
/* id => name */
$tokenIdToName = array_flip($token);

$lex = new Lexer;
$lex->push("[\x2c]", $token["COMMA"]);
$lex->push("[\r][\n]", $token["CRLF"]);
$lex->push("[\d]+", $token["DECIMAL"]);
$lex->build();

$in = "0,1,2\r\n3,42,5\r\n6,77,8\r\n";

$lex->consume($in);

do {
$lex->advance();
$tok = $lex->getToken();

if (Token::UNKNOWN == $tok->id) {
throw new LexerException("Unknown token '{$tok->value}' at offset {$lex->marker}.");
}

echo "TOKEN: ", $tokenIdToName[$tok->id], PHP_EOL;
} while (Token::EOI != $tok->id);

Exemple #2 Tokenize assign statement

<?php

use Parle\{Token, Lexer};

$lex = new Lexer;

$lex->push("\$[a-zA-Z_][a-zA-Z0-9_]*", 1);
$lex->push("=", 2);
$lex->push("\d+", 3);
$lex->push(";", 4);

$lex->build();

$lex->consume('$x = 42; $y = 24;');

do {
$lex->advance();
$tok = $lex->getToken();
var_dump($tok);
} while (Token::EOI != $tok->id);


Parser examples

Exemple #1 Simple calculator

<?php

use Parle\{Parser, ParserException, Lexer, Token};

$p = new Parser;
$p->token("INTEGER");
$p->left("'+' '-' '*' '/'");

$p->push("start", "exp");
$prod_add = $p->push("exp", "exp '+' exp");
$prod_sub = $p->push("exp", "exp '-' exp");
$prod_mul = $p->push("exp", "exp '*' exp");
$prod_div = $p->push("exp", "exp '/' exp");
$p->push("exp", "INTEGER"); /* Production index unused. */

$p->build();

$lex = new Lexer;
$lex->push("[+]", $p->tokenId("'+'"));
$lex->push("[-]", $p->tokenId("'-'"));
$lex->push("[*]", $p->tokenId("'*'"));
$lex->push("[/]", $p->tokenId("'/'"));
$lex->push("\\d+", $p->tokenId("INTEGER"));
$lex->push("\\s+", Token::SKIP);

$lex->build();

$exp = array(
"1 + 1",
"33 / 10",
"100 * 45",
"17 - 45",
);

foreach ($exp as $in) {
if (!$p->validate($in, $lex)) {
throw new ParserException("Failed to validate input");
}

$p->consume($in, $lex);

while (Parser::ACTION_ERROR != $p->action && Parser::ACTION_ACCEPT != $p->action) {
switch ($p->action) {
case Parser::ACTION_ERROR:
throw new ParserException("Parser error");
break;
case Parser::ACTION_SHIFT:
case Parser::ACTION_GOTO:
case Parser::ACTION_ACCEPT:
break;
case Parser::ACTION_REDUCE:
switch ($p->reduceId) {
case $prod_add:
$l = $p->sigil(0);
$r = $p->sigil(2);
echo "$l + $r = " . ($l + $r) . "\n";
break;
case $prod_sub:
$l = $p->sigil(0);
$r = $p->sigil(2);
echo "$l - $r = " . ($l - $r) . "\n";
break;
case $prod_mul:
$l = $p->sigil(0);
$r = $p->sigil(2);
echo "$l * $r = " . ($l * $r) . "\n";
break;
case $prod_div:
$l = $p->sigil(0);
$r = $p->sigil(2);
echo "$l / $r = " . ($l / $r) . "\n";
break;
}
break;
}
$p->advance();
}
}

Exemple #2 Parse words out from a sentence

<?php

use Parle\{Lexer, Token, Parser, ParserException};

$p = new Parser;
$p->token("WORD");
$p->push("START", "SENTENCE");
$p->push("SENTENCE", "WORDS");
$prod_word_0 = $p->push("WORDS", "WORDS WORD");
$prod_word_1 = $p->push("WORDS", "WORD");
$p->build();

$lex = new Lexer;
$lex->push("[^\s]{-}[\.,\:\;\?]+", $p->tokenId("WORD"));
$lex->push("[\s\.,\:\;\?]+", Token::SKIP);
$lex->build();

$in = "Dis-moi où est ton papa?";
$p->consume($in, $lex);
do {
switch ($p->action) {
case Parser::ACTION_ERROR:
throw new ParserException("Error");
break;
case Parser::ACTION_SHIFT:
case Parser::ACTION_GOTO:
/* var_dump($p->trace());*/
break;
case Parser::ACTION_REDUCE:
$rid = $p->reduceId();
if ($rid == $prod_word_1) {
var_dump($p->sigil(0));
} if ($rid == $prod_word_0) {
var_dump($p->sigil(1));
}
break;
}
$p->advance();
} while (Parser::ACTION_ACCEPT != $p->action);


The Parle\Lexer class

(PECL parle >= 0.5.1)

Introduction

Single state lexer class. Lexemes can be defined on the fly. If the particular lexer instance is meant to be used with Parle\Parser, the token IDs need to be taken from there. Otherwise, arbitrary token IDs can be supplied. This lexer can give a certain performance advantage over Parle\RLexer, if no multiple states are required. Note, that Parle\RParser is not compatible with this lexer.

Synopsis de la classe

class Parle\Lexer {
/* Constantes */
const int ICASE = 1;
const int DOT_NOT_LF = 2;
const int DOT_NOT_CRLF = 4;
const int SKIP_WS = 8;
const int MATCH_ZERO_LEN = 16;
/* Propriétés */
public bool $bol = false;
public int $flags = 0;
public int $state = 0;
public int $marker = 0;
public int $cursor = 0;
/* Méthodes */
public advance(): void
public build(): void
public callout(int $id, callable $callback): void
public consume(string $data): void
public dump(): void
public getToken(): Parle\Token
public insertMacro(string $name, string $regex): void
public push(string $regex, int $id): void
public reset(int $pos): void
}

Constantes pré-définies

Parle\Lexer::ICASE

Parle\Lexer::DOT_NOT_LF

Parle\Lexer::DOT_NOT_CRLF

Parle\Lexer::SKIP_WS

Parle\Lexer::MATCH_ZERO_LEN

Propriétés

bol

Start of input flag.

flags

Lexer flags.

state

Current lexer state, readonly.

marker

Position of the latest token match, readonly.

cursor

Current input offset, readonly.

Sommaire

  • Parle\Lexer::advance — Process next lexer rule
  • Parle\Lexer::build — Finalize the lexer rule set
  • Parle\Lexer::callout — Define token callback
  • Parle\Lexer::consume — Pass the data for processing
  • Parle\Lexer::dump — Dump the state machine
  • Parle\Lexer::getToken — Retrieve the current token
  • Parle\Lexer::insertMacro — Insert regex macro
  • Parle\Lexer::push — Add a lexer rule
  • Parle\Lexer::reset — Reset lexer


Process next lexer rule

  • « Parle\Lexer
  • Parle\Lexer::build »
  • PHP Manual
  • Parle\Lexer
  • Process next lexer rule

Parle\Lexer::advance

(PECL parle >= 0.5.1)

Parle\Lexer::advance — Process next lexer rule

Description

public Parle\Lexer::advance(): void

Processes the next rule and prepares the resulting token data.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Finalize the lexer rule set

  • « Parle\Lexer::advance
  • Parle\Lexer::callout »
  • PHP Manual
  • Parle\Lexer
  • Finalize the lexer rule set

Parle\Lexer::build

(PECL parle >= 0.5.1)

Parle\Lexer::build — Finalize the lexer rule set

Description

public Parle\Lexer::build(): void

Rules, previously added with Parle\Lexer::push() are finalized. This method call has to be done after all the necessary rules was pushed. The rule set becomes read only. The lexing can begin.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Define token callback

  • « Parle\Lexer::build
  • Parle\Lexer::consume »
  • PHP Manual
  • Parle\Lexer
  • Define token callback

Parle\Lexer::callout

(PECL parle >= 0.7.2)

Parle\Lexer::callout — Define token callback

Description

public Parle\Lexer::callout(int $id, callable $callback): void

Define a callback to be invoked once lexer encounters a particular token.

Liste de paramètres

id

Token id.

callback

Callable to be invoked. The callable doesn't receive any arguments and its return value is ignored.

Valeurs de retour

Aucune valeur n'est retournée.


Pass the data for processing

  • « Parle\Lexer::callout
  • Parle\Lexer::dump »
  • PHP Manual
  • Parle\Lexer
  • Pass the data for processing

Parle\Lexer::consume

(PECL parle >= 0.5.1)

Parle\Lexer::consume — Pass the data for processing

Description

public Parle\Lexer::consume(string $data): void

Consume the data for lexing.

Liste de paramètres

data

Data to be lexed.

Valeurs de retour

Aucune valeur n'est retournée.


Dump the state machine

  • « Parle\Lexer::consume
  • Parle\Lexer::getToken »
  • PHP Manual
  • Parle\Lexer
  • Dump the state machine

Parle\Lexer::dump

(PECL parle >= 0.5.1)

Parle\Lexer::dump — Dump the state machine

Description

public Parle\Lexer::dump(): void

Dump the current state machine to stdout.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Retrieve the current token

  • « Parle\Lexer::dump
  • Parle\Lexer::insertMacro »
  • PHP Manual
  • Parle\Lexer
  • Retrieve the current token

Parle\Lexer::getToken

(PECL parle >= 0.5.1)

Parle\Lexer::getToken — Retrieve the current token

Description

public Parle\Lexer::getToken(): Parle\Token

Retrieve the current token.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns an instance of Parle\Token.


Insert regex macro

  • « Parle\Lexer::getToken
  • Parle\Lexer::push »
  • PHP Manual
  • Parle\Lexer
  • Insert regex macro

Parle\Lexer::insertMacro

(PECL parle >= 0.5.1)

Parle\Lexer::insertMacro — Insert regex macro

Description

public Parle\Lexer::insertMacro(string $name, string $regex): void

Insert a regex macro, that can be later used as a shortcut and included in other regular expressions.

Liste de paramètres

name

Name of the macros.

regex

Regular expression.

Valeurs de retour

Aucune valeur n'est retournée.


Add a lexer rule

  • « Parle\Lexer::insertMacro
  • Parle\Lexer::reset »
  • PHP Manual
  • Parle\Lexer
  • Add a lexer rule

Parle\Lexer::push

(PECL parle >= 0.5.1)

Parle\Lexer::push — Add a lexer rule

Description

public Parle\Lexer::push(string $regex, int $id): void

Push a pattern for lexeme recognition.

Liste de paramètres

regex

Regular expression used for token matching.

id

Token id. If the lexer instance is meant to be used standalone, this can be an arbitrary number. If the lexer instance is going to be passed to the parser, it has to be an id returned by Parle\Parser::tokenid().

Valeurs de retour

Aucune valeur n'est retournée.


Reset lexer

  • « Parle\Lexer::push
  • Parle\RLexer »
  • PHP Manual
  • Parle\Lexer
  • Reset lexer

Parle\Lexer::reset

(PECL parle >= 0.7.1)

Parle\Lexer::reset — Reset lexer

Description

public Parle\Lexer::reset(int $pos): void

Reset lexing optionally supplying the desired offset.

Liste de paramètres

pos

Reset position.

Valeurs de retour

Aucune valeur n'est retournée.


The Parle\RLexer class

(PECL parle >= 0.5.1)

Introduction

Multistate lexer class. Lexemes can be defined on the fly. If the particular lexer instance is meant to be used with Parle\RParser, the token IDs need to be taken from there. Otherwise, arbitrary token IDs can be supplied. Note, that Parle\Parser is not compatible with this lexer.

Synopsis de la classe

class Parle\RLexer {
/* Constantes */
const int ICASE = 1;
const int DOT_NOT_LF = 2;
const int DOT_NOT_CRLF = 4;
const int SKIP_WS = 8;
const int MATCH_ZERO_LEN = 16;
/* Propriétés */
public bool $bol = false;
public int $flags = 0;
public int $state = 0;
public int $marker = 0;
public int $cursor = 0;
/* Méthodes */
public advance(): void
public build(): void
public callout(int $id, callable $callback): void
public consume(string $data): void
public dump(): void
public getToken(): Parle\Token
public insertMacro(string $name, string $regex): void
public push(string $regex, int $id): void
public push(
string $state,
string $regex,
int $id,
string $newState
): void
public push(string $state, string $regex, string $newState): void
public pushState(string $state): int
public reset(int $pos): void
}

Constantes pré-définies

Parle\RLexer::ICASE

Parle\RLexer::DOT_NOT_LF

Parle\RLexer::DOT_NOT_CRLF

Parle\RLexer::SKIP_WS

Parle\RLexer::MATCH_ZERO_LEN

Propriétés

bol

Start of input flag.

flags

Lexer flags.

state

Current lexer state, readonly.

marker

Position of the latest token match, readonly.

cursor

Current input offset, readonly.

Sommaire

  • Parle\RLexer::advance — Process next lexer rule
  • Parle\RLexer::build — Finalize the lexer rule set
  • Parle\RLexer::callout — Define token callback
  • Parle\RLexer::consume — Pass the data for processing
  • Parle\RLexer::dump — Dump the state machine
  • Parle\RLexer::getToken — Retrieve the current token
  • Parle\RLexer::insertMacro — Insert regex macro
  • Parle\RLexer::push — Add a lexer rule
  • Parle\RLexer::pushState — Push a new start state
  • Parle\RLexer::reset — Reset lexer


Process next lexer rule

  • « Parle\RLexer
  • Parle\RLexer::build »
  • PHP Manual
  • Parle\RLexer
  • Process next lexer rule

Parle\RLexer::advance

(PECL parle >= 0.5.1)

Parle\RLexer::advance — Process next lexer rule

Description

public Parle\RLexer::advance(): void

Processes the next rule and prepares the resulting token data.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Finalize the lexer rule set

  • « Parle\RLexer::advance
  • Parle\RLexer::callout »
  • PHP Manual
  • Parle\RLexer
  • Finalize the lexer rule set

Parle\RLexer::build

(PECL parle >= 0.5.1)

Parle\RLexer::build — Finalize the lexer rule set

Description

public Parle\RLexer::build(): void

Rules, previously added with Parle\RLexer::push() are finalized. This method call has to be done after all the necessary rules was pushed. The rule set becomes read only. The lexing can begin.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Define token callback

  • « Parle\RLexer::build
  • Parle\RLexer::consume »
  • PHP Manual
  • Parle\RLexer
  • Define token callback

Parle\RLexer::callout

(PECL parle >= 0.7.2)

Parle\RLexer::callout — Define token callback

Description

public Parle\RLexer::callout(int $id, callable $callback): void

Define a callback to be invoked once lexer encounters a particular token.

Liste de paramètres

id

Token id.

callback

Callable to be invoked. The callable doesn't receive any arguments and its return value is ignored.

Valeurs de retour

Aucune valeur n'est retournée.


Pass the data for processing

  • « Parle\RLexer::callout
  • Parle\RLexer::dump »
  • PHP Manual
  • Parle\RLexer
  • Pass the data for processing

Parle\RLexer::consume

(PECL parle >= 0.5.1)

Parle\RLexer::consume — Pass the data for processing

Description

public Parle\RLexer::consume(string $data): void

Consume the data for lexing.

Liste de paramètres

data

Data to be lexed.

Valeurs de retour

Aucune valeur n'est retournée.


Dump the state machine

  • « Parle\RLexer::consume
  • Parle\RLexer::getToken »
  • PHP Manual
  • Parle\RLexer
  • Dump the state machine

Parle\RLexer::dump

(PECL parle >= 0.5.1)

Parle\RLexer::dump — Dump the state machine

Description

public Parle\RLexer::dump(): void

Dump the current state machine to stdout.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Retrieve the current token

  • « Parle\RLexer::dump
  • Parle\RLexer::insertMacro »
  • PHP Manual
  • Parle\RLexer
  • Retrieve the current token

Parle\RLexer::getToken

(PECL parle >= 0.5.1)

Parle\RLexer::getToken — Retrieve the current token

Description

public Parle\RLexer::getToken(): Parle\Token

Retrive the current token.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns an instance of Parle\Token.


Insert regex macro

  • « Parle\RLexer::getToken
  • Parle\RLexer::push »
  • PHP Manual
  • Parle\RLexer
  • Insert regex macro

Parle\RLexer::insertMacro

(PECL parle >= 0.5.1)

Parle\RLexer::insertMacro — Insert regex macro

Description

public Parle\RLexer::insertMacro(string $name, string $regex): void

Insert a regex macro, that can be later used as a shortcut and included in other regular expressions.

Liste de paramètres

name

Name of the macros.

regex

Regular expression.

Valeurs de retour

Aucune valeur n'est retournée.


Add a lexer rule

  • « Parle\RLexer::insertMacro
  • Parle\RLexer::pushState »
  • PHP Manual
  • Parle\RLexer
  • Add a lexer rule

Parle\RLexer::push

(PECL parle >= 0.5.1)

Parle\RLexer::push — Add a lexer rule

Description

public Parle\RLexer::push(string $regex, int $id): void
public Parle\RLexer::push(
string $state,
string $regex,
int $id,
string $newState
): void
public Parle\RLexer::push(string $state, string $regex, string $newState): void

Push a pattern for lexeme recognition.

A 'start state' and 'exit state' can be specified by using a suitable signature.

Liste de paramètres

regex

Regular expression used for token matching.

id

Token id. If the lexer instance is meant to be used standalone, this can be an arbitrary number. If the lexer instance is going to be passed to the parser, it has to be an id returned by Parle\RParser::tokenid().

state

State name. If '*' is used as start state, then the rule is applied to all lexer states.

newState

New state name, after the rule was applied.

If '.' is specified as the exit state, then the lexer state is unchanged when that rule matches. An exit state with '>' before the name means push. Use the signature without id for either continuation or to start matching, when a continuation or recursion is required.

If '<' is specified as exit state, it means pop. In that case, the signature containing the id can be used to identify the match. Note that even in the case an id is specified, the rule will finish first when all the previous pushes popped.

Valeurs de retour

Aucune valeur n'est retournée.


Push a new start state

  • « Parle\RLexer::push
  • Parle\RLexer::reset »
  • PHP Manual
  • Parle\RLexer
  • Push a new start state

Parle\RLexer::pushState

(PECL parle >= 0.5.1)

Parle\RLexer::pushState — Push a new start state

Description

public Parle\RLexer::pushState(string $state): int

This lexer type can have more than one state machine. This allows you to lex different tokens depending on context, thus allowing simple parsing to take place. Once a state pushed, it can be used with a suitable Parle\RLexer::push() signature variant.

Liste de paramètres

state

Name of the state.

Valeurs de retour


Reset lexer

  • « Parle\RLexer::pushState
  • Parle\Parser »
  • PHP Manual
  • Parle\RLexer
  • Reset lexer

Parle\RLexer::reset

(PECL parle >= 0.7.1)

Parle\RLexer::reset — Reset lexer

Description

public Parle\RLexer::reset(int $pos): void

Reset lexing optionally supplying the desired offset.

Liste de paramètres

pos

Reset position.

Valeurs de retour

Aucune valeur n'est retournée.


The Parle\Parser class

(PECL parle >= 0.5.1)

Introduction

Parser class. Rules can be defined on the fly. Once finalized, a Parle\Lexer instance is required to deliver the token stream.

Synopsis de la classe

class Parle\Parser {
/* Constantes */
const int ACTION_ERROR = 0;
const int ACTION_SHIFT = 1;
const int ACTION_REDUCE = 2;
const int ACTION_GOTO = 3;
const int ACTION_ACCEPT = 4;
const int ERROR_SYNTAX = 0;
const int ERROR_NON_ASSOCIATIVE = 1;
const int ERROR_UNKNOWN_TOKEN = 2;
/* Propriétés */
public int $action = 0;
public int $reduceId = 0;
/* Méthodes */
public advance(): void
public build(): void
public consume(string $data, Parle\Lexer $lexer): void
public dump(): void
public errorInfo(): Parle\ErrorInfo
public left(string $tok): void
public nonassoc(string $tok): void
public precedence(string $tok): void
public push(string $name, string $rule): int
public reset(int $tokenId = ?): void
public right(string $tok): void
public sigil(int $idx): string
public sigilCount(): int
public sigilName(int $idx): string
public token(string $tok): void
public tokenId(string $tok): int
public trace(): string
public validate(string $data, Parle\Lexer $lexer): bool
}

Constantes pré-définies

Parle\Parser::ACTION_ERROR

Parle\Parser::ACTION_SHIFT

Parle\Parser::ACTION_REDUCE

Parle\Parser::ACTION_GOTO

Parle\Parser::ACTION_ACCEPT

Parle\Parser::ERROR_SYNTAX

Parle\Parser::ERROR_NON_ASSOCIATIVE

Parle\Parser::ERROR_UNKNOWN_TOKEN

Propriétés

action

Current parser action that matches one of the action class constants, readonly.

reduceId

Grammar rule id just processed in the reduce action. The value corresponds either to a token or to a production id. Readonly.

Sommaire

  • Parle\Parser::advance — Process next parser rule
  • Parle\Parser::build — Finalize the grammar rules
  • Parle\Parser::consume — Consume the data for processing
  • Parle\Parser::dump — Dump the grammar
  • Parle\Parser::errorInfo — Retrieve the error information
  • Parle\Parser::left — Declare a token with left-associativity
  • Parle\Parser::nonassoc — Declare a token with no associativity
  • Parle\Parser::precedence — Declare a precedence rule
  • Parle\Parser::push — Add a grammar rule
  • Parle\Parser::reset — Reset parser state
  • Parle\Parser::right — Declare a token with right-associativity
  • Parle\Parser::sigil — Retrieve a matching part of a rule
  • Parle\Parser::sigilCount — Number of elements in matched rule
  • Parle\Parser::sigilName — Retrieve a rule or token name
  • Parle\Parser::token — Declare a token
  • Parle\Parser::tokenId — Get token id
  • Parle\Parser::trace — Trace the parser operation
  • Parle\Parser::validate — Validate input


Process next parser rule

  • « Parle\Parser
  • Parle\Parser::build »
  • PHP Manual
  • Parle\Parser
  • Process next parser rule

Parle\Parser::advance

(PECL parle >= 0.5.1)

Parle\Parser::advance — Process next parser rule

Description

public Parle\Parser::advance(): void

Process next parser rule.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Finalize the grammar rules

  • « Parle\Parser::advance
  • Parle\Parser::consume »
  • PHP Manual
  • Parle\Parser
  • Finalize the grammar rules

Parle\Parser::build

(PECL parle >= 0.5.1)

Parle\Parser::build — Finalize the grammar rules

Description

public Parle\Parser::build(): void

Any tokens and grammar rules previously added are finalized. The rule set becomes readonly and the parser is ready to start.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Consume the data for processing

  • « Parle\Parser::build
  • Parle\Parser::dump »
  • PHP Manual
  • Parle\Parser
  • Consume the data for processing

Parle\Parser::consume

(PECL parle >= 0.5.1)

Parle\Parser::consume — Consume the data for processing

Description

public Parle\Parser::consume(string $data, Parle\Lexer $lexer): void

Consume the data for parsing.

Liste de paramètres

data

Data to be parsed.

lexer

A lexer object containing the lexing rules prepared for the particular grammar.

Valeurs de retour

Aucune valeur n'est retournée.


Dump the grammar

  • « Parle\Parser::consume
  • Parle\Parser::errorInfo »
  • PHP Manual
  • Parle\Parser
  • Dump the grammar

Parle\Parser::dump

(PECL parle >= 0.5.1)

Parle\Parser::dump — Dump the grammar

Description

public Parle\Parser::dump(): void

Dump the current grammar to stdout.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Retrieve the error information

  • « Parle\Parser::dump
  • Parle\Parser::left »
  • PHP Manual
  • Parle\Parser
  • Retrieve the error information

Parle\Parser::errorInfo

(PECL parle >= 0.5.1)

Parle\Parser::errorInfo — Retrieve the error information

Description

public Parle\Parser::errorInfo(): Parle\ErrorInfo

Retrieve the error information in case Parle\Parser::action() returned the error action.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns an instance of Parle\ErrorInfo.


Declare a token with left-associativity

  • « Parle\Parser::errorInfo
  • Parle\Parser::nonassoc »
  • PHP Manual
  • Parle\Parser
  • Declare a token with left-associativity

Parle\Parser::left

(PECL parle >= 0.5.1)

Parle\Parser::left — Declare a token with left-associativity

Description

public Parle\Parser::left(string $tok): void

Declare a terminal with left associativity.

Liste de paramètres

tok

Token name.

Valeurs de retour

Aucune valeur n'est retournée.


Declare a token with no associativity

  • « Parle\Parser::left
  • Parle\Parser::precedence »
  • PHP Manual
  • Parle\Parser
  • Declare a token with no associativity

Parle\Parser::nonassoc

(PECL parle >= 0.5.1)

Parle\Parser::nonassoc — Declare a token with no associativity

Description

public Parle\Parser::nonassoc(string $tok): void

Declare a terminal, that cannot appear more than once in the row.

Liste de paramètres

tok

Token name.

Valeurs de retour

Aucune valeur n'est retournée.


Declare a precedence rule

  • « Parle\Parser::nonassoc
  • Parle\Parser::push »
  • PHP Manual
  • Parle\Parser
  • Declare a precedence rule

Parle\Parser::precedence

(PECL parle >= 0.5.1)

Parle\Parser::precedence — Declare a precedence rule

Description

public Parle\Parser::precedence(string $tok): void

Declares a precedence rule for a fictitious terminal symbol. This rule can be later used in the specific grammar rules.

Liste de paramètres

tok

Token name.

Valeurs de retour

Aucune valeur n'est retournée.


Add a grammar rule

  • « Parle\Parser::precedence
  • Parle\Parser::reset »
  • PHP Manual
  • Parle\Parser
  • Add a grammar rule

Parle\Parser::push

(PECL parle >= 0.5.1)

Parle\Parser::push — Add a grammar rule

Description

public Parle\Parser::push(string $name, string $rule): int

Push a grammar rule. The production id returned can be used later in the parsing process to identify the rule matched.

Liste de paramètres

name

Rule name.

rule

The rule to be added. The syntax is Bison compatible.

Valeurs de retour

Returns entier representing the rule index.


Reset parser state

  • « Parle\Parser::push
  • Parle\Parser::right »
  • PHP Manual
  • Parle\Parser
  • Reset parser state

Parle\Parser::reset

(PECL parle >= 0.7.1)

Parle\Parser::reset — Reset parser state

Description

public Parle\Parser::reset(int $tokenId = ?): void

Reset parser state using the given token id.

Liste de paramètres

tokenId

Token id.

Valeurs de retour

Aucune valeur n'est retournée.


Declare a token with right-associativity

  • « Parle\Parser::reset
  • Parle\Parser::sigil »
  • PHP Manual
  • Parle\Parser
  • Declare a token with right-associativity

Parle\Parser::right

(PECL parle >= 0.5.1)

Parle\Parser::right — Declare a token with right-associativity

Description

public Parle\Parser::right(string $tok): void

Declare a terminal with right associativity.

Liste de paramètres

tok

Token name.

Valeurs de retour

Aucune valeur n'est retournée.


Retrieve a matching part of a rule

  • « Parle\Parser::right
  • Parle\Parser::sigilCount »
  • PHP Manual
  • Parle\Parser
  • Retrieve a matching part of a rule

Parle\Parser::sigil

(PECL parle >= 0.5.1)

Parle\Parser::sigil — Retrieve a matching part of a rule

Description

public Parle\Parser::sigil(int $idx): string

Retrieve a part of the match by a rule. This method is equivalent to the pseudo variable functionality in Bison.

Liste de paramètres

idx

Match index, zero based.

Valeurs de retour

Returns a chaîne de caractères with the matched part.


Number of elements in matched rule

  • « Parle\Parser::sigil
  • Parle\Parser::sigilName »
  • PHP Manual
  • Parle\Parser
  • Number of elements in matched rule

Parle\Parser::sigilCount

(PECL parle >= 0.8.4)

Parle\Parser::sigilCount — Number of elements in matched rule

Description

public Parle\Parser::sigilCount(): int

Get number of elements in the matched rule.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns entier


Retrieve a rule or token name

  • « Parle\Parser::sigilCount
  • Parle\Parser::token »
  • PHP Manual
  • Parle\Parser
  • Retrieve a rule or token name

Parle\Parser::sigilName

(PECL parle >= 0.8.4)

Parle\Parser::sigilName — Retrieve a rule or token name

Description

public Parle\Parser::sigilName(int $idx): string

Retrieve a partial rule name or token name corresponding to the sigil index.

Liste de paramètres

idx

Match index, zero based.

Valeurs de retour

Returns a chaîne de caractères with the matched part.


Declare a token

  • « Parle\Parser::sigilName
  • Parle\Parser::tokenId »
  • PHP Manual
  • Parle\Parser
  • Declare a token

Parle\Parser::token

(PECL parle >= 0.5.1)

Parle\Parser::token — Declare a token

Description

public Parle\Parser::token(string $tok): void

Declare a terminal to be used in the grammar.

Liste de paramètres

tok

Token name.

Valeurs de retour

Aucune valeur n'est retournée.


Get token id

  • « Parle\Parser::token
  • Parle\Parser::trace »
  • PHP Manual
  • Parle\Parser
  • Get token id

Parle\Parser::tokenId

(PECL parle >= 0.5.1)

Parle\Parser::tokenId — Get token id

Description

public Parle\Parser::tokenId(string $tok): int

Retrieve the id of the named token.

Liste de paramètres

tok

Name of the token as used in Parle\Parser::token().

Valeurs de retour

Returns entier representing the token id.


Trace the parser operation

  • « Parle\Parser::tokenId
  • Parle\Parser::validate »
  • PHP Manual
  • Parle\Parser
  • Trace the parser operation

Parle\Parser::trace

(PECL parle >= 0.5.1)

Parle\Parser::trace — Trace the parser operation

Description

public Parle\Parser::trace(): string

Retrieve the current parser operation description. This can be especially useful for studying the parser and to optimize the grammar.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a chaîne de caractères with the trace information.


Validate input

  • « Parle\Parser::trace
  • Parle\RParser »
  • PHP Manual
  • Parle\Parser
  • Validate input

Parle\Parser::validate

(PECL parle >= 0.5.1)

Parle\Parser::validate — Validate input

Description

public Parle\Parser::validate(string $data, Parle\Lexer $lexer): bool

Validate an input string. The string is parsed internally, thus this method is useful for the quick input validation.

Liste de paramètres

data

String to be validated.

lexer

A lexer object containing the lexing rules prepared for the particular grammar.

Valeurs de retour

Returns booléen witnessing whether the input chimes or not with the defined rules.


The Parle\RParser class

(PECL parle >= 0.7.0)

Introduction

Parser class. Rules can be defined on the fly. Once finalized, a Parle\RLexer instance is required to deliver the token stream.

Synopsis de la classe

class Parle\RParser {
/* Constantes */
const int ACTION_ERROR = 0;
const int ACTION_SHIFT = 1;
const int ACTION_REDUCE = 2;
const int ACTION_GOTO = 3;
const int ACTION_ACCEPT = 4;
const int ERROR_SYNTAX = 0;
const int ERROR_NON_ASSOCIATIVE = 1;
const int ERROR_UNKNOWN_TOKEN = 2;
/* Propriétés */
public int $action = 0;
public int $reduceId = 0;
/* Méthodes */
public advance(): void
public build(): void
public consume(string $data, Parle\RLexer $rlexer): void
public dump(): void
public errorInfo(): Parle\ErrorInfo
public left(string $tok): void
public nonassoc(string $tok): void
public precedence(string $tok): void
public push(string $name, string $rule): int
public reset(int $tokenId = ?): void
public right(string $tok): void
public sigil(int $idx = ?): string
public sigilCount(): int
public sigilName(int $idx): string
public token(string $tok): void
public tokenId(string $tok): int
public trace(): string
public validate(string $data, Parle\RLexer $lexer): bool
}

Constantes pré-définies

Parle\RParser::ACTION_ERROR

Parle\RParser::ACTION_SHIFT

Parle\RParser::ACTION_REDUCE

Parle\RParser::ACTION_GOTO

Parle\RParser::ACTION_ACCEPT

Parle\RParser::ERROR_SYNTAX

Parle\RParser::ERROR_NON_ASSOCIATIVE

Parle\RParser::ERROR_UNKNOWN_TOKEN

Propriétés

action

Current parser action that matches one of the action class constants, readonly.

reduceId

Grammar rule id just processed in the reduce action. The value corresponds either to a token or to a production id. Readonly.

Sommaire

  • Parle\RParser::advance — Process next parser rule
  • Parle\RParser::build — Finalize the grammar rules
  • Parle\RParser::consume — Consume the data for processing
  • Parle\RParser::dump — Dump the grammar
  • Parle\RParser::errorInfo — Retrieve the error information
  • Parle\RParser::left — Declare a token with left-associativity
  • Parle\RParser::nonassoc — Declare a token with no associativity
  • Parle\RParser::precedence — Declare a precedence rule
  • Parle\RParser::push — Add a grammar rule
  • Parle\RParser::reset — Reset parser state
  • Parle\RParser::right — Declare a token with right-associativity
  • Parle\RParser::sigil — Retrieve a matching part of a rule
  • Parle\RParser::sigilCount — Number of elements in matched rule
  • Parle\RParser::sigilName — Retrieve a rule or token name
  • Parle\RParser::token — Declare a token
  • Parle\RParser::tokenId — Get token id
  • Parle\RParser::trace — Trace the parser operation
  • Parle\RParser::validate — Validate input


Process next parser rule

  • « Parle\RParser
  • Parle\RParser::build »
  • PHP Manual
  • Parle\RParser
  • Process next parser rule

Parle\RParser::advance

(PECL parle >= 0.7.0)

Parle\RParser::advance — Process next parser rule

Description

public Parle\RParser::advance(): void

Prosess next parser rule.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Finalize the grammar rules

  • « Parle\RParser::advance
  • Parle\RParser::consume »
  • PHP Manual
  • Parle\RParser
  • Finalize the grammar rules

Parle\RParser::build

(PECL parle >= 0.7.0)

Parle\RParser::build — Finalize the grammar rules

Description

public Parle\RParser::build(): void

Any tokens and grammar rules previously added are finalized. The rule set becomes readonly and the parser is ready to start.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Consume the data for processing

  • « Parle\RParser::build
  • Parle\RParser::dump »
  • PHP Manual
  • Parle\RParser
  • Consume the data for processing

Parle\RParser::consume

(PECL parle >= 0.7.0)

Parle\RParser::consume — Consume the data for processing

Description

public Parle\RParser::consume(string $data, Parle\RLexer $rlexer): void

Consume the data for parsing.

Liste de paramètres

data

Data to be parsed.

lexer

A lexer object containing the lexing rules prepared for the particular grammar.

Valeurs de retour

Aucune valeur n'est retournée.


Dump the grammar

  • « Parle\RParser::consume
  • Parle\RParser::errorInfo »
  • PHP Manual
  • Parle\RParser
  • Dump the grammar

Parle\RParser::dump

(PECL parle >= 0.7.0)

Parle\RParser::dump — Dump the grammar

Description

public Parle\RParser::dump(): void

Dump the current grammar to stdout.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Retrieve the error information

  • « Parle\RParser::dump
  • Parle\RParser::left »
  • PHP Manual
  • Parle\RParser
  • Retrieve the error information

Parle\RParser::errorInfo

(PECL parle >= 0.7.0)

Parle\RParser::errorInfo — Retrieve the error information

Description

public Parle\RParser::errorInfo(): Parle\ErrorInfo

Retrieve the error information in case Parle\RParser::action() returned the error action.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns an instance of Parle\ErrorInfo.


Declare a token with left-associativity

  • « Parle\RParser::errorInfo
  • Parle\RParser::nonassoc »
  • PHP Manual
  • Parle\RParser
  • Declare a token with left-associativity

Parle\RParser::left

(PECL parle >= 0.7.0)

Parle\RParser::left — Declare a token with left-associativity

Description

public Parle\RParser::left(string $tok): void

Declare a terminal with left associativity.

Liste de paramètres

tok

Token name.

Valeurs de retour

Aucune valeur n'est retournée.


Declare a token with no associativity

  • « Parle\RParser::left
  • Parle\RParser::precedence »
  • PHP Manual
  • Parle\RParser
  • Declare a token with no associativity

Parle\RParser::nonassoc

(PECL parle >= 0.7.0)

Parle\RParser::nonassoc — Declare a token with no associativity

Description

public Parle\RParser::nonassoc(string $tok): void

Declare a terminal, that cannot appear more than once in the row.

Liste de paramètres

tok

Token name.

Valeurs de retour

Aucune valeur n'est retournée.


Declare a precedence rule

  • « Parle\RParser::nonassoc
  • Parle\RParser::push »
  • PHP Manual
  • Parle\RParser
  • Declare a precedence rule

Parle\RParser::precedence

(PECL parle >= 0.7.0)

Parle\RParser::precedence — Declare a precedence rule

Description

public Parle\RParser::precedence(string $tok): void

Declares a precedence rule for a fictious terminal symbol. This rule can be later used in the specific grammar rules.

Liste de paramètres

tok

Token name.

Valeurs de retour

Aucune valeur n'est retournée.


Add a grammar rule

  • « Parle\RParser::precedence
  • Parle\RParser::reset »
  • PHP Manual
  • Parle\RParser
  • Add a grammar rule

Parle\RParser::push

(PECL parle >= 0.7.0)

Parle\RParser::push — Add a grammar rule

Description

public Parle\RParser::push(string $name, string $rule): int

Push a grammar rule. The production id returned can be used later in the parsing process to identify the rule matched.

Liste de paramètres

name

Rule name.

rule

The rule to be added. The syntax is Bison compatible.

Valeurs de retour

Returns entier representing the rule index.


Reset parser state

  • « Parle\RParser::push
  • Parle\RParser::right »
  • PHP Manual
  • Parle\RParser
  • Reset parser state

Parle\RParser::reset

(PECL parle >= 0.7.1)

Parle\RParser::reset — Reset parser state

Description

public Parle\RParser::reset(int $tokenId = ?): void

Reset parser state using the given token id.

Liste de paramètres

tokenId

Token id.

Valeurs de retour

Aucune valeur n'est retournée.


Declare a token with right-associativity

  • « Parle\RParser::reset
  • Parle\RParser::sigil »
  • PHP Manual
  • Parle\RParser
  • Declare a token with right-associativity

Parle\RParser::right

(PECL parle >= 0.7.0)

Parle\RParser::right — Declare a token with right-associativity

Description

public Parle\RParser::right(string $tok): void

Declare a terminal with right associativity.

Liste de paramètres

tok

Token name.

Valeurs de retour

Aucune valeur n'est retournée.


Retrieve a matching part of a rule

  • « Parle\RParser::right
  • Parle\RParser::sigilCount »
  • PHP Manual
  • Parle\RParser
  • Retrieve a matching part of a rule

Parle\RParser::sigil

(PECL parle >= 0.7.0)

Parle\RParser::sigil — Retrieve a matching part of a rule

Description

public Parle\RParser::sigil(int $idx = ?): string

Retrieve a part of the match by a rule. This method is equivalent to the pseudo variable functionality in Bison.

Liste de paramètres

idx

Match index, zero based.

Valeurs de retour

Returns a chaîne de caractères with the matched part.


Number of elements in matched rule

  • « Parle\RParser::sigil
  • Parle\RParser::sigilName »
  • PHP Manual
  • Parle\RParser
  • Number of elements in matched rule

Parle\RParser::sigilCount

(PECL parle >= 0.8.4)

Parle\RParser::sigilCount — Number of elements in matched rule

Description

public Parle\RParser::sigilCount(): int

Get number of elements in the matched rule.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns entier


Retrieve a rule or token name

  • « Parle\RParser::sigilCount
  • Parle\RParser::token »
  • PHP Manual
  • Parle\RParser
  • Retrieve a rule or token name

Parle\RParser::sigilName

(PECL parle >= 0.8.4)

Parle\RParser::sigilName — Retrieve a rule or token name

Description

public Parle\RParser::sigilName(int $idx): string

Retrieve a partial rule name or token name corresponding to the sigil index.

Liste de paramètres

idx

Match index, zero based.

Valeurs de retour

Returns a chaîne de caractères with the matched part.


Declare a token

  • « Parle\RParser::sigilName
  • Parle\RParser::tokenId »
  • PHP Manual
  • Parle\RParser
  • Declare a token

Parle\RParser::token

(PECL parle >= 0.7.0)

Parle\RParser::token — Declare a token

Description

public Parle\RParser::token(string $tok): void

Declare a terminal to be used in the grammar.

Liste de paramètres

tok

Token name.

Valeurs de retour

Aucune valeur n'est retournée.


Get token id

  • « Parle\RParser::token
  • Parle\RParser::trace »
  • PHP Manual
  • Parle\RParser
  • Get token id

Parle\RParser::tokenId

(PECL parle >= 0.7.0)

Parle\RParser::tokenId — Get token id

Description

public Parle\RParser::tokenId(string $tok): int

Retrieve the id of the named token.

Liste de paramètres

tok

Name of the token as used in Parle\RParser::token().

Valeurs de retour

Returns entier representing the token id.


Trace the parser operation

  • « Parle\RParser::tokenId
  • Parle\RParser::validate »
  • PHP Manual
  • Parle\RParser
  • Trace the parser operation

Parle\RParser::trace

(PECL parle >= 0.7.0)

Parle\RParser::trace — Trace the parser operation

Description

public Parle\RParser::trace(): string

Retrieve the current parser operation description. This can be especially useful to study the parser and to optimize the grammar.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a chaîne de caractères with the trace information.


Validate input

  • « Parle\RParser::trace
  • Parle\Stack »
  • PHP Manual
  • Parle\RParser
  • Validate input

Parle\RParser::validate

(PECL parle >= 0.7.0)

Parle\RParser::validate — Validate input

Description

public Parle\RParser::validate(string $data, Parle\RLexer $lexer): bool

Validate an input string. The string is parsed internally, thus this method is useful for the quick input validation.

Liste de paramètres

data

String to be validated.

lexer

A lexer object containing the lexing rules prepared for the particular grammar.

Valeurs de retour

Returns booléen whitnessing whether the input chimes or not with the defined rules.


The Parle\Stack class

(PECL parle >= 0.7.0)

Introduction

Parle\Stack is a LIFO stack. The elements are inserted and removed only from one end.

Synopsis de la classe

class Parle\Stack {
/* Propriétés */
public bool $empty = true;
public int $size = 0;
public mixed $top;
/* Méthodes */
public pop(): void
public push(mixed $item): void
}

Propriétés

empty

Whether the stack is empty, readonly.

size

Stack size, readonly.

top

Element on the top of the stack.

Sommaire

  • Parle\Stack::pop — Pop an item from the stack
  • Parle\Stack::push — Push an item into the stack


Pop an item from the stack

  • « Parle\Stack
  • Parle\Stack::push »
  • PHP Manual
  • Parle\Stack
  • Pop an item from the stack

Parle\Stack::pop

(PECL parle >= 0.5.1)

Parle\Stack::pop — Pop an item from the stack

Description

public Parle\Stack::pop(): void

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.


Push an item into the stack

  • « Parle\Stack::pop
  • Parle\Token »
  • PHP Manual
  • Parle\Stack
  • Push an item into the stack

Parle\Stack::push

(PECL parle >= 0.5.1)

Parle\Stack::push — Push an item into the stack

Description

public Parle\Stack::push(mixed $item): void

Liste de paramètres

item

Variable to be pushed.

Valeurs de retour

Aucune valeur n'est retournée.


The Parle\Token class

(PECL parle >= 0.5.2)

Introduction

This class represents a token. Lexer returns instances of this class.

Synopsis de la classe

class Parle\Token {
/* Constantes */
const int EOI = 0;
const int UNKNOWN = -1;
const int SKIP = -2;
/* Propriétés */
public int $id;
public string $value;
/* Méthodes */
}

Propriétés

id

Token id.

value

Token value.

Constantes pré-définies

Parle\Token::EOI

End of input token id.

Parle\Token::UNKNOWN

Unknown token id.

Parle\Token::SKIP

Skip token id.


La classe Parle\ErrorInfo

(PECL parle >= 0.5.2)

Introduction

La classe représente les informations d'erreurs détaillées, tel que founies par la méthode Parle\Parser::errorInfo()

Synopsis de la classe

class Parle\ErrorInfo {
/* Propriétés */
public int $id;
public int $position;
public mixed $token;
/* Méthodes */
}

Propriétés

id

Error id.

position

Position in the input, where the error occurred.

token

Si applicable, la classe Parle\Token relative à l'erreur, sinon null.


La classe Parle\LexerException

(PECL parle >= 0.5.1)

Introduction

Synopsis de la classe

class Parle\LexerException extends Exception implements Throwable {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes */
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


La classe Parle\ParserException

(PECL parle >= 0.5.1)

Introduction

Synopsis de la classe

class Parle\ParserException extends Exception implements Throwable {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes */
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


Expressions régulières (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 régulières — Syntaxe des masques
    • Options disponibles pour les expressions régulières — Options de recherche
    • Différences avec Perl
  • 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_msg — Returns the error message of the last PCRE regex execution
    • 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 régulières
    • preg_replace_callback_array — Éffectue une recherche de correspondance avec une expression régulière et remplace grâce à une fonction de rappel
    • 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. Les délimiteurs à la Perl (), {}, [], et <> peuvent aussi être utilisé. 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.

Note:

Cette extension maintient un cache global par thread des expressions régulières 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 régulières 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. Il est recommandé d'utiliser d'utiliser PCRE 8.10 ou plus récent ; à partir de PHP 7.3.0, PCRE2 est requis.

La compilation à la volée (Just In Time) de PCRE est supporté par défaut, qui peut être désactivé avec l'option de configuration --without-pcre-jit à partir de PHP 7.0.12.

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.

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
8.2.0 | 10.40 |
8.1.0 | 10.39 |
7.4.12, 8.0.0 | 10.35 |
7.4.6 | 10.34 |
7.4.0 | 10.33 |
7.3.0 | 10.32 |
7.2.0 | 8.41 |
7.0.3 | 8.38 | Voir CVE-2015-8383, CVE-2015-8386, CVE-2015-8387, CVE-2015-8389, CVE-2015-8390, CVE-2015-8391, CVE-2015-8393, CVE-2015-8394
7.0.0 | 8.37 | Voir CVE-2015-2325, CVE-2015-2326


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" | INI_ALL |
pcre.recursion_limit | "100000" | INI_ALL |
pcre.jit | "1" | INI_ALL |
Pour plus de détails sur les modes 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 int

PCRE's backtracking limit. Par défaut à 100000 en PHP < 5.3.7.

pcre.recursion_limit int

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 bool

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
Constantes | Description | À partir de
PREG_PATTERN_ORDER (int) | 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 (int) | 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 (int) | Voir la description de PREG_SPLIT_OFFSET_CAPTURE. |
PREG_SPLIT_NO_EMPTY (int) | Si cette option est activée, seules les sous-chaînes non vides seront retournées par preg_split(). |
PREG_SPLIT_DELIM_CAPTURE (int) | 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(). |
PREG_SPLIT_OFFSET_CAPTURE (int) | 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 |
PREG_UNMATCHED_AS_NULL (int) | Cette contante demande à preg_match() et preg_match_all() d'include les sous-masques sans correspondance dans $matches avec une valeur à null. Sans cette contante, les sous-masques sans correspondance sont retourné avec une chaîne vide, comme si la correspondance était vide. Définir cette constante permet de distinguer ces deux cas. | 7.2.0
PREG_NO_ERROR (int) | Retourné par la fonction preg_last_error() s'il n'y a pas d'erreur. | 5.2.0
PREG_INTERNAL_ERROR (int) | Retourné par la fonction preg_last_error() s'il y a une erreur interne PCRE. | 5.2.0
PREG_BACKTRACK_LIMIT_ERROR (int) | Retourné par la fonction preg_last_error() si backtrack limit a été atteint. | 5.2.0
PREG_RECURSION_LIMIT_ERROR (int) | Retourné par la fonction preg_last_error() si la limite de récurrence a été atteint. | 5.2.0
PREG_BAD_UTF8_ERROR (int) | 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 (int) | 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
PREG_JIT_STACKLIMIT_ERROR (int) | Retourné par preg_last_error() si la dernière fonction PCRE a échoué en raison de la limite de la pile JIT. | 7.0.0
PCRE_VERSION (int) | 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 régulières
  • Options disponibles pour les expressions régulières
  • Différences avec Perl


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 régulières supportées par PCRE sont décrites ci-dessous. Les expressions régulières 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 caractères d'espacement blanc avant un délimiteur valide sont silencieusement ignoré.

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 régulières 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 caractère sans propriété xx, voir les propriétés unicode pour plus d'informations
\r
retour chariot (hex 0D)
\R
saut de ligne : satisfait par \n, \r et \r\n
\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ère)
\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
\H
n'importe quel caractère qui n'est pas un espace horizontal
\s
tout caractère blanc
\S
tout caractère qui n'est pas un caractère blanc
\v
n'importe quel espace vertical
\V
n'importe quel caractère qui n'est pas un espace vertical
\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ée 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. Il est à noter que ceci ne change pas le comportement des délimiteurs?; par exemple le masque #\Q#\E#$ n'est pas valide, car le second # marque la fin du masque, et que \E# est interprété comme un modificateur invalide.

\K peut être utilisé pour réinitialiser le résultat Par exemple, le masque foo\Kbar trouve "foobar", mais reporte qu'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

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 quel 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écimaux (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 (pas 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. À partir de libpcre 8.10 certains caractères de classes ont été modifié pour utiliser des caractères de propriétés Unicode, dans ce cas les restrictions mentionnées ne s'applique pas. Référez-vous au » manuel PCRE(3) pour plus de détails.

Les propriétés des caractères Unicode peuvent apparaitre à l'intérieur d'une classe de caractère. Ils ne peuvent pas faire partie d'une étendue. Le caractère moins (tiret) après une classe de caractère Unicode satisfera littéralement. Essayer de terminer une étendue avec une propriété de caractère Unicode résultera en un avertissement.


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, elles ne réussiront que si le masque principal réussit 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 (plus supporté à partir de PHP 7.3.0)
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. Il se peut qu'il soit impossible de compiler un masque aussi large, toutefois, ceci dépend des options de configuration de libpcre.

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. Il y a deux syntaxes alternatives : (?<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. Normalement, chacun recevra son propre nombre de références arrière 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, Sun est stocké dans la référence arrière 2, alors que la référence arrière 1 est vide. La recherche de correspondance de Saturday 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é à l'itération précédente. Voir la section sur les séquences d'échappements pour plus de 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ère dans le même sous-masque. Si un sous-masque n'a pas été utilisé dans une recherche, alors les références arrière é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ère, 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.

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 antislash. Cette séquence aide à distinguer les références arrière 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ère du sous-masque nommé peuvent être utilisées sous la forme (?P=name), \k<name>, \k'name', \k{name}, \g{name}, \g<name> ou \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 pas de caractères (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ère. C'est une amélioration du fonctionnement de Perl 5.005, qui impose aux alternatives d'avoir toute 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 possibilités de longueurs différentes. Pour la rendre acceptable, il faut écrire (?<=abc|abde) L'implémentation des assertions arrière 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ère 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ée 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ère, 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 permet 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 possibilités, 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 une 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êmes conditions que le précédent) et avec deux possibilités 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.

Exemple #1 Usage de commentaire dans un masque PCRE

<?php

$subject = 'test';

/* (?# can be used to add comments without enabling PCRE_EXTENDED */
$match = preg_match('/te(?# this is a comment)st/', $subject);
var_dump($match);

/* Whitespace and # is treated as part of the pattern unless PCRE_EXTENDED is enabled */
$match = preg_match('/te #~~~~
st/', $subject);
var_dump($match);

/* When PCRE_EXTENDED is enabled, all whitespace data characters and anything
that follows an unescaped # on the same line is ignored */
$match = preg_match('/te #~~~~
st/x', $subject);
var_dump($match);

L'exemple ci-dessus va afficher :

int(1)
int(0)
int(1)


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 régulières.

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ère 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.
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 régulières. 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. À partir de PHP 7.2.0 J est aussi supporter en tant que modificateur.
u (PCRE_UTF8)
Cette option active des fonctionnalités additionnelles de PCRE qui ne sont pas compatibles avec Perl. La chaîne d'entrée et le masque sont traités comme des chaînes UTF-8. Une chaîne d'entrée invalide aura pour conséquence une absence de correspondance dans 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 invalides.
n (PCRE_NO_AUTO_CAPTURE)
Ce modificateur rend les groupes simples (xyz) non capturants. Seuls les groupes nommés comme (?<name>xyz) sont capturants. Cela affecte uniquement les groupes capturants, il est toujours possible d'utiliser des références de sous-masque numérotées, et le tableau de correspondances contiendra toujours des résultats numérotés.


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. PCRE 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 régulières 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.


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_msg — Returns the error message of the last PCRE regex execution
  • 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 régulières
  • preg_replace_callback_array — Éffectue une recherche de correspondance avec une expression régulière et remplace grâce à une fonction de rappel
  • 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, PHP 8)

preg_filter — Recherche et remplace avec une expression rationnelle

Description

preg_filter(
string|array $pattern,
string|array $replacement,
string|array $subject,
int $limit = -1,
int &$count = null
): string|array|null

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().

Liste de paramètres

Les paramètres sont décrits dans la documentation de 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.

Erreurs / Exceptions

Si le masque regex passé ne compile pas à une regex valide, une E_WARNING est émise.

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 régulières
  • 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_msg »
  • PHP Manual
  • Fonctions PCRE
  • Retourne un tableau avec les résultats de la recherche

preg_grep

(PHP 4, PHP 5, PHP 7, PHP 8)

preg_grep — Retourne un tableau avec les résultats de la recherche

Description

preg_grep(string $pattern, array $array, int $flags = 0): array|false

preg_grep() retourne un tableau qui contient les éléments de array qui satisfont le masque pattern.

Liste de paramètres

pattern

Le motif à chercher, sous la forme d'une chaîne de caractères.

array

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 array d'entrée, ou false si une erreur survient.

Erreurs / Exceptions

Si le masque regex passé ne compile pas à une regex valide, une E_WARNING est émise.

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 régulières
  • 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


Returns the error message of the last PCRE regex execution

  • « preg_grep
  • preg_last_error »
  • PHP Manual
  • Fonctions PCRE
  • Returns the error message of the last PCRE regex execution

preg_last_error_msg

(PHP 8)

preg_last_error_msg — Returns the error message of the last PCRE regex execution

Description

preg_last_error_msg(): string

Returns the error message of the last PCRE regex execution.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the error message on success, or "No error" if no error has occurred.

Exemples

Exemple #1 preg_last_error_msg() example

<?php

preg_match('/(?:\D+|<\d+>)*[!?]/', 'foobar foobar foobar');

if (preg_last_error() !== PREG_NO_ERROR) {
echo preg_last_error_msg();
}

?>

L'exemple ci-dessus va afficher :

Backtrack limit exhausted

Voir aussi

  • 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_last_error_msg
  • 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, PHP 8)

preg_last_error — Retourne le code erreur de la dernière expression PCRE exécutée

Description

preg_last_error(): int

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) {
echo 'Backtrack limit was exhausted!';
}

?>

L'exemple ci-dessus va afficher :

Backtrack limit was exhausted!

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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
  • PREG_JIT_STACKLIMIT_ERROR

Voir aussi

  • preg_last_error_msg() - Returns the error message of the last PCRE regex execution


Expression rationnelle globale

  • « preg_last_error
  • preg_match »
  • PHP Manual
  • Fonctions PCRE
  • Expression rationnelle globale

preg_match_all

(PHP 4, PHP 5, PHP 7, PHP 8)

preg_match_all — Expression rationnelle globale

Description

preg_match_all(
string $pattern,
string $subject,
array &$matches = null,
int $flags = 0,
int $offset = 0
): int|false

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 <.

Si le masque contient des sous-masque nommés, $matches contiendra en plus des entrées qui auront pour clés les noms des sous-masques.

Si le masque contient des sous-masques nommés en double, seul le sous-masque le plus à droite sera enregistré dans $matches[NAME].

<?php
preg_match_all(
'/(?J)(?<match>foo)|(?<match>bar)/',
'foo bar',
$matches,
PREG_PATTERN_ORDER
);
print_r($matches['match']);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] =>
    [1] => bar
)

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 ce drapeau est passé, toutes les sous-chaînes qui satisfont le masque seront aussi identifiées par leur offset (en octets). Notez que cela modifie la valeur de matches en un tableau de tableau où chaque élément est un tableau contenant la sous-chaîne satisfaite à l'index 0 et l'index de celle-ci dans la chaîne subject à l'index 1.

<?php
preg_match_all('/(foo)(bar)(baz)/', 'foobarbaz', $matches, PREG_OFFSET_CAPTURE);
print_r($matches);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [0] => foobarbaz
                    [1] => 0
                )

        )

    [1] => Array
        (
            [0] => Array
                (
                    [0] => foo
                    [1] => 0
                )

        )

    [2] => Array
        (
            [0] => Array
                (
                    [0] => bar
                    [1] => 3
                )

        )

    [3] => Array
        (
            [0] => Array
                (
                    [0] => baz
                    [1] => 6
                )

        )

)

PREG_UNMATCHED_AS_NULL

Si ce drapeau est passé, les sous-masques non satisfait sont rapportés en tant que null ; sinon ils sont rapportés en tant que chaîne de caractères vide.

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.

Erreurs / Exceptions

Si le masque regex passé ne compile pas à une regex valide, une E_WARNING est émise.

Historique

Version | Description
7.2.0 | PREG_UNMATCHED_AS_NULL est maintenant supporté pour le paramètre $flags.

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);

/* Alternative */
// 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

  • Masques PCRE
  • preg_quote() - Protection des caractères spéciaux des expressions régulières
  • 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, PHP 8)

preg_match — Effectue une recherche de correspondance avec une expression rationnelle standard

Description

preg_match(
string $pattern,
string $subject,
array &$matches = null,
int $flags = 0,
int $offset = 0
): int|false

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 être une combinaison des drapeaux suivants :

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 (en octets). 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.

<?php
preg_match('/(foo)(bar)(baz)/', 'foobarbaz', $matches, PREG_OFFSET_CAPTURE);
print_r($matches);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Array
        (
            [0] => foobarbaz
            [1] => 0
        )

    [1] => Array
        (
            [0] => foo
            [1] => 0
        )

    [2] => Array
        (
            [0] => bar
            [1] => 3
        )

    [3] => Array
        (
            [0] => baz
            [1] => 6
        )

)

PREG_UNMATCHED_AS_NULL

Si ce drapeau est passé, les sous-masques non satisfait sont rapportés en tant que null ; sinon ils sont rapportés en tant que chaîne de caractères vide.

<?php
preg_match('/(a)(b)*(c)/', 'ac', $matches);
var_dump($matches);
preg_match('/(a)(b)*(c)/', 'ac', $matches, PREG_UNMATCHED_AS_NULL);
var_dump($matches);
?>

L'exemple ci-dessus va afficher :

array(4) {
  [0]=>
  string(2) "ac"
  [1]=>
  string(1) "a"
  [2]=>
  string(0) ""
  [3]=>
  string(1) "c"
}
array(4) {
  [0]=>
  string(2) "ac"
  [1]=>
  string(1) "a"
  [2]=>
  NULL
  [3]=>
  string(1) "c"
}

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
        )

)

Sinon, pour éviter l'usage de substr(), utiliser l'assertion \G plutôt que l'ancre ^, ou le modificateur A, tous les deux fonctionne avec le paramètre offset.

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.

Erreurs / Exceptions

Si le masque regex passé ne compile pas à une regex valide, une E_WARNING est émise.

Historique

Version | Description
7.2.0 | PREG_UNMATCHED_AS_NULL est maintenant supporté pour le paramètre $flags.

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);

/* Alternative */
// 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 strpos() à la place car ça sera plus rapide.

Voir aussi

  • Masques PCRE
  • preg_quote() - Protection des caractères spéciaux des expressions régulières
  • preg_match_all() - Expression rationnelle globale
  • 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
  • preg_last_error_msg() - Returns the error message of the last PCRE regex execution


Protection des caractères spéciaux des expressions régulières

  • « preg_match
  • preg_replace_callback_array »
  • PHP Manual
  • Fonctions PCRE
  • Protection des caractères spéciaux des expressions régulières

preg_quote

(PHP 4, PHP 5, PHP 7, PHP 8)

preg_quote — Protection des caractères spéciaux des expressions régulières

Description

preg_quote(string $str, ?string $delimiter = null): string

preg_quote() ajoute un antislash devant chaque caractère de la chaîne str faisant partie de la syntaxe des expressions régulières. 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 : . \ + * ? [ ^ ] $ ( ) { } = ! < > | : - #

Notez que / n'est pas un caractère spécial d'expression régulière.

Note:

Notez que preg_quote() n'est pas destiné à être appliqué aux chaînes de caractères $replacement de preg_replace() etc.

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
7.3.0 | Le caractère # est maintenant protégé
7.2.0 | delimiter est désormais nullable.

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

  • Masques PCRE
  • escapeshellcmd() - Protège les caractères spéciaux du Shell


Éffectue une recherche de correspondance avec une expression régulière et remplace grâce à une fonction de rappel

  • « preg_quote
  • preg_replace_callback »
  • PHP Manual
  • Fonctions PCRE
  • Éffectue une recherche de correspondance avec une expression régulière et remplace grâce à une fonction de rappel

preg_replace_callback_array

(PHP 7, PHP 8)

preg_replace_callback_array — Éffectue une recherche de correspondance avec une expression régulière et remplace grâce à une fonction de rappel

Description

preg_replace_callback_array(
array $pattern,
string|array $subject,
int $limit = -1,
int &$count = null,
int $flags = 0
): string|array|null

Le comportement de cette fonction est similaire à preg_replace_callback(), à l'exception que les fonctions de rappel sont exécutéees à chaque masque.

Liste de paramètres

pattern

Un tableau associatif qui établie une relation entre les masques (clés) et les fonctions de rappels callable (valeurs).

subject

La chaîne de caractères ou tableau qui contient les chaîne de caractères à chercher et remplacer.

limit

Le nombre maximum de remplacement pour chaque masque dans chaque chaîne de caractères subject. Par défaut -1 (aucune limite).

count

Si fournit, cette variable sera remplit avec le nombre de remplacement effectué.

flags

flags peut être une combinaison des drapeaux PREG_OFFSET_CAPTURE et PREG_UNMATCHED_AS_NULL, qui influence le format du tableau de correspondances. Voir la description de preg_match() pour plus de détail.

Valeurs de retour

preg_replace_callback_array() retourne un tableau si le paramètre subject est un tableau, ou sinon une chaîne de caractères. Lors d'une erreur la valeur de retour est null.

Si des correspondances sont trouvées, le nouveau sujet sera retourné, sinon subject sera retourné inchangé.

Erreurs / Exceptions

Si le masque regex passé ne compile pas à une regex valide, une E_WARNING est émise.

Historique

Version | Description
7.4.0 | Le paramètre flags a été ajouté.

Exemples

Exemple #1 Exemple de preg_replace_callback_array()

<?php
$subject = 'Aaaaaa Bbb';

preg_replace_callback_array(
[
'~[a]+~i' => function ($match) {
echo strlen($match[0]), ' correspondances de "a" trouvées', PHP_EOL;
},
'~[b]+~i' => function ($match) {
echo strlen($match[0]), ' correspondances de "b" trouvées', PHP_EOL;
}
],
$subject
);
?>

L'exemple ci-dessus va afficher :

6 correspondances de "a" trouvées
3 correspondances de "b" trouvées

Voir aussi

  • Masques PCRE
  • 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 régulières
  • 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


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, PHP 8)

preg_replace_callback — Rechercher et remplacer par expression rationnelle standard en utilisant une fonction de callback

Description

preg_replace_callback(
string|array $pattern,
callable $callback,
string|array $subject,
int $limit = -1,
int &$count = null,
int $flags = 0
): string|array|null

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 :

handler(array $matches): string

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 vous ne polluez pas 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 la première lettre
// des paragraphes (commençant par "<p>") en minuscule

$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.

flags

flags peut être une combinaison des drapeaux PREG_OFFSET_CAPTURE et PREG_UNMATCHED_AS_NULL, qui influence le format du tableau de correspondances. Voir la description de preg_match() pour plus de détail.

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 subject sera retourné inchangé.

Erreurs / Exceptions

Si le masque regex passé ne compile pas à une regex valide, une E_WARNING est émise.

Historique

Version | Description
7.4.0 | Le paramètre flags 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

  • Masques PCRE
  • preg_replace_callback_array() - Éffectue une recherche de correspondance avec une expression régulière et remplace grâce à une fonction de rappel
  • preg_quote() - Protection des caractères spéciaux des expressions régulières
  • 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


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, PHP 8)

preg_replace — Rechercher et remplacer par expression rationnelle standard

Description

preg_replace(
string|array $pattern,
string|array $replacement,
string|array $subject,
int $limit = -1,
int &$count = null
): string|array|null

Analyse subject pour trouver l'expression rationnelle pattern et remplace les résultats par replacement.

Pour faire correspondre une chaîne exacte, plutôt qu'une expression rationnelle, l'utilisation de str_replace() ou str_ireplace() est recommandée à la place de cette fonction.

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.

replacement peut contenir des références de la forme \n ou $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. Il est à noter que dans les chaîne de caractères litéralles les antislashs doivent peut être être échappé.

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é.

Si le tableau subject est associatif, alors les clés seront préservées dans la valeur retournée.

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

Utiliser l'option "\e" est une erreur ; une E_WARNING est émise dans ce cas.

Si le masque regex passé ne compile pas à une regex valide, une E_WARNING est émise.

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 remplacé par quel replacement, il est recommandé de faire un tri ksort() sur chaque tableau avant de faire appel à preg_replace().

Note:

Quand pattern et replacement sont des tableaux, les règles de correspondance fonctionneront de manière séquentielle. C'est-à-dire que la deuxième paire pattern/replacement opérera sur la chaîne de caractères qui résulte de la première paire pattern/replacement, et non sur la chaîne originale. Si vous voulez simuler des remplacements fonctionnant en parallèle, comme l'échange de deux valeurs, remplacez un motif par un substitut intermédiaire, puis dans une paire ultérieure, remplacez ce placeholder intermédiaire par le remplacement souhaité.

<?php
$p = array('/a/', '/b/', '/c/');
$r = array('b', 'c', 'd');
print_r(preg_replace($p, $r, 'a'));
// prints d
?>

Voir aussi

  • Masques PCRE
  • preg_quote() - Protection des caractères spéciaux des expressions régulières
  • 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
  • str_replace() - Remplace toutes les occurrences dans une chaîne


Éclate une chaîne par expression rationnelle

  • « preg_replace
  • ssdeep »
  • PHP Manual
  • Fonctions PCRE
  • Éclate une chaîne par expression rationnelle

preg_split

(PHP 4, PHP 5, PHP 7, PHP 8)

preg_split — Éclate une chaîne par expression rationnelle

Description

preg_split(
string $pattern,
string $subject,
int $limit = -1,
int $flags = 0
): array|false

É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. Une limit de -1 ou 0 signifie "aucune limite".

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, ou false si une erreur survient.

Erreurs / Exceptions

Si le masque regex passé ne compile pas à une regex valide, une E_WARNING est émise.

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

  • Masques PCRE
  • preg_quote() - Protection des caractères spéciaux des expressions régulières
  • 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


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 : » https://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

ssdeep_fuzzy_compare(string $signature1, string $signature2): int

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

ssdeep_fuzzy_hash_filename(string $file_name): string

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

ssdeep_fuzzy_hash(string $to_hash): string

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 — Générer une chaîne d'un octet à partir d'un nombre
    • 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 — Scinde une chaîne de caractères 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 encodée en hexadécimal vers du binaire
    • html_entity_decode — Convertit les entités HTML à leurs caractères correspondant
    • 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 — Convertit le premier octet d'une chaîne en une valeur entre 0 et 255
    • parse_str — Analyse une chaîne de caractères d'une variable
    • 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_contains — Détermine si une chaîne contient une sous-chaîne donnée
    • str_decrement — Décremente une chaîne de caractères alphanumérique
    • str_ends_with — Détermine si une chaîne se termine par une sous-chaîne donnée
    • str_getcsv — Analyse une chaîne de caractères CSV dans un tableau
    • str_increment — Incrémente une chaîne de caractères alphanumérique
    • 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_starts_with — Détermine si une chaîne commence par une sous-chaîne donnée
    • 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
    • utf8_decode — Convertit une chaîne UTF-8 en ISO-8859-1, en remplaçant les caractères invalides ou non représentables.
    • utf8_encode — Convertit une chaîne ISO-8859-1 en UTF-8
    • 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 régulières 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.


Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du cœur de PHP.

À partir de PHP 8.1.0, crypt() peut être compilé contre la bibliothèque crypt système en spécifiant l'option de configuration --with-external-libcrypt.


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 (int)
CRYPT_STD_DES (int)
Indique si les hachage basé sur DES standard sont supportés dans crypt(). Toujours 1.
CRYPT_EXT_DES (int)
Indique si les hachage basé sur DES étendu sont supportés dans crypt(). Toujours 1.
CRYPT_MD5 (int)
Indique si les hachage MD5 sont supportés dans crypt(). Toujours 1.
CRYPT_BLOWFISH (int)
Indique si les hachage Blowfish sont supportés dans crypt(). Toujours 1.
CRYPT_SHA256 (int)
Indique si les hachage SHA-256 sont supportés dans crypt(). Toujours 1.
CRYPT_SHA512 (int)
Indique si les hachage SHA-512 sont supportés dans crypt(). Toujours 1.
HTML_SPECIALCHARS (int)
HTML_ENTITIES (int)
ENT_COMPAT (int)
ENT_QUOTES (int)
ENT_NOQUOTES (int)
ENT_IGNORE (int)
ENT_SUBSTITUTE (int)
ENT_DISALLOWED (int)
ENT_HTML401 (int)
ENT_XML1 (int)
ENT_XHTML (int)
ENT_HTML5 (int)
CHAR_MAX (int)
LC_CTYPE (int)
LC_NUMERIC (int)
LC_TIME (int)
LC_COLLATE (int)
LC_MONETARY (int)
LC_ALL (int)
LC_MESSAGES (int)
STR_PAD_LEFT (int)
STR_PAD_RIGHT (int)
STR_PAD_BOTH (int)


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 régulières Perl. Pour travailler avec les encodage de caratères multioctets, reportez-vous aux Fonctions sur les chaînes de caractères multioctets.

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 — Générer une chaîne d'un octet à partir d'un nombre
  • 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 — Scinde une chaîne de caractères 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 encodée en hexadécimal vers du binaire
  • html_entity_decode — Convertit les entités HTML à leurs caractères correspondant
  • 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 — Convertit le premier octet d'une chaîne en une valeur entre 0 et 255
  • parse_str — Analyse une chaîne de caractères d'une variable
  • 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_contains — Détermine si une chaîne contient une sous-chaîne donnée
  • str_decrement — Décremente une chaîne de caractères alphanumérique
  • str_ends_with — Détermine si une chaîne se termine par une sous-chaîne donnée
  • str_getcsv — Analyse une chaîne de caractères CSV dans un tableau
  • str_increment — Incrémente une chaîne de caractères alphanumérique
  • 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_starts_with — Détermine si une chaîne commence par une sous-chaîne donnée
  • 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
  • utf8_decode — Convertit une chaîne UTF-8 en ISO-8859-1, en remplaçant les caractères invalides ou non représentables.
  • utf8_encode — Convertit une chaîne ISO-8859-1 en UTF-8
  • 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, PHP 8)

addcslashes — Ajoute des slash dans une chaîne, à la mode du langage C

Description

addcslashes(string $string, string $characters): string

Retourne la chaîne string, après avoir ajouté des antislashs devant tous les caractères qui sont présents dans la liste characters.

Liste de paramètres

string

La chaîne à échapper.

characters

Une liste de caractères à échapper. Si characters 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 characters, 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 characters.

Valeurs de retour

Retourne la chaîne, échappée.

Exemples

characters 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, PHP 8)

addslashes — Ajoute des antislashs dans une chaîne

Description

addslashes(string $string): string

Retourne la chaîne str après avoir échappé tous les caractères qui doivent l'être. Ces caractères sont :

  • guillemets simples (')
  • guillemets doubles (")
  • antislash (\)
  • NUL (l'octet NUL)

Un cas d'utilisation de addslashes() est d'échapper les caractères susmentionnés dans une chaîne de caractères qui doit être évaluée par PHP :

<?php
$str = "O'Reilly?";
eval("echo '" . addslashes($str) . "';");
?>

addslashes() est parfois utilisé incorrectement pour empêcher les Injections SQL. À la place, les fonctions d'échappements spécifiques à la base de données et/ou les déclarations préparées devraient être utilisées.

Liste de paramètres

string

La chaîne de caractères à échapper.

Valeurs de retour

Retourne la chaîne de caractères é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, PHP 8)

bin2hex — Convertit des données binaires en représentation hexadécimale

Description

bin2hex(string $string): string

Retourne la chaîne string 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

string

Une chaîne de caractères.

Valeurs de retour

Retourne la représentation hexadécimale de la chaîne fournie.

Exemples

Exemple #1 Exemple avec bin2hex()

<?php

$hex = bin2hex('Hello world!');

var_dump($hex);
var_dump(hex2bin($hex));
?>

L'exemple ci-dessus va afficher :

string(24) "48656c6c6f20776f726c6421"
string(12) "Hello world!"

Voir aussi

  • hex2bin() - Convertit une chaîne encodée en hexadécimal vers du binaire
  • 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, PHP 8)

chop — Alias de rtrim()

Description

Cette fonction est un alias de : rtrim().

Notes

Note:

chop() est différente de son homonyme Perl chop(), qui supprime le dernier caractère dans la chaîne.


Générer une chaîne d'un octet à partir d'un nombre

  • « chop
  • chunk_split »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Générer une chaîne d'un octet à partir d'un nombre

chr

(PHP 4, PHP 5, PHP 7, PHP 8)

chr — Générer une chaîne d'un octet à partir d'un nombre

Description

chr(int $codepoint): string

Retourne une chaîne de caractères d'un seul caractère contenant le caractère spécifié en interprétant codepoint comme un entier non signé.

Ceci peut être utilisé pour créer une chaîne de caractères d'un seul caractère dans un encodage sur un octet tel que ASCII, ISO-8859, ou Windows 1252, en passant la position du caractère désiré dans la table de correspondance de l'encodage. Cependant, il est à noter que cette fonction n'est pas conscient d'aucun encodage de chaîne de caractères, et en particulier ne peut pas être transmit une valeur de point de code Unicode pour générer une chaîne de caractères dans un encodage multioctet tel que UTF-8 ou UTF-16.

Cette fonction complète ord().

Liste de paramètres

codepoint

Un entier entre 0 et 255;

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 ($bytevalue < 0) {
$bytevalue += 256;
}
$bytevalue %= 256;

Valeurs de retour

Retourne une chaîne de caractères d'un seul caractère contenant l'octet spécifié.

Historique

Version | Description
7.4.0 | Cette fonction n'accepte plus silencieusement les codepoints non supporté, et casts ces valeurs à 0.

Exemples

Exemple #1 Exemple avec chr()

<?php
// Suppose que la chaîne sera utilisé en tant que ASCII ou un encodage
// compatible avec celui-ci

$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

Exemple #3 Construite une chaîne UTF-8 à partir d'octet individuel

<?php
$str = chr(240) . chr(159) . chr(144) . chr(152);
echo $str;
?>

L'exemple ci-dessus va afficher :

??

Voir aussi

  • sprintf() - Retourne une chaîne formatée avec le caractère de formatage %c
  • ord() - Convertit le premier octet d'une chaîne en une valeur entre 0 et 255
  • » Table ASCII
  • mb_chr() - Retourne un caractère par sa valeur de point de code Unicode
  • IntlChar::chr() - Return Unicode character by code point value


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, PHP 8)

chunk_split — Scinde une chaîne

Description

chunk_split(string $string, int $length = 76, string $separator = "\r\n"): string

Scinde la chaîne body en segments de length 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 separator tous les length caractères.

Liste de paramètres

string

La chaîne à scinder.

length

La taille de la portion.

separator

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() - Scinde une chaîne de caractères en segments
  • 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

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.4.0, et a été SUPPRIMÉE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

convert_cyr_string(string $str, string $from, string $to): string

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.

Voir aussi

  • mb_convert_encoding() - Convertir une chaîne d'un codage de caractères à un autre
  • iconv() - Convertit une chaîne de caractères à partir d'un encodage vers un autre


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, PHP 8)

convert_uudecode — Décode une chaîne au format uuencode

Description

convert_uudecode(string $string): string|false

convert_uudecode() décode une chaîne au format uuencode.

Note: convert_uudecode() n'accepte ni la ligne begin ni la ligne end, qui font partie des fichiers files encodé en uuencoded.

Liste de paramètres

string

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
echo convert_uudecode("+22!L;W9E(%!(4\"$`\n`");
?>

L'exemple ci-dessus va afficher :

I love PHP!

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, PHP 8)

convert_uuencode — Encode une chaîne de caractères en utilisant l'algorithme uuencode

Description

convert_uuencode(string $string): string

convert_uuencode() encode une chaîne de caractères en utilisant l'algorithme uuencode.

Uuencode traduit toutes les chaînes (y compris les données 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.

Note: convert_uuencode() ne produit ni la ligne begin ni la ligne end, qui font partie des fichiers files encodé en uuencoded.

Liste de paramètres

string

Les données à encoder.

Valeurs de retour

Retourne les données, au format uuencode.

Historique

Version | Description
8.0.0 | Antérieur à cette version, tenter de convertir une chaîne vide retournait false pour aucune raison particulière.

Exemples

Exemple #1 Exemple avec convert_uuencode()

<?php
$some_string = "test\ntext text\r\n";

echo convert_uuencode($some_string);
?>

L'exemple ci-dessus va afficher :

0=&5S=`IT97AT('1E>'0-"@``
`

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, PHP 8)

count_chars — Retourne des statistiques sur les caractères utilisés dans une chaîne

Description

count_chars(string $string, int $mode = 0): array|string

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.

Historique

Version | Description
8.0.0 | Antérieur à cette version, la fonction retournait false en cas d'échec.

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, PHP 8)

crc32 — Calcule la somme de contrôle CRC32

Description

crc32(string $string): int

Génère la somme de contrôle cyclique CRC32, calculée sur 32 bits, et appliquée à la chaîne string. 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 hexadé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

string

Les données.

Valeurs de retour

Retourne la somme de contrôle crc32 de la chaîne string, 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, PHP 8)

crypt — Hachage à sens unique (indéchiffrable)

Avertissement

Cette fonction n'est pas capable de gérer les chaînes binaires !

Description

crypt(string $string, string $salt): string

crypt() retournera une chaîne haché utilisant l'algorithme standard d'Unix basé sur DES, ou un algorithme alternatif. La fonction password_verify() est compatible avec la fonction crypt(). Ainsi, un mot de passe haché par la fonction crypt() peut être utilisé avec la fonction password_verify().

Antérieur à PHP 8.0.0, le paramètre salt était optionnel. Cependant, crypt() crée un hash faible sans le salt, et lève une erreur E_NOTICE sans celui-ci. 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.

Le type de hash est déclenché par l'argument salt. 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 string, 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).

Les types de hash suivant sont supportés :

  • 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 caractères du compteur d'itération puis 4 caractères du "salt". Chacune de ces chaînes de 4 caractères code 24 bits, le caractère le moins significatif en premier. 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 jasant 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 hashes "$2x$" sont potentiellement faible; les hashes "$2a$" sont compatible et atténue cette faiblesse. Pour de nouveaux hashes, "$2y$" devrait être utilisé.
  • 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.

Liste de paramètres

string

La chaîne à hacher.

Attention

Si vous utilisez l'algorithme CRYPT_BLOWFISH, le résultat du paramètre string sera tronqué à une longueur maximale de 72 octets.

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 fournit hash_equals() pour ceci.

Historique

Version | Description
8.0.0 | Le salt n'est plus optionnel.

Exemples

Exemple #1 Exemple avec crypt()

<?php
$user_input = 'rasmuslerdorf';
$hashed_password = '$6$rounds=1000000$NJy4rIPjpOaU$0ACEYGg/aKCY3v8O8AfyiO7CTfZQ8/W231Qfh2tRLmfdvFD6XfHk12u6hMr9cYIA4hnpjLNSTRtUwYr9km9Ij/';

// Valider un hachage crypt() existant d'une maniére qui est compatible avec un logiciel non-PHP
if (hash_equals($hashed_password, crypt($user_input, $hashed_password))) {
echo "Mot de passe correct !";
}
?>

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
  • 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, PHP 8)

echo — Affiche une chaîne de caractères

Description

echo(string ...$expressions): void

Affiche une ou plusieurs expressions, sans espaces ou nouvelle ligne additionnelle.

echo n'est pas une fonction mais une construction du langage. Ses arguments sont une liste d'expressions suivant le mot clé echo, séparés par des virgules, et non délimités par des parenthèses. Contrairement à d'autres constructions du langage, echo n'a pas de valeur de retour, elle ne peut donc pas être utilisée dans le contexte d'une expression.

echo dispose aussi d'une syntaxe courte, où vous pouvez faire suivre immédiatement la balise PHP ouvrante d'un signe égal (=). Cette syntaxe est disponible même si la directive de configuration short_open_tag est désactivée.

J'ai <?=$foo?> foo.

La plus grosse différence avec print est que echo accepte plusieurs arguments et ne retourne aucune valeur.

Liste de paramètres

expressions

Une ou plusieurs expressions de chaînes de caractères à afficher, séparées par des virgules. Les valeurs qui ne sont pas des chaînes de caractères seront converties en chaînes de caractères, même si la directive strict_types est activée.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec echo

<?php
echo "echo ne requiert pas de parenthèses.";

// Les chaînes peuvent être passées soit individuellement comme plusieurs arguments ou
// concaténées ensemble et passées en tant qu'un seul argument
echo 'This ', 'string ', 'was ', 'made ', 'with multiple parameters.', "\n";
echo 'This ' . 'string ' . 'was ' . 'made ' . 'with concatenation.' . "\n";

// Aucune nouvelle ligne ou espace n'est ajoutée ; ci-dessous affiche "helloworld", tout sur une ligne
echo "hello";
echo "world";

// Pareil que ci-dessus
echo "hello", "world";

echo "This string spans
multiple lines. The newlines will be
output as well";

echo "This string spans\nmultiple lines. The newlines will be\noutput as well.";

// L'argument peut être n'importe quelle expression qui produit une chaîne de caractères
$foo = "example";
echo "foo is $foo"; // foo is example

$fruits = ["lemon", "orange", "banana"];
echo implode(" and ", $fruits); // lemon and orange and banana

// Les expressions qui ne sont pas des chaînes sont converties en chaînes, même si declare(strict_types=1) est utilisé
echo 6 * 7; // 42

// Comme echo ne se comporte pas comme une expression, le code suivant est invalide.
($some_var) ? echo 'true' : echo 'false';

// Cependent, les exemples suivants fonctionneront :
($some_var) ? print 'true' : print 'false'; // print est aussi une construction, mais
// est une expression valide, retournant 1.
// Donc il peut être utilisé dans ce contexte.

echo $some_var ? 'true': 'false'; // évaluant l'expression d'abord puis la passant à echo
?>

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 ou arguments nommés.

Note: Utilisation avec les parenthèses

Entourer un seul argument de echo avec des parenthèses ne lèvera pas une erreur de syntaxe, et produit une syntaxe ressemblant à un appel normal de fonction. Néanmoins, ceci peut être trompeur, car les parenthèses font en réalité partie de l'expression qui est en cours d'affichage, et non partie de la syntaxe de echo en lui-même.

<?php
echo "hello";
// outputs "hello"

echo("hello");
// also outputs "hello", because ("hello") is a valid expression

echo(1 + 2) * 3;
// outputs "9"; the parentheses cause 1+2 to be evaluated first, then 3*3
// the echo statement sees the whole expression as one argument

echo "hello", " world";
// outputs "hello world"

echo("hello"), (" world");
// outputs "hello world"; the parentheses are part of each expression

echo("hello", " world");
// Throws a Parse Error because ("hello", " world") is not a valid expression
?>

Astuce

Passer plusieurs arguments à echo permet d'éviter des complications qui apparaissent à cause de la précédence de l'opération de concaténation en PHP. Par exemple, l'opérateur de concatenation a une précédence supérieure à l'opérateur ternaire, et antérieurement à PHP 8.0.0, avait la même précédence que l'addition et la soustraction :

<?php
// Below, the expression 'Hello ' . isset($name) is evaluated first,
// and is always true, so the argument to echo is always $name
echo 'Hello ' . isset($name) ? $name : 'John Doe' . '!';

// The intended behaviour requires additional parentheses
echo 'Hello ' . (isset($name) ? $name : 'John Doe') . '!';

// In PHP prior to 8.0.0, the below outputs "2", rather than "Sum: 3"
echo 'Sum: ' . 1 + 2;

// Again, adding parentheses ensures the intended order of evaluation
echo 'Sum: ' . (1 + 2);

Si plusieurs arguments sont fournis, alors les parenthèses ne seront pas requises pour augmenter la précédence, car chaque expression est séparé :

<?php
echo "Hello ", isset($name) ? $name : "John Doe", "!";

echo "Sum: ", 1 + 2;

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
  • Manière de spécifié des chaînes littérales


Scinde une chaîne de caractères en segments

  • « echo
  • fprintf »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Scinde une chaîne de caractères en segments

explode

(PHP 4, PHP 5, PHP 7, PHP 8)

explode — Scinde une chaîne de caractères en segments

Description

explode(string $separator, string $string, int $limit = PHP_INT_MAX): array

explode() retourne un tableau de chaînes de caractères, chacune d'elle étant une sous-chaîne du paramètre string extraite en utilisant le séparateur separator.

Liste de paramètres

separator

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:

Antérieur à PHP 8.0, implode() acceptait ses paramètres dans n'importe quel ordre. explode() n'a jamais supporté ceci : vous devez vous assurer que le paramètre separator soit placé avant le paramètre string.

Valeurs de retour

Retourne un tableau de chaînes de caractères créées en scindant la chaîne du paramètre string en plusieurs morceaux suivant le paramètre separator.

Si separator est une chaîne vide (""), explode() lancera une ValueError. Si separator 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. Si les valeurs de separator apparaissent au début ou à la fin de string, ces valeurs seront ajouté comme une valeur d'un array vide soit en la première ou dernière position du array retourné respectivement.

Historique

Version | Description
8.0.0 | explode() lancera désormais une ValueError quand le paramètre separator est donné une chaîne vide (""). Précédemment, explode() retournait false.

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
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 multioctets
  • 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, PHP 8)

fprintf — Écrit une chaîne formatée dans un flux

Description

fprintf(resource $stream, string $format, mixed ...$values): int

Écrit la chaîne produite avec le format format dans le flux représenté par stream.

Liste de paramètres

stream

Un pointeur de système de fichiers de type ressource qui est habituellement créé en utilisant la fonction fopen().

format

La chaîne de format est composé de zéro ou plusieurs directives : des caractères ordinaires (à l'exception de %) qui sont copiés directement dans le résultat et des spécifications de conversion, chacun ayant pour résultat de récupérer ses propres paramètre.

Une spécification de conversion qui suit ce prototype : %[argnum$][flags][width][.precision]specifier.

Argnum

Un entier suivit d'un signe dollar $, pour spécifier quel numéro d'argument à traiter dans la conversion.

Drapeaux
Drapeau | Description
- Justifie le texte à gauche donnée la largeur du champ ; Justification à droite est le comportement par défaut.
+ Préfixe les nombres positives avec un signe plus + ; Par défaut seul les nombres négatifs sont préfixés avec un signe négatif.
(espace) | Complète le résultat avec des espaces. Ceci est par défaut.
0 | Complète uniquement les nombres à gauches avec des zéros. Avec le spécificateur s ceci peut aussi compléter à droite avec des zéros.
'(char) | Complète le résultat avec le caractère (char).

Largeur

Soit un entier indiquant le nombre de caractères (minimum) que cette conversion doit produire, soit *. Si * est utilisé, alors la largeur est fournie en tant que valeur entière supplémentaire précédant celle formatée par le spécificateur.

Precision

Un point . suivi optionnellement soit d'un entier, soit de *, dont la signification dépend du spécificateur :

  • Pour les spécificateurs e, E, f et F : ceci est le nombre de chiffres à afficher après la virgule (par défaut, ceci est 6).
  • Pour les spécificateurs g, G, h et H : ceci est le nombre maximal de chiffres significatifs à afficher. digits to be printed.
  • Pour le spécificateur s : il agit comme un point de coupure, définissant une limite maximale de caractères de la chaîne.

Note: Si le point est spécifié sans une valeur explicite pour la précision, 0 est assumé. Si * est utilisé, la précision est fournie en tant que valeur entière supplémentaire précédant celle formatée par le spécificateur.

Spécificateurs
Spécificateur | Description
% 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 décimal (signé).
e | L'argument est traité comme une notation scientifique (e.g. 1.2e+2).
E | Comme le spécificateur e mais utilise une lettre majuscule (par exemple 1.2E+2).
f | L'argument est traité comme un nombre à virgule flottante (type nombre décimal) 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 nombre décimal) et présenté comme un nombre à virgule flottante (ne tenant pas compte de la locale utilisée).
g

Format général.

Soit P égal à la précision si différent de 0, 6 si la précision est omit ou 1 si la précision est zéro. Alors, si la conversion avec le style E aurait comme exposant X :

Si P > X = -4, la conversion est avec style f et précision P - (X + 1). Sinon, la conversion est avec le style e et précision P - 1.

G | Comme le spécificateur g mais utilise E et f.
h | Comme le spécificateur g mais utilise F. Disponible à partir de PHP 8.0.0.
H | Comme le spécificateur g mais utilise E et F. Disponible à partir de PHP 8.0.0.
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 décimal 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).

Avertissement

Le spécificateur de type c ignore l'alignement et la taille.

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.

Les variables seront contraints à un type approprié pour le spécificateur :

Gestion des types
Type | Spécificateurs
string | s
int | d, u, c, o, x, X, b
float | e, E, f, F, g, G, h, H

values

Valeurs de retour

Retourne la longueur de la chaîne écrite.

Erreurs / Exceptions

À partir de PHP 8.0.0, une ValueError est lancée si le nombre d'arguments est nul. Antérieur à PHP 8.0.0, un E_WARNING était émis à la place.

À partir de PHP 8.0.0, une ValueError est lancée si [width] est inférieur à zéro ou supérieur à PHP_INT_MAX. Antérieur à PHP 8.0.0, un E_WARNING était émis à la place.

À partir de PHP 8.0.0, une ValueError est lancée si [precision] est inférieur à zéro ou supérieur à PHP_INT_MAX. Antérieur à PHP 8.0.0, un E_WARNING était émis à la place.

À partir de PHP 8.0.0, une ArgumentCountError est lancée lorsque moins d'arguments sont donnés que requis. Antérieur à PHP 8.0.0, false était retourné et un E_WARNING était émis à la place.

Historique

Version | Description
8.0.0 | Cette fonction ne renvoie plus false en cas d'échec.
8.0.0 | Lance une ValueError si le nombre d'arguments est zéro ; auparavant, cette fonction émettait un E_WARNING.
8.0.0 | Lance une ValueError si [width] est inférieur à zéro ou supérieur à PHP_INT_MAX ; auparavant, cette fonction émettait un E_WARNING.
8.0.0 | Lance une ValueError si [precision] est inférieur à zéro ou supérieur à PHP_INT_MAX ; auparavant, cette fonction émettait un E_WARNING.
8.0.0 | Lance une ArgumentCountError lorsque moins d'arguments sont donnés que requis ; auparavant, cette fonction émettait un E_WARNING.

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
  • vprintf() - Affiche une chaîne formatée
  • vsprintf() - Retourne une chaîne formatée
  • vfprintf() - Écrit une chaîne formatée dans un flux
  • sscanf() - Analyse une chaîne à l'aide d'un format
  • fscanf() - Analyse un fichier en fonction d'un format
  • number_format() - Formate un nombre pour l'affichage
  • date() - Formate un horodatage Unix


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, PHP 8)

get_html_translation_table — Retourne la table de traduction des entités utilisée par htmlspecialchars() et htmlentities()

Description

get_html_translation_table(int $table = HTML_SPECIALCHARS, int $flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401, string $encoding = "UTF-8"): array

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_QUOTES | ENT_SUBSTITUTE | 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_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_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 est UTF-8.

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 (multioctet 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
8.1.0 | flags à changé de ENT_COMPAT à ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.

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));
?>

Résultat de l'exemple ci-dessus est 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 les entités HTML à leurs caractères correspondant


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, PHP 8)

hebrev — Convertit un texte logique hébreux en texte visuel

Description

hebrev(string $string, int $max_chars_per_line = 0): string

Convertit un texte logique hébreux en texte visuel.

La fonction tente d'éviter la césure des mots.

Liste de paramètres

string

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

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.4.0, et a été SUPPRIMÉE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

hebrevc(string $hebrew_text, int $max_chars_per_line = 0): string

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 encodée en hexadécimal vers du binaire

  • « hebrevc
  • html_entity_decode »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Convertit une chaîne encodée en hexadécimal vers du binaire

hex2bin

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

hex2bin — Convertit une chaîne encodée en hexadécimal vers du binaire

Description

hex2bin(string $string): string|false

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

string

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.

Exemples

Exemple #1 Exemple avec hex2bin()

<?php
$hex = hex2bin("6578616d706c65206865782064617461");
var_dump($hex);
?>

Résultat de l'exemple ci-dessus est 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 les entités HTML à leurs caractères correspondant

  • « hex2bin
  • htmlentities »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Convertit les entités HTML à leurs caractères correspondant

html_entity_decode

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

html_entity_decode — Convertit les entités HTML à leurs caractères correspondant

Description

html_entity_decode(string $string, int $flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401, ?string $encoding = null): string

html_entity_decode() est la fonction contraire de htmlentities() : elle convertit les entités HTML de la chaîne string en leurs caractères correspondant.

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, c'est ENT_QUOTES | ENT_SUBSTITUTE | 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_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_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 conversion des caractères.

Si omis, la valeur par défaut du paramètre encoding est la valeur de l'option de configuration default_charset.

Malgré le fait que cet argument soit techniquement optionnel, vous êtes vivement encouragé à spécifier la valeur correcte pour votre code si l'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 (multioctet 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
8.1.0 | flags à changé de ENT_COMPAT à ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.
8.0.0 | encoding est désormais nullable.

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, PHP 8)

htmlentities — Convertit tous les caractères éligibles en entités HTML

Description

htmlentities(
string $string,
int $flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401,
?string $encoding = null,
bool $double_encode = true
): string

htmlentities() est identique à la fonction htmlspecialchars(), sauf que tous les caractères qui ont des équivalents en entités HTML sont effectivement traduits. La fonction get_html_translation_table() peut être utilisée pour retourner la table de traduction utilisée en fonction des constantes flags fournies.

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, c'est ENT_QUOTES | ENT_SUBSTITUTE | 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 conversion des caractères.

Si omis, la valeur par défaut du paramètre encoding est la valeur de l'option de configuration default_charset.

Malgré le fait que cet argument soit techniquement optionnel, vous êtes vivement encouragé à spécifier la valeur correcte pour votre code si l'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 (multioctet 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
8.1.0 | flags à changé de ENT_COMPAT à ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.
8.0.0 | encoding est désormais nullable.

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 les entités HTML à leurs caractères correspondant
  • 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, PHP 8)

htmlspecialchars_decode — Convertit les entités HTML spéciales en caractères

Description

htmlspecialchars_decode(string $string, int $flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401): string

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, c'est ENT_QUOTES | ENT_SUBSTITUTE | 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_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_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
8.1.0 | flags à changé de ENT_COMPAT à ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.

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 les entités HTML à leurs caractères correspondant
  • 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, PHP 8)

htmlspecialchars — Convertit les caractères spéciaux en entités HTML

Description

htmlspecialchars(
string $string,
int $flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401,
?string $encoding = null,
bool $double_encode = true
): string

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 bit 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, c'est ENT_QUOTES | ENT_SUBSTITUTE | 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 conversion des caractères.

Si omis, la valeur par défaut du paramètre encoding est la valeur de l'option de configuration default_charset.

Malgré le fait que cet argument soit techniquement optionnel, vous êtes vivement encouragé à spécifier la valeur correcte pour votre code si l'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 (multioctet 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 ENT_SUBSTITUTE ne soit défini.

Historique

Version | Description
8.1.0 | flags à changé de ENT_COMPAT à ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401.

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().

Note:

Dans le cas d'une valeur ambigue pour flags, les règles suivantes s'appliquent :

  • Quand aucun de ENT_COMPAT, ENT_QUOTES, ENT_NOQUOTES est présent, la valeur par défaut est ENT_NOQUOTES.
  • Quand plus d'un des ENT_COMPAT, ENT_QUOTES, ENT_NOQUOTES sont présent, ENT_QUOTES prend la plus haute priorité, suivi de ENT_COMPAT.
  • Quand aucun de ENT_HTML401, ENT_HTML5, ENT_XHTML, ENT_XML1 est présent, la valeur par défaut est ENT_HTML401.
  • Quand plus d'un des ENT_HTML401, ENT_HTML5, ENT_XHTML, ENT_XML1 sont présent, ENT_HTML5 prend la plus haute priorité, suivi de ENT_XHTML, ENT_XML1 et ENT_HTML401.
  • Quand plus d'un des ENT_DISALLOWED, ENT_IGNORE, ENT_SUBSTITUTE sont présent, ENT_IGNORE prend la plus haute priorité, suivi de ENT_SUBSTITUTE.

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, PHP 8)

implode — Rassemble les éléments d'un tableau en une chaîne

Description

implode(string $separator, array $array): string

Signature alternative (non supportée avec les arguments nommés) :

implode(array $array): string

Signature antérieure (obsolète à partir de PHP 7.4.0, retirée à partir de PHP 8.0.0) :

implode(array $array, string $separator): string

Rassemble les éléments d'un tableau en une chaîne.

Liste de paramètres

separator

Optionnel. Par défaut, une chaîne vide.

array

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 array, dans le même ordre, avec la chaîne separator, placée entre deux éléments.

Historique

Version | Description
8.0.0 | Passer le separator après array n'est plus supporté.
7.4.0 | Passer separator après les array (i.e. utilisant la signature antérieure) a été rendu obsolète.

Exemples

Exemple #1 Exemple avec implode()

<?php

$array = ['lastname', 'email', 'phone'];
var_dump(implode(",", $array)); // string(20) "lastname,email,phone"

// Chaîne vide lors de l'emploi d'un tableau vide :
var_dump(implode('hello', [])); // string(0) ""

// Le séparateur est optionnel :
var_dump(implode(['a', 'b', 'c'])); // string(3) "abc"

?>

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • explode() - Scinde une chaîne de caractères 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, PHP 8)

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, PHP 8)

lcfirst — Met le premier caractère en minuscule

Description

lcfirst(string $string): string

Retourne une chaîne dont le premier caractère de string a été mis en minuscule, si ce caractère est un caractère ASCII dans la plage allant de "A" (0x41) à "Z" (0x5a).

Liste de paramètres

string

La chaîne d'entrée.

Valeurs de retour

Retourne la chaîne résultante.

Historique

Version | Description
8.2.0 | La conversion de la casse ne dépend désormais plus de la locale définit avec setlocale(). Seuls les caractères ASCII seront convertis.

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, PHP 8)

levenshtein — Calcule la distance Levenshtein entre deux chaînes

Description

levenshtein(
string $string1,
string $string2,
int $insertion_cost = 1,
int $replacement_cost = 1,
int $deletion_cost = 1
): int

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 string1 en string2. La complexité de l'algorithme est en O(m*n), où n et m sont les tailles respectives de string1 et string2 : 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.

Si insertion_cost, replacement_cost et/oru deletion_cost sont différent de 1, l'algorithme s'adapte pour choisir la transformation la moins coûteuse. E.g. si $insertion_cost + $deletion_cost < $replacement_cost, Aucun remplacement ne sera effectué, mais plutôt des insertions et suppressions.

Liste de paramètres

string1

Une des chaînes à évaluer.

string2

Une des chaînes à évaluer.

insertion_cost

Définit le coût de l'insertion.

replacement_cost

Définit le coût du remplacement.

deletion_cost

Définit le coût de l'effacement.

Valeurs de retour

Cette fonction retourne la distance Levenshtein entre deux chaînes de caractères.

Historique

Version | Description
8.0.0 | Antérieur à cette version, levenshtein() devait être appelée avec soit deux soit cinq arguments.
8.0.0 | Antérieur à cette version, levenshtein() retournait -1 si l'une des chaînes d'arguments dépassait 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, PHP 8)

localeconv — Lit la configuration locale

Description

localeconv(): array

Retourne un tableau associatif contenant les informations de formats localisées pour les nombres et la monnaie.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

ltrim — Supprime les espaces (ou d'autres caractères) de début de chaîne

Description

ltrim(string $string, string $characters = " \n\r\t\v\x00"): string

Supprime les espaces (ou d'autres caractères) de début de chaîne.

Liste de paramètres

string

La chaîne d'entrée.

characters

Il est aussi possible de spécifier les caractères à supprimer en utilisant le paramètre characters. 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 string, après avoir supprimé les caractères invisibles de début de chaîne. Si le second paramètre characters 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.
  • "\v" (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, PHP 8)

md5_file — Calcule le md5 d'un fichier

Description

md5_file(string $filename, bool $binary = false): string|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

binary

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.

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, PHP 8)

md5 — Calcule le md5 d'une chaîne

Avertissement

Il n'est pas recommandé d'utiliser cette fonction pour sécuriser les mots de passe, en raison de la nature rapide de cet algorithme de hachage. Voir F.A.Q du hachage des mots de passe pour plus de détails et les bonnes pratiques.

Description

md5(string $string, bool $binary = false): string

Calcule le MD5 de la chaîne de caractères string en utilisant l'algorithme » RSA Data Security, Inc. MD5 Message-Digest Algorithm, et retourne le résultat.

Liste de paramètres

string

La chaîne.

binary

Si le paramètre optionnel binary 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?";
}
?>

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, PHP 8)

metaphone — Calcule la clé metaphone

Description

metaphone(string $string, int $max_phonemes = 0): string

Calcule la clé metaphone de string.

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

string

La chaîne d'entrée.

max_phonemes

Ce paramètre restreint la clé métaphone retournée à une longueur de max_phonemes caractères. Cependant, les phonèmes résultant sont toujours transcrit complètement, donc la longueur de la chaîne résultant peut être légèrement plus longue que max_phonemes. 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.

Historique

Version | Description
8.0.0 | Cette fonction retournait false en cas d'échec.

Exemples

Exemple #1 Exemple avec metaphone()

<?php
var_dump(metaphone('programming'));
var_dump(metaphone('programmer'));
?>

L'exemple ci-dessus va afficher :

string(7) "PRKRMNK"
string(6) "PRKRMR"

Exemple #2 Utilisation du paramètre max_phonemes

<?php
var_dump(metaphone('programming', 5));
var_dump(metaphone('programmer', 5));
?>

L'exemple ci-dessus va afficher :

string(5) "PRKRM"
string(5) "PRKRM"

Exemple #3 Utilisant le paramètre de max_phonemes

Dans cette exemple, metaphone() est avisé de produire une chaîne de cinq caractères, mais ceci nécessiterai de séparer le phonème final ('x' est supposé d'être transcrit en 'KS'), donc la fonction retourne une chaîne de six caractères.

<?php
var_dump(metaphone('Asterix', 5));
?>

L'exemple ci-dessus va afficher :

string(6) "ASTRKS"


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

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.4.0, et a été SUPPRIMÉE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

money_format(string $format, float $number): string

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.

Historique

Version | Description
7.4.0 | Cette fonction est obsolète. Utiliser NumberFormatter::formatCurrency() à la place.

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)

?>

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.

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, PHP 8)

nl_langinfo — Rassemble des informations sur la langue et la configuration locale

Description

nl_langinfo(int $item): string|false

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.

Exemples

Exemple #1 Exemple avec nl_langinfo()

<?php

var_dump(nl_langinfo(CODESET));
var_dump(nl_langinfo(YESEXPR));
?>

Résultat de l'exemple ci-dessus est similaire à :

string(14) "ANSI_X3.4-1968"
string(5) "^[yY]"

Notes

Note: Cette fonction n'est pas implémentée sur les plates-formes 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, PHP 8)

nl2br — Insère un retour à la ligne HTML à chaque nouvelle ligne

Description

nl2br(string $string, bool $use_xhtml = true): string

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.

use_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 use_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 />

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, PHP 8)

number_format — Formate un nombre pour l'affichage

Description

number_format(
float $num,
int $decimals = 0,
?string $decimal_separator = ".",
?string $thousands_separator = ","
): string

Formate un nombre avec les milliers groupés et optionnellement des chiffres décimaux utilisant la règle d'arrondi arrondi au plus proche.

Liste de paramètres

num

Le nombre à formater.

decimals

Définit le nombre de chiffres décimales. Si 0, le decimal_separator est omis de la valeur de retour.

decimal_separator

Définit le séparateur pour le point décimal.

thousands_separator

Définit le séparateur des milliers.

Valeurs de retour

Une version formatée du nombre num.

Historique

Version | Description
8.0.0 | Antérieur à cette version, number_format() accepte un, deux, ou quatre paramètres (mais pas trois).
7.2.0 | number_format() a été modifié pour ne plus permettre de retourner -0, précédemment -0 pouvait être retourné pour des cas où num valait -0.01.

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. L'exemple suivant montre comment formater un nombre de différentes façons :

<?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


Convertit le premier octet d'une chaîne en une valeur entre 0 et 255

  • « number_format
  • parse_str »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Convertit le premier octet d'une chaîne en une valeur entre 0 et 255

ord

(PHP 4, PHP 5, PHP 7, PHP 8)

ord — Convertit le premier octet d'une chaîne en une valeur entre 0 et 255

Description

ord(string $character): int

Interprète la valeur binaire du premier octet de character en tant qu'un entier non signé entre 0 et 255.

Si la chaîne de caractères est dans un encodage sur un octet tel que ASCII, ISO-8859, ou Windows 1252, ceci est équivalent à retourner la position d'un caractère dans la table de correspondance de l'encodage. Cependant, il est à noter que cette fonction n'est pas conscient d'aucun encodage de chaîne de caractères, et en particulier n'identifiera jamais une valeur de point de code Unicode dans un encodage multioctet tel que UTF-8 ou UTF-16.

Cette fonction complète chr().

Liste de paramètres

character

Un caractère.

Valeurs de retour

Un entier entre 0 et 255.

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";
}
?>

Exemple #2 Examiner les octets individuels d'une chaîne UTF-8

<?php
declare(encoding='UTF-8');
$str = "??";
for ( $pos=0; $pos < strlen($str); $pos ++ ) {
$byte = substr($str, $pos);
echo 'Octet ' . $pos . ' de $str a comme valeur ' . ord($byte) . PHP_EOL;
}
?>

L'exemple ci-dessus va afficher :

Octet 0 de $str a comme valeur 240
Octet 1 de $str a comme valeur 159
Octet 2 de $str a comme valeur 144
Octet 3 de $str a comme valeur 152

Voir aussi

  • chr() - Générer une chaîne d'un octet à partir d'un nombre
  • » Table ASCII
  • mb_ord() - Récupère le point de code Unicode d'un caractère
  • IntlChar::ord() - Return Unicode code point value of character


Analyse une chaîne de caractères d'une variable

  • « ord
  • print »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Analyse une chaîne de caractères d'une variable

parse_str

(PHP 4, PHP 5, PHP 7, PHP 8)

parse_str — Analyse une chaîne de caractères d'une variable

Description

parse_str(string $string, array &$result): void

Analyse la chaîne de caractères string 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 (ou dans le tableau si result est fourni).

Liste de paramètres

string

La chaîne d'entrée.

result

Si le second paramètre result est fourni, les variables y seront stockées, sous forme d'un tableau indexé.

Avertissement

L'utilisation de cette fonction sans le paramètre result est trés fortement découragé et déconseillé à partir de PHP 7.2. À partir de PHP 8.0.0, le paramètre result est obligatoire.

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version | Description
8.0.0 | result n'est plus optionnel.
7.2.0 | L'utilisation de parse_str() sans le second argument émet une note E_DEPRECATED.

Exemples

Exemple #1 Exemple avec parse_str()

<?php
$str = "first=value&arr[]=foo+bar&arr[]=baz";

// Recommandé
parse_str($str, $output);
echo $output['first']; // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz

// Déconseillé
parse_str($str);
echo $first; // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz
?>

Parce que les variables en PHP ne peuvent pas avoir des points et des espaces dans leurs noms, ceux-ci sont convertis en soulignements. La même chose s'applique à la dénomination des noms de clés respectifs en cas d'utilisation de cette fonction avec le paramètre de result .

Exemple #2 Déformation des nom par parse_str()

<?php
parse_str("My Value=Something");
echo $My_Value; // Something

parse_str("My Value=Something", $output);
echo $output['My_Value']; // Something
?>

Notes

Note:

Toutes les variables créées (ou les valeurs retournées dans le tableau si le second paramètre est défini) sont déjà urldecode().

Note:

Pour obtenir le QUERY_STRING actuel, vous pouvez utiliser la variable $_SERVER['QUERY_STRING']. En outre, vous voudrez peut-être lire la section sur les variables de sources externes.

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
  • 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, PHP 8)

print — Affiche une chaîne de caractères

Description

print(string $expression): int

Affiche expression.

print n'est pas une fonction mais une construction du langage. Son argument est l'expression suivant le mot clé print, et n'est pas délimité par des parenthèses.

La différence majeure avec echo est que print n'accepte qu'un seul argument et retourne toujours 1.

Liste de paramètres

expression

L'expression à afficher. Les valeurs qui ne sont pas des chaînes de caractères seront converties en celle-ci, même si la directive strict_types est activé.

Valeurs de retour

Retourne 1, toujours.

Exemples

Exemple #1 Exemple avec print

<?php
print "print does not require parentheses.";

// No newline or space is added; the below outputs "helloworld" all on one line
print "hello";
print "world";

print "This string spans
multiple lines. The newlines will be
output as well";

print "This string spans\nmultiple lines. The newlines will be\noutput as well.";

// The argument can be any expression which produces a string
$foo = "example";
print "foo is $foo"; // foo is example

$fruits = ["lemon", "orange", "banana"];
print implode(" and ", $fruits); // lemon and orange and banana

// Non-string expressions are coerced to string, even if declare(strict_types=1) is used
print 6 * 7; // 42

// Because print has a return value, it can be used in expressions
// The following outputs "hello world"
if ( print "hello" ) {
echo " world";
}

// The following outputs "true"
( 1 === 1 ) ? print 'true' : print 'false';
?>

Notes

Note: Utilisation avec des parenthèses

Entourer l'argument de print avec des parenthèses ne lèvera pas une erreur de syntaxe, et produit une syntaxe ressemblant à un appel normal de fonction. Néanmoins, ceci peut être trompeur, car les parenthèses font en réalité partie de l'expression qui est en cours d'affichage, et non partie de la syntaxe de print en lui-même.

<?php
print "hello";
// outputs "hello"

print("hello");
// also outputs "hello", because ("hello") is a valid expression

print(1 + 2) * 3;
// outputs "9"; the parentheses cause 1+2 to be evaluated first, then 3*3
// the print statement sees the whole expression as one argument

if ( print("hello") && false ) {
print " - inside if";
}
else {
print " - inside else";
}
// outputs " - inside if"
// the expression ("hello") && false is first evaluated, giving false
// this is coerced to the empty string "" and printed
// the print construct then returns 1, so code in the if block is run
?>

Quand print est utilisé dans une expression plus large, placer tout deux le mot clé et son argument dans les parenthèses peut être nécessaire pour obtenir le résultat attendu :

<?php
if ( (print "hello") && false ) {
print " - inside if";
}
else {
print " - inside else";
}
// outputs "hello - inside else"
// unlike the previous example, the expression (print "hello") is evaluated first
// after outputting "hello", print returns 1
// since 1 && false is false, code in the else block is run

print "hello " && print "world";
// outputs "world1"; print "world" is evaluated first,
// then the expression "hello " && 1 is passed to the left-hand print

(print "hello ") && (print "world");
// outputs "hello world"; the parentheses force the print expressions
// to be evaluated before the &&
?>

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 ou arguments nommés.

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
  • Manière de spécifié des chaînes littérales


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, PHP 8)

printf — Affiche une chaîne de caractères formatée

Description

printf(string $format, mixed ...$values): int

Affiche une chaîne de caractères formatée.

Liste de paramètres

format

La chaîne de format est composé de zéro ou plusieurs directives : des caractères ordinaires (à l'exception de %) qui sont copiés directement dans le résultat et des spécifications de conversion, chacun ayant pour résultat de récupérer ses propres paramètre.

Une spécification de conversion qui suit ce prototype : %[argnum$][flags][width][.precision]specifier.

Argnum

Un entier suivit d'un signe dollar $, pour spécifier quel numéro d'argument à traiter dans la conversion.

Drapeaux
Drapeau | Description
- Justifie le texte à gauche donnée la largeur du champ ; Justification à droite est le comportement par défaut.
+ Préfixe les nombres positives avec un signe plus + ; Par défaut seul les nombres négatifs sont préfixés avec un signe négatif.
(espace) | Complète le résultat avec des espaces. Ceci est par défaut.
0 | Complète uniquement les nombres à gauches avec des zéros. Avec le spécificateur s ceci peut aussi compléter à droite avec des zéros.
'(char) | Complète le résultat avec le caractère (char).

Largeur

Soit un entier indiquant le nombre de caractères (minimum) que cette conversion doit produire, soit *. Si * est utilisé, alors la largeur est fournie en tant que valeur entière supplémentaire précédant celle formatée par le spécificateur.

Precision

Un point . suivi optionnellement soit d'un entier, soit de *, dont la signification dépend du spécificateur :

  • Pour les spécificateurs e, E, f et F : ceci est le nombre de chiffres à afficher après la virgule (par défaut, ceci est 6).
  • Pour les spécificateurs g, G, h et H : ceci est le nombre maximal de chiffres significatifs à afficher. digits to be printed.
  • Pour le spécificateur s : il agit comme un point de coupure, définissant une limite maximale de caractères de la chaîne.

Note: Si le point est spécifié sans une valeur explicite pour la précision, 0 est assumé. Si * est utilisé, la précision est fournie en tant que valeur entière supplémentaire précédant celle formatée par le spécificateur.

Spécificateurs
Spécificateur | Description
% 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 décimal (signé).
e | L'argument est traité comme une notation scientifique (e.g. 1.2e+2).
E | Comme le spécificateur e mais utilise une lettre majuscule (par exemple 1.2E+2).
f | L'argument est traité comme un nombre à virgule flottante (type nombre décimal) 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 nombre décimal) et présenté comme un nombre à virgule flottante (ne tenant pas compte de la locale utilisée).
g

Format général.

Soit P égal à la précision si différent de 0, 6 si la précision est omit ou 1 si la précision est zéro. Alors, si la conversion avec le style E aurait comme exposant X :

Si P > X = -4, la conversion est avec style f et précision P - (X + 1). Sinon, la conversion est avec le style e et précision P - 1.

G | Comme le spécificateur g mais utilise E et f.
h | Comme le spécificateur g mais utilise F. Disponible à partir de PHP 8.0.0.
H | Comme le spécificateur g mais utilise E et F. Disponible à partir de PHP 8.0.0.
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 décimal 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).

Avertissement

Le spécificateur de type c ignore l'alignement et la taille.

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.

Les variables seront contraints à un type approprié pour le spécificateur :

Gestion des types
Type | Spécificateurs
string | s
int | d, u, c, o, x, X, b
float | e, E, f, F, g, G, h, H

values

Valeurs de retour

Retourne la taille de la chaîne affichée.

Erreurs / Exceptions

À partir de PHP 8.0.0, une ValueError est lancée si le nombre d'arguments est nul. Antérieur à PHP 8.0.0, un E_WARNING était émis à la place.

À partir de PHP 8.0.0, une ValueError est lancée si [width] est inférieur à zéro ou supérieur à PHP_INT_MAX. Antérieur à PHP 8.0.0, un E_WARNING était émis à la place.

À partir de PHP 8.0.0, une ValueError est lancée si [precision] est inférieur à zéro ou supérieur à PHP_INT_MAX. Antérieur à PHP 8.0.0, un E_WARNING était émis à la place.

À partir de PHP 8.0.0, une ArgumentCountError est lancée lorsque moins d'arguments sont donnés que requis. Antérieur à PHP 8.0.0, false était retourné et un E_WARNING était émis à la place.

Historique

Version | Description
8.0.0 | Cette fonction ne renvoie plus false en cas d'échec.
8.0.0 | Lance une ValueError si le nombre d'arguments est zéro ; auparavant, cette fonction émettait un E_WARNING.
8.0.0 | Lance une ValueError si [width] est inférieur à zéro ou supérieur à PHP_INT_MAX ; auparavant, cette fonction émettait un E_WARNING.
8.0.0 | Lance une ValueError si [precision] est inférieur à zéro ou supérieur à PHP_INT_MAX ; auparavant, cette fonction émettait un E_WARNING.
8.0.0 | Lance une ArgumentCountError lorsque moins d'arguments sont donnés que requis ; auparavant, cette fonction émettait un E_WARNING.

Exemples

Exemple #1 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 #2 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("[%'#*s]\n", 10, $s); // Fournir la largeur de la justification comme argument supplémentaire
printf("[%10.9s]\n", $t); // justification à droite mais avec une coupure à 8 caractères
printf("[%-10.9s]\n", $t); // justification à gauche mais avec une coupure à 8 caractères
?>

L'exemple ci-dessus va afficher :

[monkey]
[    monkey]
[monkey    ]
[0000monkey]
[####monkey]
[####monkey]
[ many monk]
[many monk ]

Voir aussi

  • print - Affiche une chaîne de caractères
  • sprintf() - Retourne une chaîne formatée
  • fprintf() - Écrit une chaîne formatée dans un flux
  • vprintf() - Affiche une chaîne formatée
  • vsprintf() - Retourne une chaîne formatée
  • vfprintf() - Écrit une chaîne formatée dans un flux
  • sscanf() - Analyse une chaîne à l'aide d'un format
  • fscanf() - Analyse un fichier en fonction d'un format
  • number_format() - Formate un nombre pour l'affichage
  • date() - Formate un horodatage Unix
  • 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, PHP 8)

quoted_printable_decode — Convertit une chaîne quoted-printable en chaîne 8 bits

Description

quoted_printable_decode(string $string): string

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

string

La chaîne d'entrée.

Valeurs de retour

Retourne la chaîne, convertie au format 8-bits.

Exemples

Exemple #1 Exemple avec quoted_printable_decode()

<?php

$encoded = quoted_printable_encode('Möchten Sie ein paar Äpfel?');

var_dump($encoded);
var_dump(quoted_printable_decode($encoded));
?>

L'exemple ci-dessus va afficher :

string(37) "M=C3=B6chten Sie ein paar =C3=84pfel?"
string(29) "Möchten Sie ein paar Äpfel?"

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, PHP 8)

quoted_printable_encode — Convertit une chaîne 8 bits en une chaîne quoted-printable

Description

quoted_printable_encode(string $string): string

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

string

La chaîne à traiter.

Valeurs de retour

La chaîne encodée.

Exemples

Exemple #1 Exemple avec quoted_printable_encode()

<?php

$encoded = quoted_printable_encode('Möchten Sie ein paar Äpfel?');

var_dump($encoded);
var_dump(quoted_printable_decode($encoded));
?>

L'exemple ci-dessus va afficher :

string(37) "M=C3=B6chten Sie ein paar =C3=84pfel?"
string(29) "Möchten Sie ein paar Äpfel?"

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, PHP 8)

quotemeta — Protège les métacaractères

Description

quotemeta(string $string): string

Retourne la chaîne str après avoir introduit un antislash (\) devant tous les caractères suivants :

. \ + * ? [ ^ ] ( $ )

Liste de paramètres

string

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 string.

Exemples

Exemple #1 Exemple avec quotemeta()

<?php

var_dump(quotemeta('PHP is a popular scripting language. Fast, flexible, and pragmatic.'));
?>

L'exemple ci-dessus va afficher :

string(69) "PHP is a popular scripting language\. Fast, flexible, and pragmatic\."

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
  • preg_quote() - Protection des caractères spéciaux des expressions régulières


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, PHP 8)

rtrim — Supprime les espaces (ou d'autres caractères) de fin de chaîne

Description

rtrim(string $string, string $characters = " \n\r\t\v\x00"): string

Retourne la chaîne string, 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.
  • "\v" (ASCII 11 (0x0B)), une tabulation verticale.

Liste de paramètres

string

La chaîne d'entrée.

characters

Il est aussi possible de spécifier les caractères à supprimer en utilisant le paramètre characters. 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, PHP 8)

setlocale — Modifie les informations de localisation

Description

setlocale(int $category, string $locales, string ...$rest): string|false

Signature alternative (non supporté avec les arguments nommés) :

setlocale(int $category, array $locale_array): string|false

Définit les informations de localisation.

Avertissement

L'information locale est maintenue par processus, non par thread. Si vous faites fonctionner PHP sur un serveur multithreadé, 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(). Sur Windows, les informations de locale sont maintenue par thread à partir de PHP 7.0.5.

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 ctype_alpha()
  • 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)

locales

Si locales est 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 locales vaut "0", la configuration locale ne sera pas modifiée, et la configuration courante sera retournée.

Si locales est suivi par des paramètres additionnels, alors 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.

rest

Paramètres optionnels de chaîne à essayer comme paramètre de locale jusqu'à une réussite.

locale_array

Chaque élément du tableau est essayé à être définie comme la nouvelle locale jusqu'à une réussite. Ceci est utile si une locale est connue sous différent noms sur des systèmes différents ou pour fournis une solution de repli pour une locale potentiellement indisponible.

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.

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 */
$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 */
$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

Astuce

Les utilisateurs de Windows trouveront des informations utiles à propos du paramètre locales 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, PHP 8)

sha1_file — Calcule le sha1 d'un fichier

Description

sha1_file(string $filename, bool $binary = false): string|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 à hacher.

binary

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;
}
?>

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, PHP 8)

sha1 — Calcule le sha1 d'une chaîne de caractères

Avertissement

Il n'est pas recommandé d'utiliser cette fonction pour sécuriser les mots de passe, en raison de la nature rapide de cet algorithme de hachage. Voir F.A.Q du hachage des mots de passe pour plus de détails et les bonnes pratiques.

Description

sha1(string $string, bool $binary = false): string

Calcule le sha1 de la chaîne de caractères string en utilisant » US Secure Hash Algorithm 1.

Liste de paramètres

string

La chaîne d'entrée.

binary

Si le paramètre optionnel binary 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 ?";
}
?>

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, PHP 8)

similar_text — Calcule la similarité de deux chaînes

Description

similar_text(string $string1, string $string2, float &$percent = null): int

Calcule la similarité entre les deux chaînes string1 et string2, 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

string1

La première chaîne.

string2

La seconde chaîne.

Note:

Inverser string1 et string2 peut produire des résultats différents ; voir l'exemple ci-dessous.

percent

En passant une référence en tant que troisième argument, similar_text() va calculer la similarité en pourcentage, en divisant le résultat de similar_text() par la moyenne de la longueur des chaîne de caractères fournies fois 100.

Valeurs de retour

Retourne le nombre de caractères correspondant dans les deux chaîne de caractères.

Le nombre de caractères correspondant est calculés en trouvant la première plus longue sous-chaîne commune, et puis faire ceci pour les préfixes et les sufixes, de façon récursive. La longueur de toutes les sous-chaînes communes sont ajoutées.

Exemples

Exemple #1 Exemple de similar_text() en inversant les arguments

Cet exemple montre qu'inverser les arguments string1 et string2 peut produire des résultats différents.

<?php
$sim = similar_text('bafoobar', 'barfoo', $perc);
echo "similarity: $sim ($perc %)\n";
$sim = similar_text('barfoo', 'bafoobar', $perc);
echo "similarity: $sim ($perc %)\n";

Résultat de l'exemple ci-dessus est similaire à :

similarity: 5 (71.428571428571 %)
similarity: 3 (42.857142857143 %)

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, PHP 8)

soundex — Calcule la clé soundex

Description

soundex(string $string): string

Calcule la clé soundex de la chaîne string.

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.

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

string

La chaîne d'entrée.

Valeurs de retour

Retourne la clé soundex en tant que chaîne de caractères avec quatre caractères. Si au moins une lettre est contenue dans string, la chaîne retourné débute avec une lettre. Sinon "0000" est retourné.

Historique

Version | Description
8.0.0 | Antérieur à cette version, appeler la fonction avec une chaîne vide retournait false pour aucune raison particulière.

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, PHP 8)

sprintf — Retourne une chaîne formatée

Description

sprintf(string $format, mixed ...$values): string

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é de zéro ou plusieurs directives : des caractères ordinaires (à l'exception de %) qui sont copiés directement dans le résultat et des spécifications de conversion, chacun ayant pour résultat de récupérer ses propres paramètre.

Une spécification de conversion qui suit ce prototype : %[argnum$][flags][width][.precision]specifier.

Argnum

Un entier suivit d'un signe dollar $, pour spécifier quel numéro d'argument à traiter dans la conversion.

Drapeaux
Drapeau | Description
- Justifie le texte à gauche donnée la largeur du champ ; Justification à droite est le comportement par défaut.
+ Préfixe les nombres positives avec un signe plus + ; Par défaut seul les nombres négatifs sont préfixés avec un signe négatif.
(espace) | Complète le résultat avec des espaces. Ceci est par défaut.
0 | Complète uniquement les nombres à gauches avec des zéros. Avec le spécificateur s ceci peut aussi compléter à droite avec des zéros.
'(char) | Complète le résultat avec le caractère (char).

Largeur

Soit un entier indiquant le nombre de caractères (minimum) que cette conversion doit produire, soit *. Si * est utilisé, alors la largeur est fournie en tant que valeur entière supplémentaire précédant celle formatée par le spécificateur.

Precision

Un point . suivi optionnellement soit d'un entier, soit de *, dont la signification dépend du spécificateur :

  • Pour les spécificateurs e, E, f et F : ceci est le nombre de chiffres à afficher après la virgule (par défaut, ceci est 6).
  • Pour les spécificateurs g, G, h et H : ceci est le nombre maximal de chiffres significatifs à afficher. digits to be printed.
  • Pour le spécificateur s : il agit comme un point de coupure, définissant une limite maximale de caractères de la chaîne.

Note: Si le point est spécifié sans une valeur explicite pour la précision, 0 est assumé. Si * est utilisé, la précision est fournie en tant que valeur entière supplémentaire précédant celle formatée par le spécificateur.

Spécificateurs
Spécificateur | Description
% 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 décimal (signé).
e | L'argument est traité comme une notation scientifique (e.g. 1.2e+2).
E | Comme le spécificateur e mais utilise une lettre majuscule (par exemple 1.2E+2).
f | L'argument est traité comme un nombre à virgule flottante (type nombre décimal) 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 nombre décimal) et présenté comme un nombre à virgule flottante (ne tenant pas compte de la locale utilisée).
g

Format général.

Soit P égal à la précision si différent de 0, 6 si la précision est omit ou 1 si la précision est zéro. Alors, si la conversion avec le style E aurait comme exposant X :

Si P > X = -4, la conversion est avec style f et précision P - (X + 1). Sinon, la conversion est avec le style e et précision P - 1.

G | Comme le spécificateur g mais utilise E et f.
h | Comme le spécificateur g mais utilise F. Disponible à partir de PHP 8.0.0.
H | Comme le spécificateur g mais utilise E et F. Disponible à partir de PHP 8.0.0.
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 décimal 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).

Avertissement

Le spécificateur de type c ignore l'alignement et la taille.

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.

Les variables seront contraints à un type approprié pour le spécificateur :

Gestion des types
Type | Spécificateurs
string | s
int | d, u, c, o, x, X, b
float | e, E, f, F, g, G, h, H

values

Valeurs de retour

Retourne une chaîne de caractères créée suivant le format format.

Erreurs / Exceptions

À partir de PHP 8.0.0, une ValueError est lancée si le nombre d'arguments est nul. Antérieur à PHP 8.0.0, un E_WARNING était émis à la place.

À partir de PHP 8.0.0, une ValueError est lancée si [width] est inférieur à zéro ou supérieur à PHP_INT_MAX. Antérieur à PHP 8.0.0, un E_WARNING était émis à la place.

À partir de PHP 8.0.0, une ValueError est lancée si [precision] est inférieur à zéro ou supérieur à PHP_INT_MAX. Antérieur à PHP 8.0.0, un E_WARNING était émis à la place.

À partir de PHP 8.0.0, une ArgumentCountError est lancée lorsque moins d'arguments sont donnés que requis. Antérieur à PHP 8.0.0, false était retourné et un E_WARNING était émis à la place.

Historique

Version | Description
8.0.0 | Cette fonction ne renvoie plus false en cas d'échec.
8.0.0 | Lance une ValueError si le nombre d'arguments est zéro ; auparavant, cette fonction émettait un E_WARNING.
8.0.0 | Lance une ValueError si [width] est inférieur à zéro ou supérieur à PHP_INT_MAX ; auparavant, cette fonction émettait un E_WARNING.
8.0.0 | Lance une ValueError si [precision] est inférieur à zéro ou supérieur à PHP_INT_MAX ; auparavant, cette fonction émettait un E_WARNING.
8.0.0 | Lance une ArgumentCountError lorsque moins d'arguments sont donnés que requis ; auparavant, cette fonction émettait un E_WARNING.

Exemples

Exemple #1 Échange d'arguments

La chaîne de format supporte le numérotage et l'échange d'arguments.

<?php
$num = 5;
$location = 'bananier';

$format = 'Il y a %d singes dans le %s';
echo sprintf($format, $num, $location);
?>

L'exemple ci-dessus va afficher :

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 :

<?php
$format = 'Le %s a %d singes';
echo sprintf($format, $num, $location);
?>

Nous avons désormais un 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 :

<?php
$format = 'Le %2$s a %1$d singes';
echo sprintf($format, $num, $location);
?>

Un des avantages est que les paramètres fictifs peuvent être répétés sans ajouter plus d'arguments dans le code.

<?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 #2 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 #3 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

Exemple #4 sprintf() : entier sans espace

<?php
$isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);
?>

Exemple #5 sprintf() : formatage de devises

<?php
$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
echo $money;
echo "\n";
$formatted = sprintf("%01.2f", $money);
echo $formatted;
?>

L'exemple ci-dessus va afficher :

123.1
123.10

Exemple #6 sprintf() : notation scientifique

<?php
$number = 362525200;

echo sprintf("%.3e", $number);
?>

L'exemple ci-dessus va afficher :

3.625e+8

Voir aussi

  • printf() - Affiche une chaîne de caractères formatée
  • fprintf() - Écrit une chaîne formatée dans un flux
  • vprintf() - Affiche une chaîne formatée
  • vsprintf() - Retourne une chaîne formatée
  • vfprintf() - Écrit une chaîne formatée dans un flux
  • sscanf() - Analyse une chaîne à l'aide d'un format
  • fscanf() - Analyse un fichier en fonction d'un format
  • number_format() - Formate un nombre pour l'affichage
  • date() - Formate un horodatage Unix


Analyse une chaîne à l'aide d'un format

  • « sprintf
  • str_contains »
  • 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, PHP 8)

sscanf — Analyse une chaîne à l'aide d'un format

Description

sscanf(string $string, string $format, mixed &...$vars): array|int|null

sscanf() est l'inverse de la fonction printf(). sscanf() lit des données dans la chaîne string, et l'interprète en fonction du format format.

Tous les caractères blancs dans la chaîne format correspondent à un caractère blanc dans la chaîne string. 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

string

La chaîne à analyser.

format

Le format interprété pour string décrit dans la documentation de la sprintf() avec les différences suivantes :

  • La fonction ne tient pas compte du contexte local.
  • F, g, G et b ne sont pas supportés.
  • D représente un nombre décimal.
  • i représente un nombre entier avec détection de base.
  • n représente le nombre de caractères traités à ce stade.
  • s arrête la lecture à chaque caractère d'espacement.
  • * au lieu de argnum$ supprime l'affectation de cette spécification de conversion.

vars

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, qu'il y a de disponibles dans string, alors null 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

  • printf() - Affiche une chaîne de caractères formatée
  • sprintf() - Retourne une chaîne formatée
  • fprintf() - Écrit une chaîne formatée dans un flux
  • vprintf() - Affiche une chaîne formatée
  • vsprintf() - Retourne une chaîne formatée
  • vfprintf() - Écrit une chaîne formatée dans un flux
  • fscanf() - Analyse un fichier en fonction d'un format
  • number_format() - Formate un nombre pour l'affichage
  • date() - Formate un horodatage Unix


Détermine si une chaîne contient une sous-chaîne donnée

  • « sscanf
  • str_decrement »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Détermine si une chaîne contient une sous-chaîne donnée

str_contains

(PHP 8)

str_contains — Détermine si une chaîne contient une sous-chaîne donnée

Description

str_contains(string $haystack, string $needle): bool

Effectue une vérification sensible à la casse indiquant si needle est contenue dans haystack.

Liste de paramètres

haystack

La chaîne dans laquelle on effectue la recherche.

needle

La sous-chaîne à rechercher dans haystack.

Valeurs de retour

Renvoie true si needle est dans haystack, sinon false.

Exemples

Exemple #1 Avec une chaîne vide ''

<?php
if (str_contains('abc', '')) {
echo "Checking the existence of the empty string will always return true";
}
?>

L'exemple ci-dessus va afficher :

Checking the existence of the empty string will always return true

Exemple #2 Démonstration de la sensibilité à la casse

<?php
$string = 'The lazy fox jumped over the fence';

if (str_contains($string, 'lazy')) {
echo "The string 'lazy' was found in the string\n";
}

if (str_contains($string, 'Lazy')) {
echo 'The string "Lazy" was found in the string';
} else {
echo '"Lazy" was not found because the case does not match';
}

?>

L'exemple ci-dessus va afficher :

The string 'lazy' was found in the string
"Lazy" was not found because the case does not match

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • str_ends_with() - Détermine si une chaîne se termine par une sous-chaîne donnée
  • str_starts_with() - Détermine si une chaîne commence par une sous-chaîne donnée
  • 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


Décremente une chaîne de caractères alphanumérique

  • « str_contains
  • str_ends_with »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Décremente une chaîne de caractères alphanumérique

str_decrement

(PHP 8 >= 8.3.0)

str_decrement — Décremente une chaîne de caractères alphanumérique

Description

str_decrement(string $string): string

Retourne la chaîne de caractères alphanumérique ASCII décrémentée string.

Liste de paramètres

string

La chaîne de caractères à décrémenter.

Valeurs de retour

Retourne la chaîne de caractères alphanumérique ASCII décrémentée.

Erreurs / Exceptions

Une exception ValueError est lancée si string est vide.

Une exception ValueError est lancée si string n'est pas une chaîne alphanumérique ASCII.

Une exception ValueError est lancée si string ne peut pas être décrémentée. Par exemple, "A" ou "0".

Exemples

Exemple #1 Exemple basique de la fonction str_decrement()

<?php
$str = 'ABC';
var_dump(str_decrement($str));
?>

L'exemple ci-dessus va afficher :

string(3) "ABB"

Exemple #2 Exemple de la fonction str_decrement() avec une retenue

<?php
$str = 'ZA';
var_dump(str_decrement($str));

$str = 'AA';
var_dump(str_decrement($str));
?>

L'exemple ci-dessus va afficher :

string(2) "YZ"
string(1) "Z"

Voir aussi

  • str_increment() - Incrémente une chaîne de caractères alphanumérique


Détermine si une chaîne se termine par une sous-chaîne donnée

  • « str_decrement
  • str_getcsv »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Détermine si une chaîne se termine par une sous-chaîne donnée

str_ends_with

(PHP 8)

str_ends_with — Détermine si une chaîne se termine par une sous-chaîne donnée

Description

str_ends_with(string $haystack, string $needle): bool

Effectue une vérification sensible à la casse indiquant si haystack se termine par needle.

Liste de paramètres

haystack

La chaîne dans laquelle on effectue la recherche.

needle

La sous-chaîne à rechercher dans haystack.

Valeurs de retour

Renvoie true si haystack se termine par needle, sinon false.

Exemples

Exemple #1 Avec une chaîne vide ''

<?php
if (str_ends_with('abc', '')) {
echo "All strings end with the empty string";
}
?>

L'exemple ci-dessus va afficher :

All strings end with the empty string

Exemple #2 Démonstration de la sensibilité à la casse

<?php
$string = 'The lazy fox jumped over the fence';

if (str_ends_with($string, 'fence')) {
echo "The string ends with 'fence'\n";
}

if (str_ends_with($string, 'Fence')) {
echo 'The string ends with "Fence"';
} else {
echo '"Fence" was not found because the case does not match';
}

?>

L'exemple ci-dessus va afficher :

The string ends with 'fence'
"Fence" was not found because the case does not match

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • str_contains() - Détermine si une chaîne contient une sous-chaîne donnée
  • str_starts_with() - Détermine si une chaîne commence par une sous-chaîne donnée
  • 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


Analyse une chaîne de caractères CSV dans un tableau

  • « str_ends_with
  • str_increment »
  • 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, PHP 8)

str_getcsv — Analyse une chaîne de caractères CSV dans un tableau

Description

str_getcsv(
string $string,
string $separator = ",",
string $enclosure = "\"",
string $escape = "\\"
): array

Analyse une chaîne de caractères représentant des champs au format CSV et retourne un tableau contenant tous les champs lus.

Note:

La configuration de la locale sont prise en compte par cette fonction. Si LC_CTYPE est par exemple en_US.UTF-8, les chaîne de caractères qui sont dans un encodage d'un-octet peuvent être mal lu par cette fonction.

Liste de paramètres

string

La chaîne à analyser.

separator

Le délimiteur de champ (un seul caractère d'un octet).

enclosure

Le caractère d'encadrement (un seul caractère d'un octet).

escape

Le caractère de protection (au plus un caractère d'un octet). Par défaut, c'est l'antislash. (\) Une chaîne de caractères vide ("") désactive le mécanisme d'échappement propriétaire.

Note: En général un caractère d'encadrement enclosure est échapper à l'intérieur d'un champ en le dédoublant; Cependant, le caractère d'échappement escape peut être utilisé comme une alternative. Donc pour la valeur par défaut "" et \" ont la même signification. Outre échapper le caractère d'encadrement enclosure le caractère d'échappement escape n'a pas de signification spéciale; même pas de s'échapper lui-même.

Valeurs de retour

Retourne un tableau contenant les champs lus.

Historique

Version | Description
7.4.0 | Le paramètre escape interprète désormais une chaîne vide en tant que signal de désactiver le mécanisme d'échappement propriétaire. Auparavant, une chaîne vide était traité comme la valeur par défaut du paramètre.

Exemples

Exemple #1 Exemple avec str_getcsv()

<?php

$string = 'PHP,Java,Python,Kotlin,Swift';
$data = str_getcsv($string);

var_dump($data);
?>

L'exemple ci-dessus va afficher :

array(5) {
  [0]=>
  string(3) "PHP"
  [1]=>
  string(4) "Java"
  [2]=>
  string(6) "Python"
  [3]=>
  string(6) "Kotlin"
  [4]=>
  string(5) "Swift"
}

Exemple #2 Exemple de str_getcsv() avec une chaîne vide

Attention

Avec une chaîne vide, cette fonction retourne [null] plutôt qu'un tableau vide.

<?php

$string = '';
$data = str_getcsv($string);

var_dump($data);
?>

L'exemple ci-dessus va afficher :

array(1) {
  [0]=>
  NULL
}

Voir aussi

  • fgetcsv() - Obtient une ligne depuis un pointeur de fichier et l'analyse pour des champs CSV


Incrémente une chaîne de caractères alphanumérique

  • « str_getcsv
  • str_ireplace »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Incrémente une chaîne de caractères alphanumérique

str_increment

(PHP 8 >= 8.3.0)

str_increment — Incrémente une chaîne de caractères alphanumérique

Description

str_increment(string $string): string

Retourne la chaîne de caractères alphanumérique ASCII incrémentée string.

Liste de paramètres

string

La chaîne de caractères à incrémenter.

Valeurs de retour

Retourne la chaîne de caractères alphanumérique ASCII incrémentée.

Erreurs / Exceptions

Une exception ValueError est lancée si string est vide.

Une exception ValueError est lancée si string n'est pas une chaîne alphanumérique ASCII.

Exemples

Exemple #1 Exemple basique de la fonction str_increment()

<?php
$str = 'ABC';
var_dump(str_increment($str));
?>

L'exemple ci-dessus va afficher :

string(3) "ABD"

Exemple #2 Exemple de str_increment() avec une retenue

<?php
$str = 'DZ';
var_dump(str_increment($str));

$str = 'ZZ';
var_dump(str_increment($str));
?>

L'exemple ci-dessus va afficher :

string(2) "EA"
string(3) "AAA"

Voir aussi

  • str_decrement() - Décremente une chaîne de caractères alphanumérique


Version insensible à la casse de str_replace

  • « str_increment
  • 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, PHP 8)

str_ireplace — Version insensible à la casse de str_replace()

Description

str_ireplace(
array|string $search,
array|string $replace,
string|array $subject,
int &$count = null
): string|array

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.

Pour remplacer un texte en fonction d'un modèle plutôt qu'une chaîne fixe, utilisez preg_replace() avec le modificateur de modèle 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 utilisé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.

Historique

Version | Description
8.2.0 | Le case folding ne dépend désormais plus de la locale définit avec setlocale(). Uniquement du case folding ASCII sera effectué. Les octets non-ASCII seront comparés par leur valeur d'octet.

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, PHP 8)

str_pad — Complète une chaîne jusqu'à une taille donnée

Description

str_pad(
string $string,
int $length,
string $pad_string = " ",
int $pad_type = STR_PAD_RIGHT
): string

Retourne la chaîne string, complétée à droite, à gauche ou dans les deux sens, avec la chaîne pad_string jusqu'à ce qu'elle atteigne la taille de length.

Liste de paramètres

string

La chaîne d'entrée.

length

La longueur souhaitée de la chaîne finale complétée. Si la valeur de length est négative, plus petite que, ou égale à la taille courante de la chaîne string, string est retournée inchangée et string 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"
?>

Voir aussi

  • mb_str_pad() - Pad a multibyte string to a certain length with another multibyte string


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, PHP 8)

str_repeat — Répète une chaîne

Description

str_repeat(string $string, int $times): string

Retourne la chaîne string répétée times fois.

Liste de paramètres

string

La chaîne à répéter.

times

Nombre de fois où la chaîne string doit être multipliée.

times doit être positif ou nul. Si times vaut 0, la fonction retourne la chaîne vide.

Valeurs de retour

Retourne la chaîne, répétée times 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, PHP 8)

str_replace — Remplace toutes les occurrences dans une chaîne

Description

str_replace(
array|string $search,
array|string $replace,
string|array $subject,
int &$count = null
): string|array

str_replace() retourne une chaîne ou un tableau, dont toutes les occurrences de search dans subject ont été remplacées par replace.

Pour remplacer un texte en fonction d'un modèle plutôt qu'une chaîne fixe, utilisez 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 : good goy miss moy
$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, PHP 8)

str_rot13 — Effectue une transformation ROT13

Description

str_rot13(string $string): string

Effectue un encodage ROT13 de la chaîne string 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

string

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, PHP 8)

str_shuffle — Mélange les caractères d'une chaîne de caractères

Description

str_shuffle(string $string): string

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 cryptographiquement sûres, et ne doit pas être utilisée à des fins cryptographiques, ou à des fins qui exigent que les valeurs renvoyées soient indéchiffrables.

Si de l'aléatoire cryptographiquement sûre est requis, le Random\Randomizer peut être utilisé avec le moteur Random\Engine\Secure. Pour des cas d'usage simple, les fonctions random_int() et random_bytes() fournissent une API pratique et sûre qui est qui est soutenu par le CSPRNG du système d'exploitation.

Liste de paramètres

string

La chaîne d'entrée.

Valeurs de retour

Retourne la chaîne mélangée.

Historique

Version | Description
7.1.0 | L'algorithme de randomisation a été modifié pour utiliser le Générateur de Nombre Aléatoire » Mersenne Twister à la place de la fonction rand de libc.

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

  • Random\Randomizer::shuffleBytes() - Get a byte-wise permutation of a string
  • Random\Randomizer::shuffleArray() - Get a permutation of an array


Convertit une chaîne de caractères en tableau

  • « str_shuffle
  • str_starts_with »
  • 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, PHP 8)

str_split — Convertit une chaîne de caractères en tableau

Description

str_split(string $string, int $length = 1): array

Convertit une chaîne de caractères en tableau.

Liste de paramètres

string

La chaîne d'entrée.

length

Longueur maximale de chaque élément.

Valeurs de retour

Si le paramètre optionnel length est spécifié, le tableau retourné sera découpé en sous-parties, chacune de taille length, à l'exception de la dernière sous-partie qui peut être plus courte si la chaîne ne se divise pas de manière égale. La valeur par défaut de length est 1, ce qui signifie que chaque sous-partie aura une taille d'un octet.

Erreurs / Exceptions

Si length est plus petit que 1, une ValueError sera déclenchée.

Historique

Version | Description
8.2.0 | Si string est vide, un tableau vide est désormais retourné. Auparavant, un tableau contenant une seule chaîne vide était retourné.
8.0.0 | Si length est plus petit que 1, une ValueError sera déclenchée; auparavant, une erreur de type E_WARNING était emise, et la fonction retournait false.

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 multioctets. Utilisez mb_str_split() pour séparer la chaîne en points de codes.

Voir aussi

  • mb_str_split() - Pour une chaîne multi-octets donnée, renvoie un tableau de ses caractères
  • chunk_split() - Scinde une chaîne
  • preg_split() - Éclate une chaîne par expression rationnelle
  • explode() - Scinde une chaîne de caractères 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


Détermine si une chaîne commence par une sous-chaîne donnée

  • « str_split
  • str_word_count »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Détermine si une chaîne commence par une sous-chaîne donnée

str_starts_with

(PHP 8)

str_starts_with — Détermine si une chaîne commence par une sous-chaîne donnée

Description

str_starts_with(string $haystack, string $needle): bool

Effectue une vérification sensible à la casse indiquant si haystack commence par needle.

Liste de paramètres

haystack

La chaîne dans laquelle on effectue la recherche.

needle

La sous-chaîne à rechercher dans haystack.

Valeurs de retour

Renvoie true si haystack commence par needle, sinon false.

Exemples

Exemple #1 Avec une chaîne vide ''

<?php
if (str_starts_with('abc', '')) {
echo "All strings start with the empty string";
}
?>

L'exemple ci-dessus va afficher :

All strings start with the empty string

Exemple #2 Démonstration de la sensibilité à la casse

<?php
$string = 'The lazy fox jumped over the fence';

if (str_starts_with($string, 'The')) {
echo "The string starts with 'The'\n";
}

if (str_starts_with($string, 'the')) {
echo 'The string starts with "the"';
} else {
echo '"the" was not found because the case does not match';
}

?>

L'exemple ci-dessus va afficher :

The string starts with 'The'
"the" was not found because the case does not match

Notes

Note: Cette fonction gère les chaînes binaires.

Voir aussi

  • str_contains() - Détermine si une chaîne contient une sous-chaîne donnée
  • str_ends_with() - Détermine si une chaîne se termine par une sous-chaîne donnée
  • 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


Compte le nombre de mots utilisés dans une chaîne

  • « str_starts_with
  • 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, PHP 8)

str_word_count — Compte le nombre de mots utilisés dans une chaîne

Description

str_word_count(string $string, int $format = 0, ?string $characters = null): array|int

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 "-". Il est à noter que les locales multioctets ne sont pas supportées.

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

characters

Une liste des caractères additionnels qui seront considérés comme un mot

Valeurs de retour

Retourne un tableau ou un entier, dépendamment du format choisi.

Historique

Version | Description
8.0.0 | characters est désormais nullable.

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() - Scinde une chaîne de caractères en segments
  • preg_split() - Éclate une chaîne par 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, PHP 8)

strcasecmp — Comparaison insensible à la casse de chaînes binaires

Description

strcasecmp(string $string1, string $string2): int

Comparaison insensible à la casse de chaînes binaires. La comparaison ne tient pas compte des paramètres régionaux; seules les lettres ASCII sont comparées de manière insensible à la casse.

Liste de paramètres

string1

La première chaîne.

string2

La seconde chaîne.

Valeurs de retour

Retourne -1 si string1 est inférieure à string2; 1 si string1 est plus grande que string2, et 0 si les deux chaînes sont égales.

Historique

Version | Description
8.2.0 | Cette fonction retourne désormais -1 ou 1, alors qu'auparavant elle renvoyait un nombre négatif ou positif.

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, PHP 8)

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, PHP 8)

strcmp — Comparaison binaire de chaînes

Description

strcmp(string $string1, string $string2): int

Notez que cette comparaison est sensible à la casse.

Liste de paramètres

string1

La première chaîne.

string2

La seconde chaîne.

Valeurs de retour

Retourne -1 si string1 est inférieure à string2; 1 si string1 est supérieure à string2, et 0 si les deux chaînes sont égales.

Historique

Version | Description
8.2.0 | Cette fonction retourne désormais -1 ou 1, alors qu'auparavant elle renvoyait un nombre négatif ou positif.

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, PHP 8)

strcoll — Comparaison de chaînes localisées

Description

strcoll(string $string1, string $string2): int

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

string1

La première chaîne.

string2

La seconde chaîne.

Valeurs de retour

Retourne < 0 si string1 est inférieure à string2; > 0 si string1 est supérieure à string2, 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


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, PHP 8)

strcspn — Trouve un segment de chaîne ne contenant pas certains caractères

Description

strcspn(
string $string,
string $characters,
int $offset = 0,
?int $length = null
): int

Retourne la taille du premier segment de string qui ne contient aucun des caractères de characters.

Si offset et length sont omis, alors la totalité de string sera examinée. S'ils sont inclus, alors l'effet sera identique à appeler strcspn(substr($string, $offset, $length), $characters) (voir substr pour plus d'informations).

Liste de paramètres

string

La chaîne à examiner.

characters

La chaîne contenant tous les caractères désactivés.

offset

La position dans string à partir de laquelle on commence à chercher.

Si offset est fourni et n'est pas négatif, alors strcspn() va commencer à examiner string à la offset ème position. 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 offset est fourni et est négatif, alors strspn() va commencer à examiner string à la offset ème position depuis la fin de string.

length

La longueur du segment de string à examiner.

Si length est fourni et n'est pas négatif, alors string sera examiné depuis length caractères après la position de départ.

Si length est fourni et est négatif, alors string sera examiné depuis la position de départ jusqu'à length caractères depuis la fin de string.

Valeurs de retour

Retourne la longueur du segment initial de string qui contient seulement des caractères qui ne sont pas dans characters.

Note:

Lorsque le paramètre offset est définie, la longueur retournée est comptée depuis cette position, et non depuis le début de string.

Historique

Version | Description
8.0.0 | length est désormais nullable.

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, PHP 8)

strip_tags — Supprime les balises HTML et PHP d'une chaîne

Description

strip_tags(string $string, array|string|null $allowed_tags = null): string

strip_tags() tente de retourner la chaîne string 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

string

La chaîne d'entrée.

allowed_tags

Vous pouvez utiliser ce paramètre optionnel pour spécifier les balises qui ne doivent pas être supprimées. Ils sont soit fournie en tant que chaîne de caractères, ou à partir de PHP 7.4.0, en tant que tableau. Se référer aux examples ci-dessous pour le format de ce paramètre.

Note:

Les commentaires HTML et PHP sont également supprimés. Ce comportement ne peut être modifié avec le paramètre allowed_tags.

Note:

Les balises auto-fermantes XHTML sont ignorées et seules les balises qui ne sont pas auto-fermantes doivent être utilisées dans la chaîne allowed_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
8.0.0 | allowed_tags est désormais nullable.
7.4.0 | allowed_tags accepte désormais un tableau.

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>');

// à partir de PHP 7.4.0 la ligne ci-dessus peut être écrite en tant que :
// 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

Cette fonction ne devrait pas être utilisé pour empêcher les attaques XSS. Utiliser des fonctions plus approprié comme htmlspecialchars() ou d'autres méthodes en fonction du contexte de la sortie.

Avertissement

Comme strip_tags() ne valide 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 allowed_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 allowed_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, PHP 8)

stripcslashes — Décode une chaîne encodée avec addcslashes()

Description

stripcslashes(string $string): string

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

string

La chaîne à traiter.

Valeurs de retour

Retourne la chaîne modifiée.

Exemples

Exemple #1 Exemple avec stripcslashes()

<?php

var_dump(stripcslashes('I\'d have a coffee.\nNot a problem.') === "I'd have a coffee.
Not a problem."); // true
?>

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, PHP 8)

stripos — Recherche la position de la première occurrence dans une chaîne, sans tenir compte de la casse

Description

stripos(string $haystack, string $needle, int $offset = 0): int|false

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

La chaîne à rechercher.

Antérieur à PHP 8.0.0, si needle n'est pas une chaîne de caractères, elle est convertie en un entier et appliqué en tant que valeur ordinal d'un caractère. Ce comportement est obsolète à partir de PHP 7.3.0, et se fier à celui-ci est fortement déconseillé. En fonction du comportement attendu, needle doit être transtypé explicitement en une chaîne de caractère, ou un appel explicite à chr() doit être exécuté.

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
8.2.0 | Le case folding ne dépend désormais plus de la locale définit avec setlocale(). Uniquement du case folding ASCII sera effectué. Les octets non-ASCII seront comparés par leur valeur d'octet.
8.0.0 | needle accepte désormais une chaîne vide.
8.0.0 | Passing an entier as needle is no longer supported.
7.3.0 | Passer un entier comme before_needle a été rendu obsolète.
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
  • str_contains() - Détermine si une chaîne contient une sous-chaîne donnée
  • str_ends_with() - Détermine si une chaîne se termine par une sous-chaîne donnée
  • str_starts_with() - Détermine si une chaîne commence par une sous-chaîne donnée
  • 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, PHP 8)

stripslashes — Supprime les antislashs d'une chaîne

Description

stripslashes(string $string): string

Supprime les antislashs d'une chaîne.

stripslashes() peut être utilisé si vous n'insérez pas ces données dans un endroit (tel qu'une base de données) qui nécessite l'échappement. Par exemple, si vous affichez simplement et directement des données provenant d'un formulaire HTML.

Liste de paramètres

string

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, PHP 8)

stristr — Version insensible à la casse de strstr()

Description

stristr(string $haystack, string $needle, bool $before_needle = false): string|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

La chaîne à rechercher.

Antérieur à PHP 8.0.0, si needle n'est pas une chaîne de caractères, elle est convertie en un entier et appliqué en tant que valeur ordinal d'un caractère. Ce comportement est obsolète à partir de PHP 7.3.0, et se fier à celui-ci est fortement déconseillé. En fonction du comportement attendu, needle doit être transtypé explicitement en une chaîne de caractère, ou un appel explicite à chr() doit être exécuté.

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
8.2.0 | Le case folding ne dépend désormais plus de la locale définit avec setlocale(). Uniquement du case folding ASCII sera effectué. Les octets non-ASCII seront comparés par leur valeur d'octet.
8.0.0 | needle accepte désormais une chaîne vide.
8.0.0 | Passing an entier as needle is no longer supported.
7.3.0 | Passer un entier comme before_needle a été rendu obsolète.

Exemples

Exemple #1 Exemple avec stristr()

<?php
$email = 'USER@EXAMPLE.com';
echo stristr($email, 'e'); // Affiche ER@EXAMPLE.com
echo stristr($email, 'e', true); // 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, PHP 8)

strlen — Calcule la taille d'une chaîne

Description

strlen(string $string): int

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 en octets.

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.

Voir aussi

  • count() - Compte tous les éléments d'un tableau ou dans un objet Countable
  • 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, PHP 8)

strnatcasecmp — Comparaison de chaînes avec l'algorithme d'"ordre naturel" (insensible à la casse)

Description

strnatcasecmp(string $string1, string $string2): int

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

string1

La première chaîne.

string2

La seconde chaîne.

Valeurs de retour

Tout comme les autres fonctions de comparaison de chaînes, celle-ci retourne -1 si string1 est inférieure à string2; 1 si string1 est supérieure à string2, et 0 si les deux chaînes sont égales.

Historique

Version | Description
8.2.0 | Cette fonction retourne désormais -1 ou 1, alors qu'auparavant elle renvoyait un nombre négatif ou positif.

Exemples

Exemple #1 Exemple avec strnatcasecmp()

<?php

var_dump(strnatcasecmp('Apple', 'Banana'));
var_dump(strnatcasecmp('Banana', 'Apple'));
var_dump(strnatcasecmp('apple', 'Apple'));
?>

L'exemple ci-dessus va afficher :

int(-1)
int(1)
int(0)

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, PHP 8)

strnatcmp — Comparaison de chaînes avec l'algorithme d'"ordre naturel"

Description

strnatcmp(string $string1, string $string2): int

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

string1

La première chaîne.

string2

La seconde chaîne.

Valeurs de retour

De la même façon que les autres fonctions comparant deux chaînes, la fonction retourne -1 si string1 est inférieure à string2; 1 si string1 est supérieure à string2, et 0 si les deux chaînes sont égales.

Historique

Version | Description
8.2.0 | Cette fonction retourne désormais -1 ou 1, alors qu'auparavant elle renvoyait un nombre négatif ou positif.

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, PHP 8)

strncasecmp — Compare en binaire des chaînes de caractères

Description

strncasecmp(string $string1, string $string2, int $length): int

strncasecmp() est similaire à strcasecmp(), à la différence près qu'elle permet de limiter le nombre de caractères utilisés pour comparer string1 et string2, avec le paramètre length.

Liste de paramètres

string1

La première chaîne.

string2

La seconde chaîne.

length

La longueur des chaînes à utiliser dans la comparaison.

Valeurs de retour

Retourne -1 si string1 est plus petite que string2; 1 si string1 est plus grande que string2, et 0 si elles sont égales.

Historique

Version | Description
8.2.0 | Cette fonction retourne désormais -1 ou 1, alors qu'auparavant elle renvoyait un nombre négatif ou positif.

Exemples

Exemple #1 Exemple avec strncasecmp()

<?php

$var1 = 'Hello John';
$var2 = 'hello Doe';
if (strncasecmp($var1, $var2, 5) === 0) {
echo 'Les 5 premiers caractères de $var1 et $var2 sont égaux dans une comparaison de chaînes de caractères insensibles à la casse.';
}
?>

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, PHP 8)

strncmp — Comparaison binaire des n premiers caractères

Description

strncmp(string $string1, string $string2, int $length): int

Identique à la fonction strcmp(), avec la différence que vous pouvez spécifier le nombre maximum de caractères à utiliser pour la comparaison de string1 avec string2 grâce au paramètre length.

Notez que cette comparaison est sensible à la casse.

Liste de paramètres

string1

La première chaîne.

string2

La seconde chaîne.

length

Nombre de caractères à utiliser pour la comparaison.

Valeurs de retour

Retourne -1 si string1 est inférieure à string2; 1 si string1 est supérieure à string2, et 0 si les deux chaînes sont égales.

Historique

Version | Description
8.2.0 | Cette fonction retourne désormais -1 ou 1, alors qu'auparavant elle renvoyait un nombre négatif ou positif.

Exemples

Exemple #1 Exemple avec strncmp()

<?php

$var1 = 'Hello John';
$var2 = 'Hello Doe';
if (strncmp($var1, $var2, 5) === 0) {
echo 'Les 5 premiers caractères de $var1 et $var2 sont égaux dans une comparaison de chaînes de caractères sensibles à la casse.';
}
?>

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, PHP 8)

strpbrk — Recherche un ensemble de caractères dans une chaîne de caractères

Description

strpbrk(string $string, string $characters): string|false

strpbrk() recherche l'ensemble de caractères characters dans la chaîne string.

Liste de paramètres

string

La chaîne dans laquelle on cherche characters.

characters

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, PHP 8)

strpos — Cherche la position de la première occurrence dans une chaîne

Description

strpos(string $haystack, string $needle, int $offset = 0): int|false

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

La chaîne à rechercher.

Antérieur à PHP 8.0.0, si needle n'est pas une chaîne de caractères, elle est convertie en un entier et appliqué en tant que valeur ordinal d'un caractère. Ce comportement est obsolète à partir de PHP 7.3.0, et se fier à celui-ci est fortement déconseillé. En fonction du comportement attendu, needle doit être transtypé explicitement en une chaîne de caractère, ou un appel explicite à chr() doit être exécuté.

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
8.0.0 | needle accepte désormais une chaîne vide.
8.0.0 | Passer un entier comme needle n'est plus supporté.
7.3.0 | Passer un entier comme before_needle a été rendu obsolète.
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
  • str_contains() - Détermine si une chaîne contient une sous-chaîne donnée
  • str_ends_with() - Détermine si une chaîne se termine par une sous-chaîne donnée
  • str_starts_with() - Détermine si une chaîne commence par une sous-chaîne donnée
  • 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, PHP 8)

strrchr — Trouve la dernière occurrence d'un caractère dans une chaîne

Description

strrchr(string $haystack, string $needle, bool $before_needle = false ): string|false

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().

Antérieur à PHP 8.0.0, si needle n'est pas une chaîne de caractères, elle est convertie en un entier et appliqué en tant que valeur ordinal d'un caractère. Ce comportement est obsolète à partir de PHP 7.3.0, et se fier à celui-ci est fortement déconseillé. En fonction du comportement attendu, needle doit être transtypé explicitement en une chaîne de caractère, ou un appel explicite à chr() doit être exécuté.

before_needle

Si true, strrchr() renvoie la partie du haystack avant la dernière occurrence de needdle (à l'exclusion de cette dernière).

Valeurs de retour

Retourne la portion de la chaîne, ou false si needle n'est pas trouvé.

Historique

Version | Description
8.3.0 | Le paramètre before_needle a été ajouté.
8.0.0 | needle accepte désormais une chaîne vide.
8.0.0 | Passing an entier as needle is no longer supported.
7.3.0 | Passer un entier comme before_needle a été rendu obsolète.

Exemples

Exemple #1 Exemple avec strrchr()

<?php
$ext = strrchr('somefile.txt', '.');
echo "extension de fichier: $ext \n";
$ext = $ext ? strtolower(substr($ext, 1)) : '';
echo "extension de fichier: $ext";
?>

Résultat de l'exemple ci-dessus est similaire à :

extension de fichier: .txt
extension de fichier: txt

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, PHP 8)

strrev — Inverse une chaîne

Description

strrev(string $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, PHP 8)

strripos — Cherche la position de la dernière occurrence d'une chaîne contenue dans une autre, de façon insensible à la casse

Description

strripos(string $haystack, string $needle, int $offset = 0): int|false

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

La chaîne à rechercher.

Antérieur à PHP 8.0.0, si needle n'est pas une chaîne de caractères, elle est convertie en un entier et appliqué en tant que valeur ordinal d'un caractère. Ce comportement est obsolète à partir de PHP 7.3.0, et se fier à celui-ci est fortement déconseillé. En fonction du comportement attendu, needle doit être transtypé explicitement en une chaîne de caractère, ou un appel explicite à chr() doit être exécuté.

offset

Si zéro ou positif, la recherche est effectuée de gauche à droite omettant les premiers offset octets de haystack.

Si négatif, la recherche est effectuée de droite à gauche omettant les derniers offset octets de haystack et cherchant pour la première occurrence de needle.

Note:

Ceci est effectivement à la recherche de la dernière occurrence de needle avant les derniers offset octets.

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).

Note: Les positions des chaîne de caractères débutent à 0, et pas à 1.

Retourne false si la needle 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
8.2.0 | Le case folding ne dépend désormais plus de la locale définit avec setlocale(). Uniquement du case folding ASCII sera effectué. Les octets non-ASCII seront comparés par leur valeur d'octet.
8.0.0 | needle accepte désormais une chaîne vide.
8.0.0 | Passing an entier as needle is no longer supported.
7.3.0 | Passer un entier comme before_needle a été rendu obsolète.

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, PHP 8)

strrpos — Cherche la position de la dernière occurrence d'une sous-chaîne dans une chaîne

Description

strrpos(string $haystack, string $needle, int $offset = 0): int|false

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

La chaîne à rechercher.

Antérieur à PHP 8.0.0, si needle n'est pas une chaîne de caractères, elle est convertie en un entier et appliqué en tant que valeur ordinal d'un caractère. Ce comportement est obsolète à partir de PHP 7.3.0, et se fier à celui-ci est fortement déconseillé. En fonction du comportement attendu, needle doit être transtypé explicitement en une chaîne de caractère, ou un appel explicite à chr() doit être exécuté.

offset

Si zéro ou positif, la recherche est effectuée de gauche à droite omettant les premiers offset octets de haystack.

Si négatif, la recherche commence à offset octets de la droite au lieu de depuis le début de haystack. La recherche s'effectue de droite à gauche, cherchant la première occurrence de needle à partir de l'octet sélectionné.

Note:

Ceci est effectivement équivalent à la recherche de la dernière occurrence de needle à ou avant les derniers offset octets.

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).

Note: Les positions des chaîne de caractères débutent à 0, et pas à 1.

Retourne false si la needle 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
8.0.0 | needle accepte désormais une chaîne vide.
8.0.0 | Passing an entier as needle is no longer supported.
7.3.0 | Passer un entier comme before_needle a été rendu obsolète.

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 des positions

<?php
$foo = "0123456789a123456789b123456789c";

// Chercher pour '0' depuis l'octet 0 (depuis le début)
var_dump(strrpos($foo, '0', 0));

// Chercher pour '0' depuis le 1er octet (après l'octet "0")
var_dump(strrpos($foo, '0', 1));

// Chercher pour '7' depuis le 21ème octet (après l'octet 20)
var_dump(strrpos($foo, '7', 20));

// Chercher pour '7' depuis le 29ème octet (après l'octet 28)
var_dump(strrpos($foo, '7', 28));

// Chercher pour '7' de droite à gauche depuis le 5ème octet depuis la fin
var_dump(strrpos($foo, '7', -5));

// Chercher pour 'c' de droite à gauche depuis le 2ème octet depuis la fin
var_dump(strrpos($foo, 'c', -2));

// Chercher pour '9c' de droite à gauche depuis le 2ème octet depuis la fin
var_dump(strrpos($foo, '9c', -2));
?>

L'exemple ci-dessus va afficher :

int(0)
bool(false)
int(27)
bool(false)
int(17)
bool(false)
int(29)

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, PHP 8)

strspn — Trouve la longueur du segment initial d'une chaîne contenant tous les caractères d'un masque donné

Description

strspn(
string $string,
string $characters,
int $offset = 0,
?int $length = null
): int

Trouve la longueur du segment initial de string qui contient uniquement les caractères depuis le masque characters.

Si les paramètres offset et length sont omis, alors toutes les chaînes string seront analysées. S'ils sont fournis, alors les effets seront identiques à appeler strspn(substr($string, $offset, $length), $characters) (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 string dont les caractères sont contenus dans "1234567890".

Liste de paramètres

string

La chaîne à analyser.

characters

La liste des caractères autorisés.

offset

La position dans la chaîne string à partir de laquelle nous devons chercher.

Si offset est fourni et n'est pas négatif, alors strspn() commencera à analyser la chaîne string à la position offset. 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 offset est fourni et est négatif, alors strspn() commencera à analyser la chaîne string à la position offset depuis la fin de la chaîne string.

length

La longueur de la chaîne à analyser.

Si length est fourni et n'est pas négatif, alors string sera examiné sur length caractères après la position de départ.

Si length est fourni et est négatif, alors string sera examiné sur length caractères depuis la fin de la chaîne string.

Valeurs de retour

Retourne la taille du segment initial de la chaîne string qui est entièrement constitué de caractères contenus dans characters.

Note:

Lorsque le paramètre offset est défini, la longueur retournée est comptée à partir de cette position, et non depuis le début du paramètre string.

Historique

Version | Description
8.0.0 | length est désormais nullable.

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, PHP 8)

strstr — Trouve la première occurrence dans une chaîne

Description

strstr(string $haystack, string $needle, bool $before_needle = false): string|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 l'objectif est uniquement de déterminer si une certaine valeur de needle se trouve dans haystack, la fonction str_contains() qui est plus rapide et moins gourmande en mémoire devrait être utilisée à la place.

Liste de paramètres

haystack

La chaîne d'entrée.

needle

La chaîne à rechercher.

Antérieur à PHP 8.0.0, si needle n'est pas une chaîne de caractères, elle est convertie en un entier et appliqué en tant que valeur ordinal d'un caractère. Ce comportement est obsolète à partir de PHP 7.3.0, et se fier à celui-ci est fortement déconseillé. En fonction du comportement attendu, needle doit être transtypé explicitement en une chaîne de caractère, ou un appel explicite à chr() doit être exécuté.

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
8.0.0 | needle accepte désormais une chaîne vide.
8.0.0 | Passing an entier as needle is no longer supported.
7.3.0 | Passer un entier comme before_needle a été rendu obsolète.

Exemples

Exemple #1 Exemple avec strstr()

<?php
$email = 'name@example.com';
$domain = strstr($email, '@');
echo $domain; // Affiche : @example.com

$user = strstr($email, '@', true);
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, PHP 8)

strtok — Coupe une chaîne en segments

Description

strtok(string $string, string $token): string|false

Signature alternative (non supporté avec les arguments nommés) :

strtok(string $token): string|false

strtok() coupe la chaîne string 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 l'espace comme token.

Notez que seul le premier appel à strtok() utilise l'argument string. Tous les appels ultérieurs à strtok() nécessitent uniquement le token à utiliser, car elle sait où elle se situe dans la chaîne courante. Pour recommencer ou découper une nouvelle chaîne vous pouvez simplement appeler strtok() avec le paramètre string de nouveau pour l'initialiser. Il est à noter qu'il est possible de mettre plusieurs tokens dans le paramètre token. La chaîne string sera découpée dès que l'un des caractères de l'argument token est trouvé.

Note:

Cette fonction ce comporte de manière légèrement différente de ce qu'on peut s'attendre étant familier avec explode(). Premièrement, une séquence de deux ou plus token caractères contigu dans la chaîne analysé est considéré comme un unique délimiteur. De plus, un token situé au début ou à la fin de la chaîne est ignoré. Par exemple, si la chaîne ";aaa;;bbb;" est utilisé, les appels successif à strtok() avec ";" en tant que token retournera les chaînes "aaa" et "bbb", et puis false. Par conséquent, la chaîne sera juste séparé en deux éléments, tandis que explode(";", $string) retournerait un tableau de 5 éléments.

Liste de paramètres

string

La chaîne à découper en plusieurs chaînes de tailles plus petites (tokens).

token

Le délimiteur utilisé pour découper string.

Valeurs de retour

Une string coupée, ou false si plus aucun token n'est disponible.

Historique

Version | Description
8.3.0 | Émet désormais un E_WARNING lorsque le token n'est pas fourni.

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");
}
?>

Exemple #2 Comportement de strtok() sur une partie vide trouvée

<?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)

Exemple #3 La différence entre strtok() et explode()

<?php
$string = ";aaa;;bbb;";

$parts = [];
$tok = strtok($string, ";");
while ($tok !== false) {
$parts[] = $tok;
$tok = strtok(";");
}
echo json_encode($parts),"\n";

$parts = explode(";", $string);
echo json_encode($parts),"\n";

L'exemple ci-dessus va afficher :

["aaa","bbb"]
["","aaa","","bbb",""]

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

  • explode() - Scinde une chaîne de caractères 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, PHP 8)

strtolower — Renvoie une chaîne en minuscules

Description

strtolower(string $string): string

Retourne string, après avoir converti tous les caractères alphabétiques ASCII en minuscules.

Les octets dans la plage "A" (0x41) à "Z" (0x5a) seront convertis en leur lettre minuscule correspondante en ajoutant 32 à chaque valeur d'octet.

Cela peut être utilisé pour convertir des caractères ASCII dans des chaînes encodées avec UTF-8, car les caractères UTF-8 multioctets seront ignorés. Pour convertir des caractères non-ASCII multioctets, utilisez la fonction mb_strtolower().

Liste de paramètres

string

La chaîne d'entrée.

Valeurs de retour

Retourne la chaîne en minuscule.

Historique

Version | Description
8.2.0 | La conversion de la casse ne dépend désormais plus de la locale définit avec setlocale(). Seuls les caractères ASCII seront convertis.

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, PHP 8)

strtoupper — Renvoie une chaîne en majuscules

Description

strtoupper(string $string): string

strtoupper() retourne string, après avoir converti tous les caractères alphabétiques en majuscules.

Les octets dans la plage "a" (0x61) à "z" (0x7a) seront convertis en leur lettre majuscule correspondante en soustrayant 32 à chaque valeur d'octet.

Cela peut être utilisé pour convertir des caractères ASCII dans des chaînes encodées avec UTF-8, car les caractères UTF-8 multioctets seront ignorés. Pour convertir des caractères non-ASCII multioctets, utilisez la fonction mb_strtoupper().

Liste de paramètres

string

La chaîne d'entrée.

Valeurs de retour

Retourne la chaîne en majuscule.

Historique

Version | Description
8.2.0 | La conversion de la casse ne dépend désormais plus de la locale définit avec setlocale(). Seuls les caractères ASCII seront convertis.

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, PHP 8)

strtr — Remplace des caractères dans une chaîne

Description

strtr(string $string, string $from, string $to): string

Signature alternative (non supporté avec les arguments nommés) :

strtr(string $string, array $replace_pairs): string

Si trois arguments sont utilisés, strtr() retourne la chaîne string 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 string 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 string. Cependant, cette fonction sera la plus efficace lorsque toutes les clés ont la même taille.

Liste de paramètres

string

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', ...).

Si replace_pairs contient une clé qui est une string vide (""), l'élément est ignoré ; à partir de PHP 8.0.0 une E_WARNING est levé dans ce cas.

Valeurs de retour

Retourne la chaîne de caractères modifiée.

Exemples

Exemple #1 Exemple avec strtr()

<?php
// Ici, strtr() remplace octet par octet, nous supposons
// donc ici des encodages sur 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, PHP 8)

substr_compare — Compare deux chaînes depuis un offset jusqu'à une longueur en caractères

Description

substr_compare(
string $haystack,
string $needle,
int $offset,
?int $length = null,
bool $case_insensitive = false
): int

substr_compare() compare haystack à partir de la position offset avec needle pendant length caractères.

Liste de paramètres

haystack

La chaîne principale à comparer.

needle

La chaîne secondaire à comparer.

offset

La position de départ pour la comparaison. 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 needle et la longueur de haystack moins le paramètre offset.

case_insensitive

Si case_insensitive vaut true, la comparaison est insensible à la casse.

Valeurs de retour

Retourne -1 si haystack à partir de offset est inférieur à needle, 1 s'il est plus grand que needle, et 0 si ils sont égaux. Si length est égal (antérieur à PJP 7.2.18, 7.3.5) ou plus grand que la taille de haystack ou que length est définit et inférieur à 0, substr_compare() affiche une alerte et retourne false.

Historique

Version | Description
8.2.0 | Cette fonction retourne désormais -1 ou 1, alors qu'auparavant elle renvoyait un nombre négatif ou positif.
8.0.0 | length est désormais nullable.
7.2.18, 7.3.5 | offset peut désormais être égal à la taille de haystack.

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, PHP 8)

substr_count — Compte le nombre d'occurrences de segments dans une chaîne

Description

substr_count(
string $haystack,
string $needle,
int $offset = 0,
?int $length = null
): int

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
8.0.0 | length est désormais nullable.
7.1.0 | Ajout du support des nombres négatifs pour offset et length. length peut aussi être 0 maintenant.

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, PHP 8)

substr_replace — Remplace un segment dans une chaîne

Description

substr_replace(
array|string $string,
array|string $replace,
array|int $offset,
array|int|null $length = null
): string|array

substr_replace() remplace un segment de la chaîne string par la chaîne replace. Le segment est délimité par offset 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 replace, offset 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.

replace

La chaîne de remplacement.

offset

Si offset n'est pas négatif, le remplacement se fera à partir du caractère numéro offset dans string.

Si offset est négatif, le remplacement se fera à partir du offset-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 replace dans string à la position offset 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é.

Historique

Version | Description
8.0.0 | length est désormais nullable.

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, PHP 8)

substr — Retourne un segment de chaîne

Description

substr(string $string, int $offset, ?int $length = null): string

Retourne le segment de string défini par offset et length.

Liste de paramètres

string

La chaîne de caractères d'entrée.

offset

Si offset est positif, la chaîne retournée commencera au caractère numéro offset, 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 offset est négatif, la chaîne retournée commencera au caractère numéro offset à compter de la fin de la chaîne string.

Si string est plus petit que offset caractères de long, une chaîne vide sera retourné.

Exemple #1 Exemple de offset 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 offset (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 offset représente une position hors de la chaîne, false sera retournée.

Si le paramètre length est fourni et vaut 0, une chaîne vide sera retournée.

Si length est omis ou null, la sous chaine commençant à partir de offset 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 ""; antérieur à PHP 8.0.0, false était retourné
$rest = substr("abcdef", -3, -1); // retourne "de"
?>

Valeurs de retour

Retourne la partie extraite de la chaîne string, ou une chaine vide.

Historique

Version | Description
8.0.0 | length est désormais nullable. Lorsque length est explicitement défini à null, la fonction retourne une sous-chaîne terminant à la fin de la chaîne, alors qu'elle renvoyait auparavant une chaîne vide.
8.0.0 | Cette fonction retourne une chaîne vide où auparavant elle retournait false

Exemples

Exemple #3 Exemple avec substr()

<?php
echo substr('abcdef', 1); // bcdef
echo substr("abcdef", 1, null); // bcdef; antérieur à PHP 8.0.0, une chaîne vide était retournée
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;
?>

L'exemple ci-dessus va afficher :

1) 'pe'
2) '54'
3) 'gr'
4) '1'
5) ''
6) ''
7) '1200'

Exemple #5 Intervalle de Caractères Invalide

Si une intervalle de caractères invalide est demandé, substr() retourne une chaîne vide à partir de PHP 8.0.0; auparavant false était retourné à la place.

<?php
var_dump(substr('a', 2));
?>

Résultat de l'exemple ci-dessus en PHP 8 :

string(0) ""

Résultat de l'exemple ci-dessus en PHP 7 :

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, PHP 8)

trim — Supprime les espaces (ou d'autres caractères) en début et fin de chaîne

Description

trim(string $string, string $characters = " \n\r\t\v\x00"): string

trim() retourne la chaîne string, après avoir supprimé les caractères invisibles en début et fin de chaîne. Si le second paramètre characters 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.
  • "\v" (ASCII 11 (0x0B)), une tabulation verticale.

Liste de paramètres

string

La chaîne de caractères qui sera coupée.

characters

Optionnellement, les caractères supprimés peuvent aussi être spécifiés en utilisant le paramètre characters. 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, PHP 8)

ucfirst — Met le premier caractère en majuscule

Description

ucfirst(string $string): string

Retourne une chaîne avec le premier caractère de string en majuscule, si ce caractère est un caractère ASCII dans la plage de "a" (0x61) à "z" (0x7a).

Liste de paramètres

string

La chaîne d'entrée.

Valeurs de retour

Retourne la chaîne après modification.

Historique

Version | Description
8.2.0 | La conversion de la casse ne dépend désormais plus de la locale définit avec setlocale(). Seuls les caractères ASCII seront convertis.

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
  • mb_convert_case() - Modifie la casse d'une chaîne


Met en majuscule la première lettre de tous les mots

  • « ucfirst
  • utf8_decode »
  • 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, PHP 8)

ucwords — Met en majuscule la première lettre de tous les mots

Description

ucwords(string $string, string $separators = " \t\r\n\f\v"): string

Retourne la chaîne string après avoir mis en majuscule la première lettre de tous les mots, si ce caractère est un caractère ASCII entre "a" (0x61) et "z" (0x7a).

Dans le contexte de cette fonction, un mot est toute séquence de caractères qui ne sont pas listés dans le paramètre separators. Par défaut, ce sont : une espace, un saut à la ligne, une nouvelle ligne, un retour à la ligne, un saut de page, une tabulation horizontale et une tabulation verticale.

Pour faire une conversion similaire sur les chaînes multioctet, utilisez mb_convert_case() avec le mode MB_CASE_TITLE.

Liste de paramètres

string

La chaîne d'entrée.

separators

Le paramètre optionnel separators contient le caractère de séparation.

Valeurs de retour

Retourne la chaîne, après modification.

Historique

Version | Description
8.2.0 | La conversion de la casse ne dépend désormais plus de la locale définit avec setlocale(). Seuls les caractères ASCII seront convertis.

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!
?>

Exemple #3 Exemple de ucwords() des séparateurs supplémentaires

<?php
$foo = "mike o'hara";
$bar = ucwords($foo); // Mike O'hara

$baz = ucwords($foo, " \t\r\n\f\v'"); // Mike O'Hara
?>

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


Convertit une chaîne UTF-8 en ISO-8859-1, en remplaçant les caractères invalides ou non représentables.

  • « ucwords
  • utf8_encode »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Convertit une chaîne UTF-8 en ISO-8859-1, en remplaçant les caractères invalides ou non représentables.

utf8_decode

(PHP 4, PHP 5, PHP 7, PHP 8)

utf8_decode — Convertit une chaîne UTF-8 en ISO-8859-1, en remplaçant les caractères invalides ou non représentables.

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 8.2.0. Dépendre de cette fonction est fortement déconseillé.

Description

utf8_decode(string $string): string

utf8_decode() décode la chaîne string, en supposant qu'elle est au format UTF-8, et la convertit au format ISO-8859-1. Les octets dans la chaîne qui ne sont pas valides en UTF-8 et les caractères UTF-8 qui n'existent pas en ISO-8859-1 (qui sont, les caractères au-dessus de U+00FF) sont remplacés par ?.

Note:

De nombreuses pages Web marquées comme utilisant l'encodage de caratères ISO-8859-1 utilisent effectivement un encodage similaire à Windows-1252, et les navigateurs Web interpréterons les pages Web ISO-8859-1 comme Windows-1252. Les caractéristiques supplémentaires de Windows-1252 sont des caractères imprimables, tels que le signe euro (€) et les guillemets bouclés (“ ”), à la place de certains caractères de contrôle de l'ISO-8859-1. Cette fonction ne convertira pas ces caractères Windows-1252 correctement. Utilisez une fonction différente si une conversion Windows-1252 est nécessaire.

Liste de paramètres

string

La chaîne encodée UTF-8.

Valeurs de retour

Retourne la chaîne string convertie en ISO-8859-1.

Historique

Version | Description
8.2.0 | Cette fonction a été rendue obsolète.
7.2.0 | Cette fonction a été déplacée dans le cœur de PHP ; auparavant, il était nécessaire d'installer l'extension XML pour l'utiliser.

Exemples

Exemple #1 Exemple d'utilisation

<?php
// Convertit la chaîne 'Zoë' de UTF-8 à ISO 8859-1
$utf8_string = "\x5A\x6F\xC3\xAB";
$iso8859_1_string = utf8_decode($utf8_string);
echo bin2hex($iso8859_1_string), "\n";

// Les séquences UTF-8 non valides sont remplacées par '?'
$invalid_utf8_string = "\xC3";
$iso8859_1_string = utf8_decode($invalid_utf8_string);
var_dump($iso8859_1_string);

// Les caractères qui n'existent pas dans la norme ISO 8859-1,
// tels que '€' (signe de l'euro) sont égalements remplacés par '?'
$utf8_string = "\xE2\x82\xAC";
$iso8859_1_string = utf8_decode($utf8_string);
var_dump($iso8859_1_string);
?>

L'exemple ci-dessus va afficher :

5a6feb
string(1) "?"
string(1) "?"

Notes

Note: Dépréciation et alternatives

Cette fonction est obsolète à partir de PHP 8.2.0 et sera supprimée dans une version future. Les utilisations existantes devraient être vérifiées et remplacées par des alternatives appropriées.

Une fonctionnalité similaire peut être obtenue avec mb_convert_encoding(), qui prend en charge ISO-8859-1 et de nombreux autres encodages de caractères.

<?php
$utf8_string = "\xC3\xAB"; // 'ë' (e with diaeresis) in UTF-8
$iso8859_1_string = mb_convert_encoding($utf8_string, 'ISO-8859-1', 'UTF-8');
echo bin2hex($iso8859_1_string), "\n";

$utf8_string = "\xCE\xBB"; // '?' (Greek lower-case lambda) in UTF-8
$iso8859_7_string = mb_convert_encoding($utf8_string, 'ISO-8859-7', 'UTF-8');
echo bin2hex($iso8859_7_string), "\n";

$utf8_string = "\xE2\x82\xAC"; // '€' (Euro sign) in UTF-8 (not present in ISO-8859-1)
$windows_1252_string = mb_convert_encoding($utf8_string, 'Windows-1252', 'UTF-8');
echo bin2hex($windows_1252_string), "\n";
?>

L'exemple ci-dessus va afficher :

eb
eb
80

D'autres options peuvent être disponibles en fonction des extensions installées, telles que UConverter::transcode() et iconv().

Les exemples suivants donnent tous le même résultat :

<?php
$utf8_string = "\x5A\x6F\xC3\xAB"; // 'Zoë' in UTF-8
$iso8859_1_string = utf8_decode($utf8_string);
echo bin2hex($iso8859_1_string), "\n";

$iso8859_1_string = mb_convert_encoding($utf8_string, 'ISO-8859-1', 'UTF-8');
echo bin2hex($iso8859_1_string), "\n";

$iso8859_1_string = iconv('UTF-8', 'ISO-8859-1', $utf8_string);
echo bin2hex($iso8859_1_string), "\n";

$iso8859_1_string = UConverter::transcode($utf8_string, 'ISO-8859-1', 'UTF8');
echo bin2hex($iso8859_1_string), "\n";
?>

L'exemple ci-dessus va afficher :

5a6feb
5a6feb
5a6feb
5a6feb
En spécifiant '?' comme option 'to_subst' pour UConverter::transcode(), on obtient le même résultat que utf8_decode() pour les chaînes qui sont invalides ou qui ne peuvent pas être représentées en ISO 8859-1.
<?php
$utf8_string = "\xE2\x82\xAC"; // € (Euro Sign) does not exist in ISO 8859-1
$iso8859_1_string = UConverter::transcode(
$utf8_string, 'ISO-8859-1', 'UTF-8', ['to_subst' => '?']
);
var_dump($iso8859_1_string);
?>

L'exemple ci-dessus va afficher :

sring(1) "?"

Voir aussi

  • utf8_encode() - Convertit une chaîne ISO-8859-1 en UTF-8
  • mb_convert_encoding() - Convertir une chaîne d'un codage de caractères à un autre
  • UConverter::transcode() - Convertit une chaîne d'un jeu de caractères à un autre
  • iconv() - Convertit une chaîne de caractères à partir d'un encodage vers un autre


Convertit une chaîne ISO-8859-1 en UTF-8

  • « utf8_decode
  • vfprintf »
  • PHP Manual
  • Fonctions sur les chaînes de caractères
  • Convertit une chaîne ISO-8859-1 en UTF-8

utf8_encode

(PHP 4, PHP 5, PHP 7, PHP 8)

utf8_encode — Convertit une chaîne ISO-8859-1 en UTF-8

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 8.2.0. Dépendre de cette fonction est fortement déconseillé.

Description

utf8_encode(string $string): string

Cette fonction convertie la chaîne string depuis l'encodage ISO-8859-1 vers UTF-8.

Note:

Cette fonction n'essaie pas de deviner l'encodage actuel de la chaîne de caractères fournie, elle suppose qu'elle est encodée en ISO-8859-1 (également connu sous le nom de "Latin 1") et la convertit en UTF-8. Puisque chaque séquence d'octets est une chaîne de caractères ISO-8859-1 valide, il n'y a jamais d'erreur, mais il n'en résultera pas une chaîne de caractères utile si un encodage différent était prévu.

De nombreuses pages Web marquées comme utilisant l'encodage de caratère ISO-8859-1 utilisent effectivement un encodage similaire à Windows-1252, et les navigateurs Web interpréterons les pages Web ISO-8859-1 comme Windows-1252. Les caractéristiques supplémentaires de Windows-1252 sont des caractères imprimables, tels que le signe euro (€) et les guillemets bouclés (“ ”), à la place de certains caractères de contrôle de l'ISO-8859-1. Cette fonction ne convertira pas ces caractères Windows-1252 correctement. Utilisez une fonction différente si une conversion Windows-1252 est nécessaire.

Liste de paramètres

string

Une chaîne ISO-8859-1.

Valeurs de retour

Retour la version UTF-8 de string.

Historique

Version | Description
8.2.0 | Cette fonction a été rendue obsolète.
7.2.0 | Cette fonction a été déplacée dans le cœur de PHP, auparavant, il était nécessaire d'installer l'extension XML pour l'utiliser.

Exemples

Exemple #1 Exemple d'utilisation

<?php
// Convertit la chaîne 'Zoë' de ISO 8859-1 à UTF-8
$iso8859_1_string = "\x5A\x6F\xEB";
$utf8_string = utf8_encode($iso8859_1_string);
echo bin2hex($utf8_string), "\n";
?>

L'exemple ci-dessus va afficher :

5a6fc3ab

Notes

Note: Dépréciation et alternatives

Cette fonction est obsolète à partir de PHP 8.2.0 et sera supprimée dans une version future. Les utilisations existantes devraient être vérifiées et remplacées par des alternatives appropriées.

Une fonctionnalité similaire peut être obtenue avec mb_convert_encoding(), qui prend en charge ISO-8859-1 et de nombreux autres encodages de caractères.

<?php
$iso8859_1_string = "\xEB"; // 'ë' (e with diaeresis) in ISO-8859-1
$utf8_string = mb_convert_encoding($iso8859_1_string, 'UTF-8', 'ISO-8859-1');
echo bin2hex($utf8_string), "\n";

$iso8859_7_string = "\xEB"; // the same string in ISO-8859-7 represents '?' (Greek lower-case lambda)
$utf8_string = mb_convert_encoding($iso8859_7_string, 'UTF-8', 'ISO-8859-7');
echo bin2hex($utf8_string), "\n";

$windows_1252_string = "\x80"; // '€' (Euro sign) in Windows-1252, but not in ISO-8859-1
$utf8_string = mb_convert_encoding($windows_1252_string, 'UTF-8', 'Windows-1252');
echo bin2hex($utf8_string), "\n";
?>

L'exemple ci-dessus va afficher :

c3ab
cebb
e282ac

D'autres options peuvent être disponibles en fonction des extensions installées, telles que UConverter::transcode() et iconv().

Les exemples suivants donnent tous le même résultat :

<?php
$iso8859_1_string = "\x5A\x6F\xEB"; // 'Zoë' in ISO-8859-1

$utf8_string = utf8_encode($iso8859_1_string);
echo bin2hex($utf8_string), "\n";

$utf8_string = mb_convert_encoding($iso8859_1_string, 'UTF-8', 'ISO-8859-1');
echo bin2hex($utf8_string), "\n";

$utf8_string = UConverter::transcode($iso8859_1_string, 'UTF8', 'ISO-8859-1');
echo bin2hex($utf8_string), "\n";

$utf8_string = iconv('ISO-8859-1', 'UTF-8', $iso8859_1_string);
echo bin2hex($utf8_string), "\n";
?>

L'exemple ci-dessus va afficher :

5a6fc3ab
5a6fc3ab
5a6fc3ab
5a6fc3ab

Voir aussi

  • utf8_decode() - Convertit une chaîne UTF-8 en ISO-8859-1, en remplaçant les caractères invalides ou non représentables.
  • mb_convert_encoding() - Convertir une chaîne d'un codage de caractères à un autre
  • UConverter::transcode() - Convertit une chaîne d'un jeu de caractères à un autre
  • iconv() - Convertit une chaîne de caractères à partir d'un encodage vers un autre


Écrit une chaîne formatée dans un flux

  • « utf8_encode
  • 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, PHP 8)

vfprintf — Écrit une chaîne formatée dans un flux

Description

vfprintf(resource $stream, string $format, array $values): int

Écrit une chaîne produite en accord avec le paramètre format dans le flux stream.

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

stream

format

La chaîne de format est composé de zéro ou plusieurs directives : des caractères ordinaires (à l'exception de %) qui sont copiés directement dans le résultat et des spécifications de conversion, chacun ayant pour résultat de récupérer ses propres paramètre.

Une spécification de conversion qui suit ce prototype : %[argnum$][flags][width][.precision]specifier.

Argnum

Un entier suivit d'un signe dollar $, pour spécifier quel numéro d'argument à traiter dans la conversion.

Drapeaux
Drapeau | Description
- Justifie le texte à gauche donnée la largeur du champ ; Justification à droite est le comportement par défaut.
+ Préfixe les nombres positives avec un signe plus + ; Par défaut seul les nombres négatifs sont préfixés avec un signe négatif.
(espace) | Complète le résultat avec des espaces. Ceci est par défaut.
0 | Complète uniquement les nombres à gauches avec des zéros. Avec le spécificateur s ceci peut aussi compléter à droite avec des zéros.
'(char) | Complète le résultat avec le caractère (char).

Largeur

Soit un entier indiquant le nombre de caractères (minimum) que cette conversion doit produire, soit *. Si * est utilisé, alors la largeur est fournie en tant que valeur entière supplémentaire précédant celle formatée par le spécificateur.

Precision

Un point . suivi optionnellement soit d'un entier, soit de *, dont la signification dépend du spécificateur :

  • Pour les spécificateurs e, E, f et F : ceci est le nombre de chiffres à afficher après la virgule (par défaut, ceci est 6).
  • Pour les spécificateurs g, G, h et H : ceci est le nombre maximal de chiffres significatifs à afficher. digits to be printed.
  • Pour le spécificateur s : il agit comme un point de coupure, définissant une limite maximale de caractères de la chaîne.

Note: Si le point est spécifié sans une valeur explicite pour la précision, 0 est assumé. Si * est utilisé, la précision est fournie en tant que valeur entière supplémentaire précédant celle formatée par le spécificateur.

Spécificateurs
Spécificateur | Description
% 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 décimal (signé).
e | L'argument est traité comme une notation scientifique (e.g. 1.2e+2).
E | Comme le spécificateur e mais utilise une lettre majuscule (par exemple 1.2E+2).
f | L'argument est traité comme un nombre à virgule flottante (type nombre décimal) 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 nombre décimal) et présenté comme un nombre à virgule flottante (ne tenant pas compte de la locale utilisée).
g

Format général.

Soit P égal à la précision si différent de 0, 6 si la précision est omit ou 1 si la précision est zéro. Alors, si la conversion avec le style E aurait comme exposant X :

Si P > X = -4, la conversion est avec style f et précision P - (X + 1). Sinon, la conversion est avec le style e et précision P - 1.

G | Comme le spécificateur g mais utilise E et f.
h | Comme le spécificateur g mais utilise F. Disponible à partir de PHP 8.0.0.
H | Comme le spécificateur g mais utilise E et F. Disponible à partir de PHP 8.0.0.
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 décimal 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).

Avertissement

Le spécificateur de type c ignore l'alignement et la taille.

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.

Les variables seront contraints à un type approprié pour le spécificateur :

Gestion des types
Type | Spécificateurs
string | s
int | d, u, c, o, x, X, b
float | e, E, f, F, g, G, h, H

values

Valeurs de retour

Retourne la longueur de la chaîne retournée.

Erreurs / Exceptions

As of PHP 8.0.0, a ValueError is thrown if the number of arguments is zero. Prior to PHP 8.0.0, a E_WARNING was emitted instead.

As of PHP 8.0.0, a ValueError is thrown if [width] is less than zero or bigger than PHP_INT_MAX. Prior to PHP 8.0.0, a E_WARNING was emitted instead.

As of PHP 8.0.0, a ValueError is thrown if [precision] is less than zero or bigger than PHP_INT_MAX. Prior to PHP 8.0.0, a E_WARNING was emitted instead.

As of PHP 8.0.0, a ValueError is thrown when less arguments are given than required. Prior to PHP 8.0.0, false was returned and a E_WARNING emitted instead.

Historique

Version | Description
8.0.0 | Cette fonction ne renvoie plus false en cas d'échec.
8.0.0 | Lance une ValueError si le nombre d'arguments est zéro ; auparavant, cette fonction émettait un E_WARNING.
8.0.0 | Lance une ValueError si [width] est inférieur à zéro ou supérieur à PHP_INT_MAX ; auparavant, cette fonction émettait un E_WARNING.
8.0.0 | Lance une ValueError si [precision] est inférieur à zéro ou supérieur à PHP_INT_MAX ; auparavant, cette fonction émettait un E_WARNING.
8.0.0 | Lance une ArgumentCountError lorsque moins d'arguments sont donnés que requis ; auparavant, cette fonction émettait un E_WARNING.

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
  • fprintf() - Écrit une chaîne formatée dans un flux
  • vprintf() - Affiche une chaîne formatée
  • vsprintf() - 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
  • number_format() - Formate un nombre pour l'affichage
  • date() - Formate un horodatage Unix


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, PHP 8)

vprintf — Affiche une chaîne formatée

Description

vprintf(string $format, array $values): int

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

La chaîne de format est composé de zéro ou plusieurs directives : des caractères ordinaires (à l'exception de %) qui sont copiés directement dans le résultat et des spécifications de conversion, chacun ayant pour résultat de récupérer ses propres paramètre.

Une spécification de conversion qui suit ce prototype : %[argnum$][flags][width][.precision]specifier.

Argnum

Un entier suivit d'un signe dollar $, pour spécifier quel numéro d'argument à traiter dans la conversion.

Drapeaux
Drapeau | Description
- Justifie le texte à gauche donnée la largeur du champ ; Justification à droite est le comportement par défaut.
+ Préfixe les nombres positives avec un signe plus + ; Par défaut seul les nombres négatifs sont préfixés avec un signe négatif.
(espace) | Complète le résultat avec des espaces. Ceci est par défaut.
0 | Complète uniquement les nombres à gauches avec des zéros. Avec le spécificateur s ceci peut aussi compléter à droite avec des zéros.
'(char) | Complète le résultat avec le caractère (char).

Largeur

Soit un entier indiquant le nombre de caractères (minimum) que cette conversion doit produire, soit *. Si * est utilisé, alors la largeur est fournie en tant que valeur entière supplémentaire précédant celle formatée par le spécificateur.

Precision

Un point . suivi optionnellement soit d'un entier, soit de *, dont la signification dépend du spécificateur :

  • Pour les spécificateurs e, E, f et F : ceci est le nombre de chiffres à afficher après la virgule (par défaut, ceci est 6).
  • Pour les spécificateurs g, G, h et H : ceci est le nombre maximal de chiffres significatifs à afficher. digits to be printed.
  • Pour le spécificateur s : il agit comme un point de coupure, définissant une limite maximale de caractères de la chaîne.

Note: Si le point est spécifié sans une valeur explicite pour la précision, 0 est assumé. Si * est utilisé, la précision est fournie en tant que valeur entière supplémentaire précédant celle formatée par le spécificateur.

Spécificateurs
Spécificateur | Description
% 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 décimal (signé).
e | L'argument est traité comme une notation scientifique (e.g. 1.2e+2).
E | Comme le spécificateur e mais utilise une lettre majuscule (par exemple 1.2E+2).
f | L'argument est traité comme un nombre à virgule flottante (type nombre décimal) 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 nombre décimal) et présenté comme un nombre à virgule flottante (ne tenant pas compte de la locale utilisée).
g

Format général.

Soit P égal à la précision si différent de 0, 6 si la précision est omit ou 1 si la précision est zéro. Alors, si la conversion avec le style E aurait comme exposant X :

Si P > X = -4, la conversion est avec style f et précision P - (X + 1). Sinon, la conversion est avec le style e et précision P - 1.

G | Comme le spécificateur g mais utilise E et f.
h | Comme le spécificateur g mais utilise F. Disponible à partir de PHP 8.0.0.
H | Comme le spécificateur g mais utilise E et F. Disponible à partir de PHP 8.0.0.
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 décimal 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).

Avertissement

Le spécificateur de type c ignore l'alignement et la taille.

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.

Les variables seront contraints à un type approprié pour le spécificateur :

Gestion des types
Type | Spécificateurs
string | s
int | d, u, c, o, x, X, b
float | e, E, f, F, g, G, h, H

values

Valeurs de retour

Retourne la longueur de la chaîne retournée.

Erreurs / Exceptions

As of PHP 8.0.0, a ValueError is thrown if the number of arguments is zero. Prior to PHP 8.0.0, a E_WARNING was emitted instead.

As of PHP 8.0.0, a ValueError is thrown if [width] is less than zero or bigger than PHP_INT_MAX. Prior to PHP 8.0.0, a E_WARNING was emitted instead.

As of PHP 8.0.0, a ValueError is thrown if [precision] is less than zero or bigger than PHP_INT_MAX. Prior to PHP 8.0.0, a E_WARNING was emitted instead.

As of PHP 8.0.0, a ValueError is thrown when less arguments are given than required. Prior to PHP 8.0.0, false was returned and a E_WARNING emitted instead.

Historique

Version | Description
8.0.0 | Cette fonction ne renvoie plus false en cas d'échec.
8.0.0 | Lance une ValueError si le nombre d'arguments est zéro ; auparavant, cette fonction émettait un E_WARNING.
8.0.0 | Lance une ValueError si [width] est inférieur à zéro ou supérieur à PHP_INT_MAX ; auparavant, cette fonction émettait un E_WARNING.
8.0.0 | Lance une ValueError si [precision] est inférieur à zéro ou supérieur à PHP_INT_MAX ; auparavant, cette fonction émettait un E_WARNING.
8.0.0 | Lance une ArgumentCountError lorsque moins d'arguments sont donnés que requis ; auparavant, cette fonction émettait un E_WARNING.

Exemples

Exemple #1 Exemple avec vprintf() : entiers complétés avec des zéros

<?php
vprintf("%04d-%02d-%02d", explode('-', '1988-8-1'));
?>

L'exemple ci-dessus va afficher :

1988-08-01

Voir aussi

  • printf() - Affiche une chaîne de caractères formatée
  • sprintf() - Retourne une chaîne formatée
  • fprintf() - Écrit une chaîne formatée dans un flux
  • vsprintf() - Retourne une chaîne formatée
  • vfprintf() - Écrit une chaîne formatée dans un flux
  • sscanf() - Analyse une chaîne à l'aide d'un format
  • fscanf() - Analyse un fichier en fonction d'un format
  • number_format() - Formate un nombre pour l'affichage
  • date() - Formate un horodatage Unix


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, PHP 8)

vsprintf — Retourne une chaîne formatée

Description

vsprintf(string $format, array $values): string

vsprintf() fonctionne comme sprintf(), mais accepte un tableau comme argument, au lieu d'une liste d'arguments.

Liste de paramètres

format

La chaîne de format est composé de zéro ou plusieurs directives : des caractères ordinaires (à l'exception de %) qui sont copiés directement dans le résultat et des spécifications de conversion, chacun ayant pour résultat de récupérer ses propres paramètre.

Une spécification de conversion qui suit ce prototype : %[argnum$][flags][width][.precision]specifier.

Argnum

Un entier suivit d'un signe dollar $, pour spécifier quel numéro d'argument à traiter dans la conversion.

Drapeaux
Drapeau | Description
- Justifie le texte à gauche donnée la largeur du champ ; Justification à droite est le comportement par défaut.
+ Préfixe les nombres positives avec un signe plus + ; Par défaut seul les nombres négatifs sont préfixés avec un signe négatif.
(espace) | Complète le résultat avec des espaces. Ceci est par défaut.
0 | Complète uniquement les nombres à gauches avec des zéros. Avec le spécificateur s ceci peut aussi compléter à droite avec des zéros.
'(char) | Complète le résultat avec le caractère (char).

Largeur

Soit un entier indiquant le nombre de caractères (minimum) que cette conversion doit produire, soit *. Si * est utilisé, alors la largeur est fournie en tant que valeur entière supplémentaire précédant celle formatée par le spécificateur.

Precision

Un point . suivi optionnellement soit d'un entier, soit de *, dont la signification dépend du spécificateur :

  • Pour les spécificateurs e, E, f et F : ceci est le nombre de chiffres à afficher après la virgule (par défaut, ceci est 6).
  • Pour les spécificateurs g, G, h et H : ceci est le nombre maximal de chiffres significatifs à afficher. digits to be printed.
  • Pour le spécificateur s : il agit comme un point de coupure, définissant une limite maximale de caractères de la chaîne.

Note: Si le point est spécifié sans une valeur explicite pour la précision, 0 est assumé. Si * est utilisé, la précision est fournie en tant que valeur entière supplémentaire précédant celle formatée par le spécificateur.

Spécificateurs
Spécificateur | Description
% 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 décimal (signé).
e | L'argument est traité comme une notation scientifique (e.g. 1.2e+2).
E | Comme le spécificateur e mais utilise une lettre majuscule (par exemple 1.2E+2).
f | L'argument est traité comme un nombre à virgule flottante (type nombre décimal) 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 nombre décimal) et présenté comme un nombre à virgule flottante (ne tenant pas compte de la locale utilisée).
g

Format général.

Soit P égal à la précision si différent de 0, 6 si la précision est omit ou 1 si la précision est zéro. Alors, si la conversion avec le style E aurait comme exposant X :

Si P > X = -4, la conversion est avec style f et précision P - (X + 1). Sinon, la conversion est avec le style e et précision P - 1.

G | Comme le spécificateur g mais utilise E et f.
h | Comme le spécificateur g mais utilise F. Disponible à partir de PHP 8.0.0.
H | Comme le spécificateur g mais utilise E et F. Disponible à partir de PHP 8.0.0.
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 décimal 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).

Avertissement

Le spécificateur de type c ignore l'alignement et la taille.

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.

Les variables seront contraints à un type approprié pour le spécificateur :

Gestion des types
Type | Spécificateurs
string | s
int | d, u, c, o, x, X, b
float | e, E, f, F, g, G, h, H

values

Valeurs de retour

Retourne une chaîne formatée à partir du tableau de valeurs values, et en utilisant le format format.

Erreurs / Exceptions

As of PHP 8.0.0, a ValueError is thrown if the number of arguments is zero. Prior to PHP 8.0.0, a E_WARNING was emitted instead.

As of PHP 8.0.0, a ValueError is thrown if [width] is less than zero or bigger than PHP_INT_MAX. Prior to PHP 8.0.0, a E_WARNING was emitted instead.

As of PHP 8.0.0, a ValueError is thrown if [precision] is less than zero or bigger than PHP_INT_MAX. Prior to PHP 8.0.0, a E_WARNING was emitted instead.

As of PHP 8.0.0, a ValueError is thrown when less arguments are given than required. Prior to PHP 8.0.0, false was returned and a E_WARNING emitted instead.

Historique

Version | Description
8.0.0 | Cette fonction ne renvoie plus false en cas d'échec.
8.0.0 | Lance une ValueError si le nombre d'arguments est zéro ; auparavant, cette fonction émettait un E_WARNING.
8.0.0 | Lance une ValueError si [width] est inférieur à zéro ou supérieur à PHP_INT_MAX ; auparavant, cette fonction émettait un E_WARNING.
8.0.0 | Lance une ValueError si [precision] est inférieur à zéro ou supérieur à PHP_INT_MAX ; auparavant, cette fonction émettait un E_WARNING.
8.0.0 | Lance une ArgumentCountError lorsque moins d'arguments sont donnés que requis ; auparavant, cette fonction émettait un E_WARNING.

Exemples

Exemple #1 Exemple avec vsprintf() : entiers avec zéro initiaux

<?php
print vsprintf("%04d-%02d-%02d", explode('-', '1988-8-1'));
?>

L'exemple ci-dessus va afficher :

1988-08-01

Voir aussi

  • printf() - Affiche une chaîne de caractères formatée
  • sprintf() - Retourne une chaîne formatée
  • fprintf() - Écrit une chaîne formatée dans un flux
  • vprintf() - Affiche une chaîne formatée
  • vfprintf() - Écrit une chaîne formatée dans un flux
  • sscanf() - Analyse une chaîne à l'aide d'un format
  • fscanf() - Analyse un fichier en fonction d'un format
  • number_format() - Formate un nombre pour l'affichage
  • date() - Formate un horodatage Unix


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, PHP 8)

wordwrap — Effectue la césure d'une chaîne

Description

wordwrap(
string $string,
int $width = 75,
string $break = "\n",
bool $cut_long_words = false
): string

Effectue la césure d'une chaîne.

Liste de paramètres

string

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_long_words

Si le paramètre cut_long_words 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


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
  • ctype — Vérification des types de caractères
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Fonctions Ctype
  • 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 — The QuickHashIntSet class
    • QuickHashIntHash — The QuickHashIntHash class
    • QuickHashStringIntHash — The QuickHashStringIntHash class
    • QuickHashIntStringHash — The QuickHashIntStringHash class
  • Réflexion
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • Étendre la classe
    • Reflection — La classe Reflection
    • ReflectionClass — The ReflectionClass class
    • ReflectionClassConstant — La classe ReflectionClassConstant
    • ReflectionEnum — La classe ReflectionEnum
    • ReflectionEnumUnitCase — La classe ReflectionEnumUnitCase
    • ReflectionEnumBackedCase — La classe ReflectionEnumBackedCase
    • ReflectionZendExtension — La classe ReflectionZendExtension
    • ReflectionExtension — La classe ReflectionExtension
    • ReflectionFunction — La classe ReflectionFunction
    • ReflectionFunctionAbstract — La classe ReflectionFunctionAbstract
    • ReflectionMethod — La classe ReflectionMethod
    • ReflectionNamedType — La classe ReflectionNamedType
    • ReflectionObject — La classe ReflectionObject
    • ReflectionParameter — La classe ReflectionParameter
    • ReflectionProperty — La classe ReflectionProperty
    • ReflectionType — La classe ReflectionType
    • ReflectionUnionType — The ReflectionUnionType class
    • ReflectionGenerator — La classe ReflectionGenerator
    • ReflectionFiber — The ReflectionFiber class
    • ReflectionIntersectionType — The ReflectionIntersectionType class
    • ReflectionReference — La classe ReflectionReference
    • ReflectionAttribute — La classe ReflectionAttribute
    • 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 les occurrences de chaque valeur distincte dans 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 de rappel
    • 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_is_list — Vérifie si un array donné est une liste
    • array_key_exists — Vérifie si une clé existe dans un tableau
    • array_key_first — Récupère la première clé d'un tableau
    • array_key_last — Récupère la dernière clé d'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 un ou 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 clés, 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 première clé associée à la 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 décroissant et conserve l'association des index
    • asort — Trie un tableau en ordre croissant 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 dans un objet Countable
    • 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 fonction des clés en ordre décroissant
    • ksort — Trie un tableau en fonction des clés en ordre croissant
    • 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 décroissant
    • shuffle — Mélange les éléments d'un tableau
    • sizeof — Alias de count
    • sort — Trie un tableau en ordre croissant
    • 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 (int)
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(). En ce qui concerne PHP 8.2.0, seuls les caractéres ASCII seront convertis.
CASE_UPPER (int)
CASE_UPPER est utilisée avec array_change_key_case() et sert à convertir tous les index d'un tableau en majuscules. En ce qui concerne PHP 8.2.0, seuls les caractéres ASCII seront convertis.

Constantes d'ordre de tri :

SORT_ASC (int)
SORT_ASC est utilisée avec array_multisort() pour trier en ordre ascendant.
SORT_DESC (int)
SORT_DESC est utilisée avec array_multisort() pour trier en ordre descendant.

Autres constantes d'ordre de tri :

SORT_REGULAR (int)
SORT_REGULAR compare normalement les valeurs d'un tri.
SORT_NUMERIC (int)
SORT_NUMERIC compare numériquement les valeurs d'un tri.
SORT_STRING (int)
SORT_STRING compare alphabétiquement les valeurs d'un tri.
SORT_LOCALE_STRING (int)
SORT_LOCALE_STRING est utilisé pour comparer alphabétiquement les valeurs d'un tri, en utilisant la locale courante.
SORT_NATURAL (int)
SORT_NATURAL est utilisé pour comparer les éléments comme des chaînes, en utilisant un "ordre naturel" comme le fait la fonction natsort().
SORT_FLAG_CASE (int)
SORT_FLAG_CASE peut être combiné (avec l'opérateur bit OU) avec SORT_STRING ou SORT_NATURAL pour trier les chaînes en ne tenant pas compte de la casse. En ce qui concerne PHP 8.2.0, seule la conversion ASCII en fonction de la casse sera effectuée.

Drapeaux de filtre :

ARRAY_FILTER_USE_KEY (int)
ARRAY_FILTER_USE_KEY est utilisé avec array_filter() pour passer chaque clé comme premier argument à la fonction de rappel fournie.
ARRAY_FILTER_USE_BOTH (int)
ARRAY_FILTER_USE_BOTH est utilisé avec array_filter() pour passer la valeur et la clé à la fonction de rappel fournie.

COUNT_NORMAL (int)
COUNT_RECURSIVE (int)
EXTR_OVERWRITE (int)
EXTR_SKIP (int)
EXTR_PREFIX_SAME (int)
EXTR_PREFIX_ALL (int)
EXTR_PREFIX_INVALID (int)
EXTR_PREFIX_IF_EXISTS (int)
EXTR_IF_EXISTS (int)
EXTR_REFS (int)


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 définit par l'utilisateur.
  • 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 ils retiennent l'ordre original. Antérieur à PHP 8.0.0, leur ordre était indéfini (le tri n'était 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 | clés string oui, clés int 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(),
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 les occurrences de chaque valeur distincte dans 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 de rappel
  • 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_is_list — Vérifie si un array donné est une liste
  • array_key_exists — Vérifie si une clé existe dans un tableau
  • array_key_first — Récupère la première clé d'un tableau
  • array_key_last — Récupère la dernière clé d'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 un ou 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 clés, 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 première clé associée à la 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 décroissant et conserve l'association des index
  • asort — Trie un tableau en ordre croissant 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 dans un objet Countable
  • 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 fonction des clés en ordre décroissant
  • ksort — Trie un tableau en fonction des clés en ordre croissant
  • 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 décroissant
  • shuffle — Mélange les éléments d'un tableau
  • sizeof — Alias de count
  • sort — Trie un tableau en ordre croissant
  • 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, PHP 8)

array_change_key_case — Change la casse de toutes les clés d'un tableau

Description

array_change_key_case(array $array, int $case = CASE_LOWER): array

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.

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, PHP 8)

array_chunk — Sépare un tableau en tableaux de taille inférieure

Description

array_chunk(array $array, int $length, bool $preserve_keys = false): array

Sépare le tableau array en plusieurs tableaux comptant length éléments. Il est aussi possible que le dernier tableau contienne moins de valeurs.

Liste de paramètres

array

Le tableau à traiter

length

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 length éléments.

Erreurs / Exceptions

Si length est inférieur à 1, une ValueError est lancé.

Historique

Version | Description
8.0.0 | Si length est inférieur à 1, une ValueError est désormais lancé ; auparavant, une erreur de niveau E_WARNING était levé à la place et la fonction retournait null.

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, PHP 8)

array_column — Retourne les valeurs d'une colonne d'un tableau d'entrée

Description

array_column(array $array, int|string|null $column_key, int|string|null $index_key = null): array

array_column() retourne les valeurs d'une colonne de 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 multidimensionnel ou un tableau d'objets à partir duquel on extrait une colonne de valeur. Si un tableau d'objets est fourni, alors les propriétés publiques peuvent être directement extraites. Pour que les propriétés protected ou private soient extraites, la classe doit implémenter les deux méthodes magiques __get() et __isset().

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 ou le nom de la propriété. Il peut aussi valoir null pour retourner le tableau complet ou des objets (ceci peut être 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é. La valeur est cast comme d'habitude pour les clés du tableau (cependant, antérieur à PHP 8.0.0, les objects qui supportent une conversion en chaîne de caractère étaient aussi autorisés).

Valeurs de retour

Retourne un tableau de valeurs représentant une seule colonne depuis le tableau d'entrée.

Historique

Version | Description
8.0.0 | Les objets dans les colonnes indiqué par le paramètre index_key ne seront plus convertie en chaîne de caractères et lanceront désormais une TypeError à la place.

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
)

Exemple #3 Récupère la colonne des username depuis la propriété publique "username" d'un objet

<?php

class User
{
public $username;

public function __construct(string $username)
{
$this->username = $username;
}
}

$users = [
new User('user 1'),
new User('user 2'),
new User('user 3'),
];

print_r(array_column($users, 'username'));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => user 1
    [1] => user 2
    [2] => user 3
)

Exemple #4 Récupère la colonne nom depuis la propriété privée "name" d'un objet en utilisant la méthode magique __get().

<?php

class Person
{
private $name;

public function __construct(string $name)
{
$this->name = $name;
}

public function __get($prop)
{
return $this->$prop;
}

public function __isset($prop) : bool
{
return isset($this->$prop);
}
}

$people = [
new Person('Fred'),
new Person('Jane'),
new Person('John'),
];

print_r(array_column($people, 'name'));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Fred
    [1] => Jane
    [2] => John
)
Si __isset() est non défini, alors un tableau vide sera retourné.


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, PHP 8)

array_combine — Crée un tableau à partir de deux autres tableaux

Description

array_combine(array $keys, array $values): array

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é.

Erreurs / Exceptions

À partir de PHP 8.0.0, lance une erreur de type ValueError si le nombre d'éléments de keys et de values ne correspondent pas. Antérieur à PHP 8.0.0, lançait une alerte de niveau E_WARNING.

Historique

Version | Description
8.0.0 | array_combine() lance désormais une erreur de type ValueError si le nombre d'éléments pour chaque tableau est inégal; auparavant false était retournée à la place.

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
  • array_map() - Applique une fonction sur les éléments d'un tableau


Compte les occurrences de chaque valeur distincte dans un tableau

  • « array_combine
  • array_diff_assoc »
  • PHP Manual
  • Fonctions sur les tableaux
  • Compte les occurrences de chaque valeur distincte dans un tableau

array_count_values

(PHP 4, PHP 5, PHP 7, PHP 8)

array_count_values — Compte les occurrences de chaque valeur distincte dans un tableau

Description

array_count_values(array $array): array

Retourne un tableau contenant les valeurs du tableau array (qui doivent être des entiers ou des chaîne de caractèress) 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 dans un objet Countable
  • 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, PHP 8)

array_diff_assoc — Calcule la différence de deux tableaux, en prenant aussi en compte les clés

Description

array_diff_assoc(array $array, array ...$arrays): array

Compare array avec les tableaux arrays 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

array

Le tableau à comparer

arrays

Tableaux à comparer contre

Valeurs de retour

Retourne un tableau contenant toutes les valeurs du tableau array qui ne sont pas présentes dans les autres tableaux.

Historique

Version | Description
8.0.0 | Cette fonction peut désormais être appelée avec un seul paramètre. Auparavant, au moins deux paramètres étaient nécessaires.

Exemples

Exemple #1 Exemple avec array_diff_assoc()

Dans cet exemple, la paire "a" => "green" 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 => "red" est présente dans le résultat, car la clé de "red" est automatiquement assignée à 0 dans le premier tableau, tandis qu'elle est assignée à 1 dans le deuxième tableau, car la clé 0 est déjà assigné à yellow.

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>

L'exemple ci-dessus va afficher :

Array
(
    [b] => brown
    [c] => blue
    [0] => red
)

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: Cette fonction ne vérifie qu'une dimension d'un tableau multidimensionnel. Il est possible de vérifier des sous dimensions en utilisant, par example, array_diff_assoc($array1[0], $array2[0]);.

Note: Il faut s'assurer que les arguments sont fourni dans le bon ordre lors de la comparaison entre 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, PHP 8)

array_diff_key — Calcule la différence de deux tableaux en utilisant les clés pour comparaison

Description

array_diff_key(array $array, array ...$arrays): array

Compare les clés du tableau array avec les clés des tableaux arrays 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

array

Le tableau à comparer

arrays

Tableaux à comparer contre

Valeurs de retour

Retourne un tableau contenant toutes les entrées du tableau array dont les clés sont absentes dans tous les autres tableaux.

Historique

Version | Description
8.0.0 | Cette fonction peut désormais être appelée avec un seul paramètre. Auparavant, au moins deux paramètres étaient nécessaires.

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, 'yellow' => 7, 'cyan' => 8);

var_dump(array_diff_key($array1, $array2));
?>

L'exemple ci-dessus va afficher :

array(3) {
  ["blue"]=>
  int(1)
  ["red"]=>
  int(2)
  ["purple"]=>
  int(4)
}
<?php
$array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);
$array2 = array('green' => 5, 'yellow' => 7, 'cyan' => 8);
$array3 = array('blue' => 6, 'yellow' => 7, 'mauve' => 8);

var_dump(array_diff_key($array1, $array2, $array3));
?>

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, PHP 8)

array_diff_uassoc — Calcule la différence entre deux tableaux associatifs, à l'aide d'une fonction de rappel

Description

array_diff_uassoc(array $array, array ...$arrays, callable $key_compare_func): array

Compare le tableau array avec les tableaux arrays 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

array

Le tableau à comparer

arrays

Tableaux à comparer contre

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.

callback(mixed $a, mixed $b): int
Attention

Retourner des valeurs non-entières à partir de la fonction de comparaison, telles que float, entraînera une conversion interne de la valeur de retour du rappel en int. Ainsi, des valeurs telles que 0.99 et 0.1 seront toutes deux converties en une valeur entière de 0, ce qui comparera de telles valeurs comme égales.

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, la paire "a" => "green" 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 => "red" est présente dans le résultat, car la clé de "red" est automatiquement assignée à 0 dans le premier tableau, tandis qu'elle est assignée à 1 dans le deuxième tableau, car la clé 0 est déjà assigné à yellow.

<?php
function key_compare_func($a, $b)
{
return $a <=> $b;
}

$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$result = array_diff_uassoc($array1, $array2, "key_compare_func");
print_r($result);
?>

L'exemple ci-dessus va afficher :

Array
(
    [b] => brown
    [c] => blue
    [0] => red
)

L'égalité de deux indices est vérifiée par la fonction utilisateur.

Notes

Note:

Cette fonction ne vérifie qu'une dimension d'un tableau multidimensionnel. Il est possible de vérifier des sous dimensions en utilisant, par example, 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, PHP 8)

array_diff_ukey — Calcule la différence entre deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison

Description

array_diff_ukey(array $array, array ...$arrays, callable $key_compare_func): array

Compare les clés du tableau array avec celles des tableaux arrays 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

array

Le tableau à comparer

arrays

Tableaux à comparer contre

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.

callback(mixed $a, mixed $b): int
Attention

Retourner des valeurs non-entières à partir de la fonction de comparaison, telles que float, entraînera une conversion interne de la valeur de retour du rappel en int. Ainsi, des valeurs telles que 0.99 et 0.1 seront toutes deux converties en une valeur entière de 0, ce qui comparera de telles valeurs comme égales.

Valeurs de retour

Retourne un tableau contenant toutes les entrées du tableau array 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, PHP 8)

array_diff — Calcule la différence entre des tableaux

Description

array_diff(array $array, array ...$arrays): array

array_diff() compare le tableau array avec un ou plusieurs tableaux et retourne les valeurs du tableau array qui ne sont pas présentes dans les autres tableaux.

Liste de paramètres

array

Le tableau depuis lequel comparer

arrays

Tableaux à comparer contre

Valeurs de retour

Retourne un tableau contenant toutes les entités du tableau array qui ne sont présentes dans aucun des autres tableaux. Les clés du tableau array sont préservées.

Historique

Version | Description
8.0.0 | Cette fonction peut désormais être appelée avec un seul paramètre. Auparavant, au moins deux paramètres étaient nécessaires.

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
)

Exemple #2 Exemple avec la fonction array_diff() avec des types qui ne correspondent pas

Deux éléments sont considérés comme égaux si et seulement si (string) $elem1 === (string) $elem2 ; en somme, lorsque la représentation de la chaînes de caractères est la même.

<?php
// Ceci va générer une notice car un tableau ne peut pas être transformé en chaîne de caractères.
$source = [1, 2, 3, 4];
$filter = [3, 4, [5], 6];
$result = array_diff($source, $filter);

// Alors que ceci est bien, depuis que les objets peuvent être transformés en chaîne de caractères.
class S {
private $v;

public function __construct(string $v) {
$this->v = $v;
}

public function __toString() {
return $this->v;
}
}

$source = [new S('a'), new S('b'), new S('c')];
$filter = [new S('b'), new S('c'), new S('d')];

$result = array_diff($source, $filter);

// $result contient désormais une instance de S('a');
?>

Pour utiliser une fonction de comparaison alternative, repportez vous à la fonction array_udiff().

Notes

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_udiff() - Calcule la différence entre deux tableaux en utilisant une fonction rappel
  • 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, PHP 8)

array_fill_keys — Remplit un tableau avec des valeurs, en spécifiant les clés

Description

array_fill_keys(array $keys, mixed $value): array

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, PHP 8)

array_fill — Remplit un tableau avec une même valeur

Description

array_fill(int $start_index, int $count, mixed $value): array

Crée un tableau avec count 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 dans les versions antérieur à PHP 8.0.0?; à partir de PHP 8.0.0, les indices négatifs sont incrémentés normalement. (voir l'exemple).

count

Nombre d'éléments à insérer. Doit être supérieur ou égal à zéro, et inférieur ou égal à 2147483647.

value

Valeur à utiliser pour remplir le tableau

Valeurs de retour

Retourne le tableau rempli.

Erreurs / Exceptions

Lance une exception ValueError si count est en dehors de la plage permise.

Historique

Version | Description
8.0.0 | La fonction array_fill() lance désormais une ValueError si count est en dehors de la plage permise ; auparavant une alerte de niveau E_WARNING était émise, et la fonction retournait false.

Exemples

Exemple #1 Exemple avec array_fill()

<?php
$a = array_fill(5, 6, 'banana');
print_r($a);
?>

L'exemple ci-dessus va afficher :

Array
(
    [5]  => banana
    [6]  => banana
    [7]  => banana
    [8]  => banana
    [9]  => banana
    [10] => banana
)

Exemple #2 Exemple de array_fill() avec un indice de départ négatif

<?php
$a = array_fill(-2, 4, 'pear');
print_r($a);
?>

Résultat de l'exemple ci-dessus en PHP 7 :

Array
(
    [-2] => pear
    [0] => pear
    [1] => pear
    [2] => pear
)

Résultat de l'exemple ci-dessus en PHP 8 :

Array
(
    [-2] => pear
    [-1] => pear
    [0] => pear
    [1] => pear
)

Notez que l'indice -1 n'est pas présent antérieurement à PHP 8.0.0.

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 de rappel

  • « array_fill
  • array_flip »
  • PHP Manual
  • Fonctions sur les tableaux
  • Filtre les éléments d'un tableau grâce à une fonction de rappel

array_filter

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

array_filter — Filtre les éléments d'un tableau grâce à une fonction de rappel

Description

array_filter(array $array, ?callable $callback = null, int $mode = 0): array

Évalue chaque valeur du tableau array en les passant à la fonction de rappel callback. Si la fonction de rappel callback 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, et peut entrainer des anomalies si le tableau array était indexé. Le tableau résultant peut être ré-indexé en utilisant la fonction array_values().

Liste de paramètres

array

Le tableau à parcourir

callback

La fonction de rappel à utiliser

Si aucune fonction de rappel callback n'est fournie, toutes les entrées vides du tableau array seront supprimées. Voir la fonction empty() pour comprendre la façon dont PHP gère le vide dans ce cas.

mode

Drapeau indiquant quels sont les arguments à envoyer à la fonction de rappel callback :

  • ARRAY_FILTER_USE_KEY - passer 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.
Par défaut 0, qui passera la valeur comme seul argument de callback.

Valeurs de retour

Retourne le tableau filtré.

Historique

Version | Description
8.0.0 | callback est désormais nullable.
8.0.0 | Si callback attend un paramètre à être passé par référence, cette fonction émet désormais une E_WARNING.

Exemples

Exemple #1 Exemple avec array_filter()

<?php
function odd($var)
{
// retourne si l'entier en entrée est impair
return $var & 1;
}

function even($var)
{
// retourne si l'entier en entrée est pair
return !($var & 1);
}

$array1 = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
$array2 = [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() callback

<?php

$entry = [
0 => 'foo',
1 => false,
2 => -1,
3 => null,
4 => '',
5 => '0',
6 => 0,
];

print_r(array_filter($entry));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => foo
    [2] => -1
)

Exemple #3 Exemple avec array_filter() et mode

<?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 de rappel (par exemple des éléments sont ajoutés, effacés ou détruit), le comportement de cette fonction est indéfini.

Voir aussi

  • array_intersect() - Calcule l'intersection de tableaux
  • 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, PHP 8)

array_flip — Remplace les clés par les valeurs, et les valeurs par les clés

Description

array_flip(array $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 entier ou des 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é.

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, PHP 8)

array_intersect_assoc — Calcule l'intersection de deux tableaux avec des tests sur les index

Description

array_intersect_assoc(array $array, array ...$arrays): array

array_intersect_assoc() retourne un tableau contenant toutes les valeurs de array qui sont aussi présentes dans tous les autres arguments. Notez que les clés sont aussi utilisées durant la comparaison, contrairement à array_intersect().

Liste de paramètres

array

Le tableau avec les valeurs maîtres à vérifier.

arrays

Tableaux à comparer contre

Valeurs de retour

Retourne un tableau associatif contenant toutes les valeurs du tableau array qui sont présentes dans tous les arguments.

Historique

Version | Description
8.0.0 | Cette fonction peut désormais être appelée avec un seul paramètre. Auparavant, au moins deux paramètres étaient nécessaires.

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, PHP 8)

array_intersect_key — Calcule l'intersection de deux tableaux en utilisant les clés pour comparaison

Description

array_intersect_key(array $array, array ...$arrays): array

array_intersect_key() retourne un tableau contenant toutes les entrées du tableau array qui contiennent des clés présentes dans tous les tableaux passés en arguments.

Liste de paramètres

array

Le tableau contenant les clés maîtresses à vérifier.

arrays

Tableaux à comparer contre

Valeurs de retour

Retourne un tableau associatif contenant toutes les entrées du tableau array dont les clés sont présentes dans tous les arguments.

Historique

Version | Description
8.0.0 | Cette fonction peut désormais être appelée avec un seul paramètre. Auparavant, au moins deux paramètres étaient nécessaires.

Exemples

Exemple #1 Exemple avec array_intersect_key()

<?php
$array1 = array('bleu' => 1, 'rouge' => 2, 'vert' => 3, 'violet' => 4);
$array2 = array('vert' => 5, 'bleu' => 6, 'jaune' => 7, 'cyan' => 8);

var_dump(array_intersect_key($array1, $array2));
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["bleu"]=>
  int(1)
  ["vert"]=>
  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 stricte du type est exécutée, donc la représentation sous forme de chaine doit être exactement la 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, PHP 8)

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_intersect_uassoc(array $array, array ...$arrays, callable $key_compare_func): array

array_intersect_uassoc() retourne un tableau contenant toutes les valeurs du tableau array 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

array

Tableau initial pour la comparaison des autres tableaux.

arrays

Tableaux à comparer contre

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.

callback(mixed $a, mixed $b): int
Attention

Retourner des valeurs non-entières à partir de la fonction de comparaison, telles que float, entraînera une conversion interne de la valeur de retour du rappel en int. Ainsi, des valeurs telles que 0.99 et 0.1 seront toutes deux converties en une valeur entière de 0, ce qui comparera de telles valeurs comme égales.

Valeurs de retour

Retourne les valeurs du tableau array 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, PHP 8)

array_intersect_ukey — Calcule l'intersection de deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison

Description

array_intersect_ukey(array $array, array ...$arrays, callable $key_compare_func): array

array_intersect_ukey() retourne un tableau contenant toutes les valeurs du tableau array qui contiennent des clés présentes dans tous les arguments.

Liste de paramètres

array

Tableau initial pour la comparaison des tableaux.

arrays

Tableaux à comparer contre

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.

callback(mixed $a, mixed $b): int
Attention

Retourner des valeurs non-entières à partir de la fonction de comparaison, telles que float, entraînera une conversion interne de la valeur de retour du rappel en int. Ainsi, des valeurs telles que 0.99 et 0.1 seront toutes deux converties en une valeur entière de 0, ce qui comparera de telles valeurs comme égales.

Valeurs de retour

Retourne les valeurs du tableau array 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 array.

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_is_list »
  • PHP Manual
  • Fonctions sur les tableaux
  • Calcule l'intersection de tableaux

array_intersect

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

array_intersect — Calcule l'intersection de tableaux

Description

array_intersect(array $array, array ...$arrays): array

array_intersect() retourne un tableau contenant toutes les valeurs de array qui sont présentes dans tous les autres arguments. Notez que les clés sont préservées.

Liste de paramètres

array

Le tableau contenant les valeurs maîtres à vérifier.

arrays

Tableaux à comparer contre

Valeurs de retour

Retourne un tableau contenant toutes les valeurs du tableau array dont les valeurs existent dans tous les arguments.

Historique

Version | Description
8.0.0 | Cette fonction peut désormais être appelée avec un seul paramètre. Auparavant, au moins deux paramètres étaient nécessaires.

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 un array donné est une liste

  • « array_intersect
  • array_key_exists »
  • PHP Manual
  • Fonctions sur les tableaux
  • Vérifie si un array donné est une liste

array_is_list

(PHP 8 >= 8.1.0)

array_is_list — Vérifie si un array donné est une liste

Description

array_is_list(array $array): bool

Détermine si l'array donné est une liste. Un tableau est considéré comme une liste si ses clés sont constituées de nombres consécutifs de 0 à count($array)-1.

Liste de paramètres

array

Le tableau en cours d'évaluation.

Valeurs de retour

retourne true si array est une liste, sinon false.

Exemples

Exemple #1 Exemple de array_is_list()

<?php

array_is_list([]); // true
array_is_list(['apple', 2, 3]); // true
array_is_list([0 => 'apple', 'orange']); // true

// Le tableau ne commence pas à 0
array_is_list([1 => 'apple', 'orange']); // false

// Les clés ne sont pas dans le bon ordre
array_is_list([1 => 'apple', 0 => 'orange']); // false

// Clés non entières
array_is_list([0 => 'apple', 'foo' => 'bar']); // false

// Clés non consécutives
array_is_list([0 => 'apple', 2 => 'bar']); // false
?>

Notes

Note:

Cette fonction retourne true pour les tableaux vides.

Voir aussi

  • array_values() - Retourne toutes les valeurs d'un tableau


Vérifie si une clé existe dans un tableau

  • « array_is_list
  • array_key_first »
  • 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, PHP 8)

array_key_exists — Vérifie si une clé existe dans un tableau

Description

array_key_exists(string|int|float|bool|resource|null $key, array $array): bool

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.

Note:

array_key_exists() va rechercher, uniquement, dans les clés de la première dimension. Les clés imbriquées dans les tableaux multidimensionnels ne seront pas trouvées

Historique

Version | Description
8.0.0 | Le paramètre key accepte désormais les arguments de type bool, float, int, null, resource, et string.

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 key est une propriété définie dans un object, fourni comme paramètre array. Ce comportement est obsolète à partir de PHP 7.4.0, et a été retiré à partir de PHP 8.0.0.

Pour vérifier si une propriété existe dans un objet, property_exists() devrait être utilisé.

Voir aussi

  • isset() - Détermine si une variable est déclarée 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é


Récupère la première clé d'un tableau

  • « array_key_exists
  • array_key_last »
  • PHP Manual
  • Fonctions sur les tableaux
  • Récupère la première clé d'un tableau

array_key_first

(PHP 7 >= 7.3.0, PHP 8)

array_key_first — Récupère la première clé d'un tableau

Description

array_key_first(array $array): int|string|null

Récupère la première clé du tableau array donné sans affecter le pointeur interne du tableau.

Liste de paramètres

array

Un tableau.

Valeurs de retour

Retourne la première clé de array si le tableau n'est pas vide ; null sinon.

Exemples

Exemple #1 Usage simple de array_key_first()

<?php
$array = ['a' => 1, 'b' => 2, 'c' => 3];

$firstKey = array_key_first($array);

var_dump($firstKey);
?>

L'exemple ci-dessus va afficher :

string(1) "a"

Notes

Astuce

Il y a plusieurs façon de fournir cette fonctionnalité pour les versions antérieur à PHP 7.3.0. Il est possible d'utiliser array_keys(), mais ceci est plutôt inefficace. Il est aussi possible d'utiliser reset() et key(), mais ceci peut changer le pointeur interne du tableau. Une solution efficace, qui ne modifie pas le pointeur interne du tableau, écrit comme un polyfill :

<?php
if (!function_exists('array_key_first')) {
function array_key_first(array $arr) {
foreach($arr as $key => $unused) {
return $key;
}
return NULL;
}
}
?>

Voir aussi

  • array_key_last() - Récupère la dernière clé d'un tableau
  • reset() - Remet le pointeur interne de tableau au début


Récupère la dernière clé d'un tableau

  • « array_key_first
  • array_keys »
  • PHP Manual
  • Fonctions sur les tableaux
  • Récupère la dernière clé d'un tableau

array_key_last

(PHP 7 >= 7.3.0, PHP 8)

array_key_last — Récupère la dernière clé d'un tableau

Description

array_key_last(array $array): int|string|null

Récupère la dernière clé du tableau array donné sans affecter le pointeur interne du tableau.

Liste de paramètres

array

Un tableau.

Valeurs de retour

Retourne la dernière clé de array si le tableau n'est pas vide ; null sinon.

Voir aussi

  • array_key_first() - Récupère la première clé d'un tableau
  • end() - Positionne le pointeur de tableau en fin de tableau


Retourne toutes les clés ou un ensemble des clés d'un tableau

  • « array_key_last
  • 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, PHP 8)

array_keys — Retourne toutes les clés ou un ensemble des clés d'un tableau

Description

array_keys(array $array): array
array_keys(array $array, mixed $filter_value, bool $strict = false): array

array_keys() retourne les clés numériques et littérales du tableau array.

Si une valeur de recherche filter_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.

filter_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_combine() - Crée un tableau à partir de deux autres tableaux
  • array_key_exists() - Vérifie si une clé existe dans un tableau
  • array_search() - Recherche dans un tableau la première clé associée à la 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, PHP 8)

array_map — Applique une fonction sur les éléments d'un tableau

Description

array_map(?callable $callback, array $array, array ...$arrays): array

array_map() retourne un tableau contenant les résultats de l'application de la fonction de rappel callback à la valeur correspondante de array (et arrays si plus de tableaux sont fournis) utilisé en tant qu'arguments pour la fonction de rappel. Le nombre de paramètres que la fonction de rappel callback accepte devrait correspondre au nombre de tableaux passés à array_map(). Les tableaux d'entrées en surplus sont ignorés. Une ArgumentCountError est lancée si un nombre insuffisant d'arguments est fourni.

Liste de paramètres

callback

La fonction de rappel de type callable à exécuter pour chaque élément de chaque tableau.

null peut être passé comme valeur à callback pour exécuter une opération zip sur plusieurs tableaux. Si seulement array est fourni, array_map() retournera le tableau d'entrée.

array

Un tableau à exécuter via la fonction de rappel callback.

arrays

Liste variable d'arguments tableaux supplémentaires à exécuter via la fonction de rappel callback.

Valeurs de retour

Retourne un tableau contenant les résultats de l'application de la fonction de rappel callback à la valeur correspondant de array (et arrays si plus de tableaux sont fourni) utilisé en tant qu'arguments pour la fonction de rappel.

Le tableau retourné conservera les clés du tableau passé en argument, si et seulement si, un seul tableau est passé. Si plusieurs tableaux sont passés comme argument, le tableau retourné aura des clés séquentielles sous la forme d'entier.

Historique

Version | Description
8.0.0 | Si callback attend un paramètre à être passé par référence, cette fonction émet désormais une E_WARNING.

Exemples

Exemple #1 Exemple avec array_map()

<?php
function cube($n)
{
return ($n * $n * $n);
}

$a = [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() utilisant une fonction quelconque

<?php

$func = function(int $value): int {
return $value * 2;
};

print_r(array_map($func, range(1, 5)));

// Ou à partir de PHP 7.4.0 :

print_r(array_map(fn($value): int => $value * 2, 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(int $n, string $m): string
{
return "Le nombre {$n} se dit {$m} en Espagnol";
}

function map_Spanish(int $n, string $m): array
{
return [$n => $m];
}

$a = [1, 2, 3, 4, 5];
$b = ['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 Exécution d'une opération zip de tableaux

<?php
$a = [1, 2, 3, 4, 5];
$b = ['one', 'two', 'three', 'four', 'five'];
$c = ['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
        )

)

Exemple #5 null callback avec seulement array

<?php
$array = [1, 2, 3];
var_dump(array_map(null, $array));
?>

L'exemple ci-dessus va afficher :

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}

Exemple #6 array_map() - avec des clés sous la forme de chaîne de caractères

<?php
$arr = ['stringkey' => 'value'];
function cb1($a) {
return [$a];
}
function cb2($a, $b) {
return [$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"
  }
}

Exemple #7 array_map() - tableaux associatifs

Même si array_map() ne supporte pas directement l'utilisation des clés d'un tableau comme entrée, ceci peut être simulé en utilisant array_keys().

<?php
$arr = [
'v1' => 'First release',
'v2' => 'Second release',
'v3' => 'Third release',
];
// Note: Antérieur à 7.4.0, il faut utiliser la syntaxe plus longue pour les
// fonctions anonymes à la place.
$callback = fn(string $k, string $v): string => "$k was the $v";
$result = array_map($callback, array_keys($arr), array_values($arr));
var_dump($result);
?>

L'exemple ci-dessus va afficher :

array(3) {
  [0]=>
  string(24) "v1 was the First release"
  [1]=>
  string(25) "v2 was the Second release"
  [2]=>
  string(24) "v3 was the Third release"
}

Voir aussi

  • array_filter() - Filtre les éléments d'un tableau grâce à une fonction de rappel
  • 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


Combine un ou plusieurs tableaux ensemble, récursivement

  • « array_map
  • array_merge »
  • PHP Manual
  • Fonctions sur les tableaux
  • Combine un ou plusieurs tableaux ensemble, récursivement

array_merge_recursive

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

array_merge_recursive — Combine un ou plusieurs tableaux ensemble, récursivement

Description

array_merge_recursive(array ...$arrays): 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

arrays

Liste variable de tableaux à rassembler récursivement.

Valeurs de retour

Un tableau de valeurs résultantes de la fusion des arguments. Si appellé sans arguments, retourne un tableau vide.

Historique

Version | Description
7.4.0 | Cette fonction peut désormais être appelée sans paramètres. Auparavant, au moins un paramètre était requis.

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, PHP 8)

array_merge — Fusionne plusieurs tableaux en un seul

Description

array_merge(array ...$arrays): 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 fusionné.

Liste de paramètres

arrays

Liste de tableaux variable à fusionner.

Valeurs de retour

Retourne le tableau résultant. Si appellé sans arguments, retourne un tableau vide.

Historique

Version | Description
7.4.0 | Cette fonction peut désormais être appelée sans paramètres. Auparavant, au moins un paramètre était requis.

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 un ou 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, PHP 8)

array_multisort — Trie les tableaux multidimensionnels

Description

array_multisort(
array &$array1,
mixed $array1_sort_order = SORT_ASC,
mixed $array1_sort_flags = SORT_REGULAR,
mixed ...$rest
): bool

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.

Note:

Si deux membres se comparent comme égaux, ils maintiennent leur ordre original. Antérieur à PHP 8.0.0, leur ordre relatif dans le tableau trié n'est pas défini.

Note:

Réinitialise le pointeur interne du tableau au premier élément.

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.

rest

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.

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 mysqli_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'];
}

// vous pouvez utiliser array_column() au lieu du code ci-dessus
$volume = array_column($data, 'volume');
$edition = array_column($data, '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, PHP 8)

array_pad — Complète un tableau avec une valeur jusqu'à la longueur spécifiée

Description

array_pad(array $array, int $length, mixed $value): array

array_pad() retourne une copie du tableau array complétée jusqu'à la taille de length avec la valeur value. Si length est positif, alors le tableau est complété à droite, s'il est négatif, il est complété à gauche. Si la valeur absolue de length est plus petite que la taille du tableau array, alors le tableau n'est pas complété.

Liste de paramètres

array

Tableau initial de valeurs à compléter.

length

Nouvelle taille du tableau.

value

Valeur à insérer si l'argument array est plus petit que l'argument length.

Valeurs de retour

Retourne une copie du tableau array complétée jusqu'à la taille de length avec la valeur value. Si length est positif, alors le tableau est complété à droite, s'il est négatif, il est complété à gauche. Si la valeur absolue de length est plus petite que la taille du tableau array, alors le tableau n'est pas complété.

Historique

Version | Description
8.3.0 | Avant la version 8.3, seuls 1048576 éléments pouvaient être ajoutés en une seule fois. Maintenant, cela est limité uniquement par la taille maximale d'un tableau.

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, PHP 8)

array_pop — Dépile un élément de la fin d'un tableau

Description

array_pop(array &$array): mixed

array_pop() dépile et retourne la valeur du 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 valeur du dernier élément du tableau array. Si array est vide, null sera retourné.

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, PHP 8)

array_product — Calcule le produit des valeurs du tableau

Description

array_product(array $array): int|float

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
8.3.0 | Émet désormais un E_WARNING lorsque les valeurs de type array ne peuvent pas être converties en entier ou nombre décimal. Auparavant, les tableaux et les objets étaient ignorés tandis que toutes les autres valeurs étaient converties en entier. De plus, les objets définissant une conversion numérique (par exemple, GMP) sont désormais convertis au lieu d'être ignorés.

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, PHP 8)

array_push — Empile un ou plusieurs éléments à la fin d'un tableau

Description

array_push(array &$array, mixed ...$values): int

array_push() considère array comme une pile, et empile les variables values à 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 préférable 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 était créé, antérieurement à PHP 7.1.0.

Liste de paramètres

array

Le tableau d'entrée.

values

La valeur à insérer à la fin du tableau array.

Valeurs de retour

Retourne le nouveau nombre d'éléments dans le tableau.

Historique

Version | Description
7.3.0 | Cette fonction peut désormais être appelée avec un seul paramètre. Auparavant, au moins deux paramètres étaient requis.

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 clés, au hasard dans un tableau

  • « array_push
  • array_reduce »
  • PHP Manual
  • Fonctions sur les tableaux
  • Prend une ou plusieurs clés, au hasard dans un tableau

array_rand

(PHP 4, PHP 5, PHP 7, PHP 8)

array_rand — Prend une ou plusieurs clés, au hasard dans un tableau

Description

array_rand(array $array, int $num = 1): int|string|array

Sélectionne une ou plusieurs valeurs au hasard dans un tableau et retourne la ou les clés de ces valeurs.

Attention

Cette fonction ne génère pas de valeurs cryptographiquement sûres, et ne doit pas être utilisée à des fins cryptographiques, ou à des fins qui exigent que les valeurs renvoyées soient indéchiffrables.

Si de l'aléatoire cryptographiquement sûre est requis, le Random\Randomizer peut être utilisé avec le moteur Random\Engine\Secure. Pour des cas d'usage simple, les fonctions random_int() et random_bytes() fournissent une API pratique et sûre qui est qui est soutenu par le CSPRNG du système d'exploitation.

Liste de paramètres

array

Le tableau d'entrée. Ne peut pas être vide.

num

Spécifie le nombre d'entrées que vous voulez récupérer. Doit être supérieur à zéro et inférieur ou égal à la longueur de array.

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. Si plusieurs clés sont retournées, alors elles le seront dans l'ordre qu'elles étaient dans le tableau d'origine.

Erreurs / Exceptions

Lance une ValueError si array est vide, ou si num est hors de portée.

Historique

Version | Description
8.0.0 | array_rand() lance désormais une ValueError si num est hors de portée ; précédemment, un E_WARNING était généré et la fonction renvoyait null.
8.0.0 | array_rand() lance désormais une ValueError si array est vide ; précédemment, un E_WARNING était généré et la fonction renvoyait null.
7.1.0 | L'algorithme interne de génération aléatoire a été modifié pour utiliser le générateur aleatoire de nombre » Mersenne Twister au lieu de la fonction aléatoire libc

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

  • Random\Randomizer::pickArrayKeys() - Select random array keys
  • Random\Randomizer::shuffleArray() - Get a permutation of an array


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, PHP 8)

array_reduce — Réduit itérativement un tableau

Description

array_reduce(array $array, callable $callback, mixed $initial = null): mixed

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
callback(mixed $carry, mixed $item): mixed
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
8.0.0 | Si callback attend un paramètre à être passé par référence, cette fonction émet désormais une E_WARNING.

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 de rappel
  • array_map() - Applique une fonction sur les éléments d'un tableau
  • array_unique() - Dédoublonne un tableau
  • array_count_values() - Compte les occurrences de chaque valeur distincte dans 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, PHP 8)

array_replace_recursive — Remplace récursivement dans le premier tableau les éléments des autres tableaux fournis

Description

array_replace_recursive(array $array, array ...$replacements): array

array_replace_recursive() remplace les valeurs du tableau array 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 le premier tableau est scalaire, elle sera remplacée par la valeur du second tableau, que ce soit un scalaire ou un tableau. Si la valeur du premier et second tableau sont toutes les deux des tableaux, array_replace_recursive() remplacera les valeurs récursivement.

Liste de paramètres

array

Le tableau dans lequel les éléments sont remplacés.

replacements

Tableaux depuis lesquels les éléments peuvent être extraits.

Valeurs de retour

Retourne un tableau.

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 un ou 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, PHP 8)

array_replace — Remplace les éléments d'un tableau par ceux d'autres tableaux

Description

array_replace(array $array, array ...$replacements): array

array_replace() remplace les valeurs du tableau array 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

array

Le tableau dans lequel les éléments sont remplacés.

replacements

Tableaux depuis lesquels les éléments seront extraits. Les valeurs des futurs tableaux écraseront les valeurs précédentes.

Valeurs de retour

Retourne un tableau.

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, PHP 8)

array_reverse — Inverse l'ordre des éléments d'un tableau

Description

array_reverse(array $array, bool $preserve_keys = false): array

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 première clé associée à la valeur

  • « array_reverse
  • array_shift »
  • PHP Manual
  • Fonctions sur les tableaux
  • Recherche dans un tableau la première clé associée à la valeur

array_search

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

array_search — Recherche dans un tableau la première clé associée à la valeur

Description

array_search(mixed $needle, array $haystack, bool $strict = false): int|string|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 va effectuer une comparaison stricte du type de needle 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 filter_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.

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, PHP 8)

array_shift — Dépile un élément au début d'un tableau

Description

array_shift(array &$array): mixed

array_shift() extrait la première valeur du tableau array et la retourne, en raccourcissant array 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 pendant que les clés litérales ne seront pas affectées.

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, PHP 8)

array_slice — Extrait une portion de tableau

Description

array_slice(
array $array,
int $offset,
?int $length = null,
bool $preserve_keys = false
): array

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équence commencera à cette position dans le tableau array.

Si offset est négatif, la séquence commencera à la position offset, mais en commençant à la fin du tableau array.

Note:

Le paramètre offset indique la position dans le tableau, pas la clé.

length

Si length est fourni et positif, alors la séquence aura jusqu'à autant d'éléments.

Si le tableau plus court que length, alors seuls les éléments du tableau disponible seront présents.

Si length est fourni et négatif, alors la séquence exclura autant d'éléments de la fin du tableau.

Si il est omis, la séquence aura tout depuis la position offset jusqu'à la fin de array.

preserve_keys

Note:

Par défaut array_slice() réordonnera et réinitialisera les indices entier du tableau. Ce comportement peut être modifié en définissant le paramètre preserve_keys à true. Les clés sous forme de chaîne de caractères sont toujours conservées, indépendamment de ce paramètre.

Valeurs de retour

Retourne la portion du tableau. Si la position est plus grande que la taille du tableau, un tableau vide est retourné.

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
)

Exemple #2 array_slice() et basé sur un tableau

<?php
$input = array(1 => "a", "b", "c", "d", "e");
print_r(array_slice($input, 1, 2));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => b
    [1] => c
)

Exemple #3 array_slice() et tableau avec des clés mixtes

<?php
$ar = array('a'=>'apple', 'b'=>'banana', '42'=>'pear', 'd'=>'orange');
print_r(array_slice($ar, 0, 3));
print_r(array_slice($ar, 0, 3, true));
?>

L'exemple ci-dessus va afficher :

Array
(
    [a] => apple
    [b] => banana
    [0] => pear
)
Array
(
    [a] => apple
    [b] => banana
    [42] => pear
)

Voir aussi

  • array_chunk() - Sépare un tableau en tableaux de taille inférieure
  • array_splice() - Efface et remplace une portion de tableau
  • unset() - Détruit une variable


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, PHP 8)

array_splice — Efface et remplace une portion de tableau

Description

array_splice(
array &$array,
int $offset,
?int $length = null,
mixed $replacement = []
): array

array_splice() supprime les éléments désignés par offset et length du tableau array et les remplacent par les éléments du tableau replacement, si ce dernier est fourni.

Note:

Les clés numériques dans array 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 produire des résultats inattendus lors de l'utilisation d'un objet ou null comme paramètre replacement.

Liste de paramètres

array

Le tableau d'entrée.

offset

Si offset est positif, le début de la section à supprimer sera à cette position en partant du début du tableau array.

Si offset est négatif, le début de la section à supprimer sera à cette position en partant de la fin du tableau array.

length

Si length est omis, tous les éléments du tableau depuis la position offset jusqu'à la fin du tableau seront supprimés.

Si length est fourni et positif, alors autant d'éléments seront supprimés.

Si length est fourni et négatif, alors autant d'éléments seront supprimés de la fin du tableau.

Si length est fourni et vaut zéro, alors aucun élément sera supprimé.

Astuce

Pour tout supprimer depuis la position offset jusqu'à la fin du tableau lorsque replacement est aussi fourni, utiliser count($input) pour length.

replacement

Si le tableau replacement est fourni, alors les éléments supprimés sont remplacés par les éléments de ce tableau.

Si l'offset et length sont tels que rien est supprimé, alors les éléments du tableau replacement sont insérés à la position offset.

Note:

Les clés du tableau replacement ne sont pas préservées.

Si replacement est seulement un élément il n'est pas nécessaire d'entourer l'élément avec array() ou des crochets, à moins que l'élément ne soit lui-même un tableau, un objet ou null.

Valeurs de retour

Retourne un tableau contenant les éléments extrait.

Historique

Version | Description
8.0.0 | length est désormais nullable.

Exemples

Exemple #1 Exemples avec array_splice()

<?php
$input = array("red", "green", "blue", "yellow");
array_splice($input, 2);
var_dump($input);

$input = array("red", "green", "blue", "yellow");
array_splice($input, 1, -1);
var_dump($input);

$input = array("red", "green", "blue", "yellow");
array_splice($input, 1, count($input), "orange");
var_dump($input);

$input = array("red", "green", "blue", "yellow");
array_splice($input, -1, 1, array("black", "maroon"));
var_dump($input);
?>

L'exemple ci-dessus va afficher :

array(2) {
  [0]=>
  string(3) "red"
  [1]=>
  string(5) "green"
}
array(2) {
  [0]=>
  string(3) "red"
  [1]=>
  string(6) "yellow"
}
array(2) {
  [0]=>
  string(3) "red"
  [1]=>
  string(6) "orange"
}
array(5) {
  [0]=>
  string(3) "red"
  [1]=>
  string(5) "green"
  [2]=>
  string(4) "blue"
  [3]=>
  string(5) "black"
  [4]=>
  string(6) "maroon"
}

Exemple #2 Déclaration équivalentes à des exemples de array_splice() divers

Les déclarations suivantes sont équivalentes :

<?php

// ajouter deux éléments à $input
array_push($input, $x, $y);
array_splice($input, count($input), 0, array($x, $y));

// supprimer le dernier élément à $input
array_pop($input);
array_splice($input, -1);

// supprimer le premier élément à $input
array_shift($input);
array_splice($input, 0, 1);

//insérer deux éléments au début de $input
array_unshift($input, $x, $y);
array_splice($input, 0, 0, array($x, $y));

// remplace la valeur dans $input à l'index $x
$input[$x] = $y; // pour les tableaux dont les clés sont égales à l'offset
array_splice($input, $x, 1, $y);

?>

Voir aussi

  • array_merge() - Fusionne plusieurs tableaux en un seul
  • array_slice() - Extrait une portion de tableau
  • unset() - Détruit une variable


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, PHP 8)

array_sum — Calcule la somme des valeurs du tableau

Description

array_sum(array $array): int|float

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 0 si le array est vide.

Historique

Version | Description
8.3.0 | Émet désormais un E_WARNING lorsque les valeurs de type array ne peuvent pas être converties en entier ou nombre décimal. Auparavant, les tableaux et les objets étaient ignorés tandis que toutes les autres valeurs étaient converties en entier. De plus, les objets définissant une conversion numérique (par exemple, GMP) sont désormais convertis au lieu d'être ignorés.

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, PHP 8)

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_udiff_assoc(array $array, array ...$arrays, callable $value_compare_func): array

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

array

Le premier tableau.

arrays

Tableaux à comparer contre

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.

callback(mixed $a, mixed $b): int
Attention

Retourner des valeurs non-entières à partir de la fonction de comparaison, telles que float, entraînera une conversion interne de la valeur de retour du rappel en int. Ainsi, des valeurs telles que 0.99 et 0.1 seront toutes deux converties en une valeur entière de 0, ce qui comparera de telles valeurs comme égales.

Attention

La fonction de rappel de tri doit traiter n'importe quelle valeur de n'importe quel tableau dans n'importe quel ordre, quel que soit l'ordre dans lequel elles ont été initialement fournies. Cela s'explique par le fait que chaque tableau individuel est d'abord trié avant d'être comparé aux autres tableaux. Par exemple :

<?php
$arrayA = ["chaîne", 1];
$arrayB = [["value" => 1]];
// $item1 et $item2 peuvent être l'une des valeurs suivantes : "chaîne", 1 ou ["value" => 1]
$compareFunc = static function ($item1, $item2) {
$value1 = is_string($item1) ? strlen($item1) : (is_array($item1) ? $item1["value"] : $item1);
$value2 = is_string($item2) ? strlen($item2) : (is_array($item2) ? $item2["value"] : $item2);
return $value1 <=> $value2;
};
?>

Valeurs de retour

array_udiff_assoc() retourne un tableau contenant toutes les valeurs de array qui ne sont présentes dans aucun des autre arguments. 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 __construct($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, PHP 8)

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_udiff_uassoc(
array $array,
array ...$arrays,
callable $value_compare_func,
callable $key_compare_func
): array

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

array

Le premier tableau.

arrays

Tableaux à comparer contre

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.

callback(mixed $a, mixed $b): int
Attention

Retourner des valeurs non-entières à partir de la fonction de comparaison, telles que float, entraînera une conversion interne de la valeur de retour du rappel en int. Ainsi, des valeurs telles que 0.99 et 0.1 seront toutes deux converties en une valeur entière de 0, ce qui comparera de telles valeurs comme égales.

Attention

La fonction de rappel de tri doit traiter n'importe quelle valeur de n'importe quel tableau dans n'importe quel ordre, quel que soit l'ordre dans lequel elles ont été initialement fournies. Cela s'explique par le fait que chaque tableau individuel est d'abord trié avant d'être comparé aux autres tableaux. Par exemple :

<?php
$arrayA = ["chaîne", 1];
$arrayB = [["value" => 1]];
// $item1 et $item2 peuvent être l'une des valeurs suivantes : "chaîne", 1 ou ["value" => 1]
$compareFunc = static function ($item1, $item2) {
$value1 = is_string($item1) ? strlen($item1) : (is_array($item1) ? $item1["value"] : $item1);
$value2 = is_string($item2) ? strlen($item2) : (is_array($item2) ? $item2["value"] : $item2);
return $value1 <=> $value2;
};
?>

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 array 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 __construct($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, PHP 8)

array_udiff — Calcule la différence entre deux tableaux en utilisant une fonction rappel

Description

array_udiff(array $array, array ...$arrays, callable $value_compare_func): array

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

array

Le premier tableau.

arrays

Tableaux à comparer contre

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.

callback(mixed $a, mixed $b): int
Attention

Retourner des valeurs non-entières à partir de la fonction de comparaison, telles que float, entraînera une conversion interne de la valeur de retour du rappel en int. Ainsi, des valeurs telles que 0.99 et 0.1 seront toutes deux converties en une valeur entière de 0, ce qui comparera de telles valeurs comme égales.

Attention

La fonction de rappel de tri doit traiter n'importe quelle valeur de n'importe quel tableau dans n'importe quel ordre, quel que soit l'ordre dans lequel elles ont été initialement fournies. Cela s'explique par le fait que chaque tableau individuel est d'abord trié avant d'être comparé aux autres tableaux. Par exemple :

<?php
$arrayA = ["chaîne", 1];
$arrayB = [["value" => 1]];
// $item1 et $item2 peuvent être l'une des valeurs suivantes : "chaîne", 1 ou ["value" => 1]
$compareFunc = static function ($item1, $item2) {
$value1 = is_string($item1) ? strlen($item1) : (is_array($item1) ? $item1["value"] : $item1);
$value2 = is_string($item2) ? strlen($item2) : (is_array($item2) ? $item2["value"] : $item2);
return $value1 <=> $value2;
};
?>

Valeurs de retour

Retourne un tableau contenant toutes les valeurs du tableau array 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, PHP 8)

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_uintersect_assoc(array $array, array ...$arrays, callable $value_compare_func): array

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

array

Le premier tableau.

arrays

Tableaux à comparer contre

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.

callback(mixed $a, mixed $b): int
Attention

Retourner des valeurs non-entières à partir de la fonction de comparaison, telles que float, entraînera une conversion interne de la valeur de retour du rappel en int. Ainsi, des valeurs telles que 0.99 et 0.1 seront toutes deux converties en une valeur entière de 0, ce qui comparera de telles valeurs comme égales.

Attention

La fonction de rappel de tri doit traiter n'importe quelle valeur de n'importe quel tableau dans n'importe quel ordre, quel que soit l'ordre dans lequel elles ont été initialement fournies. Cela s'explique par le fait que chaque tableau individuel est d'abord trié avant d'être comparé aux autres tableaux. Par exemple :

<?php
$arrayA = ["chaîne", 1];
$arrayB = [["value" => 1]];
// $item1 et $item2 peuvent être l'une des valeurs suivantes : "chaîne", 1 ou ["value" => 1]
$compareFunc = static function ($item1, $item2) {
$value1 = is_string($item1) ? strlen($item1) : (is_array($item1) ? $item1["value"] : $item1);
$value2 = is_string($item2) ? strlen($item2) : (is_array($item2) ? $item2["value"] : $item2);
return $value1 <=> $value2;
};
?>

Valeurs de retour

Retourne un tableau contenant toutes les valeurs du tableau array 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, PHP 8)

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_uintersect_uassoc(
array $array1,
array ...$arrays,
callable $value_compare_func,
callable $key_compare_func
): array

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.

arrays

Tableaux supplémentaires

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.

callback(mixed $a, mixed $b): int
Attention

Retourner des valeurs non-entières à partir de la fonction de comparaison, telles que float, entraînera une conversion interne de la valeur de retour du rappel en int. Ainsi, des valeurs telles que 0.99 et 0.1 seront toutes deux converties en une valeur entière de 0, ce qui comparera de telles valeurs comme égales.

Attention

La fonction de rappel de tri doit traiter n'importe quelle valeur de n'importe quel tableau dans n'importe quel ordre, quel que soit l'ordre dans lequel elles ont été initialement fournies. Cela s'explique par le fait que chaque tableau individuel est d'abord trié avant d'être comparé aux autres tableaux. Par exemple :

<?php
$arrayA = ["chaîne", 1];
$arrayB = [["value" => 1]];
// $item1 et $item2 peuvent être l'une des valeurs suivantes : "chaîne", 1 ou ["value" => 1]
$compareFunc = static function ($item1, $item2) {
$value1 = is_string($item1) ? strlen($item1) : (is_array($item1) ? $item1["value"] : $item1);
$value2 = is_string($item2) ? strlen($item2) : (is_array($item2) ? $item2["value"] : $item2);
return $value1 <=> $value2;
};
?>

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 array 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, PHP 8)

array_uintersect — Calcule l'intersection de deux tableaux, compare les données en utilisant une fonction de rappel

Description

array_uintersect(array $array, array ...$arrays, callable $value_compare_func): array

Calcule l'intersection de deux tableaux, compare les données en utilisant une fonction de rappel.

Liste de paramètres

array

Le premier tableau.

arrays

Tableaux à comparer contre

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.

callback(mixed $a, mixed $b): int
Attention

Retourner des valeurs non-entières à partir de la fonction de comparaison, telles que float, entraînera une conversion interne de la valeur de retour du rappel en int. Ainsi, des valeurs telles que 0.99 et 0.1 seront toutes deux converties en une valeur entière de 0, ce qui comparera de telles valeurs comme égales.

Attention

La fonction de rappel de tri doit traiter n'importe quelle valeur de n'importe quel tableau dans n'importe quel ordre, quel que soit l'ordre dans lequel elles ont été initialement fournies. Cela s'explique par le fait que chaque tableau individuel est d'abord trié avant d'être comparé aux autres tableaux. Par exemple :

<?php
$arrayA = ["chaîne", 1];
$arrayB = [["value" => 1]];
// $item1 et $item2 peuvent être l'une des valeurs suivantes : "chaîne", 1 ou ["value" => 1]
$compareFunc = static function ($item1, $item2) {
$value1 = is_string($item1) ? strlen($item1) : (is_array($item1) ? $item1["value"] : $item1);
$value2 = is_string($item2) ? strlen($item2) : (is_array($item2) ? $item2["value"] : $item2);
return $value1 <=> $value2;
};
?>

Valeurs de retour

Retourne un tableau contenant toutes les valeurs du tableau array 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, PHP 8)

array_unique — Dédoublonne un tableau

Description

array_unique(array $array, int $flags = SORT_STRING): array

array_unique() extrait du tableau array les valeurs distinctes, et supprime tous les doublons.

Notez que les clés sont préservées. Si plusieurs éléments comparés sont égaux sous le flags donné, alors la clé et la valeur du premier élément égal sera conservé.

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.

flags

Le second paramètre optionnel flags peut être utilisé pour modifier le comportement de comparaison en utilisant les valeurs suivantes :

Drapeau de type de comparaison :

  • 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
7.2.0 | Si flags est SORT_STRING, précédemment array était copié et les éléments non-unique était supprimé (sans compresser le tableau après), mais maintenant un nouveau tableau est construit en ajoutant les éléments unique. Par conséquence le résultat final peut avoir des index numérique différent.

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"
}

Notes

Note: Notez que array_unique() ne fonctionne pas avec des tableaux multidimensionnels.

Voir aussi

  • array_count_values() - Compte les occurrences de chaque valeur distincte dans un tableau


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, PHP 8)

array_unshift — Empile un ou plusieurs éléments au début d'un tableau

Description

array_unshift(array &$array, mixed ...$values): int

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.

Note:

Réinitialise le pointeur interne du tableau au premier élément.

Liste de paramètres

array

Le tableau d'entrée.

values

Valeur à empiler.

Valeurs de retour

Retourne le nouveau nombre d'éléments du tableau array.

Historique

Version | Description
7.3.0 | Cette fonction peut désormais être appelée avec un seul paramètre. Auparavant, au moins deux paramètres étaient requis.

Exemples

Exemple #1 Exemple avec array_unshift()

<?php
$queue = [
"orange",
"banana"
];

array_unshift($queue, "apple", "raspberry");
var_dump($queue);
?>

L'exemple ci-dessus va afficher :

array(4) {
  [0] =>
  string(5) "apple"
  [1] =>
  string(9) "raspberry"
  [2] =>
  string(6) "orange"
  [3] =>
  string(6) "banana"
}

Exemple #2 Utilisation avec des tableaux associatifs

Si un tableau associatif est ajouté en préfixe à un autre tableau associatif, le tableau ajouté est indexé numériquement dans le tableau précédent

<?php
$foods = [
'apples' => [
'McIntosh' => 'red',
'Granny Smith' => 'green',
],
'oranges' => [
'Navel' => 'orange',
'Valencia' => 'orange',
],
];
$vegetables = [
'lettuce' => [
'Iceberg' => 'green',
'Butterhead' => 'green',
],
'carrots' => [
'Deep Purple Hybrid' => 'purple',
'Imperator' => 'orange',
],
'cucumber' => [
'Kirby' => 'green',
'Gherkin' => 'green',
],
];

array_unshift($foods, $vegetables);
var_dump($foods);

L'exemple ci-dessus va afficher :

array(3) {
  [0] =>
  array(3) {
    'lettuce' =>
    array(2) {
      'Iceberg' =>
      string(5) "green"
      'Butterhead' =>
      string(5) "green"
    }
    'carrots' =>
    array(2) {
      'Deep Purple Hybrid' =>
      string(6) "purple"
      'Imperator' =>
      string(6) "orange"
    }
    'cucumber' =>
    array(2) {
      'Kirby' =>
      string(5) "green"
      'Gherkin' =>
      string(5) "green"
    }
  }
  'apples' =>
  array(2) {
    'McIntosh' =>
    string(3) "red"
    'Granny Smith' =>
    string(5) "green"
  }
  'oranges' =>
  array(2) {
    'Navel' =>
    string(6) "orange"
    'Valencia' =>
    string(6) "orange"
  }
}

Voir aussi

  • array_merge() - Fusionne plusieurs tableaux en un seul
  • 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, PHP 8)

array_values — Retourne toutes les valeurs d'un tableau

Description

array_values(array $array): array

array_values() retourne les valeurs du tableau array et l'indexe de façon 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
  • array_combine() - Crée un tableau à partir de deux autres tableaux


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, PHP 8)

array_walk_recursive — Applique une fonction de rappel récursivement à chaque membre d'un tableau

Description

array_walk_recursive(array|object &$array, callable $callback, mixed $arg = null): bool

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.

arg

Si le paramètre optionnel arg 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


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, PHP 8)

array_walk — Exécute une fonction fournie par l'utilisateur sur chacun des éléments d'un tableau

Description

array_walk(array|object &$array, callable $callback, mixed $arg = null): bool

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 utilisables 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.

arg

Si le paramètre optionnel arg est fourni, il sera passé comme troisième paramètre à la fonction définie par l'utilisateur callback.

Valeurs de retour

Retourne true.

Erreurs / Exceptions

À partir de PHP 7.1.0, un ArgumentCountError sera levé si la fonction callback requiert plus de 2 paramètres (la valeur et la clé de l'élément du tableau), ou plus de 3 si arg est aussi fournit. Précédemment, dans ce cas une erreur de niveau E_WARNING aurait été générée à chaque fois que la fonction array_walk() appelle callback.

Historique

Version | Description
8.0.0 | Si callback attend que le deuxième ou troisième paramètre soit passé par référence, cette fonction émet désormais une E_WARNING.

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\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

Exemple #2 Exemple de array_walk() avec l'utilisation d'une fonction anonyme

<?php
$elements = ['a', 'b', 'c'];

array_walk($elements, function ($value, $key) {
echo "{$key} => {$value}\n";
});

?>

L'exemple ci-dessus va afficher :

0 => a
1 => b
2 => c

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
  • 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, PHP 8)

array — Crée un tableau

Description

array(mixed ...$values): array

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

values

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 indices 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 dans un objet Countable
  • range() - Crée un tableau contenant un intervalle d'éléments
  • foreach
  • Le type array


Trie un tableau en ordre décroissant et conserve l'association des index

  • « array
  • asort »
  • PHP Manual
  • Fonctions sur les tableaux
  • Trie un tableau en ordre décroissant et conserve l'association des index

arsort

(PHP 4, PHP 5, PHP 7, PHP 8)

arsort — Trie un tableau en ordre décroissant et conserve l'association des index

Description

arsort(array &$array, int $flags = SORT_REGULAR): true

Trie array sur place en ordre décroissant, de telle manière que la corrélation entre les clés 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:

Si deux membres se comparent comme égaux, ils maintiennent leur ordre original. Antérieur à PHP 8.0.0, leur ordre relatif dans le tableau trié n'est pas défini.

Note:

Réinitialise le pointeur interne du tableau au premier élément.

Liste de paramètres

array

Le tableau d'entrée.

flags

Le deuxième paramètre optionnel flags peut être utilisé pour modifier le comportement de tri en utilisant ces valeurs :

Type de drapeaux de tri :

  • SORT_REGULAR - compare items normally; the details are described in the comparison operators section
  • 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 comme des chaînes de caractères, basé sur la locale courante. Ceci utilise la locale, qui peut être changée en utilisant setlocale()
  • SORT_NATURAL - compare les éléments comme des chaînes de caractères utilisant "l'ordre naturel" comme natsort()
  • SORT_FLAG_CASE - peut être combiné (OU bit à bit) avec SORT_STRING ou SORT_NATURAL pour trier les chaînes sans tenir compte de la casse

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.2.0 | Le type de retour est maintenant true, auparavant il était bool.

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

  • sort() - Trie un tableau en ordre croissant
  • asort() - Trie un tableau en ordre croissant et conserve l'association des index
  • Les fonctions de tri des tableaux


Trie un tableau en ordre croissant et conserve l'association des index

  • « arsort
  • compact »
  • PHP Manual
  • Fonctions sur les tableaux
  • Trie un tableau en ordre croissant et conserve l'association des index

asort

(PHP 4, PHP 5, PHP 7, PHP 8)

asort — Trie un tableau en ordre croissant et conserve l'association des index

Description

asort(array &$array, int $flags = SORT_REGULAR): true

Trie array sur place en ordre croissant, de telle manière que la corrélation entre les clés 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:

Si deux membres se comparent comme égaux, ils maintiennent leur ordre original. Antérieur à PHP 8.0.0, leur ordre relatif dans le tableau trié n'est pas défini.

Note:

Réinitialise le pointeur interne du tableau au premier élément.

Liste de paramètres

array

Le tableau d'entrée.

flags

Le deuxième paramètre optionnel flags peut être utilisé pour modifier le comportement de tri en utilisant ces valeurs :

Type de drapeaux de tri :

  • SORT_REGULAR - compare items normally; the details are described in the comparison operators section
  • 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 comme des chaînes de caractères, basé sur la locale courante. Ceci utilise la locale, qui peut être changée en utilisant setlocale()
  • SORT_NATURAL - compare les éléments comme des chaînes de caractères utilisant "l'ordre naturel" comme natsort()
  • SORT_FLAG_CASE - peut être combiné (OU bit à bit) avec SORT_STRING ou SORT_NATURAL pour trier les chaînes sans tenir compte de la casse

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.2.0 | Le type de retour est maintenant true, auparavant il était bool.

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

  • sort() - Trie un tableau en ordre croissant
  • arsort() - Trie un tableau en ordre décroissant 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, PHP 8)

compact — Crée un tableau à partir de variables et de leur valeur

Description

compact(array|string $var_name, array|string ...$var_names): array

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().

Note:

Avant PHP 7.3, toutes les chaînes qui ne sont pas définies était ignorées en silence.

Liste de paramètres

var_name
var_names

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.

Erreurs / Exceptions

compact() émet une erreur de niveau E_WARNING si une chaîne donnée fait référence à une variable non définie.

Historique

Version | Description
8.0.0 | Si une chaîne donnée fait référence à une variable non définie, une erreur de niveau E_WARNING est désormais émise.
7.3.0 | compact() émet maintenant une erreur de niveau E_NOTICE si une chaîne donnée fait référence à une variable non définie. Autrefois, ces chaînes ont été silencieusement ignorées.

Exemples

Exemple #1 Exemple avec compact()

<?php
$city = "San Francisco";
$state = "CA";
$event = "SIGGRAPH";

$location_vars = array("city", "state");

$result = compact("event", $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 dans un objet Countable

  • « compact
  • current »
  • PHP Manual
  • Fonctions sur les tableaux
  • Compte tous les éléments d'un tableau ou dans un objet Countable

count

(PHP 4, PHP 5, PHP 7, PHP 8)

count — Compte tous les éléments d'un tableau ou dans un objet Countable

Description

count(Countable|array $value, int $mode = COUNT_NORMAL): int

Compte tous les éléments dans un tableau quand utilisé avec un tableau. Quand utilisé avec un objet qui implémente l'interface Countable, ceci retourne la valeur de la méthode Countable::count().

Liste de paramètres

value

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 value. Antérieur à PHP 8.0.0, si le paramètre n'est ni un tableau, ni un objet qui implémente l'interface Countable, 1 était retourné, sauf si value était null, au quel cas 0 était retourné.

Historique

Version | Description
8.0.0 | count() lance désormais une TypeError pour des types dénombrables invalides passés au paramètre value.
7.2.0 | count() génère désormais un avertissement pour des types dénombrables invalides passés au paramètre value.

Exemples

Exemple #1 Exemple avec count()

<?php
$a[0] = 1;
$a[1] = 3;
$a[2] = 5;
var_dump(count($a));

$b[0] = 7;
$b[5] = 9;
$b[10] = 11;
var_dump(count($b));
?>

L'exemple ci-dessus va afficher :

int(3)
int(3)

Exemple #2 Exemple de count() avec un argument non Countable|array (contre-exemple - ne pas faire ceci)

<?php
$b[0] = 7;
$b[5] = 9;
$b[10] = 11;
var_dump(count($b));

var_dump(count(null));

var_dump(count(false));
?>

L'exemple ci-dessus va afficher :

int(3)
int(0)
int(1)

Résultat de l'exemple ci-dessus en PHP 7.2:

int(3)

Warning: count(): Parameter must be an array or an object that implements Countable in … on line 12
int(0)

Warning: count(): Parameter must be an array or an object that implements Countable in … on line 14
int(1)

Résultat de l'exemple ci-dessus en PHP 8 :

int(3)

Fatal error: Uncaught TypeError: count(): Argument #1 ($var) must be of type Countable .. on line 12

Exemple #3 Exemple de récursivité avec count()

<?php
$food = array('fruits' => array('orange', 'banana', 'apple'),
'veggie' => array('carrot', 'collard', 'pea'));

// count récursif
var_dump(count($food, COUNT_RECURSIVE));

// count normal
var_dump(count($food));

?>

L'exemple ci-dessus va afficher :

int(8)
int(2)

Exemple #4 Objet Countable

<?php
class CountOfMethods implements Countable
{
private function someMethod()
{
}
public function count(): int
{
return count(get_class_methods($this));
}
}
$obj = new CountOfMethods();
var_dump(count($obj));
?>

L'exemple ci-dessus va afficher :

int(2)

Voir aussi

  • is_array() - Détermine si une variable est un tableau
  • isset() - Détermine si une variable est déclarée et est différente de null
  • empty() - Détermine si une variable est vide
  • strlen() - Calcule la taille d'une chaîne
  • is_countable() - Vérifie si le contenu de la variable est une valeur dénombrable
  • Les tableaux


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, PHP 8)

current — Retourne l'élément courant du tableau

Description

current(array|object $array): mixed

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.

Historique

Version | Description
8.1.0 | Soit convertir l'objet en un tableau en utilisant get_mangled_object_vars() d'abord, ou utiliser les méthodes fournies par une classe qui implémente Iterator, telle que ArrayIterator.
7.4.0 | À partir de PHP 7.4.0, les instances de classes SPL sont traitées comme des objets vides sans propriétés au lieu d'appeler la méthode Iterator avec le même nom que 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: Il n'est pas possible de distinguer la fin d'un tableau ou le résultat de l'appel current() sur un tableau vide, à partir de l'élément bool false. Pour traverser correctement un tableau qui peut contenir l'élément false, voir la structure de contrôle foreach. Pour continuer d'utiliser current() et vérifier correctement si la valeur est réellement un élément du tableau, la key() de l'élément current() devrait être comparée strictement différente de l'élément null.

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
  • foreach


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

Avertissement

Cette fonctionnalité est OBSOLÈTE à partir de PHP 7.2.0 et a été SUPPRIMÉE à partir de PHP 8.0.0.

Description

each(array|object &$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, PHP 8)

end — Positionne le pointeur de tableau en fin de tableau

Description

end(array|object &$array): mixed

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.

Historique

Version | Description
8.1.0 | Soit convertir l'objet en un tableau en utilisant get_mangled_object_vars() d'abord, ou utiliser les méthodes fournies par une classe qui implémente Iterator, telle que ArrayIterator.
7.4.0 | À partir de PHP 7.4.0, les instances de classes SPL sont traitées comme des objets vides sans propriétés au lieu d'appeler la méthode Iterator avec le même nom que cette fonction.

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
  • array_key_last() - Récupère la dernière clé 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, PHP 8)

extract — Importe les variables dans la table des symboles

Description

extract(array &$array, int $flags = EXTR_OVERWRITE, string $prefix = ""): int

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.

Avertissement

N'utilisez pas extract() sur des données non sûres comme les entrées utilisateur (ex. $_GET, $_FILES).

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, 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.

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, PHP 8)

in_array — Indique si une valeur appartient à un tableau

Description

in_array(mixed $needle, array $haystack, bool $strict = false): bool

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 de caractères, la comparaison est faite en tenant compte de la casse.

haystack

Le tableau.

strict

Si le troisième paramètre strict est définit à true alors la fonction in_array() vérifiera aussi que le type du paramètre needle correspond au type de la valeur trouvée dans haystack.

Note:

Avant PHP 8.0.0, un string needle correspondra à une valeur de tableau de 0 en mode non strict et vice versa. Cela peut conduire à des résultats non souhaitables. Des cas particuliers similaires existent également pour d'autres types. Si vous n'êtes pas absolument certain des types de valeurs concernés, utilisez toujours le drapeau strict pour éviter tout comportement inattendu.

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 première clé associée à la valeur
  • isset() - Détermine si une variable est déclarée 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, PHP 8)

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, PHP 8)

key — Retourne une clé d'un tableau associatif

Description

key(array|object $array): int|string|null

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.

Historique

Version | Description
8.1.0 | Soit convertir l'objet en un tableau en utilisant get_mangled_object_vars() d'abord, ou utiliser les méthodes fournies par une classe qui implémente Iterator, telle que ArrayIterator.
7.4.0 | À partir de PHP 7.4.0, les instances de classes SPL sont traitées comme des objets vides sans propriétés au lieu d'appeler la méthode Iterator avec le même nom que cette fonction.

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), "\n";
}
next($array);
}
?>

L'exemple ci-dessus va afficher :

fruit1
fruit4
fruit5

Voir aussi

  • current() - Retourne l'élément courant du tableau
  • next() - Avance le pointeur interne d'un tableau
  • array_key_first() - Récupère la première clé d'un tableau
  • foreach


Trie un tableau en fonction des clés en ordre décroissant

  • « key
  • ksort »
  • PHP Manual
  • Fonctions sur les tableaux
  • Trie un tableau en fonction des clés en ordre décroissant

krsort

(PHP 4, PHP 5, PHP 7, PHP 8)

krsort — Trie un tableau en fonction des clés en ordre décroissant

Description

krsort(array &$array, int $flags = SORT_REGULAR): true

Trie array sur place suivant les clés en ordre décroissant.

Note:

Si deux membres se comparent comme égaux, ils maintiennent leur ordre original. Antérieur à PHP 8.0.0, leur ordre relatif dans le tableau trié n'est pas défini.

Note:

Réinitialise le pointeur interne du tableau au premier élément.

Liste de paramètres

array

Le tableau d'entrée.

flags

Le deuxième paramètre optionnel flags peut être utilisé pour modifier le comportement de tri en utilisant ces valeurs :

Type de drapeaux de tri :

  • SORT_REGULAR - compare items normally; the details are described in the comparison operators section
  • 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 comme des chaînes de caractères, basé sur la locale courante. Ceci utilise la locale, qui peut être changée en utilisant setlocale()
  • SORT_NATURAL - compare les éléments comme des chaînes de caractères utilisant "l'ordre naturel" comme natsort()
  • SORT_FLAG_CASE - peut être combiné (OU bit à bit) avec SORT_STRING ou SORT_NATURAL pour trier les chaînes sans tenir compte de la casse

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.2.0 | Le type de retour est maintenant true, auparavant il était bool.

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

  • sort() - Trie un tableau en ordre croissant
  • ksort() - Trie un tableau en fonction des clés en ordre croissant
  • Les fonctions de tri des tableaux


Trie un tableau en fonction des clés en ordre croissant

  • « krsort
  • list »
  • PHP Manual
  • Fonctions sur les tableaux
  • Trie un tableau en fonction des clés en ordre croissant

ksort

(PHP 4, PHP 5, PHP 7, PHP 8)

ksort — Trie un tableau en fonction des clés en ordre croissant

Description

ksort(array &$array, int $flags = SORT_REGULAR): true

Trie array sur place suivant les clés en ordre croissant.

Note:

Si deux membres se comparent comme égaux, ils maintiennent leur ordre original. Antérieur à PHP 8.0.0, leur ordre relatif dans le tableau trié n'est pas défini.

Note:

Réinitialise le pointeur interne du tableau au premier élément.

Liste de paramètres

array

Le tableau d'entrée.

flags

Le deuxième paramètre optionnel flags peut être utilisé pour modifier le comportement de tri en utilisant ces valeurs :

Type de drapeaux de tri :

  • SORT_REGULAR - compare items normally; the details are described in the comparison operators section
  • 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 comme des chaînes de caractères, basé sur la locale courante. Ceci utilise la locale, qui peut être changée en utilisant setlocale()
  • SORT_NATURAL - compare les éléments comme des chaînes de caractères utilisant "l'ordre naturel" comme natsort()
  • SORT_FLAG_CASE - peut être combiné (OU bit à bit) avec SORT_STRING ou SORT_NATURAL pour trier les chaînes sans tenir compte de la casse

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.2.0 | Le type de retour est maintenant true, auparavant il était bool.

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

Exemple #2 ksort() avec des clés int

<?php
$a = [0 => 'First', 2 => 'Last', 1 => 'Middle'];
var_dump($a);
ksort($a);
var_dump($a);
?>

L'exemple ci-dessus va afficher :

array(3) {
  [0]=>
  string(5) "First"
  [2]=>
  string(4) "Last"
  [1]=>
  string(6) "Middle"
}
array(3) {
  [0]=>
  string(5) "First"
  [1]=>
  string(6) "Middle"
  [2]=>
  string(4) "Last"
}

Voir aussi

  • sort() - Trie un tableau en ordre croissant
  • krsort() - Trie un tableau en fonction des clés en ordre décroissant
  • 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, PHP 8)

list — Assigne des variables comme si elles étaient un tableau

Description

list(mixed $var, mixed ...$vars = ?): array

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. Les chaînes de caractères ne peuvent pas être déstructurées et les expressions list() ne peuvent pas être entièrement vide.

Note:

Antérieur à PHP 7.1.0, list() fonctionne uniquement sur un tableau d'indice numérique et suppose que l'indice numérique commence à 0.

Liste de paramètres

var

Une variable.

vars

Variables supplémentaires.

Valeurs de retour

Retourne le tableau assigné.

Historique

Version | Description
7.3.0 | Le support pour l'assignement par référence dans la déstructuration de tableau a été ajouté.
7.1.0 | Il est maintenant possible de spécifier les clés dans la list(). Cela permet de déstructurer des tableaux avec des clés non-entières ou non séquentielles.

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()

<?php
$result = $pdo->query("SELECT id, name FROM employees");
while (list($id, $name) = $result->fetch(PDO::FETCH_NUM)) {
echo "id: $id, name: $name\n";
}
?>

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 list() et l'ordre de définition des index

L'ordre dans lequel les indices d'un tableau à traiter par list() sont définis est non pertinent.

<?php
$foo = array(2 => 'a', 'foo' => 'b', 0 => 'c');
$foo[1] = 'd';
list($x, $y, $z) = $foo;
var_dump($foo, $x, $y, $z);

Étant donné la sortie suivante (notez l'ordre des éléments comparés et dans quel ordre ils ont été écrits dans la syntaxe de la list()) :

array(4) {
  [2]=>
  string(1) "a"
  ["foo"]=>
  string(1) "b"
  [0]=>
  string(1) "c"
  [1]=>
  string(1) "d"
}
string(1) "c"
string(1) "d"
string(1) "a"

Exemple #5 list() avec des clés

À partir de PHP 7.1.0 list() peut maintenant contenir également des clés explicites, qui peuvent être donnés comme des expressions arbitraires. Le mixage des clés entier et chaîne de caractères est autorisé; Toutefois, les éléments avec et sans clés ne peuvent pas être mélangés.

<?php
$data = [
["id" => 1, "name" => 'Tom'],
["id" => 2, "name" => 'Fred'],
];
foreach ($data as ["id" => $id, "name" => $name]) {
echo "id: $id, name: $name\n";
}
echo PHP_EOL;
list(1 => $second, 3 => $fourth) = [1, 2, 3, 4];
echo "$second, $fourth\n";

L'exemple ci-dessus va afficher :

id: 1, name: Tom
id: 2, name: Fred

2, 4

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, PHP 8)

natcasesort — Trie un tableau avec l'algorithme à "ordre naturel" insensible à la casse

Description

natcasesort(array &$array): true

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:

Si deux membres se comparent comme égaux, ils maintiennent leur ordre original. Antérieur à PHP 8.0.0, leur ordre relatif dans le tableau trié n'est pas défini.

Note:

Réinitialise le pointeur interne du tableau au premier élément.

Liste de paramètres

array

Le tableau d'entrée.

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.2.0 | Le type de retour est maintenant true, auparavant il était bool.

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, PHP 8)

natsort — Trie un tableau avec l'algorithme à "ordre naturel"

Description

natsort(array &$array): true

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:

Si deux membres se comparent comme égaux, ils maintiennent leur ordre original. Antérieur à PHP 8.0.0, leur ordre relatif dans le tableau trié n'est pas défini.

Note:

Réinitialise le pointeur interne du tableau au premier élément.

Liste de paramètres

array

Le tableau d'entrée.

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.2.0 | Le type de retour est maintenant true, auparavant il était bool.

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, PHP 8)

next — Avance le pointeur interne d'un tableau

Description

next(array|object &$array): mixed

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.

Historique

Version | Description
8.1.0 | Soit convertir l'objet en un tableau en utilisant get_mangled_object_vars() d'abord, ou utiliser les méthodes fournies par une classe qui implémente Iterator, telle que ArrayIterator.
7.4.0 | À partir de PHP 7.4.0, les instances de classes SPL sont traitées comme des objets vides sans propriétés au lieu d'appeler la méthode Iterator avec le même nom que 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: Il n'est pas possible de distinguer la fin d'un tableau de l'élément bool false. Pour traverser correctement un tableau qui peut contenir l'élément false, voyez la fonction foreach. Pour continuer d'utiliser next() et détecter proprement si la fin du tableau a été atteinte, la key() est null.

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, PHP 8)

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, PHP 8)

prev — Recule le pointeur courant de tableau

Description

prev(array|object &$array): mixed

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.

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
8.1.0 | Soit convertir l'objet en un tableau en utilisant get_mangled_object_vars() d'abord, ou utiliser les méthodes fournies par une classe qui implémente Iterator, telle que ArrayIterator.
7.4.0 | À partir de PHP 7.4.0, les instances de classes SPL sont traitées comme des objets vides sans propriétés au lieu d'appeler la méthode Iterator avec le même nom que cette fonction.

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

Note: Il n'est pas possible de distinguer le début d'un tableau de l'élément bool false. Pour faire la distinction, vérifiez si la key() de l'élément prev() n'est pas null.

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, PHP 8)

range — Crée un tableau contenant un intervalle d'éléments

Description

range(string|int|float $start, string|int|float $end, int|float $step = 1): array

Crée un tableau contenant un intervalle d'éléments.

Si à la fois start et end sont des string, et que step est de type int, le tableau produit sera une séquence d'octets. Sinon, le tableau produit sera une séquence de nombres.

La séquence est croissante si start est inférieur ou égal à end. Sinon, la séquence est décroissante.

Liste de paramètres

start

Première valeur de la séquence.

end

Dernière valeur possible de la séquence.

step

step indique de combien la séquence produite progresse entre les valeurs de la séquence.

step peut être négatif pour les séquences décroissantes.

Si step est un float sans partie fractionnaire, il est interprété comme un int.

Valeurs de retour

Retourne une séquence d'éléments sous forme d'un tableau array avec le premier élément étant start allant jusqu'à end, chaque valeur de la séquence étant séparée de step valeurs.

Le dernier élément du tableau retourné est soit end soit l'élément précédent de la séquence, en fonction de la valeur de step.

Si à la fois start et end sont des string, et que step est de type int le tableau produit sera une séquence d'octets, généralement des caractères ASCII latins.

Si au moins l'un des start, end ou step est de type float, le tableau produit sera une séquence de float.

Sinon, le tableau produit sera une séquence de int.

Erreurs / Exceptions

  • Si step est égal à 0, une ValueError est générée.
  • Si start, end, ou step ne sont pas is_finite(), une ValueError est générée.
  • Si step est négatif, mais la plage produite est croissante (c'est-à-dire $start <= $end), une ValueError est générée.
  • Si start ou end est la chaîne vide '', un E_WARNING est émis et la chaîne vide sera interprétée comme 0.
  • Si start ou end est une chaîne non-numérique avec plus d'un octet, un E_WARNING est émis.
  • Si start ou end est une chaîne qui est implicitement convertie en int parce que l'autre valeur de limite est un nombre, un E_WARNING est émis.
  • Si step est de type float, et que start et end sont des chaînes non-numériques, un E_WARNING est émis.

Historique

Version | Description
8.3.0 | Si à la fois start et end sont des chaînes, alors range() produira désormais systématiquement un tableau de string. Auparavant, si l'une des valeurs limites était une chaîne numérique, l'autre valeur limite était implicitement convertie en int.
8.3.0 | Un E_WARNING est désormais émis si start ou end est une chaîne qui est implicitement convertie en int parce que l'autre valeur limite est un nombre.
8.3.0 | Un E_WARNING est désormais émis si start ou end est une chaîne non-numérique avec plus d'un octet.
8.3.0 | Un E_WARNING est désormais émis si start ou end est la chaîne vide.
8.3.0 | Si step est de type float sans partie fractionnaire, il sera interprété comme un int.
8.3.0 | Une ValueError est désormais générée si step est négatif lors de la production d'une plage croissante.
8.3.0 | Une ValueError est désormais générée si step n'est pas fini.
8.3.0 | Une TypeError est désormais générée si start ou end est un tableau, un objet, ou une ressource. Auparavant, elles étaient implicitement converties en int.

Exemples

Exemple #1 Exemple avec range()

<?php
echo implode(', ', range(0, 12)), PHP_EOL;

echo implode(', ', range('a', 'i')), PHP_EOL;

echo implode(', ', range('c', 'a')), PHP_EOL;

echo implode(', ', range('A', 'z')), PHP_EOL;
?>

L'exemple ci-dessus va afficher :

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100
a, b, c, d, e, f, g, h, i
c, b, a
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, 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

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, PHP 8)

reset — Remet le pointeur interne de tableau au début

Description

reset(array|object &$array): mixed

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.

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
8.1.0 | Soit convertir l'objet en un tableau en utilisant get_mangled_object_vars() d'abord, ou utiliser les méthodes fournies par une classe qui implémente Iterator, telle que ArrayIterator.
7.4.0 | À partir de PHP 7.4.0, les instances de classes SPL sont traitées comme des objets vides sans propriétés au lieu d'appeler la méthode Iterator avec le même nom que cette fonction.

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"

?>

Notes

Note: La valeur retournée pour un tableau vide n'est pas distinguable de la valeur retournée pour un tableau qui contient une valeur bool false comme premier élément. Pour proprement vérifier la valeur du premier élément d'un tableau, qui peut contenir un élément false, il faut d'abord vérifier le count() du tableau, ou vérifier si la key() n'est pas null, après avoir appelé reset().

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
  • array_key_first() - Récupère la première clé d'un tableau


Trie un tableau en ordre décroissant

  • « reset
  • shuffle »
  • PHP Manual
  • Fonctions sur les tableaux
  • Trie un tableau en ordre décroissant

rsort

(PHP 4, PHP 5, PHP 7, PHP 8)

rsort — Trie un tableau en ordre décroissant

Description

rsort(array &$array, int $flags = SORT_REGULAR): true

Trie array sur place suivant les valeurs en ordre décroissant.

Note:

Si deux membres se comparent comme égaux, ils maintiennent leur ordre original. Antérieur à PHP 8.0.0, leur ordre relatif dans le tableau trié n'est pas défini.

Note: Cette fonction assigne de nouvelles clés aux éléments dans array. Elle effacera toutes les clés existantes qui ont pu être assignées, plutôt que de réarranger les clés.

Note:

Réinitialise le pointeur interne du tableau au premier élément.

Liste de paramètres

array

Le tableau d'entrée.

flags

Le deuxième paramètre optionnel flags peut être utilisé pour modifier le comportement de tri en utilisant ces valeurs :

Type de drapeaux de tri :

  • SORT_REGULAR - compare items normally; the details are described in the comparison operators section
  • 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 comme des chaînes de caractères, basé sur la locale courante. Ceci utilise la locale, qui peut être changée en utilisant setlocale()
  • SORT_NATURAL - compare les éléments comme des chaînes de caractères utilisant "l'ordre naturel" comme natsort()
  • SORT_FLAG_CASE - peut être combiné (OU bit à bit) avec SORT_STRING ou SORT_NATURAL pour trier les chaînes sans tenir compte de la casse

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.2.0 | Le type de retour est maintenant true, auparavant il était bool.

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.

Voir aussi

  • sort() - Trie un tableau en ordre croissant
  • arsort() - Trie un tableau en ordre décroissant et conserve l'association des index
  • krsort() - Trie un tableau en fonction des clés en ordre décroissant
  • 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, PHP 8)

shuffle — Mélange les éléments d'un tableau

Description

shuffle(array &$array): true

Mélange les éléments du tableau array.

Attention

Cette fonction ne génère pas de valeurs cryptographiquement sûres, et ne doit pas être utilisée à des fins cryptographiques, ou à des fins qui exigent que les valeurs renvoyées soient indéchiffrables.

Si de l'aléatoire cryptographiquement sûre est requis, le Random\Randomizer peut être utilisé avec le moteur Random\Engine\Secure. Pour des cas d'usage simple, les fonctions random_int() et random_bytes() fournissent une API pratique et sûre qui est qui est soutenu par le CSPRNG du système d'exploitation.

Liste de paramètres

array

Le tableau.

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
7.1.0 | L'algorithme interne de génération aléatoire a été modifié pour utiliser le générateur de nombre aléatoire » Mersenne Twister au lieu de la fonction libc rand.

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 aux éléments dans array. Elle effacera toutes les clés existantes qui ont pu être assignées, plutôt que de réarranger les clés.

Note:

Réinitialise le pointeur interne du tableau au premier élément.

Voir aussi

  • Random\Randomizer::shuffleArray() - Get a permutation of an array
  • Random\Randomizer::shuffleBytes() - Get a byte-wise permutation of a string
  • Random\Randomizer::pickArrayKeys() - Select random array keys
  • 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, PHP 8)

sizeof — Alias de count()

Description

Cette fonction est un alias de : count().


Trie un tableau en ordre croissant

  • « sizeof
  • uasort »
  • PHP Manual
  • Fonctions sur les tableaux
  • Trie un tableau en ordre croissant

sort

(PHP 4, PHP 5, PHP 7, PHP 8)

sort — Trie un tableau en ordre croissant

Description

sort(array &$array, int $flags = SORT_REGULAR): true

Trie array sur place suivant les valeurs en ordre croissant.

Note:

Si deux membres se comparent comme égaux, ils maintiennent leur ordre original. Antérieur à PHP 8.0.0, leur ordre relatif dans le tableau trié n'est pas défini.

Note: Cette fonction assigne de nouvelles clés aux éléments dans array. Elle effacera toutes les clés existantes qui ont pu être assignées, plutôt que de réarranger les clés.

Note:

Réinitialise le pointeur interne du tableau au premier élément.

Liste de paramètres

array

Le tableau d'entrée.

flags

Le deuxième paramètre optionnel flags peut être utilisé pour modifier le comportement de tri en utilisant ces valeurs :

Type de drapeaux de tri :

  • SORT_REGULAR - compare items normally; the details are described in the comparison operators section
  • 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 comme des chaînes de caractères, basé sur la locale courante. Ceci utilise la locale, qui peut être changée en utilisant setlocale()
  • SORT_NATURAL - compare les éléments comme des chaînes de caractères utilisant "l'ordre naturel" comme natsort()
  • SORT_FLAG_CASE - peut être combiné (OU bit à bit) avec SORT_STRING ou SORT_NATURAL pour trier les chaînes sans tenir compte de la casse

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.2.0 | Le type de retour est maintenant true, auparavant il était bool.

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: 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

Porter attention lors du tri des tableaux avec des valeurs de types différents car sort() peut produire des résultats imprévisible quand flags est SORT_REGULAR.

Voir aussi

  • rsort() - Trie un tableau en ordre décroissant
  • 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, PHP 8)

uasort — Trie un tableau en utilisant une fonction de rappel

Description

uasort(array &$array, callable $callback): true

Trie array sur place de telle manière que la corrélation entre les clés et les valeurs soit conservée, en utilisant une fonction de comparaison définie par l'utilisateur.

Utilisé habituellement lors du tri de tableaux associatifs où l'ordre actuel des éléments est significatif.

Note:

Si deux membres se comparent comme égaux, ils maintiennent leur ordre original. Antérieur à PHP 8.0.0, leur ordre relatif dans le tableau trié n'est pas défini.

Note:

Réinitialise le pointeur interne du tableau au premier élément.

Liste de paramètres

array

Le tableau d'entrée.

callback

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.

callback(mixed $a, mixed $b): int
Attention

Retourner des valeurs non-entières à partir de la fonction de comparaison, telles que float, entraînera une conversion interne de la valeur de retour du rappel en int. Ainsi, des valeurs telles que 0.99 et 0.1 seront toutes deux converties en une valeur entière de 0, ce qui comparera de telles valeurs comme égales.

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.2.0 | Le type de retour est maintenant true, auparavant il était bool.
8.0.0 | Si callback attend un paramètre à être passé par référence, cette fonction émet désormais une E_WARNING.

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
  • uksort() - Trie un tableau par ses clés en utilisant une fonction de rappel
  • 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, PHP 8)

uksort — Trie un tableau par ses clés en utilisant une fonction de rappel

Description

uksort(array &$array, callable $callback): true

Trie array sur place suivant les clés en utilisant une fonction de comparaison définie par l'utilisateur.

Note:

Si deux membres se comparent comme égaux, ils maintiennent leur ordre original. Antérieur à PHP 8.0.0, leur ordre relatif dans le tableau trié n'est pas défini.

Note:

Réinitialise le pointeur interne du tableau au premier élément.

Liste de paramètres

array

Le tableau d'entrée.

callback

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.

callback(mixed $a, mixed $b): int
Attention

Retourner des valeurs non-entières à partir de la fonction de comparaison, telles que float, entraînera une conversion interne de la valeur de retour du rappel en int. Ainsi, des valeurs telles que 0.99 et 0.1 seront toutes deux converties en une valeur entière de 0, ce qui comparera de telles valeurs comme égales.

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.2.0 | Le type de retour est maintenant true, auparavant il était bool.
8.0.0 | Si callback attend un paramètre à être passé par référence, cette fonction émet désormais une E_WARNING.

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
  • uasort() - Trie un tableau en utilisant une fonction de rappel
  • 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, PHP 8)

usort — Trie un tableau en utilisant une fonction de comparaison

Description

usort(array &$array, callable $callback): true

Trie array sur place suivant les valeurs en utilisant une fonction de comparaison définie par l'utilisateur.

Note:

Si deux membres se comparent comme égaux, ils maintiennent leur ordre original. Antérieur à PHP 8.0.0, leur ordre relatif dans le tableau trié n'est pas défini.

Note: Cette fonction assigne de nouvelles clés aux éléments dans array. Elle effacera toutes les clés existantes qui ont pu être assignées, plutôt que de réarranger les clés.

Liste de paramètres

array

Le tableau d'entrée.

callback

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.

callback(mixed $a, mixed $b): int
Attention

Retourner des valeurs non-entières à partir de la fonction de comparaison, telles que float, entraînera une conversion interne de la valeur de retour du rappel en int. Ainsi, des valeurs telles que 0.99 et 0.1 seront toutes deux converties en une valeur entière de 0, ce qui comparera de telles valeurs comme égales.

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.2.0 | Le type de retour est maintenant true, auparavant il était bool.
8.0.0 | Si callback attend un paramètre à être passé par référence, cette fonction émet désormais une E_WARNING.

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

L'opérateur combiné peut être utilisé pour simplifier la comparaison interne.

<?php
function cmp($a, $b)
{
return $a <=> $b;
}

$a = array(3, 2, 5, 6, 1);

usort($a, "cmp");

foreach ($a as $key => $value) {
echo "$key: $value\n";
}
?>

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");

foreach ($fruits as $key => $value) {
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 {
private string $name;

function __construct($name)
{
$this->name = $name;
}

/* Ceci est une fonction de comparaison statique */
static function cmp_obj($a, $b)
{
return strtolower($a->name) <=> strtolower($b->name);
}
}

$a[] = new TestObj("c");
$a[] = new TestObj("b");
$a[] = new TestObj("d");

usort($a, [TestObj::class, "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 multidimensionnel

<?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

Exemple #5 Exemple d'utilisation de l'opérateur combiné avec usort().

L'opérateur combiné permet une comparaison directe de valeurs composées sur plusieurs axes. Dans l'exemple suivant, $people est trié par nom de famille, puis par prénom si le nom de famille correspond.

<?php
$people[0] = ['first' => 'Adam', 'last' => 'West'];
$people[1] = ['first' => 'Alec', 'last' => 'Baldwin'];
$people[2] = ['first' => 'Adam', 'last' => 'Baldwin'];

function sorter(array $a, array $b) {
return [$a['last'], $a['first']] <=> [$b['last'], $b['first']];
}

usort($people, 'sorter');

foreach ($people as $person) {
print $person['last'] . ', ' . $person['first'] . PHP_EOL;
}
?>

L'exemple ci-dessus va afficher :

Baldwin, Adam
Baldwin, Alec
West, Adam

Voir aussi

  • uasort() - Trie un tableau en utilisant une fonction de rappel
  • uksort() - Trie un tableau par ses clés 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
    • class_alias — Crée un alias de classe
    • class_exists — Vérifie si une classe a été définie
    • enum_exists — Vérifie si l'énumération est 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_mangled_object_vars — Retourne un tableau de propriétés de l'objet manipulé
    • 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 d'un certain type ou sous-type.
    • 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 Définitions des Classes

Vegetable

<?php
class Vegetable {
public $edible;
public $color;
public function __construct($edible, $color = "green")
{
$this->edible = $edible;
$this->color = $color;
}
public function isEdible()
{
return $this->edible;
}
public function getColor()
{
return $this->color;
}
}
?>

Spinach

<?php
class Spinach extends Vegetable {
public $cooked = false;
public function __construct()
{
parent::__construct(true, "green");
}
public function cook()
{
$this->cooked = true;
}
public function isCooked()
{
return $this->cooked;
}
}
?>

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

<?php
// register autoloader to load classes
spl_autoload_register();
function printProperties($obj)
{
foreach (get_object_vars($obj) as $prop => $val) {
echo "\t$prop = $val\n";
}
}
function printMethods($obj)
{
$arr = get_class_methods(get_class($obj));
foreach ($arr as $method) {
echo "\tfunction $method()\n";
}
}
function objectBelongsTo($obj, $class)
{
if (is_subclass_of($obj, $class)) {
echo "Object belongs to class " . get_class($obj);
echo ", a subclass of $class\n";
} else {
echo "Object does not belong to a subclass of $class\n";
}
}
// instantiate 2 objects
$veggie = new Vegetable(true, "blue");
$leafy = new Spinach();
// print out information about objects
echo "veggie: CLASS " . get_class($veggie) . "\n";
echo "leafy: CLASS " . get_class($leafy);
echo ", PARENT " . get_parent_class($leafy) . "\n";
// show veggie properties
echo "\nveggie: Properties\n";
printProperties($veggie);
// and leafy methods
echo "\nleafy: Methods\n";
printMethods($leafy);
echo "\nParentage:\n";
objectBelongsTo($leafy, Spinach::class);
objectBelongsTo($leafy, Vegetable::class);
?>

Les exemples ci-dessus vont afficher :

veggie: CLASS Vegetable
leafy: CLASS Spinach, PARENT Vegetable
veggie: Properties
        edible = 1
        color = blue
leafy: Methods
        function __construct()
        function cook()
        function isCooked()
        function isEdible()
        function getColor()
Parentage:
Object does not belong to a subclass of Spinach
Object belongs to class Spinach, a subclass of Vegetable

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.


Fonctions Classes/Objets

Sommaire

  • __autoload — Tente de charger une classe indéfinie
  • class_alias — Crée un alias de classe
  • class_exists — Vérifie si une classe a été définie
  • enum_exists — Vérifie si l'énumération est 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_mangled_object_vars — Retourne un tableau de propriétés de l'objet manipulé
  • 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 d'un certain type ou sous-type.
  • 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
  • class_alias »
  • 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

Avertissement

Cette fonctionnalité est OBSOLÈTE à partir de PHP 7.2.0 et a été SUPPRIMÉE à partir de PHP 8.0.0.

Description

__autoload(string $class): void

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()


Crée un alias de classe

  • « __autoload
  • class_exists »
  • PHP Manual
  • Fonctions Classes/Objets
  • Crée un alias de classe

class_alias

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

class_alias — Crée un alias de classe

Description

class_alias(string $class, string $alias, bool $autoload = true): bool

Crée un alias appelé alias basé sur une classe class définie par l'utilisateur. L'alias est en tous points similaire à la classe originale.

Note: À partir de PHP 8.3.0, class_alias() prend également en charge la création d'un alias d'une classe interne de PHP.

Liste de paramètres

class

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.

Historique

Version | Description
8.3.0 | class_alias() prend désormais en charge la création d'un alias d'une classe interne.

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)

Notes

Note:

Les noms de classes ne sont pas sensibles à la casse en PHP, et cela se reflète dans cette fonction. Les alias créés par class_alias() sont déclarés en minuscules. Cela signifie que pour une classe MyClass, l'appel class_alias('MyClass', 'MyClassAlias') déclarera un nouvel alias de classe nommé myclassalias.

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
  • enum_exists »
  • PHP Manual
  • Fonctions Classes/Objets
  • Vérifie si une classe a été définie

class_exists

(PHP 4, PHP 5, PHP 7, PHP 8)

class_exists — Vérifie si une classe a été définie

Description

class_exists(string $class, bool $autoload = true): bool

Cette fonction vérifie si une classe donnée a été définie.

Liste de paramètres

class

Le nom de la classe. Il est recherché de manière insensible à la casse.

autoload

Si l'on doit appeler autoload par défaut.

Valeurs de retour

Retourne true si class est une classe définie, false sinon.

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
spl_autoload_register(function ($class_name) {
include $class_name . '.php'

// Vérifie si l'include a déclaré la classe
if (!class_exists($class_name, false)) {
throw new LogicException("Unable to load class: $class_name");
}
});

if (class_exists(MyClass::class)) {
$myclass = new MyClass();
}

?>

Voir aussi

  • function_exists() - Indique si une fonction est définie
  • enum_exists() - Vérifie si l'énumération 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


Vérifie si l'énumération est définie

  • « class_exists
  • get_called_class »
  • PHP Manual
  • Fonctions Classes/Objets
  • Vérifie si l'énumération est définie

enum_exists

(PHP 8 >= 8.1.0)

enum_exists — Vérifie si l'énumération est définie

Description

enum_exists(string $enum, bool $autoload = true): bool

Cette fonction vérifie si l'enum donnée a été définie ou non.

Liste de paramètres

enum

Le nom de l'enum. Le nom est pris en compte sans tenir compte des majuscules et des minuscules.

autoload

S'il faut appeler autoload par défaut.

Valeurs de retour

Retourne true si enum est un enum défini, false sinon.

Exemples

Exemple #1 Exemple de enum_exists()

<?php
// Check that the enum exists before trying to use it
if (enum_exists(Suit::class)) {
$myclass = Suit::Hearts;
}
?>

Voir aussi

  • function_exists() - Indique si une fonction est définie
  • class_exists() - Vérifie si une classe a été 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"

  • « enum_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, PHP 8)

get_called_class — Le nom de la classe en "Late Static Binding"

Description

get_called_class(): string

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom de la classe.

Erreurs / Exceptions

Si get_called_class() est appelée depuis l'extérieur d'une classe, une Error est lancé. Antérieur à PHP 8.0.0, une erreur de niveau E_WARNING était générée.

Historique

Version | Description
8.0.0 | Appeler cette fonction depuis l'extérieur d'une classe lance désormais une Error. Auparavant, un E_WARNING était généré et la fonction renvoyait false. false.

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, PHP 8)

get_class_methods — Retourne les noms des méthodes d'une classe

Description

get_class_methods(object|string $object_or_class): array

Retourne les noms des méthodes d'une classe.

Liste de paramètres

object_or_class

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 object_or_class. En cas d'erreur, null est retourné.

Historique

Version | Description
8.0.0 | La paramètre object_or_class accepte désormais seulement les objets ou noms de classe valides.

Exemples

Exemple #1 Exemple avec get_class_methods()

<?php

class myclass {
// constructeur
function __construct()
{
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 :

__construct
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, PHP 8)

get_class_vars — Retourne les valeurs par défaut des propriétés d'une classe

Description

get_class_vars(string $class): array

Retourne les valeurs par défaut des propriétés d'une classe.

Liste de paramètres

class

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.

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 __construct() {
// 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, PHP 8)

get_class — Retourne le nom de la classe d'un objet

Description

get_class(object $object = ?): string

Retourne le nom de la classe de l'objet obj.

Liste de paramètres

object

L'objet testé.

Note: Passer explicitement null dans object n'est plus autorisé depuis PHP 7.2.0 et émet une E_WARNING. À partir de PHP 8.0.0, une TypeError est émise quand null est utilisé.

Valeurs de retour

Retourne le nom de la classe dont object est une instance.

Si object est une instance d'une classe qui existe dans un namespace, le nom avec les namespace de la classe sera retourné.

Erreurs / Exceptions

Si get_class() est appelée avec autre chose qu'un objet, une TypeError est levée. Antérieur à PHP 8.0.0, une alerte de niveau E_WARNING était émise.

Si get_class() est appelé sans argument en dehors d'une classe une Error est levée. Antérieur à PHP 8.0.0, une alerte de niveau E_WARNING était émise.

Historique

Version | Description
8.3.0 | Appeler get_class() sans argument déclenche désormais un avertissement E_DEPRECATED ; précédemment, appeler cette fonction à l'intérieur d'une classe renvoyait le nom de cette classe.
8.0.0 | Appeler cette fonction depuis l'extérieur d'une classe lance désormais une Error. Auparavant, un E_WARNING était généré et la fonction renvoyait false.
7.2.0 | Antérieur à cette version, la valeur par défaut pour object était null et avait le même effet que pas passer de valeur. Désormais null n'est plus la valeur par défaut pour object, et n'est plus une entrée valide.

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"

Exemple #3 Utilisation get_class() avec des namespace de classe

<?php

namespace Foo\Bar;

class Baz {
public function __construct()
{

}
}

$baz = new \Foo\Bar\Baz;

var_dump(get_class($baz));
?>

L'exemple ci-dessus va afficher :

string(11) "Foo\Bar\Baz"

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
  • get_debug_type() - Gets the type name of a variable in a way that is suitable for debugging
  • 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, PHP 8)

get_declared_classes — Liste toutes les classes définies dans PHP

Description

get_declared_classes(): array

Liste toutes les classes définies.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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.

Historique

Version | Description
7.4.0 | Précédemment get_declared_classes() retournait toujours les classes parentes avant les classes enfant. Ceci n'est plus le cas. Aucun ordre particulier n'est garantie pour la valeur de retour de get_declared_classes().

Exemples

Exemple #1 Exemple avec get_declared_classes()

<?php
print_r(get_declared_classes());
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

get_declared_interfaces — Retourne un tableau avec toutes les interfaces déclarées

Description

get_declared_interfaces(): array

Retourne un tableau avec toutes les interfaces déclarées.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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());
?>

Résultat de l'exemple ci-dessus est 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_mangled_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, PHP 8)

get_declared_traits — Retourne un tableau contenant tous les traits déclarés

Description

get_declared_traits(): array

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.

Voir aussi

  • class_uses() - Retourne les traits utilisés par une classe donnée.
  • trait_exists() - Vérifie si un trait existe


Retourne un tableau de propriétés de l'objet manipulé

  • « get_declared_traits
  • get_object_vars »
  • PHP Manual
  • Fonctions Classes/Objets
  • Retourne un tableau de propriétés de l'objet manipulé

get_mangled_object_vars

(PHP 7 >= 7.4.0, PHP 8)

get_mangled_object_vars — Retourne un tableau de propriétés de l'objet manipulé

Description

get_mangled_object_vars(object $object): array

Retourne un tableau dont les éléments sont les propriétés de l'object. Les clés sont les noms des variables membres, avec quelques exceptions notables : les variables privées ont le nom de la classe précédé du nom de la variable, et les variables protégées sont précédées d'un *. Ces valeurs précédées ont des octets NUL de part et d'autre. Les propriétés typées non initialisées sont rejetées silencieusement.

Liste de paramètres

object

Une instance d'objet.

Valeurs de retour

Retourne un tableau contenant toutes les propriétés de object, indépendamment de leur visibilité.

Exemples

Exemple #1 Exemple de get_mangled_object_vars()

<?php

class A
{
public $public = 1;

protected $protected = 2;

private $private = 3;
}

class B extends A
{
private $private = 4;
}

$object = new B;
$object->dynamic = 5;
$object->{'6'} = 6;

var_dump(get_mangled_object_vars($object));

class AO extends ArrayObject
{
private $private = 1;
}

$arrayObject = new AO(['x' => 'y']);
$arrayObject->dynamic = 2;

var_dump(get_mangled_object_vars($arrayObject));

L'exemple ci-dessus va afficher :

array(6) {
  ["Bprivate"]=>
  int(4)
  ["public"]=>
  int(1)
  ["*protected"]=>
  int(2)
  ["Aprivate"]=>
  int(3)
  ["dynamic"]=>
  int(5)
  [6]=>
  int(6)
}
array(2) {
  ["AOprivate"]=>
  int(1)
  ["dynamic"]=>
  int(2)
}

Voir aussi

  • 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 propriétés d'un objet

  • « get_mangled_object_vars
  • 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, PHP 8)

get_object_vars — Retourne les propriétés d'un objet

Description

get_object_vars(object $object): array

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.

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
}

Note:

Les propriétés non-initialisé sont considérées comme inaccessible, et donc ne seront pas inclus dans le tableau?

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, PHP 8)

get_parent_class — Retourne le nom de la classe parente d'un objet

Description

get_parent_class(object|string $object_or_class = ?): string|false

Récupère le nom de la classe parente pour un objet ou une classe.

Liste de paramètres

object_or_class

L'objet ou le nom de la classe testé.

Valeurs de retour

Retourne le nom de la classe parente dont object_or_class est une instance ou le nom.

Si l'objet n'a pas de parent ou si la classe fournie n'existe pas, false sera retourné.

Historique

Version | Description
8.3.0 | Appeler get_parent_class() sans argument déclenche désormais un avertissement E_DEPRECATED ; précédemment, appeler cette fonction à l'intérieur d'une classe renvoyait le nom de cette classe.
8.0.0 | La paramètre object_or_class accepte désormais seulement les objets ou noms de classe valides.

Exemples

Exemple #1 Exemple avec get_parent_class()

<?php

class Papa {
function __construct()
{
// un peu de code
}
}

class Enfant extends Papa {
function __construct()
{
echo "Je suis l'enfant de " , get_parent_class($this) , "\n";
}
}

class Enfant2 extends papa {
function __construct()
{
echo "Je suis aussi l'enfant de " , get_parent_class('enfant2') , "\n";
}
}

$foo = new Enfant();
$bar = new Enfant2();

?>

L'exemple ci-dessus va afficher :

Je suis l'enfant de Papa
Je suis aussi l'enfant 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
  • class_parents() - Retourne les classes parentes d'une classe


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, PHP 8)

interface_exists — Vérifie si une interface a été définie

Description

interface_exists(string $interface, bool $autoload = true): bool

Vérifie si une interface a été définie.

Liste de paramètres

interface

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 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
  • enum_exists() - Vérifie si l'énumération est définie


Vérifie si l'objet est d'un certain type ou sous-type.

  • « interface_exists
  • is_subclass_of »
  • PHP Manual
  • Fonctions Classes/Objets
  • Vérifie si l'objet est d'un certain type ou sous-type.

is_a

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

is_a — Vérifie si l'objet est d'un certain type ou sous-type.

Description

is_a(mixed $object_or_class, string $class, bool $allow_string = false): bool

Détermine si l'object_or_class donné est du type d'objet classe, ou a classe comme l'un de ses supertypes.

Liste de paramètres

object_or_class

Un nom de classe ou une instance d'un objet.

class

Le nom de la classe ou de l'interface.

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_or_class 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 object_or_class est du type d'objet classe, ou a classe comme l'un de ses supertypes, false sinon.

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

<?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, PHP 8)

is_subclass_of — Détermine si un objet est une sous-classe d'une classe donnée ou l'implémente

Description

is_subclass_of(mixed $object_or_class, string $class, bool $allow_string = true): bool

Vérifie si l'objet object_or_class a la classe class parmi ses parents ou l'implémente.

Liste de paramètres

object_or_class

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

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_or_class 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_or_class est une instance d'une classe qui est une sous-classe de class, false sinon.

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";
}

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 tous 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 d'un certain type ou sous-type.
  • class_parents() - Retourne les classes parentes 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, PHP 8)

method_exists — Vérifie si la méthode existe pour une classe

Description

method_exists(object|string $object_or_class, string $method): bool

Vérifie si la méthode existe pour l'objet object_or_class fourni.

Liste de paramètres

object_or_class

Une instance d'un objet ou le nom d'une classe

method

Le nom de la méthode

Valeurs de retour

Retourne true si la méthode fournie par le paramètre method a été définie pour l'objet object_or_class, false sinon.

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)

Notes

Note:

L'usage de cette fonction utilisera tous les autoloaders enregistrés si la classe n'est pas encore connue.

Voir aussi

  • function_exists() - Indique si une fonction est définie
  • is_callable() - Détermine si une valeur peut être appelé comme une fonction dans la portée courante.
  • 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, PHP 8)

property_exists — Vérifie si un objet ou une classe possède une propriété

Description

property_exists(object|string $object_or_class, string $property): bool

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

object_or_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.

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
var_dump(property_exists('myClass', 'bar')); //false
var_dump(property_exists('myClass', 'test')); //true
myClass::test();

?>

Notes

Note:

L'usage de cette fonction utilisera tous 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 magique __get.

Voir aussi

  • method_exists() - Vérifie si la méthode existe pour une classe


Vérifie si un trait existe

  • « property_exists
  • ctype »
  • PHP Manual
  • Fonctions Classes/Objets
  • Vérifie si un trait existe

trait_exists

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

trait_exists — Vérifie si un trait existe

Description

trait_exists(string $trait, bool $autoload = true): bool

Liste de paramètres

trait

Nom du trait à vérifier

autoload

S'il faut ou non charger automatiquement s'il n'a pas déjà été chargé.

Valeurs de retour

Retourne true si le trait existe, et false sinon.


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 un nombre entier inférieur à 256 est passé, 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.

Avertissement

À partir de PHP 8.1.0, passer un argument différent d'une chaîne est obsolète. À l'avenir, l'argument sera interprété comme une chaîne de caractères au lieu d'un point de code ASCII. Selon le comportement souhaité, l'argument doit être transtypé en chaîne de caractères ou un appel explicite à chr() doit être effectué.

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. Lorsque appelé avec une chaîne vide, le résultat sera toujours false.

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 régulières 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 causée par cette dénomination est loin d'être la faute de PHP.


Pré-requis

Aucune autre bibliothèque mis à part la bibliothèque C n'est requise. Cette dernière est toujours disponible.


Installation

Cette extension est activée par défaut. Elle peut être désactivée en utilisant l'option de configuration : --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.


  • « 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, PHP 8)

ctype_alnum — Vérifie qu'une chaîne est alphanumérique

Description

ctype_alnum(mixed $text): bool

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.

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.

Avertissement

À partir de PHP 8.1.0, passer un argument différent d'une chaîne est obsolète. À l'avenir, l'argument sera interprété comme une chaîne de caractères au lieu d'un point de code ASCII. Selon le comportement souhaité, l'argument doit être transtypé en chaîne de caractères ou un appel explicite à chr() doit être effectué.

Valeurs de retour

Retourne true si tous les caractères de text sont soit des lettres, soit des chiffres, false sinon. Lorsque appelé avec une chaîne vide, le résultat sera toujours false.

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.

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
  • IntlChar::isalnum() - Check if code point is an alphanumeric character


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, PHP 8)

ctype_alpha — Vérifie qu'une chaîne est alphabétique

Description

ctype_alpha(mixed $text): bool

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.

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.

Avertissement

À partir de PHP 8.1.0, passer un argument différent d'une chaîne est obsolète. À l'avenir, l'argument sera interprété comme une chaîne de caractères au lieu d'un point de code ASCII. Selon le comportement souhaité, l'argument doit être transtypé en chaîne de caractères ou un appel explicite à chr() doit être effectué.

Valeurs de retour

Retourne true si tous les caractères de text est une lettre de la locale courante, false sinon. Lorsque appelé avec une chaîne vide, le résultat sera toujours false.

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.

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
  • IntlChar::isalpha() - Check if code point is a letter character


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, PHP 8)

ctype_cntrl — Vérifie qu'un caractère est un caractère de contrôle

Description

ctype_cntrl(mixed $text): bool

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.

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.

Avertissement

À partir de PHP 8.1.0, passer un argument différent d'une chaîne est obsolète. À l'avenir, l'argument sera interprété comme une chaîne de caractères au lieu d'un point de code ASCII. Selon le comportement souhaité, l'argument doit être transtypé en chaîne de caractères ou un appel explicite à chr() doit être effectué.

Valeurs de retour

Retourne true si chaque caractère de text est un caractère de contrôle de la locale courante, false sinon. Lorsque appelé avec une chaîne vide, le résultat sera toujours false.

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.

Voir aussi

  • ctype_print() - Vérifie qu'une chaîne est imprimable
  • IntlChar::iscntrl() - Check if code point is a control character


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, PHP 8)

ctype_digit — Vérifie qu'une chaîne est un entier

Description

ctype_digit(mixed $text): bool

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.

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.

Avertissement

À partir de PHP 8.1.0, passer un argument différent d'une chaîne est obsolète. À l'avenir, l'argument sera interprété comme une chaîne de caractères au lieu d'un point de code ASCII. Selon le comportement souhaité, l'argument doit être transtypé en chaîne de caractères ou un appel explicite à chr() doit être effectué.

Valeurs de retour

Retourne true si tous les caractères de text sont des chiffres décimaux, false sinon. Lorsque appelé avec une chaîne vide, le résultat sera toujours false.

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
?>

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 nombre ou une chaîne 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
  • IntlChar::isdigit() - Check if code point is a digit character


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, PHP 8)

ctype_graph — Vérifie qu'une chaîne est imprimable

Description

ctype_graph(mixed $text): bool

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.

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.

Avertissement

À partir de PHP 8.1.0, passer un argument différent d'une chaîne est obsolète. À l'avenir, l'argument sera interprété comme une chaîne de caractères au lieu d'un point de code ASCII. Selon le comportement souhaité, l'argument doit être transtypé en chaîne de caractères ou un appel explicite à chr() doit être effectué.

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. Lorsque appelé avec une chaîne vide, le résultat sera toujours false.

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.

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
  • IntlChar::isgraph() - Check if code point is a graphic character


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, PHP 8)

ctype_lower — Vérifie qu'une chaîne est en minuscules

Description

ctype_lower(mixed $text): bool

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.

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.

Avertissement

À partir de PHP 8.1.0, passer un argument différent d'une chaîne est obsolète. À l'avenir, l'argument sera interprété comme une chaîne de caractères au lieu d'un point de code ASCII. Selon le comportement souhaité, l'argument doit être transtypé en chaîne de caractères ou un appel explicite à chr() doit être effectué.

Valeurs de retour

Retourne true si tous les caractères de text sont en minuscule dans la locale courante. Lorsque appelé avec une chaîne vide, le résultat sera toujours false.

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.

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
  • IntlChar::islower() - Check if code point is a lowercase letter


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, PHP 8)

ctype_print — Vérifie qu'une chaîne est imprimable

Description

ctype_print(mixed $text): bool

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.

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.

Avertissement

À partir de PHP 8.1.0, passer un argument différent d'une chaîne est obsolète. À l'avenir, l'argument sera interprété comme une chaîne de caractères au lieu d'un point de code ASCII. Selon le comportement souhaité, l'argument doit être transtypé en chaîne de caractères ou un appel explicite à chr() doit être effectué.

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. Lorsque appelé avec une chaîne vide, le résultat sera toujours false.

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.

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
  • IntlChar::isprint() - Check if code point is a printable character


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, PHP 8)

ctype_punct — Vérifie qu'une chaîne contient de la ponctuation

Description

ctype_punct(mixed $text): bool

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.

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.

Avertissement

À partir de PHP 8.1.0, passer un argument différent d'une chaîne est obsolète. À l'avenir, l'argument sera interprété comme une chaîne de caractères au lieu d'un point de code ASCII. Selon le comportement souhaité, l'argument doit être transtypé en chaîne de caractères ou un appel explicite à chr() doit être effectué.

Valeurs de retour

Retourne true si tous les caractères de text sont des caractères de ponctuation, false sinon. Lorsque appelé avec une chaîne vide, le résultat sera toujours false.

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 *&$() ne contient que de la ponctuation.

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
  • IntlChar::ispunct() - Check if code point is punctuation character


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, PHP 8)

ctype_space — Vérifie qu'une chaîne n'est faite que de caractères blancs

Description

ctype_space(mixed $text): bool

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.

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.

Avertissement

À partir de PHP 8.1.0, passer un argument différent d'une chaîne est obsolète. À l'avenir, l'argument sera interprété comme une chaîne de caractères au lieu d'un point de code ASCII. Selon le comportement souhaité, l'argument doit être transtypé en chaîne de caractères ou un appel explicite à chr() doit être effectué.

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. Lorsque appelé avec une chaîne vide, le résultat sera toujours false.

Exemples

Exemple #1 Exemple avec ctype_space()

<?php
$strings = array(
'string1' => "\n\r\t",
'string2' => "\narf12",
'string3' => '\n\r\t' // notez les guillemets simple
);
foreach ($strings as $name => $testcase) {
if (ctype_space($testcase)) {
echo "La chaîne de caractères '$name' ne contient que des caractères d'espacements blancs.\n";
} else {
echo "La chaîne de caractères '$name' ne contient pas que des caractè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 caractères d'espacements blancs.
La chaîne 'string3' ne contient pas que des caractères d'espacements blancs.

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
  • IntlChar::isspace() - Check if code point is a space character


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, PHP 8)

ctype_upper — Vérifie qu'une chaîne est en majuscules

Description

ctype_upper(mixed $text): bool

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.

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.

Avertissement

À partir de PHP 8.1.0, passer un argument différent d'une chaîne est obsolète. À l'avenir, l'argument sera interprété comme une chaîne de caractères au lieu d'un point de code ASCII. Selon le comportement souhaité, l'argument doit être transtypé en chaîne de caractères ou un appel explicite à chr() doit être effectué.

Valeurs de retour

Retourne true si tous les caractères de text sont en majuscules dans la locale courante. Lorsque appelé avec une chaîne vide, le résultat sera toujours false.

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.

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
  • IntlChar::isupper() - Check if code point has the general category "Lu" (uppercase letter)


Vérifie qu'un caractère représente un nombre hexadécimal

  • « ctype_upper
  • Filter »
  • 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, PHP 8)

ctype_xdigit — Vérifie qu'un caractère représente un nombre hexadécimal

Description

ctype_xdigit(mixed $text): bool

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.

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.

Avertissement

À partir de PHP 8.1.0, passer un argument différent d'une chaîne est obsolète. À l'avenir, l'argument sera interprété comme une chaîne de caractères au lieu d'un point de code ASCII. Selon le comportement souhaité, l'argument doit être transtypé en chaîne de caractères ou un appel explicite à chr() doit être effectué.

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. Lorsque appelé avec une chaîne vide, le résultat sera toujours false.

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.

Voir aussi

  • ctype_digit() - Vérifie qu'une chaîne est un entier
  • IntlChar::isxdigit() - Check if code point is a hexadecimal digit


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

Cette extension est activée par défaut. Elle peut être désactivée en utilisant l'option de configuration : --disable-filter


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" | INI_PERDIR | Obsolète à partir de PHP 8.1.0.
filter.default_flags | NULL | INI_PERDIR |
Pour plus de détails sur les modes 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 int

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 | Drapeaux | Description
FILTER_VALIDATE_BOOLEAN, FILTER_VALIDATE_BOOL | "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. Les blancs sont retirés des chaînes de caractères à l'aide de la fonction trim() avant la comparaison.
FILTER_VALIDATE_DOMAIN | "validate_domain" | default | FILTER_FLAG_HOSTNAME, FILTER_NULL_ON_FAILURE | Valide si les longueurs d'étiquettes de nom de domaine sont valides. Valide les noms de domaine par rapport aux RFC 1034, RFC 1035, RFC 952, RFC 1123, RFC 2732, RFC 2181 et RFC 1123. L'indicateur facultatif FILTER_FLAG_HOSTNAME ajoute la capacité de valider spécifiquement les noms d'hôte (ils doivent commencer par un caractère alphanumériques et contenir uniquement des caractères alphanumériques ou des traits d'union).
FILTER_VALIDATE_EMAIL | "validate_email" | default | FILTER_FLAG_EMAIL_UNICODE, FILTER_NULL_ON_FAILURE | Valide une adresse de courriel. En général, ceci valide l'adresse de courriel selon la syntaxe addr-spec dans la » RFC 822, à l'exception des commentaires, du remplissage par des espaces et les noms de domaine sans point qui ne sont pas pris en charge.
FILTER_VALIDATE_FLOAT | "float" | default, decimal, min_range, max_range | FILTER_FLAG_ALLOW_THOUSAND, FILTER_NULL_ON_FAILURE | Valide un nombre décimal, optionnellement dans l'intervalle fourni, et le convertit en nombre décimal en cas de succès. Les blancs sont retirés des chaînes de caractères à l'aide de la fonction trim() avant la comparaison.
FILTER_VALIDATE_INT | "int" | default, min_range, max_range | FILTER_FLAG_ALLOW_OCTAL, FILTER_FLAG_ALLOW_HEX, FILTER_NULL_ON_FAILURE | Valide un entier, éventuellement dans un intervalle donné et le convertit en entier en cas de succès. Les blancs sont retirés des chaînes de caractères à l'aide de la fonction trim() avant la comparaison.
FILTER_VALIDATE_IP | "validate_ip" | default | FILTER_FLAG_IPV4, FILTER_FLAG_IPV6, FILTER_FLAG_NO_PRIV_RANGE, FILTER_FLAG_NO_RES_RANGE, FILTER_FLAG_GLOBAL_RANGE, FILTER_NULL_ON_FAILURE | 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 | FILTER_NULL_ON_FAILURE | Valide la valeur comme une adresse MAC.
FILTER_VALIDATE_REGEXP | "validate_regexp" | default, regexp | FILTER_NULL_ON_FAILURE | 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, FILTER_NULL_ON_FAILURE | 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:

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
8.0.0 | Les indicateurs FILTER_FLAG_SCHEME_REQUIRED et FILTER_FLAG_HOST_REQUIRED pour le filtre FILTER_VALIDATE_URL ont été supprimés. Le scheme et le host sont (et ont été) toujours nécessaires.
8.0.0 | Ajout de FILTER_VALIDATE_BOOL qui est un alias pour FILTER_VALIDATE_BOOLEAN. L'utilisation de FILTER_VALIDATE_BOOL est préféré.
7.4.0 | Ajout des options min_range et max_range pour FILTER_VALIDATE_FLOAT.
7.0.0 | Ajout de FILTER_FLAG_HOSTNAME et FILTER_VALIDATE_DOMAIN.


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(). (OBSOLÈte à partir de PHP 7.3.0 et SUPPRIMÉE à partir de PHP 8.0.0, utiliser FILTER_SANITIZE_ADD_SLASHES à la place.)
FILTER_SANITIZE_ADD_SLASHES | "add_slashes" |  | Applique addslashes(). (Disponible à partir de PHP 7.3.0)
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 transforme en entité HTML les guillemets simple et double, optionnellement supprime ou encode les caractères spéciaux. Encodage des guillemets peut être désactiver en définissant FILTER_FLAG_NO_ENCODE_QUOTES. (Obsolète à partir de PHP 8.1.0, utilisez htmlspecialchars() à la place)
FILTER_SANITIZE_STRIPPED | "stripped" |  | Alias du filtre "string". (Obsolète à partir de PHP 8.1.0, utilisez htmlspecialchars() à la place)
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
8.1.0 | FILTER_SANITIZE_STRING et FILTER_SANITIZE_STRIPPED ont été dépréciés.
8.0.0 | FILTER_SANITIZE_MAGIC_QUOTES a été supprimée.
7.3.0 | FILTER_SANITIZE_ADD_SLASHES a été ajouté comme remplacement pour FILTER_SANITIZE_MAGIC_QUOTES
7.3.0 | FILTER_SANITIZE_MAGIC_QUOTES a été rendu obsolète.


Autres filtres

Liste de filtres divers
ID | Nom | Options | Flags | Description
FILTER_CALLBACK | "callback" | Fonction ou méthode de rappel (type callable) | Tous les drapeaux sont ignorés | 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_UNSAFE_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_UNSAFE_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 | N'importe quel FILTER_VALIDATE_* | Retourne null pour les valeurs 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_EMAIL_UNICODE | FILTER_VALIDATE_EMAIL | Permet à la partie locale de l'adresse électronique de contenir des caractères Unicode.
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 | Échoue la validation pour les intervalles privés IPv4: 10.0.0.0/8, 172.16.0.0/12 et 192.168.0.0/16. Échoue la validation pour les adresses IPv6 commençant par FD ou FC.
FILTER_FLAG_NO_RES_RANGE | FILTER_VALIDATE_IP | Échoue la validation pour les intervalles IPv4 réservés : 0.0.0.0/8, 169.254.0.0/16, 127.0.0.0/8 et 240.0.0.0/4. Ce drapeau ne concerne pas les adresses IPv6. Échoue la validation pour les intervalles IPv6 réservés : ::1/128, ::/128, ::ffff:0:0/96 and fe80::/10. Ce sont les intervalles qui sont marquée comme Reserved-By-Protocol dans la » RFC 6890.
FILTER_FLAG_GLOBAL_RANGE | FILTER_VALIDATE_IP | Échoue la validation pour les plages IPv4/IPv6 non globales telles que spécifiées dans la » RFC 6890 avec l'attribut Global étant False.
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. Le filtre donné sera appliqué à chaque élément scalaire du 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
8.2.0 | L'indicateur FILTER_FLAG_GLOBAL_RANGE pour FILTER_VALIDATE_IP a été ajouté.
7.3.0 | L'usage explicite de FILTER_FLAG_SCHEME_REQUIRED et FILTER_FLAG_HOST_REQUIRED ont été déprécié.
7.1.0 | FILTER_FLAG_EMAIL_UNICODE 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 (int)
variables POST.
INPUT_GET (int)
variables GET.
INPUT_COOKIE (int)
variables COOKIE.
INPUT_ENV (int)
variables ENV.
INPUT_SERVER (int)
variables SERVER.
INPUT_SESSION (int)
variables SESSION. (pas encore implémenté)
INPUT_REQUEST (int)
variables REQUEST. (pas encore implémenté)
FILTER_FLAG_NONE (int)
Aucun drapeau.
FILTER_REQUIRE_SCALAR (int)
Drapeau utilisé pour requérir un scalaire en entrée.
FILTER_REQUIRE_ARRAY (int)
Requière un tableau en entrée.
FILTER_FORCE_ARRAY (int)
Retourne toujours un tableau.
FILTER_NULL_ON_FAILURE (int)
Utilisation de null au lieu de false si une erreur survient.
FILTER_VALIDATE_INT (int)
ID du filtre "int".
FILTER_VALIDATE_BOOL (int)
Alias de FILTER_VALIDATE_BOOLEAN.
FILTER_VALIDATE_BOOLEAN (int)
ID du filtre "boolean".
FILTER_VALIDATE_FLOAT (int)
ID du filtre "float".
FILTER_VALIDATE_REGEXP (int)
ID du filtre "validate_regexp".
FILTER_VALIDATE_URL (int)
ID du filtre "validate_url".
FILTER_VALIDATE_DOMAIN (int)
ID du filtre "validate_domain". (Disponible à partir PHP 7.0.0)
FILTER_VALIDATE_EMAIL (int)
ID du filtre "validate_email".
FILTER_VALIDATE_IP (int)
ID du filtre "validate_ip".
FILTER_VALIDATE_MAC (int)
ID du filtre "validate_mac_address".
FILTER_DEFAULT (int)
ID du filtre par défaut ("unsafe_raw"). Ceci est équivalent à la constante FILTER_UNSAFE_RAW.
FILTER_UNSAFE_RAW (int)
ID du filtre "unsafe_raw".
FILTER_SANITIZE_STRING (int)
ID du filtre "string". (Obsolète à partir de PHP 8.1.0, utilisez htmlspecialchars() à la place)
FILTER_SANITIZE_STRIPPED (int)
ID du filtre "stripped". (Obsolète à partir de PHP 8.1.0, utilisez htmlspecialchars() à la place)
FILTER_SANITIZE_ENCODED (int)
ID du filtre "encoded".
FILTER_SANITIZE_SPECIAL_CHARS (int)
ID du filtre "special_chars".
FILTER_SANITIZE_EMAIL (int)
ID du filtre "email".
FILTER_SANITIZE_URL (int)
ID du filtre "url".
FILTER_SANITIZE_NUMBER_INT (int)
ID du filtre "number_int".
FILTER_SANITIZE_NUMBER_FLOAT (int)
ID du filtre "number_float".
FILTER_SANITIZE_MAGIC_QUOTES (int)
ID du filtre "magic_quotes". (OBSOLÈte à partir de PHP 7.3.0 et SUPPRIMÉE à partir de PHP 8.0.0, utiliser FILTER_SANITIZE_ADD_SLASHES à la place.)
FILTER_SANITIZE_ADD_SLASHES (int)
ID du filtre "add_slashes". (Disponible à partir PHP 7.3.0)
FILTER_CALLBACK (int)
ID du filtre de rappel.
FILTER_FLAG_ALLOW_OCTAL (int)
Alloue une notation octale (0[0-7]+) dans le filtre "int".
FILTER_FLAG_ALLOW_HEX (int)
Alloue une notation hexadécimale (0x[0-9a-fA-F]+) dans le filtre "int".
FILTER_FLAG_STRIP_LOW (int)
Supprime les caractères dont les valeurs ASCII sont inférieures à 32.
FILTER_FLAG_STRIP_HIGH (int)
Supprime les caractères dont les valeurs ASCII sont supérieures à 127.
FILTER_FLAG_STRIP_BACKTICK (int)
Supprime les accents graves.
FILTER_FLAG_ENCODE_LOW (int)
Encode les caractères dont les valeurs ASCII sont inférieures à 32.
FILTER_FLAG_ENCODE_HIGH (int)
Encode les caractères dont les valeurs ASCII sont supérieures à 127.
FILTER_FLAG_ENCODE_AMP (int)
Encode &.
FILTER_FLAG_NO_ENCODE_QUOTES (int)
N'encode pas ', ni ".
FILTER_FLAG_EMPTY_STRING_NULL (int)
(Non utilisé actuellement.)
FILTER_FLAG_ALLOW_FRACTION (int)
Alloue une partie fractionnelle dans le filtre "number_float".
FILTER_FLAG_ALLOW_THOUSAND (int)
Alloue le séparateur des milliers (,) dans le filtre "number_float".
FILTER_FLAG_ALLOW_SCIENTIFIC (int)
Alloue une notation scientifique (e, E) dans le filtre "number_float".
FILTER_FLAG_PATH_REQUIRED (int)
Chemin requis dans le filtre "validate_url".
FILTER_FLAG_QUERY_REQUIRED (int)
Requête requise dans le filtre "validate_url".
FILTER_FLAG_SCHEME_REQUIRED (int)
Requière un schéma dans le filtre "validate_url". (Obsolète à partir de PHP 7.3.0 et supprimé à partir de PHP 8.0.0, car déjà présent dans le filtre)
FILTER_FLAG_HOST_REQUIRED (int)
Requière un hôte dans le filtre "validate_url". (Obsolète à partir de PHP 7.3.0 et supprimé à partir de PHP 8.0.0, car déjà présent dans le filtre)
FILTER_FLAG_HOSTNAME (int)
Demande à ce que les noms d'hôtes commencent avec un caractère alphanumérique et contiennent que les caractères alphanumériques ou des traits d'union (Disponible à partir PHP 7.0.0)
FILTER_FLAG_IPV4 (int)
N'autorise que les adresses IPv4 dans le filtre "validate_ip".
FILTER_FLAG_IPV6 (int)
N'autorise que les adresses IPv6 dans le filtre "validate_ip".
FILTER_FLAG_NO_RES_RANGE (int)
N'autorise pas les adresses réservées dans le filtre "validate_ip".
FILTER_FLAG_NO_PRIV_RANGE (int)
N'autorise pas les adresses privées dans le filtre "validate_ip".
FILTER_FLAG_EMAIL_UNICODE (int)
Accepte des caractères Unicode dans la partie locale du filtre "validate_email". (Disponible à partir PHP 7.1.0)


  • « 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 "L'adresse email '$email_a' est considérée comme valide.";
}
if (filter_var($email_b, FILTER_VALIDATE_EMAIL)) {
echo "L'adresse email '$email_b' est considérée comme valide.";
} else {
echo "L'adresse email '$email_b' est considérée comme invalide.";
}
?>

L'exemple ci-dessus va afficher :

L'adresse email 'joe@example.com' est considérée comme valide.
L'adresse email 'bogus' est considérée comme invalide.

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 "L'adresse IP '$ip_a' est considérée comme valide.";
}
if (filter_var($ip_b, FILTER_VALIDATE_IP)) {
echo "L'adresse IP '$ip_b' est considérée comme valide.";
}
?>

L'exemple ci-dessus va afficher :

L'adresse IP '127.0.0.1' 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 "L'entier A 'int_a' est considéré comme valide (entre 0 et 3).\n";
}
if (filter_var($int_b, FILTER_VALIDATE_INT, $options) !== FALSE) {
echo "L'entier B 'int_b' est considéré comme valide (entre 0 et 3).\n";
}
if (filter_var($int_c, FILTER_VALIDATE_INT, $options) !== FALSE) {
echo "L'entier C '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 "L'entier C 'int_c' est considéré comme valide (entre 0 et 3).";
}
?>

L'exemple ci-dessus va afficher :

L'entier A '1' est considéré comme valide (entre 0 et 3).
L'entier C '1' est considéré comme valide (entre 0 et 3).


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, PHP 8)

filter_has_var — Vérifie si une variable d'un type spécifique existe

Description

filter_has_var(int $input_type, string $var_name): bool

Liste de paramètres

input_type

Une constante parmi INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER ou INPUT_ENV.

var_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, PHP 8)

filter_id — Retourne l'identifiant d'un filtre nommé

Description

filter_id(string $name): int|false

Liste de paramètres

name

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, PHP 8)

filter_input_array — Récupère plusieurs valeurs externes et les filtre

Description

filter_input_array(int $type, array|int $options = FILTER_DEFAULT, bool $add_empty = true): array|false|null

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.

options

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. Si le tableau d'entrée désigné par type n'est pas populé, la fonction retourne null si le drapeau FILTER_NULL_ON_FAILURE n'est pas donnée, sinon false dans le cas contraire. Pour les autres échecs, false est retourné.

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. Si le paramètre add_empty est false, aucun élément du tableau sera ajouté pour les variables non définie.

Exemples

Exemple #1 Exemple avec filter_input_array()

<?php

/* les données arrivent depuis POST
$_POST = array(
'product_id' => 'libgd<script>',
'component' => array('10'),
'version' => '2.0.33',
'testarray' => array('2', '23', '10', '12'),
'testscalar' => '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)
),
'version' => 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"]=>
  string(17) "libgd%3Cscript%3E"
  ["component"]=>
  array(1) {
    [0]=>
    int(10)
  }
  ["version"]=>
  string(6) "2.0.33"
  ["doesnotexist"]=>
  NULL
  ["testscalar"]=>
  int(2)
  ["testarray"]=>
  array(4) {
    [0]=>
    int(2)
    [1]=>
    int(23)
    [2]=>
    int(10)
    [3]=>
    int(12)
  }
}

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, PHP 8)

filter_input — Récupère une variable externe et la filtre

Description

filter_input(
int $type,
string $var_name,
int $filter = FILTER_DEFAULT,
array|int $options = 0
): mixed

Liste de paramètres

type

Une constante parmi INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER ou INPUT_ENV.

var_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 var_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>";
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

filter_list — Retourne une liste de tous les filtres supportés

Description

filter_list(): array

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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());
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

filter_var_array — Récupère plusieurs variables et les filtre

Description

filter_var_array(array $array, array|int $options = FILTER_DEFAULT, bool $add_empty = true): array|false|null

Cette fonction est utile pour récupérer plusieurs valeurs sans appeler plusieurs fois la fonction filter_var().

Liste de paramètres

array

Un tableau avec les clés contenant les données à filtrer.

options

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

$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"]=>
  string(17) "libgd%3Cscript%3E"
  ["component"]=>
  array(1) {
    [0]=>
    int(10)
  }
  ["versions"]=>
  string(6) "2.0.33"
  ["doesnotexist"]=>
  NULL
  ["testscalar"]=>
  bool(false)
  ["testarray"]=>
  array(1) {
    [0]=>
    int(2)
  }
}

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, PHP 8)

filter_var — Filtre une variable avec un filtre spécifique

Description

filter_var(mixed $value, int $filter = FILTER_DEFAULT, array|int $options = 0): mixed

Liste de paramètres

value

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)

Exemple #2 Exemple de filtrage d'un tableau

<?php
$emails = [
"bob@example.com",
"test@example.local",
"invalidemail"
];

var_dump(filter_var($emails, FILTER_VALIDATE_EMAIL, FILTER_REQUIRE_ARRAY));
?>

L'exemple ci-dessus va afficher :

array(3) {
  [0]=>
  string(15) "bob@example.com"
  [1]=>
  string(18) "test@example.local"
  [2]=>
  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


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, PHP 8)

call_user_func_array — Appelle une fonction de rappel avec les paramètres rassemblés en tableau

Description

call_user_func_array(callable $callback, array $args): mixed

Appelle la fonction de rappel callback fournie avec les paramètres args, rassemblés dans un tableau.

Liste de paramètres

callback

La fonction de rappel à appeler.

args

Les paramètres à passer à la fonction de rappel, sous la forme d'un tableau.

Si les clés de args sont toutes numériques, les clés sont ignorées et chaque élément sera transmis à callback en tant qu'argument positionnel, dans l'ordre.

Si certaines clés de args sont des chaînes de caractères, ces éléments seront transmis à callback en tant qu'arguments nommés, avec le nom donné par la clé.

Il est interdit d'avoir une clé numérique dans args qui apparaît après une clé de chaîne de caractères, ou d'avoir une clé de chaîne de caractères qui ne correspond pas au nom d'un quelconque paramètre de callback

Valeurs de retour

Retourne la valeur retournée par la fonction de rappel, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | Les clés args seront désormais interprétées comme des noms de paramètres, au lieu d'être ignorées silencieusement.

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"));
?>

Résultat de l'exemple ci-dessus est 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";
}
}

call_user_func_array(__NAMESPACE__ .'\Foo::test', array('Hannes'));

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)));

?>

L'exemple ci-dessus va afficher :

int(8)

Exemple #4 En passant une valeur par référence

<?php

function mega(&$a){
$a = 55;
echo "function mega \$a=$a\n";
}
$bar = 77;
call_user_func_array('mega',array(&$bar));
echo "global \$bar=$bar\n";

?>

L'exemple ci-dessus va afficher :

function mega $a=55
global $bar=55

Exemple #5 call_user_func_array() en utilisant des arguments nommés

<?php
function foobar($first, $second) {
echo __FUNCTION__, " got $first and $second\n";
}

// Appeler la fonction foobar() avec des arguments nommés dans un ordre non-positional
call_user_func_array("foobar", array("second" => "two", "first" => "one"));

// Appeler la fonction foobar() avec un argument nommé
call_user_func_array("foobar", array("foo", "second" => "bar"));

// Erreur fatale : Impossible d'utiliser un argument positionnel après un argument nommé
call_user_func_array("foobar", array("first" => "one", "bar"));

?>

Résultat de l'exemple ci-dessus est similaire à :

foobar got one and two
foobar got foo and bar

Fatal error: Uncaught Error: Cannot use positional argument after named argument

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() - Appelle une fonction de rappel fournie par le premier argument
  • 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, PHP 8)

call_user_func — Appelle une fonction de rappel fournie par le premier argument

Description

call_user_func(callable $callback, mixed ...$args): 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.

args

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";

// il est possible d'utiliser ceci à la place
call_user_func_array('increment', array(&$a));
echo $a."\n";

// il est aussi possible d'utiliser une fonctions variables
$increment = 'increment';
$increment($a);
echo $a."\n";
?>

L'exemple ci-dessus va afficher :

Warning: Parameter 1 to increment() expected to be a reference, value given in …
0
1
2

Valeurs de retour

Retourne la valeur retournée par la fonction de rappel.

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');
call_user_func(array(__NAMESPACE__ .'\Foo', 'test'));
?>

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');

$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');
?>

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 une valeur peut être appelé comme une fonction dans la portée courante.
  • Fonctions variables
  • 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

Avertissement

Cette fonctionnalité est OBSOLÈTE à partir de PHP 7.2.0 et a été SUPPRIMÉE à partir de PHP 8.0.0.

Description

create_function(string $args, string $code): string

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.

Une fonction anonyme native devrait ê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, PHP 8)

forward_static_call_array — Appelle une méthode statique et passe les arguments en tableau

Description

forward_static_call_array(callable $callback, array $args): mixed

Appelle une fonction ou une méthode utilisateur, nommée callback, 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

callback

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 une valeur peut être appelé comme une fonction dans la portée courante.


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, PHP 8)

forward_static_call — Appelle une méthode statique

Description

forward_static_call(callable $callback, mixed ...$args): mixed

Appelle une fonction ou une méthode utilisateur, nommée callback, 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

callback

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.

args

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 une valeur peut être appelé comme une fonction dans la portée courante.


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, PHP 8)

func_get_arg — Retourne un élément de la liste des arguments

Description

func_get_arg(int $position): mixed

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

position

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.

Erreurs / Exceptions

Générera une alerte si elle est appelée hors d'une fonction utilisateur, ou si position 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 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 : 'baz'
Tel que passé : 'bar'
Après changement : 'baz'

Notes

Note:

À partir de PHP 8.0.0, la famille de fonction func_*() désigné à être essentiellement transparent concernant les arguments nommées, en traitant les arguments comme s'ils étaient tous passé de manière positionnelle, et les arguments manquant sont remplacés avec leurs valeurs par défaut. Cette fonction ignore la collection d'argument variadic nommée inconnue. Les arguments nommées qui sont collectionnés sont uniquement accessible à travers le paramètre variadic.

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. À partir de 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 ...
  • 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


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, PHP 8)

func_get_args — Retourne les arguments d'une fonction sous la forme d'un tableau

Description

func_get_args(): array

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau dont chaque élément est une copie du membre correspondant de la liste d'arguments de la fonction.

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 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 => 'baz',
)
Tel que passé : array (
0 => 'bar',
)
Après changement : array (
0 => 'baz',
)

Notes

Note:

À partir de PHP 8.0.0, la famille de fonction func_*() désigné à être essentiellement transparent concernant les arguments nommées, en traitant les arguments comme s'ils étaient tous passé de manière positionnelle, et les arguments manquant sont remplacés avec leurs valeurs par défaut. Cette fonction ignore la collection d'argument variadic nommée inconnue. Les arguments nommées qui sont collectionnés sont uniquement accessible à travers le paramètre variadic.

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. À partir de 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 ...
  • func_get_arg() - Retourne un élément de la liste des arguments
  • func_num_args() - Retourne le nombre d'arguments passés à la fonction
  • ReflectionFunctionAbstract::getParameters() - Récupère les paramètres


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, PHP 8)

func_num_args — Retourne le nombre d'arguments passés à la fonction

Description

func_num_args(): int

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre d'arguments passés à la fonction utilisateur courante.

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()
{
echo "Nombre d'arguments: ", func_num_args(), PHP_EOL;
}

foo(1, 2, 3); // affiche ''
?>

L'exemple ci-dessus va afficher :

Nombre d'arguments: 3

Notes

Note:

À partir de PHP 8.0.0, la famille de fonction func_*() désigné à être essentiellement transparent concernant les arguments nommées, en traitant les arguments comme s'ils étaient tous passé de manière positionnelle, et les arguments manquant sont remplacés avec leurs valeurs par défaut. Cette fonction ignore la collection d'argument variadic nommée inconnue. Les arguments nommées qui sont collectionnés sont uniquement accessible à travers le paramètre variadic.

Voir aussi

  • La syntaxe ...
  • 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
  • ReflectionFunctionAbstract::getNumberOfParameters() - Récupère le nombre de paramètres


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, PHP 8)

function_exists — Indique si une fonction est définie

Description

function_exists(string $function): bool

Vérifie la liste des fonctions définies par l'utilisateur ainsi que celles internes à php afin d'y trouver function.

Liste de paramètres

function

Le nom de la fonction, sous la forme d'une chaîne de caractères.

Valeurs de retour

Retourne true si la fonction function 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 une valeur peut être appelé comme une fonction dans la portée courante.
  • 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, PHP 8)

get_defined_functions — Liste toutes les fonctions définies

Description

get_defined_functions(bool $exclude_disabled = true): array

Liste toutes les fonctions définies.

Liste de paramètres

exclude_disabled

Si les fonctions désactivé doivent être exclus de la valeur de retour.

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"].

Historique

Version | Description
8.0.0 | La valeur par défaut du paramètre exclude_disabled a été changé de false à true.
7.0.15, 7.1.1 | Le paramètre exclude_disabled a été ajouté.

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);
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

register_shutdown_function — Enregistre une fonction de rappel pour exécution à l'extinction

Description

register_shutdown_function(callable $callback, mixed ...$args): void

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.

les fonctions d'arrêt peuvent également appeler la fonction register_shutdown_function() elles-mêmes pour ajouter une fonction d'arrêt à la fin de la file d'attente.

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.

args

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.

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.

Note:

Les fonctions d'arrêt s'exécutent séparément du temps suivi par max_execution_time. Cela signifie que même si un processus est terminé pour avoir fonctionné trop longtemps, les fonctions d'arrêt seront toujours appelées. De plus, si le max_execution_time atteint sa limite pendant qu'une fonction d'arrêt est en cours d'exécution, elle ne sera pas interrompue.

Voir aussi

  • auto_append_file
  • exit() - Affiche un message et termine le script courant
  • fastcgi_finish_request() - Affiche toutes les données de la réponse au client
  • 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, PHP 8)

register_tick_function — Enregistre une fonction exécutée à chaque tick

Description

register_tick_function(callable $callback, mixed ...$args): bool

register_tick_function() enregistre la fonction callback pour être exécutée à chaque fois qu'un tick survient.

Liste de paramètres

callback

La fonction à enregistrer.

args

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);
?>

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, PHP 8)

unregister_tick_function — Annule la fonction exécutée à chaque tick

Description

unregister_tick_function(callable $callback): void

Annule l'exécution automatique de callback à chaque tick.

Liste de paramètres

callback

La fonction à annuler.

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 — The QuickHashIntSet class
    • QuickHashIntSet::add — This method adds a new entry to the set
    • QuickHashIntSet::__construct — Creates a new QuickHashIntSet object
    • QuickHashIntSet::delete — This method deletes an entry from the set
    • QuickHashIntSet::exists — This method checks whether a key is part of the set
    • QuickHashIntSet::getSize — Returns the number of elements in the set
    • QuickHashIntSet::loadFromFile — This factory method creates a set from a file
    • QuickHashIntSet::loadFromString — This factory method creates a set from a string
    • QuickHashIntSet::saveToFile — This method stores an in-memory set to disk
    • QuickHashIntSet::saveToString — This method returns a serialized version of the set
  • QuickHashIntHash — The QuickHashIntHash class
    • QuickHashIntHash::add — This method adds a new entry to the hash
    • QuickHashIntHash::__construct — Creates a new QuickHashIntHash object
    • QuickHashIntHash::delete — This method deletes an entry from the hash
    • QuickHashIntHash::exists — This method checks whether a key is part of the hash
    • QuickHashIntHash::get — This method retrieves a value from the hash by its key
    • QuickHashIntHash::getSize — Returns the number of elements in the hash
    • QuickHashIntHash::loadFromFile — This factory method creates a hash from a file
    • QuickHashIntHash::loadFromString — This factory method creates a hash from a string
    • QuickHashIntHash::saveToFile — This method stores an in-memory hash to disk
    • QuickHashIntHash::saveToString — This method returns a serialized version of the hash
    • QuickHashIntHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
    • QuickHashIntHash::update — This method updates an entry in the hash with a new value
  • QuickHashStringIntHash — The QuickHashStringIntHash class
    • QuickHashStringIntHash::add — This method adds a new entry to the hash
    • QuickHashStringIntHash::__construct — Creates a new QuickHashStringIntHash object
    • QuickHashStringIntHash::delete — This method deletes an entry from the hash
    • QuickHashStringIntHash::exists — This method checks whether a key is part of the hash
    • QuickHashStringIntHash::get — This method retrieves a value from the hash by its key
    • QuickHashStringIntHash::getSize — Returns the number of elements in the hash
    • QuickHashStringIntHash::loadFromFile — This factory method creates a hash from a file
    • QuickHashStringIntHash::loadFromString — This factory method creates a hash from a string
    • QuickHashStringIntHash::saveToFile — This method stores an in-memory hash to disk
    • QuickHashStringIntHash::saveToString — This method returns a serialized version of the hash
    • QuickHashStringIntHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
    • QuickHashStringIntHash::update — This method updates an entry in the hash with a new value
  • QuickHashIntStringHash — The QuickHashIntStringHash class
    • QuickHashIntStringHash::add — This method adds a new entry to the hash
    • QuickHashIntStringHash::__construct — Creates a new QuickHashIntStringHash object
    • QuickHashIntStringHash::delete — This method deletes an entry from the hash
    • QuickHashIntStringHash::exists — This method checks whether a key is part of the hash
    • QuickHashIntStringHash::get — This method retrieves a value from the hash by its key
    • QuickHashIntStringHash::getSize — Returns the number of elements in the hash
    • QuickHashIntStringHash::loadFromFile — This factory method creates a hash from a file
    • QuickHashIntStringHash::loadFromString — This factory method creates a hash from a string
    • QuickHashIntStringHash::saveToFile — This method stores an in-memory hash to disk
    • QuickHashIntStringHash::saveToString — This method returns a serialized version of the hash
    • QuickHashIntStringHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
    • QuickHashIntStringHash::update — This method updates an entry in the hash with a new value


Introduction

The quickhash extension contains a set of specific strongly-typed classes to deal with specific set and hash implementations.


  • « Installation/Configuration
  • Installation »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

This extension requires no additional libraries.


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 : » https://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 Quickhash Example

<?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 ) );
?>

Résultat de l'exemple ci-dessus est similaire à :

bool(true)
bool(false)
bool(true)
bool(false)

Exemple #2 Quickhash ArrayAccess Example

<?php
$hash = new QuickHashIntHash( 64 );

// Adding and updating hash entries.
$hash[3] = 145926;
$hash[3] = 1415926;
$hash[2] = 72;

// Checking if keys exist
var_dump( isset( $hash[3] ) );

// Removing hash entries
unset( $hash[2] );

// Retrieving the value stored for a hash
echo $hash[3], "\n";
?>

Résultat de l'exemple ci-dessus est similaire à :

bool(true)
1415926

Exemple #3 Quickhash Iterator Example

<?php
$hash = new QuickHashIntHash( 64 );

// Adding hash entries.
$hash[1] = 145926;
$hash[2] = 1415926;
$hash[3] = 72;
$hash[4] = 712314;
$hash[5] = -4234;

foreach( $hash as $key => $value )
{
echo $key, ' => ', $value, "\n";
}
?>

Résultat de l'exemple ci-dessus est similaire à :

5 => -4234
4 => 712314
1 => 145926
2 => 1415926
3 => 72

Exemple #4 Quickhash String Values Example

<?php
$hash = new QuickHashIntStringHash( 64 );

// Adding hash entries.
$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";
}
?>

Résultat de l'exemple ci-dessus est similaire à :

1 => one million four hundred fifteen thousand nine hundred twenty six
2 => one more


The QuickHashIntSet class

(PECL quickhash >= Unknown)

Introduction

This class wraps around a set containing integer numbers.

Sets can also be iterated over with foreach as the Iterator interface is implemented as well. The order of which elements are returned in is not guaranteed.

Synopsis de la classe

class QuickHashIntSet {
/* Constantes */
const int CHECK_FOR_DUPES = 1;
const int DO_NOT_USE_ZEND_ALLOC = 2;
const int HASHER_NO_HASH = 256;
const int HASHER_JENKINS1 = 512;
const int HASHER_JENKINS2 = 1024;
/* Méthodes */
public add(int $key): bool
public __construct(int $size, int $options = ?)
public delete(int $key): bool
public exists(int $key): bool
publicgetSize(): int
public static loadFromFile(string $filename, int $size = ?, int $options = ?): QuickHashIntSet
public static loadFromString(string $contents, int $size = ?, int $options = ?): QuickHashIntSet
public saveToFile(string $filename): void
public saveToString(): string
}

Constantes pré-définies

QuickHashIntSet::CHECK_FOR_DUPES

If enabled, adding duplicate elements to a set (through either QuickHashIntSet::add() or QuickHashIntSet::loadFromFile()) will result in those elements to be dropped from the set. This will take up extra time, so only used when it is required.

QuickHashIntSet::DO_NOT_USE_ZEND_ALLOC

Disables the use of PHP's internal memory manager for internal set structures. With this option enabled, internal allocations will not count towards the memory_limit settings.

QuickHashIntSet::HASHER_NO_HASH

Selects to not use a hashing function, but merely use a modulo to find the bucket list index. This is not faster than normal hashing, and gives more collisions.

QuickHashIntSet::HASHER_JENKINS1

This is the default hashing function to turn the integer hashes into bucket list indexes.

QuickHashIntSet::HASHER_JENKINS2

Selects a variant hashing algorithm.

Sommaire

  • QuickHashIntSet::add — This method adds a new entry to the set
  • QuickHashIntSet::__construct — Creates a new QuickHashIntSet object
  • QuickHashIntSet::delete — This method deletes an entry from the set
  • QuickHashIntSet::exists — This method checks whether a key is part of the set
  • QuickHashIntSet::getSize — Returns the number of elements in the set
  • QuickHashIntSet::loadFromFile — This factory method creates a set from a file
  • QuickHashIntSet::loadFromString — This factory method creates a set from a string
  • QuickHashIntSet::saveToFile — This method stores an in-memory set to disk
  • QuickHashIntSet::saveToString — This method returns a serialized version of the set


This method adds a new entry to the set

  • « QuickHashIntSet
  • QuickHashIntSet::__construct »
  • PHP Manual
  • QuickHashIntSet
  • This method adds a new entry to the set

QuickHashIntSet::add

(PECL quickhash >= Unknown)

QuickHashIntSet::add — This method adds a new entry to the set

Description

public QuickHashIntSet::add(int $key): bool

This method adds a new entry to the set, and returns whether the entry was added. Entries are by default always added unless QuickHashIntSet::CHECK_FOR_DUPES has been passed when the set was created.

Liste de paramètres

key

The key of the entry to add.

Valeurs de retour

true when the entry was added, and false if the entry was not added.

Exemples

Exemple #1 QuickHashIntSet::add() example

<?php
echo "without dupe checking\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 "\nwith dupe checking\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 ) );
?>

Résultat de l'exemple ci-dessus est similaire à :

without dupe checking
bool(false)
bool(true)
bool(true)
bool(true)

with dupe checking
bool(false)
bool(true)
bool(true)
bool(false)


Creates a new QuickHashIntSet object

  • « QuickHashIntSet::add
  • QuickHashIntSet::delete »
  • PHP Manual
  • QuickHashIntSet
  • Creates a new QuickHashIntSet object

QuickHashIntSet::__construct

(PECL quickhash >= Unknown)

QuickHashIntSet::__construct — Creates a new QuickHashIntSet object

Description

public QuickHashIntSet::__construct(int $size, int $options = ?)

This constructor creates a new QuickHashIntSet. The size is the amount of bucket lists to create. The more lists there are, the less collisions you will have. Options are also supported.

Liste de paramètres

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 4 to 4194304.

options

The options that you can pass in are: QuickHashIntSet::CHECK_FOR_DUPES, which makes sure no duplicate entries are added to the set; QuickHashIntSet::DO_NOT_USE_ZEND_ALLOC to not use PHP's internal memory manager as well as one of QuickHashIntSet::HASHER_NO_HASH, QuickHashIntSet::HASHER_JENKINS1 or QuickHashIntSet::HASHER_JENKINS2. These last three configure which hashing algorithm to use. All options can be combined using bitmasks.

Valeurs de retour

Returns a new QuickHashIntSet object.

Exemples

Exemple #1 QuickHashIntSet::__construct() example

<?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
)
);
?>


This method deletes an entry from the set

  • « QuickHashIntSet::__construct
  • QuickHashIntSet::exists »
  • PHP Manual
  • QuickHashIntSet
  • This method deletes an entry from the set

QuickHashIntSet::delete

(PECL quickhash >= Unknown)

QuickHashIntSet::delete — This method deletes an entry from the set

Description

public QuickHashIntSet::delete(int $key): bool

This method deletes an entry from the set, and returns whether the entry was deleted or not. Associated memory structures will not be freed immediately, but rather when the set itself is freed.

Liste de paramètres

key

The key of the entry to delete.

Valeurs de retour

true when the entry was deleted, and false if the entry was not deleted.

Exemples

Exemple #1 QuickHashIntSet::delete() example

<?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 ) );
?>

Résultat de l'exemple ci-dessus est similaire à :

bool(false)
bool(true)
bool(true)
bool(false)
bool(false)


This method checks whether a key is part of the set

  • « QuickHashIntSet::delete
  • QuickHashIntSet::getSize »
  • PHP Manual
  • QuickHashIntSet
  • This method checks whether a key is part of the set

QuickHashIntSet::exists

(PECL quickhash >= Unknown)

QuickHashIntSet::exists — This method checks whether a key is part of the set

Description

public QuickHashIntSet::exists(int $key): bool

This method checks whether an entry with the provided key exists in the set.

Liste de paramètres

key

The key of the entry to check for whether it exists in the set.

Valeurs de retour

Returns true when the entry was found, or false when the entry is not found.

Exemples

Exemple #1 QuickHashIntSet::exists() example

<?php
//generate 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";
?>

Résultat de l'exemple ci-dessus est similaire à :

Creating set: 1263588703.0748
Adding elements: 1263588703.0757
Doing 1000 tests: 1263588703.7851
Done, 898 found: 1263588703.7897


Returns the number of elements in the set

  • « QuickHashIntSet::exists
  • QuickHashIntSet::loadFromFile »
  • PHP Manual
  • QuickHashIntSet
  • Returns the number of elements in the set

QuickHashIntSet::getSize

(PECL quickhash >= Unknown)

QuickHashIntSet::getSize — Returns the number of elements in the set

Description

publicQuickHashIntSet::getSize(): int

Returns the number of elements in the set.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The number of elements in the set.

Exemples

Exemple #1 QuickHashIntSet::getSize() example

<?php
$set = new QuickHashIntSet( 8 );
var_dump( $set->add( 2 ) );
var_dump( $set->add( 3 ) );
var_dump( $set->getSize() );
?>

Résultat de l'exemple ci-dessus est similaire à :

bool(true)
bool(true)
int(2)


This factory method creates a set from a file

  • « QuickHashIntSet::getSize
  • QuickHashIntSet::loadFromString »
  • PHP Manual
  • QuickHashIntSet
  • This factory method creates a set from a file

QuickHashIntSet::loadFromFile

(PECL quickhash >= Unknown)

QuickHashIntSet::loadFromFile — This factory method creates a set from a file

Description

public static QuickHashIntSet::loadFromFile(string $filename, int $size = ?, int $options = ?): QuickHashIntSet

This factory method creates a new set from a definition file on disk. The file format consists of 32 bit signed integers packed together in the Endianness that the system that the code runs on uses.

Liste de paramètres

filename

The filename of the file to read the set from.

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 4 to 4194304.

options

The same options that the class' constructor takes; except that the size option is ignored. It is automatically calculated to be the same as the number of entries in the set, rounded up to the nearest power of two with a maximum limit of 4194304.

Valeurs de retour

Returns a new QuickHashIntSet.

Exemples

Exemple #1 QuickHashIntSet::loadFromFile() example

<?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'
);
}
?>

Résultat de l'exemple ci-dessus est 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


This factory method creates a set from a string

  • « QuickHashIntSet::loadFromFile
  • QuickHashIntSet::saveToFile »
  • PHP Manual
  • QuickHashIntSet
  • This factory method creates a set from a string

QuickHashIntSet::loadFromString

(PECL quickhash >= Unknown)

QuickHashIntSet::loadFromString — This factory method creates a set from a string

Description

public static QuickHashIntSet::loadFromString(string $contents, int $size = ?, int $options = ?): QuickHashIntSet

This factory method creates a new set from a definition in a string. The file format consists of 32 bit signed integers packed together in the Endianness that the system that the code runs on uses.

Liste de paramètres

contents

The string containing a serialized format of the set.

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 4 to 4194304.

options

The same options that the class' constructor takes; except that the size option is ignored. It is automatically calculated to be the same as the number of entries in the set, rounded up to the nearest power of two automatically limited from 64 to 4194304.

Valeurs de retour

Returns a new QuickHashIntSet.

Exemples

Exemple #1 QuickHashIntSet::loadFromString() example

<?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'
);
}
?>

Résultat de l'exemple ci-dessus est 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


This method stores an in-memory set to disk

  • « QuickHashIntSet::loadFromString
  • QuickHashIntSet::saveToString »
  • PHP Manual
  • QuickHashIntSet
  • This method stores an in-memory set to disk

QuickHashIntSet::saveToFile

(PECL quickhash >= Unknown)

QuickHashIntSet::saveToFile — This method stores an in-memory set to disk

Description

public QuickHashIntSet::saveToFile(string $filename): void

This method stores an existing set to a file on disk, in the same format that QuickHashIntSet::loadFromFile() can read.

Liste de paramètres

filename

The filename of the file to store the hash in.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 QuickHashIntSet::saveToFile() example

<?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' );
?>


This method returns a serialized version of the set

  • « QuickHashIntSet::saveToFile
  • QuickHashIntHash »
  • PHP Manual
  • QuickHashIntSet
  • This method returns a serialized version of the set

QuickHashIntSet::saveToString

(PECL quickhash >= Unknown)

QuickHashIntSet::saveToString — This method returns a serialized version of the set

Description

public QuickHashIntSet::saveToString(): string

This method returns a serialized version of the set in the same format that QuickHashIntSet::loadFromString() can read.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

This method returns a string containing a serialized format of the set. Each element is stored as a four byte value in the Endianness that the current system uses.

Exemples

Exemple #1 QuickHashIntSet::saveToString() example

<?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() );
?>


The QuickHashIntHash class

(PECL quickhash >= Unknown)

Introduction

This class wraps around a hash containing integer numbers, where the values are also integer numbers. Hashes are also available as implementation of the ArrayAccess interface.

Hashes can also be iterated over with foreach as the Iterator interface is implemented as well. The order of which elements are returned in is not guaranteed.

Synopsis de la classe

class QuickHashIntHash {
/* Constantes */
const int CHECK_FOR_DUPES = 1;
const int DO_NOT_USE_ZEND_ALLOC = 2;
const int HASHER_NO_HASH = 256;
const int HASHER_JENKINS1 = 512;
const int HASHER_JENKINS2 = 1024;
/* Méthodes */
public add(int $key, int $value = ?): bool
public __construct(int $size, int $options = ?)
public delete(int $key): bool
public exists(int $key): bool
public get(int $key): int
public getSize(): int
public static loadFromFile(string $filename, int $options = ?): QuickHashIntHash
public static loadFromString(string $contents, int $options = ?): QuickHashIntHash
public saveToFile(string $filename): void
public saveToString(): string
public set(int $key, int $value): bool
public update(int $key, int $value): bool
}

Constantes pré-définies

QuickHashIntHash::CHECK_FOR_DUPES

If enabled, adding duplicate elements to a set (through either QuickHashIntHash::add() or QuickHashIntHash::loadFromFile()) will result in those elements to be dropped from the set. This will take up extra time, so only used when it is required.

QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC

Disables the use of PHP's internal memory manager for internal set structures. With this option enabled, internal allocations will not count towards the memory_limit settings.

QuickHashIntHash::HASHER_NO_HASH

Selects to not use a hashing function, but merely use a modulo to find the bucket list index. This is not faster than normal hashing, and gives more collisions.

QuickHashIntHash::HASHER_JENKINS1

This is the default hashing function to turn the integer hashes into bucket list indexes.

QuickHashIntHash::HASHER_JENKINS2

Selects a variant hashing algorithm.

Sommaire

  • QuickHashIntHash::add — This method adds a new entry to the hash
  • QuickHashIntHash::__construct — Creates a new QuickHashIntHash object
  • QuickHashIntHash::delete — This method deletes an entry from the hash
  • QuickHashIntHash::exists — This method checks whether a key is part of the hash
  • QuickHashIntHash::get — This method retrieves a value from the hash by its key
  • QuickHashIntHash::getSize — Returns the number of elements in the hash
  • QuickHashIntHash::loadFromFile — This factory method creates a hash from a file
  • QuickHashIntHash::loadFromString — This factory method creates a hash from a string
  • QuickHashIntHash::saveToFile — This method stores an in-memory hash to disk
  • QuickHashIntHash::saveToString — This method returns a serialized version of the hash
  • QuickHashIntHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
  • QuickHashIntHash::update — This method updates an entry in the hash with a new value


This method adds a new entry to the hash

  • « QuickHashIntHash
  • QuickHashIntHash::__construct »
  • PHP Manual
  • QuickHashIntHash
  • This method adds a new entry to the hash

QuickHashIntHash::add

(PECL quickhash >= Unknown)

QuickHashIntHash::add — This method adds a new entry to the hash

Description

public QuickHashIntHash::add(int $key, int $value = ?): bool

This method adds a new entry to the hash, and returns whether the entry was added. Entries are by default always added unless QuickHashIntHash::CHECK_FOR_DUPES has been passed when the hash was created.

Liste de paramètres

key

The key of the entry to add.

value

The optional value of the entry to add. If no value is specified, 1 will be used.

Valeurs de retour

true when the entry was added, and false if the entry was not added.

Exemples

Exemple #1 QuickHashIntHash::add() example

<?php
echo "without dupe checking\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 "\nwith dupe checking\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 ) );
?>

Résultat de l'exemple ci-dessus est similaire à :

without dupe checking
bool(false)
bool(false)
bool(true)
bool(true)
int(22)
bool(true)

with dupe checking
bool(false)
bool(false)
bool(true)
bool(true)
int(78)
bool(false)

default value
bool(true)
int(1)


Creates a new QuickHashIntHash object

  • « QuickHashIntHash::add
  • QuickHashIntHash::delete »
  • PHP Manual
  • QuickHashIntHash
  • Creates a new QuickHashIntHash object

QuickHashIntHash::__construct

(PECL quickhash >= Unknown)

QuickHashIntHash::__construct — Creates a new QuickHashIntHash object

Description

public QuickHashIntHash::__construct(int $size, int $options = ?)

This constructor creates a new QuickHashIntHash. The size is the amount of bucket lists to create. The more lists there are, the less collisions you will have. Options are also supported.

Liste de paramètres

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 64 to 4194304.

options

The options that you can pass in are: QuickHashIntHash::CHECK_FOR_DUPES, which makes sure no duplicate entries are added to the hash; QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC to not use PHP's internal memory manager as well as one of QuickHashIntHash::HASHER_NO_HASH, QuickHashIntHash::HASHER_JENKINS1 or QuickHashIntHash::HASHER_JENKINS2. These last three configure which hashing algorithm to use. All options can be combined using bitmasks.

Valeurs de retour

Returns a new QuickHashIntHash object.

Exemples

Exemple #1 QuickHashIntHash::__construct() example

<?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
)
);
?>


This method deletes an entry from the hash

  • « QuickHashIntHash::__construct
  • QuickHashIntHash::exists »
  • PHP Manual
  • QuickHashIntHash
  • This method deletes an entry from the hash

QuickHashIntHash::delete

(PECL quickhash >= Unknown)

QuickHashIntHash::delete — This method deletes an entry from the hash

Description

public QuickHashIntHash::delete(int $key): bool

This method deletes an entry from the hash, and returns whether the entry was deleted or not. Associated memory structures will not be freed immediately, but rather when the hash itself is freed.

Elements can not be deleted when the hash is used in an iterator. The method will not throw an exception, but simply return false like would happen with any other deletion failure.

Liste de paramètres

key

The key of the entry to delete.

Valeurs de retour

true when the entry was deleted, and false if the entry was not deleted.

Exemples

Exemple #1 QuickHashIntHash::delete() example

<?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 ) );
?>

Résultat de l'exemple ci-dessus est similaire à :

bool(false)
bool(true)
bool(true)
bool(false)
bool(false)


This method checks whether a key is part of the hash

  • « QuickHashIntHash::delete
  • QuickHashIntHash::get »
  • PHP Manual
  • QuickHashIntHash
  • This method checks whether a key is part of the hash

QuickHashIntHash::exists

(PECL quickhash >= Unknown)

QuickHashIntHash::exists — This method checks whether a key is part of the hash

Description

public QuickHashIntHash::exists(int $key): bool

This method checks whether an entry with the provided key exists in the hash.

Liste de paramètres

key

The key of the entry to check for whether it exists in the hash.

Valeurs de retour

Returns true when the entry was found, or false when the entry is not found.

Exemples

Exemple #1 QuickHashIntHash::exists() example

<?php
//generate 200000 elements
$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";
?>

Résultat de l'exemple ci-dessus est similaire à :

Creating hash: 1263588703.0748
Adding elements: 1263588703.0757
Doing 1000 tests: 1263588703.7851
Done, 898 found: 1263588703.7897


This method retrieves a value from the hash by its key

  • « QuickHashIntHash::exists
  • QuickHashIntHash::getSize »
  • PHP Manual
  • QuickHashIntHash
  • This method retrieves a value from the hash by its key

QuickHashIntHash::get

(PECL quickhash >= Unknown)

QuickHashIntHash::get — This method retrieves a value from the hash by its key

Description

public QuickHashIntHash::get(int $key): int

This method retrieves a value from the hash by its key.

Liste de paramètres

key

The key of the entry to retrieve.

Valeurs de retour

The value if the key exists, or null if the key wasn't part of the hash.

Exemples

Exemple #1 QuickHashIntHash::get() example

<?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 ) );
?>

Résultat de l'exemple ci-dessus est similaire à :

bool(false)
bool(true)
int(1)
bool(true)
int(5)


Returns the number of elements in the hash

  • « QuickHashIntHash::get
  • QuickHashIntHash::loadFromFile »
  • PHP Manual
  • QuickHashIntHash
  • Returns the number of elements in the hash

QuickHashIntHash::getSize

(PECL quickhash >= Unknown)

QuickHashIntHash::getSize — Returns the number of elements in the hash

Description

public QuickHashIntHash::getSize(): int

Returns the number of elements in the hash.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The number of elements in the hash.

Exemples

Exemple #1 QuickHashIntHash::getSize() example

<?php
$hash = new QuickHashIntHash( 8 );
var_dump( $hash->add( 2 ) );
var_dump( $hash->add( 3, 5 ) );
var_dump( $hash->getSize() );
?>

Résultat de l'exemple ci-dessus est similaire à :

bool(true)
bool(true)
int(2)


This factory method creates a hash from a file

  • « QuickHashIntHash::getSize
  • QuickHashIntHash::loadFromString »
  • PHP Manual
  • QuickHashIntHash
  • This factory method creates a hash from a file

QuickHashIntHash::loadFromFile

(PECL quickhash >= Unknown)

QuickHashIntHash::loadFromFile — This factory method creates a hash from a file

Description

public static QuickHashIntHash::loadFromFile(string $filename, int $options = ?): QuickHashIntHash

This factory method creates a new hash from a definition file on disk. The file format consists of a signature 'QH\0x11\0', the number of elements as a 32 bit signed integer in system Endianness, followed by 32 bit signed integers packed together in the Endianness that the system that the code runs on uses. For each hash element there are two 32 bit signed integers stored. The first of each element is the key, and the second is the value belonging to the key. An example could be:

Exemple #1 QuickHash IntHash file format

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 QuickHash IntHash file format

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

The filename of the file to read the hash from.

options

The same options that the class' constructor takes; except that the size option is ignored. It is automatically calculated to be the same as the number of entries in the hash, rounded up to the nearest power of two with a maximum limit of 4194304.

Valeurs de retour

Returns a new QuickHashIntHash.

Exemples

Exemple #3 QuickHashIntHash::loadFromFile() example

<?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'
);
}
?>

Résultat de l'exemple ci-dessus est 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


This factory method creates a hash from a string

  • « QuickHashIntHash::loadFromFile
  • QuickHashIntHash::saveToFile »
  • PHP Manual
  • QuickHashIntHash
  • This factory method creates a hash from a string

QuickHashIntHash::loadFromString

(PECL quickhash >= Unknown)

QuickHashIntHash::loadFromString — This factory method creates a hash from a string

Description

public static QuickHashIntHash::loadFromString(string $contents, int $options = ?): QuickHashIntHash

This factory method creates a new hash from a definition in a string. The file format consists of 32 bit signed integers packed together in the Endianness that the system that the code runs on uses. For each element there are two 32 bit signed integers stored. The first of each element is the key, and the second is the value belonging to the key.

Liste de paramètres

contents

The string containing a serialized format of the hash.

options

The same options that the class' constructor takes; except that the size option is ignored. It is automatically calculated to be the same as the number of entries in the hash, rounded up to the nearest power of two with a maximum limit of 4194304.

Valeurs de retour

Returns a new QuickHashIntHash.

Exemples

Exemple #1 QuickHashIntHash::loadFromString() example

<?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'
);
}
?>

Résultat de l'exemple ci-dessus est 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


This method stores an in-memory hash to disk

  • « QuickHashIntHash::loadFromString
  • QuickHashIntHash::saveToString »
  • PHP Manual
  • QuickHashIntHash
  • This method stores an in-memory hash to disk

QuickHashIntHash::saveToFile

(PECL quickhash >= Unknown)

QuickHashIntHash::saveToFile — This method stores an in-memory hash to disk

Description

public QuickHashIntHash::saveToFile(string $filename): void

This method stores an existing hash to a file on disk, in the same format that QuickHashIntHash::loadFromFile() can read.

Liste de paramètres

filename

The filename of the file to store the hash in.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 QuickHashIntHash::saveToFile() example

<?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' );
?>


This method returns a serialized version of the hash

  • « QuickHashIntHash::saveToFile
  • QuickHashIntHash::set »
  • PHP Manual
  • QuickHashIntHash
  • This method returns a serialized version of the hash

QuickHashIntHash::saveToString

(PECL quickhash >= Unknown)

QuickHashIntHash::saveToString — This method returns a serialized version of the hash

Description

public QuickHashIntHash::saveToString(): string

This method returns a serialized version of the hash in the same format that QuickHashIntHash::loadFromString() can read.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

This method returns a string containing a serialized format of the hash. Each element is stored as a four byte value in the Endianness that the current system uses.

Exemples

Exemple #1 QuickHashIntHash::saveToString() example

<?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() );
?>


This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

  • « QuickHashIntHash::saveToString
  • QuickHashIntHash::update »
  • PHP Manual
  • QuickHashIntHash
  • This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

QuickHashIntHash::set

(PECL quickhash >= Unknown)

QuickHashIntHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

Description

public QuickHashIntHash::set(int $key, int $value): bool

This method tries to update an entry with a new value. In case the entry did not yet exist, it will instead add a new entry. It returns whether the entry was added or update. If there are duplicate keys, only the first found element will get an updated value. Use QuickHashIntHash::CHECK_FOR_DUPES during hash creation to prevent duplicate keys from being part of the hash.

Liste de paramètres

key

The key of the entry to add or update.

value

The new value to set the entry with.

Valeurs de retour

2 if the entry was found and updated, 1 if the entry was newly added or 0 if there was an error.

Exemples

Exemple #1 QuickHashIntHash::set() example

<?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 ) );
?>

Résultat de l'exemple ci-dessus est similaire à :

bool(false)
int(2)
int(16091)
Set->Update
int(1)
int(29906)


This method updates an entry in the hash with a new value

  • « QuickHashIntHash::set
  • QuickHashStringIntHash »
  • PHP Manual
  • QuickHashIntHash
  • This method updates an entry in the hash with a new value

QuickHashIntHash::update

(PECL quickhash >= Unknown)

QuickHashIntHash::update — This method updates an entry in the hash with a new value

Description

public QuickHashIntHash::update(int $key, int $value): bool

This method updates an entry with a new value, and returns whether the entry was update. If there are duplicate keys, only the first found element will get an updated value. Use QuickHashIntHash::CHECK_FOR_DUPES during hash creation to prevent duplicate keys from being part of the hash.

Liste de paramètres

key

The key of the entry to update.

value

The new value to update the entry with.

Valeurs de retour

true when the entry was found and updated, and false if the entry was not part of the hash already.

Exemples

Exemple #1 QuickHashIntHash::update() example

<?php
$hash = new QuickHashIntHash( 1024 );

var_dump( $hash->add( 141421, 173205 ) );
var_dump( $hash->update( 141421, 223606 ) );
var_dump( $hash->get( 141421 ) );
?>

Résultat de l'exemple ci-dessus est similaire à :

bool(true)
bool(true)
int(223606)


The QuickHashStringIntHash class

(No version information available, might only be in Git)

Introduction

This class wraps around a hash containing strings, where the values are integer numbers. Hashes are also available as implementation of the ArrayAccess interface.

Hashes can also be iterated over with foreach as the Iterator interface is implemented as well. The order of which elements are returned in is not guaranteed.

Synopsis de la classe

class QuickHashStringIntHash {
/* Constantes */
const int CHECK_FOR_DUPES = 1;
const int DO_NOT_USE_ZEND_ALLOC = 2;
/* Méthodes */
public add(string $key, int $value): bool
public __construct(int $size, int $options = 0)
public delete(string $key): bool
public exists(string $key): bool
public get(string $key): mixed
public getSize(): int
public static loadFromFile(string $filename, int $size = 0, int $options = 0): QuickHashStringIntHash
public static loadFromString(string $contents, int $size = 0, int $options = 0): QuickHashStringIntHash
public saveToFile(string $filename): void
public saveToString(): string
public set(string $key, int $value): int
public update(string $key, int $value): bool
}

Constantes pré-définies

QuickHashStringIntHash::CHECK_FOR_DUPES

If enabled, adding duplicate elements to a set (through either QuickHashStringIntHash::add() or QuickHashStringIntHash::loadFromFile()) will result in those elements to be dropped from the set. This will take up extra time, so only used when it is required.

QuickHashStringIntHash::DO_NOT_USE_ZEND_ALLOC

Disables the use of PHP's internal memory manager for internal set structures. With this option enabled, internal allocations will not count towards the memory_limit settings.

Sommaire

  • QuickHashStringIntHash::add — This method adds a new entry to the hash
  • QuickHashStringIntHash::__construct — Creates a new QuickHashStringIntHash object
  • QuickHashStringIntHash::delete — This method deletes an entry from the hash
  • QuickHashStringIntHash::exists — This method checks whether a key is part of the hash
  • QuickHashStringIntHash::get — This method retrieves a value from the hash by its key
  • QuickHashStringIntHash::getSize — Returns the number of elements in the hash
  • QuickHashStringIntHash::loadFromFile — This factory method creates a hash from a file
  • QuickHashStringIntHash::loadFromString — This factory method creates a hash from a string
  • QuickHashStringIntHash::saveToFile — This method stores an in-memory hash to disk
  • QuickHashStringIntHash::saveToString — This method returns a serialized version of the hash
  • QuickHashStringIntHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
  • QuickHashStringIntHash::update — This method updates an entry in the hash with a new value


This method adds a new entry to the hash

  • « QuickHashStringIntHash
  • QuickHashStringIntHash::__construct »
  • PHP Manual
  • QuickHashStringIntHash
  • This method adds a new entry to the hash

QuickHashStringIntHash::add

(No version information available, might only be in Git)

QuickHashStringIntHash::add — This method adds a new entry to the hash

Description

public QuickHashStringIntHash::add(string $key, int $value): bool

This method adds a new entry to the hash, and returns whether the entry was added. Entries are by default always added unless QuickHashStringIntHash::CHECK_FOR_DUPES has been passed when the hash was created.

Liste de paramètres

key

The key of the entry to add.

value

The value of the entry to add.

Valeurs de retour

true when the entry was added, and false if the entry was not added.

Exemples

Exemple #1 QuickHashStringIntHash::add() example

<?php
echo "without dupe checking\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 "\nwith dupe checking\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 ) );
?>

Résultat de l'exemple ci-dessus est similaire à :

without dupe checking
object(QuickHashStringIntHash)#1 (0) {
}
bool(false)
bool(false)
bool(true)
bool(true)
int(22)
bool(true)

with dupe checking
object(QuickHashStringIntHash)#2 (0) {
}
bool(false)
bool(false)
bool(true)
bool(true)
int(78)
bool(false)


Creates a new QuickHashStringIntHash object

  • « QuickHashStringIntHash::add
  • QuickHashStringIntHash::delete »
  • PHP Manual
  • QuickHashStringIntHash
  • Creates a new QuickHashStringIntHash object

QuickHashStringIntHash::__construct

(No version information available, might only be in Git)

QuickHashStringIntHash::__construct — Creates a new QuickHashStringIntHash object

Description

public QuickHashStringIntHash::__construct(int $size, int $options = 0)

This constructor creates a new QuickHashStringIntHash. The size is the amount of bucket lists to create. The more lists there are, the less collisions you will have. Options are also supported.

Liste de paramètres

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 64 to 4194304.

options

The options that you can pass in are: QuickHashStringIntHash::CHECK_FOR_DUPES, which makes sure no duplicate entries are added to the hash and QuickHashStringIntHash::DO_NOT_USE_ZEND_ALLOC to not use PHP's internal memory manager.

Valeurs de retour

Returns a new QuickHashStringIntHash object.

Exemples

Exemple #1 QuickHashStringIntHash::__construct() example

<?php
var_dump( new QuickHashStringIntHash( 1024 ) );
var_dump( new QuickHashStringIntHash( 1024, QuickHashStringIntHash::CHECK_FOR_DUPES ) );
?>


This method deletes an entry from the hash

  • « QuickHashStringIntHash::__construct
  • QuickHashStringIntHash::exists »
  • PHP Manual
  • QuickHashStringIntHash
  • This method deletes an entry from the hash

QuickHashStringIntHash::delete

(No version information available, might only be in Git)

QuickHashStringIntHash::delete — This method deletes an entry from the hash

Description

public QuickHashStringIntHash::delete(string $key): bool

This method deletes an entry from the hash, and returns whether the entry was deleted or not. Associated memory structures will not be freed immediately, but rather when the hash itself is freed.

Elements can not be deleted when the hash is used in an iterator. The method will not throw an exception, but simply return false like would happen with any other deletion failure.

Liste de paramètres

key

The key of the entry to delete.

Valeurs de retour

true when the entry was deleted, and false if the entry was not deleted.

Exemples

Exemple #1 QuickHashStringIntHash::delete() example

<?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' ) );
?>

Résultat de l'exemple ci-dessus est similaire à :

bool(false)
bool(true)
int(5)
bool(true)
bool(false)
bool(false)
bool(false)


This method checks whether a key is part of the hash

  • « QuickHashStringIntHash::delete
  • QuickHashStringIntHash::get »
  • PHP Manual
  • QuickHashStringIntHash
  • This method checks whether a key is part of the hash

QuickHashStringIntHash::exists

(No version information available, might only be in Git)

QuickHashStringIntHash::exists — This method checks whether a key is part of the hash

Description

public QuickHashStringIntHash::exists(string $key): bool

This method checks whether an entry with the provided key exists in the hash.

Liste de paramètres

key

The key of the entry to check for whether it exists in the hash.

Valeurs de retour

Returns true when the entry was found, or false when the entry is not found.


This method retrieves a value from the hash by its key

  • « QuickHashStringIntHash::exists
  • QuickHashStringIntHash::getSize »
  • PHP Manual
  • QuickHashStringIntHash
  • This method retrieves a value from the hash by its key

QuickHashStringIntHash::get

(No version information available, might only be in Git)

QuickHashStringIntHash::get — This method retrieves a value from the hash by its key

Description

public QuickHashStringIntHash::get(string $key): mixed

This method retrieves a value from the hash by its key.

Liste de paramètres

key

The key of the entry to retrieve.

Valeurs de retour

The value if the key exists, or null if the key wasn't part of the hash.

Exemples

Exemple #1 QuickHashStringIntHash::get() example

<?php
$hash = new QuickHashStringIntHash( 8 );
var_dump( $hash->get( "one" ) );

var_dump( $hash->add( "two", 2 ) );
var_dump( $hash->get( "two" ) );
?>

Résultat de l'exemple ci-dessus est similaire à :

bool(false)
bool(true)
int(2)


Returns the number of elements in the hash

  • « QuickHashStringIntHash::get
  • QuickHashStringIntHash::loadFromFile »
  • PHP Manual
  • QuickHashStringIntHash
  • Returns the number of elements in the hash

QuickHashStringIntHash::getSize

(No version information available, might only be in Git)

QuickHashStringIntHash::getSize — Returns the number of elements in the hash

Description

public QuickHashStringIntHash::getSize(): int

Returns the number of elements in the hash.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The number of elements in the hash.

Exemples

Exemple #1 QuickHashStringIntHash::getSize() example

<?php
$hash = new QuickHashStringIntHash( 8 );
var_dump( $hash->add( "two", 2 ) );
var_dump( $hash->add( "three", 5 ) );
var_dump( $hash->getSize() );
?>

Résultat de l'exemple ci-dessus est similaire à :

bool(true)
bool(true)
int(2)


This factory method creates a hash from a file

  • « QuickHashStringIntHash::getSize
  • QuickHashStringIntHash::loadFromString »
  • PHP Manual
  • QuickHashStringIntHash
  • This factory method creates a hash from a file

QuickHashStringIntHash::loadFromFile

(No version information available, might only be in Git)

QuickHashStringIntHash::loadFromFile — This factory method creates a hash from a file

Description

public static QuickHashStringIntHash::loadFromFile(string $filename, int $size = 0, int $options = 0): QuickHashStringIntHash

This factory method creates a new hash from a definition file on disk. The file format consists of a signature 'QH\0x21\0', the number of elements as a 32 bit signed integer in system Endianness, an unsigned 32 bit integer containing the number of element data to follow in characters. This element data contains all the strings. The follows another signed 32 bit integer containing the number of bucket lists. After the header and the strings, the elements follow. They are ordered by bucket list so that the keys don't have to be hashed in order to restore the hash. For each bucket list, the following information is stored (all as 32 bit integers): the bucket list index, the number of elements in that list, and then in pairs of two unsigned 32 bit integers the elements, where the first one is the index into the string list containing the keys, and the second one the value. An example could be:

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 QuickHash IntHash file format

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

The filename of the file to read the hash from.

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 4 to 4194304.

options

The same options that the class' constructor takes; except that the size option is ignored. It is read from the file format (unlike the QuickHashIntHash and QuickHashIntStringHash classes, where it is automatically calculated from the number of entries in the hash.)

Valeurs de retour

Returns a new QuickHashStringIntHash.

Exemples

Exemple #3 QuickHashStringIntHash::loadFromFile() example

<?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";
}
?>

Résultat de l'exemple ci-dessus est 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


This factory method creates a hash from a string

  • « QuickHashStringIntHash::loadFromFile
  • QuickHashStringIntHash::saveToFile »
  • PHP Manual
  • QuickHashStringIntHash
  • This factory method creates a hash from a string

QuickHashStringIntHash::loadFromString

(No version information available, might only be in Git)

QuickHashStringIntHash::loadFromString — This factory method creates a hash from a string

Description

public static QuickHashStringIntHash::loadFromString(string $contents, int $size = 0, int $options = 0): QuickHashStringIntHash

This factory method creates a new hash from a definition in a string. The format is the same as the one used in "loadFromFile".

Liste de paramètres

contents

The string containing a serialized format of the hash.

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 4 to 4194304.

options

The same options that the class' constructor takes; except that the size option is ignored. It is automatically calculated to be the same as the number of entries in the hash, rounded up to the nearest power of two with a maximum limit of 4194304.

Valeurs de retour

Returns a new QuickHashStringIntHash.

Exemples

Exemple #1 QuickHashStringIntHash::loadFromString() example

<?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";
}
?>

Résultat de l'exemple ci-dessus est 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


This method stores an in-memory hash to disk

  • « QuickHashStringIntHash::loadFromString
  • QuickHashStringIntHash::saveToString »
  • PHP Manual
  • QuickHashStringIntHash
  • This method stores an in-memory hash to disk

QuickHashStringIntHash::saveToFile

(No version information available, might only be in Git)

QuickHashStringIntHash::saveToFile — This method stores an in-memory hash to disk

Description

public QuickHashStringIntHash::saveToFile(string $filename): void

This method stores an existing hash to a file on disk, in the same format that loadFromFile() can read.

Liste de paramètres

filename

The filename of the file to store the hash in.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 QuickHashStringIntHash::saveToFile() example

<?php
$hash = new QuickHashStringIntHash( 1024 );
var_dump( $hash->add( "forty three", 42 ) );
var_dump( $hash->add( "fifty two", 52 ) );

$hash->saveToFile( '/tmp/test.hash.string' );
?>


This method returns a serialized version of the hash

  • « QuickHashStringIntHash::saveToFile
  • QuickHashStringIntHash::set »
  • PHP Manual
  • QuickHashStringIntHash
  • This method returns a serialized version of the hash

QuickHashStringIntHash::saveToString

(No version information available, might only be in Git)

QuickHashStringIntHash::saveToString — This method returns a serialized version of the hash

Description

public QuickHashStringIntHash::saveToString(): string

This method returns a serialized version of the hash in the same format that QuickHashStringIntHash::loadFromString() can read.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

This method returns a serialized format of an existing hash, in the same format that QuickHashStringIntHash::loadFromString() can read.

Exemples

Exemple #1 QuickHashStringIntHash::saveToString() example

<?php
$hash = new QuickHashStringIntHash( 1024 );
var_dump( $hash->add( "forty three", 42 ) );
var_dump( $hash->add( "fifty two", 52 ) );

var_dump( $hash->saveToString() );
?>


This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

  • « QuickHashStringIntHash::saveToString
  • QuickHashStringIntHash::update »
  • PHP Manual
  • QuickHashStringIntHash
  • This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

QuickHashStringIntHash::set

(No version information available, might only be in Git)

QuickHashStringIntHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

Description

public QuickHashStringIntHash::set(string $key, int $value): int

This method tries to update an entry with a new value. In case the entry did not yet exist, it will instead add a new entry. It returns whether the entry was added or update. If there are duplicate keys, only the first found element will get an updated value. Use QuickHashStringIntHash::CHECK_FOR_DUPES during hash creation to prevent duplicate keys from being part of the hash.

Liste de paramètres

key

The key of the entry to add or update.

value

The value of the entry to add. If a non-string is passed, it will be converted to a string automatically if possible.

Valeurs de retour

2 if the entry was found and updated, 1 if the entry was newly added or 0 if there was an error.

Exemples

Exemple #1 QuickHashStringIntHash::set() example

<?php
$hash = new QuickHashStringIntHash( 1024 );

echo "Set->Add\n";
var_dump( $hash->get( "forty six thousand six hundred ninety two" ) );
var_dump( $hash->set( "forty six thousand six hundred ninety two", 16091 ) );
var_dump( $hash->get( "forty six thousand six hundred ninety two" ) );

echo "Set->Update\n";
var_dump( $hash->set( "forty six thousand six hundred ninety two", 29906 ) );
var_dump( $hash->get( "forty six thousand six hundred ninety two" ) );
?>

Résultat de l'exemple ci-dessus est similaire à :

Set->Add
bool(false)
int(2)
int(16091)
Set->Update
int(1)
int(29906)


This method updates an entry in the hash with a new value

  • « QuickHashStringIntHash::set
  • QuickHashIntStringHash »
  • PHP Manual
  • QuickHashStringIntHash
  • This method updates an entry in the hash with a new value

QuickHashStringIntHash::update

(No version information available, might only be in Git)

QuickHashStringIntHash::update — This method updates an entry in the hash with a new value

Description

public QuickHashStringIntHash::update(string $key, int $value): bool

This method updates an entry with a new value, and returns whether the entry was update. If there are duplicate keys, only the first found element will get an updated value. Use QuickHashStringIntHash::CHECK_FOR_DUPES during hash creation to prevent duplicate keys from being part of the hash.

Liste de paramètres

key

The key of the entry to update.

value

The new value for the entry. If a non-string is passed, it will be converted to a string automatically if possible.

Valeurs de retour

true when the entry was found and updated, and false if the entry was not part of the hash already.

Exemples

Exemple #1 QuickHashStringIntHash::update() example

<?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";
?>

Résultat de l'exemple ci-dessus est similaire à :

314159265
314159265
bool(true)
bool(false)
314159265
314159266


The QuickHashIntStringHash class

(PECL quickhash >= Unknown)

Introduction

This class wraps around a hash containing integer numbers, where the values are strings. Hashes are also available as implementation of the ArrayAccess interface.

Hashes can also be iterated over with foreach as the Iterator interface is implemented as well. The order of which elements are returned in is not guaranteed.

Synopsis de la classe

class QuickHashIntStringHash {
/* Constantes */
const int CHECK_FOR_DUPES = 1;
const int DO_NOT_USE_ZEND_ALLOC = 2;
const int HASHER_NO_HASH = 256;
const int HASHER_JENKINS1 = 512;
const int HASHER_JENKINS2 = 1024;
/* Méthodes */
public add(int $key, string $value): bool
public __construct(int $size, int $options = 0)
public delete(int $key): bool
public exists(int $key): bool
public get(int $key): mixed
public getSize(): int
public static loadFromFile(string $filename, int $size = 0, int $options = 0): QuickHashIntStringHash
public static loadFromString(string $contents, int $size = 0, int $options = 0): QuickHashIntStringHash
public saveToFile(string $filename): void
public saveToString(): string
public set(int $key, string $value): int
public update(int $key, string $value): bool
}

Constantes pré-définies

QuickHashIntStringHash::CHECK_FOR_DUPES

If enabled, adding duplicate elements to a set (through either QuickHashIntStringHash::add() or QuickHashIntStringHash::loadFromFile()) will result in those elements to be dropped from the set. This will take up extra time, so only used when it is required.

QuickHashIntStringHash::DO_NOT_USE_ZEND_ALLOC

Disables the use of PHP's internal memory manager for internal set structures. With this option enabled, internal allocations will not count towards the memory_limit settings.

QuickHashIntStringHash::HASHER_NO_HASH

Selects to not use a hashing function, but merely use a modulo to find the bucket list index. This is not faster than normal hashing, and gives more collisions.

QuickHashIntStringHash::HASHER_JENKINS1

This is the default hashing function to turn the integer hashes into bucket list indexes.

QuickHashIntStringHash::HASHER_JENKINS2

Selects a variant hashing algorithm.

Sommaire

  • QuickHashIntStringHash::add — This method adds a new entry to the hash
  • QuickHashIntStringHash::__construct — Creates a new QuickHashIntStringHash object
  • QuickHashIntStringHash::delete — This method deletes an entry from the hash
  • QuickHashIntStringHash::exists — This method checks whether a key is part of the hash
  • QuickHashIntStringHash::get — This method retrieves a value from the hash by its key
  • QuickHashIntStringHash::getSize — Returns the number of elements in the hash
  • QuickHashIntStringHash::loadFromFile — This factory method creates a hash from a file
  • QuickHashIntStringHash::loadFromString — This factory method creates a hash from a string
  • QuickHashIntStringHash::saveToFile — This method stores an in-memory hash to disk
  • QuickHashIntStringHash::saveToString — This method returns a serialized version of the hash
  • QuickHashIntStringHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
  • QuickHashIntStringHash::update — This method updates an entry in the hash with a new value


This method adds a new entry to the hash

  • « QuickHashIntStringHash
  • QuickHashIntStringHash::__construct »
  • PHP Manual
  • QuickHashIntStringHash
  • This method adds a new entry to the hash

QuickHashIntStringHash::add

(PECL quickhash >= Unknown)

QuickHashIntStringHash::add — This method adds a new entry to the hash

Description

public QuickHashIntStringHash::add(int $key, string $value): bool

This method adds a new entry to the hash, and returns whether the entry was added. Entries are by default always added unless QuickHashIntStringHash::CHECK_FOR_DUPES has been passed when the hash was created.

Liste de paramètres

key

The key of the entry to add.

value

The value of the entry to add. If a non-string is passed, it will be converted to a string automatically if possible.

Valeurs de retour

true when the entry was added, and false if the entry was not added.

Exemples

Exemple #1 QuickHashIntStringHash::add() example

<?php
echo "without dupe checking\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 "\nwith dupe checking\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" ) );
?>

Résultat de l'exemple ci-dessus est similaire à :

without dupe checking
bool(false)
bool(false)
bool(true)
bool(true)
string(10) "twenty two"
bool(true)

with dupe checking
bool(false)
bool(false)
bool(true)
bool(true)
string(13) "seventy eight"
bool(false)


Creates a new QuickHashIntStringHash object

  • « QuickHashIntStringHash::add
  • QuickHashIntStringHash::delete »
  • PHP Manual
  • QuickHashIntStringHash
  • Creates a new QuickHashIntStringHash object

QuickHashIntStringHash::__construct

(PECL quickhash >= Unknown)

QuickHashIntStringHash::__construct — Creates a new QuickHashIntStringHash object

Description

public QuickHashIntStringHash::__construct(int $size, int $options = 0)

This constructor creates a new QuickHashIntStringHash. The size is the amount of bucket lists to create. The more lists there are, the less collisions you will have. Options are also supported.

Liste de paramètres

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 64 to 4194304.

options

The options that you can pass in are: QuickHashIntStringHash::CHECK_FOR_DUPES, which makes sure no duplicate entries are added to the hash; QuickHashIntStringHash::DO_NOT_USE_ZEND_ALLOC to not use PHP's internal memory manager as well as one of QuickHashIntStringHash::HASHER_NO_HASH, QuickHashIntStringHash::HASHER_JENKINS1 or QuickHashIntStringHash::HASHER_JENKINS2. These last three configure which hashing algorithm to use. All options can be combined using bitmasks.

Valeurs de retour

Returns a new QuickHashIntStringHash object.

Exemples

Exemple #1 QuickHashIntStringHash::__construct() example

<?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
)
);
?>


This method deletes an entry from the hash

  • « QuickHashIntStringHash::__construct
  • QuickHashIntStringHash::exists »
  • PHP Manual
  • QuickHashIntStringHash
  • This method deletes an entry from the hash

QuickHashIntStringHash::delete

(PECL quickhash >= Unknown)

QuickHashIntStringHash::delete — This method deletes an entry from the hash

Description

public QuickHashIntStringHash::delete(int $key): bool

This method deletes an entry from the hash, and returns whether the entry was deleted or not. Associated memory structures will not be freed immediately, but rather when the hash itself is freed.

Elements can not be deleted when the hash is used in an iterator. The method will not throw an exception, but simply return false like would happen with any other deletion failure.

Liste de paramètres

key

The key of the entry to delete.

Valeurs de retour

true when the entry was deleted, and false if the entry was not deleted.

Exemples

Exemple #1 QuickHashIntStringHash::delete() example

<?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 ) );
?>

Résultat de l'exemple ci-dessus est similaire à :

bool(false)
bool(true)
bool(true)
bool(false)
bool(false)


This method checks whether a key is part of the hash

  • « QuickHashIntStringHash::delete
  • QuickHashIntStringHash::get »
  • PHP Manual
  • QuickHashIntStringHash
  • This method checks whether a key is part of the hash

QuickHashIntStringHash::exists

(PECL quickhash >= Unknown)

QuickHashIntStringHash::exists — This method checks whether a key is part of the hash

Description

public QuickHashIntStringHash::exists(int $key): bool

This method checks whether an entry with the provided key exists in the hash.

Liste de paramètres

key

The key of the entry to check for whether it exists in the hash.

Valeurs de retour

Returns true when the entry was found, or false when the entry is not found.


This method retrieves a value from the hash by its key

  • « QuickHashIntStringHash::exists
  • QuickHashIntStringHash::getSize »
  • PHP Manual
  • QuickHashIntStringHash
  • This method retrieves a value from the hash by its key

QuickHashIntStringHash::get

(PECL quickhash >= Unknown)

QuickHashIntStringHash::get — This method retrieves a value from the hash by its key

Description

public QuickHashIntStringHash::get(int $key): mixed

This method retrieves a value from the hash by its key.

Liste de paramètres

key

The key of the entry to retrieve.

Valeurs de retour

The value if the key exists, or null if the key wasn't part of the hash.

Exemples

Exemple #1 QuickHashIntStringHash::get() example

<?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 ) );
?>

Résultat de l'exemple ci-dessus est similaire à :

bool(false)
bool(true)
string(3) "two"
bool(true)
string(1) "5"


Returns the number of elements in the hash

  • « QuickHashIntStringHash::get
  • QuickHashIntStringHash::loadFromFile »
  • PHP Manual
  • QuickHashIntStringHash
  • Returns the number of elements in the hash

QuickHashIntStringHash::getSize

(PECL quickhash >= Unknown)

QuickHashIntStringHash::getSize — Returns the number of elements in the hash

Description

public QuickHashIntStringHash::getSize(): int

Returns the number of elements in the hash.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The number of elements in the hash.

Exemples

Exemple #1 QuickHashIntStringHash::getSize() example

<?php
$hash = new QuickHashIntStringHash( 8 );
var_dump( $hash->add( 2, "two" ) );
var_dump( $hash->add( 3, 5 ) );
var_dump( $hash->getSize() );
?>

Résultat de l'exemple ci-dessus est similaire à :

bool(true)
bool(true)
int(2)


This factory method creates a hash from a file

  • « QuickHashIntStringHash::getSize
  • QuickHashIntStringHash::loadFromString »
  • PHP Manual
  • QuickHashIntStringHash
  • This factory method creates a hash from a file

QuickHashIntStringHash::loadFromFile

(PECL quickhash >= Unknown)

QuickHashIntStringHash::loadFromFile — This factory method creates a hash from a file

Description

public static QuickHashIntStringHash::loadFromFile(string $filename, int $size = 0, int $options = 0): QuickHashIntStringHash

This factory method creates a new hash from a definition file on disk. The file format consists of a signature 'QH\0x12\0', the number of elements as a 32 bit signed integer in system Endianness, an unsigned 32 bit integer containing the number of element data to follow in characters. This element data contains all the strings. After the header and the strings, the elements follow in pairs of two unsigned 32 bit integers where the first one is the key, and the second one the index in the element data string. An example could be:

Exemple #1 QuickHash IntString file format

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 QuickHash IntString file format

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

The filename of the file to read the hash from.

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 4 to 4194304.

options

The same options that the class' constructor takes; except that the size option is ignored. It is automatically calculated to be the same as the number of entries in the hash, rounded up to the nearest power of two with a maximum limit of 4194304.

Valeurs de retour

Returns a new QuickHashIntStringHash.

Exemples

Exemple #3 QuickHashIntStringHash::loadFromFile() example

<?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'
);
}
?>

Résultat de l'exemple ci-dessus est 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


This factory method creates a hash from a string

  • « QuickHashIntStringHash::loadFromFile
  • QuickHashIntStringHash::saveToFile »
  • PHP Manual
  • QuickHashIntStringHash
  • This factory method creates a hash from a string

QuickHashIntStringHash::loadFromString

(PECL quickhash >= Unknown)

QuickHashIntStringHash::loadFromString — This factory method creates a hash from a string

Description

public static QuickHashIntStringHash::loadFromString(string $contents, int $size = 0, int $options = 0): QuickHashIntStringHash

This factory method creates a new hash from a definition in a string. The format is the same as the one used in "loadFromFile".

Liste de paramètres

contents

The string containing a serialized format of the hash.

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 4 to 4194304.

options

The same options that the class' constructor takes; except that the size option is ignored. It is automatically calculated to be the same as the number of entries in the hash, rounded up to the nearest power of two with a maximum limit of 4194304.

Valeurs de retour

Returns a new QuickHashIntStringHash.

Exemples

Exemple #1 QuickHashIntStringHash::loadFromString() example

<?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'
);
}
?>

Résultat de l'exemple ci-dessus est 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


This method stores an in-memory hash to disk

  • « QuickHashIntStringHash::loadFromString
  • QuickHashIntStringHash::saveToString »
  • PHP Manual
  • QuickHashIntStringHash
  • This method stores an in-memory hash to disk

QuickHashIntStringHash::saveToFile

(PECL quickhash >= Unknown)

QuickHashIntStringHash::saveToFile — This method stores an in-memory hash to disk

Description

public QuickHashIntStringHash::saveToFile(string $filename): void

This method stores an existing hash to a file on disk, in the same format that loadFromFile() can read.

Liste de paramètres

filename

The filename of the file to store the hash in.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 QuickHashIntStringHash::saveToFile() example

<?php
$hash = new QuickHashIntStringHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, "forty three" ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, "fifty two" ) );

$hash->saveToFile( '/tmp/test.string.hash' );
?>


This method returns a serialized version of the hash

  • « QuickHashIntStringHash::saveToFile
  • QuickHashIntStringHash::set »
  • PHP Manual
  • QuickHashIntStringHash
  • This method returns a serialized version of the hash

QuickHashIntStringHash::saveToString

(PECL quickhash >= Unknown)

QuickHashIntStringHash::saveToString — This method returns a serialized version of the hash

Description

public QuickHashIntStringHash::saveToString(): string

This method returns a serialized version of the hash in the same format that QuickHashIntStringHash::loadFromString() can read.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

This method returns a string containing a serialized format of the hash. Each element is stored as a four byte value in the Endianness that the current system uses.

Exemples

Exemple #1 QuickHashIntStringHash::saveToString() example

<?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() );
?>


This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

  • « QuickHashIntStringHash::saveToString
  • QuickHashIntStringHash::update »
  • PHP Manual
  • QuickHashIntStringHash
  • This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

QuickHashIntStringHash::set

(PECL quickhash >= Unknown)

QuickHashIntStringHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

Description

public QuickHashIntStringHash::set(int $key, string $value): int

This method tries to update an entry with a new value. In case the entry did not yet exist, it will instead add a new entry. It returns whether the entry was added or update. If there are duplicate keys, only the first found element will get an updated value. Use QuickHashIntStringHash::CHECK_FOR_DUPES during hash creation to prevent duplicate keys from being part of the hash.

Liste de paramètres

key

The key of the entry to add or update.

value

The value of the entry to add. If a non-string is passed, it will be converted to a string automatically if possible.

Valeurs de retour

2 if the entry was found and updated, 1 if the entry was newly added or 0 if there was an error.

Exemples

Exemple #1 QuickHashIntStringHash::set() example

<?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 ) );
?>

Résultat de l'exemple ci-dessus est 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"


This method updates an entry in the hash with a new value

  • « QuickHashIntStringHash::set
  • Réflexion »
  • PHP Manual
  • QuickHashIntStringHash
  • This method updates an entry in the hash with a new value

QuickHashIntStringHash::update

(PECL quickhash >= Unknown)

QuickHashIntStringHash::update — This method updates an entry in the hash with a new value

Description

public QuickHashIntStringHash::update(int $key, string $value): bool

This method updates an entry with a new value, and returns whether the entry was update. If there are duplicate keys, only the first found element will get an updated value. Use QuickHashIntStringHash::CHECK_FOR_DUPES during hash creation to prevent duplicate keys from being part of the hash.

Liste de paramètres

key

The key of the entry to update.

value

The new value for the entry. If a non-string is passed, it will be converted to a string automatically if possible.

Valeurs de retour

true when the entry was found and updated, and false if the entry was not part of the hash already.

Exemples

Exemple #1 QuickHashIntStringHash::update() example

<?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";
?>

Résultat de l'exemple ci-dessus est similaire à :

--
a lot
bool(true)
bool(false)
--
a lot plus one


Réflexion

  • 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 — Exporte
    • Reflection::getModifierNames — Récupère le nom des modificateurs
  • ReflectionClass — The ReflectionClass class
    • ReflectionClass::__construct — Construit une ReflectionClass
    • ReflectionClass::export — Exporte une classe
    • ReflectionClass::getAttributes — Récupère les attributs d'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 de documentation
    • ReflectionClass::getEndLine — Récupère la fin d'une ligne
    • ReflectionClass::getExtension — Récupère un objet ReflectionExtension pour l'extension qui définit 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 où la classe a été déclaré
    • ReflectionClass::getInterfaceNames — Récupère les noms des interfaces
    • ReflectionClass::getInterfaces — Récupère les interfaces
    • ReflectionClass::getMethod — Récupère un ReflectionMethod pour une méthode de classe
    • ReflectionClass::getMethods — Récupère un tableau des méthodes
    • ReflectionClass::getModifiers — Récupère les modificateurs de classe
    • 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::getReflectionConstant — Récupère un ReflectionClassConstant pour une constante d'une classe
    • ReflectionClass::getReflectionConstants — Récupère les constantes de 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 — Vérifie si la classe est anonyme
    • ReflectionClass::isCloneable — Renseigne à propos de la propriété de duplication de la classe
    • ReflectionClass::isEnum — Vérifie si une classe est une énumération
    • 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::isIterable — Vérifie si cette classe est itérable
    • ReflectionClass::isIterateable — Alias de ReflectionClass::isIterable
    • ReflectionClass::isReadOnly — Vérifie si une classe est en lecture seule
    • 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
  • ReflectionClassConstant — La classe ReflectionClassConstant
    • ReflectionClassConstant::__construct — Construit une ReflectionClassConstant
    • ReflectionClassConstant::export — Exporte
    • ReflectionClassConstant::getAttributes — Gets Attributes
    • ReflectionClassConstant::getDeclaringClass — Récupère la classe déclarante
    • ReflectionClassConstant::getDocComment — Récupère le commentaire de documentation
    • ReflectionClassConstant::getModifiers — Récupère les modificateurs de la constante de classe
    • ReflectionClassConstant::getName — Récupère le nom de la constante
    • ReflectionClassConstant::getValue — Récupère la valeur
    • ReflectionClassConstant::isEnumCase — Checks if class constant is an Enum case
    • ReflectionClassConstant::isFinal — Checks if class constant is final
    • ReflectionClassConstant::isPrivate — Vérifie si la constante de classe est privée
    • ReflectionClassConstant::isProtected — Vérifie si la constante de classe est protégée
    • ReflectionClassConstant::isPublic — Vérifie si la constante de classe est publique
    • ReflectionClassConstant::__toString — Retourne la représentation sous forme de chaîne de caractères de l'objet ReflectionClassConstant
  • ReflectionEnum — La classe ReflectionEnum
    • ReflectionEnum::__construct — Instantiates a ReflectionEnum object
    • ReflectionEnum::getBackingType — Gets the backing type of an Enum, if any
    • ReflectionEnum::getCase — Returns a specific case of an Enum
    • ReflectionEnum::getCases — Returns a list of all cases on an Enum
    • ReflectionEnum::hasCase — Checks for a case on an Enum
    • ReflectionEnum::isBacked — Determines if an Enum is a Backed Enum
  • ReflectionEnumUnitCase — La classe ReflectionEnumUnitCase
    • ReflectionEnumUnitCase::__construct — Instantiates a ReflectionEnumUnitCase object
    • ReflectionEnumUnitCase::getEnum — Gets the reflection of the enum of this case
    • ReflectionEnumUnitCase::getValue — Gets the enum case object described by this reflection object
  • ReflectionEnumBackedCase — La classe ReflectionEnumBackedCase
    • ReflectionEnumBackedCase::__construct — Instantiates a ReflectionEnumBackedCase object
    • ReflectionEnumBackedCase::getBackingValue — Gets the scalar value backing this Enum case
  • ReflectionZendExtension — La classe ReflectionZendExtension
    • ReflectionZendExtension::__clone — Gestionnaire de clonage
    • ReflectionZendExtension::__construct — Construit un objet ReflectionZendExtension
    • 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 pour la fonction
    • ReflectionFunction::invoke — Invoque une fonction
    • ReflectionFunction::invokeArgs — Invoque les arguments d'une fonction
    • ReflectionFunction::isAnonymous — Checks if a function is anonymous
    • ReflectionFunction::isDisabled — Vérifie si une fonction est désactivée
    • ReflectionFunction::__toString — Retourne une représentation textuelle de l'objet ReflectionFunction
  • ReflectionFunctionAbstract — La classe ReflectionFunctionAbstract
    • ReflectionFunctionAbstract::__clone — Clone une fonction
    • ReflectionFunctionAbstract::getAttributes — Gets Attributes
    • ReflectionFunctionAbstract::getClosureScopeClass — Retourne la portée de la classe associée à la fermeture
    • ReflectionFunctionAbstract::getClosureThis — Retourne le pointeur lié à la fermeture
    • ReflectionFunctionAbstract::getClosureUsedVariables — Returns an array of the used variables in the Closure
    • 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 — Récupère le type de retour définit pour une fonction
    • 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::getTentativeReturnType — Returns the tentative return type associated with the function
    • ReflectionFunctionAbstract::hasReturnType — Vérifie si la fonction a un type de retour définit
    • ReflectionFunctionAbstract::hasTentativeReturnType — Returns whether the function has a tentative 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::isStatic — Vérifie si la fonction est statique
    • 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 d'un objet ReflectionFunctionAbstract
  • ReflectionMethod — La classe ReflectionMethod
    • ReflectionMethod::__construct — Construit un nouvel objet ReflectionMethod
    • ReflectionMethod::createFromMethodName — Créer une nouvelle 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éflé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::hasPrototype — Retourne si la méthode a un prototype
    • 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::setAccessible — Définit l'accessibilité de la méthode
    • ReflectionMethod::__toString — Retourne une représentation textuelle de la méthode
  • ReflectionNamedType — La classe ReflectionNamedType
    • ReflectionNamedType::getName — Récupère le nom du type en tant que chaîne
    • ReflectionNamedType::isBuiltin — Vérifie si c'est un type intégré
  • 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::getAttributes — Gets Attributes
    • ReflectionParameter::getClass — Récupère un objet ReflectionClass pour le paramètre étant reflété ou null
    • 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 ou null
    • ReflectionParameter::getName — Récupère le nom du paramètre
    • ReflectionParameter::getPosition — Récupère la position d'un paramètre
    • ReflectionParameter::getType — Récupère le type du paramètre
    • ReflectionParameter::hasType — Vérifie si un paramètre a un 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::getAttributes — Gets Attributes
    • ReflectionProperty::getDeclaringClass — Récupère la classe déclarante
    • ReflectionProperty::getDefaultValue — Returns the default value declared for a property
    • ReflectionProperty::getDocComment — Récupère le commentaire de documentation d'une propriété
    • ReflectionProperty::getModifiers — Récupère les modificateurs de propriété
    • ReflectionProperty::getName — Récupère le nom de la propriété
    • ReflectionProperty::getType — Récupère le type d'une propriété
    • ReflectionProperty::getValue — Récupère la valeur de la propriété
    • ReflectionProperty::hasDefaultValue — Checks if property has a default value declared
    • ReflectionProperty::hasType — Vérifie si la propriété à un type
    • ReflectionProperty::isDefault — Vérifie si la propriété est celle par défaut
    • ReflectionProperty::isInitialized — Vérifie si une propriété est initialisée
    • ReflectionProperty::isPrivate — Vérifie si la propriété est privée
    • ReflectionProperty::isPromoted — Checks if property is promoted
    • ReflectionProperty::isProtected — Vérifie si la propriété est protégée
    • ReflectionProperty::isPublic — Vérifie si la propriété est publique
    • ReflectionProperty::isReadOnly — Checks if property is readonly
    • ReflectionProperty::isStatic — Vérifie si la propriété est statique
    • ReflectionProperty::setAccessible — Définit l'accessibilité d'une propriété
    • ReflectionProperty::setValue — Définit la valeur de la propriété
    • ReflectionProperty::__toString — Récupère une représentation textuelle
  • ReflectionType — La classe ReflectionType
    • ReflectionType::allowsNull — Vérifie si null est permit
    • ReflectionType::__toString — To string
  • ReflectionUnionType — The ReflectionUnionType class
    • ReflectionUnionType::getTypes — Returns the types included in the union type
  • ReflectionGenerator — La classe ReflectionGenerator
    • ReflectionGenerator::__construct — Construit un objet ReflectionGenerator
    • ReflectionGenerator::getExecutingFile — Récupère le nom de fichier du générateur actuellement exécuté
    • ReflectionGenerator::getExecutingGenerator — Récupère l'objet Generator exécuté
    • ReflectionGenerator::getExecutingLine — Récupère la ligne actuellement exécutée du générateur
    • ReflectionGenerator::getFunction — Récupère le nom de fonction du générateur
    • ReflectionGenerator::getThis — Récupère la valeur de $this du générateur
    • ReflectionGenerator::getTrace — Récupère la trace du générateur exécutant
  • ReflectionFiber — The ReflectionFiber class
    • ReflectionFiber::__construct — Constructs a ReflectionFiber object
    • ReflectionFiber::getCallable — Gets the callable used to create the Fiber
    • ReflectionFiber::getExecutingFile — Get the file name of the current execution point
    • ReflectionFiber::getExecutingLine — Get the line number of the current execution point
    • ReflectionFiber::getFiber — Get the reflected Fiber instance
    • ReflectionFiber::getTrace — Get the backtrace of the current execution point
  • ReflectionIntersectionType — The ReflectionIntersectionType class
    • ReflectionIntersectionType::getTypes — Returns the types included in the intersection type
  • ReflectionReference — La classe ReflectionReference
    • ReflectionReference::__construct — Private constructor to disallow direct instantiation
    • ReflectionReference::fromArrayElement — Create a ReflectionReference from an array element
    • ReflectionReference::getId — Get unique ID of a reference
  • ReflectionAttribute — La classe ReflectionAttribute
    • ReflectionAttribute::__construct — Constructeur privé pour la désactivation de l'instanciation
    • ReflectionAttribute::getArguments — Retourne les arguments passés à l'attribut
    • ReflectionAttribute::getName — Retourne le nom de l'attribut
    • ReflectionAttribute::getTarget — Retourne la cible de l'attribut en tant que masque de bits
    • ReflectionAttribute::isRepeated — Retourne si l'attribut de ce nom à été répété sur des éléments de code
    • ReflectionAttribute::newInstance — Instancie la classe de l'attribut representée par cette classe ReflectionAttribute et ses arguments
  • Reflector — L'interface Reflector
    • Reflector::export — Exporte
  • ReflectionException — La classe ReflectionException


Introduction

PHP fournit une API de réflexion complète qui permet de faire une introspection sur les classes, interfaces, fonctions, méthodes et les extensions. De plus, l'API de réflexion offre la possibilité de récupérer les commentaires de documentation des fonctions, classes et méthodes.

Il est à noter que certaines parties de l'API interne ne fournissent pas le code nécessaire afin de faire fonctionner l'extension Reflection. Par exemple, une classe PHP interne peut manquer des données de réflexion pour les propriétés. Ces quelques cas sont considérés comme des bogues, cependant, ils doivent être découvert et corrigés.


  • « Types de ressources
  • Exemples »
  • PHP Manual
  • Réflexion
  • 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

Résultat de l'exemple ci-dessus est 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'));
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

Introduction

La classe Reflection.

Synopsis de la classe

class Reflection {
/* Méthodes */
public static export(Reflector $reflector, bool $return = false): string
public static getModifierNames(int $modifiers): array
}

Sommaire

  • Reflection::export — Exporte
  • Reflection::getModifierNames — Récupère le nom des modificateurs


Exporte

  • « Reflection
  • Reflection::getModifierNames »
  • PHP Manual
  • Reflection
  • Exporte

Reflection::export

(PHP 5, PHP 7)

Reflection::export — Exporte

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.4.0. Dépendre de cette fonction est fortement déconseillé.

Description

public static Reflection::export(Reflector $reflector, bool $return = false): string

Exporte une réflexion.

Avertissement

Cette fonction est actuellement non documentée ; 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 des modificateurs


Récupère le nom des modificateurs

  • « Reflection::export
  • ReflectionClass »
  • PHP Manual
  • Reflection
  • Récupère le nom des modificateurs

Reflection::getModifierNames

(PHP 5, PHP 7, PHP 8)

Reflection::getModifierNames — Récupère le nom des modificateurs

Description

public static Reflection::getModifierNames(int $modifiers): array

Récupère les nom des modificateurs.

Liste de paramètres

modifiers

Champs bit (bitfield) des modificateurs à récupérer.

Valeurs de retour

Un tableau des noms de modificateurs.

Exemples

Exemple #1 Exemple Reflection::getModifierNames()

<?php
class Testing
{
final public static function foo()
{
return;
}

public function bar()
{
return;
}
}

$foo = new ReflectionMethod('Testing', 'foo');

echo "Modifiers for method foo():\n";
echo $foo->getModifiers() . "\n";
echo implode(' ', Reflection::getModifierNames($foo->getModifiers())) . "\n";

$bar = new ReflectionMethod('Testing', 'bar');

echo "Modifiers for method bar():\n";
echo $bar->getModifiers() . "\n";
echo implode(' ', Reflection::getModifierNames($bar->getModifiers()));

Résultat de l'exemple ci-dessus est similaire à :

Modifiers for method foo():
261
final public static
Modifiers for method bar():
65792
public

Voir aussi

  • ReflectionClass::getModifiers() - Récupère les modificateurs de classe
  • ReflectionClassConstant::getModifiers() - Récupère les modificateurs de la constante de classe
  • ReflectionMethod::getModifiers() - Récupère les modificateurs de la méthode
  • ReflectionProperty::getModifiers() - Récupère les modificateurs de propriété


The ReflectionClass class

(PHP 5, PHP 7, PHP 8)

Introduction

La classe ReflectionClass rapporte des informations sur une classe.

Synopsis de la classe

class ReflectionClass implements Reflector {
/* Constantes */
public const int IS_IMPLICIT_ABSTRACT;
public const int IS_EXPLICIT_ABSTRACT;
public const int IS_FINAL;
public const int IS_READONLY;
/* Propriétés */
public string $name;
/* Méthodes */
public __construct(object|string $objectOrClass)
public static export(mixed $argument, bool $return = false): string
public getAttributes(?string $name = null, int $flags = 0): array
public getConstant(string $name): mixed
public getConstants(?int $filter = null): array
public getConstructor(): ?ReflectionMethod
public getDefaultProperties(): array
public getDocComment(): string|false
public getEndLine(): int|false
public getExtension(): ?ReflectionExtension
public ReflectionFunctionAbstract::getExtensionName(): string|false
public getFileName(): string|false
public getInterfaceNames(): array
public getInterfaces(): array
public getMethod(string $name): ReflectionMethod
public getMethods(?int $filter = null): array
public getModifiers(): int
public getName(): string
public getNamespaceName(): string
public getParentClass(): ReflectionClass|false
public getProperties(?int $filter = null): array
public getProperty(string $name): ReflectionProperty
public getReflectionConstant(string $name): ReflectionClassConstant|false
public getReflectionConstants(?int $filter = null): array
public getShortName(): string
public getStartLine(): int|false
public getStaticProperties(): array
public getStaticPropertyValue(string $name, mixed &$def_value = ?): mixed
public getTraitAliases(): array
public getTraitNames(): array
public getTraits(): array
public hasConstant(string $name): bool
public hasMethod(string $name): bool
public hasProperty(string $name): bool
public implementsInterface(ReflectionClass|string $interface): bool
public inNamespace(): bool
public isAbstract(): bool
public isAnonymous(): bool
public isCloneable(): bool
public isEnum(): bool
public isFinal(): bool
public isInstance(object $object): bool
public isInstantiable(): bool
public isInterface(): bool
public isInternal(): bool
public isIterable(): bool
public isReadOnly(): bool
public isSubclassOf(ReflectionClass|string $class): bool
public isTrait(): bool
public isUserDefined(): bool
public newInstance(mixed ...$args): object
public newInstanceArgs(array $args = []): ?object
public newInstanceWithoutConstructor(): object
public setStaticPropertyValue(string $name, mixed $value): void
public __toString(): string
}

Propriétés

name

Nom de la classe. En lecture seule, lance une ReflectionException lors d'une tentative d'écriture.

Constantes pré-définies

Modificateurs de ReflectionClass

ReflectionClass::IS_IMPLICIT_ABSTRACT

Indique si la classe est abstraite car elle contient des 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.

ReflectionClass::IS_READONLY

Indique si la classe est readonly.

Historique

Version | Description
8.0.0 | ReflectionClass::export() a été supprimée.

Sommaire

  • ReflectionClass::__construct — Construit une ReflectionClass
  • ReflectionClass::export — Exporte une classe
  • ReflectionClass::getAttributes — Récupère les attributs d'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 de documentation
  • ReflectionClass::getEndLine — Récupère la fin d'une ligne
  • ReflectionClass::getExtension — Récupère un objet ReflectionExtension pour l'extension qui définit 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 où la classe a été déclaré
  • ReflectionClass::getInterfaceNames — Récupère les noms des interfaces
  • ReflectionClass::getInterfaces — Récupère les interfaces
  • ReflectionClass::getMethod — Récupère un ReflectionMethod pour une méthode de classe
  • ReflectionClass::getMethods — Récupère un tableau des méthodes
  • ReflectionClass::getModifiers — Récupère les modificateurs de classe
  • 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::getReflectionConstant — Récupère un ReflectionClassConstant pour une constante d'une classe
  • ReflectionClass::getReflectionConstants — Récupère les constantes de 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 — Vérifie si la classe est anonyme
  • ReflectionClass::isCloneable — Renseigne à propos de la propriété de duplication de la classe
  • ReflectionClass::isEnum — Vérifie si une classe est une énumération
  • 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::isIterable — Vérifie si cette classe est itérable
  • ReflectionClass::isIterateable — Alias de ReflectionClass::isIterable
  • ReflectionClass::isReadOnly — Vérifie si une classe est en lecture seule
  • 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, PHP 8)

ReflectionClass::__construct — Construit une ReflectionClass

Description

public ReflectionClass::__construct(object|string $objectOrClass)

Construit un nouvel objet ReflectionClass.

Liste de paramètres

objectOrClass

Soit une chaîne de caractères contenant le nom de la classe à refléter, ou un objet.

Erreurs / Exceptions

Lance une ReflectionException si la classe à refléter n'existe pas.

Exemples

Exemple #1 Utilisation simple de ReflectionClass

<?php
$reflection = new ReflectionClass('Exception');
echo $reflection;
?>

Résultat de l'exemple ci-dessus est similaire à :

Class [ <internal:Core> class Exception implements Stringable, Throwable ] {

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [7] {
    Property [ protected $message = '' ]
    Property [ private string $string = '' ]
    Property [ protected $code = 0 ]
    Property [ protected string $file = '' ]
    Property [ protected int $line = 0 ]
    Property [ private array $trace = [] ]
    Property [ private ?Throwable $previous = NULL ]
  }

  - Methods [11] {
    Method [ <internal:Core> private method __clone ] {

      - Parameters [0] {
      }
      - Return [ void ]
    }

    Method [ <internal:Core, ctor> public method __construct ] {

      - Parameters [3] {
        Parameter #0 [ <optional> string $message = "" ]
        Parameter #1 [ <optional> int $code = 0 ]
        Parameter #2 [ <optional> ?Throwable $previous = null ]
      }
    }

    Method [ <internal:Core> public method __wakeup ] {

      - Parameters [0] {
      }
      - Tentative return [ void ]
    }

    Method [ <internal:Core, prototype Throwable> final public method getMessage ] {

      - Parameters [0] {
      }
      - Return [ string ]
    }

    Method [ <internal:Core, prototype Throwable> final public method getCode ] {

      - Parameters [0] {
      }
    }

    Method [ <internal:Core, prototype Throwable> final public method getFile ] {

      - Parameters [0] {
      }
      - Return [ string ]
    }

    Method [ <internal:Core, prototype Throwable> final public method getLine ] {

      - Parameters [0] {
      }
      - Return [ int ]
    }

    Method [ <internal:Core, prototype Throwable> final public method getTrace ] {

      - Parameters [0] {
      }
      - Return [ array ]
    }

    Method [ <internal:Core, prototype Throwable> final public method getPrevious ] {

      - Parameters [0] {
      }
      - Return [ ?Throwable ]
    }

    Method [ <internal:Core, prototype Throwable> final public method getTraceAsString ] {

      - Parameters [0] {
      }
      - Return [ string ]
    }

    Method [ <internal:Core, prototype Stringable> public method __toString ] {

      - Parameters [0] {
      }
      - Return [ string ]
    }
  }
}

Voir aussi

  • ReflectionObject::__construct() - Construit un nouvel objet ReflectionObject
  • Les constructeurs


Exporte une classe

  • « ReflectionClass::__construct
  • ReflectionClass::getAttributes »
  • PHP Manual
  • ReflectionClass
  • Exporte une classe

ReflectionClass::export

(PHP 5, PHP 7)

ReflectionClass::export — Exporte une classe

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.4.0, et a été SUPPRIMÉE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

public static ReflectionClass::export(mixed $argument, bool $return = false): string

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');
?>

Résultat de l'exemple ci-dessus est 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
  • ReflectionClass::__toString() - Crée une représentation textuelle de l'objet


Récupère les attributs d'une classe

  • « ReflectionClass::export
  • ReflectionClass::getConstant »
  • PHP Manual
  • ReflectionClass
  • Récupère les attributs d'une classe

ReflectionClass::getAttributes

(PHP 8)

ReflectionClass::getAttributes — Récupère les attributs d'une classe

Description

public ReflectionClass::getAttributes(?string $name = null, int $flags = 0): array

Retourne tous les attributs déclarés sur cette classe sous la forme d'un tableau de ReflectionAttribute.

Liste de paramètres

name

Filtrer les résultats pour inclure uniquement les instances de ReflectionAttribute pour les attributs correspondant à ce nom de classe.

flags

Flags pour déterminer comment filtrer les résultats, si name est fourni.

La valeur par défaut est 0 qui ne renverra que les résultats pour les attributs qui sont de la classe name.

La seule autre option disponible est d'utiliser ReflectionAttribute::IS_INSTANCEOF, qui utilisera plutôt instanceof pour le filtrage.

Valeurs de retour

Un tableau d'attributs, sous la forme d'objets de type ReflectionAttribute.

Exemples

Exemple #1 Utilisation basique de ReflectionClass::getAttributes()

<?php
#[Attribute]
class Fruit {
}

#[Attribute]
class Rouge {
}

#[Fruit]
#[Rouge]
class Pomme {
}

$class = new ReflectionClass('Pomme');
$attributes = $class->getAttributes();
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Fruit
    [1] => Rouge
)

Exemple #2 Filtrer les résultats par un nom de classe

<?php
#[Attribute]
class Fruit {
}

#[Attribute]
class Rouge {
}

#[Fruit]
#[Rouge]
class Pomme {
}

$class = new ReflectionClass('Pomme');
$attributes = $class->getAttributes('Fruit');
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Fruit
)

Exemple #3 Filtrer les résultats par nom de classe, avec héritage

<?php
interface Couleur {
}

#[Attribute]
class Fruit {
}

#[Attribute]
class Rouge implements Couleur {
}

#[Fruit]
#[Rouge]
class Pomme {
}

$class = new ReflectionClass('Pomme');
$attributes = $class->getAttributes(Couleur::class, ReflectionAttribute::IS_INSTANCEOF);
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Rouge
)

Voir aussi

  • ReflectionClassConstant::getAttributes() - Gets Attributes
  • ReflectionFunctionAbstract::getAttributes() - Gets Attributes
  • ReflectionParameter::getAttributes() - Gets Attributes
  • ReflectionProperty::getAttributes() - Gets Attributes


Récupère une constante

  • « ReflectionClass::getAttributes
  • ReflectionClass::getConstants »
  • PHP Manual
  • ReflectionClass
  • Récupère une constante

ReflectionClass::getConstant

(PHP 5, PHP 7, PHP 8)

ReflectionClass::getConstant — Récupère une constante

Description

public ReflectionClass::getConstant(string $name): mixed

Récupère une constante définie.

Liste de paramètres

name

Le nom de la constante de classe à récupérer.

Valeurs de retour

Valeur de la constante avec le nom name. Retourne false si la constante n'a pas été trouvée dans la classe.

Exemples

Exemple #1 Utilisation de ReflectionClass::getConstant()

<?php

class Example {
const C1 = false;
const C2 = 'I am a constant';
}

$reflection = new ReflectionClass('Example');

var_dump($reflection->getConstant('C1'));
var_dump($reflection->getConstant('C2'));
var_dump($reflection->getConstant('C3'));
?>

L'exemple ci-dessus va afficher :

bool(false)
string(15) "I am a constant"
bool(false)

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, PHP 8)

ReflectionClass::getConstants — Récupère les constantes

Description

public ReflectionClass::getConstants(?int $filter = null): array

Récupère toutes les constantes définies d'une classe, quelle que soit leur visibilité.

Liste de paramètres

filter

Le filtre optionnel, pour filter les constantes avec la visibilité désiré. C'est configuré en utilisant les constantes ReflectionClassConstant, et par défaut récupère toutes les constantes peu importe la visibilité.

Valeurs de retour

Un tableau de constantes, où les clés détiennent le nom et les valeurs la valeur des constantes.

Historique

Version | Description
8.0.0 | filter a été ajouté.

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, PHP 8)

ReflectionClass::getConstructor — Récupère le constructeur d'une classe

Description

public ReflectionClass::getConstructor(): ?ReflectionMethod

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 Utilisation simple de 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, PHP 8)

ReflectionClass::getDefaultProperties — Récupère les propriétés par défaut

Description

public ReflectionClass::getDefaultProperties(): array

Récupère les propriétés par défaut d'une classe (incluant les propriétés héritées).

Note:

Cette méthode fonctionne uniquement 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 tableau 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 la propriété n'a pas de valeur par défaut. 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 avec 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 de documentation

  • « ReflectionClass::getDefaultProperties
  • ReflectionClass::getEndLine »
  • PHP Manual
  • ReflectionClass
  • Récupère les commentaires de documentation

ReflectionClass::getDocComment

(PHP 5, PHP 7, PHP 8)

ReflectionClass::getDocComment — Récupère les commentaires de documentation

Description

public ReflectionClass::getDocComment(): string|false

Récupère les commentaires de documentation depuis une classe. Les commentaires de documentation commencent avec /**. S'il y a plusieurs commentaires de documentation au-dessus de la définition de la classe, celle qui est la plus proche de la classe sera prise.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le commentaire de documentation, s'il existe, false sinon.

Exemples

Exemple #1 Exemple avec ReflectionClass::getDocComment()

<?php
/**
* A test class
*
* @param foo bar
* @return baz
*/
class TestClass { }

$rc = new ReflectionClass('TestClass');
var_dump($rc->getDocComment());
?>

L'exemple ci-dessus va afficher :

string(61) "/**
 * A test class
 *
 * @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, PHP 8)

ReflectionClass::getEndLine — Récupère la fin d'une ligne

Description

public ReflectionClass::getEndLine(): int|false

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 qui définit la classe

  • « ReflectionClass::getEndLine
  • ReflectionClass::getExtensionName »
  • PHP Manual
  • ReflectionClass
  • Récupère un objet ReflectionExtension pour l'extension qui définit la classe

ReflectionClass::getExtension

(PHP 5, PHP 7, PHP 8)

ReflectionClass::getExtension — Récupère un objet ReflectionExtension pour l'extension qui définit la classe

Description

public ReflectionClass::getExtension(): ?ReflectionExtension

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 Utilisation simple de 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, PHP 8)

ReflectionClass::getExtensionName — Récupère le nom de l'extension qui définit la classe

Description

public ReflectionFunctionAbstract::getExtensionName(): string|false

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 Utilisation simple de 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 qui définit la classe


Récupère le nom du fichier où la classe a été déclaré

  • « ReflectionClass::getExtensionName
  • ReflectionClass::getInterfaceNames »
  • PHP Manual
  • ReflectionClass
  • Récupère le nom du fichier où la classe a été déclaré

ReflectionClass::getFileName

(PHP 5, PHP 7, PHP 8)

ReflectionClass::getFileName — Récupère le nom du fichier où la classe a été déclaré

Description

public ReflectionClass::getFileName(): string|false

Récupère le nom du fichier où la classe a été déclaré.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Récupère le nom du fichier où la classe a été déclaré. Si la classe est déclarée dans le cœur de PHP ou dans une extension PHP, false est 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, PHP 8)

ReflectionClass::getInterfaceNames — Récupère les noms des interfaces

Description

public ReflectionClass::getInterfaceNames(): array

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());
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

ReflectionClass::getInterfaces — Récupère les interfaces

Description

public ReflectionClass::getInterfaces(): array

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());
?>

Résultat de l'exemple ci-dessus est 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 ReflectionMethod pour une méthode de classe

  • « ReflectionClass::getInterfaces
  • ReflectionClass::getMethods »
  • PHP Manual
  • ReflectionClass
  • Récupère un ReflectionMethod pour une méthode de classe

ReflectionClass::getMethod

(PHP 5, PHP 7, PHP 8)

ReflectionClass::getMethod — Récupère un ReflectionMethod pour une méthode de classe

Description

public ReflectionClass::getMethod(string $name): ReflectionMethod

Récupère un ReflectionMethod pour une méthode de 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 Utilisation simple de 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 des méthodes


Récupère un tableau des méthodes

  • « ReflectionClass::getMethod
  • ReflectionClass::getModifiers »
  • PHP Manual
  • ReflectionClass
  • Récupère un tableau des méthodes

ReflectionClass::getMethods

(PHP 5, PHP 7, PHP 8)

ReflectionClass::getMethods — Récupère un tableau des méthodes

Description

public ReflectionClass::getMethods(?int $filter = null): array

Récupère un tableau des 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.

Toute disjonction au niveau du bit de
ReflectionMethod::IS_STATIC,
ReflectionMethod::IS_PUBLIC,
ReflectionMethod::IS_PROTECTED,
ReflectionMethod::IS_PRIVATE,
ReflectionMethod::IS_ABSTRACT et
ReflectionMethod::IS_FINAL,
de sorte que toutes les méthodes avec n'importe quel des attributs fournis seront retournées.

Note: Notez que d'autres opérations au niveau du bit, par exemple ~ ne fonctionneront pas comme prévu. En d'autres termes, il n'est pas possible de récupérer toutes les méthodes non statiques, par exemple.

Valeurs de retour

Un tableau d'objets ReflectionMethod reflétant chaque méthode.

Historique

Version | Description
7.2.0 | filter est désormais nullable.

Exemples

Exemple #1 Utilisation simple de 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 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 ReflectionMethod pour une méthode de classe
  • get_class_methods() - Retourne les noms des méthodes d'une classe


Récupère les modificateurs de classe

  • « ReflectionClass::getMethods
  • ReflectionClass::getName »
  • PHP Manual
  • ReflectionClass
  • Récupère les modificateurs de classe

ReflectionClass::getModifiers

(PHP 5, PHP 7, PHP 8)

ReflectionClass::getModifiers — Récupère les modificateurs de classe

Description

public ReflectionClass::getModifiers(): int

Retourne un champ de bit des 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 des constantes de modificateurs.

Voir aussi

  • ReflectionClass::getProperties() - Récupère les propriétés
  • Reflection::getModifierNames() - Récupère le nom des modificateurs


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, PHP 8)

ReflectionClass::getName — Récupère le nom de la classe

Description

public ReflectionClass::getName(): string

Récupère le nom de la classe.

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, PHP 8)

ReflectionClass::getNamespaceName — Récupère l'espace de noms

Description

public ReflectionClass::getNamespaceName(): string

Récupère l'espace de noms.

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, PHP 8)

ReflectionClass::getParentClass — Récupère la classe parente

Description

public ReflectionClass::getParentClass(): ReflectionClass|false

Récupère la classe parentale.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet ReflectionClass ou false s'il n'y a pas de parent.

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, PHP 8)

ReflectionClass::getProperties — Récupère les propriétés

Description

public ReflectionClass::getProperties(?int $filter = null): array

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.

Historique

Version | Description
7.2.0 | filter est désormais nullable.

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);

?>

Résultat de l'exemple ci-dessus est 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::getReflectionConstant »
  • PHP Manual
  • ReflectionClass
  • Récupère une ReflectionProperty pour une propriété d'une classe

ReflectionClass::getProperty

(PHP 5, PHP 7, PHP 8)

ReflectionClass::getProperty — Récupère une ReflectionProperty pour une propriété d'une classe

Description

public ReflectionClass::getProperty(string $name): ReflectionProperty

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 un ReflectionClassConstant pour une constante d'une classe

  • « ReflectionClass::getProperty
  • ReflectionClass::getReflectionConstants »
  • PHP Manual
  • ReflectionClass
  • Récupère un ReflectionClassConstant pour une constante d'une classe

ReflectionClass::getReflectionConstant

(PHP 7 >= 7.1.0, PHP 8)

ReflectionClass::getReflectionConstant — Récupère un ReflectionClassConstant pour une constante d'une classe

Description

public ReflectionClass::getReflectionConstant(string $name): ReflectionClassConstant|false

Récupère un ReflectionClassConstant pour une constante de classe.

Liste de paramètres

name

Le nom de la constante de classe.

Valeurs de retour

Un ReflectionClassConstant, ou false si une erreur survient.

Voir aussi

  • ReflectionClass::getReflectionConstants() - Récupère les constantes de classe
  • ReflectionClassConstant


Récupère les constantes de classe

  • « ReflectionClass::getReflectionConstant
  • ReflectionClass::getShortName »
  • PHP Manual
  • ReflectionClass
  • Récupère les constantes de classe

ReflectionClass::getReflectionConstants

(PHP 7 >= 7.1.0, PHP 8)

ReflectionClass::getReflectionConstants — Récupère les constantes de classe

Description

public ReflectionClass::getReflectionConstants(?int $filter = null): array

Récupère les constantes réfléchies.

Liste de paramètres

filter

Le filtre optionnel, pour filter les constantes avec la visibilité désiré. C'est configuré en utilisant les constantes ReflectionClassConstant, et par défaut récupère toutes les constantes peu importe la visibilité.

Valeurs de retour

Un tableau d'objets ReflectionClassConstant.

Historique

Version | Description
8.0.0 | filter a été ajouté.

Exemples

Exemple #1 Exemple basique de ReflectionClass::getReflectionConstants()

<?php
class Foo {
public const FOO = 1;
protected const BAR = 2;
private const BAZ = 3;
}

$foo = new Foo();

$reflect = new ReflectionClass($foo);
$consts = $reflect->getReflectionConstants();

foreach ($consts as $const) {
print $const->getName() . "\n";
}

var_dump($consts);

?>

Résultat de l'exemple ci-dessus est similaire à :

FOO
BAR
BAZ
array(3) {
  [0]=>
  object(ReflectionClassConstant)#3 (2) {
    ["name"]=>
    string(3) "FOO"
    ["class"]=>
    string(3) "Foo"
  }
  [1]=>
  object(ReflectionClassConstant)#4 (2) {
    ["name"]=>
    string(3) "BAR"
    ["class"]=>
    string(3) "Foo"
  }
  [2]=>
  object(ReflectionClassConstant)#5 (2) {
    ["name"]=>
    string(3) "BAZ"
    ["class"]=>
    string(3) "Foo"
  }
}

Voir aussi

  • ReflectionClass::getReflectionConstant() - Récupère un ReflectionClassConstant pour une constante d'une classe
  • ReflectionClassConstant


Récupère le nom court d'une classe

  • « ReflectionClass::getReflectionConstants
  • ReflectionClass::getStartLine »
  • PHP Manual
  • ReflectionClass
  • Récupère le nom court d'une classe

ReflectionClass::getShortName

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

ReflectionClass::getShortName — Récupère le nom court d'une classe

Description

public ReflectionClass::getShortName(): string

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, PHP 8)

ReflectionClass::getStartLine — Récupère le numéro de ligne de départ

Description

public ReflectionClass::getStartLine(): int|false

Récupère le numéro de ligne de départ.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le numéro de ligne de départ, en tant que int, ou false is inconnue.

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, PHP 8)

ReflectionClass::getStaticProperties — Récupère les propriétés statiques

Description

public ReflectionClass::getStaticProperties(): array

Récupère les propriétés statiques.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Les propriétés statiques, en tant que array.

Historique

Version | Description
8.3.0 | Le type de retour de ReflectionClass::getStaticProperties() a été modifié en array au lieu de ?array.

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.2, PHP 7, PHP 8)

ReflectionClass::getStaticPropertyValue — Récupère la valeur d'une propriété statique

Description

public ReflectionClass::getStaticPropertyValue(string $name, mixed &$def_value = ?): mixed

Récupère la valeur d'une propriété statique de la classe.

Avertissement

Cette fonction est actuellement non documentée ; 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 argument 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 >= 5.4.0, PHP 7, PHP 8)

ReflectionClass::getTraitAliases — Retourne un tableau des alias du trait

Description

public ReflectionClass::getTraitAliases(): array

Récupère un tableau des aliases de méthodes défini dans la classe courante.

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 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 >= 5.4.0, PHP 7, PHP 8)

ReflectionClass::getTraitNames — Retourne un tableau de noms des traits utilisés par cette classe

Description

public ReflectionClass::getTraitNames(): array

Retourne les noms des traits utilisés par cette classe.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau de noms des traits en valeurs.


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 >= 5.4.0, PHP 7, PHP 8)

ReflectionClass::getTraits — Retourne un tableau des traits utilisés par cette classe

Description

public ReflectionClass::getTraits(): array

Retourne un tableau des traits utilisés par cette classe.

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.2, PHP 7, PHP 8)

ReflectionClass::hasConstant — Vérifie si une constante est définie

Description

public ReflectionClass::hasConstant(string $name): bool

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"));
?>

Résultat de l'exemple ci-dessus est 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.2, PHP 7, PHP 8)

ReflectionClass::hasMethod — Vérifie si une méthode est définie

Description

public ReflectionClass::hasMethod(string $name): bool

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.2, PHP 7, PHP 8)

ReflectionClass::hasProperty — Vérifie si une propriété est définie

Description

public ReflectionClass::hasProperty(string $name): bool

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"));
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

ReflectionClass::implementsInterface — Vérifie si une classe implémente une interface

Description

public ReflectionClass::implementsInterface(ReflectionClass|string $interface): bool

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.

Erreurs / Exceptions

ReflectionClass::implementsInterface() lance une ReflectionException si interface n'est pas une interface.

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, PHP 8)

ReflectionClass::inNamespace — Vérifie si une classe est définie dans un espace de noms

Description

public ReflectionClass::inNamespace(): bool

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, PHP 8)

ReflectionClass::isAbstract — Vérifie si une classe est abstraite

Description

public ReflectionClass::isAbstract(): bool

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


Vérifie si la classe est anonyme

  • « ReflectionClass::isAbstract
  • ReflectionClass::isCloneable »
  • PHP Manual
  • ReflectionClass
  • Vérifie si la classe est anonyme

ReflectionClass::isAnonymous

(PHP 7, PHP 8)

ReflectionClass::isAnonymous — Vérifie si la classe est anonyme

Description

public ReflectionClass::isAnonymous(): bool

Vérifie si une classe est une classe anonyme.

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::isAnonymous()

<?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::isEnum »
  • PHP Manual
  • ReflectionClass
  • Renseigne à propos de la propriété de duplication de la classe

ReflectionClass::isCloneable

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionClass::isCloneable — Renseigne à propos de la propriété de duplication de la classe

Description

public ReflectionClass::isCloneable(): bool

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 une énumération

  • « ReflectionClass::isCloneable
  • ReflectionClass::isFinal »
  • PHP Manual
  • ReflectionClass
  • Vérifie si une classe est une énumération

ReflectionClass::isEnum

(PHP 8 >= 8.1.0)

ReflectionClass::isEnum — Vérifie si une classe est une énumération

Description

public ReflectionClass::isEnum(): bool

Vérifie si une classe est une énumération.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Renvoie true si la classe est une énumération, sinon false.


Vérifie si une classe est finale

  • « ReflectionClass::isEnum
  • ReflectionClass::isInstance »
  • PHP Manual
  • ReflectionClass
  • Vérifie si une classe est finale

ReflectionClass::isFinal

(PHP 5, PHP 7, PHP 8)

ReflectionClass::isFinal — Vérifie si une classe est finale

Description

public ReflectionClass::isFinal(): bool

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, PHP 8)

ReflectionClass::isInstance — Vérifie si une classe est une instance d'une autre classe

Description

public ReflectionClass::isInstance(object $object): bool

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";
}
?>

Résultat de l'exemple ci-dessus est 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 d'un certain type ou sous-type.


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, PHP 8)

ReflectionClass::isInstantiable — Vérifie si une classe est instanciable

Description

public ReflectionClass::isInstantiable(): bool

Vérifie si une classe est instanciable.

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() { }
}

trait T {
function f1() {}
}

class privateConstructor {
private function __construct() { }
}

$classes = array(
"C",
"iface",
"ifaceImpl",
"abstractClass",
"D",
"T"
"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 C est instanciable ?  bool(true)
Est-ce que iface est instanciable ?  bool(false)
Est-ce que ifaceImpl est instanciable ?  bool(true)
Est-ce que abstractClass est instanciable ?  bool(false)
Est-ce que D est instanciable ?  bool(true)
Est-ce que T est instanciable ?  bool(false)
Est-ce que privateConstructor est instanciable ?  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, PHP 8)

ReflectionClass::isInterface — Vérifie si une classe est une interface

Description

public ReflectionClass::isInterface(): bool

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::isIterable »
  • PHP Manual
  • ReflectionClass
  • Vérifie si une classe est définie comme interne par une extension

ReflectionClass::isInternal

(PHP 5, PHP 7, PHP 8)

ReflectionClass::isInternal — Vérifie si une classe est définie comme interne par une extension

Description

public ReflectionClass::isInternal(): bool

Vérifie si une classe est définie comme interne par une extension, ou faisant partie du cœur, 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 cette classe est itérable

  • « ReflectionClass::isInternal
  • ReflectionClass::isIterateable »
  • PHP Manual
  • ReflectionClass
  • Vérifie si cette classe est itérable

ReflectionClass::isIterable

(PHP 7 >= 7.2.0, PHP 8)

ReflectionClass::isIterable — Vérifie si cette classe est itérable

Description

public ReflectionClass::isIterable(): bool

Vérifie si cette classe est itérable (c'est à dire qu'elle peut être utilisée dans foreach).

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 Utilisation simple de ReflectionClass::isIterable()

<?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_iterable($class) {
$reflection = new ReflectionClass($class);
var_dump($reflection->isIterable());
}

$classes = array("ArrayObject", "IteratorClass", "DerivedClass", "NonIterator");

foreach ($classes as $class) {
echo "Est ce que $class est itérable ? ";
dump_iterable($class);
}
?>

L'exemple ci-dessus va afficher :

Est ce que ArrayObject est itérable ? bool(true)
Est ce que IteratorClass est itérable ? bool(true)
Est ce que DerivedClass est itérable ? bool(true)
Est ce que NonIterator est itérable ? bool(false)

Voir aussi

  • ReflectionClass::__construct() - Construit une ReflectionClass


Alias de ReflectionClass::isIterable

  • « ReflectionClass::isIterable
  • ReflectionClass::isReadOnly »
  • PHP Manual
  • ReflectionClass
  • Alias de ReflectionClass::isIterable

ReflectionClass::isIterateable

(PHP 5, PHP 7, PHP 8)

ReflectionClass::isIterateable — Alias de ReflectionClass::isIterable()

Description

Alias de ReflectionClass::isIterable()

À partir de PHP 7.2.0, au lieu du mal orthographié RefectionClass::isIterateable(), ReflectionClass::isIterable() devrait être préféré.


Vérifie si une classe est en lecture seule

  • « ReflectionClass::isIterateable
  • ReflectionClass::isSubclassOf »
  • PHP Manual
  • ReflectionClass
  • Vérifie si une classe est en lecture seule

ReflectionClass::isReadOnly

(PHP 8 >= 8.2.0)

ReflectionClass::isReadOnly — Vérifie si une classe est en lecture seule

Description

public ReflectionClass::isReadOnly(): bool

Vérifie si une classe est en lecture seule.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

true si la classe est en lecture seule, sinon false.

Exemples

Exemple #1 Exemple avec ReflectionClass::isReadOnly()

<?php
class TestClass { }
readonly class TestReadOnlyClass { }

$normalClass = new ReflectionClass('TestClass');
$readonlyClass = new ReflectionClass('TestReadOnlyClass');

var_dump($normalClass->isReadOnly());
var_dump($readonlyClass->isReadOnly());

?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)

Voir aussi

  • ReflectionClass::isAbstract() - Vérifie si une classe est abstraite
  • Classe en lecture seule


Vérifie si la classe est une sous-classe

  • « ReflectionClass::isReadOnly
  • ReflectionClass::isTrait »
  • PHP Manual
  • ReflectionClass
  • Vérifie si la classe est une sous-classe

ReflectionClass::isSubclassOf

(PHP 5, PHP 7, PHP 8)

ReflectionClass::isSubclassOf — Vérifie si la classe est une sous-classe

Description

public ReflectionClass::isSubclassOf(ReflectionClass|string $class): bool

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

Soit le nom de la classe en tant que chaîne de caractères soit un objet ReflectionClass 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 >= 5.4.0, PHP 7, PHP 8)

ReflectionClass::isTrait — Renseigne s'il s'agit d'un trait

Description

public ReflectionClass::isTrait(): bool

Détermine si cette ReflectionClass s'agit d'un trait.

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.


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, PHP 8)

ReflectionClass::isUserDefined — Vérifie si une classe a été définie dans l'espace utilisateur

Description

public ReflectionClass::isUserDefined(): bool

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, PHP 8)

ReflectionClass::newInstance — Créer une nouvelle instance de la classe en utilisant les arguments fournis

Description

public ReflectionClass::newInstance(mixed ...$args): object

Créer une nouvelle instance de la classe en utilisant les arguments fournis à son constructeur.

Liste de paramètres

args

Accepte un nombre variable d'arguments qui sont 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 un paramètre.

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, PHP 8)

ReflectionClass::newInstanceArgs — Créer une nouvelle instance en utilisant les arguments fournis

Description

public ReflectionClass::newInstanceArgs(array $args = []): ?object

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, ou null en cas d'échec.

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.

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"
}

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 >= 5.4.0, PHP 7, PHP 8)

ReflectionClass::newInstanceWithoutConstructor — Crée une nouvelle instance de la classe sans invoquer le constructeur

Description

public ReflectionClass::newInstanceWithoutConstructor(): object

Crée une nouvelle instance de la classe sans invoquer son constructeur.

Liste de paramètres

Valeurs de retour

Erreurs / Exceptions

Une ReflectionException si la classe est une classe interne qui ne peut être instanciée sans invoquer son constructeur. Cette exception est limitée uniquement aux classes internes qui sont finale.

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.2, PHP 7, PHP 8)

ReflectionClass::setStaticPropertyValue — Définit la valeur d'une propriété statiques

Description

public ReflectionClass::setStaticPropertyValue(string $name, mixed $value): void

Définit la valeur d'une propriété statique.

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
  • ReflectionClassConstant »
  • PHP Manual
  • ReflectionClass
  • Crée une représentation textuelle de l'objet

ReflectionClass::__toString

(PHP 5, PHP 7, PHP 8)

ReflectionClass::__toString — Crée une représentation textuelle de l'objet

Description

public ReflectionClass::__toString(): string

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 ReflectionClassConstant

(PHP 7 >= 7.1.0, PHP 8)

Introduction

La classe ReflectionClassConstant rapporte des informations à propos d'une constante de classe.

Synopsis de la classe

class ReflectionClassConstant implements Reflector {
/* Constantes */
public const int IS_PUBLIC;
public const int IS_PROTECTED;
public const int IS_PRIVATE;
public const int IS_FINAL;
/* Propriétés */
public string $name;
public string $class;
/* Méthodes */
public __construct(object|string $class, string $constant)
public static export(mixed $class, string $name, bool $return = ?): string
public getAttributes(?string $name = null, int $flags = 0): array
public getDeclaringClass(): ReflectionClass
public getDocComment(): string|false
public getModifiers(): int
public getName(): string
public getValue(): mixed
public isEnumCase(): bool
public isFinal(): bool
public isPrivate(): bool
public isProtected(): bool
public isPublic(): bool
public __toString(): string
}

Propriétés

name

Nom de la constante de classe. Lecture seule, lance une ReflectionException lors d'une tentative d'écriture.

class

Nom de la classe où la constante de classe est définit. Lecture seule, lance une ReflectionException lors d'une tentative d'écriture.

Constantes pré-définies

Modificateurs de ReflectionClassConstant

ReflectionClassConstant::IS_PUBLIC

Indique les constantes public. Antérieur à PHP 7.4.0, la valeur était 256.

ReflectionClassConstant::IS_PROTECTED

Indique les constantes protected. Antérieur à PHP 7.4.0, la valeur était 512.

ReflectionClassConstant::IS_PRIVATE

Indique les constantes private. Antérieur à PHP 7.4.0, la valeur était 1024.

ReflectionClassConstant::IS_FINAL

Indique les constantes final Disponible à partir de PHP 8.1.0.

Note:

La valeur de ces constantes peut changer entre les versions de PHP. Il est recommandé de toujours utiliser les constantes et de ne pas dépendre sur les valeurs directement.

Historique

Version | Description
8.0.0 | ReflectionClassConstant::export() a été supprimée.

Sommaire

  • ReflectionClassConstant::__construct — Construit une ReflectionClassConstant
  • ReflectionClassConstant::export — Exporte
  • ReflectionClassConstant::getAttributes — Gets Attributes
  • ReflectionClassConstant::getDeclaringClass — Récupère la classe déclarante
  • ReflectionClassConstant::getDocComment — Récupère le commentaire de documentation
  • ReflectionClassConstant::getModifiers — Récupère les modificateurs de la constante de classe
  • ReflectionClassConstant::getName — Récupère le nom de la constante
  • ReflectionClassConstant::getValue — Récupère la valeur
  • ReflectionClassConstant::isEnumCase — Checks if class constant is an Enum case
  • ReflectionClassConstant::isFinal — Checks if class constant is final
  • ReflectionClassConstant::isPrivate — Vérifie si la constante de classe est privée
  • ReflectionClassConstant::isProtected — Vérifie si la constante de classe est protégée
  • ReflectionClassConstant::isPublic — Vérifie si la constante de classe est publique
  • ReflectionClassConstant::__toString — Retourne la représentation sous forme de chaîne de caractères de l'objet ReflectionClassConstant


Construit une ReflectionClassConstant

  • « ReflectionClassConstant
  • ReflectionClassConstant::export »
  • PHP Manual
  • ReflectionClassConstant
  • Construit une ReflectionClassConstant

ReflectionClassConstant::__construct

(PHP 7 >= 7.1.0, PHP 8)

ReflectionClassConstant::__construct — Construit une ReflectionClassConstant

Description

public ReflectionClassConstant::__construct(object|string $class, string $constant)

Construit un nouvel objet ReflectionClassConstant.

Liste de paramètres

class

Soit une chaîne de caractères contenant le nom de la classe a refléter, soit un objet.

constant

Le nom de la constante de classe.

Erreurs / Exceptions

Lance une Exception dans le cas où la constante de classe fournit n'existe pas.

Voir aussi

  • Constructors


Exporte

  • « ReflectionClassConstant::__construct
  • ReflectionClassConstant::getAttributes »
  • PHP Manual
  • ReflectionClassConstant
  • Exporte

ReflectionClassConstant::export

(PHP 7 >= 7.1.0)

ReflectionClassConstant::export — Exporte

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.4.0, et a été SUPPRIMÉE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

public static ReflectionClassConstant::export(mixed $class, string $name, bool $return = ?): string

Exporte une réflexion.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

class

La réflection à exporter.

name

Le nom de la constante de classe.

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

  • ReflectionClassConstant::__toString() - Retourne la représentation sous forme de chaîne de caractères de l'objet ReflectionClassConstant


Gets Attributes

  • « ReflectionClassConstant::export
  • ReflectionClassConstant::getDeclaringClass »
  • PHP Manual
  • ReflectionClassConstant
  • Gets Attributes

ReflectionClassConstant::getAttributes

(PHP 8)

ReflectionClassConstant::getAttributes — Gets Attributes

Description

public ReflectionClassConstant::getAttributes(?string $name = null, int $flags = 0): array

Returns all attributes declared on this class constant as an array of ReflectionAttribute.

Liste de paramètres

name

Filtrer les résultats pour inclure uniquement les instances de ReflectionAttribute pour les attributs correspondant à ce nom de classe.

flags

Flags pour déterminer comment filtrer les résultats, si name est fourni.

La valeur par défaut est 0 qui ne renverra que les résultats pour les attributs qui sont de la classe name.

La seule autre option disponible est d'utiliser ReflectionAttribute::IS_INSTANCEOF, qui utilisera plutôt instanceof pour le filtrage.

Valeurs de retour

Array of attributes, as a ReflectionAttribute object.

Exemples

Exemple #1 Basic usage

<?php
#[Attribute]
class Fruit {
}

#[Attribute]
class Red {
}

class Basket {
#[Fruit]
#[Red]
public const APPLE = 'apple';
}

$classConstant = new ReflectionClassConstant('Basket', 'APPLE');
$attributes = $classConstant->getAttributes();
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Fruit
    [1] => Red
)

Exemple #2 Filtering results by class name

<?php
#[Attribute]
class Fruit {
}

#[Attribute]
class Red {
}

class Basket {
#[Fruit]
#[Red]
public const APPLE = 'apple';
}

$classConstant = new ReflectionClassConstant('Basket', 'APPLE');
$attributes = $classConstant->getAttributes('Fruit');
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Fruit
)

Exemple #3 Filtering results by class name, with inheritance

<?php
interface Color {
}

#[Attribute]
class Fruit {
}

#[Attribute]
class Red implements Color {
}

class Basket {
#[Fruit]
#[Red]
public const APPLE = 'apple';
}

$classConstant = new ReflectionClassConstant('Basket', 'APPLE');
$attributes = $classConstant->getAttributes('Color', ReflectionAttribute::IS_INSTANCEOF);
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Red
)

Voir aussi

  • ReflectionClass::getAttributes() - Récupère les attributs d'une classe
  • ReflectionFunctionAbstract::getAttributes() - Gets Attributes
  • ReflectionParameter::getAttributes() - Gets Attributes
  • ReflectionProperty::getAttributes() - Gets Attributes


Récupère la classe déclarante

  • « ReflectionClassConstant::getAttributes
  • ReflectionClassConstant::getDocComment »
  • PHP Manual
  • ReflectionClassConstant
  • Récupère la classe déclarante

ReflectionClassConstant::getDeclaringClass

(PHP 7 >= 7.1.0, PHP 8)

ReflectionClassConstant::getDeclaringClass — Récupère la classe déclarante

Description

public ReflectionClassConstant::getDeclaringClass(): ReflectionClass

Récupère la classe déclarante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet ReflectionClass.


Récupère le commentaire de documentation

  • « ReflectionClassConstant::getDeclaringClass
  • ReflectionClassConstant::getModifiers »
  • PHP Manual
  • ReflectionClassConstant
  • Récupère le commentaire de documentation

ReflectionClassConstant::getDocComment

(PHP 7 >= 7.1.0, PHP 8)

ReflectionClassConstant::getDocComment — Récupère le commentaire de documentation

Description

public ReflectionClassConstant::getDocComment(): string|false

Récupère le commentaire de documentation d'une constante de classe.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le commentaire de documentation s'il existe, sinon false


Récupère les modificateurs de la constante de classe

  • « ReflectionClassConstant::getDocComment
  • ReflectionClassConstant::getName »
  • PHP Manual
  • ReflectionClassConstant
  • Récupère les modificateurs de la constante de classe

ReflectionClassConstant::getModifiers

(PHP 7 >= 7.1.0, PHP 8)

ReflectionClassConstant::getModifiers — Récupère les modificateurs de la constante de classe

Description

public ReflectionClassConstant::getModifiers(): int

Retourne un champ de bits des modificateurs d'accès pour cette constante de classe.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une représentation numérique des modificateurs. La signification actuelle de ces modificateurs est décrite dans les constantes prédéfinies.

Voir aussi

  • Reflection::getModifierNames() - Récupère le nom des modificateurs


Récupère le nom de la constante

  • « ReflectionClassConstant::getModifiers
  • ReflectionClassConstant::getValue »
  • PHP Manual
  • ReflectionClassConstant
  • Récupère le nom de la constante

ReflectionClassConstant::getName

(PHP 7 >= 7.1.0, PHP 8)

ReflectionClassConstant::getName — Récupère le nom de la constante

Description

public ReflectionClassConstant::getName(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom de la constante.

Historique

Version | Description
8.1.0 | Lance une Error quand la propriété name n'a pas été initialisé. Auparavant, la méthode retournée false en cas d'échec.


Récupère la valeur

  • « ReflectionClassConstant::getName
  • ReflectionClassConstant::isEnumCase »
  • PHP Manual
  • ReflectionClassConstant
  • Récupère la valeur

ReflectionClassConstant::getValue

(PHP 7 >= 7.1.0, PHP 8)

ReflectionClassConstant::getValue — Récupère la valeur

Description

public ReflectionClassConstant::getValue(): mixed

Récupère la valeur de la constante de classe.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La valeur de la constante de classe.


Checks if class constant is an Enum case

  • « ReflectionClassConstant::getValue
  • ReflectionClassConstant::isFinal »
  • PHP Manual
  • ReflectionClassConstant
  • Checks if class constant is an Enum case

ReflectionClassConstant::isEnumCase

(PHP 8 >= 8.1.0)

ReflectionClassConstant::isEnumCase — Checks if class constant is an Enum case

Description

public ReflectionClassConstant::isEnumCase(): bool

Checks if the class constant is an Enum case.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

true if the class constant is an Enum case; false otherwise.

Exemples

Exemple #1 ReflectionClassConstant::isEnumCase() example

Distinguish between Enum cases and regular class constants.

<?php
enum Status
{
const BORING_CONSTANT = 'test';
const ENUM_VALUE = Status::PUBLISHED;

case DRAFT;
case PUBLISHED;
case ARCHIVED;
}

$reflection = new ReflectionEnum(Status::class);
foreach ($reflection->getReflectionConstants() as $constant) {
echo "{$constant->name} is ",
$constant->isEnumCase() ? "an enum case" : "a regular class constant",
PHP_EOL;
}
?>

L'exemple ci-dessus va afficher :

BORING_CONSTANT is a regular class constant
ENUM_VALUE is a regular class constant
DRAFT is an enum case
PUBLISHED is an enum case
ARCHIVED is an enum case

Voir aussi

  • ReflectionEnum


Checks if class constant is final

  • « ReflectionClassConstant::isEnumCase
  • ReflectionClassConstant::isPrivate »
  • PHP Manual
  • ReflectionClassConstant
  • Checks if class constant is final

ReflectionClassConstant::isFinal

(PHP 8 >= 8.1.0)

ReflectionClassConstant::isFinal — Checks if class constant is final

Description

public ReflectionClassConstant::isFinal(): bool

Checks if the class constant is final.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

true if the class constant is final, otherwise false

Voir aussi

  • ReflectionClassConstant::isPublic() - Vérifie si la constante de classe est publique
  • ReflectionClassConstant::isPrivate() - Vérifie si la constante de classe est privée
  • ReflectionClassConstant::isProtected() - Vérifie si la constante de classe est protégée


Vérifie si la constante de classe est privée

  • « ReflectionClassConstant::isFinal
  • ReflectionClassConstant::isProtected »
  • PHP Manual
  • ReflectionClassConstant
  • Vérifie si la constante de classe est privée

ReflectionClassConstant::isPrivate

(PHP 7 >= 7.1.0, PHP 8)

ReflectionClassConstant::isPrivate — Vérifie si la constante de classe est privée

Description

public ReflectionClassConstant::isPrivate(): bool

Vérifie si la constante de classe est privée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

true si la constante de classe est privée, sinon false

Voir aussi

  • ReflectionClassConstant::isFinal() - Checks if class constant is final
  • ReflectionClassConstant::isPublic() - Vérifie si la constante de classe est publique
  • ReflectionClassConstant::isProtected() - Vérifie si la constante de classe est protégée


Vérifie si la constante de classe est protégée

  • « ReflectionClassConstant::isPrivate
  • ReflectionClassConstant::isPublic »
  • PHP Manual
  • ReflectionClassConstant
  • Vérifie si la constante de classe est protégée

ReflectionClassConstant::isProtected

(PHP 7 >= 7.1.0, PHP 8)

ReflectionClassConstant::isProtected — Vérifie si la constante de classe est protégée

Description

public ReflectionClassConstant::isProtected(): bool

Vérifie si la constante de classe est protégée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

true si la constante de classe est protégée, sinon false

Voir aussi

  • ReflectionClassConstant::isFinal() - Checks if class constant is final
  • ReflectionClassConstant::isPublic() - Vérifie si la constante de classe est publique
  • ReflectionClassConstant::isPrivate() - Vérifie si la constante de classe est privée


Vérifie si la constante de classe est publique

  • « ReflectionClassConstant::isProtected
  • ReflectionClassConstant::__toString »
  • PHP Manual
  • ReflectionClassConstant
  • Vérifie si la constante de classe est publique

ReflectionClassConstant::isPublic

(PHP 7 >= 7.1.0, PHP 8)

ReflectionClassConstant::isPublic — Vérifie si la constante de classe est publique

Description

public ReflectionClassConstant::isPublic(): bool

Vérifie si la constante de classe est publique.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

true si la constante de classe est publique, sinon false

Voir aussi

  • ReflectionClassConstant::isFinal() - Checks if class constant is final
  • ReflectionClassConstant::isPrivate() - Vérifie si la constante de classe est privée
  • ReflectionClassConstant::isProtected() - Vérifie si la constante de classe est protégée


Retourne la représentation sous forme de chaîne de caractères de l'objet ReflectionClassConstant

  • « ReflectionClassConstant::isPublic
  • ReflectionEnum »
  • PHP Manual
  • ReflectionClassConstant
  • Retourne la représentation sous forme de chaîne de caractères de l'objet ReflectionClassConstant

ReflectionClassConstant::__toString

(PHP 7 >= 7.1.0, PHP 8)

ReflectionClassConstant::__toString — Retourne la représentation sous forme de chaîne de caractères de l'objet ReflectionClassConstant

Description

public ReflectionClassConstant::__toString(): string

Retourne la représentation sous forme de chaîne de caractères de l'objet ReflectionClassConstant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La représentation sous forme de chaîne de caractères de cette instance de ReflectionClassConstant.

Voir aussi

  • ReflectionClassConstant::export() - Exporte
  • __toString()


La classe ReflectionEnum

(PHP 8 >= 8.1.0)

Introduction

La classe ReflectionEnum apporte des informations à propos d'une énumération.

Synopsis de la classe

class ReflectionEnum extends ReflectionClass {
/* Constants héritées */
public const int ReflectionClass::IS_IMPLICIT_ABSTRACT;
public const int ReflectionClass::IS_EXPLICIT_ABSTRACT;
public const int ReflectionClass::IS_FINAL;
public const int ReflectionClass::IS_READONLY;
/* Propriétés héritées */
public string $name;
/* Méthodes */
public __construct(object|string $objectOrClass)
public getBackingType(): ?ReflectionNamedType
public getCase(string $name): ReflectionEnumUnitCase
public getCases(): array
public hasCase(string $name): bool
public isBacked(): bool
/* Méthodes héritées */
public static ReflectionClass::export(mixed $argument, bool $return = false): string
public ReflectionClass::getAttributes(?string $name = null, int $flags = 0): array
public ReflectionClass::getConstant(string $name): mixed
public ReflectionClass::getConstants(?int $filter = null): array
public ReflectionClass::getConstructor(): ?ReflectionMethod
public ReflectionClass::getDefaultProperties(): array
public ReflectionClass::getDocComment(): string|false
public ReflectionClass::getEndLine(): int|false
public ReflectionClass::getExtension(): ?ReflectionExtension
public ReflectionFunctionAbstract::getExtensionName(): string|false
public ReflectionClass::getFileName(): string|false
public ReflectionClass::getInterfaceNames(): array
public ReflectionClass::getInterfaces(): array
public ReflectionClass::getMethod(string $name): ReflectionMethod
public ReflectionClass::getMethods(?int $filter = null): array
public ReflectionClass::getModifiers(): int
public ReflectionClass::getName(): string
public ReflectionClass::getNamespaceName(): string
public ReflectionClass::getParentClass(): ReflectionClass|false
public ReflectionClass::getProperties(?int $filter = null): array
public ReflectionClass::getProperty(string $name): ReflectionProperty
public ReflectionClass::getReflectionConstant(string $name): ReflectionClassConstant|false
public ReflectionClass::getReflectionConstants(?int $filter = null): array
public ReflectionClass::getShortName(): string
public ReflectionClass::getStartLine(): int|false
public ReflectionClass::getStaticProperties(): array
public ReflectionClass::getStaticPropertyValue(string $name, mixed &$def_value = ?): mixed
public ReflectionClass::getTraitAliases(): array
public ReflectionClass::getTraitNames(): array
public ReflectionClass::getTraits(): array
public ReflectionClass::hasConstant(string $name): bool
public ReflectionClass::hasMethod(string $name): bool
public ReflectionClass::hasProperty(string $name): bool
public ReflectionClass::implementsInterface(ReflectionClass|string $interface): bool
public ReflectionClass::inNamespace(): bool
public ReflectionClass::isAbstract(): bool
public ReflectionClass::isAnonymous(): bool
public ReflectionClass::isCloneable(): bool
public ReflectionClass::isEnum(): bool
public ReflectionClass::isFinal(): bool
public ReflectionClass::isInstance(object $object): bool
public ReflectionClass::isInstantiable(): bool
public ReflectionClass::isInterface(): bool
public ReflectionClass::isInternal(): bool
public ReflectionClass::isIterable(): bool
public ReflectionClass::isReadOnly(): bool
public ReflectionClass::isSubclassOf(ReflectionClass|string $class): bool
public ReflectionClass::isTrait(): bool
public ReflectionClass::isUserDefined(): bool
public ReflectionClass::newInstance(mixed ...$args): object
public ReflectionClass::newInstanceArgs(array $args = []): ?object
public ReflectionClass::newInstanceWithoutConstructor(): object
public ReflectionClass::setStaticPropertyValue(string $name, mixed $value): void
public ReflectionClass::__toString(): string
}

Voir aussi

  • Enumerations

Sommaire

  • ReflectionEnum::__construct — Instantiates a ReflectionEnum object
  • ReflectionEnum::getBackingType — Gets the backing type of an Enum, if any
  • ReflectionEnum::getCase — Returns a specific case of an Enum
  • ReflectionEnum::getCases — Returns a list of all cases on an Enum
  • ReflectionEnum::hasCase — Checks for a case on an Enum
  • ReflectionEnum::isBacked — Determines if an Enum is a Backed Enum


Instantiates a ReflectionEnum object

  • « ReflectionEnum
  • ReflectionEnum::getBackingType »
  • PHP Manual
  • ReflectionEnum
  • Instantiates a ReflectionEnum object

ReflectionEnum::__construct

(PHP 8 >= 8.1.0)

ReflectionEnum::__construct — Instantiates a ReflectionEnum object

Description

public ReflectionEnum::__construct(object|string $objectOrClass)

Liste de paramètres

objectOrClass

An enum instance or a name.


Gets the backing type of an Enum, if any

  • « ReflectionEnum::__construct
  • ReflectionEnum::getCase »
  • PHP Manual
  • ReflectionEnum
  • Gets the backing type of an Enum, if any

ReflectionEnum::getBackingType

(PHP 8 >= 8.1.0)

ReflectionEnum::getBackingType — Gets the backing type of an Enum, if any

Description

public ReflectionEnum::getBackingType(): ?ReflectionNamedType

If the enumeration is a Backed Enum, this method will return an instance of ReflectionType for the backing type of the Enum. If it is not a Backed Enum, it will return null.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

An instance of ReflectionNamedType, or null if the Enum has no backing type.

Historique

Version | Description
8.2.0 | The return type is now declared as ?ReflectionNamedType. Previously, ?ReflectionType was declared.

Exemples

Exemple #1 ReflectionEnum::getBackingType() example

<?php
enum Suit: string
{
case Hearts = 'H';
case Diamonds = 'D';
case Clubs = 'C';
case Spades = 'S';
}

$rEnum = new ReflectionEnum(Suit::class);

$rBackingType = $rEnum->getBackingType();

var_dump((string)$rBackingType);
?>

L'exemple ci-dessus va afficher :

string(6) "string"

Voir aussi

  • Enumerations
  • ReflectionEnum::isBacked() - Determines if an Enum is a Backed Enum


Returns a specific case of an Enum

  • « ReflectionEnum::getBackingType
  • ReflectionEnum::getCases »
  • PHP Manual
  • ReflectionEnum
  • Returns a specific case of an Enum

ReflectionEnum::getCase

(PHP 8 >= 8.1.0)

ReflectionEnum::getCase — Returns a specific case of an Enum

Description

public ReflectionEnum::getCase(string $name): ReflectionEnumUnitCase

Returns the reflection object for a specific Enum case by name. If the requested case is not defined, a ReflectionException is thrown.

Liste de paramètres

name

The name of the case to retrieve.

Valeurs de retour

An instance of ReflectionEnumUnitCase or ReflectionEnumBackedCase, as appropriate.

Exemples

Exemple #1 ReflectionEnum::getCase() example

<?php
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}

$rEnum = new ReflectionEnum(Suit::class);

$rCase = $rEnum->getCase('Clubs');

var_dump($rCase->getValue());
?>

L'exemple ci-dessus va afficher :

enum(Suit::Clubs)

Voir aussi

  • Enumerations
  • ReflectionEnum::getCases() - Returns a list of all cases on an Enum
  • ReflectionEnum::hasCase() - Checks for a case on an Enum
  • ReflectionEnum::isBacked() - Determines if an Enum is a Backed Enum


Returns a list of all cases on an Enum

  • « ReflectionEnum::getCase
  • ReflectionEnum::hasCase »
  • PHP Manual
  • ReflectionEnum
  • Returns a list of all cases on an Enum

ReflectionEnum::getCases

(PHP 8 >= 8.1.0)

ReflectionEnum::getCases — Returns a list of all cases on an Enum

Description

public ReflectionEnum::getCases(): array

An Enum may contain zero or more cases. This method retrieves all defined cases, in lexical order (that is, the order they appear in the source code).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

An array of Enum reflection objects, one for each case in the Enum. For a Unit Enum, they will all be instances of ReflectionEnumUnitCase. For a Backed Enum, they will all be instances of ReflectionEnumBackedCase.

Exemples

Exemple #1 ReflectionEnum::getCases() example

<?php
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}

$rEnum = new ReflectionEnum(Suit::class);

$cases = $rEnum->getCases();

foreach ($cases as $rCase) {
var_dump($rCase->getValue());
}
?>

L'exemple ci-dessus va afficher :

enum(Suit::Hearts)
enum(Suit::Diamonds)
enum(Suit::Clubs)
enum(Suit::Spades)

Voir aussi

  • Enumerations
  • ReflectionEnum::getCase() - Returns a specific case of an Enum
  • ReflectionEnum::isBacked() - Determines if an Enum is a Backed Enum


Checks for a case on an Enum

  • « ReflectionEnum::getCases
  • ReflectionEnum::isBacked »
  • PHP Manual
  • ReflectionEnum
  • Checks for a case on an Enum

ReflectionEnum::hasCase

(PHP 8 >= 8.1.0)

ReflectionEnum::hasCase — Checks for a case on an Enum

Description

public ReflectionEnum::hasCase(string $name): bool

Determines if a given case is defined on an Enum.

Liste de paramètres

name

The case to check for.

Valeurs de retour

true if the case is defined, false if not.

Exemples

Exemple #1 ReflectionEnum::hasCase() example

<?php
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}

$rEnum = new ReflectionEnum(Suit::class);

var_dump($rEnum->hasCase('Hearts'));
var_dump($rEnum->hasCase('Horseshoes'));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)

Voir aussi

  • Enumerations
  • ReflectionEnum::getCase() - Returns a specific case of an Enum
  • ReflectionEnum::getCases() - Returns a list of all cases on an Enum


Determines if an Enum is a Backed Enum

  • « ReflectionEnum::hasCase
  • ReflectionEnumUnitCase »
  • PHP Manual
  • ReflectionEnum
  • Determines if an Enum is a Backed Enum

ReflectionEnum::isBacked

(PHP 8 >= 8.1.0)

ReflectionEnum::isBacked — Determines if an Enum is a Backed Enum

Description

public ReflectionEnum::isBacked(): bool

A Backed Enum is one that has a native backing scalar equivalent, either a string or an int. Not all Enums are backed.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

true if the Enum has a backing scalar, false if not.

Exemples

Exemple #1 ReflectionEnum::isBacked() example

<?php
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}

enum BackedSuit: string
{
case Hearts = 'H';
case Diamonds = 'D';
case Clubs = 'C';
case Spades = 'S';
}

var_dump((new ReflectionEnum(Suit::class))->isBacked());
var_dump((new ReflectionEnum(BackedSuit::class))->isBacked());
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)

Voir aussi

  • Enumerations
  • ReflectionEnum::getBackingType() - Gets the backing type of an Enum, if any


La classe ReflectionEnumUnitCase

(PHP 8 >= 8.1.0)

Introduction

La classe ReflectionEnumUnitCase apporte des informations à propos d'un cas d'énumération unitaire, qui n'a pas d'équivalent scalaire.

Synopsis de la classe

class ReflectionEnumUnitCase extends ReflectionClassConstant {
/* Constants héritées */
public const int ReflectionClassConstant::IS_PUBLIC;
public const int ReflectionClassConstant::IS_PROTECTED;
public const int ReflectionClassConstant::IS_PRIVATE;
public const int ReflectionClassConstant::IS_FINAL;
/* Propriétés héritées */
public string $name;
public string $class;
/* Méthodes */
public __construct(object|string $class, string $constant)
public getEnum(): ReflectionEnum
public getValue(): UnitEnum
/* Méthodes héritées */
public static ReflectionClassConstant::export(mixed $class, string $name, bool $return = ?): string
public ReflectionClassConstant::getAttributes(?string $name = null, int $flags = 0): array
public ReflectionClassConstant::getDeclaringClass(): ReflectionClass
public ReflectionClassConstant::getDocComment(): string|false
public ReflectionClassConstant::getModifiers(): int
public ReflectionClassConstant::getName(): string
public ReflectionClassConstant::getValue(): mixed
public ReflectionClassConstant::isEnumCase(): bool
public ReflectionClassConstant::isFinal(): bool
public ReflectionClassConstant::isPrivate(): bool
public ReflectionClassConstant::isProtected(): bool
public ReflectionClassConstant::isPublic(): bool
public ReflectionClassConstant::__toString(): string
}

Voir aussi

  • Enumerations
  • ReflectionEnumBackedCase

Sommaire

  • ReflectionEnumUnitCase::__construct — Instantiates a ReflectionEnumUnitCase object
  • ReflectionEnumUnitCase::getEnum — Gets the reflection of the enum of this case
  • ReflectionEnumUnitCase::getValue — Gets the enum case object described by this reflection object


Instantiates a ReflectionEnumUnitCase object

  • « ReflectionEnumUnitCase
  • ReflectionEnumUnitCase::getEnum »
  • PHP Manual
  • ReflectionEnumUnitCase
  • Instantiates a ReflectionEnumUnitCase object

ReflectionEnumUnitCase::__construct

(PHP 8 >= 8.1.0)

ReflectionEnumUnitCase::__construct — Instantiates a ReflectionEnumUnitCase object

Description

public ReflectionEnumUnitCase::__construct(object|string $class, string $constant)

Liste de paramètres

class

An enum instance or a name.

constant

An enum constant name.


Gets the reflection of the enum of this case

  • « ReflectionEnumUnitCase::__construct
  • ReflectionEnumUnitCase::getValue »
  • PHP Manual
  • ReflectionEnumUnitCase
  • Gets the reflection of the enum of this case

ReflectionEnumUnitCase::getEnum

(PHP 8 >= 8.1.0)

ReflectionEnumUnitCase::getEnum — Gets the reflection of the enum of this case

Description

public ReflectionEnumUnitCase::getEnum(): ReflectionEnum

Gets the reflection of the enum of this case.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

A ReflectionEnum instance describing the Enum this case belongs to.

Voir aussi

  • Enumerations


Gets the enum case object described by this reflection object

  • « ReflectionEnumUnitCase::getEnum
  • ReflectionEnumBackedCase »
  • PHP Manual
  • ReflectionEnumUnitCase
  • Gets the enum case object described by this reflection object

ReflectionEnumUnitCase::getValue

(PHP 8 >= 8.1.0)

ReflectionEnumUnitCase::getValue — Gets the enum case object described by this reflection object

Description

public ReflectionEnumUnitCase::getValue(): UnitEnum

Returns the enum case object described by this reflection object.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The enum case object described by this reflection object.

Exemples

Exemple #1 ReflectionEnum::getValue() example

<?php
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}

$rEnum = new ReflectionEnum(Suit::class);

$rCase = $rEnum->getCase('Diamonds');

var_dump($rCase->getValue());
?>

L'exemple ci-dessus va afficher :

enum(Suit::Diamonds)

Voir aussi

  • Enumerations


La classe ReflectionEnumBackedCase

(PHP 8 >= 8.1.0)

Introduction

La classe ReflectionEnumBackedCase apporte des informations à propos d'un cas d'énumération soutenue, qui a un scalaire équivalent.

Synopsis de la classe

class ReflectionEnumBackedCase extends ReflectionEnumUnitCase {
/* Constants héritées */
public const int ReflectionClassConstant::IS_PUBLIC;
public const int ReflectionClassConstant::IS_PROTECTED;
public const int ReflectionClassConstant::IS_PRIVATE;
public const int ReflectionClassConstant::IS_FINAL;
/* Propriétés héritées */
public string $name;
public string $class;
/* Méthodes */
public __construct(object|string $class, string $constant)
public getBackingValue(): int|string
/* Méthodes héritées */
public ReflectionEnumUnitCase::getEnum(): ReflectionEnum
public ReflectionEnumUnitCase::getValue(): UnitEnum
public static ReflectionClassConstant::export(mixed $class, string $name, bool $return = ?): string
public ReflectionClassConstant::getAttributes(?string $name = null, int $flags = 0): array
public ReflectionClassConstant::getDeclaringClass(): ReflectionClass
public ReflectionClassConstant::getDocComment(): string|false
public ReflectionClassConstant::getModifiers(): int
public ReflectionClassConstant::getName(): string
public ReflectionClassConstant::getValue(): mixed
public ReflectionClassConstant::isEnumCase(): bool
public ReflectionClassConstant::isFinal(): bool
public ReflectionClassConstant::isPrivate(): bool
public ReflectionClassConstant::isProtected(): bool
public ReflectionClassConstant::isPublic(): bool
public ReflectionClassConstant::__toString(): string
}

Voir aussi

  • Enumerations
  • ReflectionEnumUnitCase

Sommaire

  • ReflectionEnumBackedCase::__construct — Instantiates a ReflectionEnumBackedCase object
  • ReflectionEnumBackedCase::getBackingValue — Gets the scalar value backing this Enum case


Instantiates a ReflectionEnumBackedCase object

  • « ReflectionEnumBackedCase
  • ReflectionEnumBackedCase::getBackingValue »
  • PHP Manual
  • ReflectionEnumBackedCase
  • Instantiates a ReflectionEnumBackedCase object

ReflectionEnumBackedCase::__construct

(PHP 8 >= 8.1.0)

ReflectionEnumBackedCase::__construct — Instantiates a ReflectionEnumBackedCase object

Description

public ReflectionEnumBackedCase::__construct(object|string $class, string $constant)

Liste de paramètres

class

An enum instance or a name.

constant

An enum constant name.


Gets the scalar value backing this Enum case

  • « ReflectionEnumBackedCase::__construct
  • ReflectionZendExtension »
  • PHP Manual
  • ReflectionEnumBackedCase
  • Gets the scalar value backing this Enum case

ReflectionEnumBackedCase::getBackingValue

(PHP 8 >= 8.1.0)

ReflectionEnumBackedCase::getBackingValue — Gets the scalar value backing this Enum case

Description

public ReflectionEnumBackedCase::getBackingValue(): int|string

Gets the scalar value backing this Enum case.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The scalar equivalent of this enum case.

Exemples

Exemple #1 ReflectionEnum::getBackingValue() example

<?php
enum Suit: string
{
case Hearts = 'H';
case Diamonds = 'D';
case Clubs = 'C';
case Spades = 'S';
}

$rEnum = new ReflectionEnum(Suit::class);

$rCase = $rEnum->getCase('Spades');

var_dump($rCase->getBackingValue());
?>

L'exemple ci-dessus va afficher :

string(1) "S"

Voir aussi

  • Enumerations


La classe ReflectionZendExtension

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

Introduction

Synopsis de la classe

class ReflectionZendExtension implements Reflector {
/* Propriétés */
public string $name;
/* Méthodes */
public __construct(string $name)
private __clone(): void
public static export(string $name, bool $return = ?): string
public getAuthor(): string
public getCopyright(): string
public getName(): string
public getURL(): string
public getVersion(): string
public __toString(): string
}

Propriétés

name

Nom de l'extension. En lecture seule, émets ReflectionException lors d'une tentative d'écriture.

Historique

Version | Description
8.0.0 | ReflectionZendExtension::export() a été supprimé.

Sommaire

  • ReflectionZendExtension::__clone — Gestionnaire de clonage
  • ReflectionZendExtension::__construct — Construit un objet ReflectionZendExtension
  • 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 >= 5.4.0, PHP 7, PHP 8)

ReflectionZendExtension::__clone — Gestionnaire de clonage

Description

private ReflectionZendExtension::__clone(): void

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Historique

Version | Description
8.1.0 | Cette méthode n'est plus final.


Construit un objet ReflectionZendExtension

  • « ReflectionZendExtension::__clone
  • ReflectionZendExtension::export »
  • PHP Manual
  • ReflectionZendExtension
  • Construit un objet ReflectionZendExtension

ReflectionZendExtension::__construct

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionZendExtension::__construct — Construit un objet ReflectionZendExtension

Description

public ReflectionZendExtension::__construct(string $name)

Construit un nouvel objet ReflectionZendExtension.

Liste de paramètres

name

Le nom de l'extension.

Erreurs / Exceptions

Lance une ReflectionException si l'extension à réfléchir n'existe pas.


Export

  • « ReflectionZendExtension::__construct
  • ReflectionZendExtension::getAuthor »
  • PHP Manual
  • ReflectionZendExtension
  • Export

ReflectionZendExtension::export

(PHP 5 >= 5.4.0, PHP 7)

ReflectionZendExtension::export — Export

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.4.0, et a été SUPPRIMÉE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

public static ReflectionZendExtension::export(string $name, bool $return = ?): string

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

name

return

Valeurs de retour

Voir aussi

  • ReflectionClassConstant::__toString() - Retourne la représentation sous forme de chaîne de caractères de l'objet ReflectionClassConstant


Récupère l'auteur

  • « ReflectionZendExtension::export
  • ReflectionZendExtension::getCopyright »
  • PHP Manual
  • ReflectionZendExtension
  • Récupère l'auteur

ReflectionZendExtension::getAuthor

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionZendExtension::getAuthor — Récupère l'auteur

Description

public ReflectionZendExtension::getAuthor(): string

Avertissement

Cette fonction est actuellement non documentée ; 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 >= 5.4.0, PHP 7, PHP 8)

ReflectionZendExtension::getCopyright — Récupère le copyright

Description

public ReflectionZendExtension::getCopyright(): string

Avertissement

Cette fonction est actuellement non documentée ; 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 >= 5.4.0, PHP 7, PHP 8)

ReflectionZendExtension::getName — Récupère le nom

Description

public ReflectionZendExtension::getName(): string

Avertissement

Cette fonction est actuellement non documentée ; 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 >= 5.4.0, PHP 7, PHP 8)

ReflectionZendExtension::getURL — Récupère l'URL

Description

public ReflectionZendExtension::getURL(): string

Avertissement

Cette fonction est actuellement non documentée ; 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 >= 5.4.0, PHP 7, PHP 8)

ReflectionZendExtension::getVersion — Récupère la version

Description

public ReflectionZendExtension::getVersion(): string

Avertissement

Cette fonction est actuellement non documentée ; 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 >= 5.4.0, PHP 7, PHP 8)

ReflectionZendExtension::__toString — Gestionnaire de conversion en chaîne de caractères

Description

public ReflectionZendExtension::__toString(): string

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

Introduction

La classe ReflectionExtension rapporte des informations sur une extension.

Synopsis de la classe

class ReflectionExtension implements Reflector {
/* Propriétés */
public string $name;
/* Méthodes */
public __construct(string $name)
private __clone(): void
public static export(string $name, string $return = false): string
public getClasses(): array
public getClassNames(): array
public getConstants(): array
public getDependencies(): array
public getFunctions(): array
public getINIEntries(): array
public getName(): string
public getVersion(): ?string
public info(): void
public isPersistent(): bool
public isTemporary(): bool
public __toString(): string
}

Propriétés

name

Nom de l'extension, identique à l'appel de la méthode ReflectionExtension::getName()

Historique

Version | Description
8.0.0 | ReflectionExtension::export() a été supprimé.

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, PHP 8)

ReflectionExtension::__clone — Clonage

Description

private ReflectionExtension::__clone(): void

La méthode clone empêche un objet d'être cloné. Les objets de réflexion ne peuvent pas être clonés.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur retournée, si appellé une erreur fatale se produira.

Historique

Version | Description
8.1.0 | Cette méthode n'est plus final.

Voir aussi

  • ReflectionExtension::__construct() - Construit un nouvel objet ReflectionExtension
  • Clonage d'objet


Construit un nouvel objet ReflectionExtension

  • « ReflectionExtension::__clone
  • ReflectionExtension::export »
  • PHP Manual
  • ReflectionExtension
  • Construit un nouvel objet ReflectionExtension

ReflectionExtension::__construct

(PHP 5, PHP 7, PHP 8)

ReflectionExtension::__construct — Construit un nouvel objet ReflectionExtension

Description

public ReflectionExtension::__construct(string $name)

Construit un objet ReflectionExtension.

Liste de paramètres

name

Nom de l'extension.

Erreurs / Exceptions

Lance une ReflectionException si l'extension à réfléchir n'existe pas.

Exemples

Exemple #1 Exemple avec ReflectionExtension

<?php
$ext = new ReflectionExtension('Reflection');

printf('Extension: %s (version: %s)', $ext->getName(), $ext->getVersion());
?>

Résultat de l'exemple ci-dessus est similaire à :

Extension: Reflection (version: $Revision$)

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

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.4.0, et a été SUPPRIMÉE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

public static ReflectionExtension::export(string $name, string $return = false): string

Exporte une extension reflétée. Le format de retour de cette fonction est identique à l'argument CLI --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
  • ReflectionExtension::__toString() - Récupère une représentation textuelle


Récupère les classes

  • « ReflectionExtension::export
  • ReflectionExtension::getClassNames »
  • PHP Manual
  • ReflectionExtension
  • Récupère les classes

ReflectionExtension::getClasses

(PHP 5, PHP 7, PHP 8)

ReflectionExtension::getClasses — Récupère les classes

Description

public ReflectionExtension::getClasses(): array

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());
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

ReflectionExtension::getClassNames — Récupère les noms des classes

Description

public ReflectionExtension::getClassNames(): array

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 des noms de classes, comme 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());
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

ReflectionExtension::getConstants — Récupère les constantes

Description

public ReflectionExtension::getConstants(): array

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());
?>

Résultat de l'exemple ci-dessus est 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 >= 5.1.3, PHP 7, PHP 8)

ReflectionExtension::getDependencies — Récupère les dépendances

Description

public ReflectionExtension::getDependencies(): array

Récupère les dépendances, en listant à la fois les dépendances requises ainsi que 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());
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

ReflectionExtension::getFunctions — Récupère les fonctions d'une extension

Description

public ReflectionExtension::getFunctions(): array

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());
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

ReflectionExtension::getINIEntries — Récupère les entrées ini de l'extension

Description

public ReflectionExtension::getINIEntries(): array

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 valeurs de ces entrées.

Exemples

Exemple #1 Exemple avec ReflectionExtension::getINIEntries()

<?php
$ext = new ReflectionExtension('mysql');

print_r($ext->getINIEntries());
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

ReflectionExtension::getName — Récupère le nom de l'extension

Description

public ReflectionExtension::getName(): string

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());
?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

ReflectionExtension::getVersion — Récupère la version de l'extension

Description

public ReflectionExtension::getVersion(): ?string

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, ou null si l'extension n'a pas de version.

Exemples

Exemple #1 Exemple avec ReflectionExtension::getVersion()

<?php
$ext = new ReflectionExtension('mysqli');
var_dump($ext->getVersion());
?>

Résultat de l'exemple ci-dessus est 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 >= 5.2.4, PHP 7, PHP 8)

ReflectionExtension::info — Affiche des informations sur l'extension

Description

public ReflectionExtension::info(): void

Affiche l'extrait "phpinfo()" de l'extension fournit.

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();
?>

Résultat de l'exemple ci-dessus est similaire à :

mysqli

MysqlI Support => enabled
Client API library version => mysqlnd 5.0.5-dev - 081106 - $Revision$
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 >= 5.4.0, PHP 7, PHP 8)

ReflectionExtension::isPersistent — Vérifie si l'extension est persistante

Description

public ReflectionExtension::isPersistent(): bool

Vérifie si l'extension est persistante.

Une extension est persistante quand elle est chargé utilisant php.ini. Une extension est temporaire, pas persistante, quand elle est chargé avec dl().

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 >= 5.4.0, PHP 7, PHP 8)

ReflectionExtension::isTemporary — Vérifie si l'extension est temporaire

Description

public ReflectionExtension::isTemporary(): bool

Vérifie si l'extension est temporaire.

Une extension est temporaire si elle est chargé avec dl().

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, PHP 8)

ReflectionExtension::__toString — Récupère une représentation textuelle

Description

public ReflectionExtension::__toString(): string

Exporte une extension reflétée et retourne le résultat sous forme de chaîne de caractères. Cette méthode est identique à ReflectionExtension::export() avec return défini à 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, PHP 8)

Introduction

La classe ReflectionFunction rapporte des informations sur une fonction.

Synopsis de la classe

class ReflectionFunction extends ReflectionFunctionAbstract {
/* Constantes */
public const int IS_DEPRECATED;
/* Propriétés héritées */
public string $name;
/* Méthodes */
public __construct(Closure|string $function)
public static export(string $name, string $return = ?): string
public getClosure(): Closure
public invoke(mixed ...$args): mixed
public invokeArgs(array $args): mixed
public isAnonymous(): bool
public isDisabled(): bool
public __toString(): string
/* Méthodes héritées */
private ReflectionFunctionAbstract::__clone(): void
public ReflectionFunctionAbstract::getAttributes(?string $name = null, int $flags = 0): array
public ReflectionFunctionAbstract::getClosureScopeClass(): ?ReflectionClass
public ReflectionFunctionAbstract::getClosureThis(): ?object
public ReflectionFunctionAbstract::getClosureUsedVariables(): array
public ReflectionFunctionAbstract::getDocComment(): string|false
public ReflectionFunctionAbstract::getEndLine(): int|false
public ReflectionFunctionAbstract::getExtension(): ?ReflectionExtension
public ReflectionFunctionAbstract::getExtensionName(): string|false
public ReflectionFunctionAbstract::getFileName(): string|false
public ReflectionFunctionAbstract::getName(): string
public ReflectionFunctionAbstract::getNamespaceName(): string
public ReflectionFunctionAbstract::getNumberOfParameters(): int
public ReflectionFunctionAbstract::getNumberOfRequiredParameters(): int
public ReflectionFunctionAbstract::getParameters(): array
public ReflectionFunctionAbstract::getReturnType(): ?ReflectionType
public ReflectionFunctionAbstract::getShortName(): string
public ReflectionFunctionAbstract::getStartLine(): int|false
public ReflectionFunctionAbstract::getStaticVariables(): array
public ReflectionFunctionAbstract::getTentativeReturnType(): ?ReflectionType
public ReflectionFunctionAbstract::hasReturnType(): bool
public ReflectionFunctionAbstract::hasTentativeReturnType(): bool
public ReflectionFunctionAbstract::inNamespace(): bool
public ReflectionFunctionAbstract::isClosure(): bool
public ReflectionFunctionAbstract::isDeprecated(): bool
public ReflectionFunctionAbstract::isGenerator(): bool
public ReflectionFunctionAbstract::isInternal(): bool
public ReflectionFunctionAbstract::isStatic(): bool
public ReflectionFunctionAbstract::isUserDefined(): bool
public ReflectionFunctionAbstract::isVariadic(): bool
public ReflectionFunctionAbstract::returnsReference(): bool
abstract public ReflectionFunctionAbstract::__toString(): void
}

Constantes pré-définies

Modificateurs de ReflectionFunction

ReflectionFunction::IS_DEPRECATED

Indique une fonction obsolète.

Historique

Version | Description
8.0.0 | ReflectionFunction::export() a été supprimée.

Sommaire

  • ReflectionFunction::__construct — Construit un nouvel objet ReflectionFunction
  • ReflectionFunction::export — Exporte une fonction
  • ReflectionFunction::getClosure — Retourne une fermeture créée dynamiquement pour la fonction
  • ReflectionFunction::invoke — Invoque une fonction
  • ReflectionFunction::invokeArgs — Invoque les arguments d'une fonction
  • ReflectionFunction::isAnonymous — Checks if a function is anonymous
  • ReflectionFunction::isDisabled — Vérifie si une fonction est désactivée
  • ReflectionFunction::__toString — Retourne une représentation textuelle de l'objet ReflectionFunction


Construit un nouvel objet ReflectionFunction

  • « ReflectionFunction
  • ReflectionFunction::export »
  • PHP Manual
  • ReflectionFunction
  • Construit un nouvel objet ReflectionFunction

ReflectionFunction::__construct

(PHP 5, PHP 7, PHP 8)

ReflectionFunction::__construct — Construit un nouvel objet ReflectionFunction

Description

public ReflectionFunction::__construct(Closure|string $function)

Construit un nouvel objet ReflectionFunction.

Liste de paramètres

function

Le nom de la fonction à refléter ou une fermeture.

Erreurs / Exceptions

Une exception ReflectionException si le paramètre function contient une fonction invalide.

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));
?>

Résultat de l'exemple ci-dessus est 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

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.4.0, et a été SUPPRIMÉE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

public static ReflectionFunction::export(string $name, string $return = ?): string

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
  • ReflectionFunction::__toString() - Retourne une représentation textuelle de l'objet ReflectionFunction


Retourne une fermeture créée dynamiquement pour la fonction

  • « ReflectionFunction::export
  • ReflectionFunction::invoke »
  • PHP Manual
  • ReflectionFunction
  • Retourne une fermeture créée dynamiquement pour la fonction

ReflectionFunction::getClosure

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionFunction::getClosure — Retourne une fermeture créée dynamiquement pour la fonction

Description

public ReflectionFunction::getClosure(): Closure

Récupère une fermeture créée dynamiquement pour la fonction.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet Closure nouvellement crée.

Voir aussi

  • Syntaxe callable de première classe


Invoque une fonction

  • « ReflectionFunction::getClosure
  • ReflectionFunction::invokeArgs »
  • PHP Manual
  • ReflectionFunction
  • Invoque une fonction

ReflectionFunction::invoke

(PHP 5, PHP 7, PHP 8)

ReflectionFunction::invoke — Invoque une fonction

Description

public ReflectionFunction::invoke(mixed ...$args): 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:

ReflectionFunction::invoke() ne peut pas être utilisé quand des paramètres de références sont attendus. ReflectionFunction::invokeArgs() doit être utilisé à la place (passant les références dans la liste d'argument).

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::isAnonymous »
  • PHP Manual
  • ReflectionFunction
  • Invoque les arguments d'une fonction

ReflectionFunction::invokeArgs

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

ReflectionFunction::invokeArgs — Invoque les arguments d'une fonction

Description

public ReflectionFunction::invokeArgs(array $args): mixed

Invoque la fonction et lui transmet les arguments sous la forme d'un tableau.

Liste de paramètres

args

Les arguments à utiliser lors de l'invocation, tout comme le fonctionnement de call_user_func_array().

Valeurs de retour

Retourne le résultat de la fonction invoquée.

Historique

Version | Description
8.0.0 | Les clés de args seront désormais interprété comme les noms des paramètres, au lieu d'être silencieusement ignoré.

Exemples

Exemple #1 Exemple avec ReflectionFunction::invokeArgs()

<?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


Checks if a function is anonymous

  • « ReflectionFunction::invokeArgs
  • ReflectionFunction::isDisabled »
  • PHP Manual
  • ReflectionFunction
  • Checks if a function is anonymous

ReflectionFunction::isAnonymous

(PHP 8 >= 8.2.0)

ReflectionFunction::isAnonymous — Checks if a function is anonymous

Description

public ReflectionFunction::isAnonymous(): bool

Checks if a function is anonymous.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns true if the function is anonymous, otherwise false.

Exemples

Exemple #1 ReflectionFunction::isAnonymous() example

<?php

$rf = new ReflectionFunction(function() {});
var_dump($rf->isAnonymous());

$rf = new ReflectionFunction('strlen');
var_dump($rf->isAnonymous());
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)

Voir aussi

  • Anonymous functions


Vérifie si une fonction est désactivée

  • « ReflectionFunction::isAnonymous
  • ReflectionFunction::__toString »
  • PHP Manual
  • ReflectionFunction
  • Vérifie si une fonction est désactivée

ReflectionFunction::isDisabled

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunction::isDisabled — Vérifie si une fonction est désactivée

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

public ReflectionFunction::isDisabled(): bool

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
  • Directive disable_functions


Retourne une représentation textuelle de l'objet ReflectionFunction

  • « ReflectionFunction::isDisabled
  • ReflectionFunctionAbstract »
  • PHP Manual
  • ReflectionFunction
  • Retourne une représentation textuelle de l'objet ReflectionFunction

ReflectionFunction::__toString

(PHP 5, PHP 7, PHP 8)

ReflectionFunction::__toString — Retourne une représentation textuelle de l'objet ReflectionFunction

Description

public ReflectionFunction::__toString(): string

Récupère une représentation textuelle lisible par un être humain de la fonction, ses paramètres et sa valeur de retour.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La chaîne.

Exemples

Exemple #1 Exemple pour ReflectionFunction::__toString()

<?php
function title($title, $name)
{
return sprintf("%s. %s\r\n", $title, $name);
}

echo new ReflectionFunction('title');
?>

Résultat de l'exemple ci-dessus est 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
  • __toString()


La classe ReflectionFunctionAbstract

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

Introduction

Une classe parente à ReflectionFunction, lisez sa description pour plus de détails.

Synopsis de la classe

abstract class ReflectionFunctionAbstract implements Reflector {
/* Propriétés */
public string $name;
/* Méthodes */
private __clone(): void
public getAttributes(?string $name = null, int $flags = 0): array
public getClosureScopeClass(): ?ReflectionClass
public getClosureThis(): ?object
public getClosureUsedVariables(): array
public getDocComment(): string|false
public getEndLine(): int|false
public getExtension(): ?ReflectionExtension
public getExtensionName(): string|false
public getFileName(): string|false
public getName(): string
public getNamespaceName(): string
public getNumberOfParameters(): int
public getNumberOfRequiredParameters(): int
public getParameters(): array
public getReturnType(): ?ReflectionType
public getShortName(): string
public getStartLine(): int|false
public getStaticVariables(): array
public getTentativeReturnType(): ?ReflectionType
public hasReturnType(): bool
public hasTentativeReturnType(): bool
public inNamespace(): bool
public isClosure(): bool
public isDeprecated(): bool
public isGenerator(): bool
public isInternal(): bool
public isStatic(): bool
public isUserDefined(): bool
public isVariadic(): bool
public returnsReference(): bool
abstract public __toString(): void
}

Propriétés

name

Nom de la fonction. En lecture seule, émets ReflectionException lors d'une tentative d'écriture.

Sommaire

  • ReflectionFunctionAbstract::__clone — Clone une fonction
  • ReflectionFunctionAbstract::getAttributes — Gets Attributes
  • ReflectionFunctionAbstract::getClosureScopeClass — Retourne la portée de la classe associée à la fermeture
  • ReflectionFunctionAbstract::getClosureThis — Retourne le pointeur lié à la fermeture
  • ReflectionFunctionAbstract::getClosureUsedVariables — Returns an array of the used variables in the Closure
  • 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 — Récupère le type de retour définit pour une fonction
  • 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::getTentativeReturnType — Returns the tentative return type associated with the function
  • ReflectionFunctionAbstract::hasReturnType — Vérifie si la fonction a un type de retour définit
  • ReflectionFunctionAbstract::hasTentativeReturnType — Returns whether the function has a tentative 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::isStatic — Vérifie si la fonction est statique
  • 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 d'un objet ReflectionFunctionAbstract


Clone une fonction

  • « ReflectionFunctionAbstract
  • ReflectionFunctionAbstract::getAttributes »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Clone une fonction

ReflectionFunctionAbstract::__clone

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::__clone — Clone une fonction

Description

private ReflectionFunctionAbstract::__clone(): void

Clone une fonction.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version | Description
8.1.0 | Cette méthode n'est plus final.

Voir aussi

  • Le clonage d'objets


Gets Attributes

  • « ReflectionFunctionAbstract::__clone
  • ReflectionFunctionAbstract::getClosureScopeClass »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Gets Attributes

ReflectionFunctionAbstract::getAttributes

(PHP 8)

ReflectionFunctionAbstract::getAttributes — Gets Attributes

Description

public ReflectionFunctionAbstract::getAttributes(?string $name = null, int $flags = 0): array

Returns all attributes declared on this function or method as an array of ReflectionAttribute.

Liste de paramètres

name

Filtrer les résultats pour inclure uniquement les instances de ReflectionAttribute pour les attributs correspondant à ce nom de classe.

flags

Flags pour déterminer comment filtrer les résultats, si name est fourni.

La valeur par défaut est 0 qui ne renverra que les résultats pour les attributs qui sont de la classe name.

La seule autre option disponible est d'utiliser ReflectionAttribute::IS_INSTANCEOF, qui utilisera plutôt instanceof pour le filtrage.

Valeurs de retour

Array of attributes, as a ReflectionAttribute object.

Exemples

Exemple #1 Basic usage with a class method

<?php
#[Attribute]
class Fruit {
}

#[Attribute]
class Red {
}

class Factory {
#[Fruit]
#[Red]
public function makeApple(): string
{
return 'apple';
}
}

$method = new ReflectionMethod('Factory', 'makeApple');
$attributes = $method->getAttributes();
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Fruit
    [1] => Red
)

Exemple #2 Basic usage with a function

<?php
#[Attribute]
class Fruit {
}

#[Attribute]
class Red {
}

#[Fruit]
#[Red]
function makeApple(): string
{
return 'apple';
}

$function = new ReflectionFunction('makeApple');
$attributes = $function->getAttributes();
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Fruit
    [1] => Red
)

Exemple #3 Filtering results by class name

<?php
#[Attribute]
class Fruit {
}

#[Attribute]
class Red {
}

#[Fruit]
#[Red]
function makeApple(): string
{
return 'apple';
}

$function = new ReflectionFunction('makeApple');
$attributes = $function->getAttributes('Fruit');
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Fruit
)

Exemple #4 Filtering results by class name, with inheritance

<?php
interface Color {
}

#[Attribute]
class Fruit {
}

#[Attribute]
class Red implements Color {
}

#[Fruit]
#[Red]
function makeApple(): string
{
return 'apple';
}

$function = new ReflectionFunction('makeApple');
$attributes = $function->getAttributes('Color', ReflectionAttribute::IS_INSTANCEOF);
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Red
)

Voir aussi

  • ReflectionClass::getAttributes() - Récupère les attributs d'une classe
  • ReflectionClassConstant::getAttributes() - Gets Attributes
  • ReflectionParameter::getAttributes() - Gets Attributes
  • ReflectionProperty::getAttributes() - Gets Attributes


Retourne la portée de la classe associée à la fermeture

  • « ReflectionFunctionAbstract::getAttributes
  • ReflectionFunctionAbstract::getClosureThis »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Retourne la portée de la classe associée à la fermeture

ReflectionFunctionAbstract::getClosureScopeClass

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getClosureScopeClass — Retourne la portée de la classe associée à la fermeture

Description

public ReflectionFunctionAbstract::getClosureScopeClass(): ?ReflectionClass

Récupère la classe enveloppant la déclaration de la fermeture.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la classe, ou null si la fonction n'est pas une fermeture ou s'il n'y a pas une classe enveloppante.


Retourne le pointeur lié à la fermeture

  • « ReflectionFunctionAbstract::getClosureScopeClass
  • ReflectionFunctionAbstract::getClosureUsedVariables »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Retourne le pointeur lié à la fermeture

ReflectionFunctionAbstract::getClosureThis

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getClosureThis — Retourne le pointeur lié à la fermeture

Description

public ReflectionFunctionAbstract::getClosureThis(): ?object

Si la fonction est une fermeture non-statique, récupère l'objet lié à $this à l'intérieur de la fermeture.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le pointeur $this. Retourne null si une erreur survient.


Returns an array of the used variables in the Closure

  • « ReflectionFunctionAbstract::getClosureThis
  • ReflectionFunctionAbstract::getDocComment »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Returns an array of the used variables in the Closure

ReflectionFunctionAbstract::getClosureUsedVariables

(PHP 8 >= 8.1.0)

ReflectionFunctionAbstract::getClosureUsedVariables — Returns an array of the used variables in the Closure

Description

public ReflectionFunctionAbstract::getClosureUsedVariables(): array

Returns an tableau of the used variables in the Closure.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns an tableau of the used variables in the Closure.

Exemples

Exemple #1 ReflectionFunctionAbstract::getClosureUsedVariables() example

<?php

$one = 1;
$two = 2;

$function = function() use ($one, $two) {
static $three = 3;
};

$reflector = new ReflectionFunction($function);

var_dump($reflector->getClosureUsedVariables());
?>

Résultat de l'exemple ci-dessus est similaire à :

array(2) {
  ["one"]=>
  int(1)
  ["two"]=>
  int(2)
}

Voir aussi

  • ReflectionFunctionAbstract::getClosureScopeClass() - Retourne la portée de la classe associée à la fermeture
  • ReflectionFunctionAbstract::getClosureThis() - Retourne le pointeur lié à la fermeture


Récupère un commentaire

  • « ReflectionFunctionAbstract::getClosureUsedVariables
  • ReflectionFunctionAbstract::getEndLine »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Récupère un commentaire

ReflectionFunctionAbstract::getDocComment

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getDocComment — Récupère un commentaire

Description

public ReflectionFunctionAbstract::getDocComment(): string|false

Récupère un commentaire depuis une fonction.

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 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getEndLine — Récupère le numéro de la dernière ligne

Description

public ReflectionFunctionAbstract::getEndLine(): int|false

Récupère le numéro de la dernière ligne.

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 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getExtension — Récupère les informations d'une extension

Description

public ReflectionFunctionAbstract::getExtension(): ?ReflectionExtension

Récupère les informations d'une extension.

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, ou null pour les fonctions définis par l'utilisateur.

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 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getExtensionName — Récupère le nom de l'extension

Description

public ReflectionFunctionAbstract::getExtensionName(): string|false

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 qui définit la fonction, ou false pour les fonctions définis par l'utilisateur.

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 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getFileName — Récupère le nom du fichier

Description

public ReflectionFunctionAbstract::getFileName(): string|false

Récupère le nom du fichier depuis une fonction définie dans l'espace utilisateur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nom du fichier du fichier dans lequel la fonction a été définie. Si la classe est définie dans le cœur de PHP ou une extension PHP, false est retourné.

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 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getName — Récupère le nom d'une fonction

Description

public ReflectionFunctionAbstract::getName(): string

Récupère le nom d'une fonction.

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, PHP 8)

ReflectionFunctionAbstract::getNamespaceName — Récupère l'espace de noms

Description

public ReflectionFunctionAbstract::getNamespaceName(): string

Récupère l'espace de noms depuis lequel la classe est définie.

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.3.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getNumberOfParameters — Récupère le nombre de paramètres

Description

public ReflectionFunctionAbstract::getNumberOfParameters(): int

Récupère le nombre de paramètres défini dans la fonction ; aussi bien les paramètres requis qu'optionnels.

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.3.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getNumberOfRequiredParameters — Récupère le nombre de paramètres requis

Description

public ReflectionFunctionAbstract::getNumberOfRequiredParameters(): int

Récupère le nombre de paramètres requis par une fonction.

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 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getParameters — Récupère les paramètres

Description

public ReflectionFunctionAbstract::getParameters(): array

Récupère les paramètres, sous la forme d'un tableau d'objets ReflectionParameter, dans l'ordre dans laquelle ils sont définis dans la source.

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


Récupère le type de retour définit pour une fonction

  • « ReflectionFunctionAbstract::getParameters
  • ReflectionFunctionAbstract::getShortName »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Récupère le type de retour définit pour une fonction

ReflectionFunctionAbstract::getReturnType

(PHP 7, PHP 8)

ReflectionFunctionAbstract::getReturnType — Récupère le type de retour définit pour une fonction

Description

public ReflectionFunctionAbstract::getReturnType(): ?ReflectionType

Récupère le type de retour définit pour une fonction reflétée.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet ReflectionType si un type de retour est défini, null sinon.

Exemples

Exemple #1 Exemple avec ReflectionFunctionAbstract::getReturnType()

<?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 Utilisation sur les fonctions intégrés

<?php

$reflection2 = new ReflectionFunction('array_merge');

var_dump($reflection2->getReturnType());

L'exemple ci-dessus va afficher :

null

Ceci est le cas, car beaucoup de fonction interne ne définissent pas un type pour leurs paramètres ou leur valeur de retour. Il est donc conseillé d'éviter l'usage de cette méthode sur les fonctions intégré.

Voir aussi

  • ReflectionFunctionAbstract::hasReturnType() - Vérifie si la fonction a un type de retour définit
  • 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, PHP 8)

ReflectionFunctionAbstract::getShortName — Récupère le nom court d'une fonction

Description

public ReflectionFunctionAbstract::getShortName(): string

Récupère le nom court d'une fonction (sans la partie concernant l'espace de noms).

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 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getStartLine — Récupère le numéro de ligne de départ

Description

public ReflectionFunctionAbstract::getStartLine(): int|false

Récupère le numéro de ligne de départ de la fonction.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le numéro de la ligne de départ, ou false si inconnue.

Voir aussi

  • ReflectionFunctionAbstract::getEndLine() - Récupère le numéro de la dernière ligne


Récupère les variables statiques

  • « ReflectionFunctionAbstract::getStartLine
  • ReflectionFunctionAbstract::getTentativeReturnType »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Récupère les variables statiques

ReflectionFunctionAbstract::getStaticVariables

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::getStaticVariables — Récupère les variables statiques

Description

public ReflectionFunctionAbstract::getStaticVariables(): array

Récupère les variables statiques.

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


Returns the tentative return type associated with the function

  • « ReflectionFunctionAbstract::getStaticVariables
  • ReflectionFunctionAbstract::hasReturnType »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Returns the tentative return type associated with the function

ReflectionFunctionAbstract::getTentativeReturnType

(PHP 8 >= 8.1.0)

ReflectionFunctionAbstract::getTentativeReturnType — Returns the tentative return type associated with the function

Description

public ReflectionFunctionAbstract::getTentativeReturnType(): ?ReflectionType

Returns the tentative return type associated with the function.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a ReflectionType object if a tentative return type is specified, null otherwise.

Exemples

Exemple #1 ReflectionFunctionAbstract::getTentativeReturnType() example

<?php

$method = new ReflectionMethod(\ArrayAccess::class, 'offsetGet');
var_dump($method->getTentativeReturnType());

Résultat de l'exemple ci-dessus est similaire à :

object(ReflectionNamedType)#2 (0) {
}

Voir aussi

  • ReflectionFunctionAbstract::getReturnType() - Récupère le type de retour définit pour une fonction
  • ReflectionFunctionAbstract::hasTentativeReturnType() - Returns whether the function has a tentative return type
  • Return Type Compatibility with Internal Classes


Vérifie si la fonction a un type de retour définit

  • « ReflectionFunctionAbstract::getTentativeReturnType
  • ReflectionFunctionAbstract::hasTentativeReturnType »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Vérifie si la fonction a un type de retour définit

ReflectionFunctionAbstract::hasReturnType

(PHP 7, PHP 8)

ReflectionFunctionAbstract::hasReturnType — Vérifie si la fonction a un type de retour définit

Description

public ReflectionFunctionAbstract::hasReturnType(): bool

Vérifie si la fonction a un type de retour définit.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true si la fonction a un type de retour définit, sinon false.

Exemples

Exemple #1 Exemple avec ReflectionFunctionAbstract::hasReturnType()

<?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 Utilisation sur les fonctions intégrés

<?php

$reflection2 = new ReflectionFunction('array_merge');

var_dump($reflection2->hasReturnType());

L'exemple ci-dessus va afficher :

bool(false)

Ceci est le cas car beaucoup de fonction interne ne définissent pas un type pour leurs paramètres ou leurs valeur de retour. Il est donc conseillé d'éviter l'usage de cette méthode sur les fonctions intégrés.

Voir aussi

  • ReflectionFunctionAbstract::getReturnType() - Récupère le type de retour définit pour une fonction


Returns whether the function has a tentative return type

  • « ReflectionFunctionAbstract::hasReturnType
  • ReflectionFunctionAbstract::inNamespace »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Returns whether the function has a tentative return type

ReflectionFunctionAbstract::hasTentativeReturnType

(PHP 8 >= 8.1.0)

ReflectionFunctionAbstract::hasTentativeReturnType — Returns whether the function has a tentative return type

Description

public ReflectionFunctionAbstract::hasTentativeReturnType(): bool

Returns whether the function has a tentative return type.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns true if the function has a tentative return type, otherwise false.

Exemples

Exemple #1 ReflectionFunctionAbstract::hasTentativeReturnType() example

<?php

$method = new ReflectionMethod(\ArrayAccess::class, 'offsetGet');
var_dump($method->hasTentativeReturnType());

L'exemple ci-dessus va afficher :

bool(true)

Voir aussi

  • ReflectionFunctionAbstract::getTentativeReturnType() - Returns the tentative return type associated with the function
  • ReflectionFunctionAbstract::hasReturnType() - Vérifie si la fonction a un type de retour définit
  • Return Type Compatibility with Internal Classes


Vérifie si une fonction est dans un espace de noms

  • « ReflectionFunctionAbstract::hasTentativeReturnType
  • 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, PHP 8)

ReflectionFunctionAbstract::inNamespace — Vérifie si une fonction est dans un espace de noms

Description

public ReflectionFunctionAbstract::inNamespace(): bool

Vérifie si une fonction est dans un espace de noms.

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, PHP 8)

ReflectionFunctionAbstract::isClosure — Vérifie si c'est une fermeture

Description

public ReflectionFunctionAbstract::isClosure(): bool

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 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::isDeprecated — Vérifie si la fonction est obsolète

Description

public ReflectionFunctionAbstract::isDeprecated(): bool

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, PHP 8)

ReflectionFunctionAbstract::isGenerator — Vérifie si la fonction est un générateur

Description

public ReflectionFunctionAbstract::isGenerator(): bool

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::isStatic »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Vérifie si la fonction est une fonction interne

ReflectionFunctionAbstract::isInternal

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::isInternal — Vérifie si la fonction est une fonction interne

Description

public ReflectionFunctionAbstract::isInternal(): bool

Vérifie si la fonction est une fonction interne, au lieu d'une fonction définie dans l'espace utilisateur.

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 statique

  • « ReflectionFunctionAbstract::isInternal
  • ReflectionFunctionAbstract::isUserDefined »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Vérifie si la fonction est statique

ReflectionFunctionAbstract::isStatic

(PHP 5, PHP 7, PHP 8)

ReflectionFunctionAbstract::isStatic — Vérifie si la fonction est statique

Description

public ReflectionFunctionAbstract::isStatic(): bool

Vérifie si la fonction est statique.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

true si la fonction est statique, false sinon.

Historique

Version | Description
8.1.0 | Cette méthode a été remontée. Auparavant, elle était uniquement définie dans la classe ReflectionMethod.

Voir aussi

  • ReflectionMethod::isFinal() - Vérifie si la méthode est finale


Vérifie si la fonction est définie dans l'espace utilisateur

  • « ReflectionFunctionAbstract::isStatic
  • ReflectionFunctionAbstract::isVariadic »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Vérifie si la fonction est définie dans l'espace utilisateur

ReflectionFunctionAbstract::isUserDefined

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::isUserDefined — Vérifie si la fonction est définie dans l'espace utilisateur

Description

public ReflectionFunctionAbstract::isUserDefined(): bool

Vérifie si la fonction est définie dans l'espace utilisateur, au lieu d'être une fonction interne.

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, PHP 8)

ReflectionFunctionAbstract::isVariadic — Vérifie si la fonction est variadique

Description

public ReflectionFunctionAbstract::isVariadic(): bool

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 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::returnsReference — Vérifie si la fonction retourne une référence

Description

public ReflectionFunctionAbstract::returnsReference(): bool

Vérifie si la fonction retourne une référence.

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 d'un objet ReflectionFunctionAbstract

  • « ReflectionFunctionAbstract::returnsReference
  • ReflectionMethod »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Récupère une représentation textuelle d'un objet ReflectionFunctionAbstract

ReflectionFunctionAbstract::__toString

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ReflectionFunctionAbstract::__toString — Récupère une représentation textuelle d'un objet ReflectionFunctionAbstract

Description

abstract public ReflectionFunctionAbstract::__toString(): void

Récupère une représentation textuelle lisible par un être humain de la fonction, ses paramètres et sa valeur de retour.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une chaîne de caractères.

Voir aussi

  • ReflectionFunction::__toString() - Retourne une représentation textuelle de l'objet ReflectionFunction
  • ReflectionMethod::__toString() - Retourne une représentation textuelle de la méthode
  • __toString()


La classe ReflectionMethod

(PHP 5, PHP 7, PHP 8)

Introduction

La classe ReflectionMethod rapporte des informations sur une méthode.

Synopsis de la classe

class ReflectionMethod extends ReflectionFunctionAbstract {
/* Constantes */
public const int IS_STATIC;
public const int IS_PUBLIC;
public const int IS_PROTECTED;
public const int IS_PRIVATE;
public const int IS_ABSTRACT;
public const int IS_FINAL;
/* Propriétés */
public string $class;
/* Propriétés héritées */
public string $name;
/* Méthodes */
public __construct(object|string $objectOrMethod, string $method)
public __construct(string $classMethod)
public static createFromMethodName(string $method): static
public static export(string $class, string $name, bool $return = false): string
public getClosure(?object $object = null): Closure
public getDeclaringClass(): ReflectionClass
public getModifiers(): int
public getPrototype(): ReflectionMethod
public hasPrototype(): bool
public invoke(?object $object, mixed ...$args): mixed
public invokeArgs(?object $object, array $args): mixed
public isAbstract(): bool
public isConstructor(): bool
public isDestructor(): bool
public isFinal(): bool
public isPrivate(): bool
public isProtected(): bool
public isPublic(): bool
public setAccessible(bool $accessible): void
public __toString(): string
/* Méthodes héritées */
private ReflectionFunctionAbstract::__clone(): void
public ReflectionFunctionAbstract::getAttributes(?string $name = null, int $flags = 0): array
public ReflectionFunctionAbstract::getClosureScopeClass(): ?ReflectionClass
public ReflectionFunctionAbstract::getClosureThis(): ?object
public ReflectionFunctionAbstract::getClosureUsedVariables(): array
public ReflectionFunctionAbstract::getDocComment(): string|false
public ReflectionFunctionAbstract::getEndLine(): int|false
public ReflectionFunctionAbstract::getExtension(): ?ReflectionExtension
public ReflectionFunctionAbstract::getExtensionName(): string|false
public ReflectionFunctionAbstract::getFileName(): string|false
public ReflectionFunctionAbstract::getName(): string
public ReflectionFunctionAbstract::getNamespaceName(): string
public ReflectionFunctionAbstract::getNumberOfParameters(): int
public ReflectionFunctionAbstract::getNumberOfRequiredParameters(): int
public ReflectionFunctionAbstract::getParameters(): array
public ReflectionFunctionAbstract::getReturnType(): ?ReflectionType
public ReflectionFunctionAbstract::getShortName(): string
public ReflectionFunctionAbstract::getStartLine(): int|false
public ReflectionFunctionAbstract::getStaticVariables(): array
public ReflectionFunctionAbstract::getTentativeReturnType(): ?ReflectionType
public ReflectionFunctionAbstract::hasReturnType(): bool
public ReflectionFunctionAbstract::hasTentativeReturnType(): bool
public ReflectionFunctionAbstract::inNamespace(): bool
public ReflectionFunctionAbstract::isClosure(): bool
public ReflectionFunctionAbstract::isDeprecated(): bool
public ReflectionFunctionAbstract::isGenerator(): bool
public ReflectionFunctionAbstract::isInternal(): bool
public ReflectionFunctionAbstract::isStatic(): bool
public ReflectionFunctionAbstract::isUserDefined(): bool
public ReflectionFunctionAbstract::isVariadic(): bool
public ReflectionFunctionAbstract::returnsReference(): bool
abstract public 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 Antérieur à PHP 7.4.0, la valeur était 1.

ReflectionMethod::IS_PUBLIC

Indique que la méthode est publique Antérieur à PHP 7.4.0, la valeur était 256.

ReflectionMethod::IS_PROTECTED

Indique que la méthode est protégée Antérieur à PHP 7.4.0, la valeur était 512.

ReflectionMethod::IS_PRIVATE

Indique que la méthode est privée Antérieur à PHP 7.4.0, la valeur était 1024.

ReflectionMethod::IS_ABSTRACT

Indique que la méthode est abstraite Antérieur à PHP 7.4.0, la valeur était 2.

ReflectionMethod::IS_FINAL

Indique que la méthode est finale Antérieur à PHP 7.4.0, la valeur était 4.

Note:

La valeur de ces constantes peut changer entre les versions de PHP. Il est recommandé de toujours utiliser les constantes et de ne pas dépendre sur les valeurs directement.

Historique

Version | Description
8.0.0 | ReflectionMethod::export() a été supprimée.

Sommaire

  • ReflectionMethod::__construct — Construit un nouvel objet ReflectionMethod
  • ReflectionMethod::createFromMethodName — Créer une nouvelle 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éflé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::hasPrototype — Retourne si la méthode a un prototype
  • 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::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::createFromMethodName »
  • PHP Manual
  • ReflectionMethod
  • Construit un nouvel objet ReflectionMethod

ReflectionMethod::__construct

(PHP 5, PHP 7, PHP 8)

ReflectionMethod::__construct — Construit un nouvel objet ReflectionMethod

Description

public ReflectionMethod::__construct(object|string $objectOrMethod, string $method)

Signature alternative (non supporté avec les arguments nommés) :

public ReflectionMethod::__construct(string $classMethod)

Construit un nouvel objet ReflectionMethod.

Liste de paramètres

objectOrMethod

Nom de classe -ou instance de celle-ci- qui contient la méthode.

method

Nom de la méthode.

classMethod

Nom de classe et de méthode délimités par ::.

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 documentation
printf("---> Documentation:\n %s\n", var_export($method->getDocComment(), true));

// Affiche les variables statiques, si elles existent
if ($statics= $method->getStaticVariables()) {
printf("---> Static variables: %s\n", var_export($statics, true));
}

// Invoque la méthode
printf("---> Invocation results in: ");
var_dump($method->invoke(NULL));
?>

Résultat de l'exemple ci-dessus est 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


Créer une nouvelle ReflectionMethod

  • « ReflectionMethod::__construct
  • ReflectionMethod::export »
  • PHP Manual
  • ReflectionMethod
  • Créer une nouvelle ReflectionMethod

ReflectionMethod::createFromMethodName

(PHP 8 >= 8.3.0)

ReflectionMethod::createFromMethodName — Créer une nouvelle ReflectionMethod

Description

public static ReflectionMethod::createFromMethodName(string $method): static

Créer une nouvelle ReflectionMethod.

Liste de paramètres

method

Nom de la classe et de la méthode delimités par ::.

Valeurs de retour

Retourne une nouvelle ReflectionMethod en cas de succès.

Erreurs / Exceptions

Une ReflectionException est lancée si la méthode donnée n'existe pas.

Exemples

Exemple #1 Exemple avec ReflectionMethod::createFromMethodName()

<?php

class Foo {
public function bar() {

}
}

$methodInfo = ReflectionMethod::createFromMethodName("Foo::bar");
var_dump($methodInfo);
?>

L'exemple ci-dessus va afficher :

object(ReflectionMethod)#1 (2) {
  ["name"]=>
  string(3) "bar"
  ["class"]=>
  string(3) "Foo"
}


Exportation d'une méthode de reflection

  • « ReflectionMethod::createFromMethodName
  • 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

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.4.0, et a été SUPPRIMÉE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

public static ReflectionMethod::export(string $class, string $name, bool $return = false): string

Exporte un objet ReflectionMethod.

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 >= 5.4.0, PHP 7, PHP 8)

ReflectionMethod::getClosure — Retourne une fermeture créée dynamiquement pour la méthode

Description

public ReflectionMethod::getClosure(?object $object = null): Closure

Crée une fermeture qui appellera cette méthode.

Liste de paramètres

object

Interdit pour les méthodes statiques, requis pour les autres méthodes.

Valeurs de retour

Retourne un objet Closure nouvellement crée.

Erreurs / Exceptions

Lance une ValueError si object est null mais que la méthode est non-statique.

Lance une ReflectionException si object n'est pas une instance de la classe dont cette méthode a été déclarée.

Historique

Version | Description
8.0.0 | object est désormais nullable.

Voir aussi

  • Syntaxe callable de première classe


Récupère la déclaration de la classe de la méthode réfléchie

  • « ReflectionMethod::getClosure
  • ReflectionMethod::getModifiers »
  • PHP Manual
  • ReflectionMethod
  • Récupère la déclaration de la classe de la méthode réfléchie

ReflectionMethod::getDeclaringClass

(PHP 5, PHP 7, PHP 8)

ReflectionMethod::getDeclaringClass — Récupère la déclaration de la classe de la méthode réfléchie

Description

public ReflectionMethod::getDeclaringClass(): ReflectionClass

Récupère la déclaration de la classe de la méthode réflé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, PHP 8)

ReflectionMethod::getModifiers — Récupère les modificateurs de la méthode

Description

public ReflectionMethod::getModifiers(): int

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. La signification actuelle 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()));
?>

Résultat de l'exemple ci-dessus est similaire à :

Modificateurs pour la méthode foo():
49
final public static
Modificateurs pour la méthode bar():
1
public

Voir aussi

  • Reflection::getModifierNames() - Récupère le nom des modificateurs


Récupère le prototype de la méthode (s'il existe)

  • « ReflectionMethod::getModifiers
  • ReflectionMethod::hasPrototype »
  • PHP Manual
  • ReflectionMethod
  • Récupère le prototype de la méthode (s'il existe)

ReflectionMethod::getPrototype

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

ReflectionMethod::getPrototype — Récupère le prototype de la méthode (s'il existe)

Description

public ReflectionMethod::getPrototype(): ReflectionMethod

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
  • ReflectionMethod::hasPrototype() - Retourne si la méthode a un prototype


Retourne si la méthode a un prototype

  • « ReflectionMethod::getPrototype
  • ReflectionMethod::invoke »
  • PHP Manual
  • ReflectionMethod
  • Retourne si la méthode a un prototype

ReflectionMethod::hasPrototype

(PHP 8 >= 8.2.0)

ReflectionMethod::hasPrototype — Retourne si la méthode a un prototype

Description

public ReflectionMethod::hasPrototype(): bool

Retourne si la méthode a un prototype.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true si la méthode a un prototype, sinon false.

Exemples

Exemple #1 Exemple avec ReflectionMethod::hasPrototype()

<?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->hasPrototype());
?>

L'exemple ci-dessus va afficher :

bool(true)

Voir aussi

  • ReflectionMethod::getPrototype() - Récupère le prototype de la méthode (s'il existe)


Invoque

  • « ReflectionMethod::hasPrototype
  • ReflectionMethod::invokeArgs »
  • PHP Manual
  • ReflectionMethod
  • Invoque

ReflectionMethod::invoke

(PHP 5, PHP 7, PHP 8)

ReflectionMethod::invoke — Invoque

Description

public ReflectionMethod::invoke(?object $object, mixed ...$args): 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, passez null comme paramètre.

args

Paramètres à passer à la méthode. Ceci accepte un nombre variable de paramètres qui seront passés à la méthode.

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 dont la méthode a été déclaré.

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:

ReflectionMethod::invoke() ne peut pas être utilisé quand des paramètres de références sont attendus. ReflectionMethod::invokeArgs() doit être utilisé à la place (passant les références dans la liste d'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.2, PHP 7, PHP 8)

ReflectionMethod::invokeArgs — Invoque les arguments

Description

public ReflectionMethod::invokeArgs(?object $object, array $args): mixed

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.

Historique

Version | Description
8.0.0 | Les clés de args seront désormais interprété comme les noms des paramètres, au lieu d'être silencieusement ignoré.

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, PHP 8)

ReflectionMethod::isAbstract — Vérifie si la méthode est abstraite

Description

public ReflectionMethod::isAbstract(): bool

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éflé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, PHP 8)

ReflectionMethod::isConstructor — Vérifie si la méthode est un constructeur

Description

public ReflectionMethod::isConstructor(): bool

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, PHP 8)

ReflectionMethod::isDestructor — Vérifie si la méthode est un destructeur

Description

public ReflectionMethod::isDestructor(): bool

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, PHP 8)

ReflectionMethod::isFinal — Vérifie si la méthode est finale

Description

public ReflectionMethod::isFinal(): bool

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 privée

  • « ReflectionMethod::isFinal
  • ReflectionMethod::isProtected »
  • PHP Manual
  • ReflectionMethod
  • Vérifie si la méthode est privée

ReflectionMethod::isPrivate

(PHP 5, PHP 7, PHP 8)

ReflectionMethod::isPrivate — Vérifie si la méthode est privée

Description

public ReflectionMethod::isPrivate(): bool

Vérifie si la méthode est privée.

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, PHP 8)

ReflectionMethod::isProtected — Vérifie si la méthode est protégée

Description

public ReflectionMethod::isProtected(): bool

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::setAccessible »
  • PHP Manual
  • ReflectionMethod
  • Vérifie si la méthode est publique

ReflectionMethod::isPublic

(PHP 5, PHP 7, PHP 8)

ReflectionMethod::isPublic — Vérifie si la méthode est publique

Description

public ReflectionMethod::isPublic(): bool

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


Définit l'accessibilité de la méthode

  • « ReflectionMethod::isPublic
  • ReflectionMethod::__toString »
  • PHP Manual
  • ReflectionMethod
  • Définit l'accessibilité de la méthode

ReflectionMethod::setAccessible

(PHP 5 >= 5.3.2, PHP 7, PHP 8)

ReflectionMethod::setAccessible — Définit l'accessibilité de la méthode

Description

public ReflectionMethod::setAccessible(bool $accessible): void

Active l'invocation des méthodes protégées et privées via la méthode ReflectionMethod::invoke().

Note: À partir de PHP 8.1.0, l'appel à cette méthode n'a aucun effet; toutes les propriétés sont accessibles par défaut.

Liste de paramètres

accessible

true pour permettre l'accessibilité, ou false.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Définition d'une classe simple

<?php
class MyClass
{
private function foo()
{
return 'bar';
}
}
$method = new ReflectionMethod("MyClass", "foo");
$method->setAccessible(true);
$obj = new MyClass();
echo $method->invoke($obj);
echo $obj->foo();
?>

Résultat de l'exemple ci-dessus est similaire à :

bar
Fatal error: Uncaught Error: Call to private method MyClass::foo() from global scope in /in/qdaZS:16

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
  • ReflectionNamedType »
  • PHP Manual
  • ReflectionMethod
  • Retourne une représentation textuelle de la méthode

ReflectionMethod::__toString

(PHP 5, PHP 7, PHP 8)

ReflectionMethod::__toString — Retourne une représentation textuelle de la méthode

Description

public ReflectionMethod::__toString(): string

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 ReflectionNamedType

(PHP 7 >= 7.1.0, PHP 8)

Introduction

Synopsis de la classe

class ReflectionNamedType extends ReflectionType {
/* Méthodes */
public getName(): string
public isBuiltin(): bool
/* Méthodes héritées */
public ReflectionType::allowsNull(): bool
public ReflectionType::__toString(): string
}

Sommaire

  • ReflectionNamedType::getName — Récupère le nom du type en tant que chaîne
  • ReflectionNamedType::isBuiltin — Vérifie si c'est un type intégré


Récupère le nom du type en tant que chaîne

  • « ReflectionNamedType
  • ReflectionNamedType::isBuiltin »
  • PHP Manual
  • ReflectionNamedType
  • Récupère le nom du type en tant que chaîne

ReflectionNamedType::getName

(PHP 7 >= 7.1.0, PHP 8)

ReflectionNamedType::getName — Récupère le nom du type en tant que chaîne

Description

public ReflectionNamedType::getName(): string

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Récupère le nom du type étant refleté.

Voir aussi

  • ReflectionType::__toString() - To string


Vérifie si c'est un type intégré

  • « ReflectionNamedType::getName
  • ReflectionObject »
  • PHP Manual
  • ReflectionNamedType
  • Vérifie si c'est un type intégré

ReflectionNamedType::isBuiltin

(PHP 7, PHP 8)

ReflectionNamedType::isBuiltin — Vérifie si c'est un type intégré

Description

public ReflectionNamedType::isBuiltin(): bool

Vérifie si le type est un type intégré en PHP. Un type intégré est tout type qui n'est pas une classe, interface, ou trait.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

true si c'est un type intégré en PHP, sinon false

Exemples

Exemple #1 Exemple avec ReflectionNamedType::isBuiltin()

<?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 :

bool(true)
bool(false)
bool(false)

Notez que la méthode ReflectionNamedType::isBuiltin() ne distingue pas entre des classes internes et utilisateur. Pour faire cette distinction, la méthode ReflectionClass::isInternal() doit être utilisé sur le nom de classe retourné.

Voir aussi

  • ReflectionType::allowsNull() - Vérifie si null est permit
  • ReflectionType::__toString() - To string
  • ReflectionClass::isInternal() - Vérifie si une classe est définie comme interne par une extension
  • ReflectionParameter::getType() - Récupère le type du paramètre


La classe ReflectionObject

(PHP 5, PHP 7, PHP 8)

Introduction

La classe ReflectionObject rapporte des informations sur un object.

Synopsis de la classe

class ReflectionObject extends ReflectionClass {
/* Constants héritées */
public const int ReflectionClass::IS_IMPLICIT_ABSTRACT;
public const int ReflectionClass::IS_EXPLICIT_ABSTRACT;
public const int ReflectionClass::IS_FINAL;
public const int ReflectionClass::IS_READONLY;
/* Propriétés héritées */
public string $name;
/* Méthodes */
public __construct(object $object)
/* Méthodes héritées */
public static ReflectionClass::export(mixed $argument, bool $return = false): string
public ReflectionClass::getAttributes(?string $name = null, int $flags = 0): array
public ReflectionClass::getConstant(string $name): mixed
public ReflectionClass::getConstants(?int $filter = null): array
public ReflectionClass::getConstructor(): ?ReflectionMethod
public ReflectionClass::getDefaultProperties(): array
public ReflectionClass::getDocComment(): string|false
public ReflectionClass::getEndLine(): int|false
public ReflectionClass::getExtension(): ?ReflectionExtension
public ReflectionFunctionAbstract::getExtensionName(): string|false
public ReflectionClass::getFileName(): string|false
public ReflectionClass::getInterfaceNames(): array
public ReflectionClass::getInterfaces(): array
public ReflectionClass::getMethod(string $name): ReflectionMethod
public ReflectionClass::getMethods(?int $filter = null): array
public ReflectionClass::getModifiers(): int
public ReflectionClass::getName(): string
public ReflectionClass::getNamespaceName(): string
public ReflectionClass::getParentClass(): ReflectionClass|false
public ReflectionClass::getProperties(?int $filter = null): array
public ReflectionClass::getProperty(string $name): ReflectionProperty
public ReflectionClass::getReflectionConstant(string $name): ReflectionClassConstant|false
public ReflectionClass::getReflectionConstants(?int $filter = null): array
public ReflectionClass::getShortName(): string
public ReflectionClass::getStartLine(): int|false
public ReflectionClass::getStaticProperties(): array
public ReflectionClass::getStaticPropertyValue(string $name, mixed &$def_value = ?): mixed
public ReflectionClass::getTraitAliases(): array
public ReflectionClass::getTraitNames(): array
public ReflectionClass::getTraits(): array
public ReflectionClass::hasConstant(string $name): bool
public ReflectionClass::hasMethod(string $name): bool
public ReflectionClass::hasProperty(string $name): bool
public ReflectionClass::implementsInterface(ReflectionClass|string $interface): bool
public ReflectionClass::inNamespace(): bool
public ReflectionClass::isAbstract(): bool
public ReflectionClass::isAnonymous(): bool
public ReflectionClass::isCloneable(): bool
public ReflectionClass::isEnum(): bool
public ReflectionClass::isFinal(): bool
public ReflectionClass::isInstance(object $object): bool
public ReflectionClass::isInstantiable(): bool
public ReflectionClass::isInterface(): bool
public ReflectionClass::isInternal(): bool
public ReflectionClass::isIterable(): bool
public ReflectionClass::isReadOnly(): bool
public ReflectionClass::isSubclassOf(ReflectionClass|string $class): bool
public ReflectionClass::isTrait(): bool
public ReflectionClass::isUserDefined(): bool
public ReflectionClass::newInstance(mixed ...$args): object
public ReflectionClass::newInstanceArgs(array $args = []): ?object
public ReflectionClass::newInstanceWithoutConstructor(): object
public ReflectionClass::setStaticPropertyValue(string $name, mixed $value): void
public ReflectionClass::__toString(): string
}

Historique

Version | Description
8.0.0 | ReflectionObject::export() a été supprimée.

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, PHP 8)

ReflectionObject::__construct — Construit un nouvel objet ReflectionObject

Description

public ReflectionObject::__construct(object $object)

Construit un nouvel objet ReflectionObject.

Liste de paramètres

object

Une instance d'un objet.

Voir aussi

  • ReflectionObject::export() - Exportation
  • Les constructeurs


Exportation

  • « ReflectionObject::__construct
  • ReflectionParameter »
  • PHP Manual
  • ReflectionObject
  • Exportation

ReflectionObject::export

(PHP 5, PHP 7)

ReflectionObject::export — Exportation

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.4.0, et a été SUPPRIMÉE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

public static ReflectionObject::export(string $argument, bool $return = ?): string

Exporte une réflexion.

Avertissement

Cette fonction est actuellement non documentée ; 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, PHP 8)

Introduction

La classe ReflectionParameter récupère les informations sur les paramètres des fonctions ou des méthodes.

Pour faire une introspection sur les paramètres des fonctions, tout d'abord créez une instance de la classe ReflectionFunction ou de la classe ReflectionMethod puis utilisez la méthode ReflectionFunctionAbstract::getParameters() pour récupérer un tableau des paramètres.

Synopsis de la classe

class ReflectionParameter implements Reflector {
/* Propriétés */
public string $name;
/* Méthodes */
public __construct(string|array|object $function, int|string $param)
public allowsNull(): bool
public canBePassedByValue(): bool
private __clone(): void
public static export(string $function, string $parameter, bool $return = ?): string
public getAttributes(?string $name = null, int $flags = 0): array
public getClass(): ?ReflectionClass
public getDeclaringClass(): ?ReflectionClass
public getDeclaringFunction(): ReflectionFunctionAbstract
public getDefaultValue(): mixed
public getDefaultValueConstantName(): ?string
public getName(): string
public getPosition(): int
public getType(): ?ReflectionType
public hasType(): bool
public isArray(): bool
public isCallable(): bool
public isDefaultValueAvailable(): bool
public isDefaultValueConstant(): bool
public isOptional(): bool
public isPassedByReference(): bool
public isVariadic(): bool
public __toString(): string
}

Propriétés

name

Nom du paramètre. En lecture seule, émets ReflectionException lors d'une tentative d'écriture.

Historique

Version | Description
8.0.0 | ReflectionParameter::export() a été supprimé.

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::getAttributes — Gets Attributes
  • ReflectionParameter::getClass — Récupère un objet ReflectionClass pour le paramètre étant reflété ou null
  • 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 ou null
  • ReflectionParameter::getName — Récupère le nom du paramètre
  • ReflectionParameter::getPosition — Récupère la position d'un paramètre
  • ReflectionParameter::getType — Récupère le type du paramètre
  • ReflectionParameter::hasType — Vérifie si un paramètre a un 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, PHP 8)

ReflectionParameter::allowsNull — Vérifie si la valeur null est autorisée comme valeur du paramètre

Description

public ReflectionParameter::allowsNull(): bool

Vérifie si la valeur null est autorisée comme valeur du paramètre.

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 >= 5.4.0, PHP 7, PHP 8)

ReflectionParameter::canBePassedByValue — Vérifie si le paramètre peut être passé par valeur

Description

public ReflectionParameter::canBePassedByValue(): bool

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, PHP 8)

ReflectionParameter::__clone — Clonage

Description

private ReflectionParameter::__clone(): void

Clonage.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Historique

Version | Description
8.1.0 | Cette méthode n'est plus final.

Voir aussi

  • ReflectionParameter::toString()
  • Le clonage d'objet


Constructeur

  • « ReflectionParameter::__clone
  • ReflectionParameter::export »
  • PHP Manual
  • ReflectionParameter
  • Constructeur

ReflectionParameter::__construct

(PHP 5, PHP 7, PHP 8)

ReflectionParameter::__construct — Constructeur

Description

public ReflectionParameter::__construct(string|array|object $function, int|string $param)

Construit une instance ReflectionParameter.

Liste de paramètres

function

La fonction depuis laquelle les paramètres sont reflétés.

param

Soit un entier spécifiant la position du paramètre (commençant par zéro), soit le nom du paramètre en tant que chaîne de caractères.

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
$param->getName(),
var_export($param->getClass(), 1),
var_export($param->allowsNull(), 1),
var_export($param->isPassedByReference(), 1),
$param->isOptional() ? 'yes' : 'no'
);
}
?>

Résultat de l'exemple ci-dessus est 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

  • ReflectionFunctionAbstract::getParameters() - Récupère les paramètres
  • ReflectionFunction::__construct() - Construit un nouvel objet ReflectionFunction
  • ReflectionMethod::__construct() - Construit un nouvel objet ReflectionMethod
  • Les constructeurs


Exportation

  • « ReflectionParameter::__construct
  • ReflectionParameter::getAttributes »
  • PHP Manual
  • ReflectionParameter
  • Exportation

ReflectionParameter::export

(PHP 5, PHP 7)

ReflectionParameter::export — Exportation

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.4.0, et a été SUPPRIMÉE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

public static ReflectionParameter::export(string $function, string $parameter, bool $return = ?): string

Exportation.

Avertissement

Cette fonction est actuellement non documentée ; 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 une représentation textuelle


Gets Attributes

  • « ReflectionParameter::export
  • ReflectionParameter::getClass »
  • PHP Manual
  • ReflectionParameter
  • Gets Attributes

ReflectionParameter::getAttributes

(PHP 8)

ReflectionParameter::getAttributes — Gets Attributes

Description

public ReflectionParameter::getAttributes(?string $name = null, int $flags = 0): array

Returns all attributes declared on this parameter as an array of ReflectionAttribute.

Liste de paramètres

name

Filtrer les résultats pour inclure uniquement les instances de ReflectionAttribute pour les attributs correspondant à ce nom de classe.

flags

Flags pour déterminer comment filtrer les résultats, si name est fourni.

La valeur par défaut est 0 qui ne renverra que les résultats pour les attributs qui sont de la classe name.

La seule autre option disponible est d'utiliser ReflectionAttribute::IS_INSTANCEOF, qui utilisera plutôt instanceof pour le filtrage.

Valeurs de retour

Array of attributes, as a ReflectionAttribute object.

Exemples

Exemple #1 Basic usage

<?php
#[Attribute]
class Fruit {
}

#[Attribute]
class Red {
}

function fruitBasket(
#[Fruit]
#[Red]
string $apple
) { }

$reflection = new ReflectionFunction('fruitBasket');
$parameter = $reflection->getParameter('apple');
$attributes = $parameter->getAttributes();
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Fruit
    [1] => Red
)

Exemple #2 Filtering results by class name

<?php
#[Attribute]
class Fruit {
}

#[Attribute]
class Red {
}

function fruitBasket(
#[Fruit]
#[Red]
string $apple
) { }

$reflection = new ReflectionFunction('fruitBasket');
$parameter = $reflection->getParameter('apple');
$attributes = $parameter->getAttributes('Fruit');
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Fruit
)

Exemple #3 Filtering results by class name, with inheritance

<?php
interface Color {
}

#[Attribute]
class Fruit {
}

function fruitBasket(
#[Fruit]
#[Red]
string $apple
) { }

$reflection = new ReflectionFunction('fruitBasket');
$parameter = $reflection->getParameter('apple');
$attributes = $parameter->getAttributes('Color', ReflectionAttribute::IS_INSTANCEOF);
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Red
)

Voir aussi

  • ReflectionClass::getAttributes() - Récupère les attributs d'une classe
  • ReflectionClassConstant::getAttributes() - Gets Attributes
  • ReflectionFunctionAbstract::getAttributes() - Gets Attributes
  • ReflectionProperty::getAttributes() - Gets Attributes


Récupère un objet ReflectionClass pour le paramètre étant reflété ou null

  • « ReflectionParameter::getAttributes
  • ReflectionParameter::getDeclaringClass »
  • PHP Manual
  • ReflectionParameter
  • Récupère un objet ReflectionClass pour le paramètre étant reflété ou null

ReflectionParameter::getClass

(PHP 5, PHP 7, PHP 8)

ReflectionParameter::getClass — Récupère un objet ReflectionClass pour le paramètre étant reflété ou null

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

public ReflectionParameter::getClass(): ?ReflectionClass

Récupère un objet ReflectionClass pour le paramètre étant reflété ou null.

À partir de PHP 8.0.0 cette fonction est obsolète et pas recommandé. Au lieu, utiliser ReflectionParameter::getType() pour récupérer la ReflectionType de ce paramètre puis interroger cet objet pour déterminer le type du paramètre.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet ReflectionClass, ou null si aucun type est déclaré, ou le type déclaré n'est pas une classe ou interface.

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;
?>

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 >= 5.1.3, PHP 7, PHP 8)

ReflectionParameter::getDeclaringClass — Récupère la classe déclarante

Description

public ReflectionParameter::getDeclaringClass(): ?ReflectionClass

Récupère la classe déclarante.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Un objet ReflectionClass ou null si appelé sur une fonction.

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 un objet ReflectionClass pour le paramètre étant reflété ou null


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.1.3, PHP 7, PHP 8)

ReflectionParameter::getDeclaringFunction — Récupère la fonction déclarante

Description

public ReflectionParameter::getDeclaringFunction(): ReflectionFunctionAbstract

Récupère la fonction déclarante.

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, PHP 8)

ReflectionParameter::getDefaultValue — Récupère la valeur par défaut du paramètre

Description

public ReflectionParameter::getDefaultValue(): mixed

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 ou interne. 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.

Historique

Version | Description
8.0.0 | Cette méthode permet désormais de récupérer la valeur par défaut de fonctions et méthodes de classe intégré. Auparavant, ReflectionException était émit.

Exemples

Exemple #1 Récupérer les valeurs par défaut des paramètres de la fonction

<?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

Voir aussi

  • ReflectionParameter::isOptional() - Vérifie si le paramètre est optionnel
  • ReflectionParameter::isDefaultValueAvailable() - Vérifie si une valeur par défaut est disponible pour le paramètre
  • ReflectionParameter::getDefaultValueConstantName() - Retourne le nom de la constante de la valeur par défaut si la valeur est une constante ou null
  • 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 ou null

  • « 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 ou null

ReflectionParameter::getDefaultValueConstantName

(PHP 5 >= 5.4.6, PHP 7, PHP 8)

ReflectionParameter::getDefaultValueConstantName — Retourne le nom de la constante de la valeur par défaut si la valeur est une constante ou null

Description

public ReflectionParameter::getDefaultValueConstantName(): ?string

Retourne le nom de la constante qui sert de valeur par défaut à un paramètre d'une fonction ou méthode définie par l'utilisateur ou interne, si la valeur par défaut est constante ou nulle. Si le paramètre n'est pas optionnel une exception de type ReflectionException sera jetée.

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, ou null en cas d'échec.

Historique

Version | Description
8.0.0 | Cette méthode permet désormais de récupérer le nom de la constante de la valeur par défaut de fonctions et méthodes de classe intégré. Auparavant, ReflectionException était émit.

Exemples

Exemple #1 Récupérer les noms des constantes qui servent de valeurs par défaut aux paramètres d'une fonction

<?php
function foo($test, $bar = PHP_INT_MIN)
{
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->getDefaultValueConstantName() . PHP_EOL;
}
echo PHP_EOL;
}
?>

L'exemple ci-dessus va afficher :

Nom : test

Nom : bar
Valeur par défaut : PHP_INT_MIN

Voir aussi

  • ReflectionParameter::isOptional() - Vérifie si le paramètre est optionnel
  • ReflectionParameter::isDefaultValueConstant() - Vérifie si la valeur par défaut du paramètre est une constante
  • ReflectionParameter::getDefaultValue() - Récupère la valeur par défaut du paramètre


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, PHP 8)

ReflectionParameter::getName — Récupère le nom du paramètre

Description

public ReflectionParameter::getName(): string

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.1.3, PHP 7, PHP 8)

ReflectionParameter::getPosition — Récupère la position d'un paramètre

Description

public ReflectionParameter::getPosition(): int

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


Récupère le type du paramètre

  • « ReflectionParameter::getPosition
  • ReflectionParameter::hasType »
  • PHP Manual
  • ReflectionParameter
  • Récupère le type du paramètre

ReflectionParameter::getType

(PHP 7, PHP 8)

ReflectionParameter::getType — Récupère le type du paramètre

Description

public ReflectionParameter::getType(): ?ReflectionType

Récupère le type associé d'un paramètre.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet ReflectionType si un type de paramètre est spécifié, null sinon.

Exemples

Exemple #1 Utilisation de ReflectionParameter::getType() à partir de PHP 7.1.0

À partir de PHP 7.1.0, ReflectionType::__toString() est obsolète, et ReflectionParameter::getType() peut retourner une instance de ReflectionNamedType. Pour récupérer le nom du type de paramètre, ReflectionNamedType() est disponible dans ce cas.

<?php
function someFunction(int $param, $param2) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParams = $reflectionFunc->getParameters();
$reflectionType1 = $reflectionParams[0]->getType();
$reflectionType2 = $reflectionParams[1]->getType();

assert($reflectionType1 instanceof ReflectionNamedType);
echo $reflectionType1->getName(), PHP_EOL;
var_dump($reflectionType2);
?>

L'exemple ci-dessus va afficher :

int
NULL

Exemple #2 Utilisation de ReflectionParameter::getType() antérieur à PHP 7.1.0

<?php
function someFunction(int $param, $param2) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParams = $reflectionFunc->getParameters();
$reflectionType1 = $reflectionParams[0]->getType();
$reflectionType2 = $reflectionParams[1]->getType();

echo $reflectionType1, PHP_EOL;
var_dump($reflectionType2);
?>

Résultat de l'exemple ci-dessus en PHP 7.0 :

int
NULL

Exemple #3 Utilisation de ReflectionParameter::getType() en PHP 8.0.0 et ultérieur

À partir de PHP 8.0.0, cette méthode peut retourner une instance soit de ReflectionNamedType soit de ReflectionUnionType. Le suivant est une collection du premier. Pour analyser un type, il est souvent pratique de le normaliser en un tableau d'objets ReflectionNamedType. La fonction suivant retournera un tableau de 0 ou plus d'instances de ReflectionNamedType

<?php
function getAllTypes(ReflectionParameter $reflectionParameter): array
{
$reflectionType = $reflectionParameter->getType();

if (!$reflectionType) return [];

return $reflectionType instanceof ReflectionUnionType
? $reflectionType->getTypes()
: [$reflectionType];
}
?>

Voir aussi

  • ReflectionParameter::hasType() - Vérifie si un paramètre a un type
  • ReflectionType::__toString() - To string


Vérifie si un paramètre a un type

  • « ReflectionParameter::getType
  • ReflectionParameter::isArray »
  • PHP Manual
  • ReflectionParameter
  • Vérifie si un paramètre a un type

ReflectionParameter::hasType

(PHP 7, PHP 8)

ReflectionParameter::hasType — Vérifie si un paramètre a un type

Description

public ReflectionParameter::hasType(): bool

Vérifie si le paramètre a un type associé avec celui-ci.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

true si un type est spécifié, false sinon.

Exemples

Exemple #1 Exemple avec ReflectionParameter::hasType()

<?php
function someFunction(string $param, $param2 = null) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParams = $reflectionFunc->getParameters();

var_dump($reflectionParams[0]->hasType());
var_dump($reflectionParams[1]->hasType());

Résultat de l'exemple ci-dessus est similaire à :

bool(true)
bool(false)

Voir aussi

  • ReflectionParameter::getType() - Récupère le type du paramètre


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.2, PHP 7, PHP 8)

ReflectionParameter::isArray — Vérifie si le paramètre attend un tableau

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Voir l'exemple ci-dessous pour une manière alternative pour dériver cette information.

Description

public ReflectionParameter::isArray(): bool

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.

Exemples

Exemple #1 Équivalent PHP 8.0.0

À partir de PHP 8.0.0, le code suivant signalera si un type supporte les tableaux, incluant ceux faisant partie d'une union.

<?php
function declaresArray(ReflectionParameter $reflectionParameter): bool
{
$reflectionType = $reflectionParameter->getType();

if (!$reflectionType) return false;

$types = $reflectionType instanceof ReflectionUnionType
? $reflectionType->getTypes()
: [$reflectionType];

return in_array('array', array_map(fn(ReflectionNamedType $t) => $t->getName(), $types));
}
?>

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, PHP 8)

ReflectionParameter::isCallable — Vérifie si le paramètre est de type callable

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Voir l'exemple ci-dessous pour une manière alternative pour dériver cette information.

Description

public ReflectionParameter::isCallable(): bool

Avertissement

Cette fonction est actuellement non documentée ; 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.

Exemples

Exemple #1 Équivalent PHP 8.0.0

À partir de PHP 8.0.0, le code suivant signalera si un type supporte les callables, incluant ceux faisant partie d'une union.

<?php
function declaresCallable(ReflectionParameter $reflectionParameter): bool
{
$reflectionType = $reflectionParameter->getType();

if (!$reflectionType) return false;

$types = $reflectionType instanceof ReflectionUnionType
? $reflectionType->getTypes()
: [$reflectionType];

return in_array('callable', array_map(fn(ReflectionNamedType $t) => $t->getName(), $types));
}
?>


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, PHP 8)

ReflectionParameter::isDefaultValueAvailable — Vérifie si une valeur par défaut est disponible pour le paramètre

Description

public ReflectionParameter::isDefaultValueAvailable(): bool

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::isDefaultValueConstant() - Vérifie si la valeur par défaut du paramètre est une constante
  • 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, PHP 8)

ReflectionParameter::isDefaultValueConstant — Vérifie si la valeur par défaut du paramètre est une constante

Description

public ReflectionParameter::isDefaultValueConstant(): bool

Vérifie si la valeur par défaut du paramètre est une constante

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 sinon.

Voir aussi

  • ReflectionParameter::getDefaultValueConstantName() - Retourne le nom de la constante de la valeur par défaut si la valeur est une constante ou null
  • ReflectionParameter::isDefaultValueAvailable() - Vérifie si une valeur par défaut est disponible pour le paramètre


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, PHP 8)

ReflectionParameter::isOptional — Vérifie si le paramètre est optionnel

Description

public ReflectionParameter::isOptional(): bool

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, PHP 8)

ReflectionParameter::isPassedByReference — Vérifie si le paramètre est passé par référence

Description

public ReflectionParameter::isPassedByReference(): bool

Vérifie si le paramètre est passé par référence.

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, PHP 8)

ReflectionParameter::isVariadic — Vérifie si le paramètre est variadique

Description

public ReflectionParameter::isVariadic(): bool

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, PHP 8)

ReflectionParameter::__toString — Récupère une représentation textuelle

Description

public ReflectionParameter::__toString(): string

Récupère une représentation textuelle du paramètre.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La chaîne.

Exemples

Exemple #1 Exemple de ReflectionParameter::__toString()

<?php
echo new ReflectionParameter('substr', 0);
?>

Résultat de l'exemple ci-dessus est similaire à :

Parameter #0 [ <required> string $string ]

Voir aussi

  • ReflectionFunction::__toString() - Retourne une représentation textuelle de l'objet ReflectionFunction
  • ReflectionMethod::__toString() - Retourne une représentation textuelle de la méthode
  • __toString()


La classe ReflectionProperty

(PHP 5, PHP 7, PHP 8)

Introduction

La classe ReflectionProperty rapporte des informations sur les propriétés des classes.

Synopsis de la classe

class ReflectionProperty implements Reflector {
/* Constantes */
public const int IS_STATIC;
public const int IS_READONLY;
public const int IS_PUBLIC;
public const int IS_PROTECTED;
public const int IS_PRIVATE;
/* Propriétés */
public string $name;
public string $class;
/* Méthodes */
public __construct(object|string $class, string $property)
private __clone(): void
public static export(mixed $class, string $name, bool $return = ?): string
public getAttributes(?string $name = null, int $flags = 0): array
public getDeclaringClass(): ReflectionClass
public getDefaultValue(): mixed
public getDocComment(): string|false
public getModifiers(): int
public getName(): string
public getType(): ?ReflectionType
public getValue(?object $object = null): mixed
public hasDefaultValue(): bool
public hasType(): bool
public isDefault(): bool
public isInitialized(?object $object = null): bool
public isPrivate(): bool
public isPromoted(): bool
public isProtected(): bool
public isPublic(): bool
public isReadOnly(): bool
public isStatic(): bool
public setAccessible(bool $accessible): void
public setValue(object $object, mixed $value): void
public __toString(): string
}

Propriétés

name

Nom de la propriété. En lecture seule, lance une ReflectionException lors d'une tentative d'écriture.

class

Nom de la classe où la propriété a été définie. En lecture seule, lance une ReflectionException lors d'une tentative d'écriture.

Constantes pré-définies

Modificateurs de ReflectionProperty

ReflectionProperty::IS_STATIC

Indique que la propriété est static Antérieur à PHP 7.4.0, la valeur était 1.

ReflectionProperty::IS_READONLY

Indique que la propriété est readonly Disponible à partir de PHP 8.1.0.

ReflectionProperty::IS_PUBLIC

Indique que la propriété est publique. Antérieur à PHP 7.4.0, la valeur était 256.

ReflectionProperty::IS_PROTECTED

Indique que la propriété est protégée. Antérieur à PHP 7.4.0, la valeur était 512.

ReflectionProperty::IS_PRIVATE

Indique que la propriété est privée. Antérieur à PHP 7.4.0, la valeur était 1024.

Note:

La valeur de ces constantes peut changer entre les versions de PHP. Il est recommandé de toujours utiliser les constantes et de ne pas dépendre sur les valeurs directement.

Historique

Version | Description
8.0.0 | ReflectionProperty::export() a été supprimée.

Sommaire

  • ReflectionProperty::__clone — Clonage
  • ReflectionProperty::__construct — Construit un nouvel objet ReflectionProperty
  • ReflectionProperty::export — Exporte
  • ReflectionProperty::getAttributes — Gets Attributes
  • ReflectionProperty::getDeclaringClass — Récupère la classe déclarante
  • ReflectionProperty::getDefaultValue — Returns the default value declared for a property
  • ReflectionProperty::getDocComment — Récupère le commentaire de documentation d'une propriété
  • ReflectionProperty::getModifiers — Récupère les modificateurs de propriété
  • ReflectionProperty::getName — Récupère le nom de la propriété
  • ReflectionProperty::getType — Récupère le type d'une propriété
  • ReflectionProperty::getValue — Récupère la valeur de la propriété
  • ReflectionProperty::hasDefaultValue — Checks if property has a default value declared
  • ReflectionProperty::hasType — Vérifie si la propriété à un type
  • ReflectionProperty::isDefault — Vérifie si la propriété est celle par défaut
  • ReflectionProperty::isInitialized — Vérifie si une propriété est initialisée
  • ReflectionProperty::isPrivate — Vérifie si la propriété est privée
  • ReflectionProperty::isPromoted — Checks if property is promoted
  • ReflectionProperty::isProtected — Vérifie si la propriété est protégée
  • ReflectionProperty::isPublic — Vérifie si la propriété est publique
  • ReflectionProperty::isReadOnly — Checks if property is readonly
  • ReflectionProperty::isStatic — Vérifie si la propriété est statique
  • ReflectionProperty::setAccessible — Définit l'accessibilité d'une 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, PHP 8)

ReflectionProperty::__clone — Clonage

Description

private ReflectionProperty::__clone(): void

Clonage.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Historique

Version | Description
8.1.0 | Cette méthode n'est plus final.

Voir aussi

  • ReflectionProperty::export() - Exporte
  • Clonage d'objet


Construit un nouvel objet ReflectionProperty

  • « ReflectionProperty::__clone
  • ReflectionProperty::export »
  • PHP Manual
  • ReflectionProperty
  • Construit un nouvel objet ReflectionProperty

ReflectionProperty::__construct

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::__construct — Construit un nouvel objet ReflectionProperty

Description

public ReflectionProperty::__construct(object|string $class, string $property)

Liste de paramètres

class

Soit une chaîne de caractère contenant le nom de la classe à introspecter, ou un objet.

property

Le nom de la propriété à refléter.

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()), true)
);

// 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);

?>

Résultat de l'exemple ci-dessus est 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);
var_dump($prop->getValue($obj)); // int(2)

$prop = new ReflectionProperty('Foo', 'z');
$prop->setAccessible(true);
var_dump($prop->getValue($obj)); // int(2)

?>

Résultat de l'exemple ci-dessus est similaire à :

int(2)
int(3)

Voir aussi

  • ReflectionProperty::getName() - Récupère le nom de la propriété
  • Les constructeurs


Exporte

  • « ReflectionProperty::__construct
  • ReflectionProperty::getAttributes »
  • PHP Manual
  • ReflectionProperty
  • Exporte

ReflectionProperty::export

(PHP 5, PHP 7)

ReflectionProperty::export — Exporte

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.4.0, et a été SUPPRIMÉE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

public static ReflectionProperty::export(mixed $class, string $name, bool $return = ?): string

Exporte une réflexion.

Avertissement

Cette fonction est actuellement non documentée ; 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 une représentation textuelle


Gets Attributes

  • « ReflectionProperty::export
  • ReflectionProperty::getDeclaringClass »
  • PHP Manual
  • ReflectionProperty
  • Gets Attributes

ReflectionProperty::getAttributes

(PHP 8)

ReflectionProperty::getAttributes — Gets Attributes

Description

public ReflectionProperty::getAttributes(?string $name = null, int $flags = 0): array

Returns all attributes declared on this class property as an array of ReflectionAttribute.

Liste de paramètres

name

Filtrer les résultats pour inclure uniquement les instances de ReflectionAttribute pour les attributs correspondant à ce nom de classe.

flags

Flags pour déterminer comment filtrer les résultats, si name est fourni.

La valeur par défaut est 0 qui ne renverra que les résultats pour les attributs qui sont de la classe name.

La seule autre option disponible est d'utiliser ReflectionAttribute::IS_INSTANCEOF, qui utilisera plutôt instanceof pour le filtrage.

Valeurs de retour

Array of attributes, as a ReflectionAttribute object.

Exemples

Exemple #1 Basic usage

<?php
#[Attribute]
class Fruit {
}

#[Attribute]
class Red {
}

class Basket {
#[Fruit]
#[Red]
public string $apple = 'apple';
}

$property = new ReflectionProperty('Basket', 'apple');
$attributes = $property->getAttributes();
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Fruit
    [1] => Red
)

Exemple #2 Filtering results by class name

<?php
#[Attribute]
class Fruit {
}

#[Attribute]
class Red {
}

class Basket {
#[Fruit]
#[Red]
public string $apple = 'apple';
}

$property = new ReflectionProperty('Basket', 'apple');
$attributes = $property->getAttributes('Fruit');
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Fruit
)

Exemple #3 Filtering results by class name, with inheritance

<?php
interface Color {
}

#[Attribute]
class Fruit {
}

#[Attribute]
class Red implements Color {
}

class Basket {
#[Fruit]
#[Red]
public string $apple = 'apple';
}

$property = new ReflectionProperty('Basket', 'apple');
$attributes = $property->getAttributes('Color', ReflectionAttribute::IS_INSTANCEOF);
print_r(array_map(fn($attribute) => $attribute->getName(), $attributes));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Red
)

Voir aussi

  • ReflectionClass::getAttributes() - Récupère les attributs d'une classe
  • ReflectionClassConstant::getAttributes() - Gets Attributes
  • ReflectionFunctionAbstract::getAttributes() - Gets Attributes
  • ReflectionParameter::getAttributes() - Gets Attributes


Récupère la classe déclarante

  • « ReflectionProperty::getAttributes
  • ReflectionProperty::getDefaultValue »
  • PHP Manual
  • ReflectionProperty
  • Récupère la classe déclarante

ReflectionProperty::getDeclaringClass

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::getDeclaringClass — Récupère la classe déclarante

Description

public ReflectionProperty::getDeclaringClass(): ReflectionClass

Récupère la classe déclarante.

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 propriété


Returns the default value declared for a property

  • « ReflectionProperty::getDeclaringClass
  • ReflectionProperty::getDocComment »
  • PHP Manual
  • ReflectionProperty
  • Returns the default value declared for a property

ReflectionProperty::getDefaultValue

(PHP 8)

ReflectionProperty::getDefaultValue — Returns the default value declared for a property

Description

public ReflectionProperty::getDefaultValue(): mixed

Gets the implicit or explicitly declared default value for a property.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The default value if the property has any default value (including null). If there is no default value, then null is returned. It is not possible to differentiate between a null default value and an unitialized typed property. Use ReflectionProperty::hasDefaultValue() to detect the difference.

Exemples

Exemple #1 ReflectionProperty::getDefaultValue() example

<?php
class Foo {
public $bar = 1;
public ?int $baz;
public int $boing = 0;
public function __construct(public string $bak = "default") { }
}

$ro = new ReflectionClass(Foo::class);
var_dump($ro->getProperty('bar')->getDefaultValue());
var_dump($ro->getProperty('baz')->getDefaultValue());
var_dump($ro->getProperty('boing')->getDefaultValue());
var_dump($ro->getProperty('bak')->getDefaultValue());
?>

L'exemple ci-dessus va afficher :

int(1)
NULL
int(0)
NULL

Voir aussi

  • ReflectionProperty::hasDefaultValue() - Checks if property has a default value declared


Récupère le commentaire de documentation d'une propriété

  • « ReflectionProperty::getDefaultValue
  • ReflectionProperty::getModifiers »
  • PHP Manual
  • ReflectionProperty
  • Récupère le commentaire de documentation d'une propriété

ReflectionProperty::getDocComment

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

ReflectionProperty::getDocComment — Récupère le commentaire de documentation d'une propriété

Description

public ReflectionProperty::getDocComment(): string|false

Récupère le commentaire de documentation d'une propriété.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le commentaire de documentation s'il existe, sinon false.

Exemples

Exemple #1 ReflectionProperty::getDocComment() example

<?php
class Str
{
/**
* @var int La taille de la chaîne de caractère
*/
public $length = 5;
}

$prop = new ReflectionProperty('Str', 'length');

var_dump($prop->getDocComment());

?>

Résultat de l'exemple ci-dessus est similaire à :

string(53) "/**
     * @var int  La taille de la chaîne de caractère
     */"

Exemple #2 Multiple property declarations

Si plusieurs déclaration de propriétés sont précédé d'un unique commentaire de documentation, le commentaire de documentation ne fait référence uniquement à la première propriété.

<?php
class Foo
{
/** @var string */
public $a, $b;
}
$class = new \ReflectionClass('Foo');
foreach ($class->getProperties() as $property) {
echo $property->getName() . ': ' . var_export($property->getDocComment(), true) . PHP_EOL;
}
?>

L'exemple ci-dessus va afficher :

a: '/** @var string */'
b: false

Voir aussi

  • ReflectionProperty::getModifiers() - Récupère les modificateurs de propriété
  • ReflectionProperty::getName() - Récupère le nom de la propriété
  • ReflectionProperty::getValue() - Récupère la valeur de la propriété


Récupère les modificateurs de propriété

  • « ReflectionProperty::getDocComment
  • ReflectionProperty::getName »
  • PHP Manual
  • ReflectionProperty
  • Récupère les modificateurs de propriété

ReflectionProperty::getModifiers

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::getModifiers — Récupère les modificateurs de propriété

Description

public ReflectionProperty::getModifiers(): int

Récupère les modificateurs.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Une représentation numérique des modificateurs. La signification actuelle de ces modificateurs est décrite dans les constantes prédéfinies.

Voir aussi

  • ReflectionProperty::isPrivate() - Vérifie si la propriété est privée
  • Reflection::getModifierNames() - Récupère le nom des modificateurs


Récupère le nom de la propriété

  • « ReflectionProperty::getModifiers
  • ReflectionProperty::getType »
  • PHP Manual
  • ReflectionProperty
  • Récupère le nom de la propriété

ReflectionProperty::getName

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::getName — Récupère le nom de la propriété

Description

public ReflectionProperty::getName(): string

Récupère le nom de la propriété.

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 le type d'une propriété

  • « ReflectionProperty::getName
  • ReflectionProperty::getValue »
  • PHP Manual
  • ReflectionProperty
  • Récupère le type d'une propriété

ReflectionProperty::getType

(PHP 7 >= 7.4.0, PHP 8)

ReflectionProperty::getType — Récupère le type d'une propriété

Description

public ReflectionProperty::getType(): ?ReflectionType

Récupère le type associé à une propriété.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une ReflectionType si la propriété à un type, et null sinon.

Exemples

Exemple #1 Exemple de ReflectionProperty::getType()

<?php
class User
{
public string $name;
}

$rp = new ReflectionProperty('User', 'name');
echo $rp->getType()->getName();
?>

L'exemple ci-dessus va afficher :

string

Voir aussi

  • ReflectionProperty::hasType() - Vérifie si la propriété à un type
  • ReflectionProperty::isInitialized() - Vérifie si une propriété est initialisée


Récupère la valeur de la propriété

  • « ReflectionProperty::getType
  • ReflectionProperty::hasDefaultValue »
  • PHP Manual
  • ReflectionProperty
  • Récupère la valeur de la propriété

ReflectionProperty::getValue

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::getValue — Récupère la valeur de la propriété

Description

public ReflectionProperty::getValue(?object $object = null): mixed

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 ReflectionClass::getDefaultProperties() à la place.

Valeurs de retour

La valeur courante de la propriété.

Historique

Version | Description
8.1.0 | Les propriétés privées et protégées sont immédiatement accessibles par ReflectionProperty::setValue(). Auparavant, elles devaient être rendues accessibles en appelant ReflectionProperty::setAccessible(), sinon une ReflectionException était déclenchée.
8.0.0 | object est désormais nullable.

Exemples

Exemple #1 Exemple avec 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); // Seulement nécessaire avant PHP 8.1.0.
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é d'une 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


Checks if property has a default value declared

  • « ReflectionProperty::getValue
  • ReflectionProperty::hasType »
  • PHP Manual
  • ReflectionProperty
  • Checks if property has a default value declared

ReflectionProperty::hasDefaultValue

(PHP 8)

ReflectionProperty::hasDefaultValue — Checks if property has a default value declared

Description

public ReflectionProperty::hasDefaultValue(): bool

Checks whether the property was declared with a default value, including an implicit null default value. Only returns false for typed properties without default value (or dynamic properties).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

If the property has any default value (including null) true is returned; if the property is typed without a default value declared or is a dynamic property, false is returned.

Exemples

Exemple #1 ReflectionProperty::hasDefaultValue() example

<?php
class Foo {
public $bar;
public ?int $baz;
public ?int $foo = null;
public int $boing;

public function __construct()
{
$this->ping = '';
}
}

$ro = new ReflectionObject(new Foo());
var_dump($ro->getProperty('bar')->hasDefaultValue());
var_dump($ro->getProperty('baz')->hasDefaultValue());
var_dump($ro->getProperty('foo')->hasDefaultValue());
var_dump($ro->getProperty('boing')->hasDefaultValue());
var_dump($ro->getProperty('ping')->hasDefaultValue()); // Dynamic property
var_dump($ro->getProperty('pong')->hasDefaultValue()); // Not defined property
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)
bool(true)
bool(false)
bool(false)

Fatal error: Uncaught ReflectionException: Property Foo::$pong does not exist in example.php

Voir aussi

  • ReflectionProperty::getDefaultValue() - Returns the default value declared for a property


Vérifie si la propriété à un type

  • « ReflectionProperty::hasDefaultValue
  • ReflectionProperty::isDefault »
  • PHP Manual
  • ReflectionProperty
  • Vérifie si la propriété à un type

ReflectionProperty::hasType

(PHP 7 >= 7.4.0, PHP 8)

ReflectionProperty::hasType — Vérifie si la propriété à un type

Description

public ReflectionProperty::hasType(): bool

Vérifie si la propriété à un type associé avec.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

true si un type est spécifié, false sinon.

Exemples

Exemple #1 Exemple de ReflectionProperty::hasType()

<?php
class User
{
public string $name;
}

$rp = new ReflectionProperty('User', 'name');
var_dump($rp->hasType());
?>

L'exemple ci-dessus va afficher :

bool(true)

Voir aussi

  • ReflectionProperty::getType() - Récupère le type d'une propriété
  • ReflectionProperty::isInitialized() - Vérifie si une propriété est initialisée


Vérifie si la propriété est celle par défaut

  • « ReflectionProperty::hasType
  • ReflectionProperty::isInitialized »
  • PHP Manual
  • ReflectionProperty
  • Vérifie si la propriété est celle par défaut

ReflectionProperty::isDefault

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::isDefault — Vérifie si la propriété est celle par défaut

Description

public ReflectionProperty::isDefault(): bool

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 une propriété est initialisée

  • « ReflectionProperty::isDefault
  • ReflectionProperty::isPrivate »
  • PHP Manual
  • ReflectionProperty
  • Vérifie si une propriété est initialisée

ReflectionProperty::isInitialized

(PHP 7 >= 7.4.0, PHP 8)

ReflectionProperty::isInitialized — Vérifie si une propriété est initialisée

Description

public ReflectionProperty::isInitialized(?object $object = null): bool

Vérifie si une propriété est initialisée.

Liste de paramètres

object

Si la propriété n'est pas statique un objet doit être fourni pour récupérer la propriété depuis.

Valeurs de retour

Retourne false pour les propriétés typées antérieur à leur initialisation, et pour les propriétés qui ont était explicitement unset(). Pour toutes les autres propriétés true sera retourné.

Erreurs / Exceptions

Lance une ReflectionException si la propriété est inaccessible. Il est possible de rendre une propriété protégée ou privée accessible en utilisant ReflectionProperty::setAccessible().

Historique

Version | Description
8.0.0 | object est désormais nullable.

Exemples

Exemple #1 Exemple de ReflectionProperty::isInitialized()

<?php
class User
{
public string $name;
}

$rp = new ReflectionProperty('User', 'name');
$user = new User;
var_dump($rp->isInitialized($user));
$user->name = 'Nikita';
var_dump($rp->isInitialized($user));
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)

Voir aussi

  • ReflectionProperty::hasType() - Vérifie si la propriété à un type


Vérifie si la propriété est privée

  • « ReflectionProperty::isInitialized
  • ReflectionProperty::isPromoted »
  • PHP Manual
  • ReflectionProperty
  • Vérifie si la propriété est privée

ReflectionProperty::isPrivate

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::isPrivate — Vérifie si la propriété est privée

Description

public ReflectionProperty::isPrivate(): bool

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::isReadOnly() - Checks if property is readonly
  • ReflectionProperty::isStatic() - Vérifie si la propriété est statique


Checks if property is promoted

  • « ReflectionProperty::isPrivate
  • ReflectionProperty::isProtected »
  • PHP Manual
  • ReflectionProperty
  • Checks if property is promoted

ReflectionProperty::isPromoted

(PHP 8)

ReflectionProperty::isPromoted — Checks if property is promoted

Description

public ReflectionProperty::isPromoted(): bool

Checks whether the property is promoted

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

true if the property is promoted, false otherwise.

Exemples

Exemple #1 ReflectionProperty::isPromoted() example

<?php
class Foo {
public $baz;

public function __construct(public $bar) {}
}

$o = new Foo(42);
$o->baz = 42;

$ro = new ReflectionObject($o);
var_dump($ro->getProperty('bar')->isPromoted());
var_dump($ro->getProperty('baz')->isPromoted());
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)

Voir aussi

  • ReflectionProperty::isDefault() - Vérifie si la propriété est celle par défaut
  • ReflectionProperty::isInitialized() - Vérifie si une propriété est initialisée
  • ReflectionProperty::getValue() - Récupère la valeur de la propriété


Vérifie si la propriété est protégée

  • « ReflectionProperty::isPromoted
  • ReflectionProperty::isPublic »
  • PHP Manual
  • ReflectionProperty
  • Vérifie si la propriété est protégée

ReflectionProperty::isProtected

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::isProtected — Vérifie si la propriété est protégée

Description

public ReflectionProperty::isProtected(): bool

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::isReadOnly() - Checks if property is readonly
  • ReflectionProperty::isStatic() - Vérifie si la propriété est statique


Vérifie si la propriété est publique

  • « ReflectionProperty::isProtected
  • ReflectionProperty::isReadOnly »
  • PHP Manual
  • ReflectionProperty
  • Vérifie si la propriété est publique

ReflectionProperty::isPublic

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::isPublic — Vérifie si la propriété est publique

Description

public ReflectionProperty::isPublic(): bool

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::isReadOnly() - Checks if property is readonly
  • ReflectionProperty::isStatic() - Vérifie si la propriété est statique


Checks if property is readonly

  • « ReflectionProperty::isPublic
  • ReflectionProperty::isStatic »
  • PHP Manual
  • ReflectionProperty
  • Checks if property is readonly

ReflectionProperty::isReadOnly

(PHP 8 >= 8.1.0)

ReflectionProperty::isReadOnly — Checks if property is readonly

Description

public ReflectionProperty::isReadOnly(): bool

Checks whether the property is readonly.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

true if the property is readonly, false otherwise.

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
  • ReflectionProperty::isStatic() - Vérifie si la propriété est statique


Vérifie si la propriété est statique

  • « ReflectionProperty::isReadOnly
  • ReflectionProperty::setAccessible »
  • PHP Manual
  • ReflectionProperty
  • Vérifie si la propriété est statique

ReflectionProperty::isStatic

(PHP 5, PHP 7, PHP 8)

ReflectionProperty::isStatic — Vérifie si la propriété est statique

Description

public ReflectionProperty::isStatic(): bool

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
  • ReflectionProperty::isReadOnly() - Checks if property is readonly


Définit l'accessibilité d'une propriété

  • « ReflectionProperty::isStatic
  • ReflectionProperty::setValue »
  • PHP Manual
  • ReflectionProperty
  • Définit l'accessibilité d'une propriété

ReflectionProperty::setAccessible

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

ReflectionProperty::setAccessible — Définit l'accessibilité d'une propriété

Description

public ReflectionProperty::setAccessible(bool $accessible): void

Active l'accès à une propriété protégée ou privée via les méthodes ReflectionProperty::getValue() et ReflectionProperty::setValue().

Note: À partir de PHP 8.1.0, l'appel à cette méthode n'a aucun effet; toutes les propriétés sont accessibles par défaut.

Liste de paramètres

accessible

true pour permettre l'accès, ou false.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Définition d'une classe simple

<?php
class MyClass
{
private $foo = 'bar';
}
$property = new ReflectionProperty("MyClass", "foo");
$property->setAccessible(true);
$obj = new MyClass();
echo $property->getValue($obj);
echo $obj->foo;
?>

Résultat de l'exemple ci-dessus est similaire à :

bar
Fatal error: Uncaught Error: Cannot access private property MyClass::$foo in /in/WJqTv:12

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, PHP 8)

ReflectionProperty::setValue — Définit la valeur de la propriété

Description

public ReflectionProperty::setValue(object $object, mixed $value): void
public ReflectionProperty::setValue(mixed $value): void

Définit (modifie) la valeur de la propriété.

Note: À partir de PHP 8.3.0, l'appel de cette méthode avec un seul argument est obsolète. Utilisez plutôt ReflectionClass::setStaticPropertyValue().

Liste de paramètres

object

L'objet à utiliser dans le cas d'une propriété non statique. Si la propriété est statique une valeur de null doit être fournit.

value

La nouvelle valeur.

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version | Description
8.3.0 | L'appel de cette méthode avec un seul argument est obsolète. Utilisez plutôt ReflectionClass::setStaticPropertyValue() pour modifier les propriétés statiques.
8.1.0 | Les propriétés privées et protégées sont immédiatement accessibles par ReflectionProperty::setValue(). Auparavant, elles devaient être rendues accessibles en appelant ReflectionProperty::setAccessible(), sinon une ReflectionException était déclenchée.

Exemples

Exemple #1 Exemple avec ReflectionProperty::setValue()

<?php
class Foo {
public static $staticProperty;

public $property;
protected $privateProperty;
}

$reflectionClass = new ReflectionClass('Foo');

// À partir de PHP 8.3, setValue ne devrait plus être utilisé pour définir la valeur d'une propriété statique, utilisez plutôt setStaticPropertyValue() à la place
$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); // Seulement nécessaire avant PHP 8.1.0.
$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é d'une 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, PHP 8)

ReflectionProperty::__toString — Récupère une représentation textuelle

Description

public ReflectionProperty::__toString(): string

Récupère une représentation textuelle de la propriété.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La châine.

Voir aussi

  • __toString()


La classe ReflectionType

(PHP 7, PHP 8)

Introduction

La classe ReflectionType relate les informations à propos du type de retour d'une fonction. L'extension Reflection déclare les sous-types suivants :

  • ReflectionNamedType (à partir de PHP 7.1.0)
  • ReflectionUnionType (à partir de PHP 8.0.0)
  • ReflectionIntersectionType (à partir de PHP 8.1.0)

Synopsis de la classe

abstract class ReflectionType implements Stringable {
/* Méthodes */
public allowsNull(): bool
public __toString(): string
}

Historique

Version | Description
8.0.0 | ReflectionType est devenue abstraite et ReflectionType::isBuiltin() a été déplacée vers ReflectionNamedType::isBuiltin().

Sommaire

  • ReflectionType::allowsNull — Vérifie si null est permit
  • ReflectionType::__toString — To string


Vérifie si null est permit

  • « ReflectionType
  • ReflectionType::__toString »
  • PHP Manual
  • ReflectionType
  • Vérifie si null est permit

ReflectionType::allowsNull

(PHP 7, PHP 8)

ReflectionType::allowsNull — Vérifie si null est permit

Description

public ReflectionType::allowsNull(): bool

Vérifie si le paramètre accepte null.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

true si null est permit, sinon false

Exemples

Exemple #1 Exemple avec ReflectionType::allowsNull()

<?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 :

bool(false)
bool(true)

Voir aussi

  • ReflectionNamedType::isBuiltin() - Vérifie si c'est un type intégré
  • ReflectionType::__toString() - To string
  • ReflectionParameter::getType() - Récupère le type du paramètre


To string

  • « ReflectionType::allowsNull
  • ReflectionUnionType »
  • PHP Manual
  • ReflectionType
  • To string

ReflectionType::__toString

(PHP 7, PHP 8)

ReflectionType::__toString — To string

Description

public ReflectionType::__toString(): string

Récupère le nom du type du paramètre.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le type du paramètre.

Historique

Version | Description
8.0.0 | ReflectionType::__toString() a été rendu non obsolète.
7.1.0 | ReflectionType::__toString() a été rendu obsolète.

Exemples

Exemple #1 Exemple avec ReflectionType::__toString()

<?php
function someFunction(string $param) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParam = $reflectionFunc->getParameters()[0];

echo $reflectionParam->getType();

Résultat de l'exemple ci-dessus est similaire à :

string

Voir aussi

  • ReflectionNamedType::getName() - Récupère le nom du type en tant que chaîne
  • ReflectionNamedType::isBuiltin() - Vérifie si c'est un type intégré
  • ReflectionType::allowsNull() - Vérifie si null est permit
  • ReflectionUnionType::getTypes() - Returns the types included in the union type
  • ReflectionParameter::getType() - Récupère le type du paramètre


The ReflectionUnionType class

(PHP 8)

Introduction

Synopsis de la classe

class ReflectionUnionType extends ReflectionType {
/* Méthodes */
public getTypes(): array
/* Méthodes héritées */
public ReflectionType::allowsNull(): bool
public ReflectionType::__toString(): string
}

Sommaire

  • ReflectionUnionType::getTypes — Returns the types included in the union type


Returns the types included in the union type

  • « ReflectionUnionType
  • ReflectionGenerator »
  • PHP Manual
  • ReflectionUnionType
  • Returns the types included in the union type

ReflectionUnionType::getTypes

(PHP 8)

ReflectionUnionType::getTypes — Returns the types included in the union type

Description

public ReflectionUnionType::getTypes(): array

Returns the reflections of types included in the union type.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

An array of ReflectionType objects.

Exemples

Exemple #1 ReflectionUnionType::getTypes() example

<?php
function someFunction(int|float $number) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParam = $reflectionFunc->getParameters()[0];

var_dump($reflectionParam->getType()->getTypes());

Résultat de l'exemple ci-dessus est similaire à :

array(2) {
    [0] =>
    class ReflectionNamedType#4(0) {
    }
    [1] =>
    class ReflectionNamedType#5(0) {
    }
}

Voir aussi

  • ReflectionType::allowsNull() - Vérifie si null est permit
  • ReflectionParameter::getType() - Récupère le type du paramètre


La classe ReflectionGenerator

(PHP 7, PHP 8)

Introduction

La classe ReflectionGenerator rapporte des informations à propos d'un générateur.

Synopsis de la classe

final class ReflectionGenerator {
/* Méthodes */
public __construct(Generator $generator)
public getExecutingFile(): string
public getExecutingGenerator(): Generator
public getExecutingLine(): int
public getFunction(): ReflectionFunctionAbstract
public getThis(): ?object
public getTrace(int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT): array
}

Historique

Version | Description
8.0.0 | La classe est final maintenant.

Sommaire

  • ReflectionGenerator::__construct — Construit un objet ReflectionGenerator
  • ReflectionGenerator::getExecutingFile — Récupère le nom de fichier du générateur actuellement exécuté
  • ReflectionGenerator::getExecutingGenerator — Récupère l'objet Generator exécuté
  • ReflectionGenerator::getExecutingLine — Récupère la ligne actuellement exécutée du générateur
  • ReflectionGenerator::getFunction — Récupère le nom de fonction du générateur
  • ReflectionGenerator::getThis — Récupère la valeur de $this du générateur
  • ReflectionGenerator::getTrace — Récupère la trace du générateur exécutant


Construit un objet ReflectionGenerator

  • « ReflectionGenerator
  • ReflectionGenerator::getExecutingFile »
  • PHP Manual
  • ReflectionGenerator
  • Construit un objet ReflectionGenerator

ReflectionGenerator::__construct

(PHP 7, PHP 8)

ReflectionGenerator::__construct — Construit un objet ReflectionGenerator

Description

public ReflectionGenerator::__construct(Generator $generator)

Construit un objet ReflectionGenerator.

Liste de paramètres

generator

Un objet generator.

Exemples

Exemple #1 Exemple avec ReflectionGenerator::__construct()

<?php

function gen()
{
yield 1;
}

$gen = gen();

$reflectionGen = new ReflectionGenerator($gen);

echo <<< output
{$reflectionGen->getFunction()->name}
Line: {$reflectionGen->getExecutingLine()}
File: {$reflectionGen->getExecutingFile()}
output;

Résultat de l'exemple ci-dessus est similaire à :

gen
Line: 5
File: /path/to/file/example.php

Voir aussi

  • ReflectionGenerator::getFunction() - Récupère le nom de fonction du générateur
  • ReflectionGenerator::getExecutingLine() - Récupère la ligne actuellement exécutée du générateur
  • ReflectionGenerator::getExecutingFile() - Récupère le nom de fichier du générateur actuellement exécuté


Récupère le nom de fichier du générateur actuellement exécuté

  • « ReflectionGenerator::__construct
  • ReflectionGenerator::getExecutingGenerator »
  • PHP Manual
  • ReflectionGenerator
  • Récupère le nom de fichier du générateur actuellement exécuté

ReflectionGenerator::getExecutingFile

(PHP 7, PHP 8)

ReflectionGenerator::getExecutingFile — Récupère le nom de fichier du générateur actuellement exécuté

Description

public ReflectionGenerator::getExecutingFile(): string

Récupère le chemin complet et le nom de fichier du générateur actuellement exécuté.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le chemin complet et le nom de fichier du générateur actuellement exécuté.

Exemples

Exemple #1 Exemple avec ReflectionGenerator::getExecutingFile()

<?php

class GenExample
{
public function gen()
{
yield 1;
}
}

$gen = (new GenExample)->gen();

$reflectionGen = new ReflectionGenerator($gen);

echo "File: {$reflectionGen->getExecutingFile()}";

Résultat de l'exemple ci-dessus est similaire à :

File: /path/to/file/example.php

Voir aussi

  • ReflectionGenerator::getExecutingLine() - Récupère la ligne actuellement exécutée du générateur
  • ReflectionGenerator::getExecutingGenerator() - Récupère l'objet Generator exécuté


Récupère l'objet Generator exécuté

  • « ReflectionGenerator::getExecutingFile
  • ReflectionGenerator::getExecutingLine »
  • PHP Manual
  • ReflectionGenerator
  • Récupère l'objet Generator exécuté

ReflectionGenerator::getExecutingGenerator

(PHP 7, PHP 8)

ReflectionGenerator::getExecutingGenerator — Récupère l'objet Generator exécuté

Description

public ReflectionGenerator::getExecutingGenerator(): Generator

Récupère l'objet Generator exécuté.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'objet Generator actuellement exécuté.

Exemples

Exemple #1 Exemple avec ReflectionGenerator::getExecutingGenerator()

<?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());

Résultat de l'exemple ci-dessus est similaire à :

bool(true)
int(1);

Voir aussi

  • ReflectionGenerator::getExecutingLine() - Récupère la ligne actuellement exécutée du générateur
  • ReflectionGenerator::getExecutingFile() - Récupère le nom de fichier du générateur actuellement exécuté


Récupère la ligne actuellement exécutée du générateur

  • « ReflectionGenerator::getExecutingGenerator
  • ReflectionGenerator::getFunction »
  • PHP Manual
  • ReflectionGenerator
  • Récupère la ligne actuellement exécutée du générateur

ReflectionGenerator::getExecutingLine

(PHP 7, PHP 8)

ReflectionGenerator::getExecutingLine — Récupère la ligne actuellement exécutée du générateur

Description

public ReflectionGenerator::getExecutingLine(): int

Récupère la ligne actuellement exécutée du générateur.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le numéro de ligne de la déclaration actuellement exécutée dans le générateur.

Exemples

Exemple #1 Exemple avec ReflectionGenerator::getExecutingLine()

<?php

class GenExample
{
public function gen()
{
yield 1;
}
}

$gen = (new GenExample)->gen();

$reflectionGen = new ReflectionGenerator($gen);

echo "Line: {$reflectionGen->getExecutingLine()}";

Résultat de l'exemple ci-dessus est similaire à :

Line: 7

Voir aussi

  • ReflectionGenerator::getExecutingGenerator() - Récupère l'objet Generator exécuté
  • ReflectionGenerator::getExecutingFile() - Récupère le nom de fichier du générateur actuellement exécuté


Récupère le nom de fonction du générateur

  • « ReflectionGenerator::getExecutingLine
  • ReflectionGenerator::getThis »
  • PHP Manual
  • ReflectionGenerator
  • Récupère le nom de fonction du générateur

ReflectionGenerator::getFunction

(PHP 7, PHP 8)

ReflectionGenerator::getFunction — Récupère le nom de fonction du générateur

Description

public ReflectionGenerator::getFunction(): ReflectionFunctionAbstract

Permet l'obtention du nom de fonction du générateur en retournant une classe dérivé depuis ReflectionFunctionAbstract.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne une classe ReflectionFunctionAbstract. Ceci sera ReflectionFunction pour les fonctions, ou ReflectionMethod pour les méthodes.

Exemples

Exemple #1 Exemple avec ReflectionGenerator::getFunction()

<?php

function gen()
{
yield 1;
}

$gen = gen();

$reflectionGen = new ReflectionGenerator($gen);

var_dump($reflectionGen->getFunction());

Résultat de l'exemple ci-dessus est similaire à :

object(ReflectionFunction)#3 (1) {
  ["name"]=>
  string(3) "gen"
}

Voir aussi

  • ReflectionGenerator::getThis() - Récupère la valeur de $this du générateur
  • ReflectionGenerator::getTrace() - Récupère la trace du générateur exécutant


Récupère la valeur de $this du générateur

  • « ReflectionGenerator::getFunction
  • ReflectionGenerator::getTrace »
  • PHP Manual
  • ReflectionGenerator
  • Récupère la valeur de $this du générateur

ReflectionGenerator::getThis

(PHP 7, PHP 8)

ReflectionGenerator::getThis — Récupère la valeur de $this du générateur

Description

public ReflectionGenerator::getThis(): ?object

Récupère la valeur de $this du générateur auquel il a accès.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la valeur de $this, ou null si le générateur n'a pas été crée dans un contexte de classe.

Exemples

Exemple #1 Exemple avec ReflectionGenerator::getThis()

<?php

class GenExample
{
public function gen()
{
yield 1;
}
}

$gen = (new GenExample)->gen();

$reflectionGen = new ReflectionGenerator($gen);

var_dump($reflectionGen->getThis());

Résultat de l'exemple ci-dessus est similaire à :

object(GenExample)#3 (0) {
}

Voir aussi

  • ReflectionGenerator::getFunction() - Récupère le nom de fonction du générateur
  • ReflectionGenerator::getTrace() - Récupère la trace du générateur exécutant


Récupère la trace du générateur exécutant

  • « ReflectionGenerator::getThis
  • ReflectionFiber »
  • PHP Manual
  • ReflectionGenerator
  • Récupère la trace du générateur exécutant

ReflectionGenerator::getTrace

(PHP 7, PHP 8)

ReflectionGenerator::getTrace — Récupère la trace du générateur exécutant

Description

public ReflectionGenerator::getTrace(int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT): array

Récupère la trace du générateur actuellement exécuté.

Liste de paramètres

options

La valeur d'options peut être n'importe laquelle des drapeaux suivant.

Options disponible
Option | Description
DEBUG_BACKTRACE_PROVIDE_OBJECT | Par défaut.
DEBUG_BACKTRACE_IGNORE_ARGS | N'inclue pas les informations des arguments pour les fonctions dans la trace d'appels.

Valeurs de retour

Retourne la trace du générateur actuellement exécuté.

Exemples

Exemple #1 Exemple avec ReflectionGenerator::getTrace()

<?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());

Résultat de l'exemple ci-dessus est 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() - Récupère le nom de fonction du générateur
  • ReflectionGenerator::getThis() - Récupère la valeur de $this du générateur


The ReflectionFiber class

(PHP 8 >= 8.1.0)

Introduction

Synopsis de la classe

final class ReflectionFiber {
/* Méthodes */
public __construct(Fiber $fiber)
public getCallable(): callable
public getExecutingFile(): ?string
public getExecutingLine(): ?int
public getFiber(): Fiber
public getTrace(int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT): array
}

Sommaire

  • ReflectionFiber::__construct — Constructs a ReflectionFiber object
  • ReflectionFiber::getCallable — Gets the callable used to create the Fiber
  • ReflectionFiber::getExecutingFile — Get the file name of the current execution point
  • ReflectionFiber::getExecutingLine — Get the line number of the current execution point
  • ReflectionFiber::getFiber — Get the reflected Fiber instance
  • ReflectionFiber::getTrace — Get the backtrace of the current execution point


Constructs a ReflectionFiber object

  • « ReflectionFiber
  • ReflectionFiber::getCallable »
  • PHP Manual
  • ReflectionFiber
  • Constructs a ReflectionFiber object

ReflectionFiber::__construct

(PHP 8 >= 8.1.0)

ReflectionFiber::__construct — Constructs a ReflectionFiber object

Description

public ReflectionFiber::__construct(Fiber $fiber)

Constructs a ReflectionFiber object.

Liste de paramètres

fiber

The Fiber to reflect.


Gets the callable used to create the Fiber

  • « ReflectionFiber::__construct
  • ReflectionFiber::getExecutingFile »
  • PHP Manual
  • ReflectionFiber
  • Gets the callable used to create the Fiber

ReflectionFiber::getCallable

(PHP 8 >= 8.1.0)

ReflectionFiber::getCallable — Gets the callable used to create the Fiber

Description

public ReflectionFiber::getCallable(): callable

Returns the callable used to construct the Fiber. If the fiber has terminated, an Error is thrown.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The callable used to create the Fiber.


Get the file name of the current execution point

  • « ReflectionFiber::getCallable
  • ReflectionFiber::getExecutingLine »
  • PHP Manual
  • ReflectionFiber
  • Get the file name of the current execution point

ReflectionFiber::getExecutingFile

(PHP 8 >= 8.1.0)

ReflectionFiber::getExecutingFile — Get the file name of the current execution point

Description

public ReflectionFiber::getExecutingFile(): ?string

Returns the full path and file name of the current execution point in the reflected Fiber. If the fiber has not been started or has terminated, an Error is thrown.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The full path and file name of the reflected fiber. If the reflected fiber is used outside a user-defined function, null is returned.


Get the line number of the current execution point

  • « ReflectionFiber::getExecutingFile
  • ReflectionFiber::getFiber »
  • PHP Manual
  • ReflectionFiber
  • Get the line number of the current execution point

ReflectionFiber::getExecutingLine

(PHP 8 >= 8.1.0)

ReflectionFiber::getExecutingLine — Get the line number of the current execution point

Description

public ReflectionFiber::getExecutingLine(): ?int

Returns the line number of the current execution point in the reflected Fiber. If the reflected fiber is used outside a user-defined function, null is returned. If the fiber has not been started or has terminated, an Error is thrown.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The line number of the current execution point in the fiber.


Get the reflected Fiber instance

  • « ReflectionFiber::getExecutingLine
  • ReflectionFiber::getTrace »
  • PHP Manual
  • ReflectionFiber
  • Get the reflected Fiber instance

ReflectionFiber::getFiber

(PHP 8 >= 8.1.0)

ReflectionFiber::getFiber — Get the reflected Fiber instance

Description

public ReflectionFiber::getFiber(): Fiber

Returns the Fiber instance being reflected.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The Fiber instance being reflected.


Get the backtrace of the current execution point

  • « ReflectionFiber::getFiber
  • ReflectionIntersectionType »
  • PHP Manual
  • ReflectionFiber
  • Get the backtrace of the current execution point

ReflectionFiber::getTrace

(PHP 8 >= 8.1.0)

ReflectionFiber::getTrace — Get the backtrace of the current execution point

Description

public ReflectionFiber::getTrace(int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT): array

Get the backtrace of the current execution point in the reflected Fiber.

Liste de paramètres

options

The value of options can be any of 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

The backtrace of the current execution point in the fiber.


The ReflectionIntersectionType class

(PHP 8 >= 8.1.0)

Introduction

Synopsis de la classe

class ReflectionIntersectionType extends ReflectionType {
/* Méthodes */
public getTypes(): array
/* Méthodes héritées */
public ReflectionType::allowsNull(): bool
public ReflectionType::__toString(): string
}

Sommaire

  • ReflectionIntersectionType::getTypes — Returns the types included in the intersection type


Returns the types included in the intersection type

  • « ReflectionIntersectionType
  • ReflectionReference »
  • PHP Manual
  • ReflectionIntersectionType
  • Returns the types included in the intersection type

ReflectionIntersectionType::getTypes

(PHP 8 >= 8.1.0)

ReflectionIntersectionType::getTypes — Returns the types included in the intersection type

Description

public ReflectionIntersectionType::getTypes(): array

Returns the reflections of types included in the intersection type.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

An array of ReflectionType objects.

Exemples

Exemple #1 ReflectionIntersectionType::getTypes() example

<?php

function someFunction(Iterator&Countable $value) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParam = $reflectionFunc->getParameters()[0];

var_dump($reflectionParam->getType()->getTypes());
?>

Résultat de l'exemple ci-dessus est similaire à :

array(2) {
    [0] =>
    class ReflectionNamedType#4(0) {
    }
    [1] =>
    class ReflectionNamedType#5(0) {
    }
}

Voir aussi

  • ReflectionType::allowsNull() - Vérifie si null est permit
  • ReflectionParameter::getType() - Récupère le type du paramètre


La classe ReflectionReference

(PHP 7 >= 7.4.0, PHP 8)

Introduction

La classe ReflectionReference apporte des informations à propos d'une référence.

Synopsis de la classe

final class ReflectionReference {
/* Méthodes */
private __construct()
public static fromArrayElement(array $array, int|string $key): ?ReflectionReference
public getId(): string
}

Sommaire

  • ReflectionReference::__construct — Private constructor to disallow direct instantiation
  • ReflectionReference::fromArrayElement — Create a ReflectionReference from an array element
  • ReflectionReference::getId — Get unique ID of a reference


Private constructor to disallow direct instantiation

  • « ReflectionReference
  • ReflectionReference::fromArrayElement »
  • PHP Manual
  • ReflectionReference
  • Private constructor to disallow direct instantiation

ReflectionReference::__construct

(No version information available, might only be in Git)

ReflectionReference::__construct — Private constructor to disallow direct instantiation

Description

private ReflectionReference::__construct()

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Create a ReflectionReference from an array element

  • « ReflectionReference::__construct
  • ReflectionReference::getId »
  • PHP Manual
  • ReflectionReference
  • Create a ReflectionReference from an array element

ReflectionReference::fromArrayElement

(PHP 7 >= 7.4.0, PHP 8)

ReflectionReference::fromArrayElement — Create a ReflectionReference from an array element

Description

public static ReflectionReference::fromArrayElement(array $array, int|string $key): ?ReflectionReference

Creates a ReflectionReference from an array element.

Liste de paramètres

array

The tableau which contains the potential reference.

key

The key; either an entier or a chaîne de caractères.

Valeurs de retour

Returns a ReflectionReference instance if $array[$key] is a reference, or null otherwise.

Erreurs / Exceptions

If array is not an tableau, or key is not an entier or chaîne de caractères, a TypeError is thrown. If $array[$key] does not exist, a ReflectionException is thrown.


Get unique ID of a reference

  • « ReflectionReference::fromArrayElement
  • ReflectionAttribute »
  • PHP Manual
  • ReflectionReference
  • Get unique ID of a reference

ReflectionReference::getId

(PHP 7 >= 7.4.0, PHP 8)

ReflectionReference::getId — Get unique ID of a reference

Description

public ReflectionReference::getId(): string

Returns an ID which is unique for the reference for the lifetime of that reference. This ID can be used to compare references for equality, or to maintain a map of known references.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns a chaîne de caractères of unspecified format.

Exemples

Exemple #1 Basic ReflectionReference::getId() usage

<?php
$val1 = 'foo';
$val2 = 'bar';
$arr = [&$val1, &$val2, &$val1];

$rr1 = ReflectionReference::fromArrayElement($arr, 0);
$rr2 = ReflectionReference::fromArrayElement($arr, 1);
$rr3 = ReflectionReference::fromArrayElement($arr, 2);

var_dump($rr1->getId() === $rr2->getId());
var_dump($rr1->getId() === $rr3->getId());
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)


La classe ReflectionAttribute

(PHP 8)

Introduction

La classe ReflectionAttribute apporte des informations sur un Attribut.

Synopsis de la classe

class ReflectionAttribute implements Reflector {
/* Constantes */
public const int IS_INSTANCEOF;
/* Méthodes */
private __construct()
public getArguments(): array
public getName(): string
public getTarget(): int
public isRepeated(): bool
public newInstance(): object
}

Constantes pré-définies

Drapeaux ReflectionAttribute

ReflectionAttribute::IS_INSTANCEOF

Renvoie les attributs avec une vérification instanceof.

Note:

Les valeurs de ces constantes peuvent changer entre les versions de PHP. Il est recommandé d'utiliser toujours les constantes et de ne pas se fier aux valeurs directement.

Sommaire

  • ReflectionAttribute::__construct — Constructeur privé pour la désactivation de l'instanciation
  • ReflectionAttribute::getArguments — Retourne les arguments passés à l'attribut
  • ReflectionAttribute::getName — Retourne le nom de l'attribut
  • ReflectionAttribute::getTarget — Retourne la cible de l'attribut en tant que masque de bits
  • ReflectionAttribute::isRepeated — Retourne si l'attribut de ce nom à été répété sur des éléments de code
  • ReflectionAttribute::newInstance — Instancie la classe de l'attribut representée par cette classe ReflectionAttribute et ses arguments


Constructeur privé pour la désactivation de l'instanciation

  • « ReflectionAttribute
  • ReflectionAttribute::getArguments »
  • PHP Manual
  • ReflectionAttribute
  • Constructeur privé pour la désactivation de l'instanciation

ReflectionAttribute::__construct

(PHP 8)

ReflectionAttribute::__construct — Constructeur privé pour la désactivation de l'instanciation

Description

private ReflectionAttribute::__construct()

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Retourne les arguments passés à l'attribut

  • « ReflectionAttribute::__construct
  • ReflectionAttribute::getName »
  • PHP Manual
  • ReflectionAttribute
  • Retourne les arguments passés à l'attribut

ReflectionAttribute::getArguments

(PHP 8)

ReflectionAttribute::getArguments — Retourne les arguments passés à l'attribut

Description

public ReflectionAttribute::getArguments(): array

Retourne les arguments passés à l'attribut.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Les arguments passés à l'attribut.


Retourne le nom de l'attribut

  • « ReflectionAttribute::getArguments
  • ReflectionAttribute::getTarget »
  • PHP Manual
  • ReflectionAttribute
  • Retourne le nom de l'attribut

ReflectionAttribute::getName

(PHP 8)

ReflectionAttribute::getName — Retourne le nom de l'attribut

Description

public ReflectionAttribute::getName(): string

Retourne le nom de l'attribut.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nom de l'attribut.


Retourne la cible de l'attribut en tant que masque de bits

  • « ReflectionAttribute::getName
  • ReflectionAttribute::isRepeated »
  • PHP Manual
  • ReflectionAttribute
  • Retourne la cible de l'attribut en tant que masque de bits

ReflectionAttribute::getTarget

(PHP 8)

ReflectionAttribute::getTarget — Retourne la cible de l'attribut en tant que masque de bits

Description

public ReflectionAttribute::getTarget(): int

Retourne la cible de l'attribut en tant que masque de bits.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne la cible de l'attribut en tant que masque de bits.


Retourne si l'attribut de ce nom à été répété sur des éléments de code

  • « ReflectionAttribute::getTarget
  • ReflectionAttribute::newInstance »
  • PHP Manual
  • ReflectionAttribute
  • Retourne si l'attribut de ce nom à été répété sur des éléments de code

ReflectionAttribute::isRepeated

(PHP 8)

ReflectionAttribute::isRepeated — Retourne si l'attribut de ce nom à été répété sur des éléments de code

Description

public ReflectionAttribute::isRepeated(): bool

Retourne si l'attribut de ce nom à été répété sur des éléments de code.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true lorsque l'attribut est répété, sinon false.


Instancie la classe de l'attribut representée par cette classe ReflectionAttribute et ses arguments

  • « ReflectionAttribute::isRepeated
  • Reflector »
  • PHP Manual
  • ReflectionAttribute
  • Instancie la classe de l'attribut representée par cette classe ReflectionAttribute et ses arguments

ReflectionAttribute::newInstance

(PHP 8)

ReflectionAttribute::newInstance — Instancie la classe de l'attribut representée par cette classe ReflectionAttribute et ses arguments

Description

public ReflectionAttribute::newInstance(): object

Instancie la classe de l'attribut representée par cette classe ReflectionAttribute et ses arguments

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

La nouvelle instance de l'attribut.


L'interface Reflector

(PHP 5, PHP 7, PHP 8)

Introduction

Reflector est une interface implémentée par toutes les classes exportables Reflection.

Sommaire de l'Interface

interface Reflector extends Stringable {
/* Méthodes héritées */
public Stringable::__toString(): string
}

Historique

Version | Description
8.0.0 | Reflector::export() a été supprimé.
8.0.0 | Reflector étend désormais Stringable. Elle hérite Stringable::__toString(), remplaçant Reflector::__toString().

Voir aussi

  • Reflector::export()

Sommaire

  • Reflector::export — Exporte


Exporte

  • « Reflector
  • ReflectionException »
  • PHP Manual
  • Reflector
  • Exporte

Reflector::export

(PHP 5, PHP 7)

Reflector::export — Exporte

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 7.4.0, et a été SUPPRIMÉE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

public static Reflector::export(): string

Exporte.

Avertissement

Cette fonction est actuellement non documentée ; 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()


La classe ReflectionException

(PHP 5, PHP 7, PHP 8)

Introduction

La classe ReflectionException.

Synopsis de la classe

class ReflectionException extends Exception {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private 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 de la structure interne d'une zval pour affichage
    • doubleval — Alias de floatval
    • empty — Détermine si une variable est vide
    • floatval — Convertit une chaîne en nombre à virgule flottante
    • get_debug_type — Gets the type name of a variable in a way that is suitable for debugging
    • get_defined_vars — Liste toutes les variables définies
    • get_resource_id — Retourne un entier identifiant une ressource
    • get_resource_type — Retourne le type de ressource
    • gettype — Retourne le type de la variable
    • 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 une valeur peut être appelé comme une fonction dans la portée courante.
    • is_countable — Vérifie si le contenu de la variable est une valeur dénombrable
    • 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_iterable — Détermine si le contenu de la variable est itérable.
    • is_long — Alias de is_int
    • is_null — Indique si une variable vaut null
    • is_numeric — Détermine si une variable est un nombre ou une chaîne 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éclarée 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 sérialisé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 | INI_ALL |
unserialize_max_depth | "4096" | INI_ALL | Disponible à partir de PHP 7.4.0.
Pour plus de détails sur les modes 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'autochargement de classes.

unserialize_max_depth int

La profondeur maximale des structures autorisée pendant la désérialisation lors de l'utilisation de unserialize(), et est destinée à empêcher les débordements de pile. Ceci peut être désactivé en définissant unserialize_max_depth=0.

Voir aussi unserialize() et l'autochargement 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 de la structure interne d'une zval pour affichage
  • doubleval — Alias de floatval
  • empty — Détermine si une variable est vide
  • floatval — Convertit une chaîne en nombre à virgule flottante
  • get_debug_type — Gets the type name of a variable in a way that is suitable for debugging
  • get_defined_vars — Liste toutes les variables définies
  • get_resource_id — Retourne un entier identifiant une ressource
  • get_resource_type — Retourne le type de ressource
  • gettype — Retourne le type de la variable
  • 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 une valeur peut être appelé comme une fonction dans la portée courante.
  • is_countable — Vérifie si le contenu de la variable est une valeur dénombrable
  • 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_iterable — Détermine si le contenu de la variable est itérable.
  • is_long — Alias de is_int
  • is_null — Indique si une variable vaut null
  • is_numeric — Détermine si une variable est un nombre ou une chaîne 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éclarée 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 sérialisé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, PHP 8)

boolval — Récupère la valeur booléenne d'une variable

Description

boolval(mixed $value): bool

Retourne la valeur booléen de la variable fournie dans le paramètre value.

Liste de paramètres

value

La valeur scalaire qui sera convertie en booléen.

Valeurs de retour

La valeur booléen du paramètre value.

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 de la structure interne d'une zval pour affichage

  • « boolval
  • doubleval »
  • PHP Manual
  • Fonctions de gestion des variables
  • Extrait une représentation sous forme de chaîne de la structure interne d'une zval pour affichage

debug_zval_dump

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

debug_zval_dump — Extrait une représentation sous forme de chaîne de la structure interne d'une zval pour affichage

Description

debug_zval_dump(mixed $value, mixed ...$values): void

Extrait une représentation sous forme de chaîne de caractère d'un structure interne d'une zval (Zend value) pour affichage. Ceci est généralement utile pour comprendre ou déboguer les détails d'implémentation du moteur Zend ou d'extensions PHP.

Liste de paramètres

value

La variable où valeur à extraire.

values

Variables ou valeurs supplémentaire à extraire.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec debug_zval_dump()

<?php
$var1 = 'Hello';
$var1 .= ' World';
$var2 = $var1;

debug_zval_dump($var1);
?>

L'exemple ci-dessus va afficher :

string(11) "Hello World" refcount(3)

Note: Comprendre le refcount

La valeur refcount affiché par cette fonction peut être surprenant sans une compréhension détaillé de l'implémentation du moteur.

Le moteur Zend utilise le comptage de référence pour deux raisons différentes :

  • Optimiser l'usage de mémoire en utilisant une technique appelé "copy on write", où plusieurs variables tenant la même valeur pointe à la même copie en mémoire. Quand une de ces variables est modifié, elle pointe à une nouvelle copie en mémoire, et le comptage de référence de l'originale est réduit de 1.
  • Le pistage des variables qui ont été assigné ou passé par référence (voir Références Expliquer). Ce refcount est stocker dans un zval de référence séparé, pointant à la zval pour la valeur actuelle. Cette zval additionnelle n'est actuellement pas montré par debug_zval_dump().

Car debug_zval_dump() prend son entrée comme un paramètre normal, passé par valeur, la technique de copy on write sera utilisé pour la passé: au lieu de copier les données, le refcount sera incrémenté de 1 pour la durée de vie de l'appel de la fonction. Si la fonction modifie le paramètre après l'avoir reçu, alors une copie sera fait ; comme elle n'en fait pas, elle affichera un refcount de 1 plus élevé que dans la portée d'appel.

Le passage de paramètre empêche aussi debug_zval_dump() de montrer les variables qui ont été assigné par référence. Pour illustrer ceci, considérons une version légèrement modifié de l'exemple ci-dessus : showing variables which have been assigned by reference. To illustrate, consider a slightly modified version of the above example:

<?php
$var1 = 'Hello';
$var1 .= ' World';
// Point three variables as references to the same value
$var2 =& $var1;
$var3 =& $var1;

debug_zval_dump($var1);
?>

L'exemple ci-dessus va afficher :

string(11) "Hello World" refcount(2)

Bien que $var1, $var2, et $var3 sont lié en tant que référence, seul la valeur est passé à debug_zval_dump(). Cette valeur est utilisé une seul fois par le jeu de références, et une fois à l'intérieur de debug_zval_dump(), ainsi il affiche un refcount de 2.

Des complications supplémentaire émergent à cause des optimisations effectué par le moteur pour différent types de données. Certains types tel que les entiers n'utilise pas "copy on write", et donc n'affiche aucun refcount. Dans d'autre cas, le refcount montre d'autres copies utilisé en interne, tel que quand une chaîne littérale ou tableau est stocké comme une partie d'une instruction de code

Voir aussi

  • var_dump() - Affiche les informations d'une variable
  • debug_backtrace() - Génère le contexte de débogage
  • 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, PHP 8)

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, PHP 8)

empty — Détermine si une variable est vide

Description

empty(mixed $var): bool

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.

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 true si var n'existe pas ou a une valeur vide ou égale à zéro, c.à.d. qu'elle est considérée "false", voir conversion en booléen. Sinon retourne false.

Exemples

Exemple #1 Une comparaison simple empty() / isset().

<?php
$var = 0;

// Évaluée à vrai car $var est vide
if (empty($var)) {
echo '$var vaut soit 0, vide, ou pas définie du tout';
}

// Évaluée à vrai car $var est définie
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
$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']));
?>

L'exemple ci-dessus va afficher :

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 ou arguments nommés.

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éclarée 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 dans un objet Countable
  • strlen() - Calcule la taille d'une chaîne
  • Les tables de comparaison des types


Convertit une chaîne en nombre à virgule flottante

  • « empty
  • get_debug_type »
  • 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, PHP 8)

floatval — Convertit une chaîne en nombre à virgule flottante

Description

floatval(mixed $value): float

floatval() retourne la valeur de type float (nombre à virgule flottante), extraite à partir du paramètre value.

Liste de paramètres

value

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_WARNING 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 du caractère le plus à gauche de la chaîne. Les règles classiques de transtypage d'un nombre à virgule flottante sont appliquées.

Historique

Version | Description
8.0.0 | Le niveau d'erreur lors de la conversion d'un objet a été modifié de E_NOTICE à E_WARNING.

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


Gets the type name of a variable in a way that is suitable for debugging

  • « floatval
  • get_defined_vars »
  • PHP Manual
  • Fonctions de gestion des variables
  • Gets the type name of a variable in a way that is suitable for debugging

get_debug_type

(PHP 8)

get_debug_type — Gets the type name of a variable in a way that is suitable for debugging

Description

get_debug_type(mixed $value): string

Returns the resolved name of the PHP variable value. This function will resolve objects to their class name, resources to their resource type name, and scalar values to their common name as would be used in type declarations.

This function differs from gettype() in that it returns type names that are more consistent with actual usage, rather than those present for historical reasons.

Liste de paramètres

value

The variable being type checked.

Valeurs de retour

Possible values for the returned string are:

Type + State | Return Value | Notes
null | "null" | -
Booleans (true or false) | "bool" | -
Integers | "int" | -
Floats | "float" | -
Strings | "string" | -
Arrays | "array" | -
Resources | "resource (resourcename)" | -
Resources (Closed) | "resource (closed)" | Example: A file stream after being closed with fclose.
Objects from Named Classes | The full name of the class including its namespace e.g. Foo\Bar | -
Objects from Anonymous Classes | "class@anonymous" | Anonymous classes are those created through the $x = new class { ... } syntax

Exemples

Exemple #1 get_debug_type() example

<?php
echo get_debug_type(null) . PHP_EOL;
echo get_debug_type(true) . PHP_EOL;
echo get_debug_type(1) . PHP_EOL;
echo get_debug_type(0.1) . PHP_EOL;
echo get_debug_type("foo") . PHP_EOL;
echo get_debug_type([]) . PHP_EOL;

$fp = fopen(__FILE__, 'rb');
echo get_debug_type($fp) . PHP_EOL;

fclose($fp);
echo get_debug_type($fp) . PHP_EOL;

echo get_debug_type(new stdClass) . PHP_EOL;
echo get_debug_type(new class {}) . PHP_EOL;
?>

Résultat de l'exemple ci-dessus est similaire à :

null
bool
int
float
string
array
resource (stream)
resource (closed)
stdClass
class@anonymous

Voir aussi

  • gettype() - Retourne le type de la variable
  • get_class() - Retourne le nom de la classe d'un objet


Liste toutes les variables définies

  • « get_debug_type
  • get_resource_id »
  • 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, PHP 8)

get_defined_vars — Liste toutes les variables définies

Description

get_defined_vars(): array

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().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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éclarée 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 un entier identifiant une ressource

  • « get_defined_vars
  • get_resource_type »
  • PHP Manual
  • Fonctions de gestion des variables
  • Retourne un entier identifiant une ressource

get_resource_id

(PHP 8)

get_resource_id — Retourne un entier identifiant une ressource

Description

get_resource_id(resource $resource): int

Cette fonction fournit un moyen sûr pour générer un entier identifiant une ressource.

Liste de paramètres

resource

Le gestionnaire de la ressource à identifier.

Valeurs de retour

L'int identifiant la resource passée en paramètre.

Cette fonction est une conversion de type de resource vers un int pour faciliter la récupération de l'ID d'une ressource.

Exemples

Exemple #1 get_resource_id() produit le même résultat qu'un cast int

<?php

$handle = fopen("php://stdout", "w");

echo (int) $handle . "\n";

echo get_resource_id($handle);

?>

Résultat de l'exemple ci-dessus est similaire à :

698
698

Voir aussi

  • get_resource_type() - Retourne le type de ressource


Retourne le type de ressource

  • « get_resource_id
  • 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, PHP 8)

get_resource_type — Retourne le type de ressource

Description

get_resource_type(resource $resource): string

Cette fonction retourne le type de la ressource donnée.

Liste de paramètres

resource

Le gestionnaire de ressources à évaluer.

Valeurs de retour

Si le paramètre resource 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 null et générera une erreur si resource n'est pas une ressource.

Exemples

Exemple #1 Exemple avec get_resource_type()

<?php

$fp = fopen("foo", "w");
echo get_resource_type($fp) . "\n";

// À partir de PHP 8.0.0, ce qui suit ne fonctionne plus. La fonction curl_init returne maintenant un objet CurlHandle.
$c = curl_init();
echo get_resource_type($c) . "\n";
?>

Résultat de l'exemple ci-dessus en PHP 7 :

stream
curl

Voir aussi

  • get_resource_id() - Retourne un entier identifiant une ressource


Retourne le type de la variable

  • « get_resource_type
  • intval »
  • PHP Manual
  • Fonctions de gestion des variables
  • Retourne le type de la variable

gettype

(PHP 4, PHP 5, PHP 7, PHP 8)

gettype — Retourne le type de la variable

Description

gettype(mixed $value): string

Retourne le type de la variable value. Pour vérifier le type de la variable, vous pouvez utiliser les fonctions is_*.

Liste de paramètres

value

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, et non "float"")
  • "string"
  • "array"
  • "object"
  • "resource"
  • "resource (closed)" à partir de PHP 7.2.0
  • "NULL"
  • "unknown type"

Historique

Version | Description
7.2.0 | Les ressources fermées sont maintenant rapportées en tant que 'resource (closed)'. Précédemment la valeur retournée pour des ressources fermées était '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";
}

?>

Résultat de l'exemple ci-dessus est similaire à :

integer
double
NULL
object
string

Voir aussi

  • get_debug_type() - Gets the type name of a variable in a way that is suitable for debugging
  • 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 une valeur peut être appelé comme une fonction dans la portée courante.
  • 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 nombre ou une chaîne 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


Retourne la valeur numérique entière équivalente d'une variable

  • « gettype
  • 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, PHP 8)

intval — Retourne la valeur numérique entière équivalente d'une variable

Description

intval(mixed $value, int $base = 10): int

Retourne la valeur entier de value en utilisant la base fourni pour la conversion (par défaut en base 10). intval() ne devrait pas être utilisée sur des objets, dans ces cas, une erreur de niveau E_WARNING sera émise et la fonction retournera 1.

Liste de paramètres

value

La valeur scalaire à être convertie en entier

base

La base pour la conversion

Note:

Si base vaut 0, la base utilisée est déterminée par le format du paramètre value :

  • si la chaîne inclue un préfixe "0x" (ou "0X"), la base prise sera 16 (hex) ; sinon,
  • si la chaîne commence par "0b" (ou "0B"), la base prise sera 2 (binaire); 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 value 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.

Historique

Version | Description
8.0.0 | Le niveau d'erreur lors de la conversion à partir d'un objet a été modifié de E_NOTICE à E_WARNING.

Exemples

Exemple #1 Exemples avec intval()

Les exemples suivants sont basés sur un système à 64 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); // 10000000000
echo intval('1e10'); // 10000000000
echo intval(0x1A); // 26
echo intval('0x1A'); // 0
echo intval('0x1A', 0); // 26
echo intval(42000000); // 42000000
echo intval(420000000000000000000); // -4275113695319687168
echo intval('420000000000000000000'); // 9223372036854775807
echo intval(42, 8); // 42
echo intval('42', 8); // 34
echo intval(array()); // 0
echo intval(array('foo', 'bar')); // 1
echo intval(false); // 0
echo intval(true); // 1
?>

Notes

Note:

Le paramètre base n'a aucun effet à moins que le paramètre value soit une chaîne de caractères.

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 nombre ou une chaîne 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, PHP 8)

is_array — Détermine si une variable est un tableau

Description

is_array(mixed $value): bool

is_array() détermine si la variable donnée est un tableau.

Liste de paramètres

value

La variable à évaluer.

Valeurs de retour

Retourne true si value 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

  • array_is_list() - Vérifie si un array donné est une liste
  • 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, PHP 8)

is_bool — Détermine si une variable est un booléen

Description

is_bool(mixed $value): bool

is_bool() détermine si la variable donnée est un booléen.

Liste de paramètres

value

La variable à évaluer.

Valeurs de retour

Retourne true si value 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 une valeur peut être appelé comme une fonction dans la portée courante.

  • « is_bool
  • is_countable »
  • PHP Manual
  • Fonctions de gestion des variables
  • Détermine si une valeur peut être appelé comme une fonction dans la portée courante.

is_callable

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

is_callable — Détermine si une valeur peut être appelé comme une fonction dans la portée courante.

Description

is_callable(mixed $value, bool $syntax_only = false, string &$callable_name = null): bool

Vérifie qu'une variable est un callable.

Liste de paramètres

value

La valeur à vérifier.

syntax_only

Si l'argument syntax_only vaut true, la fonction ne va vérifier que si value 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 value 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

is_callable() rapporte les constructeurs comme n'étant pas 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)

  • Un object est tout le temps appelable s'il implémente __invoke(), et que la méthode est visible dans le portée courante.
  • Un nom de classe est appelable si elle implémente __callStatic()
  • Si un object implémente __call(), alors cette fonction retournera true pour n'importe quelle méthode sur cet object, même si la méthode n'est pas définie.
  • Cette fonction peut déclancher l'autochargement si appelé avec le nom d'une classe.

Voir aussi

  • function_exists() - Indique si une fonction est définie
  • method_exists() - Vérifie si la méthode existe pour une classe


Vérifie si le contenu de la variable est une valeur dénombrable

  • « is_callable
  • is_double »
  • PHP Manual
  • Fonctions de gestion des variables
  • Vérifie si le contenu de la variable est une valeur dénombrable

is_countable

(PHP 7 >= 7.3.0, PHP 8)

is_countable — Vérifie si le contenu de la variable est une valeur dénombrable

Description

is_countable(mixed $value): bool

Vérifie si le contenue de la variable est un tableau array ou un object qui implémente Countable

Liste de paramètres

value

La variable à vérifier

Valeurs de retour

Retourne true si value est dénombrable, false sinon.

Historique

Version | Description
7.3.0 | is_countable() a été ajouté.

Exemples

Exemple #1 Exemples avec is_countable()

<?php
var_dump(is_countable([1, 2, 3])); // bool(true)
var_dump(is_countable(new ArrayIterator(['foo', 'bar', 'baz']))); // bool(true)
var_dump(is_countable(new ArrayIterator())); // bool(true)
var_dump(is_countable(new stdClass())); // bool(false)

Voir aussi

  • is_array() - Détermine si une variable est un tableau
  • is_object() - Détermine si une variable est de type objet
  • is_iterable() - Détermine si le contenu de la variable est itérable.
  • is_bool() - Détermine si une variable est un booléen


Alias de is_float

  • « is_countable
  • is_float »
  • PHP Manual
  • Fonctions de gestion des variables
  • Alias de is_float

is_double

(PHP 4, PHP 5, PHP 7, PHP 8)

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, PHP 8)

is_float — Détermine si une variable est de type nombre décimal

Description

is_float(mixed $value): bool

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

value

La variable à évaluer.

Valeurs de retour

Retourne true si value est un nombre décimal, false sinon.

Exemples

Exemple #1 Exemple avec is_float()

<?php

var_dump(is_float(27.25));
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 :

bool(true)
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 nombre ou une chaîne 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, PHP 8)

is_int — Détermine si une variable est de type nombre entier

Description

is_int(mixed $value): bool

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

value

La variable à évaluer.

Valeurs de retour

Retourne true si value 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 nombre ou une chaîne 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_iterable »
  • PHP Manual
  • Fonctions de gestion des variables
  • Alias de is_int

is_integer

(PHP 4, PHP 5, PHP 7, PHP 8)

is_integer — Alias de is_int()

Description

Cette fonction est un alias de : is_int().


Détermine si le contenu de la variable est itérable.

  • « is_integer
  • is_long »
  • PHP Manual
  • Fonctions de gestion des variables
  • Détermine si le contenu de la variable est itérable.

is_iterable

(PHP 7 >= 7.1.0, PHP 8)

is_iterable — Détermine si le contenu de la variable est itérable.

Description

is_iterable(mixed $value): bool

Vérifie que le contenu de la variable est accepté par le pseudo-type iterable, c'est-à-dire qu'il s'agit soit d'un array ou un objet qui implémente l'interface Traversable

Liste de paramètres

value

La valeur à vérifier

Valeurs de retour

Retourne true si value est itérable, false sinon.

Exemples

Exemple #1 Exemples avec is_iterable()

<?php

var_dump(is_iterable([1, 2, 3])); // bool(true)
var_dump(is_iterable(new ArrayIterator([1, 2, 3]))); // bool(true)
var_dump(is_iterable((function () { yield 1; })())); // bool(true)
var_dump(is_iterable(1)); // bool(false)
var_dump(is_iterable(new stdClass())); // bool(false)

?>

Voir aussi

  • is_array() - Détermine si une variable est un tableau


Alias de is_int

  • « is_iterable
  • is_null »
  • PHP Manual
  • Fonctions de gestion des variables
  • Alias de is_int

is_long

(PHP 4, PHP 5, PHP 7, PHP 8)

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, PHP 8)

is_null — Indique si une variable vaut null

Description

is_null(mixed $value): bool

Indique si la variable donnée vaut null.

Liste de paramètres

value

La variable à évaluer.

Valeurs de retour

Retourne true si value 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éclarée 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 nombre ou une chaîne 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 nombre ou une chaîne numérique

  • « is_null
  • is_object »
  • PHP Manual
  • Fonctions de gestion des variables
  • Détermine si une variable est un nombre ou une chaîne numérique

is_numeric

(PHP 4, PHP 5, PHP 7, PHP 8)

is_numeric — Détermine si une variable est un nombre ou une chaîne numérique

Description

is_numeric(mixed $value): bool

Détermine si la variable donnée est un nombre ou une chaîne numérique.

Liste de paramètres

value

La variable à évaluer.

Valeurs de retour

Retourne true si value est un nombre ou une chaîne numérique, false sinon.

Historique

Version | Description
8.0.0 | Les chaînes numériques terminant avec des caractères d'espacement blanc ("42 ") retourneront désormais true. Auparavant, false était retourné à la place.

Exemples

Exemple #1 Exemple avec is_numeric()

<?php
$tests = array(
"42",
1337,
0x539,
02471,
0b10100111001,
1337e0,
"0x539",
"02471",
"0b10100111001",
"1337e0",
"not numeric",
array(),
9.1,
null,
'',
);

foreach ($tests as $element) {
if (is_numeric($element)) {
echo var_export($element, true) . " est numérique", PHP_EOL;
} else {
echo var_export($element, true) . " N'est PAS numérique", PHP_EOL;
}
}
?>

L'exemple ci-dessus va afficher :

'42' est numérique
1337 est numérique
1337 est numérique
1337 est numérique
1337 est numérique
1337.0 est numérique
'0x539' N'est PAS numérique
'02471' est numérique
'0b10100111001' N'est PAS numérique
'1337e0' est numérique
'not numeric' N'est PAS numérique
array (
) N'est PAS numérique
9.1 est numérique
NULL N'est PAS numérique
'' N'est PAS numérique

Exemple #2 is_numeric() avec des caractères d'espacement blanc

<?php
$tests = [
" 42",
"42 ",
"\u{A0}9001", // non-breaking space
"9001\u{A0}", // non-breaking space
];

foreach ($tests as $element) {
if (is_numeric($element)) {
echo var_export($element, true) . " is numeric", PHP_EOL;
} else {
echo var_export($element, true) . " is NOT numeric", PHP_EOL;
}
}
?>

Résultat de l'exemple ci-dessus en PHP 8 :

' 42' is numeric
'42 ' is numeric
' 9001' is NOT numeric
'9001 ' is NOT numeric

Résultat de l'exemple ci-dessus en PHP 7 :

' 42' is numeric
'42 ' is NOT numeric
' 9001' is NOT numeric
'9001 ' is NOT numeric

Voir aussi

  • Les chaînes numérique
  • 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
  • filter_var() - Filtre une variable avec un filtre spécifique


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, PHP 8)

is_object — Détermine si une variable est de type objet

Description

is_object(mixed $value): bool

Détermine si la variable donnée est de type objet.

Liste de paramètres

value

La variable à évaluer.

Valeurs de retour

Retourne true si value est un objet, false sinon.

Historique

Version | Description
7.2.0 | is_object() retourne maintenant true pour un objet désérialise sans une définition de classe (classe de __PHP_Incomplete_Class). Précédement false était retourné.

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));;
?>

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, PHP 8)

is_real — Alias de is_float()

Description

Cette fonction est un alias de : is_float().

Avertissement

Cet alias est OBSOLÈTE en PHP 7.4.0, et SUPPRIMÉ à partir de PHP 8.0.0.


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, PHP 8)

is_resource — Détermine si une variable est une ressource

Description

is_resource(mixed $value): bool

Détermine si une variable est une ressource.

Liste de paramètres

value

La variable à évaluer.

Valeurs de retour

Retourne true si value est une ressource, false autrement.

Exemples

Exemple #1 Exemple avec is_resource()

<?php

$handle = fopen("php://stdout", "w");
if (is_resource($handle)) {
echo '$handle est une ressource';
}
?>

L'exemple ci-dessus va afficher :

$handle est une ressource

Notes

Note:

La fonction is_resource() n'est pas une méthode de vérification stricte de type : elle va retourner false si le paramètre value 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, PHP 8)

is_scalar — Indique si une variable est un scalaire

Description

is_scalar(mixed $value): bool

Indique si la variable donnée est un scalaire.

Les variables scalaires sont celles qui contiennent un entier, un nombre décimal, une chaîne de caractères ou un booléen. Les types array, object, resource et null 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

value

La variable à évaluer.

Valeurs de retour

Retourne true si value 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 nombre ou une chaîne 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, PHP 8)

is_string — Détermine si une variable est de type chaîne de caractères

Description

is_string(mixed $value): bool

Détermine si la variable donnée est de type chaîne de caractères.

Liste de paramètres

value

La variable à évaluer.

Valeurs de retour

Retourne true si value 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éclarée et est différente de null

  • « is_string
  • print_r »
  • PHP Manual
  • Fonctions de gestion des variables
  • Détermine si une variable est déclarée et est différente de null

isset

(PHP 4, PHP 5, PHP 7, PHP 8)

isset — Détermine si une variable est déclarée et est différente de null

Description

isset(mixed $var, mixed ...$vars): bool

Détermine si une variable est considérée définie, ceci signifie qu'elle est déclarée et est différente de null.

Si une variable a été détruite avec la fonction unset(), elle n'est plus considéré comme définie.

isset() renverra false lors de la vérification d'une variable de valeur null. Il est à noter que aussi que le caractère nul ("\0") n'est pas équivalent à la constante PHP null.

Si plusieurs paramètres sont fournis, alors isset() retournera true seulement si tous les paramètres sont définis. L'évaluation s'effectue de gauche à droite et s'arrête dès qu'une variable non définie est rencontrée.

Liste de paramètres

var

La variable à analyser.

vars

Variables supplémentaires.

Valeurs de retour

Retourne true si var existe et a une valeur autre que null. false sinon.

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
$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']));
?>

L'exemple ci-dessus va afficher :

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 ou arguments nommés.

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 si une constante avec le nom donné existe
  • 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, PHP 8)

print_r — Affiche des informations lisibles pour une variable

Description

print_r(mixed $value, bool $return = false): string|bool

print_r() affiche des informations à propos d'une variable, de manière à ce qu'elle soit lisible.

print_r(), var_dump() et var_export() affiche également les propriétés protégées et privées d'un objet. Les membres des classes statiques ne seront pas affichés.

Liste de paramètres

value

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.

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
?>

Notes

Note:

Lorsque le paramètre return est utilisé, cette fonction utilisait la mise en tampon (buffer) interne de sortie antérieur à PHP 7.1.0, et donc ne peut pas être utilisé dans la fonction de rappel de ob_start().

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, PHP 8)

serialize — Génère une représentation stockable d'une valeur

Description

serialize(mixed $value): string

Retourne un tableau en chaine de caractères.

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 sérialisée et retrouver une valeur PHP, utilisez unserialize().

Liste de paramètres

value

La valeur à sérialiser. serialize() accepte tous les types sauf les ressources ressource et certains objets (voir note ci-dessous). Vous pouvez même sérialiser 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 sérialisation d'un objet, PHP tentera d'appeler les fonctions
membres __serialize() ou
__sleep() avant de sérialiser.
Cela permet à l'objet de faire un dernier nettoyage, etc.
avant d'être sérialisé. De même, lorsque l'objet est restauré en
utilisant unserialize(), la fonction membre
__unserialize() ou
__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 de caractères contenant une représentation sous forme de flux d'octets qui peut être stocker partout.

Il est à noter que c'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 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, array_reverse($sqldata))) {
/* Un problème est survenu ! */
}
}
?>

Notes

Note:

Il est à noter que de nombreux objets internes de PHP ne peuvent pas être sérialisés. Cependant, ceux qui le peuvent implémentent soit l'interface Serializable soit les méthodes magiques __serialize()/__unserialize() ou __sleep()/__wakeup(). Si une classe interne ne remplit aucune de ces conditions, elle ne peut pas être sérialisée de manière fiable.

Il existe des exceptions historiques à cette règle, où des objets internes peuvent être sérialisés alors qu'ils n'implémentent pas l'interface ou n'exposent pas les méthodes magiques prévues à cet effet.

Avertissement

Lorsque la fonction serialize() sérialise des objets, l'antislash 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 sérialisée
  • var_export() - Retourne le code PHP utilisé pour générer une variable
  • json_encode() - Retourne la représentation JSON d'une valeur
  • Serializing Objects
  • __sleep()
  • __wakeup()
  • __serialize()
  • __unserialize()


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, PHP 8)

settype — Affecte un type à une variable

Description

settype(mixed &$var, string $type): bool

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 "bool"
  • "integer" ou "int"
  • "float" ou "double"
  • "string"
  • "array"
  • "object"
  • "null"

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, PHP 8)

strval — Récupère la valeur d'une variable, au format chaîne

Description

strval(mixed $value): string

Récupère la valeur de la variable value, 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

value

La variable à convertir en chaîne de caractères.

value peut être un scalaire, null, 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 value sous la forme d'une chaîne de caractères.

Exemples

Exemple #1 Exemple pour strval() utilisant la méthode magique PHP __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 sérialisée

  • « strval
  • unset »
  • PHP Manual
  • Fonctions de gestion des variables
  • Crée une variable PHP à partir d'une valeur sérialisée

unserialize

(PHP 4, PHP 5, PHP 7, PHP 8)

unserialize — Crée une variable PHP à partir d'une valeur sérialisée

Description

unserialize(string $data, array $options = []): mixed

unserialize() prend une variable sérialisée (voir serialize()) et la convertit en variable PHP.

Avertissement

Ne passez pas d'entrée utilisateur non fiable à la fonction unserialize() quelle que soit la valeur de allowed_classes dans options. La désérialisation peut résulter en une exécution de code chargé et exécuté lors de l'instanciation et l'autochargement 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 sérialisées à l'utilisateur.

Si vous avez besoin de désérialiser des données sérialisées enregistré à l'extérieur, considérez l'utilisation de 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

data

La chaîne sérialisée.

Si la variable désérialisée est un objet, après avoir réussi à le reconstruire, PHP tentera automatiquement d'appeller les méthodes __unserialize() ou __wakeup (si l'une d'elles existent).

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ésérialisation (ce qui évitera de recevoir un object "__PHP_Incomplete_Class"). Utilisez votre php.ini ou le fichier .htaccess pour définir 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 simplement la chaîne de caractère 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.
max_depth | int | La profondeur maximale autorisée des structures lors de la désérialisation, qui est destinée à empêcher les débordements de pile. La limite de profondeur par défaut est de 4096 et peut être désactivée en définissant max_depth à 0.

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ésérialisée, cette fonction retourne false et une erreur E_WARNING est émise.

Erreurs / Exceptions

Les objets peuvent lancer Throwables dans leur gestionnaire de désérialisation.

Historique

Version | Description
8.3.0 | Émet désormais un E_WARNING lorsque la chaîne fournie n'est pas désérialisable ; précédemment, un E_NOTICE était émis.
7.4.0 | Ajout de l'élément max_depth aux options pour définir la profondeur maximale autorisée des structures lors de la désérialisation.
7.1.0 | L'élément allowed_classes de options) est maintenant strictement typé, c'est à dire si quelque chose autre qu'un tableau array ou un bool est donné unserialize() retourne false et émet une E_WARNING.

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";}';

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ésérialiser une valeur sérialisée égale à false. Il est possible d'intercepter ce cas spécial en comparant data 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
  • Autoloading Classes
  • unserialize_callback_func
  • unserialize_max_depth
  • __wakeup()
  • __serialize()
  • __unserialize()


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, PHP 8)

unset — Détruit une variable

Description

unset(mixed $var, mixed ...$vars): void

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.

vars

Variables supplémentaires.

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. Le transtypage (unset) est obsolète à partir de PHP 7.2.0 et supprimé à partir de 8.0.0.

<?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 ou arguments nommés.

Note:

Il est possible de détruire n'importe quelle propriété visible dans le contexte courant.

Si déclaré, __get() est appelé lors de l'accès à une propriété non définie, et __set() est appelé lors de la définition d'une propriété non définie.

Note:

Il n'est pas possible de détruire la variable spéciale $this à l'intérieur d'une méthode d'un objet.

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éclarée et est différente de null
  • __unset()
  • empty() - Détermine si une variable est vide
  • array_splice() - Efface et remplace une portion de tableau
  • (unset) casting


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, PHP 8)

var_dump — Affiche les informations d'une variable

Description

var_dump(mixed $value, mixed ...$values): void

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().

Astuce

Comme pour toutes les fonctions qui affichent directement des résultats au navigateur, les fonctions de gestion des sorties peuvent être utilisées pour capturer la sortie de cette fonction et l'enregistrer dans une chaîne de caractères (par exemple).

Liste de paramètres

value

L'expression afficher.

values

Expression supplémentaire à 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 de la structure interne d'une zval 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, PHP 8)

var_export — Retourne le code PHP utilisé pour générer une variable

Description

var_export(mixed $value, bool $return = false): ?string

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

value

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.

Historique

Version | Description
8.2.0 | Les noms de classe exportés sont désormais pleinement qualifiés. Auparavant, l'antislash principal était omis.
7.3.0 | Exporte désormais les objets stdClass en tant qu'un tableau transtyper vers un objet ((object) array( ... )), au lieu d'utiliser la méthode non existante stdClass::__setState(). L'effet pratique est que désormais stdClass est exportable, et que le code résultant fonctionnera même sur des versions antérieure de PHP.

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 stdClass (à partir de PHP 7.3.0)

<?php
$person = new stdClass;
$person->name = 'ElePHPant ElePHPantsdotter';
$person->website = 'https://php.net/elephpant.php';

var_export($person);

L'exemple ci-dessus va afficher :

(object) array(
   'name' => 'ElePHPant ElePHPantsdotter',
   'website' => 'https://php.net/elephpant.php',
)

Exemple #3 Exporter des classes

<?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 #4 Utilisation de __set_state

<?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

Antérieur à PHP 8.2.0, lorsque var_export() exporte des objets, l'antislash 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. La seule exception est stdClass; qui est exportée en utilisant un cast d'un tableau à un objet.

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
  • 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 : » https://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 (string)
Méthode de signature OAuth RSA-SHA1.
OAUTH_SIG_METHOD_HMACSHA1 (string)

Méthode de signature OAuth HMAC-SHA1.

OAUTH_SIG_METHOD_HMACSHA256 (string)
Méthode de signature OAuth HMAC-SHA256.
OAUTH_AUTH_TYPE_AUTHORIZATION (string)

Cette constante représente l'entête Authorization.

OAUTH_AUTH_TYPE_NONE (string)

Cette constante indique une requête NoAuth OAuth.

OAUTH_AUTH_TYPE_URI (string)

Cette constante représente les paramètres OAuth dans l'URI de requête.

OAUTH_AUTH_TYPE_FORM (string)

Cette constante représente les paramètres OAuth comme une partie du corps HTTP POST.

OAUTH_HTTP_METHOD_GET (string)

Utilise la méthode GET pour la requête OAuth.

OAUTH_HTTP_METHOD_POST (string)

Utilise la méthode POST pour la requête OAuth.

OAUTH_HTTP_METHOD_PUT (string)

Utilise la méthode PUT pour la requête OAuth.

OAUTH_HTTP_METHOD_HEAD (string)

Utilise la méthode HEAD pour la requête OAuth.

OAUTH_HTTP_METHOD_DELETE (string)
Utilise la méthode DELETE pour la requête OAuth.
OAUTH_REQENGINE_STREAMS (int)
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 (int)
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 (int)
La vie est belle.
OAUTH_BAD_NONCE (int)
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 (int)
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 (int)
oauth_consumer_key est temporairement innaceptable par le prestataire de service. Par exemple, le prestataire de service surcharge le consommateur.
OAUTH_CONSUMER_KEY_REFUSED (int)
La clé du consommateur a été refusée.
OAUTH_INVALID_SIGNATURE (int)
oauth_signature est invalide car elle ne correspond pas à la signature calculée par le prestataire de service.
OAUTH_TOKEN_USED (int)
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 (int)
oauth_token a expiré.
OAUTH_TOKEN_REVOKED (int)
oauth_token a été révoquée et ne pourra plus être acceptée.
OAUTH_TOKEN_REJECTED (int)
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 (int)
oauth_verifier est incorrect.
OAUTH_PARAMETER_ABSENT (int)
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 (int)
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

oauth_get_sbs(string $http_method, string $uri, array $request_parameters = ?): string

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

oauth_urlencode(string $uri): string

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

class 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 __destruct(): void
public disableDebug(): bool
public disableRedirects(): bool
public disableSSLChecks(): bool
public enableDebug(): bool
public enableRedirects(): bool
public enableSSLChecks(): bool
public fetch(
string $protected_resource_url,
array $extra_parameters = ?,
string $http_method = ?,
array $http_headers = ?
): mixed
public generateSignature(string $http_method, string $url, mixed $extra_parameters = ?): string|false
public getAccessToken(
string $access_token_url,
string $auth_session_handle = ?,
string $verifier_token = ?,
string $http_method = ?
): array
public getCAPath(): array
public getLastResponse(): string
public getLastResponseHeaders(): string|false
public getLastResponseInfo(): array
public getRequestHeader(string $http_method, string $url, mixed $extra_parameters = ?): string|false
public getRequestToken(string $request_token_url, string $callback_url = ?, string $http_method = ?): array
public setAuthType(int $auth_type): bool
public setCAPath(string $ca_path = ?, string $ca_info = ?): mixed
public setNonce(string $nonce): mixed
public setRequestEngine(int $reqengine): void
public setRSACertificate(string $cert): mixed
public setSSLChecks(int $sslcheck): bool
public setTimestamp(string $timestamp): mixed
public setToken(string $token, string $token_secret): bool
public setVersion(string $version): bool
}

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 OAuth::__destruct(): void

Le destructeur.

Avertissement

Cette fonction est actuellement non documentée ; 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 OAuth::disableDebug(): bool

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
PECL oauth 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 OAuth::disableRedirects(): bool

Désactive les redirections, permettant ainsi aux requêtes d'être redirigées manuellement.

Avertissement

Cette fonction est actuellement non documentée ; 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 OAuth::disableSSLChecks(): bool

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
PECL oauth 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 OAuth::enableDebug(): bool

Active 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
PECL oauth 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 OAuth::enableRedirects(): bool

Suit les redirections automatiquement ; c'est le comportement par défaut.

Avertissement

Cette fonction est actuellement non documentée ; 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 OAuth::enableSSLChecks(): bool

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
PECL oauth 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 OAuth::fetch(
string $protected_resource_url,
array $extra_parameters = ?,
string $http_method = ?,
array $http_headers = ?
): mixed

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
PECL oauth 1.0.0 | Avant cette version, null était retourné au lieu de false.
PECL oauth 0.99.5 | Ajout du paramètre http_method
PECL oauth 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 OAuth::generateSignature(string $http_method, string $url, mixed $extra_parameters = ?): string|false

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 OAuth::getAccessToken(
string $access_token_url,
string $auth_session_handle = ?,
string $verifier_token = ?,
string $http_method = ?
): array

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
PECL oauth 1.0.0 | Avant cette version, null était retourné au lieu de false.
PECL oauth 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";
}
?>

Résultat de l'exemple ci-dessus est 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 OAuth::getCAPath(): array

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 est actuellement non documentée ; 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 OAuth::getLastResponse(): string

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 OAuth::getLastResponseHeaders(): string|false

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 OAuth::getLastResponseInfo(): array

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 OAuth::getRequestHeader(string $http_method, string $url, mixed $extra_parameters = ?): string|false

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 OAuth::getRequestToken(string $request_token_url, string $callback_url = ?, string $http_method = ?): array

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
PECL oauth 1.0.0 | Avant cette version, null était retourné au lieu de false.
PECL oauth 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";
}
?>

Résultat de l'exemple ci-dessus est 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 OAuth::setAuthType(int $auth_type): bool

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
PECL oauth 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 OAuth::setCAPath(string $ca_path = ?, string $ca_info = ?): mixed

Définit le certificat d'autorité (CA), pour à la fois le chemin et les informations.

Avertissement

Cette fonction est actuellement non documentée ; 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
PECL oauth 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 OAuth::setNonce(string $nonce): mixed

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
PECL oauth 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 OAuth::setRequestEngine(int $reqengine): void

Définit le moteur de requête, utilisé pour envoyer les requêtes HTTP.

Avertissement

Cette fonction est actuellement non documentée ; 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 OAuth::setRSACertificate(string $cert): mixed

Définit le certificat RSA.

Avertissement

Cette fonction est actuellement non documentée ; 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
PECL oauth 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 OAuth::setSSLChecks(int $sslcheck): bool

Définit des vérifications spécifiques à SSL pour les requêtes.

Avertissement

Cette fonction est actuellement non documentée ; 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 OAuth::setTimestamp(string $timestamp): mixed

Définit le timestamp OAuth pour les prochaines requêtes.

Avertissement

Cette fonction est actuellement non documentée ; 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
PECL oauth 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 OAuth::setToken(string $token, string $token_secret): bool

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 OAuth::setVersion(string $version): bool

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

class OAuthProvider {
/* Méthodes */
final public addRequiredParameter(string $req_params): bool
public callconsumerHandler(): void
public callTimestampNonceHandler(): void
public calltokenHandler(): void
public checkOAuthRequest(string $uri = ?, string $method = ?): void
public __construct(array $params_array = ?)
public consumerHandler(callable $callback_function): void
final public static generateToken(int $size, bool $strong = false): string
public is2LeggedEndpoint(mixed $params_array): void
public isRequestTokenEndpoint(bool $will_issue_request_token): void
final public removeRequiredParameter(string $req_params): bool
final public static reportProblem(string $oauthexception, bool $send_headers = true): string
final public setParam(string $param_key, mixed $param_val = ?): bool
final public setRequestTokenPath(string $path): bool
public timestampNonceHandler(callable $callback_function): void
public tokenHandler(callable $callback_function): void
}

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 OAuthProvider::addRequiredParameter(string $req_params): bool

Ajoute des paramètres requis oauth provider.

Avertissement

Cette fonction est actuellement non documentée ; 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 OAuthProvider::callconsumerHandler(): void

Appelle la fonction de rappel consumer handler, qui a été définie par la méthode OAuthProvider::consumerHandler().

Avertissement

Cette fonction est actuellement non documentée ; 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 OAuthProvider::callTimestampNonceHandler(): void

Appelle la fonction de rappel timestamp handler, qui a été définie par la méthode OAuthProvider::timestampNonceHandler().

Avertissement

Cette fonction est actuellement non documentée ; 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 OAuthProvider::calltokenHandler(): void

Appelle la fonction de rappel token handler, qui a été définie par la méthode OAuthProvider::tokenHandler().

Avertissement

Cette fonction est actuellement non documentée ; 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 OAuthProvider::checkOAuthRequest(string $uri = ?, string $method = ?): void

Vérifie une requête OAuth.

Avertissement

Cette fonction est actuellement non documentée ; 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 est actuellement non documentée ; 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 OAuthProvider::consumerHandler(callable $callback_function): void

Définit la fonction de rappel consumer handler, qui pourra ensuite être appelée avec la méthode OAuthProvider::callConsumerHandler().

Avertissement

Cette fonction est actuellement non documentée ; 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 OAuthProvider::generateToken(int $size, bool $strong = false): string

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;

?>

Résultat de l'exemple ci-dessus est 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 OAuthProvider::is2LeggedEndpoint(mixed $params_array): void

Le flux 2-legged, ou la demande de signature. Il ne requière pas de jeton.

Avertissement

Cette fonction est actuellement non documentée ; 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 OAuthProvider::isRequestTokenEndpoint(bool $will_issue_request_token): void

Avertissement

Cette fonction est actuellement non documentée ; 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 OAuthProvider::removeRequiredParameter(string $req_params): bool

Supprime un paramètre.

Avertissement

Cette fonction est actuellement non documentée ; 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 OAuthProvider::reportProblem(string $oauthexception, bool $send_headers = true): string

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 est actuellement non documentée ; 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 OAuthProvider::setParam(string $param_key, mixed $param_val = ?): bool

Définit un paramètre.

Avertissement

Cette fonction est actuellement non documentée ; 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 OAuthProvider::setRequestTokenPath(string $path): bool

Définit le chemin du jeton demandé.

Avertissement

Cette fonction est actuellement non documentée ; 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 OAuthProvider::timestampNonceHandler(callable $callback_function): void

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 est actuellement non documentée ; 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 OAuthProvider::tokenHandler(callable $callback_function): void

Définit le gestionnaire de rappel tokenHandler, qui sera appelé plus tard avec la méthode OAuthProvider::callTokenHandler().

Avertissement

Cette fonction est actuellement non documentée ; 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

class OAuthException extends Exception {
/* Propriétés */
public $lastResponse;
public $debugInfo;
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Propriétés

lastResponse

La réponse à l'exception survenue, s'il y en a

debugInfo


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::__getCookies — Get list of cookies
    • 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 un cookie pour les requêtes 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
  • 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
  • SoapFault — La classe SoapFault
    • SoapFault::__construct — Constructeur SoapFault
    • SoapFault::__toString — Produit une représentation chaîne d'un objet SoapFault
  • SoapHeader — La classe SoapHeader
    • SoapHeader::__construct — Constructeur SoapHeader
  • SoapParam — La classe SoapParam
    • SoapParam::__construct — Constructeur SoapParam
  • SoapVar — La classe SoapVar
    • SoapVar::__construct — 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 passer l'option de configuration --with-libxml, ou antérieur à PHP 7.4 l'option de configuration --enable-libxml, bien que ceci est accomplie implicitement car libxml est activé 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 | INI_ALL |
soap.wsdl_cache_dir | /tmp | INI_ALL |
soap.wsdl_cache_ttl | 86400 | INI_ALL |
soap.wsdl_cache | 1 | INI_ALL |
soap.wsdl_cache_limit | 5 | INI_ALL |

Voici un éclaircissement sur l'utilisation des directives de configuration.

soap.wsdl_cache_enabled int

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 int

Configure la durée de vie des fichiers dans le cache, exprimé en secondes.

soap.wsdl_cache int

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 int

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 (int) | 1 | Spécifie l'utilisation de SOAP 1.1 lorsqu'elle est passée en tant qu'option soap_version à SoapServer::__construct() ou SoapClient::__construct().
SOAP_1_2 (int) | 2 | Spécifie l'utilisation de SOAP 1.2 lorsqu'il est passé en tant qu'option soap_version à SoapServer::__construct() ou SoapClient::__construct().
SOAP_PERSISTENCE_SESSION (int) | 1 | Spécifie l'utilisation de l'encodage SOAP lorsqu'elle est passée en tant qu'option use à la méthode SoapClient::__construct().
SOAP_PERSISTENCE_REQUEST (int) | 2 | Spécifie l'utilisation d'un encodage spécifique au service lorsqu'elle est passée en tant qu'option use à SoapClient::__construct().
SOAP_FUNCTIONS_ALL (int) | 999 |
SOAP_ENCODED (int) | 1 | Spécifie l'utilisation d'une liaison de style RPC lorsqu'elle est passée en tant qu'option style à SoapClient::__construct().
SOAP_LITERAL (int) | 2 | Spécifie l'utilisation d'une liaison de type document lorsque passée en tant que valeur style de l'option à SoapClient::__construct().
SOAP_RPC (int) | 1 |
SOAP_DOCUMENT (int) | 2 |
SOAP_ACTOR_NEXT (int) | 1 |
SOAP_ACTOR_NONE (int) | 2 |
SOAP_ACTOR_UNLIMATERECEIVER (int) | 3 |
SOAP_COMPRESSION_ACCEPT (int) | 32 | Spécifie l'utilisation de l'en-tête "Accept-Encoding" lorsqu'elle est passée en tant que partie de l'option compression à SoapClient::__construct().
SOAP_COMPRESSION_GZIP (int) | 0 | Spécifie l'utilisation de la compression deflate lorsqu'elle est transmise dans le cadre de l'option compression de la méthode SoapClient::__construct().
SOAP_COMPRESSION_DEFLATE (int) | 16 | Spécifie l'utilisation de la compression deflate lorsqu'elle est transmise dans le cadre de l'option compression de la méthode SoapClient::__construct().
SOAP_AUTHENTICATION_BASIC (int) | 0 | Spécifie l'utilisation de l'authentification HTTP Basic lorsqu'elle est passée en tant qu'option authentication à SoapClient::__construct().
SOAP_AUTHENTICATION_DIGEST (int) | 1 | Spécifie l'utilisation de l'authentification HTTP Digest lorsqu'elle est passée en tant qu'option authentication à SoapClient::__construct().
SOAP_SSL_METHOD_TLS (int) | 0 | Utilisée avec l'option obsolète ssl_method de SoapClient::__construct().
SOAP_SSL_METHOD_SSLv2 (int) | 1 | Utilisée avec l'option ssl_method obsolète dans la méthode SoapClient::__construct().
SOAP_SSL_METHOD_SSLv3 (int) | 2 | Utilisée avec l'option obsolète ssl_method pour SoapClient::__construct().
SOAP_SSL_METHOD_SSLv23 (int) | 3 | Utilisée avec l'option obsolète ssl_method pour SoapClient::__construct().
UNKNOWN_TYPE (int) | 999998 |
XSD_STRING (int) | 101 |
XSD_BOOLEAN (int) | 102 |
XSD_DECIMAL (int) | 103 |
XSD_FLOAT (int) | 104 |
XSD_DOUBLE (int) | 105 |
XSD_DURATION (int) | 106 |
XSD_DATETIME (int) | 107 |
XSD_TIME (int) | 108 |
XSD_DATE (int) | 109 |
XSD_GYEARMONTH (int) | 110 |
XSD_GYEAR (int) | 111 |
XSD_GMONTHDAY (int) | 112 |
XSD_GDAY (int) | 113 |
XSD_GMONTH (int) | 114 |
XSD_HEXBINARY (int) | 115 |
XSD_BASE64BINARY (int) | 116 |
XSD_ANYURI (int) | 117 |
XSD_QNAME (int) | 118 |
XSD_NOTATION (int) | 119 |
XSD_NORMALIZEDSTRING (int) | 120 |
XSD_TOKEN (int) | 121 |
XSD_LANGUAGE (int) | 122 |
XSD_NMTOKEN (int) | 123 |
XSD_NAME (int) | 124 |
XSD_NCNAME (int) | 125 |
XSD_ID (int) | 126 |
XSD_IDREF (int) | 127 |
XSD_IDREFS (int) | 128 |
XSD_ENTITY (int) | 129 |
XSD_ENTITIES (int) | 130 |
XSD_INTEGER (int) | 131 |
XSD_NONPOSITIVEINTEGER (int) | 132 |
XSD_NEGATIVEINTEGER (int) | 133 |
XSD_LONG (int) | 134 |
XSD_INT (int) | 135 |
XSD_SHORT (int) | 136 |
XSD_BYTE (int) | 137 |
XSD_NONNEGATIVEINTEGER (int) | 138 |
XSD_UNSIGNEDLONG (int) | 139 |
XSD_UNSIGNEDINT (int) | 140 |
XSD_UNSIGNEDSHORT (int) | 141 |
XSD_UNSIGNEDBYTE (int) | 142 |
XSD_POSITIVEINTEGER (int) | 143 |
XSD_NMTOKENS (int) | 144 |
XSD_ANYTYPE (int) | 145 |
XSD_ANYXML (int) | 147 |
APACHE_MAP (int) | 200 |
SOAP_ENC_OBJECT (int) | 301 |
SOAP_ENC_ARRAY (int) | 300 |
XSD_1999_TIMEINSTANT (int) | 401 |
XSD_NAMESPACE (string) | http://www.w3.org/2001/XMLSchema |
XSD_1999_NAMESPACE (string) | http://www.w3.org/1999/XMLSchema |
SOAP_SINGLE_ELEMENT_ARRAYS (int) | 1 | Utilisée avec l'option features dans la méthode SoapClient::__construct().
SOAP_WAIT_ONE_WAY_CALLS (int) | 2 | Utilisée avec l'option features dans la méthode SoapClient::__construct().
SOAP_USE_XSI_ARRAY_TYPE (int) | 4 | Utilisée avec l'option features dans la méthode SoapClient::__construct().
WSDL_CACHE_NONE (int) | 0 | Désactive le cache WSDL lorsqu'il est utilisé dans l'option de configuration soap.wsdl_cache ou dans l'option wsdl_cache de SoapClient::__construct() et SoapServer::__construct().
WSDL_CACHE_DISK (int) | 1 | Indique l'utilisation du cache WSDL en mémoire uniquement lorsqu'il est utilisé dans l'option de configuration soap.wsdl_cache ou l'option wsdl_cache de SoapClient::__construct() et SoapServer::__construct().
WSDL_CACHE_MEMORY (int) | 2 | Spécifie l'utilisation du cache WSDL en mémoire vive uniquement lorsqu'il est utilisé dans l'option de configuration soap.wsdl_cache ou l'option wsdl_cache de SoapClient::__construct() et SoapServer::__construct().
WSDL_CACHE_BOTH (int) | 3 | Spécifie l'utilisation des caches WSDL en mémoire et sur disque lorsqu'elle est utilisée dans l'option de configuration soap.wsdl_cache ou l'option wsdl_cache de SoapClient::__construct() et SoapServer::__construct().


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

(PHP 5, PHP 7, PHP 8)

is_soap_fault — Vérifie si SOAP retourne une erreur

Description

is_soap_fault(mixed $object): bool

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::__construct() - Constructeur SoapClient
  • SoapFault::__construct() - Constructeur SoapFault


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

(PHP 5, PHP 7, PHP 8)

use_soap_error_handler — Active le gestionnaire d'erreurs SOAP natif

Description

use_soap_error_handler(bool $enable = true): bool

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

enable

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, PHP 7, PHP 8)

Introduction

La classe SoapClient fournit un client pour les serveurs » SOAP 1.1 et » SOAP 1.2. Il peut être utilisé avec ou sans mode WSDL.

Synopsis de la classe

class SoapClient {
/* Propriétés */
private ?string $uri = null;
private ?int $style = null;
private ?int $use = null;
private ?string $location = null;
private bool $trace = false;
private ?int $compression = null;
private ?resource $sdl = null;
private ?resource $typemap = null;
private ?resource $httpsocket = null;
private ?resource $httpurl = null;
private ?string $_login = null;
private ?string $_password = null;
private bool $_use_digest = false;
private ?string $_digest = null;
private ?string $_proxy_host = null;
private ?int $_proxy_port = null;
private ?string $_proxy_login = null;
private ?string $_proxy_password = null;
private bool $_exceptions = true;
private ?string $_encoding = null;
private ?array $_classmap = null;
private ?int $_features = null;
private int $_connection_timeout;
private ?resource $_stream_context = null;
private ?string $_user_agent = null;
private bool $_keep_alive = true;
private ?int $_ssl_method = null;
private int $_soap_version;
private ?int $_use_proxy = null;
private array $_cookies = [];
private ?array $__default_headers = null;
private ?SoapFault $__soap_fault = null;
private ?string $__last_request = null;
private ?string $__last_response = null;
private ?string $__last_request_headers = null;
private ?string $__last_response_headers = null;
/* Méthodes */
public __construct(?string $wsdl, array $options = [])
public __call(string $name, array $args): mixed
public __doRequest(
string $request,
string $location,
string $action,
int $version,
bool $oneWay = false
): ?string
public __getCookies(): array
public __getFunctions(): ?array
public __getLastRequest(): ?string
public __getLastRequestHeaders(): ?string
public __getLastResponse(): ?string
public __getLastResponseHeaders(): ?string
public __getTypes(): ?array
public __setCookie(string $name, ?string $value = null): void
public __setLocation(?string $location = null): ?string
public __setSoapHeaders(SoapHeader|array|null $headers = null): bool
public __soapCall(
string $name,
array $args,
?array $options = null,
SoapHeader|array|null $inputHeaders = null,
array &$outputHeaders = null
): mixed
}

Propriétés

__default_headers

__last_request

__last_request_headers

__last_response

__last_response_headers

__soap_fault

_classmap

_connection_timeout

_cookies

_digest

_encoding

_exceptions

_features

_keep_alive

_login

_password

_proxy_host

_proxy_login

_proxy_password

_proxy_port

_soap_version

_ssl_method

_stream_context

_use_digest

_use_proxy

_user_agent

compression

httpsocket

httpurl

location

sdl

style

trace

typemap

uri

use

Sommaire

  • SoapClient::__call — Appelle une fonction SOAP (obsolète)
  • SoapClient::__construct — Constructeur SoapClient
  • SoapClient::__doRequest — Exécute une requête SOAP
  • SoapClient::__getCookies — Get list of cookies
  • 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 un cookie pour les requêtes 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


Appelle une fonction SOAP (obsolète)

  • « SoapClient
  • SoapClient::__construct »
  • PHP Manual
  • SoapClient
  • Appelle une fonction SOAP (obsolète)

SoapClient::__call

(PHP 5, PHP 7, PHP 8)

SoapClient::__call — Appelle une fonction SOAP (obsolète)

Description

public SoapClient::__call(string $name, array $args): mixed

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().

Liste de paramètres

name

Le nom de la fonction SOAP à appeler.

args

Un tableau des arguments à passer à la fonction. Cela peut être soit un tableau ordonné, soit un tableau associatif. Notez que la plupart des serveurs SOAP exigent que les noms des paramètres soient fournis, auquel cas cela doit être un tableau associatif.

Valeurs de retour

Les fonctions SOAP peuvent renvoyer une ou plusieurs valeurs. Si seule une valeur est renvoyée par la fonction SOAP, la valeur de retour sera un scalaire. Si plusieurs valeurs sont renvoyées, un tableau associatif de paramètres de sortie nommés est renvoyé à la place.

En cas d'erreur, si l'objet SoapClient a été construit avec l'option exceptions définie sur false, un objet SoapFault sera renvoyé.


Constructeur SoapClient

  • « SoapClient::__call
  • SoapClient::__doRequest »
  • PHP Manual
  • SoapClient
  • Constructeur SoapClient

SoapClient::__construct

(PHP 5, PHP 7, PHP 8)

SoapClient::__construct — Constructeur SoapClient

Description

public SoapClient::__construct(?string $wsdl, array $options = [])

Crée un objet SoapClient pour se connecter à un service SOAP.

Liste de paramètres

wsdl

URI du fichier WSDL ou null s'il travaille en mode non-WSDL.

Note:

Par défaut, le fichier WSDL sera mis en cache pour des raisons de performance. Pour désactiver ou configurer cette mise en cache, consultez la section SOAP Options de configuration et l'option cache_wsdl

options

Un tableau associatif spécifiant des options supplémentaires pour le client SOAP. Si le paramètre wsdl est fourni, ceci est facultatif?; sinon, au moins les paramètres location et url doivent être fournis.

location string

L'URL du serveur SOAP auquel envoyer la requête.

Requis si le paramètre wsdl n'est pas fourni. Si à la fois un paramètre wsdl et l'option location sont fournis, l'option location remplacera toute location spécifiée dans le fichier WSDL.

uri string

L'espace de noms cible du service SOAP.

Requis si le paramètre wsdl n'est pas fourni; sinon ignoré.

style int

Spécifie le style de liaison à utiliser pour ce client, en utilisant les constantes SOAP_RPC et SOAP_DOCUMENT. SOAP_RPC indique une liaison de style RPC, où le corps de la requête SOAP contient un encodage standard d'un appel de fonction. SOAP_DOCUMENT indique une liaison de style document, où le corps de la requête SOAP contient un document XML avec une signification définie par le service.

Si le paramètre wsdl est fourni, cette option est ignorée et le style est lu à partir du fichier WSDL.

Si ni cette option ni le paramètre wsdl ne sont fournis, le style RPC est utilisé.

use int

Spécifie le style d'encodage à utiliser pour ce client, en utilisant les constantes SOAP_ENCODED ou SOAP_LITERAL. SOAP_ENCODED indique un encodage utilisant les types définis dans la spécification SOAP. SOAP_LITERAL indique un encodage utilisant un schéma défini.

Si le paramètre wsdl est fourni, cette option est ignorée et l'encodage est lu à partir du fichier WSDL.

Si cette option et le paramètre wsdl ne sont pas fournis, le style "encoded" est utilisé.

soap_version int

Spécifie la version du protocole SOAP à utiliser : SOAP_1_1 pour SOAP 1.1, ou SOAP_1_2 pour SOAP 1.2.

Si omis, SOAP 1.1 est utilisé.

authentication int

Spécifie la méthode d'authentification lors de l'utilisation de l'authentification HTTP dans les requêtes. La valeur peut être soit SOAP_AUTHENTICATION_BASIC ou SOAP_AUTHENTICATION_DIGEST.

Si omis et que l'option login est fournie, l'authentification HTTP Basic est utilisée.

login string

Nom d'utilisateur à utiliser avec l'authentification HTTP Basic ou HTTP Digest.

password string

Mot de passe à utiliser avec l'authentification HTTP Basic ou HTTP Digest.

À ne pas confondre avec passphrase, qui est utilisé avec l'authentification par certificat client HTTPS.

local_cert string

Chemin vers un certificat client à utiliser avec l'authentification HTTPS. Il doit s'agir d'un fichier encodé en PEM contenant votre certificat et votre clé privée.

Le fichier peut également inclure une chaîne d'émetteurs, qui doit venir après le certificat client.

Peut également être défini via stream_context, qui permet également de spécifier un fichier de clé privée distinct.

passphrase string

Passphrase pour le certificat client spécifié dans l'option local_cert.

À ne pas confondre avec password, qui est utilisé avec l'authentification HTTP Basic ou HTTP Digest.

Peut également être défini via stream_context.

proxy_host string

Nom d'hôte à utiliser comme serveur mandataire pour les requêtes HTTP.

L'option proxy_port doit également être spécifiée.

proxy_port int

Port TCP à utiliser lors de la connexion au serveur mandataire spécifié dans proxy_host.

proxy_login string

Nom d'utilisateur facultatif pour s'authentifier auprès du serveur mandataire spécifié dans proxy_host, en utilisant l'authentification HTTP Basic.

proxy_password string

Mot de passe facultatif pour s'authentifier auprès du serveur mandataire spécifié dans proxy_host, en utilisant l'authentification HTTP Basic.

compression int

Active la compression des requêtes et des réponses SOAP HTTP.

La valeur doit être le résultat de l'opération OR binaire de trois parties : un SOAP_COMPRESSION_ACCEPT optionnel, pour envoyer l'en-tête "Accept-Encoding" ; soit SOAP_COMPRESSION_GZIP ou SOAP_COMPRESSION_DEFLATE pour indiquer l'algorithme de compression à utiliser ; et un nombre entre 1 et 9 pour indiquer le niveau de compression à utiliser dans la requête. Par exemple, pour activer la compression gzip bidirectionnelle avec le niveau de compression maximal, utilisez SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | 9.

encoding string

Définit l'encodage de caractères interne. Les requêtes sont toujours envoyées en UTF-8 et converties depuis et vers cet encodage.

trace bool

Capture les informations de requête et de réponse, qui peuvent ensuite être
consultées à l'aide des méthodes
SoapClient::__getLastRequest(),
SoapClient::__getLastRequestHeaders(),
SoapClient::__getLastResponse(),
et SoapClient::__getLastResponseHeaders().

Si omis, la valeur par défaut est false

classmap array

Utilisé pour associer les types définis dans le WSDL aux classes PHP. Il doit être spécifié sous la forme d'un tableau associatif avec les noms de types du WSDL en tant que clés et les noms de classes PHP en tant que valeurs. Notez que les noms de types d'un élément ne correspondent pas nécessairement au nom de l'élément (balise).

Les noms de classe fournis doivent toujours être entièrement qualifiés avec tous les espaces de noms, et ne jamais commencer par un \. La forme correcte peut être générée en utilisant ::class.

Notez que lors de la création d'une classe, le constructeur ne sera pas appelé, mais les méthodes magiques __set() et __get() pour les propriétés individuelles le seront.

typemap array

Utilisé pour définir des correspondances de types à l'aide de fonctions de rappel définies par l'utilisateur. Chaque correspondance de type doit être un tableau avec les clés type_name (une chaîne de caractères spécifiant le type d'élément XML), type_ns (une chaîne de caractères contenant l'URI de l'espace de noms), from_xml (un appelable acceptant un paramètre de type chaîne de caractères et renvoyant un objet) et to_xml (un appelable acceptant un paramètre de type objet et renvoyant une chaîne de caractères).

exceptions bool

Définit si les erreurs génèrent des exceptions de type SoapFault.

Par défaut, c'est true

connection_timeout int

Définit un délai d'attente en secondes pour la connexion au service SOAP. Cette option ne définit pas un délai d'attente pour les services ayant une réponse lente. Pour limiter le temps d'attente des appels, l'option de configuration default_socket_timeout est disponible.

cache_wsdl int

Si le paramètre wsdl est spécifié et que l'option de configuration soap.wsdl_cache_enabled est activée, cette option détermine le type de mise en cache. L'une des constantes WSDL_CACHE_NONE, WSDL_CACHE_DISK, WSDL_CACHE_MEMORY ou WSDL_CACHE_BOTH.

Deux types de cache sont disponibles : le cache en mémoire, qui met en cache le WSDL dans la mémoire du processus en cours, et le cache sur disque, qui met en cache le WSDL dans un fichier sur le disque partagé entre tous les processus. Le répertoire à utiliser pour le cache sur disque est déterminé par l'option de configuration soap.wsdl_cache_dir. Les deux caches ont la même durée de vie, déterminée par l'option de configuration soap.wsdl_cache_ttl. Le cache en mémoire a également un nombre maximum d'entrées déterminé par l'option de configuration soap.wsdl_cache_limit.

Si non spécifié, l'option de configuration soap.wsdl_cache sera utilisée.

user_agent string

La valeur à utiliser dans l'en-tête HTTP User-Agent lors des requêtes.

Peut également être définie via stream_context.

Si non spécifié, l'agent utilisateur sera "PHP-SOAP/" suivi de la valeur de PHP_VERSION.

stream_context resource

Un contexte de flux créé par stream_context_create(), qui permet de définir des options supplémentaires.

Le contexte peut inclure des options de contexte socket, des options de contexte SSL, ainsi que certaines options de contexte HTTP sélectionnées : content_type, header, max_redirects, protocol_version, et user_agent.

Notez que les en-têtes HTTP suivants sont générés automatiquement ou à partir d'autres options, et seront ignorés s'ils sont spécifiés dans l'option de contexte 'header' : host, connection, user-agent, content-length, content-type, cookie, authorization et proxy-authorization.

features int

Un masque de bits pour activer une ou plusieurs des fonctionnalités suivantes :

SOAP_SINGLE_ELEMENT_ARRAYS

Lors du décodage d'une réponse en tableau, le comportement par défaut consiste à détecter si un nom d'élément apparaît une seule fois ou plusieurs fois dans un élément parent particulier. Pour les éléments qui n'apparaissent qu'une fois, une propriété d'objet permet un accès direct au contenu ; pour les éléments qui apparaissent plus d'une fois, la propriété contient un tableau avec le contenu de chaque élément correspondant.

Si la fonctionnalité SOAP_SINGLE_ELEMENT_ARRAYS est activée, les éléments qui n'apparaissent qu'une seule fois sont placés dans un tableau à un seul élément, de sorte que l'accès soit cohérent pour tous les éléments. Cela n'a d'effet que lors de l'utilisation d'un WSDL contenant un schéma pour la réponse. Consultez la section des examples pour une illustration.

SOAP_USE_XSI_ARRAY_TYPE

Lorsque l'option use option ou la propriété WSDL est définie sur encoded, force les tableaux à utiliser un type SOAP-ENC:Array, plutôt qu'un type spécifique au schéma.

SOAP_WAIT_ONE_WAY_CALLS

Attendre une réponse même si le WSDL indique une requête à sens unique.

keep_alive bool

une valeur booléenne définissant si envoyer l'en-tête Connection: Keep-Alive ou Connection: close.

Par défaut, c'est true

ssl_method string

Spécifie la version du protocole SSL ou TLS à utiliser avec les connexions HTTP sécurisées, au lieu de la négociation par défaut. Spécifier SOAP_SSL_METHOD_SSLv2 ou SOAP_SSL_METHOD_SSLv3 forcera l'utilisation de SSL 2 ou SSL 3, respectivement. Spécifier SOAP_SSL_METHOD_SSLv23 n'a aucun effet ; cette constante n'existe que pour des raisons de compatibilité ascendante. À partir de PHP 7.2, spécifier SOAP_SSL_METHOD_TLS n'a également aucun effet ; dans les versions antérieures, cela forçait l'utilisation de TLS 1.0.

Il est à noter que les versions SSL 2 et 3 sont considérées comme non sécurisées et peuvent ne pas être prises en charge par la bibliothèque OpenSSL installée.

Cette option est obsolète à partir de PHP 8.1.0. Une alternative plus flexible, qui permet de spécifier des versions individuelles de TLS, consiste à utiliser l'option contexte_de_flux avec le paramètre de contexte 'crypto_method'.

Exemple #1 Spécifier l'utilisation de TLS 1.3 uniquement

<?php
$context = stream_context_create([
'ssl' => [
'crypto_method' => STREAM_CRYPTO_METHOD_TLSv1_3_CLIENT
]
]);
$client = new SoapClient("some.wsdl", ['context' => $context]);

Erreurs / Exceptions

SoapClient::__construct() 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.

Exemples

Exemple #2 Example SoapClient::__construct()

<?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 | 9));

$client = new SoapClient("some.wsdl", array('encoding'=>'ISO-8859-1'));

class MyBook {
public $title;
public $author;
}

$client = new SoapClient("books.wsdl", array('classmap' => array('book' => "MyBook")));

$typemap = array(
array("type_ns" => "http://schemas.example.com",
"type_name" => "book",
"from_xml" => "unserialize_book",
"to_xml" => "serialize_book")
);
$client = new SoapClient("books.wsdl", array('typemap' => $typemap));

?>

Exemple #3 Utilisant la fonctionnalité SOAP_SINGLE_ELEMENT_ARRAYS

/* Assuming a response like this, and an appropriate WSDL:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns="urn:example">
<SOAP-ENV:Body>
<response>
<collection>
<item>Single</item>
</collection>
<collection>
<item>First</item>
<item>Second</item>
</collection>
</response>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
*/

echo "Default:\n";

$client = new TestSoapClient(__DIR__ . '/temp.wsdl');
$response = $client->exampleRequest();
var_dump( $response->collection[0]->item );
var_dump( $response->collection[1]->item );

echo "\nWith SOAP_SINGLE_ELEMENT_ARRAYS:\n";

$client = new TestSoapClient(__DIR__ . '/temp.wsdl', ['features' => SOAP_SINGLE_ELEMENT_ARRAYS]);
$response = $client->exampleRequest();
var_dump( $response->collection[0]->item );
var_dump( $response->collection[1]->item );

L'exemple ci-dessus va afficher :

Default:
string(6) "Single"
array(2) {
  [0] =>
  string(5) "First"
  [1] =>
  string(6) "Second"
}

With SOAP_SINGLE_ELEMENT_ARRAYS:
array(1) {
  [0] =>
  string(6) "Single"
}
array(2) {
  [0] =>
  string(5) "First"
  [1] =>
  string(6) "Second"
}


Exécute une requête SOAP

  • « SoapClient::__construct
  • SoapClient::__getCookies »
  • PHP Manual
  • SoapClient
  • Exécute une requête SOAP

SoapClient::__doRequest

(PHP 5, PHP 7, PHP 8)

SoapClient::__doRequest — Exécute une requête SOAP

Description

public SoapClient::__doRequest(
string $request,
string $location,
string $action,
int $version,
bool $oneWay = false
): ?string

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.

oneWay

Si oneWay prend la valeur de true, 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
8.0.0 | The type of oneWay is booléen now; formerly it was entier.

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));
?>


Get list of cookies

  • « SoapClient::__doRequest
  • SoapClient::__getFunctions »
  • PHP Manual
  • SoapClient
  • Get list of cookies

SoapClient::__getCookies

(PHP 5 >= 5.4.30, PHP 7, PHP 8)

SoapClient::__getCookies — Get list of cookies

Description

public SoapClient::__getCookies(): array

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Retourne une liste de fonctions SOAP publiées

  • « SoapClient::__getCookies
  • SoapClient::__getLastRequest »
  • PHP Manual
  • SoapClient
  • Retourne une liste de fonctions SOAP publiées

SoapClient::__getFunctions

(PHP 5, PHP 7, PHP 8)

SoapClient::__getFunctions — Retourne une liste de fonctions SOAP publiées

Description

public SoapClient::__getFunctions(): ?array

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::__construct() - 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, PHP 7, PHP 8)

SoapClient::__getLastRequest — Retourne la dernière requête SOAP

Description

public SoapClient::__getLastRequest(): ?string

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, PHP 7, PHP 8)

SoapClient::__getLastRequestHeaders — Retourne les en-têtes de la dernière requête SOAP

Description

public SoapClient::__getLastRequestHeaders(): ?string

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 SoapClient::__getLastRequestHeaders() example

<?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, PHP 7, PHP 8)

SoapClient::__getLastResponse — Retourne la dernière réponse SOAP

Description

public SoapClient::__getLastResponse(): ?string

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, PHP 7, PHP 8)

SoapClient::__getLastResponseHeaders — Retourne les en-têtes de la dernière réponse SOAP

Description

public SoapClient::__getLastResponseHeaders(): ?string

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, PHP 7, PHP 8)

SoapClient::__getTypes — Retourne une liste des types SOAP

Description

public SoapClient::__getTypes(): ?array

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::__construct() - Constructeur SoapClient


Définit un cookie pour les requêtes SOAP

  • « SoapClient::__getTypes
  • SoapClient::__setLocation »
  • PHP Manual
  • SoapClient
  • Définit un cookie pour les requêtes SOAP

SoapClient::__setCookie

(PHP 5 >= 5.0.4, PHP 7, PHP 8)

SoapClient::__setCookie — Définit un cookie pour les requêtes SOAP

Description

public SoapClient::__setCookie(string $name, ?string $value = null): void

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.

Historique

Version | Description
8.0.0 | value is now nullable.


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.4, PHP 7, PHP 8)

SoapClient::__setLocation — Configure l'URL du service Web à utiliser

Description

public SoapClient::__setLocation(?string $location = null): ?string

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

location

La nouvelle URL.

Valeurs de retour

L'ancienne URL.

Historique

Version | Description
8.0.3 | location est désormais nullable.

Exemples

Exemple #1 Exemple avec 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;

?>

Résultat de l'exemple ci-dessus est similaire à :

http://www.somethirdparty.com

Voir aussi

  • SoapClient::__construct() - 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, PHP 8)

SoapClient::__setSoapHeaders — Ajoute un en-tête SOAP pour les requêtes suivantes

Description

public SoapClient::__setSoapHeaders(SoapHeader|array|null $headers = null): bool

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

headers

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
  • SoapServer »
  • PHP Manual
  • SoapClient
  • Appelle une fonction SOAP

SoapClient::__soapCall

(PHP 5, PHP 7, PHP 8)

SoapClient::__soapCall — Appelle une fonction SOAP

Description

public SoapClient::__soapCall(
string $name,
array $args,
?array $options = null,
SoapHeader|array|null $inputHeaders = null,
array &$outputHeaders = null
): mixed

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

name

Le nom de la fonction SOAP à appeler.

args

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.

inputHeaders

Un tableau d'entêtes à envoyer avec la requête SOAP.

outputHeaders

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::__construct() - Constructeur SoapClient
  • SoapParam::__construct() - Constructeur SoapParam
  • SoapVar::__construct() - Constructeur SoapVar
  • SoapHeader::__construct() - Constructeur SoapHeader
  • SoapFault::__construct() - Constructeur SoapFault
  • is_soap_fault() - Vérifie si SOAP retourne une erreur


La classe SoapServer

(PHP 5, PHP 7, PHP 8)

Introduction

La classe SoapServer fournit un serveur pour les protocoles » SOAP 1.1 et » SOAP 1.2. Il peut être utilisé avec ou sans le service de description WSDL.

Synopsis de la classe

class SoapServer {
/* Propriétés */
private ?SoapFault $__soap_fault = null;
/* Méthodes */
public __construct(?string $wsdl, array $options = [])
public addFunction(array|string|int $functions): void
public addSoapHeader(SoapHeader $header): void
public fault(
string $code,
string $string,
string $actor = "",
mixed $details = null,
string $name = ""
): void
public getFunctions(): array
public handle(?string $request = null): void
public setClass(string $class, mixed ...$args): void
public setObject(object $object): void
public setPersistence(int $mode): void
}

Propriétés

service

__soap_fault

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


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, PHP 7, PHP 8)

SoapServer::addFunction — Ajoute une ou plusieurs fonctions qui vont gérer les requêtes SOAP

Description

public SoapServer::addFunction(array|string|int $functions): void

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::__construct() - 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.1.3, PHP 7, PHP 8)

SoapServer::addSoapHeader — Ajoute un en-tête SOAP à une réponse

Description

public SoapServer::addSoapHeader(SoapHeader $header): void

Ajoute un en-tête SOAP à la réponse courante.

Liste de paramètres

header

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, PHP 7, PHP 8)

SoapServer::__construct — Constructeur SoapServer

Description

public SoapServer::__construct(?string $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::__construct()

<?php
$server = new SoapServer("some.wsdl");

$server = new SoapServer("some.wsdl", array('soap_version' => SOAP_1_2));

$server = new SoapServer("some.wsdl", array('actor' => "http://example.org/ts-tests/C"));

$server = new SoapServer("some.wsdl", array('encoding'=>'ISO-8859-1'));

$server = new SoapServer(null, array('uri' => "http://test-uri/"));

class MyBook {
public $title;
public $author;
}

$server = new SoapServer("books.wsdl", array('classmap' => array('book' => "MyBook")));

?>

Voir aussi

  • SoapClient::__construct() - Constructeur SoapClient


Emet une erreur SoapServer

  • « SoapServer::__construct
  • SoapServer::getFunctions »
  • PHP Manual
  • SoapServer
  • Emet une erreur SoapServer

SoapServer::fault

(PHP 5, PHP 7, PHP 8)

SoapServer::fault — Emet une erreur SoapServer

Description

public SoapServer::fault(
string $code,
string $string,
string $actor = "",
mixed $details = null,
string $name = ""
): void

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::__construct() - Constructeur SoapFault


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, PHP 7, PHP 8)

SoapServer::getFunctions — Retourne la liste des fonctions définies

Description

public SoapServer::getFunctions(): array

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::__construct() - 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, PHP 7, PHP 8)

SoapServer::handle — Traite une requête SOAP

Description

public SoapServer::handle(?string $request = null): void

Effectue une requête SOAP, appelle les fonctions nécessaires et envoie une réponse en retour.

Liste de paramètres

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.

Historique

Version | Description
8.0.0 | request est désormais nullable.

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::__construct() - 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, PHP 7, PHP 8)

SoapServer::setClass — Configure la classe qui sera utilisée pour gérer les requêtes SOAP

Description

public SoapServer::setClass(string $class, mixed ...$args): void

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

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::__construct() - 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, PHP 8)

SoapServer::setObject — Configure l'objet qui sera utilisé pour gérer les requêtes SOAP

Description

public SoapServer::setObject(object $object): void

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
  • SoapFault »
  • PHP Manual
  • SoapServer
  • Active le mode persistant de SoapServer

SoapServer::setPersistence

(PHP 5, PHP 7, PHP 8)

SoapServer::setPersistence — Active le mode persistant de SoapServer

Description

public SoapServer::setPersistence(int $mode): void

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 sérialisant 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


La classe SoapFault

(PHP 5, PHP 7, PHP 8)

Introduction

Représente une erreur SOAP.

Synopsis de la classe

class SoapFault extends Exception {
/* Propriétés */
public string $faultstring;
public ?string $faultcode = null;
public ?string $faultcodens = null;
public ?string $faultactor = null;
public mixed $detail = null;
public ?string $_name = null;
public mixed $headerfault = null;
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes */
public __construct(
array|string|null $code,
string $string,
?string $actor = null,
mixed $details = null,
?string $name = null,
mixed $headerFault = null
)
public __toString(): string
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Propriétés

_name

detail

faultactor

faultcode

faultcodens

faultstring

headerfault

Sommaire

  • SoapFault::__construct — Constructeur SoapFault
  • SoapFault::__toString — Produit une représentation chaîne d'un objet SoapFault


Constructeur SoapFault

  • « SoapFault
  • SoapFault::__toString »
  • PHP Manual
  • SoapFault
  • Constructeur SoapFault

SoapFault::__construct

(PHP 5, PHP 7, PHP 8)

SoapFault::__construct — Constructeur SoapFault

Description

public SoapFault::__construct(
array|string|null $code,
string $string,
?string $actor = null,
mixed $details = null,
?string $name = null,
mixed $headerFault = null
)

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::__construct
  • SoapHeader »
  • PHP Manual
  • SoapFault
  • Produit une représentation chaîne d'un objet SoapFault

SoapFault::__toString

(PHP 5, PHP 7, PHP 8)

SoapFault::__toString — Produit une représentation chaîne d'un objet SoapFault

Description

public SoapFault::__toString(): string

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, PHP 7, PHP 8)

Introduction

Représente un en-tête SOAP.

Synopsis de la classe

class SoapHeader {
/* Propriétés */
public string $namespace;
public string $name;
public mixed $data = null;
public bool $mustUnderstand;
public string|int|null $actor;
/* Méthodes */
public __construct(
string $namespace,
string $name,
mixed $data = ?,
bool $mustunderstand = ?,
string $actor = ?
)
}

Propriétés

actor

data

mustUnderstand

name

namespace

Sommaire

  • SoapHeader::__construct — Constructeur SoapHeader


Constructeur SoapHeader

  • « SoapHeader
  • SoapParam »
  • PHP Manual
  • SoapHeader
  • Constructeur SoapHeader

SoapHeader::__construct

(PHP 5, PHP 7, PHP 8)

SoapHeader::__construct — Constructeur SoapHeader

Description

public SoapHeader::__construct(
string $namespace,
string $name,
mixed $data = ?,
bool $mustunderstand = ?,
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 avec SoapHeader::__construct()

<?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::__construct() - Constructeur SoapVar
  • SoapParam::__construct() - Constructeur SoapParam
  • SoapServer::addSoapHeader() - Ajoute un en-tête SOAP à une réponse


La classe SoapParam

(PHP 5, PHP 7, PHP 8)

Introduction

Représente un paramètre dans un appel SOAP.

Synopsis de la classe

class SoapParam {
/* Propriétés */
public string $param_name;
public mixed $param_data;
/* Méthodes */
public __construct(mixed $data, string $name)
}

Propriétés

param_data

param_name

Sommaire

  • SoapParam::__construct — Constructeur SoapParam


Constructeur SoapParam

  • « SoapParam
  • SoapVar »
  • PHP Manual
  • SoapParam
  • Constructeur SoapParam

SoapParam::__construct

(PHP 5, PHP 7, PHP 8)

SoapParam::__construct — Constructeur SoapParam

Description

public SoapParam::__construct(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 Exemple avec SoapParam::__construct()

<?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::__construct() - Constructeur SoapVar


La classe SoapVar

(PHP 5, PHP 7, PHP 8)

Introduction

Une classe représentant une variable ou un objet qui utilise des services SOAP.

Synopsis de la classe

class SoapVar {
/* Propriétés */
public int $enc_type;
public mixed $enc_value = null;
public ?string $enc_stype = null;
public ?string $enc_ns = null;
public ?string $enc_name = null;
public ?string $enc_namens = null;
/* Méthodes */
public __construct(
mixed $data,
?int $encoding,
?string $typeName = null,
?string $typeNamespace = null,
?string $nodeName = null,
?string $nodeNamespace = null
)
}

Propriétés

enc_name

enc_namens

enc_ns

enc_type

enc_stype

enc_value

Sommaire

  • SoapVar::__construct — Constructeur SoapVar


Constructeur SoapVar

  • « SoapVar
  • Yar »
  • PHP Manual
  • SoapVar
  • Constructeur SoapVar

SoapVar::__construct

(PHP 5, PHP 7, PHP 8)

SoapVar::__construct — Constructeur SoapVar

Description

public SoapVar::__construct(
mixed $data,
?int $encoding,
?string $typeName = null,
?string $typeNamespace = null,
?string $nodeName = null,
?string $nodeNamespace = null
)

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 nœud XML.

node_namespace

L'espace de noms du nœud XML.

Historique

Version | Description
8.0.3 | typeName, typeNamespace, nodeName, et nodeNamespace sont désormais nullable.

Exemples

Exemple #1 Exemple avec SoapVar::__construct()

<?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::__construct() - 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 — Nettoie tous les appels enregistré
  • Yar_Server_Exception — La classe Yar_Server_Exception
    • Yar_Server_Exception::getType — Récupérer le type de l'exception
  • Yar_Client_Exception — La classe Yar_Client_Exception
    • Yar_Client_Exception::getType — Récupérer le type de l'exception


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 : » https://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 | INI_SYSTEM |
yar.debug | Off | INI_ALL |
yar.connect_timeout | 1000 | INI_ALL |
yar.timeout | 5000 | INI_ALL |
yar.expose_info | On | INI_SYSTEM |

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 int

délai d'attente maximal en ms

yar.timeout int

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 (int)
YAR_OPT_PACKAGER (int)
YAR_OPT_TIMEOUT (int)
YAR_OPT_CONNECT_TIMEOUT (int)
YAR_OPT_HEADER (array)
Depuis 2.0.4
YAR_PACKAGER_PHP (string)
YAR_PACKAGER_JSON (string)
YAR_ERR_OKEY (int)
YAR_ERR_OUTPUT (int)
YAR_ERR_TRANSPORT (int)
YAR_ERR_REQUEST (int)
YAR_ERR_PROTOCOL (int)
YAR_ERR_PACKAGER (int)
YAR_ERR_EXCEPTION (int)


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)

Résultat de l'exemple ci-dessus est 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));
?>

Résultat de l'exemple ci-dessus est 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();
?>

Résultat de l'exemple ci-dessus est 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

class Yar_Server {
/* Propriétés */
protected $_executor;
/* Méthodes */
final public __construct(Object $obj)
public handle(): bool
}

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();
?>

Résultat de l'exemple ci-dessus est 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 Yar_Server::handle(): bool

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();
?>

Résultat de l'exemple ci-dessus est 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

class Yar_Client {
/* Propriétés */
protected $_protocol;
protected $_uri;
protected $_options;
protected $_running;
/* Méthodes */
public __call(string $method, array $parameters): void
final public __construct(string $url, array $options = ?)
public setOpt(int $name, mixed $value): Yar_Client|false
}

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 Yar_Client::__call(string $method, array $parameters): void

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");
?>

Résultat de l'exemple ci-dessus est 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, array $options = ?)

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/");
?>

Résultat de l'exemple ci-dessus est 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 Yar_Client::setOpt(int $name, mixed $value): Yar_Client|false

Liste de paramètres

name

Peut être : YAR_OPT_PACKAGER, YAR_OPT_PERSISTENT (à besoin du support serveur), YAR_OPT_TIMEOUT, YAR_OPT_CONNECT_TIMEOUT, YAR_OPT_HEADER (depuis 2.0.4), YAR_OPT_PROXY (depuis 2.2.0)

value

Valeurs de retour

Retourne $this en cas de succès ou false si une erreur survient.

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");

//Défini l'en-tête personnalisée
$client->SetOpt(YAR_OPT_HEADER, array("hr1: val1", "hd2: val2"));

// Défini le proxy HTTP
$client->SetOpt(YAR_OPT_PROXY, "127.0.0.1:8888");

/* Appel le service distant */
$result = $client->some_method("parameter");
?>

Résultat de l'exemple ci-dessus est 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

class Yar_Concurrent_Client {
/* Propriétés */
static $_callstack;
static $_callback;
static $_error_callback;
/* Méthodes */
public static call(
string $uri,
string $method,
array $parameters = ?,
callable $callback = ?,
callable $error_callback = ?,
array $options = ?
): int
public static loop(callable $callback = ?, callable $error_callback = ?): bool
public static reset(): bool
}

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 — Nettoie tous les appels enregistré


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 Yar_Concurrent_Client::call(
string $uri,
string $method,
array $parameters = ?,
callable $callback = ?,
callable $error_callback = ?,
array $options = ?
): int

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
?>

Résultat de l'exemple ci-dessus est similaire à :

Voir aussi

  • Yar_Concurrent_Client::loop() - Envoi tous les appels
    •

  • Yar_Concurrent_Client::reset() - Nettoie tous les appels enregistré
    •

  • 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 Yar_Concurrent_Client::loop(callable $callback = ?, callable $error_callback = ?): bool

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
?>

Résultat de l'exemple ci-dessus est 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() - Nettoie tous les appels enregistré
  • Yar_Server::__construct() - Enregistre un serveur
  • Yar_Server::handle() - Démarre un serveur RPC


Nettoie tous les appels enregistré

  • « Yar_Concurrent_Client::loop
  • Yar_Server_Exception »
  • PHP Manual
  • Yar_Concurrent_Client
  • Nettoie tous les appels enregistré

Yar_Concurrent_Client::reset

(PECL yar >= 1.2.4)

Yar_Concurrent_Client::reset — Nettoie tous les appels enregistré

Description

public static Yar_Concurrent_Client::reset(): bool

Nettoie tous les appels enregistré.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Exemples

Exemple #1 Exemple avec Yar_Concurrent_Client::reset()

Résultat de l'exemple ci-dessus est 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

class Yar_Server_Exception extends Exception {
/* Propriétés */
protected $_type;
/* Méthodes */
public getType(): string
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Propriétés

message

code

file

line

_type

Sommaire

  • Yar_Server_Exception::getType — Récupérer le type de l'exception


Récupérer le type de l'exception

  • « Yar_Server_Exception
  • Yar_Client_Exception »
  • PHP Manual
  • Yar_Server_Exception
  • Récupérer le type de l'exception

Yar_Server_Exception::getType

(PECL yar >= 1.0.0)

Yar_Server_Exception::getType — Récupérer le type de l'exception

Description

public Yar_Server_Exception::getType(): string

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());
}

Résultat de l'exemple ci-dessus est 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

class Yar_Client_Exception extends Exception {
/* Propriétés */
/* Méthodes */
public getType(): void
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Propriétés

message

code

file

line

Sommaire

  • Yar_Client_Exception::getType — Récupérer le type de l'exception


Récupérer le type de l'exception

  • « Yar_Client_Exception
  • XML-RPC »
  • PHP Manual
  • Yar_Client_Exception
  • Récupérer le type de l'exception

Yar_Client_Exception::getType

(PECL yar >= 1.0.0)

Yar_Client_Exception::getType — Récupérer le type de l'exception

Description

public Yar_Client_Exception::getType(): void

Avertissement

Cette fonction est actuellement non documentée ; 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

/* ... */

?>

Résultat de l'exemple ci-dessus est 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

Cette extension est EXPERIMENTALE. Le comportement de cette extension, les noms de ses fonctions, et toute la documentation autour de cette extension peut changer sans préavis dans une prochaine version de PHP. Cette extension doit être utilisée à 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].


  • « 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

xmlrpc_decode_request(string $xml, string &$method, string $encoding = ?): mixed
Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à vos risques et périls.

Avertissement

Cette fonction est actuellement non documentée ; 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

xmlrpc_decode(string $xml, string $encoding = "iso-8859-1"): mixed
Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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

xmlrpc_encode_request(string $method, mixed $params, array $output_options = ?): string
Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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

xmlrpc_encode(mixed $value): string
Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à vos risques et périls.

Avertissement

Cette fonction est actuellement non documentée ; 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

xmlrpc_get_type(mixed $value): string

Particulièrement pratique pour les types chaînes de type base64 et datetime.

Avertissement

Cette fonction est actuellement non documentée ; 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

xmlrpc_is_fault(array $arg): bool
Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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

xmlrpc_parse_method_descriptions(string $xml): array
Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à vos risques et périls.

Avertissement

Cette fonction est actuellement non documentée ; 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

xmlrpc_server_add_introspection_data(resource $server, array $desc): int
Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à vos risques et périls.

Avertissement

Cette fonction est actuellement non documentée ; 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

xmlrpc_server_call_method(
resource $server,
string $xml,
mixed $user_data,
array $output_options = ?
): string
Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à vos risques et périls.

Avertissement

Cette fonction est actuellement non documentée ; 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

xmlrpc_server_create(): resource
Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à vos risques et périls.

Avertissement

Cette fonction est actuellement non documentée ; 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

xmlrpc_server_destroy(resource $server): bool
Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à vos risques et périls.

Avertissement

Cette fonction est actuellement non documentée ; 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

xmlrpc_server_register_introspection_callback(resource $server, string $function): bool
Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à vos risques et périls.

Avertissement

Cette fonction est actuellement non documentée ; 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

xmlrpc_server_register_method(resource $server, string $method_name, string $function): bool
Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à vos risques et périls.

Avertissement

Cette fonction est actuellement non documentée ; 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

xmlrpc_set_type(string &$value, string $type): bool

xmlrpc_set_type() définit le type XMLRPC, base64 ou datetime, pour une chaîne PHP.

Avertissement

Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à 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.

Erreurs / Exceptions

Émet une alerte de type E_WARNING lorsque le type n'est pas supporté par XMLRPC.

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);

?>

Résultat de l'exemple ci-dessus est similaire à :

<?xml version="1.0" encoding="utf-8"?>
<params>
<param>
 <value>
  <dateTime.iso8601>20090322T23:43:03</dateTime.iso8601>
 </value>
</param>
</params>


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
    • COMPersistHelper — The COMPersistHelper class
    • com_exception — La classe The com_exception
    • com_safearray_proxy — The com_safearray_proxy class
    • Fonctions COM et .Net (Windows)
  • win32service
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Win32ServiceException — La class Win32ServiceException
    • 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
    • com::__construct — Constructeur de la classe com
  • dotnet — La classe dotnet
    • dotnet::__construct — Constructeur de la classe dotnet
  • variant — La classe variant
    • variant::__construct — Constructeur de la classe variant
  • COMPersistHelper — The COMPersistHelper class
    • COMPersistHelper::__construct — Construct a COMPersistHelper object
    • COMPersistHelper::GetCurFileName — Get current filename
    • COMPersistHelper::GetMaxStreamSize — Get maximum stream size
    • COMPersistHelper::InitNew — Initialize object to default state
    • COMPersistHelper::LoadFromFile — Load object from file
    • COMPersistHelper::LoadFromStream — Load object from stream
    • COMPersistHelper::SaveToFile — Save object to file
    • COMPersistHelper::SaveToStream — Save object to stream
  • com_exception — La classe The com_exception
  • com_safearray_proxy — The com_safearray_proxy class
  • 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.

De plus, nous supportons l'instanciation et la création d'assemblées .Net utilisant une couche d'interopérabilité COM fournie par Microsoft.


Pré-requis

Les fonctions COM ne sont disponibles que sous les versions Windows de PHP.

Le support .Net nécessite le gestionnaire .Net.


Installation

Cette extension requiert l'activation de php_com_dotnet.dll dans le fichier php.ini pour pouvoir utiliser ces fonctions.

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" | INI_SYSTEM |
com.autoregister_typelib | "0" | INI_ALL |
com.autoregister_verbose | "0" | INI_ALL |
com.autoregister_casesensitive | "1" | INI_ALL |
com.code_page | "" | INI_ALL |
com.dotnet_version | "" | INI_SYSTEM | À partir de PHP 8.0.0
com.typelib_file | "" | INI_SYSTEM |
Pour plus de détails sur les modes 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 COM 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 php.ini com.autoregister_casesensitive.

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 autochargé lors de l'instanciation d'objets COM 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.

com.dotnet_version

La version du framework .NET framework à utiliser pour les objets dotnet. La valeur de cette configuration correspond aux trois premiers numéros du numéro de la version du framework, séparé par des poins, et préxié par la lettre v, i.e. v4.0.30319.

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.


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 | Description | Notes
CLSCTX_INPROC_SERVER (int) | 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 (int) | 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 (int) | 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 (int) | 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 (int) | 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 (int) | Indique tous les contextes de la classe. Correspond aux constantes CLSCTX_INPROC_HANDLER et CLSCTX_SERVER. |
VT_NULL (int) | Référence de pointeur NULL. |
VT_EMPTY (int) | 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_INT (int) | Valeur entière signée sur 4 octets (équivalent à VT_I4). |
VT_I1 (int) | Entier signé sur 1 octet. |
VT_I2 (int) | 2 octets représentant une valeur entière signée sur 2 octets. |
VT_I4 (int) | Entier signé sur 4 octets. |
VT_I8 (int) | Entier signé sur 8 octets. | x64 uniquement.
VT_UINT (int) | Entier non signé sur 4 octets (équivalent à VT_UI4). |
VT_UI1 (int) | Entier non signé sur 1 octet. |
VT_UI2 (int) | Entier non signé sur 2 octets. |
VT_UI4 (int) | Entier non signé sur 4 octets. |
VT_UI8 (int) | Entier non signé sur 8 octets. | x64 uniquement
VT_R4 (int) | Valeur à virgule flottante IEEE sur 32 bits. |
VT_R8 (int) | Valeur à virgule flottante IEEE sur 64 bits. |
VT_BOOL (int) | Valeur booléenne. |
VT_ERROR (int) | Code erreur ; contient le code statut associé avec l'erreur. |
VT_CY (int) | Entier complémentaire de 8 octets (par tranche de 10.000). |
VT_DATE (int) | Nombre à virgule flottante de 64 bits, 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 (int) | Pointeur vers une chaîne Unicode finissant par NULL. |
VT_DECIMAL (int) | Une structure décimale. |
VT_UNKNOWN (int) | Un pointeur vers un objet qui implémente l'interface IUnknown. |
VT_DISPATCH (int) | 9 | Un pointeur vers un objet a été spécifié.
VT_VARIANT (int) | Un indicateur de type suivi par la valeur correspondante. VT_VARIANT peut être utilisé uniquement avec VT_BYREF. |
VT_ARRAY (int) | 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 (int) | 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 (int) | Le code page ANSI par défaut. |
CP_MACCP (int) | Le code page Macintosh. |
CP_OEMCP (int) | Le code page OEM par défaut. |
CP_UTF7 (int) | Unicode (UTF-7). |
CP_UTF8 (int) | Unicode (UTF-8). |
CP_SYMBOL (int) | Traduction des SYMBOL. |
CP_THREAD_ACP (int) | Le code page ANSI du thread courant. |
VARCMP_LT (int) | Le bstr de gauche est plus petit que le bstr de droite. |
VARCMP_EQ (int) | Les 2 paramètres sont égaux. |
VARCMP_GT (int) | Le bstr de gauche est plus grand que le bstr de droite. |
VARCMP_NULL (int) | Chaque expression vaut NULL. |
NORM_IGNORECASE (int) | Ignore la casse. |
NORM_IGNORENONSPACE (int) | Ignore les caractères non espacés. |
NORM_IGNORESYMBOLS (int) | Ignore les symboles. |
NORM_IGNOREWIDTH (int) | Ignore la taille des caractères. |
NORM_IGNOREKANATYPE (int) | Ignore le type Kana. |
NORM_IGNOREKASHIDA (int) | Ignore les caractères Arabe kashida. | La disponibilité dépend de la bibliothèque sous-jacente.
DISP_E_DIVBYZERO (int) | Une erreur retournée qui indique qu'une division par zéro a eu lieu. |
DISP_E_OVERFLOW (int) | Une erreur qui indique qu'une valeur n'a pû être convertie en la représentation attendue. |
DISP_E_BADINDEX (int) | Une erreur qui indique qu'un index de tableau n'existe pas. |
DISP_E_PARAMNOTFOUND (int) | Une valeur de retour indiquant qu'un des identifiants de paramètre ne correspond pas à un paramètre de la méthode. |
MK_E_UNAVAILABLE (int) | 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. |
LOCALE_NEUTRAL (int) | La locale neutre. Cette constante n'est généralement pas utilisée lors de l'appel des API NLS. Utilisez plutôt LOCALE_SYSTEM_DEFAULT. |
LOCALE_SYSTEM_DEFAULT (int) | La locale par défaut du système d'exploitation. |


Erreur et gestion des erreurs

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

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.

Vous pouvez :

  • 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, PHP 8)

Introduction

La classe m vous permet d'instancier un objet COM compatible OLE et d'appeler ses méthodes et d'accéder à ses propriétés.

Synopsis de la classe

class com extends variant {
/* Méthodes */
public __construct(
string $module_name,
array|string|null $server_name = null,
int $codepage = CP_ACP,
string $typelib = ""
)
}

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.

PHP will automatically detect methods that accept parameters by reference, and will automatically convert regular PHP variables to a form that can be passed by reference. This means that you can call the method very naturally; you needn't go to any extra effort in your code. 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.

Exemples com

Exemple #1 Exemple com (1)

<?php
// démarrer Word
$word = new com("word.application") or die("Unable to instantiate Word");
echo "Loaded Word, version {$word->Version}\n";

// l'ammener devant
$word->Visible = 1;

// ouvrir un document vide
$word->Documents->Add();

// faire des choses
$word->Selection->TypeText("This is a test...");
$word->Documents[1]->SaveAs("Useless test.doc");

// fermer Word
$word->Quit();

// libérer l'objet
$word = null;
?>

Exemple #2 Exemple com (2)

<?php

$conn = new com("ADODB.Connection") or die("Cannot start ADO");
$conn->Open("Provider=SQLOLEDB; Data Source=localhost;
Initial Catalog=database; User ID=user; Password=password");

$rs = $conn->Execute("SELECT * FROM sometable"); // Recordset

$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";
$rowcount++; // incrémente rowcount
$rs->MoveNext();
}

$rs->Close();
$conn->Close();

$rs = null;
$conn = null;

?>

Sommaire

  • com::__construct — Constructeur de la classe com


Constructeur de la classe com

  • « com
  • dotnet »
  • PHP Manual
  • com
  • Constructeur de la classe com

com::__construct

(PHP 4 > 4.1.0, PHP 5, PHP 7, PHP 8)

com::__construct — Constructeur de la classe com

Description

public com::__construct(
string $module_name,
array|string|null $server_name = null,
int $codepage = CP_ACP,
string $typelib = ""
)

Construit un nouvel objet com.

Liste de paramètres

module_name
Peut être un ProgID, Class ID ou Moniker qui nomme le composant à charger. Un ProgID est typiquement le nom de l'application ou du DDL, suivit d'un point, suivit du nom de l'objet. Par exemple : Word.Application. Un Class ID est l'UUID qui identifie uniquement une classe donnée. Un Moniker est une forme spécial de nommage, similaire en concept à un schéma URL, qui identifie une ressource et spécifie comment il devrait être chargé? Pour un exemple, vous pouvez démarrer Word et récupérer un objet représentant un document word en spécifiant le chemin complet du document word en tant que nom de module, ou vous pouvez utiliser LDAP: en tant que Moniker pour utiliser l'interface ADSI à LDAP.
server_name
Le nom du server DCOM sur lequel le composant devrait être chargé et exécuté. Si null, l'objet est exécuté en utilisant le défaut pour l'application. La valeur par défaut est typiquement d'exécuter sur la machine locale, cependant l'administrateur peut avoir configuré l'application d'être lancé sur une machine différente. Si une valeur non-null est spécifiée pour le serveur, PHP refusera de charger l'objet à moins que l'option com.allow_dcom php.ini option soit définie à true.

Si server_name est un tableau, il devrait contenir les éléments suivant (sensible à la case!). À noter qu'ils sont tous optionnel (cependant vous devez définir l'Utilisateur et le Mot de Passe ensemble) ; si vous ommetez le paramètre Server, le serveur par défaut sera utilisé (comme dit ci-dessus), et l'instantiation de l'objet ne sera pas affecté par la php.ini directive com.allow_dcom.

Nom de serveur DCOM
Clé | Type | Description
Server | chaîne de caractères | Le nom du serveur
Username | chaîne de caractères | Le nom d'utilisateur pour se connecter en tant que.
Password | chaîne de caractères | Le mot de passe pour Username.
Domain | chaîne de caractères | Le domaine du serveur.
Drapeaux | entier | Une ou plusieur des constantes suivantes, assemblé ensemble grâce au OU logique : CLSCTX_INPROC_SERVER, CLSCTX_INPROC_HANDLER, CLSCTX_LOCAL_SERVER, CLSCTX_REMOTE_SERVER, CLSCTX_SERVER et CLSCTX_ALL. La valeur par défaut si non définie ici est CLSCTX_SERVER si vous ommetez aussi Server, ou CLSCTX_REMOTE_SERVER si vous définissez un serveur. Vous devriez consultez la documentation de Microsoft pour CoCreateInstance pour plus d'information sur la signification de ces constantes ; vous devrez typiquement jamais les utiliser.

codepage
Défini la codepage qui est utilisé pour convertir les chaîne de caractères en chaîne de caractères unicode et vice versa. La conversion est appliqué quand une chaîne de caractères PHP est passé en tant que paramètre ou retourné depuis une méthode de cet objet COM. La code page est "collante", ce qui signifie que ça sera propagé aux objets et variants retourné depuis l'objet. Les valeurs possibles sont : CP_ACP (utilise la code page ANSI système par défaut - par défaut si ce paramètre est omit), CP_MACCP, CP_OEMCP, CP_SYMBOL, CP_THREAD_ACP (utilise codepage/locale définie pour le thread en cours d'exécution ), CP_UTF7 et CP_UTF8. Vous pouvez aussi utiliser le numéro pour une codepage donnée ; consultez la documentation de Microsoft pour plus de détails sur les codepages et leurs valeurs numériques.


La classe dotnet

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

Introduction

La classe dotnet vous autorise à instancier une classe depuis un ensemble .NET et d'appeler et accéder à ses propriétés, si la classe et les méthodes et les propriétés sont » visible pour COM.

Ni l'instantiation de classes static ni l'appel de méthodes statique est supporté. L'instanciation de classes génériques telles que System.Collections.Generic.List n'est pas non plus prise en charge.

Quelque classes .Net n'implémente pas IDispatch, donc bien qu'elles peuvent être instancié, appeller des méthodes ou accéder aux propriétés sur ces classes n'est pas supporté.

Note:

Vous devez installer le moteur d'exécution .Net sur votre serveur web pour tirer avantage de cette fonctionnalité.

Note:

Antérieur à PHP 8.0.0, le framework .Net 4.0 et ultérieurs ne sont pas supporté par la classe dotnet. Si des assemblages ont été régistré avec regasm.exe, les classes peuvent être instanciées en tant qu'objets com, cependant. À partir de PHP 8.0.0, le framework .Net 4.0 et les versions ultérieures sont supportés via la directive php.ini com.dotnet_version.

Synopsis de la classe

class dotnet extends variant {
/* Méthodes */
public __construct(string $assembly_name, string $datatype_name, int $codepage = CP_ACP)
}

Méthodes surchargées

L'objet retourné est un objet surchargé, ceci signifie que PHP ne voit pas les méthodes fixé comme il le fait avec les classes normales ; à la place tout accès de propriété ou méthode sont passés à travers COM et à partir de là à DOTNET. Dans d'autres mots, l'objet .Net est mappé via la couche d'interopérabilité COM fournie par le moteur d'exécution .Net.

Une fois que vous avez crée un objet dotnet, PHP le traite de façon identique à n'importe quel autre objet COM ; les mêmes règles s'appliquent.

Exemples dotnet

Exemple #1 Exemple dotnet

<?php
$stack = new dotnet("mscorlib", "System.Collections.Stack");
$stack->Push(".Net");
$stack->Push("Hello ");
echo $stack->Pop() . $stack->Pop();
?>

Sommaire

  • dotnet::__construct — Constructeur de la classe dotnet


Constructeur de la classe dotnet

  • « dotnet
  • variant »
  • PHP Manual
  • dotnet
  • Constructeur de la classe dotnet

dotnet::__construct

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

dotnet::__construct — Constructeur de la classe dotnet

Description

public dotnet::__construct(string $assembly_name, string $datatype_name, int $codepage = CP_ACP)

Construit un nouvel objet dotnet.

Liste de paramètres

assembly_name
Spécifie l'assemblage qui doit être chargé.
datatype_name
Spécifie la classe dans cet assemblage à instancier.
codepage
Codepage à utiliser pour les transformations de chaîne de caractères unicode ; voir la classe com pour plus de détails sur les codepages.


La classe variant

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

Introduction

Le VARIANT est l'équivalent COM de zval pour PHP ; c'est une structure qui peut contenir une valeur avec un intervalle de différent 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.

Synopsis de la classe

class variant {
/* Méthodes */
public __construct(mixed $value = null, int $type = VT_EMPTY, int $codepage = CP_ACP)
}

Exemples variant

Exemple #1 Exemple variant

<?php
$v = new variant(42);
print "The type is " . variant_get_type($v) . "<br/>";
print "The value is " . $v . "<br/>";
?>

Note:

Lors du retour d'une valeur ou récupérer une propriété variant, le variant est converti en une valeur PHP seulement quand il y a une correspondance directe entre les types qui ne produiraient pas une perte d'information. Dans tous les autres cas, la valeur est retourné en tant qu'une instance de la classe variant. Vous pouvez forcer PHP de convertir ou évaluer le variant en tant que type PHP natif en utilisant les opérateurs de transtypage explicitement, ou implicitement vers une chaîne de caractères en l'affichant grâce à print. Vous pouvez utiliser la grande variété de fonctions variant pour effectuer des opérations arithmétrique sans forcer une conversion et risquer une perte de données.

Voir aussi variant_get_type().

Sommaire

  • variant::__construct — Constructeur de la classe variant


Constructeur de la classe variant

  • « variant
  • COMPersistHelper »
  • PHP Manual
  • variant
  • Constructeur de la classe variant

variant::__construct

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

variant::__construct — Constructeur de la classe variant

Description

public variant::__construct(mixed $value = null, int $type = VT_EMPTY, int $codepage = CP_ACP)

Construit un nouvel objet variant.

Liste de paramètres

value
Valeur initiale. Si omit, ou défini à null un objet VT_EMPTY vide est crée.
type
Spécifie le type de contenue de l'objet variant. Les valeurs possibles sont l'une des constantes VT_XXX Constantes pré-définies. PHP peut détecter les paramètres passé par référence automatiquement ; Ils n'ont pas besoin d'être passé an tant qu'objets variant. Consultez la bibliothèque MSDN pour des informations additionnelles sur le type VARIANT.
codepage
Spécifie la codepage qui est utilisé pour convertir les chaîne de caractères vers unicode. Voir le paramètre avec le même nom dans la classe com pour plus d'informations.


The COMPersistHelper class

(PHP 5, PHP 7, PHP 8)

Introduction

COMPersistHelper improves the interoperability of COM and PHP with regard to the php.ini directive open_basedir, and stream ressources.

Synopsis de la classe

final class COMPersistHelper {
/* Méthodes */
public __construct(?variant $variant = null)
public GetCurFileName(): string|false
public GetMaxStreamSize(): int
public InitNew(): bool
public LoadFromFile(string $filename, int $flags = 0): bool
public LoadFromStream(resource $stream): bool
public SaveToFile(?string $filename, bool $remember = true): bool
public SaveToStream(resource $stream): bool
}

Sommaire

  • COMPersistHelper::__construct — Construct a COMPersistHelper object
  • COMPersistHelper::GetCurFileName — Get current filename
  • COMPersistHelper::GetMaxStreamSize — Get maximum stream size
  • COMPersistHelper::InitNew — Initialize object to default state
  • COMPersistHelper::LoadFromFile — Load object from file
  • COMPersistHelper::LoadFromStream — Load object from stream
  • COMPersistHelper::SaveToFile — Save object to file
  • COMPersistHelper::SaveToStream — Save object to stream


Construct a COMPersistHelper object

  • « COMPersistHelper
  • COMPersistHelper::GetCurFileName »
  • PHP Manual
  • COMPersistHelper
  • Construct a COMPersistHelper object

COMPersistHelper::__construct

(PHP 5, PHP 7, PHP 8)

COMPersistHelper::__construct — Construct a COMPersistHelper object

Description

public COMPersistHelper::__construct(?variant $variant = null)

Constructs a persistence helper object, usually associated with a variant.

Liste de paramètres

variant
A COM object which implements IDispatch. To be able to successfully call any of COMPersistHelper's methods, the object has to implement IPersistFile, IPersistStream and/or IPersistStreamInit. Passing null as variant is only useful if the object is to be loaded from a stream by calling COMPersistHelper::LoadFromStream().


Get current filename

  • « COMPersistHelper::__construct
  • COMPersistHelper::GetMaxStreamSize »
  • PHP Manual
  • COMPersistHelper
  • Get current filename

COMPersistHelper::GetCurFileName

(PHP 5, PHP 7, PHP 8)

COMPersistHelper::GetCurFileName — Get current filename

Description

public COMPersistHelper::GetCurFileName(): string|false

Retrieves the current name of the file associated with the object.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the current name of the file associated with the object.

Erreurs / Exceptions

A com_exception is thrown if the associated object does not implement the COM interface IPersistFile, or when calling the IPersistFile::GetCurFile() method failed.


Get maximum stream size

  • « COMPersistHelper::GetCurFileName
  • COMPersistHelper::InitNew »
  • PHP Manual
  • COMPersistHelper
  • Get maximum stream size

COMPersistHelper::GetMaxStreamSize

(PHP 5, PHP 7, PHP 8)

COMPersistHelper::GetMaxStreamSize — Get maximum stream size

Description

public COMPersistHelper::GetMaxStreamSize(): int

Retrieves the size of the stream (in bytes) needed to save the object.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Returns the size of the stream (in bytes) needed to save the object.

Erreurs / Exceptions

A com_exception is thrown if the associated object does neither implement the COM interface IPersistStream nor IPersistStreamInit, or when calling the IPersistStream::GetSizeMax() method failed.


Initialize object to default state

  • « COMPersistHelper::GetMaxStreamSize
  • COMPersistHelper::LoadFromFile »
  • PHP Manual
  • COMPersistHelper
  • Initialize object to default state

COMPersistHelper::InitNew

(PHP 5, PHP 7, PHP 8)

COMPersistHelper::InitNew — Initialize object to default state

Description

public COMPersistHelper::InitNew(): bool

Initializes an object to a default state.

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.

Erreurs / Exceptions

A com_exception is thrown if the associated object does not implement the COM interface IPersistStreamInit, or when calling its IPersistStreamInit::Init() method failed.


Load object from file

  • « COMPersistHelper::InitNew
  • COMPersistHelper::LoadFromStream »
  • PHP Manual
  • COMPersistHelper
  • Load object from file

COMPersistHelper::LoadFromFile

(PHP 5, PHP 7, PHP 8)

COMPersistHelper::LoadFromFile — Load object from file

Description

public COMPersistHelper::LoadFromFile(string $filename, int $flags = 0): bool

Opens the specified file and initializes an object from the file contents.

Liste de paramètres

filename
The name of the file from which to load the object.
flags
The access mode to be used when opening the file. Possible values are taken from the » STGM enumeration. The method can treat this value as a suggestion, adding more restrictive permissions if necessary. If flags is 0, the implementation is supposed to open the file using whatever default permissions are used when a user opens the file.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Erreurs / Exceptions

A com_exception is thrown if the associated object does not implement the COM interface IPersistFile, or when calling the IPersistFile::Load() method failed.


Load object from stream

  • « COMPersistHelper::LoadFromFile
  • COMPersistHelper::SaveToFile »
  • PHP Manual
  • COMPersistHelper
  • Load object from stream

COMPersistHelper::LoadFromStream

(PHP 5, PHP 7, PHP 8)

COMPersistHelper::LoadFromStream — Load object from stream

Description

public COMPersistHelper::LoadFromStream(resource $stream): bool

Initializes an object from the stream where it was saved previously.

Liste de paramètres

stream
The stream ressource from which to load the object.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Erreurs / Exceptions

A com_exception is thrown if the associated object does not implement the COM interface IPersistStream, or when calling the IPersistStream::Load() method failed.


Save object to file

  • « COMPersistHelper::LoadFromStream
  • COMPersistHelper::SaveToStream »
  • PHP Manual
  • COMPersistHelper
  • Save object to file

COMPersistHelper::SaveToFile

(PHP 5, PHP 7, PHP 8)

COMPersistHelper::SaveToFile — Save object to file

Description

public COMPersistHelper::SaveToFile(?string $filename, bool $remember = true): bool

Saves a copy of the object to the specified file.

Liste de paramètres

filename
The name of the file to which to save the object.
remember
Indicates whether the filename parameter is to be used as the current working file. If true, filename becomes the current file and the object is supposed to clear its dirty flag after the save. If false, this save operation is a "Save A Copy As ..." operation. In this case, the current file is unchanged and the object is not supposed to clear its dirty flag.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Erreurs / Exceptions

A com_exception is thrown if the associated object does not implement the COM interface IPersistFile, or when calling the IPersistFile::Save() method failed.

Exemples

Exemple #1 Basic COMPersistHelper::saveToFile() Usage

<?php
$word = new COM('Word.Application');
$doc = $word->Documents->Add();
$ph = new COMPersistHelper($doc);
$ph->SaveToFile('C:\\Users\\cmb\\Documents\\my.docx');
$word->Quit();
?>


Save object to stream

  • « COMPersistHelper::SaveToFile
  • com_exception »
  • PHP Manual
  • COMPersistHelper
  • Save object to stream

COMPersistHelper::SaveToStream

(PHP 5, PHP 7, PHP 8)

COMPersistHelper::SaveToStream — Save object to stream

Description

public COMPersistHelper::SaveToStream(resource $stream): bool

Saves an object to the specified stream.

Liste de paramètres

stream
The stream ressource to which to save the object.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Erreurs / Exceptions

A com_exception is thrown if the associated object does neither implement the COM interface IPersistStream nor IPersistStreamInit, or when calling the IPersistStream::Save() method failed.


La classe The com_exception

(PHP 5, PHP 7, PHP 8)

Introduction

Synopsis de la classe

final class com_exception extends Exception {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


The com_safearray_proxy class

(PHP 5, PHP 7, PHP 8)

Introduction

com_safearray_proxy is an internal class used for resolving multi-dimensional array accesses on SafeArray types.

Synopsis de la classe

final class com_safearray_proxy {
}


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, PHP 8)

com_create_guid — Génère un identifiant unique global (GUID)

Description

com_create_guid(): string|false

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.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le GUID, sous la forme d'une chaîne de caractères, ou false si une erreur survient.

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, PHP 8)

com_event_sink — Connecte des événements d'un objet COM sur un objet PHP

Description

com_event_sink(variant $variant, object $sink_object, array|string|null $sink_interface = null): bool

Connecte des événements de l'objet COM variant sur un l'objet PHP sink_object.

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

variant

sink_object

sink_object 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.

sink_interface

PHP devrait être capable d'utiliser le type par défaut de dispinterface spécifié par la Typelib associée avec l'objet variant, mais vous pouvez changer cela en spécifiant dans le paramètre sink_interface le dispinterface que vous souhaitez utiliser.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | sink_interface is nullable now.

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");
$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;
?>

Notes

Attention

Antérieur à PHP 8.0.0, Prior to PHP 8.0.0, appeller exit() depuis n'importe quel gestionnaire d'événement n'est pas supporté, et peut causer PHP à planter. Ceci peut être contourné en lançant une exception depuis un gestionnaire d'événement, attrapant l'exception dans le code principal, et appeller exit() là.

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, PHP 8)

com_get_active_object — Retourne un objet représentant l'instance actuelle d'un objet COM

Description

com_get_active_object(string $prog_id, ?int $codepage = null): variant

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

prog_id

Le paramètre prog_id doit être soit le ProgID, soit le CLSID de l'objet dont vous voulez avoir l'accès (par exemple, Word.Application).

codepage

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.

Historique

Version | Description
8.0.0 | codepage est désormais nullable.

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, PHP 8)

com_load_typelib — Charge un Typelib

Description

com_load_typelib(string $typelib, bool $case_insensitive = true): bool

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 com.typelib-file php.ini l'option de configuration pour précharger et enregistrer les constantes, même si cela est moins flexible.

Si com.autoregister-typelib est activé, 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

typelib 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 à l'inverse du paramètre $case_insensitive 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, PHP 8)

com_message_pump — Traite un message COM dans un délai donné

Description

com_message_pump(int $timeout_milliseconds = 0): bool

Traite un message COM en attendant jusqu'à timeout_milliseconds 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

timeout_milliseconds

Le délai, en millisecondes.

Si vous ne spécifiez pas de valeur pour le paramètre timeout_milliseconds, 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, PHP 8)

com_print_typeinfo — Affiche une définition de classe PHP pour une interface répartissable

Description

com_print_typeinfo(variant|string $variant, ?string $dispatch_interface = null, bool $display_sink = false): bool

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

variant

variant 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()).

dispatch_interface

Le nom d'une interface descendante IDispatch que vous souhaitez afficher.

display_sink

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, PHP 8)

variant_abs — Retourne la valeur absolue d'un variant

Description

variant_abs(mixed $value): variant

Retourne la valeur absolue d'un variant.

Liste de paramètres

value

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 value.

Erreurs / Exceptions

Lance une com_exception en cas d'échec.

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, PHP 8)

variant_add — "Ajoute" deux valeurs de variants et retourne le résultat

Description

variant_add(mixed $left, mixed $right): variant

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.

Erreurs / Exceptions

Lance une com_exception en cas d'échec.

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, PHP 8)

variant_and — Effectue un ET entre deux variants et retourne le résultat

Description

variant_and(mixed $left, mixed $right): variant

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

Erreurs / Exceptions

Lance une com_exception en cas d'échec.

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, PHP 8)

variant_cast — Convertit un variant en un nouvel objet variant de type différent

Description

variant_cast(variant $variant, int $type): variant

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 du type fourni.

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, PHP 8)

variant_cat — Assemble deux valeurs variantes ensemble et retourne le résultat

Description

variant_cat(mixed $left, mixed $right): variant

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.

Erreurs / Exceptions

Lance une com_exception en cas d'échec.

Voir aussi

  • Opérateurs de chaînes de caractères 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, PHP 8)

variant_cmp — Compare deux variants

Description

variant_cmp(
mixed $left,
mixed $right,
int $locale_id = LOCALE_SYSTEM_DEFAULT,
int $flags = 0
): int

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.

locale_id

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, PHP 8)

variant_date_from_timestamp — Retourne une représentation date en variant d'un timestamp Unix

Description

variant_date_from_timestamp(int $timestamp): variant

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 l'horodatage UNIX d'une date
  • time() - Retourne l'horodatage 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, PHP 8)

variant_date_to_timestamp — Convertit une valeur date/temps variante en un timestamp Unix

Description

variant_date_to_timestamp(variant $variant): ?int

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, ou null en cas d'échec.

Voir aussi

  • variant_date_from_timestamp() - Retourne une représentation date en variant d'un timestamp Unix
  • date() - Formate un horodatage Unix
  • 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, PHP 8)

variant_div — Retourne le résultat de la division de deux variants

Description

variant_div(mixed $left, mixed $right): variant

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 | Une com_exception avec code DISP_E_DIVBYZERO est lancée
left est vide et right est tout mais non vide. | 0 en tant que double est retourné
Les deux expressions sont vides | Une com_exception avec code DISP_E_OVERFLOW est lancée

Erreurs / Exceptions

Lance une com_exception en cas d'échec.

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, PHP 8)

variant_eqv — Effectue une équivalence de bits de deux variants

Description

variant_eqv(mixed $left, mixed $right): variant

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.

Erreurs / Exceptions

Lance une com_exception en cas d'échec.


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, PHP 8)

variant_fix — Récupère la portion entière d'un variant

Description

variant_fix(mixed $value): variant

Récupère la portion entière d'un variant.

Liste de paramètres

value

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 value 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 value.

Erreurs / Exceptions

Lance une com_exception en cas d'échec.

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, PHP 8)

variant_get_type — Retourne le type d'un objet variant

Description

variant_get_type(variant $variant): int

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.

Voir aussi

  • variant_set_type() - Convertit un variant en un autre type "sur-place"


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, PHP 8)

variant_idiv — Convertit des variants en valeurs entières, et effectue alors une division

Description

variant_idiv(mixed $left, mixed $right): variant

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 | Une com_exception avec code DISP_E_DIVBYZERO est lancée

Erreurs / Exceptions

Lance une com_exception en cas d'échec.

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, PHP 8)

variant_imp — Exécute une implication sur les bits de deux variants

Description

variant_imp(mixed $left, mixed $right): variant

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 | false
true | null | true
false | true | true
false | false | true
false | null | true
null | true | true
null | false | null
null | null | null

Erreurs / Exceptions

Lance une com_exception en cas d'échec.


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, PHP 8)

variant_int — Retourne la partie entière d'un variant

Description

variant_int(mixed $value): variant

Récupère la partie entière d'un variant.

Liste de paramètres

value

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 value 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 value.

Erreurs / Exceptions

Lance une com_exception en cas d'échec.

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, PHP 8)

variant_mod — Divise deux variantes et retourne le reste

Description

variant_mod(mixed $left, mixed $right): variant

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.

Erreurs / Exceptions

Lance une com_exception en cas d'échec.

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, PHP 8)

variant_mul — Multiplie les valeurs de deux variants

Description

variant_mul(mixed $left, mixed $right): variant

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

Erreurs / Exceptions

Lance une com_exception en cas d'échec.

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, PHP 8)

variant_neg — Effectue une négation logique sur un variant

Description

variant_neg(mixed $value): variant

Effectue une négation logique sur value.

Liste de paramètres

value

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.

Erreurs / Exceptions

Lance une com_exception en cas d'échec.


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, PHP 8)

variant_not — Exécute une négation sur les bits sur un variant

Description

variant_not(mixed $value): variant

Exécute une négation sur les bits sur le paramètre value et retourne le résultat.

Liste de paramètres

value

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 value vaut null, le résultat sera également null.

Erreurs / Exceptions

Lance une com_exception en cas d'échec.


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, PHP 8)

variant_or — Performe une disjonction logique sur deux variants

Description

variant_or(mixed $left, mixed $right): variant

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

Erreurs / Exceptions

Lance une com_exception en cas d'échec.

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, PHP 8)

variant_pow — Retourne le résultat de la fonction puissance avec deux variants

Description

variant_pow(mixed $left, mixed $right): variant

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.

Erreurs / Exceptions

Lance une com_exception en cas d'échec.

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, PHP 8)

variant_round — Arrondit le variant au nombre spécifié de décimales

Description

variant_round(mixed $value, int $decimals): ?variant

Retourne la valeur de value arrondi à decimals décimales.

Liste de paramètres

value

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, ou null en cas d'échec.

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, PHP 8)

variant_set_type — Convertit un variant en un autre type "sur-place"

Description

variant_set_type(variant $variant, int $type): void

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
  • variant_get_type() - Retourne le type d'un objet variant


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, PHP 8)

variant_set — Assigne une nouvelle valeur pour un objet variant

Description

variant_set(variant $variant, mixed $value): void

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, PHP 8)

variant_sub — Soustrait la valeur du variant de droite de la valeur de celui de gauche

Description

variant_sub(mixed $left, mixed $right): variant

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

Erreurs / Exceptions

Lance une com_exception en cas d'échec.

Voir aussi

  • variant_add() - "Ajoute" deux valeurs de variants et retourne le résultat


Exécute une exclusion logique sur deux variants

  • « variant_sub
  • win32service »
  • PHP Manual
  • Fonctions COM et .Net (Windows)
  • Exécute une exclusion logique sur deux variants

variant_xor

(PHP 5, PHP 7, PHP 8)

variant_xor — Exécute une exclusion logique sur deux variants

Description

variant_xor(mixed $left, mixed $right): variant

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

Erreurs / Exceptions

Lance une com_exception en cas d'échec.

Voir aussi

  • variant_or() - Performe une disjonction logique sur deux variants
  • variant_and() - Effectue un ET entre deux variants et retourne le résultat


win32service

  • Introduction
  • Installation/Configuration
    • Pré-requis
    • Installation
    • Configuration à l'exécution
    • Types de ressources
    • Security consideration
  • Constantes pré-définies
  • Win32ServiceException — La class Win32ServiceException
  • 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_send_custom_control — Envoyer un contrôle personnalisé au service
    • win32_set_service_exit_code — Définir ou renvoyer le code de sortie pour le service en cours d'exécution
    • win32_set_service_exit_mode — Définir ou renvoyer le mode de sortie pour le service en cours d'exécution
    • 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.


Installation/Configuration

Sommaire

  • Pré-requis
  • Installation
  • Configuration à l'exécution
  • Types de ressources
  • Security consideration


Pré-requis

Les versions de Windows prises en charge sont les mêmes que le package redistribuable Visual C++ utilisé pour construire 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 : » https://pecl.php.net/package/win32service


  • « Configuration à l'exécution
  • Security consideration »
  • PHP Manual
  • Installation/Configuration
  • Types de ressources

Types de ressources

Cette extension ne définit aucune ressource.


Security consideration

Cette extension nécessite des privilèges d'administrateur pour certaines actions telles que create, delete, start, stop, pause et continue. Cette exigence peut provoquer une élévation des privilèges si le contrôle de service est disponible à partir de l'interface Web ou du contrôle à distance.

Vous pouvez définir l'ACL sur le service après l'avoir ajouté dans SCM pour déléguer les tâches d'administration courantes à un compte non administrateur ou à un compte de service. Pour plus d'instructions, voir la » Microsoft Knowledge Base.


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.

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
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
Constante | Valeur | Description
WIN32_SERVICE_CONTROL_CONTINUE | 0x00000003 | Avertit un service suspendu qu'il devrait reprendre.
WIN32_SERVICE_CONTROL_DEVICEEVENT | 0x0000000B |
WIN32_SERVICE_CONTROL_HARDWAREPROFILECHANGE | 0x0000000C |
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_NETBINDADD | 0x00000007 | Avertit un service réseau qu'il existe un nouveau composant pour la liaison.
WIN32_SERVICE_CONTROL_NETBINDDISABLE | 0x0000000A | Avertit un service réseau que l'une de ses liaisons a été désactivée.
WIN32_SERVICE_CONTROL_NETBINDENABLE | 0x00000009 | Avertit un service réseau qu'une liaison désactivée a été activée.
WIN32_SERVICE_CONTROL_NETBINDREMOVE | 0x00000008 | Avertit un service réseau qu'un composant pour la liaison a été supprimé.
WIN32_SERVICE_CONTROL_PARAMCHANGE | 0x00000006 | Avertit un service que ses paramètres de démarrage ont changé.
WIN32_SERVICE_CONTROL_PAUSE | 0x00000002 | Avertit un service qu'il doit se mettre en pause.
WIN32_SERVICE_CONTROL_POWEREVENT | 0x0000000D |
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_SESSIONCHANGE | 0x0000000E |
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
Constante | Valeur | Description
WIN32_SERVICE_ACCEPT_HARDWAREPROFILECHANGE | 0x00000020 | Le service est notifié lorsque le profil matériel de l'ordinateur a changé. Cela permet au système d'envoyer des notifications WIN32_SERVICE_CONTROL_HARDWAREPROFILECHANGE au service.
WIN32_SERVICE_ACCEPT_NETBINDCHANGE | 0x00000010 | Le service est un composant réseau qui peut accepter les modifications de sa liaison sans être arrêté et redémarré. Ce code de contrôle permet au service de recevoir les notifications WIN32_SERVICE_CONTROL_NETBINDADD, WIN32_SERVICE_CONTROL_NETBINDREMOVE, WIN32_SERVICE_CONTROL_NETBINDENABLE, et WIN32_SERVICE_CONTROL_NETBINDDISABLE.
WIN32_SERVICE_ACCEPT_PARAMCHANGE | 0x00000008 | Le service peut relire ses paramètres de démarrage sans être arrêté et redémarré. Ce code de contrôle permet au service de recevoir des notifications WIN32_SERVICE_CONTROL_PARAMCHANGE.
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_POWEREVENT | 0x00000040 | Le service est notifié lorsque l'état d'alimentation de l'ordinateur a changé. Cela permet au système d'envoyer des notifications WIN32_SERVICE_CONTROL_POWEREVENT au service.
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_SESSIONCHANGE | 0x00000080 | Le service est notifié lorsque l'état de session de l'ordinateur a changé. Cela permet au système d'envoyer des notifications WIN32_SERVICE_CONTROL_SESSIONCHANGE au service. Windows 2000: cette valeur n'est pas prise en charge.
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.
WIN32_SERVICE_ACCEPT_TIMECHANGE | 0x00000200 | Le service est notifié lorsque l'heure système a changé. Cela permet au système d'envoyer des notifications WIN32_SERVICE_CONTROL_TIMECHANGE au service. Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP/2000: ce code de contrôle n'est pas pris en charge.
WIN32_SERVICE_ACCEPT_TRIGGEREVENT | 0x00000400 | Le service est notifié lorsqu'un événement pour lequel le service s'est enregistré se produit. Cela permet au système d'envoyer des notifications WIN32_SERVICE_CONTROL_TRIGGEREVENT au service. Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP/2000: ce code de contrôle n'est pas pris en charge.
Constantes de Type de Demarrage du Service de Win32Service
Constante | Valeur | Description
WIN32_SERVICE_BOOT_START | 0x00000000 | Un pilote de périphérique Démarré par le chargeur système. Cette valeur est valide uniquement pour les services de pilote.
WIN32_SERVICE_SYSTEM_START | 0x00000001 | Un pilote de périphérique Démarré par la fonction IoInitSystem. Cette valeur est valide uniquement pour les services de pilote.
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
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.
WIN32_SERVICE_ERROR_SEVERE | 0x00000002 | Le programme de démarrage consigne l'erreur dans le journal des événements. Si la dernière configuration connue est lancée, l'opération de démarrage se poursuit. Sinon, le système est redémarré avec la dernière configuration connue-bonne.
WIN32_SERVICE_ERROR_CRITICAL | 0x00000003 | Le programme de démarrage consigne l'erreur dans le journal des événements, si possible. Si la dernière configuration connue est lancée, l'opération de démarrage échoue. Sinon, le système est redémarré avec la dernière bonne configuration connue.
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.

Note:

Ces constantes ne sont plus utilisées à partir de Win32Service 1.0.0.

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_ERROR_SERVICE_SPECIFIC_ERROR | 0x0000042A | Le service a retourné un code d'erreur spécifique au service.
WIN32_NO_ERROR | 0x00000000 | Aucune erreur.
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.
Actions de récupération Win32
Constante | Valeur | Description
WIN32_SC_ACTION_NONE | 0x00000000 | Aucune action.
WIN32_SC_ACTION_RESTART | 0x00000001 | Redémarrer le service.
WIN32_SC_ACTION_REBOOT | 0x00000002 | Redémarrer le serveur.
WIN32_SC_ACTION_RUN_COMMAND | 0x00000003 | Exécuter un programme.
Win32 Service informations
Constant | Value | Description
WIN32_INFO_SERVICE | "service" |
WIN32_INFO_DISPLAY | "display" |
WIN32_INFO_USER | "user" |
WIN32_INFO_PASSWORD | "password" |
WIN32_INFO_PATH | "path" |
WIN32_INFO_PARAMS | "params" |
WIN32_INFO_DESCRIPTION | "description" |
WIN32_INFO_START_TYPE | "start_type" |
INFO_LOAD_ORDER | "load_order" |
INFO_SVC_TYPE | "svc_type" |
INFO_ERROR_CONTROL | "error_control" |
INFO_DELAYED_START | "delayed_start" |
INFO_BASE_PRIORITY | "base_priority" |
INFO_DEPENDENCIES | "dependencies" |
INFO_RECOVERY_DELAY | "recovery_delay" |
INFO_RECOVERY_ACTION_1 | "recovery_action_1" |
INFO_RECOVERY_ACTION_2 | "recovery_action_2" |
INFO_RECOVERY_ACTION_3 | "recovery_action_3" |
INFO_RECOVERY_RESET_PERIOD | "recovery_reset_period" |
INFO_RECOVERY_ENABLED | "recovery_enabled" |
INFO_RECOVERY_REBOOT_MSG | "recovery_reboot_msg" |
INFO_RECOVERY_COMMAND | "recovery_command" |


La class Win32ServiceException

(PECL win32service >=1.0.0)

Introduction

L’exception remplace l’ancien mécanisme où la valeur d’erreur devait être comparée aux constantes pour détecter quelle erreur a été émise. Le code de l’exception est égal à la valeur de la constante d’erreur et le message de l’exception est basé sur le nom de la constante correspondante.

Synopsis de la classe

class Win32ServiceException extends Exception {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


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_send_custom_control — Envoyer un contrôle personnalisé au service
  • win32_set_service_exit_code — Définir ou renvoyer le code de sortie pour le service en cours d'exécution
  • win32_set_service_exit_mode — Définir ou renvoyer le mode de sortie pour le service en cours d'exécution
  • 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 >=0.1.0)

win32_continue_service — Reprise d'un service en pause

Description

win32_continue_service(string $servicename, string $machine = ?): void

Reprise d'un service en pause. Requiert des privilèges d'administrateur ou un compte avec les droits appropriés définis dans l'ACL du service.

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

Aucune valeur n'est retournée.

Avant la version 1.0.0, retournait WIN32_NO_ERROR on success, false if there is a problem with the parameters or a Win32 Error Code on failure.

Erreurs / Exceptions

Une ValueError est levée si la valeur du paramètre servicename est vide.

Une Win32ServiceException est levée en cas d'erreur.

Historique

Version | Description
PECL win32service 1.0.0 | Lance une ValueError si un paramètre est invalide, avant false était retourné.
PECL win32service 1.0.0 | Lance une Win32ServiceException en cas d'erreur, avant un Code d'erreur Win32 était retourné.
PECL win32service 1.0.0 | Le type de retour est maintenant void, avant il était mixed.
PECL win32service 0.3.0 | Cette fonction ne requiert plus de compte d'administrateur si l'ACL est défini pour un autre compte.

Voir aussi

  • win32_start_service() - Démarre un service
  • win32_stop_service() - Arrête un service
  • win32_pause_service() - Met en pause un service
  • win32_send_custom_control() - Envoyer un contrôle personnalisé au 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 >=0.1.0)

win32_create_service — Crée une nouvelle entrée pour service dans la base de données SCM

Description

win32_create_service(array $details, string $machine = ?): void

Tente d'ajouter un service dans la base de données SCM. Des privilèges d'administrateur sont nécessaires pour que cela réussisse.

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.

dependencies

Pour définir les dépendances de votre service, il est nécessaire de définir ce paramètre avec la liste des noms des service dans un tableau.

recovery_delay

Ce paramètre défini le délai entre la défaillance et l'exécution de l'action de récupération. La valeur est en millisecondes.

La valeur par défaut est 60000.

recovery_action_1

L'action qui sera exécuté lors de la première défaillance. L'action par défaut est WIN32_SC_ACTION_NONE.

Le paramètre recovery_action_1 peut être défini avec l'une des constantes définie dans les Actions de récupération Win32.

recovery_action_2

L'action qui sera exécuté lors de la deuxième défaillance. L'action par défaut est WIN32_SC_ACTION_NONE.

Le paramètre recovery_action_2 peut être défini avec l'une des constantes définie dans les Actions de récupération Win32.

recovery_action_3

L'action qui sera exécuté lors des défaillances suivantes. L'action par défaut est WIN32_SC_ACTION_NONE.

Le paramètre recovery_action_3 peut être défini avec l'une des constantes définie dans les Actions de récupération Win32.

recovery_reset_period

Le compteur des défaillance sera réinitialisé après le délai défini dans ce paramètre. Le délai est exprimé en secondes.

La valeur par défaut est 86400.

recovery_enabled

Définir ce paramètre à true pour activer les options de récupération, et false pour les désactiver.

La valeur par défaut est false

recovery_reboot_msg

Ajouter ce paramètre pour définir le message enregistré dans le jounal d'évènements Windows avant le redémarrage. Utilisé uniquement si l'une des actions est défini à WIN32_SC_ACTION_REBOOT.

recovery_command

Ajouter ce paramètre pour définir la commande a exécuter lorsqu'une action est définie à WIN32_SC_ACTION_RUN_COMMAND.

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

Aucune valeur n'est retournée.

Avant la version 1.0.0, retournait WIN32_NO_ERROR on success, false if there is a problem with the parameters or a Win32 Error Code on failure.

Erreurs / Exceptions

Une ValueError est levée si la valeur du paramètre serviceest vide.

Une ValueError est levée si la valeur du paramètre path est omis ou vide.

Une ValueError est levée si la valeur du paramètre svc_type est incorrect.

Une ValueError est levée si la valeur du paramètre start_type est incorrect.

Une ValueError est levée si la valeur du paramètre error_control est incorrect.

Une ValueError est levée si la valeur du paramètre base_priority est incorrect.

Une ValueError est levée si la valeur du paramètre recovery_delay n'est pas entre 0 et PHP_INT_MAX.

Une ValueError est levée si la valeur du paramètre recovery_action_1 est incorrect.

Une ValueError est levée si la valeur du paramètre recovery_action_2 est incorrect.

Une ValueError est levée si la valeur du paramètre recovery_action_3 est incorrect.

Une ValueError est levée si la valeur du paramètre recovery_reset_period n'est pas entre 0 et PHP_INT_MAX.

Une Win32ServiceException est levée en cas d'erreur.

Historique

Version | Description
PECL win32service 1.0.0 | Lance une ValueError si un paramètre est invalide, avant false était retourné.
PECL win32service 1.0.0 | Lance une Win32ServiceException en cas d'erreur, avant un Code d'erreur Win32 était retourné.
PECL win32service 1.0.0 | Le type de retour est maintenant void, avant il était mixed.
PECL win32service 0.4.0 | Les paramètres dependencies, recovery_delay, recovery_action_1, recovery_action_2, recovery_action_3, recovery_reset_period, recovery_enabled, recovery_reboot_msg et recovery_command ont été ajoutés.

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);
?>

Exemple #2 Un exemple win32_create_service() avec les dépendances

Crée un service dont le nom court est 'dummyphp' avec des dépendances.

<?php
$x = win32_create_service(array(
'service' => 'dummyphp', // Le nom du service
'display' => 'service PHP simple PHP', // Une courte description
'description' => 'Ceci est un service Windows créé en utilisant PHP.', // Une longue description
'params' => '"' . __FILE__ . '" run', // chemin vers le script ainsi que les paramètres
'dependencies' => array("Netman"), // La liste des dépendances
));
debug_zval_dump($x);
?>

Exemple #3 Exemple de win32_create_service() avec les options de récupération

Crée un service dont le nom court est 'dummyphp' avec les options de récupération.

<?php
$x = win32_create_service(array(
'service' => 'dummyphp', // Le nom du service
'display' => 'service PHP simple PHP', // Une courte description
'description' => 'Ceci est un service Windows créé en utilisant PHP.', // Une longue description
'params' => '"' . __FILE__ . '" run', // chemin vers le script ainsi que les paramètres
'recovery_delay' => 120000, // Les actions de récupération seront exécuté après 2 minutes
'recovery_action_1' => WIN32_SC_ACTION_RESTART, // Première défaillance, redémarrage du service
'recovery_action_2' => WIN32_SC_ACTION_RUN_COMMAND, // Deuxième défaillance, exécution d'une commande
'recovery_action_3' => WIN32_SC_ACTION_NONE, // Défaillance suivante, ne rien faire
'recovery_reset_period' => 86400, // Réinitialiser le compteur des défaillance après 1 jour (86400 minutes)
'recovery_enabled' => true, // Activer les options de récupération
'recovery_reboot_msg' => null, // Ne pas définir de message de redémarrage, il n'est pas utile.
'recovery_command' => "c:\clean-service.bat", // Lorsque l'action est WIN32_SC_ACTION_RUN_COMMAND, exécuter cette commande.
));
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 actions de récupération 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 >=0.1.0)

win32_delete_service — Supprime une entrée de service de la base de données SCM

Description

win32_delete_service(string $servicename, string $machine = ?): void

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

Aucune valeur n'est retournée.

Avant la version 1.0.0, retournait WIN32_NO_ERROR on success, false if there is a problem with the parameters or a Win32 Error Code on failure.

Erreurs / Exceptions

Une ValueError est levée si la valeur du paramètre servicename est vide.

Une Win32ServiceException est levée en cas d'erreur.

Historique

Version | Description
PECL win32service 1.0.0 | Lance une ValueError si un paramètre est invalide, avant false était retourné.
PECL win32service 1.0.0 | Lance une Win32ServiceException en cas d'erreur, avant un Code d'erreur Win32 était retourné.
PECL win32service 1.0.0 | Le type de retour est maintenant void, avant il était mixed.

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 >=0.1.0)

win32_get_last_control_message — Retourne le dernier message de contrôle qui a été envoyé à ce service

Description

win32_get_last_control_message(): int

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é.

Attention

Depuis la version 0.2.0, cette fonction fonctionne uniquement en ligne de commande. Elle est désactivé dans les autres cas.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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_DEVICEEVENT, WIN32_SERVICE_CONTROL_HARDWAREPROFILECHANGE, WIN32_SERVICE_CONTROL_INTERROGATE, WIN32_SERVICE_CONTROL_NETBINDADD, WIN32_SERVICE_CONTROL_NETBINDDISABLE, WIN32_SERVICE_CONTROL_NETBINDENABLE, WIN32_SERVICE_CONTROL_NETBINDREMOVE, WIN32_SERVICE_CONTROL_PARAMCHANGE, WIN32_SERVICE_CONTROL_PAUSE, WIN32_SERVICE_CONTROL_POWEREVENT, WIN32_SERVICE_CONTROL_PRESHUTDOWN, WIN32_SERVICE_CONTROL_SESSIONCHANGE, WIN32_SERVICE_CONTROL_SHUTDOWN, WIN32_SERVICE_CONTROL_STOP.

Si la valeur se situe entre 128 et 255, le code de contrôle est personnalisé.

Erreurs / Exceptions

Avant la version 1.0.0, si cette fonction est utilisé en dehors du SAPI "cli", une erreur E_ERROR sera émise.

À partir de la version 1.0.0, lancera une Win32ServiceException si le SAPI n'est pas "cli"

Historique

Version | Description
PECL win32service 1.0.0 | Lance une ValueError si un paramètre est invalide, avant false était retourné.
PECL win32service 1.0.0 | Lance une Win32ServiceException en cas d'erreur, avant un Code d'erreur Win32 était retourné.
PECL win32service 0.2.0 | Cette fonction fonctionne uniquement en ligne de commande.

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é
  • win32_set_service_status() - Met à jour le statut d'un service
  • win32_set_service_exit_mode() - Définir ou renvoyer le mode de sortie pour le service en cours d'exécution
  • win32_set_service_exit_code() - Définir ou renvoyer le code de sortie pour le service en cours d'exécution
  • 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 >=0.1.0)

win32_pause_service — Met en pause un service

Description

win32_pause_service(string $servicename, string $machine = ?): void

Met en pause un service. Requiert des privilèges d'administrateur ou un compte avec les droits appropriés définis dans l'ACL du service.

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

Aucune valeur n'est retournée.

Avant la version 1.0.0, retournait WIN32_NO_ERROR on success, false if there is a problem with the parameters or a Win32 Error Code on failure.

Erreurs / Exceptions

Une ValueError est levée si la valeur du paramètre servicename est vide.

Une Win32ServiceException est levée en cas d'erreur.

Historique

Version | Description
PECL win32service 1.0.0 | Lance une ValueError si un paramètre est invalide, avant false était retourné.
PECL win32service 1.0.0 | Lance une Win32ServiceException en cas d'erreur, avant un Code d'erreur Win32 était retourné.
PECL win32service 1.0.0 | Le type de retour est maintenant void, avant il était mixed.
PECL win32service 0.3.0 | Cette fonction ne requiert plus de compte d'administrateur si l'ACL est défini pour un autre compte.

Voir aussi

  • win32_start_service() - Démarre un service
  • win32_stop_service() - Arrête un service
  • win32_continue_service() - Reprise d'un service en pause
  • win32_send_custom_control() - Envoyer un contrôle personnalisé au service
  • Les codes erreur Win32


Questionne le statut d'un service

  • « win32_pause_service
  • win32_send_custom_control »
  • PHP Manual
  • Fonctions win32service
  • Questionne le statut d'un service

win32_query_service_status

(PECL win32service >=0.1.0)

win32_query_service_status — Questionne le statut d'un service

Description

win32_query_service_status(string $servicename, string $machine = ?): array

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.

Avant la version 1.0.0, 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. Cette valeur est égale à WIN32_ERROR_SERVICE_SPECIFIC_ERROR si le mode de sortie n'est pas gracieux. Voir codes d'erreur Win32Service et win32_set_service_exit_mode().

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. Cette valeur est égale à la valeur définie par win32_set_service_exit_code().

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 cœur 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.

Erreurs / Exceptions

Une ValueError est levée si la valeur du paramètre servicename est vide.

Historique

Version | Description
PECL win32service 1.0.0 | Lance une ValueError si un paramètre est invalide, avant false était retourné.
PECL win32service 1.0.0 | Lance une Win32ServiceException en cas d'erreur, avant un Code d'erreur Win32 était retourné.
PECL win32service 1.0.0 | Le type de retour est maintenant array, avant il était mixed.

Voir aussi

  • Les constantes Win32Service prédéfinies


Envoyer un contrôle personnalisé au service

  • « win32_query_service_status
  • win32_set_service_exit_code »
  • PHP Manual
  • Fonctions win32service
  • Envoyer un contrôle personnalisé au service

win32_send_custom_control

(PECL win32service >=0.4.0)

win32_send_custom_control — Envoyer un contrôle personnalisé au service

Description

win32_send_custom_control(string $servicename, int $control, string $machine = ?): void

Voir » Microsoft ControlService function pour plus de détails.

Liste de paramètres

servicename

Le nom abrégé du service.

control

La valeur de contrôle personnalisé entre 128 et 255.

machine

Nom de la machine en option. Si omis, l'ordinateur local est utilisé.

Valeurs de retour

Aucune valeur n'est retournée.

Avant la version 1.0.0, retournait WIN32_NO_ERROR on success, false if there is a problem with the parameters or a Win32 Error Code on failure.

Erreurs / Exceptions

Avant la version 1.0.0, si la valeur de contrôle n'est pas compris entre 128 et 255, cette fonction émet une erreur de niveau E_ERROR.

Une ValueError est levée si la valeur du paramètre servicename est vide.

Une ValueError est levé si la valeur du paramètre control n'est pas entre 128 et 255.

Une Win32ServiceException est levée en cas d'erreur.

Historique

Version | Description
PECL win32service 1.0.0 | Lance une ValueError si un paramètre est invalide, avant false était retourné.
PECL win32service 1.0.0 | Lance une Win32ServiceException en cas d'erreur, avant un Code d'erreur Win32 était retourné.
PECL win32service 1.0.0 | Le type de retour est maintenant void, avant il était mixed.

Voir aussi

  • win32_start_service() - Démarre un service
  • win32_stop_service() - Arrête un service
  • win32_pause_service() - Met en pause un service
  • win32_continue_service() - Reprise d'un service en pause
  • Win32 Error Codes


Définir ou renvoyer le code de sortie pour le service en cours d'exécution

  • « win32_send_custom_control
  • win32_set_service_exit_mode »
  • PHP Manual
  • Fonctions win32service
  • Définir ou renvoyer le code de sortie pour le service en cours d'exécution

win32_set_service_exit_code

(PECL win32service >=0.4.0)

win32_set_service_exit_code — Définir ou renvoyer le code de sortie pour le service en cours d'exécution

Description

win32_set_service_exit_code(int $exitCode = 1): int

Change ou retourne le code de sortie. Le code de sortie est utilisé uniquement si le mode de sortie n'est pas gracieux. Si la valeur n'est pas zéro, la configuration de récupération peut être utilisée après l'échec du service. Voir » les codes d'erreur système Microsoft pour plus de détails

Attention

Cette fonction fonctionne uniquement dans SAPI "cli". Sur d'autres SAPI, cette fonction est désactivée.

Liste de paramètres

exitCode

Le code de retour utilisé à la sortie.

Valeurs de retour

Retourne le code de sortie actuel ou l'ancien.

Erreurs / Exceptions

Avant la version 1.0.0, si cette fonction est utilisé en dehors du SAPI "cli", une erreur E_ERROR sera émise.

À partir de la version 1.0.0, lancera une Win32ServiceException si le SAPI n'est pas "cli"

Historique

Version | Description
PECL win32service 1.0.0 | Lance une ValueError si un paramètre est invalide, avant false était retourné.
PECL win32service 1.0.0 | Lance une Win32ServiceException en cas d'erreur, avant un Code d'erreur Win32 était retourné.

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é
  • win32_set_service_status() - Met à jour le statut d'un service
  • win32_set_service_exit_mode() - Définir ou renvoyer le mode de sortie pour le service en cours d'exécution


Définir ou renvoyer le mode de sortie pour le service en cours d'exécution

  • « win32_set_service_exit_code
  • win32_set_service_status »
  • PHP Manual
  • Fonctions win32service
  • Définir ou renvoyer le mode de sortie pour le service en cours d'exécution

win32_set_service_exit_mode

(PECL win32service >=0.4.0)

win32_set_service_exit_mode — Définir ou renvoyer le mode de sortie pour le service en cours d'exécution

Description

win32_set_service_exit_mode(bool $gracefulMode = true): bool

Si le paramètre gracefulMode est fourni, le mode de sortie est modifié. Lorsque le mode de sortie n'est pas gracefuly, le code de sortie utilisé peut être défini avec la fonction win32_set_service_exit_code().

Attention

Cette fonction fonctionne uniquement dans SAPI "cli". Sur d'autres SAPI, cette fonction est désactivée.

Liste de paramètres

gracefulMode

true pour la sortie gracieuse. false pour la sortie avec erreur.

Valeurs de retour

Retournez le mode de sortie actuel ou ancien.

Erreurs / Exceptions

Avant la version 1.0.0, si cette fonction est utilisé en dehors du SAPI "cli", une erreur E_ERROR sera émise.

À partir de la version 1.0.0, lancera une Win32ServiceException si le SAPI n'est pas "cli"

Historique

Version | Description
PECL win32service 1.0.0 | Lance une ValueError si un paramètre est invalide, avant false était retourné.
PECL win32service 1.0.0 | Lance une Win32ServiceException en cas d'erreur, avant un Code d'erreur Win32 était retourné.

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é
  • win32_set_service_status() - Met à jour le statut d'un service
  • win32_set_service_exit_code() - Définir ou renvoyer le code de sortie pour le service en cours d'exécution


Met à jour le statut d'un service

  • « win32_set_service_exit_mode
  • win32_start_service_ctrl_dispatcher »
  • PHP Manual
  • Fonctions win32service
  • Met à jour le statut d'un service

win32_set_service_status

(PECL win32service >=0.1.0)

win32_set_service_status — Met à jour le statut d'un service

Description

win32_set_service_status(int $status, int $checkpoint = 0): void

Informe le SCM d'un statut courant d'un service qui fonctionne. Cet appel est seulement valide pour un processus de service qui fonctionne.

Attention

Depuis la version 0.2.0, cette fonction fonctionne uniquement en ligne de commande. Elle est désactivé dans les autres cas.

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

Aucune valeur n'est retournée.

Avant la version 1.0.0, retournait WIN32_NO_ERROR on success, false if there is a problem with the parameters or a Win32 Error Code on failure.

Erreurs / Exceptions

Avant la version 1.0.0, si cette fonction est utilisé en dehors du SAPI "cli", une erreur E_ERROR sera émise.

À partir de la version 1.0.0, lancera une Win32ServiceException si le SAPI n'est pas "cli"

Historique

Version | Description
PECL win32service 1.0.0 | Lance une ValueError si un paramètre est invalide, avant false était retourné.
PECL win32service 1.0.0 | Lance une Win32ServiceException en cas d'erreur, avant un Code d'erreur Win32 était retourné.
PECL win32service 1.0.0 | Le type de retour est maintenant void, avant il était mixed.
PECL win32service 0.2.0 | Cette fonction fonctionne uniquement en ligne de commande.

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é
  • win32_get_last_control_message() - Retourne le dernier message de contrôle qui a été envoyé à ce service
  • win32_set_service_exit_mode() - Définir ou renvoyer le mode de sortie pour le service en cours d'exécution
  • win32_set_service_exit_code() - Définir ou renvoyer le code de sortie pour le service en cours d'exécution
  • 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 >=0.1.0)

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

win32_start_service_ctrl_dispatcher(string $name, bool $gracefulMode = true): void

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é.

Attention

Depuis la version 0.2.0, cette fonction fonctionne uniquement en ligne de commande. Elle est désactivé dans les autres cas.

Liste de paramètres

name

Le court nom du service, comme enregistré par win32_create_service().

gracefulMode

true pour la sortie gracieuse. false pour la sortie avec erreur. Voir win32_set_service_exit_mode() pour plus de détails.

Valeurs de retour

Aucune valeur n'est retournée.

Avant la version 1.0.0, retournait WIN32_NO_ERROR on success, false if there is a problem with the parameters or a Win32 Error Code on failure.

Erreurs / Exceptions

Avant la version 1.0.0, si cette fonction est utilisé en dehors du SAPI "cli", une erreur E_ERROR sera émise.

À partir de la version 1.0.0, lancera une Win32ServiceException si le SAPI n'est pas "cli"

Historique

Version | Description
PECL win32service 1.0.0 | Lance une ValueError si un paramètre est invalide, avant false était retourné.
PECL win32service 1.0.0 | Lance une Win32ServiceException en cas d'erreur, avant un Code d'erreur Win32 était retourné.
PECL win32service 1.0.0 | Le type de retour est maintenant void, avant il était mixed.
PECL win32service 0.4.0 | Le paramètre gracefulMode a été ajouté.
PECL win32service 0.2.0 | Cette fonction fonctionne uniquement en ligne de commande.

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
  • win32_set_service_exit_mode() - Définir ou renvoyer le mode de sortie pour le service en cours d'exécution
  • win32_set_service_exit_code() - Définir ou renvoyer le code de sortie pour le service en cours d'exécution
  • 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 >=0.1.0)

win32_start_service — Démarre un service

Description

win32_start_service(string $servicename, string $machine = ?): void

Essaie de démarrer le service nommé. Requiert des privilèges d'administrateur ou un compte avec les droits appropriés définis dans l'ACL du service.

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

Aucune valeur n'est retournée.

Avant la version 1.0.0, retournait WIN32_NO_ERROR on success, false if there is a problem with the parameters or a Win32 Error Code on failure.

Erreurs / Exceptions

Une ValueError est levée si la valeur du paramètre servicename est vide.

Une Win32ServiceException est levée en cas d'erreur.

Historique

Version | Description
PECL win32service 1.0.0 | Lance une ValueError si un paramètre est invalide, avant false était retourné.
PECL win32service 1.0.0 | Lance une Win32ServiceException en cas d'erreur, avant un Code d'erreur Win32 était retourné.
PECL win32service 1.0.0 | Le type de retour est maintenant void, avant il était mixed.
PECL win32service 0.3.0 | Cette fonction ne requiert plus de compte d'administrateur si l'ACL est défini pour un autre compte.

Voir aussi

  • win32_stop_service() - Arrête un service
  • win32_pause_service() - Met en pause un service
  • win32_continue_service() - Reprise d'un service en pause
  • win32_send_custom_control() - Envoyer un contrôle personnalisé au 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 >=0.1.0)

win32_stop_service — Arrête un service

Description

win32_stop_service(string $servicename, string $machine = ?): void

Arrête un service nommé. Requiert des privilèges d'administrateur ou un compte avec les droits appropriés définis dans l'ACL du service.

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

Aucune valeur n'est retournée.

Avant la version 1.0.0, retournait WIN32_NO_ERROR on success, false if there is a problem with the parameters or a Win32 Error Code on failure.

Erreurs / Exceptions

Une ValueError est levée si la valeur du paramètre servicename est vide.

Une Win32ServiceException est levée en cas d'erreur.

Historique

Version | Description
PECL win32service 1.0.0 | Lance une ValueError si un paramètre est invalide, avant false était retourné.
PECL win32service 1.0.0 | Lance une Win32ServiceException en cas d'erreur, avant un Code d'erreur Win32 était retourné.
PECL win32service 1.0.0 | Le type de retour est maintenant void, avant il était mixed.
PECL win32service 0.3.0 | Cette fonction ne requiert plus de compte d'administrateur si l'ACL est défini pour un autre compte.

Voir aussi

  • win32_start_service() - Démarre un service
  • win32_pause_service() - Met en pause un service
  • win32_continue_service() - Reprise d'un service en pause
  • win32_send_custom_control() - Envoyer un contrôle personnalisé au 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
    • DOMChildNode — L'interface DOMChildNode
    • 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
    • DOMNameSpaceNode — The DOMNameSpaceNode class
    • DOMNode — La classe DOMNode
    • DOMNodeList — La classe DOMNodeList
    • DOMNotation — La classe DOMNotation
    • DOMParentNode — L'interface DOMParentNode
    • 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
  • 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
    • XMLParser — La classe XMLParser
  • XMLReader
    • Introduction
    • Installation/Configuration
    • XMLReader — La classe XMLReader
  • XMLWriter
    • Introduction
    • Installation/Configuration
    • Constantes pré-définies
    • Exemples
    • XMLWriter — La classe 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::after — Adds nodes after the character data
    • DOMCharacterData::appendData — Ajoute la chaîne à la fin des données dans le nœud
    • DOMCharacterData::before — Adds nodes before the node
    • DOMCharacterData::deleteData — Supprime une sous-chaîne dans le nœud
    • DOMCharacterData::insertData — Insère une chaîne à la position spécifiée d'unité 16-bit
    • DOMCharacterData::remove — Removes the character data
    • DOMCharacterData::replaceData — Remplace une sous-chaîne dans le nœud DOMCharacterData
    • DOMCharacterData::replaceWith — Replaces the character data with new nodes
    • DOMCharacterData::substringData — Extrait un morceau de données dans le nœud
  • DOMChildNode — L'interface DOMChildNode
    • DOMChildNode::after — Ajoute des nœuds après le nœud
    • DOMChildNode::before — Ajoute des nœuds avant le nœud
    • DOMChildNode::remove — Supprime le nœud
    • DOMChildNode::replaceWith — Remplace le nœud par de nouveaux nœuds
  • DOMComment — La classe DOMComment
    • DOMComment::__construct — Crée un nouvel objet DOMComment
  • DOMDocument — La classe DOMDocument
    • DOMDocument::adoptNode — Transfer a node from another document
    • DOMDocument::append — Appends nodes after the last child node
    • 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 nœud cdata
    • DOMDocument::createComment — Crée un nouveau nœud de commentaire
    • DOMDocument::createDocumentFragment — Crée un nouveau fragment de document
    • DOMDocument::createElement — Crée un nouveau nœud
    • DOMDocument::createElementNS — Crée un nouveau nœud avec un espace de noms associé
    • DOMDocument::createEntityReference — Crée un nouveau nœud de référence d'entité
    • DOMDocument::createProcessingInstruction — Crée un nouveau nœud PI
    • DOMDocument::createTextNode — Crée un nouveau nœud 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 nœud 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::prepend — Prepends nodes before the first child node
    • DOMDocument::registerNodeClass — Enregistre la classe étendue utilisée pour créer un type de base de nœud
    • DOMDocument::relaxNGValidate — Effectue une validation relaxNG sur le document
    • DOMDocument::relaxNGValidateSource — Effectue une validation relaxNG sur le document
    • DOMDocument::replaceChildren — Replace children in 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. Seuls les schémas XML 1.0 sont supportés.
    • 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::append — Appends nodes after the last child node
    • DOMDocumentFragment::appendXML — Ajoute des données XML
    • DOMDocumentFragment::__construct — Construit un objet DOMDocumentFragment
    • DOMDocumentFragment::prepend — Prepends nodes before the first child node
    • DOMDocumentFragment::replaceChildren — Replace children in fragment
  • DOMDocumentType — La classe DOMDocumentType
  • DOMElement — La classe DOMElement
    • DOMElement::after — Adds nodes after the element
    • DOMElement::append — Appends nodes after the last child node
    • DOMElement::before — Adds nodes before the element
    • DOMElement::__construct — Crée un nouvel objet DOMElement
    • DOMElement::getAttribute — Retourne la valeur d'un attribut
    • DOMElement::getAttributeNames — Get attribute names
    • DOMElement::getAttributeNode — Retourne le nœud d'attribut
    • DOMElement::getAttributeNodeNS — Retourne le nœud 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::insertAdjacentElement — Insert adjacent element
    • DOMElement::insertAdjacentText — Insert adjacent text
    • DOMElement::prepend — Prepends nodes before the first child node
    • DOMElement::remove — Removes the element
    • DOMElement::removeAttribute — Efface un attribut
    • DOMElement::removeAttributeNode — Efface un attribut
    • DOMElement::removeAttributeNS — Efface un attribut
    • DOMElement::replaceChildren — Replace children in element
    • DOMElement::replaceWith — Replaces the element with new nodes
    • DOMElement::setAttribute — Ajoute un nouvel attribut, ou modifie un attribut existant
    • 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 nœud à ê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::toggleAttribute — Toggle attribute
  • 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::count — Récupère le nombre de nœuds dans la collection non triée (map)
    • DOMNamedNodeMap::getIterator — Retrieve an external iterator
    • DOMNamedNodeMap::getNamedItem — Retourne un nœud spécifié par son nom
    • DOMNamedNodeMap::getNamedItemNS — Retourne un nœud spécifié par son nom local et son espace de noms
    • DOMNamedNodeMap::item — Retourne un nœud selon son index
  • DOMNameSpaceNode — The DOMNameSpaceNode class
  • DOMNode — La classe DOMNode
    • DOMNode::appendChild — Ajoute un nouveau fils à la fin des fils
    • DOMNode::C14N — Canonise des nœuds en une chaîne
    • DOMNode::C14NFile — Canonise des nœuds en fichier
    • DOMNode::cloneNode — Clone un nœud
    • DOMNode::contains — Checks if node contains other node
    • DOMNode::getLineNo — Lit le numéro de ligne d'un nœud
    • DOMNode::getNodePath — Récupère un XPath pour un nœud
    • DOMNode::getRootNode — Get root node
    • DOMNode::hasAttributes — Vérifie si le nœud possède un attribut
    • DOMNode::hasChildNodes — Vérifie si le nœud possède des enfants
    • DOMNode::insertBefore — Ajoute un nouveau fils avant un nœud de référence.
    • DOMNode::isDefaultNamespace — Vérifie si l'espace de nom spécifié est l'espace de noms par défaut ou non
    • DOMNode::isEqualNode — Checks that both nodes are equal
    • DOMNode::isSameNode — Indique si deux nœuds 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 nœud
    • DOMNode::removeChild — Supprime un fils de la liste des enfants
    • DOMNode::replaceChild — Remplace un fils
  • DOMNodeList — La classe DOMNodeList
    • DOMNodeList::count — Récupère le nombre de nœuds dans la collection triée (list)
    • DOMNodeList::getIterator — Retrieve an external iterator
    • DOMNodeList::item — Retourne un nœud spécifié par son index
  • DOMNotation — La classe DOMNotation
  • DOMParentNode — L'interface DOMParentNode
    • DOMParentNode::append — Ajoute des nœuds après le dernier nœud enfant
    • DOMParentNode::prepend — Ajoute des nœuds avant le premier nœud enfant
    • DOMParentNode::replaceChildren — Replace children in node
  • 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::isElementContentWhitespace — Rapporte si le nœud textuel contient des caractères d'espacement blanc
    • DOMText::isWhitespaceInElementContent — Indique si ce nœud de texte contient des espaces blancs
    • DOMText::splitText — Coupe le nœud en deux nœuds à 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 permet d'effectuer des opérations sur les documents XML et HTML via l'API DOM de PHP.

Note:

L'extension DOM utilise l'encodage UTF-8. Utilisez mb_convert_encoding(), UConverter::transcode(), ou iconv() pour manipuler d'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 (int) | 1 | Le nœud est un DOMElement
XML_ATTRIBUTE_NODE (int) | 2 | Le nœud est un DOMAttr
XML_TEXT_NODE (int) | 3 | Le nœud est un DOMText
XML_CDATA_SECTION_NODE (int) | 4 | Le nœud est un DOMCharacterData
XML_ENTITY_REF_NODE (int) | 5 | Le nœud est un DOMEntityReference
XML_ENTITY_NODE (int) | 6 | Le nœud est un DOMEntity
XML_PI_NODE (int) | 7 | Le nœud est un DOMProcessingInstruction
XML_COMMENT_NODE (int) | 8 | Le nœud est un DOMComment
XML_DOCUMENT_NODE (int) | 9 | Le nœud est un DOMDocument
XML_DOCUMENT_TYPE_NODE (int) | 10 | Le nœud est un DOMDocumentType
XML_DOCUMENT_FRAG_NODE (int) | 11 | Le nœud est un DOMDocumentFragment
XML_NOTATION_NODE (int) | 12 | Le nœud est un DOMNotation
XML_HTML_DOCUMENT_NODE (int) | 13 |
XML_DTD_NODE (int) | 14 |
XML_ELEMENT_DECL_NODE (int) | 15 |
XML_ATTRIBUTE_DECL_NODE (int) | 16 |
XML_ENTITY_DECL_NODE (int) | 17 |
XML_NAMESPACE_DECL_NODE (int) | 18 |
XML_ATTRIBUTE_CDATA (int) | 1 |
XML_ATTRIBUTE_ID (int) | 2 |
XML_ATTRIBUTE_IDREF (int) | 3 |
XML_ATTRIBUTE_IDREFS (int) | 4 |
XML_ATTRIBUTE_ENTITY (int) | 5 |
XML_ATTRIBUTE_NMTOKEN (int) | 7 |
XML_ATTRIBUTE_NMTOKENS (int) | 8 |
XML_ATTRIBUTE_ENUMERATION (int) | 9 |
XML_ATTRIBUTE_NOTATION (int) | 10 |
Constantes DOMException
Constante | Valeur | Description
DOM_PHP_ERR (int) | 0 | Code erreur ne faisant pas partie de la spécification DOM. Utilisé pour les erreurs PHP.
DOM_INDEX_SIZE_ERR (int) | 1 | Si l'index ou la taille sont négatifs ou plus grands que la valeur autorisée.
DOMSTRING_SIZE_ERR (int) | 2 | Si la rangée spécifiée de texte ne tient pas dans le DOMString.
DOM_HIERARCHY_REQUEST_ERR (int) | 3 | Si un nœud est inséré à un endroit non autorisé
DOM_WRONG_DOCUMENT_ERR (int) | 4 | Si un nœud est utilisé dans un document autre que celui qui l'a créé.
DOM_INVALID_CHARACTER_ERR (int) | 5 | Si un caractère invalide ou non autorisé est spécifié, par exemple, dans un nom.
DOM_NO_DATA_ALLOWED_ERR (int) | 6 | Si des données sont spécifiées dans un nœud qui ne supporte pas les données.
DOM_NO_MODIFICATION_ALLOWED_ERR (int) | 7 | Si une tentative est faite de modifier un objet où les modifications ne sont pas autorisées.
DOM_NOT_FOUND_ERR (int) | 8 | Si une tentative est faite de référencer un nœud dans un contexte où il n'existe pas.
DOM_NOT_SUPPORTED_ERR (int) | 9 | Si l'implémentation ne supporte pas le type requis de l'objet ou de l'opération.
DOM_INUSE_ATTRIBUTE_ERR (int) | 10 | Si une tentative est faite d'ajouter un attribut qui est déjà utilisé autre part.
DOM_INVALID_STATE_ERR (int) | 11 | Si une tentative est faite d'utiliser un objet qui n'est pas, ou n'est plus, utilisable.
DOM_SYNTAX_ERR (int) | 12 | Si une chaîne de caractères invalide ou illégale est spécifiée.
DOM_INVALID_MODIFICATION_ERR (int) | 13 | Si une tentative est faite de modifier le type d'un objet fondamental.
DOM_NAMESPACE_ERR (int) | 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 (int) | 15 | Si un paramètre ou une opération n'est pas supporté par l'objet fondamental.
DOM_VALIDATION_ERR (int) | 16 | Si un appel à une méthode tel que insertBefore ou removeChild voudrait rendre le nœud 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, PHP 8)

Introduction

DOMAttr représente un attribut dans l'objet DOMElement.

Synopsis de la classe

class DOMAttr extends DOMNode {
/* Propriétés */
public readonly string $name;
public readonly bool $specified = true;
public string $value;
public readonly ?DOMElement $ownerElement;
public readonly mixed $schemaTypeInfo = null;
/* Propriétés héritées */
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
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 bool $isConnected;
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 __construct(string $name, string $value = "")
public isId(): bool
/* Méthodes héritées */
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(?array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Propriétés

name

Le nom de l'attribut.

ownerElement

L'élément qui contient l'attribut ou null.

schemaTypeInfo

Pas encore implémenté, vaut toujours null.

specified

Pas encore implémenté, vaut toujours null.

value

La valeur de l'attribut.

Note:

Notez que les entités XML sont étendues lorsqu'une valeur est définie. Ainsi, le caractère & a une signification spéciale. Définir valeur à lui-même échouera lorsque valeur contient un &. Pour éviter l'expansion des entités, utilisez plutôt DOMElement::setAttribute().

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, PHP 8)

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 nœuds additionnels ne peuvent pas être ajoutés à ce nœud tant que ce nœud est associé à un document. Pour créer un nœud 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, PHP 8)

DOMAttr::isId — Vérifie si l'attribut est un identifiant défini

Description

public DOMAttr::isId(): bool

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.

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 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, PHP 8)

Introduction

DOMCdataSection hérite de la classe DOMText pour la représentation textuelle de la construction du bloc CData.

Synopsis de la classe

class DOMCdataSection extends DOMText {
/* Propriétés héritées */
public readonly string $wholeText;
public string $data;
public readonly int $length;
public readonly ?DOMElement $previousElementSibling;
public readonly ?DOMElement $nextElementSibling;
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
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 bool $isConnected;
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 __construct(string $data)
/* Méthodes héritées */
public DOMText::isElementContentWhitespace(): bool
public DOMText::isWhitespaceInElementContent(): bool
public DOMText::splitText(int $offset): DOMText|false
public DOMCharacterData::after(DOMNode|string ...$nodes): void
public DOMCharacterData::appendData(string $data): true
public DOMCharacterData::before(DOMNode|string ...$nodes): void
public DOMCharacterData::deleteData(int $offset, int $count): bool
public DOMCharacterData::insertData(int $offset, string $data): bool
public DOMCharacterData::remove(): void
public DOMCharacterData::replaceData(int $offset, int $count, string $data): bool
public DOMCharacterData::replaceWith(DOMNode|string ...$nodes): void
public DOMCharacterData::substringData(int $offset, int $count): string|false
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(?array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

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, PHP 8)

DOMCdataSection::__construct — Construit un nouvel objet DOMCdataSection

Description

public DOMCdataSection::__construct(string $data)

Construit un nouveau nœud CDATA. Fonctionne comme la classe DOMText.

Liste de paramètres

data

La valeur du nœud CDATA. Si non fourni, un nœud 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 nœud de texte


La classe DOMCharacterData

(PHP 5, PHP 7, PHP 8)

Introduction

Représente un nœud contenant des données. Aucun nœud ne correspond à cette classe, mais d'autres nœuds en hérite.

Synopsis de la classe

class DOMCharacterData extends DOMNode implements DOMChildNode {
/* Propriétés */
public string $data;
public readonly int $length;
public readonly ?DOMElement $previousElementSibling;
public readonly ?DOMElement $nextElementSibling;
/* Propriétés héritées */
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
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 bool $isConnected;
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 after(DOMNode|string ...$nodes): void
public appendData(string $data): true
public before(DOMNode|string ...$nodes): void
public deleteData(int $offset, int $count): bool
public insertData(int $offset, string $data): bool
public remove(): void
public replaceData(int $offset, int $count, string $data): bool
public replaceWith(DOMNode|string ...$nodes): void
public substringData(int $offset, int $count): string|false
/* Méthodes héritées */
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(?array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Propriétés

data

Le contenu du nœud.

length

La taille du contenu.

nextElementSibling

L'élément frère suivant ou null.

previousElementSibling

L'élément frère précédent ou null.

Historique

Version | Description
8.0.0 | Les propriétés nextElementSibling et previousElementSibling ont été ajoutées.
8.0.0 | DOMCharacterData implémente désormais DOMChildNode.

Voir aussi

  • » Spécification W3C de CharacterData

Sommaire

  • DOMCharacterData::after — Adds nodes after the character data
  • DOMCharacterData::appendData — Ajoute la chaîne à la fin des données dans le nœud
  • DOMCharacterData::before — Adds nodes before the node
  • DOMCharacterData::deleteData — Supprime une sous-chaîne dans le nœud
  • DOMCharacterData::insertData — Insère une chaîne à la position spécifiée d'unité 16-bit
  • DOMCharacterData::remove — Removes the character data
  • DOMCharacterData::replaceData — Remplace une sous-chaîne dans le nœud DOMCharacterData
  • DOMCharacterData::replaceWith — Replaces the character data with new nodes
  • DOMCharacterData::substringData — Extrait un morceau de données dans le nœud


Adds nodes after the character data

  • « DOMCharacterData
  • DOMCharacterData::appendData »
  • PHP Manual
  • DOMCharacterData
  • Adds nodes after the character data

DOMCharacterData::after

(PHP 8)

DOMCharacterData::after — Adds nodes after the character data

Description

public DOMCharacterData::after(DOMNode|string ...$nodes): void

Adds the passed nodes after the element.

Liste de paramètres

nodes

Nœuds à ajouter après le nœud. Les chaînes de caractères sont automatiquement convertie en des nœuds textuels.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_HIERARCHY_REQUEST_ERR

Levée si le parent est d'un type qui n'autorise pas les enfants du type de l'un des nodes transmis, ou si le nœud à insérer est l'un des ancêtres de ce nœud ou ce nœud lui-même.

DOM_WRONG_DOCUMENT_ERR

Levée si l'un des nodes transmis a été créé à partir d'un document différent de celui qui a créé ce nœud.

Historique

Version | Description
8.3.0 | Appeler cette méthode sur un nœud sans parent est désormais sans effet pour aligner le comportement sur la spécification du DOM. Auparavant, cela déclenchait une DOMException avec le code DOM_HIERARCHY_REQUEST_ERR.
8.3.0 | Appeler cette méthode sur un nœud sans document propriétaire fonctionne désormais. Auparavant, cela déclenchait une DOMException avec le code DOM_HIERARCHY_REQUEST_ERR.

Exemples

Exemple #1 DOMCharacterData::after() example

Adds nodes after the character data.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container><![CDATA[hello]]></container>");
$cdata = $doc->documentElement->firstChild;

$cdata->after("beautiful", $doc->createElement("world"));

echo $doc->saveXML();
?>

L'exemple ci-dessus va afficher :

<?xml version="1.0"?>
<container><![CDATA[hello]]>beautiful<world/></container>

Voir aussi

  • DOMChildNode::after() - Ajoute des nœuds après le nœud
  • DOMCharacterData::before() - Adds nodes before the node


Ajoute la chaîne à la fin des données dans le nœud

  • « DOMCharacterData::after
  • DOMCharacterData::before »
  • PHP Manual
  • DOMCharacterData
  • Ajoute la chaîne à la fin des données dans le nœud

DOMCharacterData::appendData

(PHP 5, PHP 7, PHP 8)

DOMCharacterData::appendData — Ajoute la chaîne à la fin des données dans le nœud

Description

public DOMCharacterData::appendData(string $data): true

Ajoute la chaîne data à la fin des données dans le nœud.

Liste de paramètres

data

La chaîne à ajouter.

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.3.0 | Cette fonction a désormais un type de retour tentative de true.

Voir aussi

  • DOMCharacterData::deleteData() - Supprime une sous-chaîne dans le nœud
  • 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 nœud DOMCharacterData
  • DOMCharacterData::substringData() - Extrait un morceau de données dans le nœud


Adds nodes before the node

  • « DOMCharacterData::appendData
  • DOMCharacterData::deleteData »
  • PHP Manual
  • DOMCharacterData
  • Adds nodes before the node

DOMCharacterData::before

(PHP 8)

DOMCharacterData::before — Adds nodes before the node

Description

public DOMCharacterData::before(DOMNode|string ...$nodes): void

Adds the passed nodes before the node.

Liste de paramètres

nodes

Nœuds à ajouter avant le nœud. Les chaînes de caractères sont automatiquement convertie en des nœuds de texte.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_HIERARCHY_REQUEST_ERR

Levée si le parent est d'un type qui n'autorise pas les enfants du type de l'un des nodes transmis, ou si le nœud à insérer est l'un des ancêtres de ce nœud ou ce nœud lui-même.

DOM_WRONG_DOCUMENT_ERR

Levée si l'un des nodes transmis a été créé à partir d'un document différent de celui qui a créé ce nœud.

Historique

Version | Description
8.3.0 | Appeler cette méthode sur un nœud sans parent est désormais sans effet pour aligner le comportement sur la spécification du DOM. Auparavant, cela déclenchait une DOMException avec le code DOM_HIERARCHY_REQUEST_ERR.

Exemples

Exemple #1 DOMCharacterData::before() example

Adds nodes before the character data.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container><![CDATA[world]]></container>");
$cdata = $doc->documentElement->firstChild;

$cdata->before("hello", $doc->createElement("beautiful"));

echo $doc->saveXML();
?>

L'exemple ci-dessus va afficher :

<?xml version="1.0"?>
<container>hello<beautiful/><![CDATA[world]]></container>

Voir aussi

  • DOMChildNode::before() - Ajoute des nœuds avant le nœud
  • DOMCharacterData::after() - Adds nodes after the character data


Supprime une sous-chaîne dans le nœud

  • « DOMCharacterData::before
  • DOMCharacterData::insertData »
  • PHP Manual
  • DOMCharacterData
  • Supprime une sous-chaîne dans le nœud

DOMCharacterData::deleteData

(PHP 5, PHP 7, PHP 8)

DOMCharacterData::deleteData — Supprime une sous-chaîne dans le nœud

Description

public DOMCharacterData::deleteData(int $offset, int $count): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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 nœud
  • 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 nœud DOMCharacterData
  • DOMCharacterData::substringData() - Extrait un morceau de données dans le nœud


Insère une chaîne à la position spécifiée d'unité 16-bit

  • « DOMCharacterData::deleteData
  • DOMCharacterData::remove »
  • PHP Manual
  • DOMCharacterData
  • Insère une chaîne à la position spécifiée d'unité 16-bit

DOMCharacterData::insertData

(PHP 5, PHP 7, PHP 8)

DOMCharacterData::insertData — Insère une chaîne à la position spécifiée d'unité 16-bit

Description

public DOMCharacterData::insertData(int $offset, string $data): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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 nœud
  • DOMCharacterData::deleteData() - Supprime une sous-chaîne dans le nœud
  • DOMCharacterData::replaceData() - Remplace une sous-chaîne dans le nœud DOMCharacterData
  • DOMCharacterData::substringData() - Extrait un morceau de données dans le nœud


Removes the character data

  • « DOMCharacterData::insertData
  • DOMCharacterData::replaceData »
  • PHP Manual
  • DOMCharacterData
  • Removes the character data

DOMCharacterData::remove

(PHP 8)

DOMCharacterData::remove — Removes the character data

Description

public DOMCharacterData::remove(): void

Removes the character data.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 DOMCharacterData::remove() example

Removes the character data.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container><![CDATA[hello]]><world/></container>");
$cdata = $doc->documentElement->firstChild;

$cdata->remove();

echo $doc->saveXML();
?>

L'exemple ci-dessus va afficher :

<?xml version="1.0"?>
<container><world/></container>

Voir aussi

  • DOMChildNode::remove() - Supprime le nœud
  • DOMCharacterData::after() - Adds nodes after the character data
  • DOMCharacterData::before() - Adds nodes before the node
  • DOMCharacterData::replaceWith() - Replaces the character data with new nodes
  • DOMNode::removeChild() - Supprime un fils de la liste des enfants


Remplace une sous-chaîne dans le nœud DOMCharacterData

  • « DOMCharacterData::remove
  • DOMCharacterData::replaceWith »
  • PHP Manual
  • DOMCharacterData
  • Remplace une sous-chaîne dans le nœud DOMCharacterData

DOMCharacterData::replaceData

(PHP 5, PHP 7, PHP 8)

DOMCharacterData::replaceData — Remplace une sous-chaîne dans le nœud DOMCharacterData

Description

public DOMCharacterData::replaceData(int $offset, int $count, string $data): bool

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

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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 nœud
  • DOMCharacterData::deleteData() - Supprime une sous-chaîne dans le nœud
  • 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 nœud


Replaces the character data with new nodes

  • « DOMCharacterData::replaceData
  • DOMCharacterData::substringData »
  • PHP Manual
  • DOMCharacterData
  • Replaces the character data with new nodes

DOMCharacterData::replaceWith

(PHP 8)

DOMCharacterData::replaceWith — Replaces the character data with new nodes

Description

public DOMCharacterData::replaceWith(DOMNode|string ...$nodes): void

Replaces the character data with new nodes.

Liste de paramètres

nodes

Les nœuds de remplacement.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_HIERARCHY_REQUEST_ERR

Levée si le parent est d'un type qui n'autorise pas les enfants du type de l'un des nodes transmis, ou si le nœud à insérer est l'un des ancêtres de ce nœud ou ce nœud lui-même.

DOM_WRONG_DOCUMENT_ERR

Levée si l'un des nodes transmis a été créé à partir d'un document différent de celui qui a créé ce nœud.

Historique

Version | Description
8.3.0 | Appeler cette méthode sur un nœud sans parent est désormais une opération sans effet pour aligner le comportement avec la spécification du DOM. Auparavant, cela déclenchait une DOMException avec le code DOM_HIERARCHY_REQUEST_ERR.

Exemples

Exemple #1 DOMCharacterData::replaceWith() example

Replaces the character data with new nodes.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container><![CDATA[hello]]></container>");
$cdata = $doc->documentElement->firstChild;

$cdata->replaceWith("beautiful", $doc->createElement("world"));

echo $doc->saveXML();
?>

L'exemple ci-dessus va afficher :

<?xml version="1.0"?>
<container>beautiful<world/></container>

Voir aussi

  • DOMChildNode::replaceWith() - Remplace le nœud par de nouveaux nœuds
  • DOMCharacterData::after() - Adds nodes after the character data
  • DOMCharacterData::before() - Adds nodes before the node
  • DOMCharacterData::remove() - Removes the character data


Extrait un morceau de données dans le nœud

  • « DOMCharacterData::replaceWith
  • DOMChildNode »
  • PHP Manual
  • DOMCharacterData
  • Extrait un morceau de données dans le nœud

DOMCharacterData::substringData

(PHP 5, PHP 7, PHP 8)

DOMCharacterData::substringData — Extrait un morceau de données dans le nœud

Description

public DOMCharacterData::substringData(int $offset, int $count): string|false

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 nœud
  • DOMCharacterData::deleteData() - Supprime une sous-chaîne dans le nœud
  • 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 nœud DOMCharacterData


L'interface DOMChildNode

(PHP 8)

Sommaire de l'Interface

interface DOMChildNode {
/* Méthodes */
public after(DOMNode|string ...$nodes): void
public before(DOMNode|string ...$nodes): void
public remove(): void
public replaceWith(DOMNode|string ...$nodes): void
}

Sommaire

  • DOMChildNode::after — Ajoute des nœuds après le nœud
  • DOMChildNode::before — Ajoute des nœuds avant le nœud
  • DOMChildNode::remove — Supprime le nœud
  • DOMChildNode::replaceWith — Remplace le nœud par de nouveaux nœuds


Ajoute des nœuds après le nœud

  • « DOMChildNode
  • DOMChildNode::before »
  • PHP Manual
  • DOMChildNode
  • Ajoute des nœuds après le nœud

DOMChildNode::after

(PHP 8)

DOMChildNode::after — Ajoute des nœuds après le nœud

Description

public DOMChildNode::after(DOMNode|string ...$nodes): void

Ajoute les nodes passés après le nœud.

Liste de paramètres

nodes

Nœuds à ajouter après le nœud. Les chaînes de caractères sont automatiquement convertie en des nœuds textuels.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_HIERARCHY_REQUEST_ERR

Levée si le parent est d'un type qui n'autorise pas les enfants du type de l'un des nodes transmis, ou si le nœud à insérer est l'un des ancêtres de ce nœud ou ce nœud lui-même.

DOM_WRONG_DOCUMENT_ERR

Levée si l'un des nodes transmis a été créé à partir d'un document différent de celui qui a créé ce nœud.

Historique

Version | Description
8.3.0 | Appeler cette méthode sur un nœud sans parent est désormais sans effet pour aligner le comportement sur la spécification du DOM. Auparavant, cela déclenchait une DOMException avec le code DOM_HIERARCHY_REQUEST_ERR.
8.3.0 | Appeler cette méthode sur un nœud sans document propriétaire fonctionne désormais. Auparavant, cela déclenchait une DOMException avec le code DOM_HIERARCHY_REQUEST_ERR.

Voir aussi

  • DOMChildNode::before() - Ajoute des nœuds avant le nœud
  • DOMChildNode::remove() - Supprime le nœud
  • DOMChildNode::replaceWith() - Remplace le nœud par de nouveaux nœuds
  • DOMNode::appendChild() - Ajoute un nouveau fils à la fin des fils


Ajoute des nœuds avant le nœud

  • « DOMChildNode::after
  • DOMChildNode::remove »
  • PHP Manual
  • DOMChildNode
  • Ajoute des nœuds avant le nœud

DOMChildNode::before

(PHP 8)

DOMChildNode::before — Ajoute des nœuds avant le nœud

Description

public DOMChildNode::before(DOMNode|string ...$nodes): void

Ajoute les nodes passés avant le nœud.

Liste de paramètres

nodes

Nœuds à ajouter avant le nœud. Les chaînes de caractères sont automatiquement convertie en des nœuds de texte.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_HIERARCHY_REQUEST_ERR

Levée si le parent est d'un type qui n'autorise pas les enfants du type de l'un des nodes transmis, ou si le nœud à insérer est l'un des ancêtres de ce nœud ou ce nœud lui-même.

DOM_WRONG_DOCUMENT_ERR

Levée si l'un des nodes transmis a été créé à partir d'un document différent de celui qui a créé ce nœud.

Historique

Version | Description
8.3.0 | Appeler cette méthode sur un nœud sans parent est désormais sans effet pour aligner le comportement sur la spécification du DOM. Auparavant, cela déclenchait une DOMException avec le code DOM_HIERARCHY_REQUEST_ERR.

Voir aussi

  • DOMChildNode::after() - Ajoute des nœuds après le nœud
  • DOMChildNode::remove() - Supprime le nœud
  • DOMChildNode::replaceWith() - Remplace le nœud par de nouveaux nœuds


Supprime le nœud

  • « DOMChildNode::before
  • DOMChildNode::replaceWith »
  • PHP Manual
  • DOMChildNode
  • Supprime le nœud

DOMChildNode::remove

(PHP 8)

DOMChildNode::remove — Supprime le nœud

Description

public DOMChildNode::remove(): void

Supprime le nœud.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • DOMChildNode::after() - Ajoute des nœuds après le nœud
  • DOMChildNode::before() - Ajoute des nœuds avant le nœud
  • DOMChildNode::replaceWith() - Remplace le nœud par de nouveaux nœuds
  • DOMNode::removeChild() - Supprime un fils de la liste des enfants


Remplace le nœud par de nouveaux nœuds

  • « DOMChildNode::remove
  • DOMComment »
  • PHP Manual
  • DOMChildNode
  • Remplace le nœud par de nouveaux nœuds

DOMChildNode::replaceWith

(PHP 8)

DOMChildNode::replaceWith — Remplace le nœud par de nouveaux nœuds

Description

public DOMChildNode::replaceWith(DOMNode|string ...$nodes): void

Remplace le nœud par les nouveaux nodes. Une combinaison de DOMChildNode::remove() et DOMChildNode::append().

Liste de paramètres

nodes

Les nœuds de remplacement.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_HIERARCHY_REQUEST_ERR

Levée si le parent est d'un type qui n'autorise pas les enfants du type de l'un des nodes transmis, ou si le nœud à insérer est l'un des ancêtres de ce nœud ou ce nœud lui-même.

DOM_WRONG_DOCUMENT_ERR

Levée si l'un des nodes transmis a été créé à partir d'un document différent de celui qui a créé ce nœud.

Historique

Version | Description
8.3.0 | Appeler cette méthode sur un nœud sans parent est désormais une opération sans effet pour aligner le comportement avec la spécification du DOM. Auparavant, cela déclenchait une DOMException avec le code DOM_HIERARCHY_REQUEST_ERR.

Voir aussi

  • DOMChildNode::after() - Ajoute des nœuds après le nœud
  • DOMChildNode::before() - Ajoute des nœuds avant le nœud
  • DOMChildNode::remove() - Supprime le nœud
  • DOMNode::replaceChild() - Remplace un fils


La classe DOMComment

(PHP 5, PHP 7, PHP 8)

Introduction

Représente un nœud de commentaire, délimité par <!-- et -->.

Synopsis de la classe

class DOMComment extends DOMCharacterData {
/* Propriétés héritées */
public string $data;
public readonly int $length;
public readonly ?DOMElement $previousElementSibling;
public readonly ?DOMElement $nextElementSibling;
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
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 bool $isConnected;
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 __construct(string $data = "")
/* Méthodes héritées */
public DOMCharacterData::after(DOMNode|string ...$nodes): void
public DOMCharacterData::appendData(string $data): true
public DOMCharacterData::before(DOMNode|string ...$nodes): void
public DOMCharacterData::deleteData(int $offset, int $count): bool
public DOMCharacterData::insertData(int $offset, string $data): bool
public DOMCharacterData::remove(): void
public DOMCharacterData::replaceData(int $offset, int $count, string $data): bool
public DOMCharacterData::replaceWith(DOMNode|string ...$nodes): void
public DOMCharacterData::substringData(int $offset, int $count): string|false
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(?array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

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, PHP 8)

DOMComment::__construct — Crée un nouvel objet DOMComment

Description

public DOMComment::__construct(string $data = "")

Crée un nouvel objet DOMComment. Cet objet est en lecture seule. Il peut être ajouté à un document, mais les nœuds additionnels ne peuvent pas être ajoutés à ce nœud tant que ce nœud n'est pas associé à un document. Pour créer un nœud accessible en écriture, utilisez DOMDocument::createComment.

Liste de paramètres

data

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 nœud de commentaire


La classe DOMDocument

(PHP 5, PHP 7, PHP 8)

Introduction

Représente un document HTML ou XML entier ; ce sera la racine de l'arbre document.

Synopsis de la classe

class DOMDocument extends DOMNode implements DOMParentNode {
/* Propriétés */
public readonly ?DOMDocumentType $doctype;
public readonly DOMImplementation $implementation;
public readonly ?DOMElement $documentElement;
public readonly ?string $actualEncoding;
public ?string $encoding;
public readonly ?string $xmlEncoding;
public bool $standalone;
public bool $xmlStandalone;
public ?string $version;
public ?string $xmlVersion;
public bool $strictErrorChecking;
public ?string $documentURI;
public readonly mixed $config;
public bool $formatOutput;
public bool $validateOnParse;
public bool $resolveExternals;
public bool $preserveWhiteSpace;
public bool $recover;
public bool $substituteEntities;
public readonly ?DOMElement $firstElementChild;
public readonly ?DOMElement $lastElementChild;
public readonly int $childElementCount;
/* Propriétés héritées */
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
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 bool $isConnected;
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 __construct(string $version = "1.0", string $encoding = "")
public adoptNode(DOMNode $node): DOMNode|false
public append(DOMNode|string ...$nodes): void
public createAttribute(string $localName): DOMAttr|false
public createAttributeNS(?string $namespace, string $qualifiedName): DOMAttr|false
public createCDATASection(string $data): DOMCdataSection|false
public createComment(string $data): DOMComment
public createDocumentFragment(): DOMDocumentFragment
public createElement(string $localName, string $value = ""): DOMElement|false
public createElementNS(?string $namespace, string $qualifiedName, string $value = ""): DOMElement|false
public createEntityReference(string $name): DOMEntityReference|false
public createProcessingInstruction(string $target, string $data = ""): DOMProcessingInstruction|false
public createTextNode(string $data): DOMText
public getElementById(string $elementId): ?DOMElement
public getElementsByTagName(string $qualifiedName): DOMNodeList
public getElementsByTagNameNS(?string $namespace, string $localName): DOMNodeList
public importNode(DOMNode $node, bool $deep = false): DOMNode|false
public load(string $filename, int $options = 0): bool
public loadHTML(string $source, int $options = 0): bool
public loadHTMLFile(string $filename, int $options = 0): bool
public loadXML(string $source, int $options = 0): bool
public normalizeDocument(): void
public prepend(DOMNode|string ...$nodes): void
public registerNodeClass(string $baseClass, ?string $extendedClass): bool
public relaxNGValidate(string $filename): bool
public relaxNGValidateSource(string $source): bool
public replaceChildren(DOMNode|string ...$nodes): void
public save(string $filename, int $options = 0): int|false
public saveHTML(?DOMNode $node = null): string|false
public saveHTMLFile(string $filename): int|false
public saveXML(?DOMNode $node = null, int $options = 0): string|false
public schemaValidate(string $filename, int $flags = 0): bool
public schemaValidateSource(string $source, int $flags = 0): bool
public validate(): bool
public xinclude(int $options = 0): int|false
/* Méthodes héritées */
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(?array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Propriétés

actualEncoding

Obsolète. L'encodage actuel du document, en lecture seule, équivalent à encoding.

childElementCount

Le nombre d'éléments enfants.

config

Obsolète. Configuration utilisée lorsque DOMDocument::normalizeDocument() est appelé.

doctype

Le Document Type Declaration associé avec ce document.

documentElement

L'objet DOMElement qui est le premier élément du document. S'il n'est pas trouvé, ceci est évalué à null.

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.

firstElementChild

Premier élément enfant ou null.

formatOutput

Formate élégamment le résultat avec une indentation et des espaces supplémentaires. Ce paramètre n'a aucun effet si le document a été chargé avec l'activation de preserveWhitespace.

implementation

L'objet DOMImplementation qui gère ce document.

lastElementChild

Dernier élément enfant ou null.

preserveWhiteSpace

Ne pas supprimer les espaces redondants. Vaut par défaut true. Définir ce paramètre à false a le même effet de définir à LIBXML_NOBLANKS le paramètre option de la méthode DOMDocument::load().

recover

Propriétaire. Active le mode "recovery", i.e. tente d'analyser un document mal formé. Cet attribut ne fait pas partie 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 partie de la spécification DOM et est spécifique à libxml. Par défaut, false

Attention

Activer la substitution d'entités peut faciliter les attaques XML External Entity (XXE).

validateOnParse

Charge et valide la DTD. Par défaut, vaut false.

Attention

Activer la validation du DTD peut faciliter les attaques XML External Entity (XXE).

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é. Un document standalone est un document où il n'y a pas de déclarations de balisage externes. Un exemple d'une telle déclaration de balisage est lorsque la DTD déclare un attribut avec une valeur par défaut.

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".

Historique

Version | Description
8.0.0 | DOMDocument implémente désormais DOMParentNode.
8.0.0 | La méthode non-implémenté DOMDocument::renameNode() a été retirée.

Notes

Note:

L'extension DOM utilise l'encodage UTF-8. Utilisez mb_convert_encoding(), UConverter::transcode(), ou iconv() pour manipuler d'autres encodages.

Note:

Lors de l'utilisation de json_encode() sur un objet DOMDocument le résultat sera celui d'encoder un objet vide.

Voir aussi

  • » Spécification W3C de Document

Sommaire

  • DOMDocument::adoptNode — Transfer a node from another document
  • DOMDocument::append — Appends nodes after the last child node
  • 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 nœud cdata
  • DOMDocument::createComment — Crée un nouveau nœud de commentaire
  • DOMDocument::createDocumentFragment — Crée un nouveau fragment de document
  • DOMDocument::createElement — Crée un nouveau nœud
  • DOMDocument::createElementNS — Crée un nouveau nœud avec un espace de noms associé
  • DOMDocument::createEntityReference — Crée un nouveau nœud de référence d'entité
  • DOMDocument::createProcessingInstruction — Crée un nouveau nœud PI
  • DOMDocument::createTextNode — Crée un nouveau nœud 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 nœud 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::prepend — Prepends nodes before the first child node
  • DOMDocument::registerNodeClass — Enregistre la classe étendue utilisée pour créer un type de base de nœud
  • DOMDocument::relaxNGValidate — Effectue une validation relaxNG sur le document
  • DOMDocument::relaxNGValidateSource — Effectue une validation relaxNG sur le document
  • DOMDocument::replaceChildren — Replace children in 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. Seuls les schémas XML 1.0 sont supportés.
  • 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


Transfer a node from another document

  • « DOMDocument
  • DOMDocument::append »
  • PHP Manual
  • DOMDocument
  • Transfer a node from another document

DOMDocument::adoptNode

(PHP >= 8.3)

DOMDocument::adoptNode — Transfer a node from another document

Description

public DOMDocument::adoptNode(DOMNode $node): DOMNode|false

Transfer a node from another document into the current document.

Liste de paramètres

node

The node to transfer.

Valeurs de retour

The node that was transfered, or false on error.

Erreurs / Exceptions

DOM_NOT_SUPPORTED_ERR

Raised if the node type is not supported for document transfers.

Exemples

Exemple #1 DOMDocument::adoptNode() example

Transfers the hello element from the first document to the second one.

<?php
$doc1 = new DOMDocument;
$doc1->loadXML("<container><hello><world/></hello></container>");
$hello = $doc1->documentElement->firstChild;

$doc2 = new DOMDocument;
$doc2->loadXML("<root/>");
$doc2->documentElement->appendChild($doc2->adoptNode($hello));

echo $doc1->saveXML() . PHP_EOL;
echo $doc2->saveXML();
?>

L'exemple ci-dessus va afficher :

<?xml version="1.0"?>
<container/>

<?xml version="1.0"?>
<root><hello><world/></hello></root>

Voir aussi

  • DOMDocument::importNode() - Importe un nœud dans le document courant


Appends nodes after the last child node

  • « DOMDocument::adoptNode
  • DOMDocument::__construct »
  • PHP Manual
  • DOMDocument
  • Appends nodes after the last child node

DOMDocument::append

(PHP 8)

DOMDocument::append — Appends nodes after the last child node

Description

public DOMDocument::append(DOMNode|string ...$nodes): void

Appends one or many nodes to the list of children after the last child node.

Liste de paramètres

nodes

Les nœuds à ajouter. Les chaînes de caractères sont automatiquement convertie en des nœuds de texte.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_HIERARCHY_REQUEST_ERR

Levée si ce nœud est d'un type qui n'autorise pas les enfants du type de l'un des nodes transmis, ou si le nœud à insérer est l'un des ancêtres de ce nœud ou ce nœud lui-même.

DOM_WRONG_DOCUMENT_ERR

Levée si l'un des nodes transmis a été créé à partir d'un document différent de celui qui a créé ce nœud.

Historique

Version | Description
8.3.0 | Appeler cette méthode sur un nœud sans document propriétaire fonctionne désormais. Auparavant, cela déclenchait une DOMException avec le code DOM_HIERARCHY_REQUEST_ERR.

Exemples

Exemple #1 DOMDocument::append() example

Adds nodes after the document root.

<?php
$doc = new DOMDocument;
$doc->loadXML("<hello/>");

$doc->append("beautiful", $doc->createElement("world"));

echo $doc->saveXML();
?>

L'exemple ci-dessus va afficher :

<hello/>
beautiful
<world/>

Voir aussi

  • DOMParentNode::append() - Ajoute des nœuds après le dernier nœud enfant
  • DOMDocument::prepend() - Prepends nodes before the first child node


Crée un nouvel objet DOMDocument

  • « DOMDocument::append
  • DOMDocument::createAttribute »
  • PHP Manual
  • DOMDocument
  • Crée un nouvel objet DOMDocument

DOMDocument::__construct

(PHP 5, PHP 7, PHP 8)

DOMDocument::__construct — Crée un nouvel objet DOMDocument

Description

public DOMDocument::__construct(string $version = "1.0", 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, PHP 8)

DOMDocument::createAttribute — Crée un nouvel attribut

Description

public DOMDocument::createAttribute(string $localName): DOMAttr|false

Cette fonction crée une nouvelle instance de la classe DOMAttr. Ce nœud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec DOMNode::appendChild().

Liste de paramètres

localName

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 localName 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 nœud cdata
  • DOMDocument::createComment() - Crée un nouveau nœud de commentaire
  • DOMDocument::createDocumentFragment() - Crée un nouveau fragment de document
  • DOMDocument::createElement() - Crée un nouveau nœud
  • DOMDocument::createElementNS() - Crée un nouveau nœud avec un espace de noms associé
  • DOMDocument::createEntityReference() - Crée un nouveau nœud de référence d'entité
  • DOMDocument::createProcessingInstruction() - Crée un nouveau nœud PI
  • DOMDocument::createTextNode() - Crée un nouveau nœud 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, PHP 8)

DOMDocument::createAttributeNS — Crée un nouvel attribut avec un espace de noms associé

Description

public DOMDocument::createAttributeNS(?string $namespace, string $qualifiedName): DOMAttr|false

Cette fonction crée une nouvelle instance de la classe DOMAttr. Ce nœud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec DOMNode::appendChild().

Liste de paramètres

namespace

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 namespace est null.

Historique

Version | Description
8.3.0 | Appeler cette méthode sans spécifier un préfixe choisira désormais un préfixe au lieu de supposer l'espace de noms par défaut. Auparavant, cela créait un attribut sans préfixe et appliquait incorrectement l'espace de noms à l'élément propriétaire car les espaces de noms par défaut ne s'appliquent pas aux attributs.
8.3.0 | Appeler cette méthode en utilisant un préfixe déjà déclaré sur l'élément propriétaire avec un URI d'espace de noms différent changera désormais le nouveau préfixe pour éviter de créer des conflits d'espace de noms. Cela aligne le comportement sur la spécification du DOM. Auparavant, cela déclenchait une DOMException avec le code DOM_NAMESPACE_ERR.

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 nœud cdata
  • DOMDocument::createComment() - Crée un nouveau nœud de commentaire
  • DOMDocument::createDocumentFragment() - Crée un nouveau fragment de document
  • DOMDocument::createElement() - Crée un nouveau nœud
  • DOMDocument::createElementNS() - Crée un nouveau nœud avec un espace de noms associé
  • DOMDocument::createEntityReference() - Crée un nouveau nœud de référence d'entité
  • DOMDocument::createProcessingInstruction() - Crée un nouveau nœud PI
  • DOMDocument::createTextNode() - Crée un nouveau nœud de texte


Crée un nouveau nœud cdata

  • « DOMDocument::createAttributeNS
  • DOMDocument::createComment »
  • PHP Manual
  • DOMDocument
  • Crée un nouveau nœud cdata

DOMDocument::createCDATASection

(PHP 5, PHP 7, PHP 8)

DOMDocument::createCDATASection — Crée un nouveau nœud cdata

Description

public DOMDocument::createCDATASection(string $data): DOMCdataSection|false

Cette fonction crée une nouvelle instance de la classe DOMCDATASection. Ce nœud 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 nœud de commentaire
  • DOMDocument::createDocumentFragment() - Crée un nouveau fragment de document
  • DOMDocument::createElement() - Crée un nouveau nœud
  • DOMDocument::createElementNS() - Crée un nouveau nœud avec un espace de noms associé
  • DOMDocument::createEntityReference() - Crée un nouveau nœud de référence d'entité
  • DOMDocument::createProcessingInstruction() - Crée un nouveau nœud PI
  • DOMDocument::createTextNode() - Crée un nouveau nœud de texte


Crée un nouveau nœud de commentaire

  • « DOMDocument::createCDATASection
  • DOMDocument::createDocumentFragment »
  • PHP Manual
  • DOMDocument
  • Crée un nouveau nœud de commentaire

DOMDocument::createComment

(PHP 5, PHP 7, PHP 8)

DOMDocument::createComment — Crée un nouveau nœud de commentaire

Description

public DOMDocument::createComment(string $data): DOMComment

Cette fonction crée une nouvelle instance de la classe DOMComment. Ce nœud 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.

Historique

Version | Description
8.1.0 | En cas d'erreur, une DomException est désormais lancée. Auparavant, false était retourné.

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 nœud cdata
  • DOMDocument::createDocumentFragment() - Crée un nouveau fragment de document
  • DOMDocument::createElement() - Crée un nouveau nœud
  • DOMDocument::createElementNS() - Crée un nouveau nœud avec un espace de noms associé
  • DOMDocument::createEntityReference() - Crée un nouveau nœud de référence d'entité
  • DOMDocument::createProcessingInstruction() - Crée un nouveau nœud PI
  • DOMDocument::createTextNode() - Crée un nouveau nœud 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, PHP 8)

DOMDocument::createDocumentFragment — Crée un nouveau fragment de document

Description

public DOMDocument::createDocumentFragment(): DOMDocumentFragment

Cette fonction crée une nouvelle instance de la classe DOMDocumentFragment. Ce nœud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec DOMNode::appendChild().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Le nouveau DOMDocumentFragment.

Historique

Version | Description
8.1.0 | En cas d'erreur, une DomException est désormais lancée. Auparavant, false était retourné.

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 nœud cdata
  • DOMDocument::createComment() - Crée un nouveau nœud de commentaire
  • DOMDocument::createElement() - Crée un nouveau nœud
  • DOMDocument::createElementNS() - Crée un nouveau nœud avec un espace de noms associé
  • DOMDocument::createEntityReference() - Crée un nouveau nœud de référence d'entité
  • DOMDocument::createProcessingInstruction() - Crée un nouveau nœud PI
  • DOMDocument::createTextNode() - Crée un nouveau nœud de texte


Crée un nouveau nœud

  • « DOMDocument::createDocumentFragment
  • DOMDocument::createElementNS »
  • PHP Manual
  • DOMDocument
  • Crée un nouveau nœud

DOMDocument::createElement

(PHP 5, PHP 7, PHP 8)

DOMDocument::createElement — Crée un nouveau nœud

Description

public DOMDocument::createElement(string $localName, string $value = ""): DOMElement|false

Cette fonction crée une nouvelle instance de la classe DOMElement. Ce nœud 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 DOMElement::$nodeValue.

La valeur est utilisé textuellement à l'exception des références d'entités < et > qui seront échappées. Notez que & doit être échappé manuellement ; sinon ceci est considéré comme le début d'une référence d'entité. De plus " ne sera pas échappé.

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 localName 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>

Exemple #2 Passer comme value du texte contenant & non échappé

<?php
$dom = new DOMDocument('1.0', 'utf-8');
$element = $dom->createElement('foo', 'me & you');
$dom->appendChild($element);
echo $dom->saveXML();
?>

Résultat de l'exemple ci-dessus est similaire à :

Warning: DOMDocument::createElement(): unterminated entity reference             you in /in/BjTCg on line 4
<?xml version="1.0" encoding="utf-8"?>
<foo/>

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 nœud cdata
  • DOMDocument::createComment() - Crée un nouveau nœud de commentaire
  • DOMDocument::createDocumentFragment() - Crée un nouveau fragment de document
  • DOMDocument::createElementNS() - Crée un nouveau nœud avec un espace de noms associé
  • DOMDocument::createEntityReference() - Crée un nouveau nœud de référence d'entité
  • DOMDocument::createProcessingInstruction() - Crée un nouveau nœud PI
  • DOMDocument::createTextNode() - Crée un nouveau nœud de texte


Crée un nouveau nœud avec un espace de noms associé

  • « DOMDocument::createElement
  • DOMDocument::createEntityReference »
  • PHP Manual
  • DOMDocument
  • Crée un nouveau nœud avec un espace de noms associé

DOMDocument::createElementNS

(PHP 5, PHP 7, PHP 8)

DOMDocument::createElementNS — Crée un nouveau nœud avec un espace de noms associé

Description

public DOMDocument::createElementNS(?string $namespace, string $qualifiedName, string $value = ""): DOMElement|false

Cette fonction crée un nouveau nœud avec un espace de noms associé. Ce nœud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec DOMNode::appendChild().

Liste de paramètres

namespace

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 nœud cdata
  • DOMDocument::createComment() - Crée un nouveau nœud de commentaire
  • DOMDocument::createDocumentFragment() - Crée un nouveau fragment de document
  • DOMDocument::createElement() - Crée un nouveau nœud
  • DOMDocument::createEntityReference() - Crée un nouveau nœud de référence d'entité
  • DOMDocument::createProcessingInstruction() - Crée un nouveau nœud PI
  • DOMDocument::createTextNode() - Crée un nouveau nœud de texte


Crée un nouveau nœud de référence d'entité

  • « DOMDocument::createElementNS
  • DOMDocument::createProcessingInstruction »
  • PHP Manual
  • DOMDocument
  • Crée un nouveau nœud de référence d'entité

DOMDocument::createEntityReference

(PHP 5, PHP 7, PHP 8)

DOMDocument::createEntityReference — Crée un nouveau nœud de référence d'entité

Description

public DOMDocument::createEntityReference(string $name): DOMEntityReference|false

Cette fonction crée une nouvelle instance de la classe DOMEntityReference. Ce nœud 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

Émise 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 nœud cdata
  • DOMDocument::createComment() - Crée un nouveau nœud de commentaire
  • DOMDocument::createDocumentFragment() - Crée un nouveau fragment de document
  • DOMDocument::createElement() - Crée un nouveau nœud
  • DOMDocument::createElementNS() - Crée un nouveau nœud avec un espace de noms associé
  • DOMDocument::createProcessingInstruction() - Crée un nouveau nœud PI
  • DOMDocument::createTextNode() - Crée un nouveau nœud de texte


Crée un nouveau nœud PI

  • « DOMDocument::createEntityReference
  • DOMDocument::createTextNode »
  • PHP Manual
  • DOMDocument
  • Crée un nouveau nœud PI

DOMDocument::createProcessingInstruction

(PHP 5, PHP 7, PHP 8)

DOMDocument::createProcessingInstruction — Crée un nouveau nœud PI

Description

public DOMDocument::createProcessingInstruction(string $target, string $data = ""): DOMProcessingInstruction|false

Cette fonction crée une nouvelle instance de la classe DOMProcessingInstruction. Ce nœud 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 nœud cdata
  • DOMDocument::createComment() - Crée un nouveau nœud de commentaire
  • DOMDocument::createDocumentFragment() - Crée un nouveau fragment de document
  • DOMDocument::createElement() - Crée un nouveau nœud
  • DOMDocument::createElementNS() - Crée un nouveau nœud avec un espace de noms associé
  • DOMDocument::createEntityReference() - Crée un nouveau nœud de référence d'entité
  • DOMDocument::createTextNode() - Crée un nouveau nœud de texte


Crée un nouveau nœud de texte

  • « DOMDocument::createProcessingInstruction
  • DOMDocument::getElementById »
  • PHP Manual
  • DOMDocument
  • Crée un nouveau nœud de texte

DOMDocument::createTextNode

(PHP 5, PHP 7, PHP 8)

DOMDocument::createTextNode — Crée un nouveau nœud de texte

Description

public DOMDocument::createTextNode(string $data): DOMText

Cette fonction crée une nouvelle instance de la classe DOMText. Ce nœud 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 texte.

Valeurs de retour

Un nouveau DOMText.

Historique

Version | Description
8.1.0 | En cas d'erreur, une DomException est désormais lancée. Auparavant, false était retourné.

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 nœud cdata
  • DOMDocument::createComment() - Crée un nouveau nœud de commentaire
  • DOMDocument::createDocumentFragment() - Crée un nouveau fragment de document
  • DOMDocument::createElement() - Crée un nouveau nœud
  • DOMDocument::createElementNS() - Crée un nouveau nœud avec un espace de noms associé
  • DOMDocument::createEntityReference() - Crée un nouveau nœud de référence d'entité
  • DOMDocument::createProcessingInstruction() - Crée un nouveau nœud 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, PHP 8)

DOMDocument::getElementById — Cherche un élément avec un certain identifiant

Description

public DOMDocument::getElementById(string $elementId): ?DOMElement

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, PHP 8)

DOMDocument::getElementsByTagName — Cherche tous les éléments qui ont le nom de la balise locale donné

Description

public DOMDocument::getElementsByTagName(string $qualifiedName): DOMNodeList

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

qualifiedName

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, PHP 8)

DOMDocument::getElementsByTagNameNS — Recherche tous les éléments avec un nom de balise donné dans un espace de noms spécifié

Description

public DOMDocument::getElementsByTagNameNS(?string $namespace, string $localName): DOMNodeList

Retourne un DOMNodeList de tous les éléments avec un nom local donné et une URI d'espace de noms.

Liste de paramètres

namespace

L'URI de l'espace de noms des éléments à chercher. La valeur spéciale "*" représente tous les espaces de noms. Passer null représente l'espace de noms vide.

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.

Historique

Version | Description
8.0.3 | namespace est désormais nullable.

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 nœud dans le document courant

  • « DOMDocument::getElementsByTagNameNS
  • DOMDocument::load »
  • PHP Manual
  • DOMDocument
  • Importe un nœud dans le document courant

DOMDocument::importNode

(PHP 5, PHP 7, PHP 8)

DOMDocument::importNode — Importe un nœud dans le document courant

Description

public DOMDocument::importNode(DOMNode $node, bool $deep = false): DOMNode|false

Cette fonction retourne une copie du nœud à importer et l'associe avec le document courant.

Liste de paramètres

node

Le nœud à importer.

deep

Si défini à true, cette méthode importera récursivement le sous-arbre situé sous le nœud node.

Note:

Pour copier les attributs des nœuds, le paramètre deep doit être défini à true

Valeurs de retour

Le nœud copié ou false si la copie a échouée.

Erreurs / Exceptions

Une DOMException est lancée si le nœud ne peut pas être importé.

Exemples

Exemple #1 Exemple avec DOMDocument::importNode()

Copie de nœuds entre plusieurs documents.

<?php

$orgdoc = new DOMDocument;
$orgdoc->loadXML("<root><element><child>Texte dans un fils</child></element></root>");

// Le nœud 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 nœud :\n";
echo $newdoc->saveXML();

// Importation du nœud, ainsi que tous ses files, dans le document
$node = $newdoc->importNode($node, true);
// Et on l'ajoute dans le le nœud racine "<root>"
$newdoc->documentElement->appendChild($node);

echo "\nLe nouveau document après y avoir copié les nœuds :\n";
echo $newdoc->saveXML();
?>

L'exemple ci-dessus va afficher :

Le nouveau document avant d'y copier le nœud :
<?xml version="1.0"?>
<root>
  <someelement>Texte dans un élément</someelement>
</root>

Le nouveau document après y avoir copié les nœuds :
<?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, PHP 8)

DOMDocument::load — Charge du XML depuis un fichier

Description

public DOMDocument::load(string $filename, int $options = 0): bool

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 d'options libxml.

Valeurs de retour

Cette fonction retourne true en cas de succès 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.

Historique

Version | Description
8.3.0 | Cette fonction a maintenant un type de retour bool provisoire.
8.0.0 | Appeler cette fonction de manière statique lèvera désormais une Error. Auparavant, une erreur E_DEPRECATED était générée.

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, PHP 8)

DOMDocument::loadHTML — Charge du code HTML à partir d'une chaîne de caractères

Description

public DOMDocument::loadHTML(string $source, int $options = 0): bool

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é.

Avertissement

Cette fonction analyse l'entrée à l'aide d'un analyseur HTML 4. Les règles d'analyse de HTML 5, que les navigateurs modernes utilisent, sont différentes. En fonction de l'entrée, il peut en résulter une structure DOM différente. Par conséquent, cette fonction ne peut pas être utilisée en toute sécurité pour assainir le code HTML.

Par exemple, certains éléments HTML fermeront implicitement un élément parent lorsqu'ils seront rencontrés. Les règles de fermeture automatique des éléments parents diffèrent entre HTML 4 et HTML 5, de sorte que la structure DOM que DOMDocument voit peut être différente de la structure DOM qu'un navigateur web voit, ce qui peut permettre à un attaquant de briser le code HTML résultant.

Liste de paramètres

source

La chaîne HTML.

options

Opération de 'OU' logique des constantes d'option libxml.

Valeurs de retour

Cette fonction retourne true en cas de succès 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.

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.

Historique

Version | Description
8.3.0 | Cette fonction a maintenant un type de retour bool provisoire.
8.0.0 | Appeler cette fonction de manière statique lèvera désormais une Error. Auparavant, une erreur E_DEPRECATED était générée.

Exemples

Exemple #1 Création d'un document

<?php
$doc = new DOMDocument();
$doc->loadHTML("<html><body>Test<br></body></html>");
echo $doc->saveHTML();
?>

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, PHP 8)

DOMDocument::loadHTMLFile — Charge du HTML à partir d'un fichier

Description

public DOMDocument::loadHTMLFile(string $filename, int $options = 0): bool

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é.

Avertissement

Cette fonction analyse l'entrée à l'aide d'un analyseur HTML 4. Les règles d'analyse de HTML 5, que les navigateurs modernes utilisent, sont différentes. En fonction de l'entrée, il peut en résulter une structure DOM différente. Par conséquent, cette fonction ne peut pas être utilisée en toute sécurité pour assainir le code HTML.

Par exemple, certains éléments HTML fermeront implicitement un élément parent lorsqu'ils seront rencontrés. Les règles de fermeture automatique des éléments parents diffèrent entre HTML 4 et HTML 5, de sorte que la structure DOM que DOMDocument voit peut être différente de la structure DOM qu'un navigateur web voit, ce qui peut permettre à un attaquant de briser le code HTML résultant.

Liste de paramètres

filename

Le chemin vers le fichier HTML.

options

Opération de 'OU' logique des constantes d'option libxml.

Valeurs de retour

Cette fonction retourne true en cas de succès 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.

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.

Historique

Version | Description
8.3.0 | Cette fonction a maintenant un type de retour bool provisoire.
8.0.0 | Appeler cette fonction de manière statique lèvera désormais une Error. Auparavant, une erreur E_DEPRECATED était générée.

Exemples

Exemple #1 Création d'un document

<?php
$doc = new DOMDocument();
$doc->loadHTMLFile("filename.html");
echo $doc->saveHTML();
?>

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, PHP 8)

DOMDocument::loadXML — Charge du XML depuis une chaîne de caractères

Description

public DOMDocument::loadXML(string $source, int $options = 0): bool

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.

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.

Historique

Version | Description
8.3.0 | Cette fonction a maintenant un type de retour bool provisoire.
8.0.0 | L'appel statique de cette fonction lèvera désormais une Error. Auparavant, une erreur E_DEPRECATED était générée.

Exemples

Exemple #1 Création d'un Document

<?php
$doc = new DOMDocument();
$doc->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::prepend »
  • PHP Manual
  • DOMDocument
  • Normalise le document

DOMDocument::normalizeDocument

(PHP 5, PHP 7, PHP 8)

DOMDocument::normalizeDocument — Normalise le document

Description

public 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".

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

  • » La spécification DOM
  • DOMNode::normalize() - Normalise le nœud


Prepends nodes before the first child node

  • « DOMDocument::normalizeDocument
  • DOMDocument::registerNodeClass »
  • PHP Manual
  • DOMDocument
  • Prepends nodes before the first child node

DOMDocument::prepend

(PHP 8)

DOMDocument::prepend — Prepends nodes before the first child node

Description

public DOMDocument::prepend(DOMNode|string ...$nodes): void

Prepends one or many nodes to the list of children before the first child node.

Liste de paramètres

nodes

Les nœuds à ajouter. Les chaînes de caractères sont automatiquement convertie en des nœuds de texte.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_HIERARCHY_REQUEST_ERR

Levée si ce nœud est d'un type qui n'autorise pas les enfants du type de l'un des nodes transmis, ou si le nœud à insérer est l'un des ancêtres de ce nœud ou ce nœud lui-même.

DOM_WRONG_DOCUMENT_ERR

Levée si l'un des nodes transmis a été créé à partir d'un document différent de celui qui a créé ce nœud.

Historique

Version | Description
8.3.0 | Appeler cette méthode sur un nœud sans document propriétaire fonctionne désormais. Auparavant, cela déclenchait une DOMException avec le code DOM_HIERARCHY_REQUEST_ERR.

Exemples

Exemple #1 DOMDocument::prepend() example

Adds nodes before the document root.

<?php
$doc = new DOMDocument;
$doc->loadXML("<world/>");

$doc->prepend($doc->createElement("hello"), "beautiful");

echo $doc->saveXML();
?>

L'exemple ci-dessus va afficher :

<?xml version="1.0"?>
<hello/>
beautiful
<world/>

Voir aussi

  • DOMParentNode::prepend() - Ajoute des nœuds avant le premier nœud enfant
  • DOMDocument::append() - Appends nodes after the last child node


Enregistre la classe étendue utilisée pour créer un type de base de nœud

  • « DOMDocument::prepend
  • DOMDocument::relaxNGValidate »
  • PHP Manual
  • DOMDocument
  • Enregistre la classe étendue utilisée pour créer un type de base de nœud

DOMDocument::registerNodeClass

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DOMDocument::registerNodeClass — Enregistre la classe étendue utilisée pour créer un type de base de nœud

Description

public DOMDocument::registerNodeClass(string $baseClass, ?string $extendedClass): bool

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.

Attention

Les constructeur des objets des classes de nœud enregistré ne sont pas appelé.

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.

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. Cependant, si toutes les références à cette classe sont supprimées, elle sera détruite et une nouvelle instance de DOMDocument sera créée à la place. Pour cette raison, vous pouvez utiliser la méthode 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 nœud est MyDOMDocument
var_dump(get_class($child->ownerDocument));
// MyDOMDocument est détruit
unset($doc);
// Et une nouvelle instance de DOMDocument est créée
var_dump(get_class($child->ownerDocument));

// Importation d'un nœud depuis MyDOMDocument
$newdoc = new MyOtherDOMDocument;
$child = $newdoc->importNode($child);

// Enregistre un DOMDocument personnalisé
$newdoc->registerNodeClass("DOMDocument", "MyOtherDOMDocument");

var_dump(get_class($child->ownerDocument));
unset($doc);
// Un nouveau MyOtherDOMDocument est créé
var_dump(get_class($child->ownerDocument));
?>

L'exemple ci-dessus va afficher :

string(13) "MyDOMDocument"
string(11) "DOMDocument"
string(18) "MyOtherDOMDocument"
string(18) "MyOtherDOMDocument"

Exemple #4 Les objets personalisé sont éphémère

Attention

Les objets de la classe de noeux registré sont éphém_re, c.à.d. ils sont détruit quand ils ne sont plus référencer depuis du code PHP, et recréé quand ils sont denouveaux récupérer. Ceci implque que des valeurs de propriétés personalisé seront perdu après la recréation.

<?php
class MyDOMElement extends DOMElement
{
public $myProp = 'default value';
}

$doc = new DOMDocument();
$doc->registerNodeClass('DOMElement', 'MyDOMElement');

$node = $doc->createElement('a');
$node->myProp = 'modified value';
$doc->appendChild($node);

echo $doc->childNodes[0]->myProp, PHP_EOL;
unset($node);
echo $doc->childNodes[0]->myProp, PHP_EOL;
?>

L'exemple ci-dessus va afficher :

modified value
default value


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, PHP 8)

DOMDocument::relaxNGValidate — Effectue une validation relaxNG sur le document

Description

public DOMDocument::relaxNGValidate(string $filename): bool

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. Seuls les schémas XML 1.0 sont supportés.
  • 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::replaceChildren »
  • PHP Manual
  • DOMDocument
  • Effectue une validation relaxNG sur le document

DOMDocument::relaxNGValidateSource

(PHP 5, PHP 7, PHP 8)

DOMDocument::relaxNGValidateSource — Effectue une validation relaxNG sur le document

Description

public DOMDocument::relaxNGValidateSource(string $source): bool

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. Seuls les schémas XML 1.0 sont supportés.
  • DOMDocument::schemaValidateSource() - Valide un document selon un schéma
  • DOMDocument::validate() - Valide un document en se basant sur sa DTD


Replace children in document

  • « DOMDocument::relaxNGValidateSource
  • DOMDocument::save »
  • PHP Manual
  • DOMDocument
  • Replace children in document

DOMDocument::replaceChildren

(PHP 8 >= 8.3.0)

DOMDocument::replaceChildren — Replace children in document

Description

public DOMDocument::replaceChildren(DOMNode|string ...$nodes): void

Replaces the children in the document with new nodes.

Liste de paramètres

nodes

The nodes replacing the children. Strings are automatically converted to text nodes.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_HIERARCHY_REQUEST_ERR

Levée si ce nœud est d'un type qui n'autorise pas les enfants du type de l'un des nodes transmis, ou si le nœud à insérer est l'un des ancêtres de ce nœud ou ce nœud lui-même.

DOM_WRONG_DOCUMENT_ERR

Levée si l'un des nodes transmis a été créé à partir d'un document différent de celui qui a créé ce nœud.

Historique

Version | Description
8.3.0 | Calling this method on a node without an owner document now works. Auparavant, cela déclenchait une DOMException avec le code DOM_HIERARCHY_REQUEST_ERR.

Exemples

Exemple #1 DOMDocument::replaceChildren() example

Replaces the children with new nodes.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container><hello/></container>");

$doc->replaceWith("beautiful", $doc->createElement("world"));

echo $doc->saveXML();
?>

L'exemple ci-dessus va afficher :

<?xml version="1.0"?>
beautiful
<world/>

Voir aussi

  • DOMParentNode::replaceChildren() - Replace children in node
  • DOMDocument::append() - Appends nodes after the last child node
  • DOMDocument::prepend() - Prepends nodes before the first child node


Sauvegarde l'arbre interne XML dans un fichier

  • « DOMDocument::replaceChildren
  • DOMDocument::saveHTML »
  • PHP Manual
  • DOMDocument
  • Sauvegarde l'arbre interne XML dans un fichier

DOMDocument::save

(PHP 5, PHP 7, PHP 8)

DOMDocument::save — Sauvegarde l'arbre interne XML dans un fichier

Description

public DOMDocument::save(string $filename, int $options = 0): int|false

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.

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, PHP 8)

DOMDocument::saveHTML — Sauvegarde le document interne dans une chaîne en utilisant un formatage HTML

Description

public DOMDocument::saveHTML(?DOMNode $node = null): string|false

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.

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, PHP 8)

DOMDocument::saveHTMLFile — Sauvegarde un document interne dans un fichier en utilisant un formatage HTML

Description

public DOMDocument::saveHTMLFile(string $filename): int|false

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, PHP 8)

DOMDocument::saveXML — Sauvegarde l'arbre interne XML dans une chaîne de caractères

Description

public DOMDocument::saveXML(?DOMNode $node = null, int $options = 0): string|false

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 nœud spécifique sans déclaration XML plutôt que la totalité du document.

options

Options additionnelles. Les options LIBXML_NOEMPTYTAG et LIBXML_NOXMLDECL sont supportées. Antérieur à PHP 8.3.0, uniquement l'option 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
8.3.0 | LIBXML_NOXMLDECL est désormais supporté.

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. Seuls les schémas XML 1.0 sont supportés.

  • « DOMDocument::saveXML
  • DOMDocument::schemaValidateSource »
  • PHP Manual
  • DOMDocument
  • Valide un document selon un schéma. Seuls les schémas XML 1.0 sont supportés.

DOMDocument::schemaValidate

(PHP 5, PHP 7, PHP 8)

DOMDocument::schemaValidate — Valide un document selon un schéma. Seuls les schémas XML 1.0 sont supportés.

Description

public DOMDocument::schemaValidate(string $filename, int $flags = 0): bool

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 Libxml 2.6.14.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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, PHP 8)

DOMDocument::schemaValidateSource — Valide un document selon un schéma

Description

public DOMDocument::schemaValidateSource(string $source, int $flags = 0): bool

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 Libxml 2.6.14.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Voir aussi

  • DOMDocument::schemaValidate() - Valide un document selon un schéma. Seuls les schémas XML 1.0 sont supportés.
  • 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, PHP 8)

DOMDocument::validate — Valide un document en se basant sur sa DTD

Description

public DOMDocument::validate(): bool

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.

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 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. Seuls les schémas XML 1.0 sont supportés.
  • 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, PHP 8)

DOMDocument::xinclude — Remplace les XIncludes dans un objet DOMDocument

Description

public DOMDocument::xinclude(int $options = 0): int|false

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

Opération de 'OU' logique des constantes d'option libxml.

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();

?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

Synopsis de la classe

class DOMDocumentFragment extends DOMNode implements DOMParentNode {
/* Propriétés */
public readonly ?DOMElement $firstElementChild;
public readonly ?DOMElement $lastElementChild;
public readonly int $childElementCount;
/* Propriétés héritées */
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
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 bool $isConnected;
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 __construct()
public append(DOMNode|string ...$nodes): void
public appendXML(string $data): bool
public prepend(DOMNode|string ...$nodes): void
public replaceChildren(DOMNode|string ...$nodes): void
/* Méthodes héritées */
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(?array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Propriétés

childElementCount

Le nombre d'éléments enfants.

firstElementChild

Premier élément enfant ou null.

lastElementChild

Dernier élément enfant ou null.

Historique

Version | Description
8.0.0 | Les propriétés firstElementChild, lastElementChild et childElementCount ont été ajoutées.
8.0.0 | DOMDocumentFragment implémente désormais DOMParentNode.

Sommaire

  • DOMDocumentFragment::append — Appends nodes after the last child node
  • DOMDocumentFragment::appendXML — Ajoute des données XML
  • DOMDocumentFragment::__construct — Construit un objet DOMDocumentFragment
  • DOMDocumentFragment::prepend — Prepends nodes before the first child node
  • DOMDocumentFragment::replaceChildren — Replace children in fragment


Appends nodes after the last child node

  • « DOMDocumentFragment
  • DOMDocumentFragment::appendXML »
  • PHP Manual
  • DOMDocumentFragment
  • Appends nodes after the last child node

DOMDocumentFragment::append

(PHP 8)

DOMDocumentFragment::append — Appends nodes after the last child node

Description

public DOMDocumentFragment::append(DOMNode|string ...$nodes): void

Appends one or many nodes to the list of children after the last child node.

Liste de paramètres

nodes

Les nœuds à ajouter. Les chaînes de caractères sont automatiquement convertie en des nœuds de texte.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_HIERARCHY_REQUEST_ERR

Levée si ce nœud est d'un type qui n'autorise pas les enfants du type de l'un des nodes transmis, ou si le nœud à insérer est l'un des ancêtres de ce nœud ou ce nœud lui-même.

DOM_WRONG_DOCUMENT_ERR

Levée si l'un des nodes transmis a été créé à partir d'un document différent de celui qui a créé ce nœud.

Historique

Version | Description
8.3.0 | Appeler cette méthode sur un nœud sans document propriétaire fonctionne désormais. Auparavant, cela déclenchait une DOMException avec le code DOM_HIERARCHY_REQUEST_ERR.

Exemples

Exemple #1 DOMDocumentFragment::append() example

Appends nodes in the fragment.

<?php
$doc = new DOMDocument;
$fragment = $doc->createDocumentFragment();
$fragment->appendChild($doc->createElement("hello"));

$fragment->append("beautiful", $doc->createElement("world"));

echo $doc->saveXML($fragment);
?>

L'exemple ci-dessus va afficher :

<hello/>beautiful<world/>

Voir aussi

  • DOMParentNode::append() - Ajoute des nœuds après le dernier nœud enfant
  • DOMDocumentFragment::prepend() - Prepends nodes before the first child node


Ajoute des données XML

  • « DOMDocumentFragment::append
  • DOMDocumentFragment::__construct »
  • PHP Manual
  • DOMDocumentFragment
  • Ajoute des données XML

DOMDocumentFragment::appendXML

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

DOMDocumentFragment::appendXML — Ajoute des données XML

Description

public DOMDocumentFragment::appendXML(string $data): bool

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 nœuds 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>


Construit un objet DOMDocumentFragment

  • « DOMDocumentFragment::appendXML
  • DOMDocumentFragment::prepend »
  • PHP Manual
  • DOMDocumentFragment
  • Construit un objet DOMDocumentFragment

DOMDocumentFragment::__construct

(PHP 5, PHP 7, PHP 8)

DOMDocumentFragment::__construct — Construit un objet DOMDocumentFragment

Description

public DOMDocumentFragment::__construct()

Liste de paramètres

Cette fonction ne contient aucun paramètre.


Prepends nodes before the first child node

  • « DOMDocumentFragment::__construct
  • DOMDocumentFragment::replaceChildren »
  • PHP Manual
  • DOMDocumentFragment
  • Prepends nodes before the first child node

DOMDocumentFragment::prepend

(PHP 8)

DOMDocumentFragment::prepend — Prepends nodes before the first child node

Description

public DOMDocumentFragment::prepend(DOMNode|string ...$nodes): void

Prepends one or many nodes to the list of children before the first child node.

Liste de paramètres

nodes

Les nœuds à ajouter. Les chaînes de caractères sont automatiquement convertie en des nœuds de texte.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_HIERARCHY_REQUEST_ERR

Levée si ce nœud est d'un type qui n'autorise pas les enfants du type de l'un des nodes transmis, ou si le nœud à insérer est l'un des ancêtres de ce nœud ou ce nœud lui-même.

DOM_WRONG_DOCUMENT_ERR

Levée si l'un des nodes transmis a été créé à partir d'un document différent de celui qui a créé ce nœud.

Historique

Version | Description
8.3.0 | Appeler cette méthode sur un nœud sans document propriétaire fonctionne désormais. Auparavant, cela déclenchait une DOMException avec le code DOM_HIERARCHY_REQUEST_ERR.

Exemples

Exemple #1 DOMDocumentFragment::prepend() example

Prepends nodes before the fragment root.

<?php
$doc = new DOMDocument;
$fragment = $doc->createDocumentFragment();
$fragment->appendChild($doc->createElement("world"));

$fragment->prepend($doc->createElement("hello"), "beautiful");

echo $doc->saveXML($fragment);
?>

L'exemple ci-dessus va afficher :

<hello/>beautiful<world/>

Voir aussi

  • DOMParentNode::prepend() - Ajoute des nœuds avant le premier nœud enfant
  • DOMDocumentFragment::append() - Appends nodes after the last child node


Replace children in fragment

  • « DOMDocumentFragment::prepend
  • DOMDocumentType »
  • PHP Manual
  • DOMDocumentFragment
  • Replace children in fragment

DOMDocumentFragment::replaceChildren

(PHP 8 >= 8.3.0)

DOMDocumentFragment::replaceChildren — Replace children in fragment

Description

public DOMDocumentFragment::replaceChildren(DOMNode|string ...$nodes): void

Replaces the children in the document fragment with new nodes.

Liste de paramètres

nodes

The nodes replacing the children. Strings are automatically converted to text nodes.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_HIERARCHY_REQUEST_ERR

Levée si ce nœud est d'un type qui n'autorise pas les enfants du type de l'un des nodes transmis, ou si le nœud à insérer est l'un des ancêtres de ce nœud ou ce nœud lui-même.

DOM_WRONG_DOCUMENT_ERR

Levée si l'un des nodes transmis a été créé à partir d'un document différent de celui qui a créé ce nœud.

Historique

Version | Description
8.3.0 | Calling this method on a node without an owner document now works. Auparavant, cela déclenchait une DOMException avec le code DOM_HIERARCHY_REQUEST_ERR.

Exemples

Exemple #1 DOMDocumentFragment::replaceChildren() example

Replaces the children with new nodes.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container><hello/></container>");
$fragment = $doc->createDocumentFragment();
$fragment->append("hello");

$fragment->replaceWith("beautiful", $doc->createElement("world"));

echo $doc->saveXML($fragment);
?>

L'exemple ci-dessus va afficher :

beautiful
<world/>

Voir aussi

  • DOMParentNode::replaceChildren() - Replace children in node
  • DOMDocumentFragment::append() - Appends nodes after the last child node
  • DOMDocumentFragment::prepend() - Prepends nodes before the first child node


La classe DOMDocumentType

(PHP 5, PHP 7, PHP 8)

Introduction

Chaque DOMDocument a un attribut doctype dont la valeur est soit null, soit un objet DOMDocumentType.

Synopsis de la classe

class DOMDocumentType extends DOMNode {
/* Propriétés */
public readonly string $name;
public readonly DOMNamedNodeMap $entities;
public readonly DOMNamedNodeMap $notations;
public readonly string $publicId;
public readonly string $systemId;
public readonly ?string $internalSubset;
/* Propriétés héritées */
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
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 bool $isConnected;
public readonly ?DOMDocument $ownerDocument;
public readonly ?string $namespaceURI;
public string $prefix;
public readonly ?string $localName;
public readonly ?string $baseURI;
public string $textContent;
/* Méthodes héritées */
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(?array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Propriétés

publicId

L'identifiant public du subset externe.

systemId

L'identifiant système du subset externe. Ce peut être une URI 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, PHP 8)

Synopsis de la classe

class DOMElement extends DOMNode implements DOMParentNode, DOMChildNode {
/* Propriétés */
public readonly string $tagName;
public string $className;
public string $id;
public readonly mixed $schemaTypeInfo = null;
public readonly ?DOMElement $firstElementChild;
public readonly ?DOMElement $lastElementChild;
public readonly int $childElementCount;
public readonly ?DOMElement $previousElementSibling;
public readonly ?DOMElement $nextElementSibling;
/* Propriétés héritées */
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
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 bool $isConnected;
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 __construct(string $qualifiedName, ?string $value = null, string $namespace = "")
public after(DOMNode|string ...$nodes): void
public append(DOMNode|string ...$nodes): void
public before(DOMNode|string ...$nodes): void
public getAttribute(string $qualifiedName): string
public getAttributeNames(): array
public getAttributeNode(string $qualifiedName): DOMAttr|DOMNameSpaceNode|false
public getAttributeNodeNS(?string $namespace, string $localName): DOMAttr|DOMNameSpaceNode|null
public getAttributeNS(?string $namespace, string $localName): string
public getElementsByTagName(string $qualifiedName): DOMNodeList
public getElementsByTagNameNS(?string $namespace, string $localName): DOMNodeList
public hasAttribute(string $qualifiedName): bool
public hasAttributeNS(?string $namespace, string $localName): bool
public insertAdjacentElement(string $where, DOMElement $element): ?DOMElement
public insertAdjacentText(string $where, string $data): void
public prepend(DOMNode|string ...$nodes): void
public remove(): void
public removeAttribute(string $qualifiedName): bool
public removeAttributeNode(DOMAttr $attr): DOMAttr|false
public removeAttributeNS(?string $namespace, string $localName): void
public replaceChildren(DOMNode|string ...$nodes): void
public replaceWith(DOMNode|string ...$nodes): void
public setAttribute(string $qualifiedName, string $value): DOMAttr|bool
public setAttributeNode(DOMAttr $attr): DOMAttr|null|false
public setAttributeNodeNS(DOMAttr $attr): DOMAttr|null|false
public setAttributeNS(?string $namespace, string $qualifiedName, string $value): void
public setIdAttribute(string $qualifiedName, bool $isId): void
public setIdAttributeNode(DOMAttr $attr, bool $isId): void
public setIdAttributeNS(string $namespace, string $qualifiedName, bool $isId): void
public toggleAttribute(string $qualifiedName, ?bool $force = null): bool
/* Méthodes héritées */
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(?array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Propriétés

childElementCount

Le nombre d'éléments enfants.

firstElementChild

Premier élément enfant ou null.

lastElementChild

Dernier élément enfant ou null.

nextElementSibling

L'élément frère suivant ou null.

previousElementSibling

L'élément frère précédent ou null.

schemaTypeInfo

Pas encore implémenté, retourne toujours null

tagName

Le nom de l'élément

className

Une chaîne représentant les classes de l'élément, séparé par des espaces

id

L'ID de l'élément

Historique

Version | Description
8.0.0 | Les propriétés firstElementChild, lastElementChild, childElementCount, previousElementSibling et nextElementSibling ont été ajoutées.
8.0.0 | DOMElement implémente désormais DOMParentNode et DOMChildNode.

Notes

Note:

L'extension DOM utilise l'encodage UTF-8. Utilisez mb_convert_encoding(), UConverter::transcode(), ou iconv() pour manipuler d'autres encodages.

Sommaire

  • DOMElement::after — Adds nodes after the element
  • DOMElement::append — Appends nodes after the last child node
  • DOMElement::before — Adds nodes before the element
  • DOMElement::__construct — Crée un nouvel objet DOMElement
  • DOMElement::getAttribute — Retourne la valeur d'un attribut
  • DOMElement::getAttributeNames — Get attribute names
  • DOMElement::getAttributeNode — Retourne le nœud d'attribut
  • DOMElement::getAttributeNodeNS — Retourne le nœud 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::insertAdjacentElement — Insert adjacent element
  • DOMElement::insertAdjacentText — Insert adjacent text
  • DOMElement::prepend — Prepends nodes before the first child node
  • DOMElement::remove — Removes the element
  • DOMElement::removeAttribute — Efface un attribut
  • DOMElement::removeAttributeNode — Efface un attribut
  • DOMElement::removeAttributeNS — Efface un attribut
  • DOMElement::replaceChildren — Replace children in element
  • DOMElement::replaceWith — Replaces the element with new nodes
  • DOMElement::setAttribute — Ajoute un nouvel attribut, ou modifie un attribut existant
  • 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 nœud à ê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::toggleAttribute — Toggle attribute


Adds nodes after the element

  • « DOMElement
  • DOMElement::append »
  • PHP Manual
  • DOMElement
  • Adds nodes after the element

DOMElement::after

(PHP 8)

DOMElement::after — Adds nodes after the element

Description

public DOMElement::after(DOMNode|string ...$nodes): void

Adds the passed nodes after the element.

Liste de paramètres

nodes

Nœuds à ajouter après le nœud. Les chaînes de caractères sont automatiquement convertie en des nœuds textuels.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_HIERARCHY_REQUEST_ERR

Levée si le parent est d'un type qui n'autorise pas les enfants du type de l'un des nodes transmis, ou si le nœud à insérer est l'un des ancêtres de ce nœud ou ce nœud lui-même.

DOM_WRONG_DOCUMENT_ERR

Levée si l'un des nodes transmis a été créé à partir d'un document différent de celui qui a créé ce nœud.

Historique

Version | Description
8.3.0 | Appeler cette méthode sur un nœud sans parent est désormais sans effet pour aligner le comportement sur la spécification du DOM. Auparavant, cela déclenchait une DOMException avec le code DOM_HIERARCHY_REQUEST_ERR.
8.3.0 | Appeler cette méthode sur un nœud sans document propriétaire fonctionne désormais. Auparavant, cela déclenchait une DOMException avec le code DOM_HIERARCHY_REQUEST_ERR.

Exemples

Exemple #1 DOMElement::after() example

Adds nodes after the hello element.

<?php
$doc = new DOMDocument;
$doc->loadXML("<hello/>");
$container = $doc->documentElement;

$container->after("beautiful", $doc->createElement("world"));

echo $doc->saveXML();
?>

L'exemple ci-dessus va afficher :

<?xml version="1.0"?>
<hello/>
beautiful
<world/>

Voir aussi

  • DOMChildNode::after() - Ajoute des nœuds après le nœud
  • DOMElement::before() - Adds nodes before the element


Appends nodes after the last child node

  • « DOMElement::after
  • DOMElement::before »
  • PHP Manual
  • DOMElement
  • Appends nodes after the last child node

DOMElement::append

(PHP 8)

DOMElement::append — Appends nodes after the last child node

Description

public DOMElement::append(DOMNode|string ...$nodes): void

Appends one or many nodes to the list of children after the last child node.

Liste de paramètres

nodes

Les nœuds à ajouter. Les chaînes de caractères sont automatiquement convertie en des nœuds de texte.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_HIERARCHY_REQUEST_ERR

Levée si ce nœud est d'un type qui n'autorise pas les enfants du type de l'un des nodes transmis, ou si le nœud à insérer est l'un des ancêtres de ce nœud ou ce nœud lui-même.

DOM_WRONG_DOCUMENT_ERR

Levée si l'un des nodes transmis a été créé à partir d'un document différent de celui qui a créé ce nœud.

Historique

Version | Description
8.3.0 | Appeler cette méthode sur un nœud sans document propriétaire fonctionne désormais. Auparavant, cela déclenchait une DOMException avec le code DOM_HIERARCHY_REQUEST_ERR.

Exemples

Exemple #1 DOMElement::append() example

Appends nodes in the container element.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container>hello </container>");
$world = $doc->documentElement;

$world->append("beautiful", $doc->createElement("world"));

echo $doc->saveXML();
?>

L'exemple ci-dessus va afficher :

<?xml version="1.0"?>
<container>hello beautiful<world/></container>

Voir aussi

  • DOMParentNode::append() - Ajoute des nœuds après le dernier nœud enfant
  • DOMElement::prepend() - Prepends nodes before the first child node


Adds nodes before the element

  • « DOMElement::append
  • DOMElement::__construct »
  • PHP Manual
  • DOMElement
  • Adds nodes before the element

DOMElement::before

(PHP 8)

DOMElement::before — Adds nodes before the element

Description

public DOMElement::before(DOMNode|string ...$nodes): void

Adds the passed nodes before the element.

Liste de paramètres

nodes

Nœuds à ajouter avant le nœud. Les chaînes de caractères sont automatiquement convertie en des nœuds de texte.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_HIERARCHY_REQUEST_ERR

Levée si le parent est d'un type qui n'autorise pas les enfants du type de l'un des nodes transmis, ou si le nœud à insérer est l'un des ancêtres de ce nœud ou ce nœud lui-même.

DOM_WRONG_DOCUMENT_ERR

Levée si l'un des nodes transmis a été créé à partir d'un document différent de celui qui a créé ce nœud.

Historique

Version | Description
8.3.0 | Appeler cette méthode sur un nœud sans parent est désormais sans effet pour aligner le comportement sur la spécification du DOM. Auparavant, cela déclenchait une DOMException avec le code DOM_HIERARCHY_REQUEST_ERR.

Exemples

Exemple #1 DOMElement::before() example

Adds nodes before the hello element.

<?php
$doc = new DOMDocument;
$doc->loadXML("<world/>");
$world = $doc->documentElement;

$world->before("hello", $doc->createElement("beautiful"));

echo $doc->saveXML();
?>

L'exemple ci-dessus va afficher :

hello
<beautiful/>
<world/>

Voir aussi

  • DOMChildNode::before() - Ajoute des nœuds avant le nœud
  • DOMElement::after() - Adds nodes after the element


Crée un nouvel objet DOMElement

  • « DOMElement::before
  • DOMElement::getAttribute »
  • PHP Manual
  • DOMElement
  • Crée un nouvel objet DOMElement

DOMElement::__construct

(PHP 5, PHP 7, PHP 8)

DOMElement::__construct — Crée un nouvel objet DOMElement

Description

public DOMElement::__construct(string $qualifiedName, ?string $value = null, string $namespace = "")

Crée un nouvel objet DOMElement. Cet objet est en lecture seule. Il peut être ajouté à un document, mais les nœuds additionnels ne peuvent pas être ajoutés à ce nœud tant qu'il est associé à un document. Pour créer un nœud accessible en écriture, utilisez DOMDocument::createElement ou DOMDocument::createElementNS.

Liste de paramètres

qualifiedName

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.

namespace

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 nœud
  • DOMDocument::createElementNS() - Crée un nouveau nœud avec un espace de noms associé


Retourne la valeur d'un attribut

  • « DOMElement::__construct
  • DOMElement::getAttributeNames »
  • PHP Manual
  • DOMElement
  • Retourne la valeur d'un attribut

DOMElement::getAttribute

(PHP 5, PHP 7, PHP 8)

DOMElement::getAttribute — Retourne la valeur d'un attribut

Description

public DOMElement::getAttribute(string $qualifiedName): string

Récupère la valeur d'un attribut avec le nom qualifiedName pour le nœud courant.

Liste de paramètres

qualifiedName

Le nom de l'attribut.

Valeurs de retour

La valeur de l'attribut ou une chaîne vide si aucun attribut avec le nom qualifiedName donné n'est trouvé.

Voir aussi

  • DOMElement::hasAttribute() - Vérifie si un attribut existe
  • DOMElement::setAttribute() - Ajoute un nouvel attribut, ou modifie un attribut existant
  • DOMElement::removeAttribute() - Efface un attribut


Get attribute names

  • « DOMElement::getAttribute
  • DOMElement::getAttributeNode »
  • PHP Manual
  • DOMElement
  • Get attribute names

DOMElement::getAttributeNames

(PHP 8 >= 8.3.0)

DOMElement::getAttributeNames — Get attribute names

Description

public DOMElement::getAttributeNames(): array

Get attribute names.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Return attribute names.

Exemples

Exemple #1 DOMElement::getAttributeNames() example

<?php

$dom = new DOMDocument();
$dom->loadXML('<html xmlns:some="some:ns" some:test="a" test2="b"/>');
var_dump($dom->documentElement->getAttributeNames());
?>

L'exemple ci-dessus va afficher :

array(3) {
 [0]=>
 string(10) "xmlns:some"
 [1]=>
 string(9) "some:test"
 [2]=>
 string(5) "test2"
}


Retourne le nœud d'attribut

  • « DOMElement::getAttributeNames
  • DOMElement::getAttributeNodeNS »
  • PHP Manual
  • DOMElement
  • Retourne le nœud d'attribut

DOMElement::getAttributeNode

(PHP 5, PHP 7, PHP 8)

DOMElement::getAttributeNode — Retourne le nœud d'attribut

Description

public DOMElement::getAttributeNode(string $qualifiedName): DOMAttr|DOMNameSpaceNode|false

Retourne le nœud d'attribut avec le nom qualifiedName pour l'élément courant.

Liste de paramètres

qualifiedName

Le nom de l'attribut.

Valeurs de retour

Le nœud d'attribut. Notez que pour la déclaration de namespace XML (les attributs xmlns et xmlns:*) une instance de DOMNameSpaceNode est retourné au lieu de DOMAttr.

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 nœud d'attribut

  • « DOMElement::getAttributeNode
  • DOMElement::getAttributeNS »
  • PHP Manual
  • DOMElement
  • Retourne le nœud d'attribut

DOMElement::getAttributeNodeNS

(PHP 5, PHP 7, PHP 8)

DOMElement::getAttributeNodeNS — Retourne le nœud d'attribut

Description

public DOMElement::getAttributeNodeNS(?string $namespace, string $localName): DOMAttr|DOMNameSpaceNode|null

Retourne le nœud d'attribut dans l'espace de noms namespace avec le nom local localName pour le nœud courant.

Liste de paramètres

namespace

L'URI de l'espace de noms.

localName

Le nom local.

Valeurs de retour

Le nœud d'attribut. Notez que pour la déclaration de namespace XML (les attributs xmlns et xmlns:*) une instance de DOMNameSpaceNode est retourné au lieu d'un objet DOMAttr.

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, PHP 8)

DOMElement::getAttributeNS — Retourne la valeur de l'attribut

Description

public DOMElement::getAttributeNS(?string $namespace, string $localName): string

Récupère la valeur de l'attribut dans l'espace de noms namespace avec le nom local localName pour le nœud courant.

Liste de paramètres

namespace

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 namespace 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, PHP 8)

DOMElement::getElementsByTagName — Retourne les éléments par leur nom de balise

Description

public DOMElement::getElementsByTagName(string $qualifiedName): DOMNodeList

Cette fonction retourne une nouvelle instance de la classe DOMNodeList contenant tous les éléments descendants avec un nom de balise qualifiedName donné, dans l'ordre dans lequel ils sont rencontrés lors du parcours de l'arbre de cet élément.

Liste de paramètres

qualifiedName

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, PHP 8)

DOMElement::getElementsByTagNameNS — Récupère les éléments par leur espace de noms et leur localName

Description

public DOMElement::getElementsByTagNameNS(?string $namespace, string $localName): DOMNodeList

Cette fonction récupère tous les éléments descendants avec un nom local localName et un espace de noms namespace donnés.

Liste de paramètres

namespace

L'URI de l'espace de noms des éléments à chercher. La valeur spéciale "*" représente tous les espaces de noms. Passer null représente l'espace de noms vide.

localName

Le nom local des éléments à chercher. La valeur spéciale "*" représente tous les noms locaux.

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.

Historique

Version | Description
8.0.3 | namespace est désormais nullable.

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, PHP 8)

DOMElement::hasAttribute — Vérifie si un attribut existe

Description

public DOMElement::hasAttribute(string $qualifiedName): bool

Indique si un attribut nommé qualifiedName existe en tant que membre de l'élément.

Liste de paramètres

qualifiedName

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, ou modifie un attribut existant
  • DOMElement::removeAttribute() - Efface un attribut


Vérifie si un attribut existe

  • « DOMElement::hasAttribute
  • DOMElement::insertAdjacentElement »
  • PHP Manual
  • DOMElement
  • Vérifie si un attribut existe

DOMElement::hasAttributeNS

(PHP 5, PHP 7, PHP 8)

DOMElement::hasAttributeNS — Vérifie si un attribut existe

Description

public DOMElement::hasAttributeNS(?string $namespace, string $localName): bool

Vérifie si un attribut dans l'espace de noms namespace nommé localName existe en tant que membre de l'élément.

Liste de paramètres

namespace

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


Insert adjacent element

  • « DOMElement::hasAttributeNS
  • DOMElement::insertAdjacentText »
  • PHP Manual
  • DOMElement
  • Insert adjacent element

DOMElement::insertAdjacentElement

(PHP 8 >= 8.3.0)

DOMElement::insertAdjacentElement — Insert adjacent element

Description

public DOMElement::insertAdjacentElement(string $where, DOMElement $element): ?DOMElement

Inserts an element at a relative position given by where.

Liste de paramètres

where

  • beforebegin - Insert before the target element.
  • afterbegin - Insert as the first child of the target element.
  • beforeend - Insert as the last child of the target element.
  • afterend - Insert after the target element.

element

The element to insert.

Valeurs de retour

Return DOMElement or null on failure.

Exemples

Exemple #1 DOMElement::insertAdjacentElement() example

<?php

$dom = new DOMDocument();
$dom->loadXML('<?xml version="1.0"?><container><p>foo</p></container>');
$container = $dom->documentElement;
$p = $container->firstElementChild;

$p->insertAdjacentElement('beforebegin', $dom->createElement('A'));
echo $dom->saveXML();
?>

L'exemple ci-dessus va afficher :

<?xml version="1.0"?>
<container><A/><p>foo</p></container>

Voir aussi

  • DOMElement::insertAdjacentText() - Insert adjacent text


Insert adjacent text

  • « DOMElement::insertAdjacentElement
  • DOMElement::prepend »
  • PHP Manual
  • DOMElement
  • Insert adjacent text

DOMElement::insertAdjacentText

(PHP 8 >= 8.3.0)

DOMElement::insertAdjacentText — Insert adjacent text

Description

public DOMElement::insertAdjacentText(string $where, string $data): void

Inserts text at a relative position given by where.

Liste de paramètres

where

  • beforebegin - Insert before the target element.
  • afterbegin - Insert as the first child of the target element.
  • beforeend - Insert as the last child of the target element.
  • afterend - Insert after the target element.

data

The string to insert.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 DOMElement::insertAdjacentText() example

<?php

$dom = new DOMDocument();
$dom->loadXML('<?xml version="1.0"?><container><p>H</p></container>');

$container = $dom->documentElement;
$p = $container->firstElementChild;

$p->insertAdjacentText("afterbegin", "P");
$p->insertAdjacentText("beforeend", "P");

echo $dom->saveXML();
?>

L'exemple ci-dessus va afficher :

<?xml version="1.0"?>
<container><p>PHP</p></container>

Voir aussi

  • DOMElement::insertAdjacentElement() - Insert adjacent element


Prepends nodes before the first child node

  • « DOMElement::insertAdjacentText
  • DOMElement::remove »
  • PHP Manual
  • DOMElement
  • Prepends nodes before the first child node

DOMElement::prepend

(PHP 8)

DOMElement::prepend — Prepends nodes before the first child node

Description

public DOMElement::prepend(DOMNode|string ...$nodes): void

Prepends one or many nodes to the list of children before the first child node.

Liste de paramètres

nodes

Les nœuds à ajouter. Les chaînes de caractères sont automatiquement convertie en des nœuds de texte.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_HIERARCHY_REQUEST_ERR

Levée si ce nœud est d'un type qui n'autorise pas les enfants du type de l'un des nodes transmis, ou si le nœud à insérer est l'un des ancêtres de ce nœud ou ce nœud lui-même.

DOM_WRONG_DOCUMENT_ERR

Levée si l'un des nodes transmis a été créé à partir d'un document différent de celui qui a créé ce nœud.

Historique

Version | Description
8.3.0 | Appeler cette méthode sur un nœud sans document propriétaire fonctionne désormais. Auparavant, cela déclenchait une DOMException avec le code DOM_HIERARCHY_REQUEST_ERR.

Exemples

Exemple #1 DOMElement::prepend() example

Prepends nodes in the container element.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container> world</container>");
$world = $doc->documentElement;

$world->prepend($doc->createElement("hello"), "beautiful");

echo $doc->saveXML();
?>

L'exemple ci-dessus va afficher :

<?xml version="1.0"?>
<container><hello/>beautiful world</container>

Voir aussi

  • DOMParentNode::prepend() - Ajoute des nœuds avant le premier nœud enfant
  • DOMElement::append() - Appends nodes after the last child node


Removes the element

  • « DOMElement::prepend
  • DOMElement::removeAttribute »
  • PHP Manual
  • DOMElement
  • Removes the element

DOMElement::remove

(PHP 8)

DOMElement::remove — Removes the element

Description

public DOMElement::remove(): void

Removes the element.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 DOMElement::remove() example

Removes the element.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container><hello/><world/></container>");
$hello = $doc->documentElement->firstChild;

$hello->remove();

echo $doc->saveXML();
?>

L'exemple ci-dessus va afficher :

<?xml version="1.0"?>
<container><world/></container>

Voir aussi

  • DOMElement::after() - Adds nodes after the element
  • DOMElement::before() - Adds nodes before the element
  • DOMElement::replaceWith() - Replaces the element with new nodes
  • DOMNode::removeChild() - Supprime un fils de la liste des enfants


Efface un attribut

  • « DOMElement::remove
  • DOMElement::removeAttributeNode »
  • PHP Manual
  • DOMElement
  • Efface un attribut

DOMElement::removeAttribute

(PHP 5, PHP 7, PHP 8)

DOMElement::removeAttribute — Efface un attribut

Description

public DOMElement::removeAttribute(string $qualifiedName): bool

Efface l'attribut nommé qualifiedName de l'élément.

Liste de paramètres

qualifiedName

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 nœud 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, ou modifie un attribut existant


Efface un attribut

  • « DOMElement::removeAttribute
  • DOMElement::removeAttributeNS »
  • PHP Manual
  • DOMElement
  • Efface un attribut

DOMElement::removeAttributeNode

(PHP 5, PHP 7, PHP 8)

DOMElement::removeAttributeNode — Efface un attribut

Description

public DOMElement::removeAttributeNode(DOMAttr $attr): DOMAttr|false

Efface l'attribut attr de l'élément.

Liste de paramètres

attr

Le nœud 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 nœud est en lecture seule.

DOM_NOT_FOUND_ERROR

Lancé si attr n'est pas un attribut de l'élément.

Voir aussi

  • DOMElement::hasAttribute() - Vérifie si un attribut existe
  • DOMElement::getAttributeNode() - Retourne le nœud d'attribut
  • DOMElement::setAttributeNode() - Ajoute un nouvel attribut à l'élément


Efface un attribut

  • « DOMElement::removeAttributeNode
  • DOMElement::replaceChildren »
  • PHP Manual
  • DOMElement
  • Efface un attribut

DOMElement::removeAttributeNS

(PHP 5, PHP 7, PHP 8)

DOMElement::removeAttributeNS — Efface un attribut

Description

public DOMElement::removeAttributeNS(?string $namespace, string $localName): void

Retire l'attribut localName dans l'espace de noms namespace de l'élément.

Liste de paramètres

namespace

L'URI de l'espace de noms.

localName

Le nom local.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Émise si le nœud 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


Replace children in element

  • « DOMElement::removeAttributeNS
  • DOMElement::replaceWith »
  • PHP Manual
  • DOMElement
  • Replace children in element

DOMElement::replaceChildren

(PHP 8 >= 8.3.0)

DOMElement::replaceChildren — Replace children in element

Description

public DOMElement::replaceChildren(DOMNode|string ...$nodes): void

Replaces the children in the element with new nodes.

Liste de paramètres

nodes

The nodes replacing the children. Strings are automatically converted to text nodes.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_HIERARCHY_REQUEST_ERR

Levée si ce nœud est d'un type qui n'autorise pas les enfants du type de l'un des nodes transmis, ou si le nœud à insérer est l'un des ancêtres de ce nœud ou ce nœud lui-même.

DOM_WRONG_DOCUMENT_ERR

Levée si l'un des nodes transmis a été créé à partir d'un document différent de celui qui a créé ce nœud.

Historique

Version | Description
8.3.0 | Calling this method on a node without an owner document now works. Auparavant, cela déclenchait une DOMException avec le code DOM_HIERARCHY_REQUEST_ERR.

Exemples

Exemple #1 DOMElement::replaceChildren() example

Replaces the children with new nodes.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container><hello/></container>");
$container = $doc->documentElement;

$container->replaceWith("beautiful", $doc->createElement("world"));

echo $doc->saveXML();
?>

L'exemple ci-dessus va afficher :

<?xml version="1.0"?>
beautiful
<world/>

Voir aussi

  • DOMParentNode::replaceChildren() - Replace children in node
  • DOMElement::replaceWith() - Replaces the element with new nodes
  • DOMElement::after() - Adds nodes after the element
  • DOMElement::before() - Adds nodes before the element
  • DOMElement::remove() - Removes the element


Replaces the element with new nodes

  • « DOMElement::replaceChildren
  • DOMElement::setAttribute »
  • PHP Manual
  • DOMElement
  • Replaces the element with new nodes

DOMElement::replaceWith

(PHP 8)

DOMElement::replaceWith — Replaces the element with new nodes

Description

public DOMElement::replaceWith(DOMNode|string ...$nodes): void

Replaces the element with new nodes.

Liste de paramètres

nodes

Les nœuds de remplacement.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_HIERARCHY_REQUEST_ERR

Levée si le parent est d'un type qui n'autorise pas les enfants du type de l'un des nodes transmis, ou si le nœud à insérer est l'un des ancêtres de ce nœud ou ce nœud lui-même.

DOM_WRONG_DOCUMENT_ERR

Levée si l'un des nodes transmis a été créé à partir d'un document différent de celui qui a créé ce nœud.

Historique

Version | Description
8.3.0 | Appeler cette méthode sur un nœud sans parent est désormais une opération sans effet pour aligner le comportement avec la spécification du DOM. Auparavant, cela déclenchait une DOMException avec le code DOM_HIERARCHY_REQUEST_ERR.

Exemples

Exemple #1 DOMElement::replaceWith() example

Replaces the element with new nodes.

<?php
$doc = new DOMDocument;
$doc->loadXML("<container><hello/></container>");
$cdata = $doc->documentElement->firstChild;

$cdata->replaceWith("beautiful", $doc->createElement("world"));

echo $doc->saveXML();
?>

L'exemple ci-dessus va afficher :

<?xml version="1.0"?>
<container>beautiful<world/></container>

Voir aussi

  • DOMChildNode::replaceWith() - Remplace le nœud par de nouveaux nœuds
  • DOMElement::replaceChildren() - Replace children in element
  • DOMElement::after() - Adds nodes after the element
  • DOMElement::before() - Adds nodes before the element
  • DOMElement::remove() - Removes the element


Ajoute un nouvel attribut, ou modifie un attribut existant

  • « DOMElement::replaceWith
  • DOMElement::setAttributeNode »
  • PHP Manual
  • DOMElement
  • Ajoute un nouvel attribut, ou modifie un attribut existant

DOMElement::setAttribute

(PHP 5, PHP 7, PHP 8)

DOMElement::setAttribute — Ajoute un nouvel attribut, ou modifie un attribut existant

Description

public DOMElement::setAttribute(string $qualifiedName, string $value): DOMAttr|bool

Ajoute un attribut avec comme nom qualifiedName et comme valeur value. Si l'attribut n'existe pas, il sera créé.

Liste de paramètres

qualifiedName

Le nom de l'attribut.

value

La valeur de l'attribut.

Valeurs de retour

Le DOMAttr crée ou modifié, ou false si une erreur survient.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le nœud 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, PHP 8)

DOMElement::setAttributeNode — Ajoute un nouvel attribut à l'élément

Description

public DOMElement::setAttributeNode(DOMAttr $attr): DOMAttr|null|false

Ajoute un nouvel attribut attr à l'élément. Si un attribut du même nom existe déjà sur l'élément, cet attribut est remplacé par attr.

Liste de paramètres

attr

L'attribut.

Valeurs de retour

Retourne l'ancien attribut s'il a été remplacé ou null s'il n'y avait pas d'ancien attribut. Si une erreur DOM_WRONG_DOCUMENT_ERR est déclenchée, et que strictErrorChecking est false, alors false est renvoyé.

Erreurs / Exceptions

DOM_WRONG_DOCUMENT_ERR

Lancé si attr appartient à un document différent de celui de l'élément.

Voir aussi

  • DOMElement::hasAttribute() - Vérifie si un attribut existe
  • DOMElement::getAttributeNode() - Retourne le nœud 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, PHP 8)

DOMElement::setAttributeNodeNS — Ajoute un nouvel attribut à l'élément

Description

public DOMElement::setAttributeNodeNS(DOMAttr $attr): DOMAttr|null|false

Ajoute un nouvel attribut attr à l'élément, en tenant compte de l'espace de noms (namespace): Si un attribut du même nom existe déjà sur l'élément, cet attribut est remplacé par attr.

Liste de paramètres

attr

Le nom de l'attribut.

Valeurs de retour

Retourne l'ancien attribut s'il a été remplacé ou null s'il n'y avait pas d'ancien attribut. Si une erreur DOM_WRONG_DOCUMENT_ERR est déclenchée, et que strictErrorChecking est false, alors false est renvoyé.

Erreurs / Exceptions

DOM_WRONG_DOCUMENT_ERR

Lancé si attr appartient à un document différent de celui de l'élément.

Voir aussi

  • DOMElement::hasAttributeNS() - Vérifie si un attribut existe
  • DOMElement::getAttributeNodeNS() - Retourne le nœud 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, PHP 8)

DOMElement::setAttributeNS — Ajoute un nouvel attribut

Description

public DOMElement::setAttributeNS(?string $namespace, string $qualifiedName, string $value): void

Ajoute un attribut avec comme espace de noms namespace et comme nom qualifiedName avec comme valeur value. Si l'attribut n'existe pas, il sera créé.

Liste de paramètres

namespace

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 nœud est en lecture seule.

DOM_NAMESPACE_ERR

Lancé si qualifiedName est un nom qualifié malformé ou si qualifiedName a un préfixe et un namespace qui vaut null.

Voir aussi

  • DOMElement::hasAttributeNS() - Vérifie si un attribut existe
  • DOMElement::getAttributeNodeNS() - Retourne le nœud 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, PHP 8)

DOMElement::setIdAttribute — Déclare l'attribut spécifié par son nom à être de type ID

Description

public DOMElement::setIdAttribute(string $qualifiedName, bool $isId): void

Déclare l'attribut qualifiedName afin qu'il soit de type ID.

Liste de paramètres

qualifiedName

Le nom de l'attribut.

isId

Définissez à true si vous voulez que qualifiedName 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 nœud est en lecture seule.

DOM_NOT_FOUND

Envoyé si qualifiedName 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 nœud à ê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 nœud à être de type ID

  • « DOMElement::setIdAttribute
  • DOMElement::setIdAttributeNS »
  • PHP Manual
  • DOMElement
  • Déclare l'attribut spécifié par le nœud à être de type ID

DOMElement::setIdAttributeNode

(PHP 5, PHP 7, PHP 8)

DOMElement::setIdAttributeNode — Déclare l'attribut spécifié par le nœud à être de type ID

Description

public DOMElement::setIdAttributeNode(DOMAttr $attr, bool $isId): void

Déclare l'attribut spécifié par attr afin qu'il soit de type ID.

Liste de paramètres

attr

L'attribut du nœud.

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 nœud 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
  • DOMElement::toggleAttribute »
  • 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, PHP 8)

DOMElement::setIdAttributeNS — Déclare l'attribut spécifié par son nom local et son espace de nom URI à être de type ID

Description

public DOMElement::setIdAttributeNS(string $namespace, string $qualifiedName, bool $isId): void

Déclare l'attribut spécifié par qualifiedName et namespace afin qu'il soit de type ID.

Liste de paramètres

namespace

L'URI de l'espace de nom de l'attribut.

qualifiedName

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 nœud 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 nœud à être de type ID


Toggle attribute

  • « DOMElement::setIdAttributeNS
  • DOMEntity »
  • PHP Manual
  • DOMElement
  • Toggle attribute

DOMElement::toggleAttribute

(PHP 8 >= 8.3.0)

DOMElement::toggleAttribute — Toggle attribute

Description

public DOMElement::toggleAttribute(string $qualifiedName, ?bool $force = null): bool

Toggle the attribute.

Liste de paramètres

qualifiedName

The qualified name of the attribute.

force

  • if null, the function will toggle the attribute.
  • if true, the function adds the attribute.
  • if false, the function removes the attribute.

Valeurs de retour

Returns true if the attribute is present after finishing the call, false otherwise.

Exemples

Exemple #1 DOMElement::toggleAttribute() example

<?php

$dom = new DOMDocument();
$dom->loadXML("<?xml version='1.0'?><container selected=\"\"/>");

var_dump($dom->documentElement->toggleAttribute('selected'));
echo $dom->saveXML() . PHP_EOL;

var_dump($dom->documentElement->toggleAttribute('selected'));
echo $dom->saveXML();
?>

L'exemple ci-dessus va afficher :

bool(false)
<?xml version="1.0"?>
<container/>

bool(true)
<?xml version="1.0"?>
<container selected=""/>


La classe DOMEntity

(PHP 5, PHP 7, PHP 8)

Introduction

Cette interface représente une entité connue, analysée ou non, dans un document XML.

Synopsis de la classe

class DOMEntity extends DOMNode {
/* Propriétés */
public readonly ?string $publicId;
public readonly ?string $systemId;
public readonly ?string $notationName;
public readonly ?string $actualEncoding = null;
public readonly ?string $encoding = null;
public readonly ?string $version = null;
/* Propriétés héritées */
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
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 bool $isConnected;
public readonly ?DOMDocument $ownerDocument;
public readonly ?string $namespaceURI;
public string $prefix;
public readonly ?string $localName;
public readonly ?string $baseURI;
public string $textContent;
/* Méthodes héritées */
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(?array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

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 URI absolue ou non.

notationName

Pour les entités non analysées, 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 partie 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 partie 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, PHP 8)

Synopsis de la classe

class DOMEntityReference extends DOMNode {
/* Propriétés héritées */
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
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 bool $isConnected;
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 __construct(string $name)
/* Méthodes héritées */
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(?array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

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, PHP 8)

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 nœud de référence d'entité


La classe DOMException

(PHP 5, PHP 7, PHP 8)

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

final class DOMException extends Exception {
/* Propriétés */
public int $code;
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
public Exception::__construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}

Propriétés

code

Un entier indiquant le type d'erreur généré


La classe DOMImplementation

(PHP 5, PHP 7, PHP 8)

Introduction

La classe 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

class DOMImplementation {
/* Méthodes */
public createDocument(?string $namespace = null, string $qualifiedName = "", ?DOMDocumentType $doctype = null): DOMDocument|false
public createDocumentType(string $qualifiedName, string $publicId = "", string $systemId = ""): DOMDocumentType|false
public hasFeature(string $feature, string $version): bool
}

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()

Crée un nouvel objet DOMImplementation.

Liste de paramètres

Cette fonction ne contient aucun paramètre.


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, PHP 8)

DOMImplementation::createDocument — Crée un objet DOM Document du type spécifié avec ses éléments

Description

public DOMImplementation::createDocument(?string $namespace = null, string $qualifiedName = "", ?DOMDocumentType $doctype = null): DOMDocument|false

Crée un objet DOMDocument du type spécifié avec ces éléments du document.

Liste de paramètres

namespace

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 ou false en cas d'erreur. Si namespace, 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 namespace et qualifiedName.

Historique

Version | Description
8.0.3 | namespace est désormais nullable.
8.0.0 | doctype est désormais nullable.
8.0.0 | Appeler cette fonction de manière statique lèvera désormais une Error. Auparavant, une erreur E_DEPRECATED était générée.

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, PHP 8)

DOMImplementation::createDocumentType — Crée un objet DOMDocumentType vide

Description

public DOMImplementation::createDocumentType(string $qualifiedName, string $publicId = "", string $systemId = ""): DOMDocumentType|false

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 nœud DOMDocumentType avec son ownerDocument défini à null ou false en cas d'erreur.

Erreurs / Exceptions

DOM_NAMESPACE_ERR

Levée si il y a une erreur avec l'espace de noms, déterminé par qualifiedName.

Historique

Version | Description
8.0.0 | Appeler cette fonction de manière statique lèvera désormais une Error. Auparavant, une erreur E_DEPRECATED était générée.

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, PHP 8)

DOMImplementation::hasFeature — Teste si l'implémentation DOM implémente une fonctionnalité spécifique

Description

public DOMImplementation::hasFeature(string $feature, string $version): bool

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.

Historique

Version | Description
8.0.0 | Appeler cette fonction de manière statique lèvera désormais une Error. Auparavant, une erreur E_DEPRECATED était générée.

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'
);

$implementation = new DOMImplementation;

foreach ($features as $key => $name) {
if ($implementation->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, PHP 8)

Synopsis de la classe

class DOMNamedNodeMap implements IteratorAggregate, Countable {
/* Propriétés */
public readonly int $length;
/* Méthodes */
public count(): int
public getIterator(): Iterator
public getNamedItem(string $qualifiedName): ?DOMNode
public getNamedItemNS(?string $namespace, string $localName): ?DOMNode
public item(int $index): ?DOMNode
}

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.

Historique

Version | Description
8.0.0 | Les méthodes non implémentées DOMNamedNodeMap::setNamedItem(), DOMNamedNodeMap::removeNamedItem(), DOMNamedNodeMap::setNamedItemNS() et DOMNamedNodeMap::removeNamedItem() ont été supprimées.
8.0.0 | La classe DOMNamedNodeMap implémente désormais IteratorAggregate. Auparavant, seule Traversable était implémentée.

Sommaire

  • DOMNamedNodeMap::count — Récupère le nombre de nœuds dans la collection non triée (map)
  • DOMNamedNodeMap::getIterator — Retrieve an external iterator
  • DOMNamedNodeMap::getNamedItem — Retourne un nœud spécifié par son nom
  • DOMNamedNodeMap::getNamedItemNS — Retourne un nœud spécifié par son nom local et son espace de noms
  • DOMNamedNodeMap::item — Retourne un nœud selon son index


Récupère le nombre de nœuds dans la collection non triée (map)

  • « DOMNamedNodeMap
  • DOMNamedNodeMap::getIterator »
  • PHP Manual
  • DOMNamedNodeMap
  • Récupère le nombre de nœuds dans la collection non triée (map)

DOMNamedNodeMap::count

(PHP 7 >= 7.2.0, PHP 8)

DOMNamedNodeMap::count — Récupère le nombre de nœuds dans la collection non triée (map)

Description

public DOMNamedNodeMap::count(): int

Récupère le nombre de nœuds dans la collection non triée (map).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre de nœuds dans la collection non triée, ce qui est identique à la propriété length.


Retrieve an external iterator

  • « DOMNamedNodeMap::count
  • DOMNamedNodeMap::getNamedItem »
  • PHP Manual
  • DOMNamedNodeMap
  • Retrieve an external iterator

DOMNamedNodeMap::getIterator

(PHP 8)

DOMNamedNodeMap::getIterator — Retrieve an external iterator

Description

public DOMNamedNodeMap::getIterator(): Iterator

Returns an external iterator for the named node map.

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.

Voir aussi

  • IteratorAggregate::getIterator() - Retourne un itérateur externe


Retourne un nœud spécifié par son nom

  • « DOMNamedNodeMap::getIterator
  • DOMNamedNodeMap::getNamedItemNS »
  • PHP Manual
  • DOMNamedNodeMap
  • Retourne un nœud spécifié par son nom

DOMNamedNodeMap::getNamedItem

(PHP 5, PHP 7, PHP 8)

DOMNamedNodeMap::getNamedItem — Retourne un nœud spécifié par son nom

Description

public DOMNamedNodeMap::getNamedItem(string $qualifiedName): ?DOMNode

Récupère un nœud spécifié par son nodeName.

Liste de paramètres

qualifiedName

Le nodeName du nœud à récupérer.

Valeurs de retour

Un nœud (de n'importe quel type) avec un nodeName spécifié, ou null si aucun nœud n'est trouvé.

Voir aussi

  • DOMNamedNodeMap::getNamedItemNS() - Retourne un nœud spécifié par son nom local et son espace de noms


Retourne un nœud spécifié par son nom local et son espace de noms

  • « DOMNamedNodeMap::getNamedItem
  • DOMNamedNodeMap::item »
  • PHP Manual
  • DOMNamedNodeMap
  • Retourne un nœud spécifié par son nom local et son espace de noms

DOMNamedNodeMap::getNamedItemNS

(PHP 5, PHP 7, PHP 8)

DOMNamedNodeMap::getNamedItemNS — Retourne un nœud spécifié par son nom local et son espace de noms

Description

public DOMNamedNodeMap::getNamedItemNS(?string $namespace, string $localName): ?DOMNode

Retourne un nœud spécifié par son nom local localName et son espace de noms namespace.

Liste de paramètres

namespace

L'URI de l'espace de noms du nœud à récupérer.

localName

Le nom local du nœud à récupérer.

Valeurs de retour

Un nœud, de n'importe quel type ou null si aucun nœud n'est trouvé.

Voir aussi

  • DOMNamedNodeMap::getNamedItemNS()


Retourne un nœud selon son index

  • « DOMNamedNodeMap::getNamedItemNS
  • DOMNameSpaceNode »
  • PHP Manual
  • DOMNamedNodeMap
  • Retourne un nœud selon son index

DOMNamedNodeMap::item

(PHP 5, PHP 7, PHP 8)

DOMNamedNodeMap::item — Retourne un nœud selon son index

Description

public DOMNamedNodeMap::item(int $index): ?DOMNode

Retourne un nœud spécifié par index dans l'objet DOMNamedNodeMap.

Liste de paramètres

index

Index dans cette carte.

Valeurs de retour

Le nœud à la position index dans la carte, ou null si ce n'est pas un index valide (plus grand que ou égal au nombre de nœuds dans cette carte).


The DOMNameSpaceNode class

(PHP 5, PHP 7, PHP 8)

Synopsis de la classe

class DOMNameSpaceNode {
/* Propriétés */
public readonly string $nodeName;
public readonly ?string $nodeValue;
public readonly int $nodeType;
public readonly string $prefix;
public readonly ?string $localName;
public readonly ?string $namespaceURI;
public readonly bool $isConnected;
public readonly ?DOMDocument $ownerDocument;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
}

Propriétés

nodeName

The qualified name of this node.

nodeValue

The namespace URI declared by this node, or null if the empty namespace.

nodeType

The type of the node. In this case it returns XML_NAMESPACE_DECL_NODE .

prefix

The namespace prefix declared by this node.

localName

The local part of the qualified name of this node.

namespaceURI

The namespace URI declared by this node, or null if it is unspecified.

isConnected

Whether the node is connected to a document.

ownerDocument

The DOMDocument object associated with this node, or null if this node is a DOMDocument

parentNode

The parent of this node. If there is no such node, this returns null.

parentElement

The parent element of this node. If there is no such element, this returns null.

Historique

Version | Description
8.3.0 | Properties DOMNameSpaceNode::$parentElement, and DOMNameSpaceNode::$isConnected have been added.


La classe DOMNode

(PHP 5, PHP 7, PHP 8)

Synopsis de la classe

class DOMNode {
/* Propriétés */
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
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 bool $isConnected;
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 appendChild(DOMNode $node): DOMNode|false
public C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public cloneNode(bool $deep = false): DOMNode|false
public contains(DOMNode|DOMNameSpaceNode|null $other): bool
public getLineNo(): int
public getNodePath(): ?string
public getRootNode(?array $options = null): DOMNode
public hasAttributes(): bool
public hasChildNodes(): bool
public insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public isDefaultNamespace(string $namespace): bool
public isEqualNode(?DOMNode $otherNode): bool
public isSameNode(DOMNode $otherNode): bool
public isSupported(string $feature, string $version): bool
public lookupNamespaceURI(?string $prefix): ?string
public lookupPrefix(string $namespace): ?string
public normalize(): void
public removeChild(DOMNode $child): DOMNode|false
public replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Propriétés

nodeName

Retourne le nom, le plus précis, pour le type de nœud courant

nodeValue

La valeur de ce nœud, suivant son type. Contrairement aux spécifications W3C, la valeur du nœud des nœuds DOMElement est égale à DOMNode::textContent au lieu de null.

nodeType

Récupère le type du nœud. Une des constantes XML_xxx_NODE

parentNode

Le parent de ce nœud. Si ce type de nœud n'existe pas, ceci retournera null.

parentElement

L'élément pare de cet élément. S'il n'y a pas de tel élément, ceci retourne null.

childNodes

Un DOMNodeList qui contient tous les enfants de ce nœud. S'il n'y a aucun enfant, ce sera un DOMNodeList vide.

firstChild

Le premier enfant de ce nœud. S'il n'y a aucun nœud de ce type, retourne null.

lastChild

Le dernier enfant de ce nœud. S'il n'y a aucun nœud de ce type, retourne null.

previousSibling

Le nœud précédant immédiatement ce nœud. S'il n'y a aucun nœud, retourne null.

nextSibling

Le nœud suivant immédiatement ce nœud. S'il n'y a aucun nœud, retourne null.

attributes

Un DOMNamedNodeMap contenant les attributs de ce nœud (si c'est un DOMElement) ou null sinon.

isConnected

Si le nœud est connecté à un document ou non

ownerDocument

L'objet DOMDocument associé avec ce nœud, ou null si ce nœud est un DOMDocument.

namespaceURI

L'espace de nom de l'URL pour ce nœud, ou null s'il n'est pas spécifié.

prefix

Le préfixe de l'espace de nom de ce nœud.

localName

Retourne la partie locale du nom qualifié du nœud.

baseURI

La base de l'URL absolue du nœud, ou null si l'implémentation n'a pas réussi à obtenir l'URL absolue.

textContent

Le contenu textuel de ce nœud et de ces descendants.

Historique

Version | Description
8.3.0 | Les propriétés DOMNode::$parentElement, et DOMNode::$isConnected ont été ajouté.
8.0.0 | Les méthodes non implémentées DOMNode::compareDocumentPosition(), DOMNode::isEqualNode(), DOMNode::getFeature(), DOMNode::setUserData() et DOMNode::getUserData() ont été supprimées.

Notes

Note:

L'extension DOM utilise l'encodage UTF-8. Utilisez mb_convert_encoding(), UConverter::transcode(), ou iconv() pour manipuler d'autres encodages.

Voir aussi

  • » La spécification W3C specification d'un nœud

Sommaire

  • DOMNode::appendChild — Ajoute un nouveau fils à la fin des fils
  • DOMNode::C14N — Canonise des nœuds en une chaîne
  • DOMNode::C14NFile — Canonise des nœuds en fichier
  • DOMNode::cloneNode — Clone un nœud
  • DOMNode::contains — Checks if node contains other node
  • DOMNode::getLineNo — Lit le numéro de ligne d'un nœud
  • DOMNode::getNodePath — Récupère un XPath pour un nœud
  • DOMNode::getRootNode — Get root node
  • DOMNode::hasAttributes — Vérifie si le nœud possède un attribut
  • DOMNode::hasChildNodes — Vérifie si le nœud possède des enfants
  • DOMNode::insertBefore — Ajoute un nouveau fils avant un nœud de référence.
  • DOMNode::isDefaultNamespace — Vérifie si l'espace de nom spécifié est l'espace de noms par défaut ou non
  • DOMNode::isEqualNode — Checks that both nodes are equal
  • DOMNode::isSameNode — Indique si deux nœuds 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 nœud
  • 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, PHP 8)

DOMNode::appendChild — Ajoute un nouveau fils à la fin des fils

Description

public DOMNode::appendChild(DOMNode $node): DOMNode|false

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 nœud.

Lors de l'utilisation d'un nœud existant, il sera supprimé.

Liste de paramètres

node

Le nœud fils à ajouter.

Valeurs de retour

Le nœud fils ajouté ou false en cas d'erreur.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le nœud est en lecture seule ou si le parent précédent le nœud à insérer est en lecture seule.

DOM_HIERARCHY_REQUEST_ERR

Lancé si le nœud est d'un type qui n'autorise pas d'enfant du type du nœud node, ou si le nœud à ajouter est un des nœuds ancêtres ou ce nœud lui-même.

DOM_WRONG_DOCUMENT_ERR

Lancé si node a été créé depuis un document différent que celui qui a créé ce nœud.

Exemples

L'exemple suivant ajoutera un nouveau nœud à un document nouveau.

Exemple #1 Ajout d'un fils

<?php

$doc = new DOMDocument;

$node = $doc->createElement("para");
$newnode = $doc->appendChild($node);

echo $doc->saveXML();
?>

Exemple #2 Enfant imbriqué

<?php

$doc = new DOMDocument;

$headNode = $doc->createElement("head");
$doc->appendChild($headNode);

$titleNode = $doc->createElement("title");
$headNode->appendChild($titleNode);

echo $doc->saveXML();
?>

Voir aussi

  • DOMChildNode::after() - Ajoute des nœuds après le nœud
  • DOMNode::insertBefore() - Ajoute un nouveau fils avant un nœud de référence.
  • DOMNode::removeChild() - Supprime un fils de la liste des enfants
  • DOMNode::replaceChild() - Remplace un fils


Canonise des nœuds en une chaîne

  • « DOMNode::appendChild
  • DOMNode::C14NFile »
  • PHP Manual
  • DOMNode
  • Canonise des nœuds en une chaîne

DOMNode::C14N

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DOMNode::C14N — Canonise des nœuds en une chaîne

Description

public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false

Canonise des nœuds en une chaîne de caractères.

Liste de paramètres

exclusive

Active l'analyse des seuls nœuds correspondant à l'Xpath ou aux préfixes d'espace de noms fournis.

withComments

Conserve les commentaires dans la sortie.

xpath

Un tableau de xpath utilisés pour filtrer les nœuds.

nsPrefixes

Un tableau de préfixes d'espaces de noms utilisés pour filtrer les nœuds.

Valeurs de retour

Retourne les nœuds canonisés, sous la forme d'une chaîne de caractères ou false si une erreur survient

Voir aussi

  • DOMNode::C14NFile() - Canonise des nœuds en fichier


Canonise des nœuds en fichier

  • « DOMNode::C14N
  • DOMNode::cloneNode »
  • PHP Manual
  • DOMNode
  • Canonise des nœuds en fichier

DOMNode::C14NFile

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DOMNode::C14NFile — Canonise des nœuds en fichier

Description

public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false

Canonise des nœuds en fichier.

Liste de paramètres

uri

Chemin vers lequel le fichier sera créé.

exclusive

Active l'analyse des seuls nœuds correspondant à l'xpath ou préfixes d'espace de noms fournis.

withComments

Conserve les commentaires dans la sortie.

xpath

Un tableau d'xpath utilisés pour filtrer les nœuds.

nsPrefixes

Un tableau de préfixes d'espace de noms utilisés pour filtrer les nœuds.

Valeurs de retour

Nombre d'octets écrits ou false si une erreur survient

Voir aussi

  • DOMNode::C14N() - Canonise des nœuds en une chaîne


Clone un nœud

  • « DOMNode::C14NFile
  • DOMNode::contains »
  • PHP Manual
  • DOMNode
  • Clone un nœud

DOMNode::cloneNode

(PHP 5, PHP 7, PHP 8)

DOMNode::cloneNode — Clone un nœud

Description

public DOMNode::cloneNode(bool $deep = false): DOMNode|false

Crée une copie d'un nœud.

Liste de paramètres

deep

Indique si l'on doit copier tous les nœuds fils. Ce paramètre vaut false par défaut.

Valeurs de retour

Le nœud cloné.


Checks if node contains other node

  • « DOMNode::cloneNode
  • DOMNode::getLineNo »
  • PHP Manual
  • DOMNode
  • Checks if node contains other node

DOMNode::contains

(PHP 8 >= 8.3.0)

DOMNode::contains — Checks if node contains other node

Description

public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool

Checks if node contains other node.

Liste de paramètres

other

Node to be checked.

Valeurs de retour

Returns true if node contains other node, false otherwise.

Exemples

Exemple #1 DOMNode::contains() example

<?php

$dom = new DOMDocument();
$dom->loadXML(<<<XML
<!DOCTYPE HTML>
<html>
<body>
<main>
<p>Hello, world!</p>
</main>
</body>
</html>
XML);

$xpath = new DOMXPath($dom);
$main = $xpath->query("//main")[0];

var_dump($dom->documentElement->contains($main));
?>

L'exemple ci-dessus va afficher :

bool(true)


Lit le numéro de ligne d'un nœud

  • « DOMNode::contains
  • DOMNode::getNodePath »
  • PHP Manual
  • DOMNode
  • Lit le numéro de ligne d'un nœud

DOMNode::getLineNo

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DOMNode::getLineNo — Lit le numéro de ligne d'un nœud

Description

public DOMNode::getLineNo(): int

Obtient le numéro de ligne pour lequel le nœud a été défini au moment de l'analyse.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le numéro de ligne pour lequel le nœud a été défini au moment de l'analyse. Si le nœud a été créé manuellement, la valeur de retour sera 0.

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 nœud.
printf('Le nœud <node> est défini à la ligne %d', $dom->getElementsByTagName('node')->item(0)->getLineNo());
?>

L'exemple ci-dessus va afficher :

Le nœud <node> est défini à la ligne 3


Récupère un XPath pour un nœud

  • « DOMNode::getLineNo
  • DOMNode::getRootNode »
  • PHP Manual
  • DOMNode
  • Récupère un XPath pour un nœud

DOMNode::getNodePath

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DOMNode::getNodePath — Récupère un XPath pour un nœud

Description

public DOMNode::getNodePath(): ?string

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


Get root node

  • « DOMNode::getNodePath
  • DOMNode::hasAttributes »
  • PHP Manual
  • DOMNode
  • Get root node

DOMNode::getRootNode

(PHP 8 >= 8.3.0)

DOMNode::getRootNode — Get root node

Description

public DOMNode::getRootNode(?array $options = null): DOMNode

Get root node.

Liste de paramètres

options

This parameter has no effect yet.

Valeurs de retour

Returns the root node.

Exemples

Exemple #1 DOMNode::getRootNode() example

<?php

$dom = new DOMDocument();
$dom->loadXML('<?xml version="1.0"?><html><body/></html>');

var_dump($dom->documentElement->firstElementChild->getRootNode() === $dom);
?>

L'exemple ci-dessus va afficher :

bool(true)


Vérifie si le nœud possède un attribut

  • « DOMNode::getRootNode
  • DOMNode::hasChildNodes »
  • PHP Manual
  • DOMNode
  • Vérifie si le nœud possède un attribut

DOMNode::hasAttributes

(PHP 5, PHP 7, PHP 8)

DOMNode::hasAttributes — Vérifie si le nœud possède un attribut

Description

public DOMNode::hasAttributes(): bool

Cette méthode vérifie si un nœud possède des attributs. Le nœud testé doit être un XML_ELEMENT_NODE.

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

  • DOMNode::hasChildNodes() - Vérifie si le nœud possède des enfants


Vérifie si le nœud possède des enfants

  • « DOMNode::hasAttributes
  • DOMNode::insertBefore »
  • PHP Manual
  • DOMNode
  • Vérifie si le nœud possède des enfants

DOMNode::hasChildNodes

(PHP 5, PHP 7, PHP 8)

DOMNode::hasChildNodes — Vérifie si le nœud possède des enfants

Description

public DOMNode::hasChildNodes(): bool

Cette fonction vérifie si un nœud possède des enfants.

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

  • DOMImplementation::hasFeature() - Teste si l'implémentation DOM implémente une fonctionnalité spécifique


Ajoute un nouveau fils avant un nœud de référence.

  • « DOMNode::hasChildNodes
  • DOMNode::isDefaultNamespace »
  • PHP Manual
  • DOMNode
  • Ajoute un nouveau fils avant un nœud de référence.

DOMNode::insertBefore

(PHP 5, PHP 7, PHP 8)

DOMNode::insertBefore — Ajoute un nouveau fils avant un nœud de référence.

Description

public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false

Cette fonction insère un nouveau nœud juste avant le nœud de référence. Si vous comptez faire des modifications plus tard sur l'enfant ajouté, vous devez utiliser le nœud retourné.

Lors de l'utilisation d'un nœud existant, il sera déplacé.

Liste de paramètres

node

Le nouveau nœud.

child

Le nœud référencé. Si non spécifié, node sera ajouté aux fils.

Valeurs de retour

Le nœud inséré ou false en cas d'erreur.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le nœud est en lecture seule ou si le parent précédent le nœud à insérer est en lecture seule.

DOM_HIERARCHY_REQUEST_ERR

Lancé si ce nœud est d'un type qui n'autorise pas de fils du type du nœud node, ou si le nœud à ajouter est un des ancêtres de ce nœud ou ce nœud lui-même.

DOM_WRONG_DOCUMENT_ERR

Lancé si node a été créé depuis un document différent que celui qui a créé ce nœud.

DOM_NOT_FOUND

Lancé si child n'est pas un fils de ce nœud.

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::isEqualNode »
  • 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, PHP 8)

DOMNode::isDefaultNamespace — Vérifie si l'espace de nom spécifié est l'espace de noms par défaut ou non

Description

public DOMNode::isDefaultNamespace(string $namespace): bool

Vérifie si namespace est l'espace de noms par défaut.

Liste de paramètres

namespace

L'URI de l'espace de noms à vérifier.

Valeurs de retour

Retourne true si namespace est l'espace de noms par défaut, false sinon.


Checks that both nodes are equal

  • « DOMNode::isDefaultNamespace
  • DOMNode::isSameNode »
  • PHP Manual
  • DOMNode
  • Checks that both nodes are equal

DOMNode::isEqualNode

(PHP 8 >= 8.3.0)

DOMNode::isEqualNode — Checks that both nodes are equal

Description

public DOMNode::isEqualNode(?DOMNode $otherNode): bool

Checks that both nodes are equal.

Liste de paramètres

otherNode

The node.

Valeurs de retour

Returns true if both nodes are equal, false otherwise.

Exemples

Exemple #1 DOMNode::isEqualNode() example

<?php

$dom1 = (new DOMDocument())->createElement('h1', 'Hello World!');
$dom2 = (new DOMDocument())->createElement('h1', 'Hello World!');

var_dump($dom1->isEqualNode($dom2));
?>

L'exemple ci-dessus va afficher :

bool(true)


Indique si deux nœuds sont identiques

  • « DOMNode::isEqualNode
  • DOMNode::isSupported »
  • PHP Manual
  • DOMNode
  • Indique si deux nœuds sont identiques

DOMNode::isSameNode

(PHP 5, PHP 7, PHP 8)

DOMNode::isSameNode — Indique si deux nœuds sont identiques

Description

public DOMNode::isSameNode(DOMNode $otherNode): bool

Cette fonction indique si deux nœuds sont identiques. La comparaison n'est pas basée sur le contenu.

Liste de paramètres

otherNode

Le nœud à 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, PHP 8)

DOMNode::isSupported — Vérifie si la fonctionnalité est disponible pour la version spécifiée

Description

public DOMNode::isSupported(string $feature, string $version): bool

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, PHP 8)

DOMNode::lookupNamespaceURI — Retourne l'URI de l'espace de noms selon le préfixe

Description

public DOMNode::lookupNamespaceURI(?string $prefix): ?string

Retourne l'URI de l'espace de noms selon le préfixe prefix.

Liste de paramètres

prefix

Le préfixe à rechercher. Si ce paramètre est null, la méthode renverra l'URI de l'espace de noms par défaut, s'il existe.

Valeurs de retour

Renvoie l'URI de l'espace de noms associé, ou null s'il n'en est pas trouvé.

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, PHP 8)

DOMNode::lookupPrefix — Retourne le préfixe de l'espace de noms selon l'URI de l'espace de noms

Description

public DOMNode::lookupPrefix(string $namespace): ?string

Retourne le préfixe de l'espace du nœud selon l'URI de l'espace de noms.

Liste de paramètres

namespace

L'URI de l'espace de noms.

Valeurs de retour

Le préfixe de l'espace de noms ou null en cas d'erreur.

Voir aussi

  • DOMNode::lookupNamespaceUri() - Retourne l'URI de l'espace de noms selon le préfixe


Normalise le nœud

  • « DOMNode::lookupPrefix
  • DOMNode::removeChild »
  • PHP Manual
  • DOMNode
  • Normalise le nœud

DOMNode::normalize

(PHP 5, PHP 7, PHP 8)

DOMNode::normalize — Normalise le nœud

Description

public DOMNode::normalize(): void

Supprime les nœuds de texte vides et fusionne les nœuds de texte adjacents dans ce nœud ainsi que tous ces enfants.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

DOMNode::removeChild — Supprime un fils de la liste des enfants

Description

public DOMNode::removeChild(DOMNode $child): DOMNode|false

Cette fonction supprime un fils de la liste des enfants.

Liste de paramètres

child

Le fils à effacer.

Valeurs de retour

Si le fils ne peut être effacé, la fonction retourne l'ancien fils ou false en cas d'erreur.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le nœud est en lecture seule.

DOM_NOT_FOUND

Lancé si child n'est pas un fils de ce nœud.

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

  • DOMChildNode::remove() - Supprime le nœud
  • 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, PHP 8)

DOMNode::replaceChild — Remplace un fils

Description

public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false

Cette fonction remplace le fils child par le nouveau nœud spécifié. Si node est déjà un fils, il ne sera pas ajouté une seconde fois. Si le remplacement réussi, l'ancien nœud sera retourné.

Liste de paramètres

node

Le nouveau nœud. 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.

child

L'ancien nœud.

Valeurs de retour

L'ancien nœud ou false si une erreur survient.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le nœud est en lecture seule ou si le parent précédent du nœud à insérer est en lecture seule.

DOM_HIERARCHY_REQUEST_ERR

Lancé si le nœud est d'un type qui n'autorise pas les fils du type du nœud node, ou si le nœud à insérer est un des ancêtres de ce nœud ou ce nœud lui-même.

DOM_WRONG_DOCUMENT_ERR

Émise si node a été créé depuis un document différent que celui qui a créé ce nœud.

DOM_NOT_FOUND

Lancé si child n'est pas un fils de ce nœud.

Voir aussi

  • DOMChildNode::replaceWith() - Remplace le nœud par de nouveaux nœuds
  • 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, PHP 8)

Synopsis de la classe

class DOMNodeList implements IteratorAggregate, Countable {
/* Propriétés */
public readonly int $length;
/* Méthodes */
public count(): int
public getIterator(): Iterator
public item(int $index): DOMElement|DOMNode|DOMNameSpaceNode|null
}

Propriétés

length

Le nombre de nœuds dans la liste. L'intervalle valide des indices des nœuds fils est 0 à length - 1, inclus.

Historique

Version | Description
8.0.0 | DOMNodeList implémente désormais IteratorAggregate. Auparavant, Traversable était implémenté à la place.
7.2.0 | L'interface Countable est implémentée et retourne la valeur de la propriété length.

Voir aussi

  • » Les spécifications W3C de NodeList

Sommaire

  • DOMNodeList::count — Récupère le nombre de nœuds dans la collection triée (list)
  • DOMNodeList::getIterator — Retrieve an external iterator
  • DOMNodeList::item — Retourne un nœud spécifié par son index


Récupère le nombre de nœuds dans la collection triée (list)

  • « DOMNodeList
  • DOMNodeList::getIterator »
  • PHP Manual
  • DOMNodeList
  • Récupère le nombre de nœuds dans la collection triée (list)

DOMNodeList::count

(PHP 7 >= 7.2.0, PHP 8)

DOMNodeList::count — Récupère le nombre de nœuds dans la collection triée (list)

Description

public DOMNodeList::count(): int

Récupère le nombre de nœuds dans la collection triée (list).

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le nombre de nœuds dans la collection triée, ce qui est identique à la propriété length.


Retrieve an external iterator

  • « DOMNodeList::count
  • DOMNodeList::item »
  • PHP Manual
  • DOMNodeList
  • Retrieve an external iterator

DOMNodeList::getIterator

(PHP 8)

DOMNodeList::getIterator — Retrieve an external iterator

Description

public DOMNodeList::getIterator(): Iterator

Returns an external iterator for the node list.

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.

Voir aussi

  • IteratorAggregate::getIterator() - Retourne un itérateur externe


Retourne un nœud spécifié par son index

  • « DOMNodeList::getIterator
  • DOMNotation »
  • PHP Manual
  • DOMNodeList
  • Retourne un nœud spécifié par son index

DOMNodeList::item

(PHP 5, PHP 7, PHP 8)

DOMNodeList::item — Retourne un nœud spécifié par son index

Description

public DOMNodeList::item(int $index): DOMElement|DOMNode|DOMNameSpaceNode|null

Retourne un nœud spécifié par son index dans l'objet DOMNodeList.

Astuce

Si vous avez besoin de connaître le nombre de nœuds dans la collection, utilisez la propriété length de l'objet DOMNodeList.

Liste de paramètres

index

L'index du nœud dans la collection.

Valeurs de retour

Le nœud à 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 DOMNotation

(PHP 5, PHP 7, PHP 8)

Synopsis de la classe

class DOMNotation extends DOMNode {
/* Propriétés */
public readonly string $publicId;
public readonly string $systemId;
/* Propriétés héritées */
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
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 bool $isConnected;
public readonly ?DOMDocument $ownerDocument;
public readonly ?string $namespaceURI;
public string $prefix;
public readonly ?string $localName;
public readonly ?string $baseURI;
public string $textContent;
/* Méthodes héritées */
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(?array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Propriétés

publicId

systemId


L'interface DOMParentNode

(PHP 8)

Sommaire de l'Interface

interface DOMParentNode {
/* Méthodes */
public append(DOMNode|string ...$nodes): void
public prepend(DOMNode|string ...$nodes): void
public replaceChildren(DOMNode|string ...$nodes): void
}

Sommaire

  • DOMParentNode::append — Ajoute des nœuds après le dernier nœud enfant
  • DOMParentNode::prepend — Ajoute des nœuds avant le premier nœud enfant
  • DOMParentNode::replaceChildren — Replace children in node


Ajoute des nœuds après le dernier nœud enfant

  • « DOMParentNode
  • DOMParentNode::prepend »
  • PHP Manual
  • DOMParentNode
  • Ajoute des nœuds après le dernier nœud enfant

DOMParentNode::append

(PHP 8)

DOMParentNode::append — Ajoute des nœuds après le dernier nœud enfant

Description

public DOMParentNode::append(DOMNode|string ...$nodes): void

Ajoute un ou plusieurs nodes à la liste des enfants après le dernier nœud enfant.

Liste de paramètres

nodes

Les nœuds à ajouter. Les chaînes de caractères sont automatiquement convertie en des nœuds de texte.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_HIERARCHY_REQUEST_ERR

Levée si ce nœud est d'un type qui n'autorise pas les enfants du type de l'un des nodes transmis, ou si le nœud à insérer est l'un des ancêtres de ce nœud ou ce nœud lui-même.

DOM_WRONG_DOCUMENT_ERR

Levée si l'un des nodes transmis a été créé à partir d'un document différent de celui qui a créé ce nœud.

Historique

Version | Description
8.3.0 | Appeler cette méthode sur un nœud sans document propriétaire fonctionne désormais. Auparavant, cela déclenchait une DOMException avec le code DOM_HIERARCHY_REQUEST_ERR.

Voir aussi

  • DOMParentNode::prepend() - Ajoute des nœuds avant le premier nœud enfant


Ajoute des nœuds avant le premier nœud enfant

  • « DOMParentNode::append
  • DOMParentNode::replaceChildren »
  • PHP Manual
  • DOMParentNode
  • Ajoute des nœuds avant le premier nœud enfant

DOMParentNode::prepend

(PHP 8)

DOMParentNode::prepend — Ajoute des nœuds avant le premier nœud enfant

Description

public DOMParentNode::prepend(DOMNode|string ...$nodes): void

Ajoute un ou plusieurs nodes à la liste des enfants avant le premier nœud enfant.

Liste de paramètres

nodes

Les nœuds à ajouter. Les chaînes de caractères sont automatiquement convertie en des nœuds de texte.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_HIERARCHY_REQUEST_ERR

Levée si ce nœud est d'un type qui n'autorise pas les enfants du type de l'un des nodes transmis, ou si le nœud à insérer est l'un des ancêtres de ce nœud ou ce nœud lui-même.

DOM_WRONG_DOCUMENT_ERR

Levée si l'un des nodes transmis a été créé à partir d'un document différent de celui qui a créé ce nœud.

Historique

Version | Description
8.3.0 | Appeler cette méthode sur un nœud sans document propriétaire fonctionne désormais. Auparavant, cela déclenchait une DOMException avec le code DOM_HIERARCHY_REQUEST_ERR.

Voir aussi

  • DOMParentNode::append() - Ajoute des nœuds après le dernier nœud enfant


Replace children in node

  • « DOMParentNode::prepend
  • DOMProcessingInstruction »
  • PHP Manual
  • DOMParentNode
  • Replace children in node

DOMParentNode::replaceChildren

(PHP 8 >= 8.3.0)

DOMParentNode::replaceChildren — Replace children in node

Description

public DOMParentNode::replaceChildren(DOMNode|string ...$nodes): void

Replace children in node.

Liste de paramètres

nodes

The nodes replacing the children. Strings are automatically converted to text nodes.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_HIERARCHY_REQUEST_ERR

Levée si ce nœud est d'un type qui n'autorise pas les enfants du type de l'un des nodes transmis, ou si le nœud à insérer est l'un des ancêtres de ce nœud ou ce nœud lui-même.

DOM_WRONG_DOCUMENT_ERR

Levée si l'un des nodes transmis a été créé à partir d'un document différent de celui qui a créé ce nœud.

Historique

Version | Description
8.3.0 | Calling this method on a node without an owner document now works. Auparavant, cela déclenchait une DOMException avec le code DOM_HIERARCHY_REQUEST_ERR.

Exemples

Exemple #1 DOMParentNode::replaceChildren() example

<?php

$dom = new DOMDocument();
$dom->loadHTML('<!DOCTYPE HTML><html><p>hi</p> test <p>hi2</p></html>');

$dom->documentElement->replaceChildren('foo', $dom->createElement('p'), 'bar');
echo $dom->saveXML();
?>

L'exemple ci-dessus va afficher :

<?xml version="1.0" standalone="yes"?>
<!DOCTYPE HTML>
<html>foo<p/>bar</html>


La classe DOMProcessingInstruction

(PHP 5, PHP 7, PHP 8)

Synopsis de la classe

class DOMProcessingInstruction extends DOMNode {
/* Propriétés */
public readonly string $target;
public string $data;
/* Propriétés héritées */
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
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 bool $isConnected;
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 __construct(string $name, string $value = "")
/* Méthodes héritées */
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(?array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

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, PHP 8)

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 nœuds additionnels ne peuvent pas être ajoutés à ce nœud tant qu'il est associé à un document. Pour créer un nœud 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 nœud PI


La classe DOMText

(PHP 5, PHP 7, PHP 8)

Introduction

La classe DOMText hérite de DOMCharacterData et représente le contenu textuel de DOMElement ou DOMAttr.

Synopsis de la classe

class DOMText extends DOMCharacterData {
/* Propriétés */
public readonly string $wholeText;
/* Propriétés héritées */
public string $data;
public readonly int $length;
public readonly ?DOMElement $previousElementSibling;
public readonly ?DOMElement $nextElementSibling;
public readonly string $nodeName;
public ?string $nodeValue;
public readonly int $nodeType;
public readonly ?DOMNode $parentNode;
public readonly ?DOMElement $parentElement;
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 bool $isConnected;
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 __construct(string $data = "")
public isElementContentWhitespace(): bool
public isWhitespaceInElementContent(): bool
public splitText(int $offset): DOMText|false
/* Méthodes héritées */
public DOMCharacterData::after(DOMNode|string ...$nodes): void
public DOMCharacterData::appendData(string $data): true
public DOMCharacterData::before(DOMNode|string ...$nodes): void
public DOMCharacterData::deleteData(int $offset, int $count): bool
public DOMCharacterData::insertData(int $offset, string $data): bool
public DOMCharacterData::remove(): void
public DOMCharacterData::replaceData(int $offset, int $count, string $data): bool
public DOMCharacterData::replaceWith(DOMNode|string ...$nodes): void
public DOMCharacterData::substringData(int $offset, int $count): string|false
public DOMNode::appendChild(DOMNode $node): DOMNode|false
public DOMNode::C14N(
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): string|false
public DOMNode::C14NFile(
string $uri,
bool $exclusive = false,
bool $withComments = false,
?array $xpath = null,
?array $nsPrefixes = null
): int|false
public DOMNode::cloneNode(bool $deep = false): DOMNode|false
public DOMNode::contains(DOMNode|DOMNameSpaceNode|null $other): bool
public DOMNode::getLineNo(): int
public DOMNode::getNodePath(): ?string
public DOMNode::getRootNode(?array $options = null): DOMNode
public DOMNode::hasAttributes(): bool
public DOMNode::hasChildNodes(): bool
public DOMNode::insertBefore(DOMNode $node, ?DOMNode $child = null): DOMNode|false
public DOMNode::isDefaultNamespace(string $namespace): bool
public DOMNode::isEqualNode(?DOMNode $otherNode): bool
public DOMNode::isSameNode(DOMNode $otherNode): bool
public DOMNode::isSupported(string $feature, string $version): bool
public DOMNode::lookupNamespaceURI(?string $prefix): ?string
public DOMNode::lookupPrefix(string $namespace): ?string
public DOMNode::normalize(): void
public DOMNode::removeChild(DOMNode $child): DOMNode|false
public DOMNode::replaceChild(DOMNode $node, DOMNode $child): DOMNode|false
}

Propriétés

wholeText

Contient tout le texte des nœuds de texte adjacents (c'est à dire, des nœuds qui ne sont pas séparés par des balises Element, Comment ou Processing Instruction).

Historique

Version | Description
8.0.0 | La méthode non implémentée DOMText::replaceWholeText() a été supprimée.

Sommaire

  • DOMText::__construct — Crée un nouvel objet DOMText
  • DOMText::isElementContentWhitespace — Rapporte si le nœud textuel contient des caractères d'espacement blanc
  • DOMText::isWhitespaceInElementContent — Indique si ce nœud de texte contient des espaces blancs
  • DOMText::splitText — Coupe le nœud en deux nœuds à l'endroit spécifié


Crée un nouvel objet DOMText

  • « DOMText
  • DOMText::isElementContentWhitespace »
  • PHP Manual
  • DOMText
  • Crée un nouvel objet DOMText

DOMText::__construct

(PHP 5, PHP 7, PHP 8)

DOMText::__construct — Crée un nouvel objet DOMText

Description

public DOMText::__construct(string $data = "")

Crée un nouvel objet DOMText.

Liste de paramètres

data

La valeur du nœud texte. Si aucune n'est fournie, un nœud 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 nœud de texte


Rapporte si le nœud textuel contient des caractères d'espacement blanc

  • « DOMText::__construct
  • DOMText::isWhitespaceInElementContent »
  • PHP Manual
  • DOMText
  • Rapporte si le nœud textuel contient des caractères d'espacement blanc

DOMText::isElementContentWhitespace

(No version information available, might only be in Git)

DOMText::isElementContentWhitespace — Rapporte si le nœud textuel contient des caractères d'espacement blanc

Description

public DOMText::isElementContentWhitespace(): bool

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.


Indique si ce nœud de texte contient des espaces blancs

  • « DOMText::isElementContentWhitespace
  • DOMText::splitText »
  • PHP Manual
  • DOMText
  • Indique si ce nœud de texte contient des espaces blancs

DOMText::isWhitespaceInElementContent

(PHP 5, PHP 7, PHP 8)

DOMText::isWhitespaceInElementContent — Indique si ce nœud de texte contient des espaces blancs

Description

public DOMText::isWhitespaceInElementContent(): bool

Indique si un nœud de texte ne contient que des espaces ou est vide. Cette détermination est faite durant le chargement du document.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true si le nœud contient zéro ou plusieurs caractères blancs et rien d'autre. Retourne false sinon.


Coupe le nœud en deux nœuds à l'endroit spécifié

  • « DOMText::isWhitespaceInElementContent
  • DOMXPath »
  • PHP Manual
  • DOMText
  • Coupe le nœud en deux nœuds à l'endroit spécifié

DOMText::splitText

(PHP 5, PHP 7, PHP 8)

DOMText::splitText — Coupe le nœud en deux nœuds à l'endroit spécifié

Description

public DOMText::splitText(int $offset): DOMText|false

Coupe le nœud en deux nœuds à l'endroit spécifié offset, en gardant les deux dans l'arbre comme parents.

Après la césure, ce nœud contiendra tout le texte jusqu'à offset. Un nouveau nœud avec le reste du texte sera retourné. Si le nœud d'origine possède un parent, le nouveau nœud est inséré à la suite du nœud courant. Lorsque offset est égal à la taille du nœud, le nouveau nœud est vide.

Liste de paramètres

offset

La position de la césure, commençant à 0.

Valeurs de retour

Le nouveau nœud du même type, qui contient tout le contenu à partir de la position offset.


La classe DOMXPath

(PHP 5, PHP 7, PHP 8)

Introduction

Support de XPath 1.0.

Synopsis de la classe

class DOMXPath {
/* Propriétés */
public readonly DOMDocument $document;
public bool $registerNodeNamespaces;
/* Méthodes */
public __construct(DOMDocument $document, bool $registerNodeNS = true)
public evaluate(string $expression, ?DOMNode $contextNode = null, bool $registerNodeNS = true): mixed
public query(string $expression, ?DOMNode $contextNode = null, bool $registerNodeNS = true): mixed
public registerNamespace(string $prefix, string $namespace): bool
public registerPhpFunctions(string|array|null $restrict = null): void
}

Propriétés

document

registerNodeNamespaces

Quand définie à true, les espaces de noms dans le nœud sont enregistrés.

Historique

Version | Description
8.0.0 | La propriété registerNodeNamespaces a été ajoutée.

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, PHP 8)

DOMXPath::__construct — Crée un nouvel objet DOMXPath

Description

public DOMXPath::__construct(DOMDocument $document, bool $registerNodeNS = true)

Crée un nouvel objet DOMXPath.

Liste de paramètres

document

L'objet DOMDocument associé à l'objet DOMXPath.

registerNodeNS

Indique s'il faut automatiquement enregistrer les préfixes de namespace en vigueur du nœud de contexte dans l'objet DOMXPath. Cela peut être utilisé pour éviter d'avoir à appeler manuellement DOMXPath::registerNamespace() pour chaque namespace en vigueur. En cas de conflit de préfixes de namespace, seul le préfixe de namespace descendant le plus proche est enregistré.


É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, PHP 8)

DOMXPath::evaluate — Évalue une expression XPath donnée et retourne un résultat typé si possible

Description

public DOMXPath::evaluate(string $expression, ?DOMNode $contextNode = null, bool $registerNodeNS = true): mixed

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

Indique s'il faut automatiquement enregistrer les préfixes de namespace en vigueur du nœud de contexte dans l'objet DOMXPath. Cela peut être utilisé pour éviter d'avoir à appeler manuellement DOMXPath::registerNamespace() pour chaque namespace en vigueur. En cas de conflit de préfixes de namespace, seul le préfixe de namespace descendant le plus proche est enregistré.

Valeurs de retour

Retourne un résultat typé si possible ou un DOMNodeList contenant tous les nœuds 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.

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 nœud 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, PHP 8)

DOMXPath::query — Évalue l'expression XPath donnée

Description

public DOMXPath::query(string $expression, ?DOMNode $contextNode = null, bool $registerNodeNS = true): mixed

É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

Indique s'il faut automatiquement enregistrer les préfixes de namespace en vigueur du nœud de contexte dans l'objet DOMXPath. Cela peut être utilisé pour éviter d'avoir à appeler manuellement DOMXPath::registerNamespace() pour chaque namespace en vigueur. En cas de conflit de préfixes de namespace, seul le préfixe de namespace descendant le plus proche est enregistré.

Valeurs de retour

Retourne un DOMNodeList contenant tous les nœuds correspondant à l'expression expression XPath donnée. Toutes les expressions qui ne retournent pas de nœud retourneront un DOMNodeList vide.

Si le paramètre expression est malformé ou le paramètre contextNode est invalide, DOMXPath::query() retournera false.

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 nœud 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, PHP 8)

DOMXPath::registerNamespace — Enregistre l'espace de noms avec l'objet DOMXPath

Description

public DOMXPath::registerNamespace(string $prefix, string $namespace): bool

Enregistre l'espace de noms namespace et le prefix avec l'objet DOMXPath.

Liste de paramètres

prefix

Le préfixe.

namespace

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, PHP 8)

DOMXPath::registerPhpFunctions — Enregistre une fonction PHP comme fonction XPath

Description

public DOMXPath::registerPhpFunctions(string|array|null $restrict = null): void

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";
}

?>

Résultat de l'exemple ci-dessus est 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";
}

?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

dom_import_simplexml — Transforme un objet SimpleXMLElement en un objet DOMElement

Description

dom_import_simplexml(object $node): DOMElement

dom_import_simplexml() transforme l'objet SimpleXML node en un objet DOMElement. Le nouvel objet peut être utilisé en tant que nœud natif DOMElement.

Liste de paramètres

node

Le nœud SimpleXMLElement.

Valeurs de retour

Le nœud DOMElement ajouté.

Historique

Version | Description
8.0.0 | Cette fonction ne retourne désormais plus null en cas d'échec.

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 pour les versions de PHP >= 7.4
    • Installation pour les versions de PHP < 7.4
    • 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_external_entity_loader — Get the current external entity loader
    • 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

Sommaire

  • Pré-requis
  • Installation pour les versions de PHP >= 7.4
  • Installation pour les versions de PHP < 7.4
  • Configuration à l'exécution
  • Types de ressources


  • « Installation/Configuration
  • Installation pour les versions de PHP >= 7.4 »
  • PHP Manual
  • Installation/Configuration
  • Pré-requis

Pré-requis

Cette extension requiert » libxml >= 2.9.0 à partir de PHP 8.0.0. Antérieur à PHP 8.0, libxml doit être >= 2.6.0.


Installation pour les versions de PHP >= 7.4

L'extension libxml est activée par défaut, bien qu'elle puisse être désactivée avec l'option --without-libxml.

PHP utilise pkg-config pour sélectionner le bon fichier de bibliothèque, les fichiers d'en-tête et les indicateurs de compilation à utiliser pour libxml2. Pour s'assurer que la version souhaitée de libxml2 est sélectionnée, la variable d'environnement PKG_CONFIG_PATH peut être utilisée pour contrôler le chemin de recherche de pkg-config avant d'exécuter le script de configuration :

PKG_CONFIG_PATH="/chemin/vers/préfixe/libxml2/lib/pkgconfig:/lib/pkgconfig"


Installation pour les versions de PHP < 7.4

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.


  • « Installation pour les versions de PHP < 7.4
  • Types de ressources »
  • 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.

LIBXML_BIGLINES (int)
Permet de signaler correctement les numéros de ligne supérieurs à 65535.

Note:

Uniquement disponible dans PHP 7.0.0 avec Libxml >= 2.9.0

LIBXML_COMPACT (int)
Active l'optimisation de l'allocation de petits nœuds. 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 (int)
Attribut de DTD par défaut
LIBXML_DTDLOAD (int)
Charge le sous-ensemble externe
LIBXML_DTDVALID (int)
Valide avec la DTD
Attention

Activer la validation du DTD peut faciliter les attaques par entités externes XML (XXE).

LIBXML_HTML_NOIMPLIED (int)
Définit 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 (int)
Définit 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 (int)
Suppression des nœuds vides
LIBXML_NOCDATA (int)
Fusion des CDATA en nœuds de texte
LIBXML_NOEMPTYTAG (int)
Agrandit 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 (int)
Substitution des entités
Attention

Activer la substitution d'entiter peut faciliter les attaques XML External Entity (XXE).

LIBXML_NOERROR (int)
Suppression du rapport d'erreur
LIBXML_NONET (int)
Désactivation du réseau lors du chargement de document
LIBXML_NOWARNING (int)
Suppression des rapports d'alerte
LIBXML_NOXMLDECL (int)
Annule la déclaration XML lors de la sauvegarde du document

Note:

Seulement disponible dans Libxml >= 2.6.21

LIBXML_NSCLEAN (int)
Suppression des espaces de noms redondants
LIBXML_PARSEHUGE (int)
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 nœuds.

Note:

Seulement disponible depuis Libxml >= 2.7.0 (depuis PHP >= 5.3.2 et PHP >= 5.2.12)

LIBXML_PEDANTIC (int)
Définit le drapeau XML_PARSE_PEDANTIC, qui active le rapport d'erreur pedantic.

Note:

Available as of PHP >= 5.4.0

LIBXML_XINCLUDE (int)
Implémentation de la substitution XInclude
LIBXML_ERR_ERROR (int)
Erreur non-fatale
LIBXML_ERR_FATAL (int)
Erreur fatale
LIBXML_ERR_NONE (int)
Aucune erreur
LIBXML_ERR_WARNING (int)
Une alerte simple
LIBXML_VERSION (int)
libxml version sous la forme 20605 ou 20617
LIBXML_DOTTED_VERSION (string)
libxml version sous la forme 2.6.5 ou 2.6.17
LIBXML_SCHEMA_CREATE (int)
Crée la valeur par défaut/fixée du nœud 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, PHP 8)

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

class 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_external_entity_loader — Get the current external entity loader
  • 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, PHP 8)

libxml_clear_errors — Vide le buffer d'erreur libxml

Description

libxml_clear_errors(): void

libxml_clear_errors() vide le buffer d'erreur libxml.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

libxml_disable_entity_loader — Désactive le chargement des entités externes

Avertissement

Cette fonction est OBSOLÈTE à partir de PHP 8.0.0. Dépendre de cette fonction est fortement déconseillé.

Description

libxml_disable_entity_loader(bool $disable = true): bool

Active ou désactive le chargement des entités externes. Il est à noter que désactiver le chargement d'entités externes peut causer des problèmes lors du chargement de documents XML. Cependant à partir de libxml 2.9.0 la substitution d'entités est désactivé par défaut, ainsi il n'est pas nécessaire de désactiver le chargement des entités externes, sauf s'il y a le besoin de résoudre les références d'entités internes avec LIBXML_NOENT. Généralement, il est préférable d'utiliser libxml_set_external_entity_loader() pour réprimer le chargement d'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
  • libxml_set_external_entity_loader() - Change le chargeur d'entités externes par défaut


Lit le tableau d'erreurs

  • « libxml_disable_entity_loader
  • libxml_get_external_entity_loader »
  • PHP Manual
  • Fonctions libxml
  • Lit le tableau d'erreurs

libxml_get_errors

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

libxml_get_errors — Lit le tableau d'erreurs

Description

libxml_get_errors(): array

Retourne un tableau d'erreurs.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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 === false) {
$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


Get the current external entity loader

  • « libxml_get_errors
  • libxml_get_last_error »
  • PHP Manual
  • Fonctions libxml
  • Get the current external entity loader

libxml_get_external_entity_loader

(PHP 8 >= 8.2.0)

libxml_get_external_entity_loader — Get the current external entity loader

Description

libxml_get_external_entity_loader(): ?callable

Get external entity loader previously installed by libxml_set_external_entity_loader().

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

The external entity loader previously installed by libxml_set_external_entity_loader(). If that function was never called, or if it was called with null, null will be returned.

Voir aussi

  • libxml_set_external_entity_loader() - Change le chargeur d'entités externes par défaut


Lit la dernière erreur libxml

  • « libxml_get_external_entity_loader
  • 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, PHP 8)

libxml_get_last_error — Lit la dernière erreur libxml

Description

libxml_get_last_error(): LibXMLError|false

libxml_get_last_error() lit la dernière erreur libxml.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

libxml_set_external_entity_loader — Change le chargeur d'entités externes par défaut

Description

libxml_set_external_entity_loader(?callable $resolver_function): bool

Change le chargeur d'entités externes par défaut. Ceci peut être utilisé pour réprimer l'expansion d'entités externes arbitraire pour prévenir les attaques XXE, même si LIBXML_NOENT a été définie pour l'opération respective, et ceci est généralement préférable à appeler libxml_disable_entity_loader().

Liste de paramètres

resolver_function

Un callable avec la signature suivante :

resolver(?string $public_id, string $system_id, array $context): resource|string|null
public_id
L'ID public.
system_id
L'ID système.
context
Un tableau contenant quatre éléments "directory", "intSubName", "extSubURI" et "extSubSystem".
Cette callable devrait retourner une ressource, une chaîne de caractères par laquelle une ressource peut être ouverte. Si null est retourné, la résolution de référence d'entité échouera.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

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
  • libxml_get_external_entity_loader() - Get the current external entity loader


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, PHP 8)

libxml_set_streams_context — Configure le contexte de flux pour la prochaine opération libxml

Description

libxml_set_streams_context(resource $context): void

libxml_set_streams_context() configure le contexte de flux pour la prochaine opération libxml.

Liste de paramètres

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
  • SimpleXML »
  • 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, PHP 8)

libxml_use_internal_errors — Désactive le rapport d'erreur libxml et les stocke pour lecture ultérieure

Description

libxml_use_internal_errors(?bool $use_errors = null): bool

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.

Historique

Version | Description
8.0.0 | use_errors est désormais nullable. Auparavant, sa valeur par défaut était false.

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


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 nœud 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 nœud donné
    • SimpleXMLElement::__construct — Crée un nouvel objet SimpleXMLElement
    • SimpleXMLElement::count — Compte le nombre de fils pour un élément
    • SimpleXMLElement::current — Retourne l'entrée courante
    • 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::getChildren — Renvoie les sous-éléments de l'élément courant
    • SimpleXMLElement::hasChildren — Vérifie si l'élément actuel a des sous-éléments
    • SimpleXMLElement::key — Retourne la clé courante
    • SimpleXMLElement::next — Se déplace sur l'élément suivant
    • SimpleXMLElement::registerXPathNamespace — Crée un contexte préfixe/ns pour la prochaine requête XPath
    • SimpleXMLElement::rewind — Replace le pointeur au début
    • SimpleXMLElement::saveXML — Alias de SimpleXMLElement::asXML
    • SimpleXMLElement::__toString — Retourne le contenu sous forme de chaine
    • SimpleXMLElement::valid — Vérifie si l'élément actuel est valide
    • SimpleXMLElement::xpath — Exécute une requête Xpath sur des données XML
  • SimpleXMLIterator — La classe SimpleXMLIterator
  • 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.


Installation

Cette extension est activée par défaut. Elle peut être désactivée en utilisant l'option de configuration : --disable-simplexml


  • « 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.

<?php
include 'example.php';

$movies1 = new SimpleXMLElement($xmlstr);
$movies2 = new SimpleXMLElement($xmlstr);
var_dump($movies1 == $movies2);
?>

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

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 nœuds 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, PHP 7, PHP 8)

Introduction

Représente un élément du document XML.

Synopsis de la classe

class SimpleXMLElement implements Stringable, Countable, RecursiveIterator {
/* Méthodes */
public __construct(
string $data,
int $options = 0,
bool $dataIsURL = false,
string $namespaceOrPrefix = "",
bool $isPrefix = false
)
public addAttribute(string $qualifiedName, string $value, ?string $namespace = null): void
public addChild(string $qualifiedName, ?string $value = null, ?string $namespace = null): ?SimpleXMLElement
public asXML(?string $filename = null): string|bool
public attributes(?string $namespaceOrPrefix = null, bool $isPrefix = false): ?SimpleXMLElement
public children(?string $namespaceOrPrefix = null, bool $isPrefix = false): ?SimpleXMLElement
public count(): int
public current(): SimpleXMLElement
public getDocNamespaces(bool $recursive = false, bool $fromRoot = true): array|false
public getName(): string
public getNamespaces(bool $recursive = false): array
public getChildren(): ?SimpleXMLElement
public hasChildren(): bool
public key(): string
public next(): void
public registerXPathNamespace(string $prefix, string $namespace): bool
public rewind(): void
public __toString(): string
public valid(): bool
public xpath(string $expression): array|null|false
}

Historique

Version | Description
8.0.0 | La classe SimpleXMLElement implémente désormais Stringable, Countable et RecursiveIterator.

Sommaire

  • SimpleXMLElement::addAttribute — Ajoute un attribut à l'élément SimpleXML
  • SimpleXMLElement::addChild — Ajoute un élément enfant au nœud 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 nœud donné
  • SimpleXMLElement::__construct — Crée un nouvel objet SimpleXMLElement
  • SimpleXMLElement::count — Compte le nombre de fils pour un élément
  • SimpleXMLElement::current — Retourne l'entrée courante
  • 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::getChildren — Renvoie les sous-éléments de l'élément courant
  • SimpleXMLElement::hasChildren — Vérifie si l'élément actuel a des sous-éléments
  • SimpleXMLElement::key — Retourne la clé courante
  • SimpleXMLElement::next — Se déplace sur l'élément suivant
  • SimpleXMLElement::registerXPathNamespace — Crée un contexte préfixe/ns pour la prochaine requête XPath
  • SimpleXMLElement::rewind — Replace le pointeur au début
  • SimpleXMLElement::saveXML — Alias de SimpleXMLElement::asXML
  • SimpleXMLElement::__toString — Retourne le contenu sous forme de chaine
  • SimpleXMLElement::valid — Vérifie si l'élément actuel est valide
  • 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, PHP 8)

SimpleXMLElement::addAttribute — Ajoute un attribut à l'élément SimpleXML

Description

public SimpleXMLElement::addAttribute(string $qualifiedName, string $value, ?string $namespace = null): void

Ajoute un attribut à l'élément SimpleXML.

Liste de paramètres

qualifiedName

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();

?>

Résultat de l'exemple ci-dessus est 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 nœud XML
  • Utilisation de base SimpleXML


Ajoute un élément enfant au nœud XML

  • « SimpleXMLElement::addAttribute
  • SimpleXMLElement::asXML »
  • PHP Manual
  • SimpleXMLElement
  • Ajoute un élément enfant au nœud XML

SimpleXMLElement::addChild

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

SimpleXMLElement::addChild — Ajoute un élément enfant au nœud XML

Description

public SimpleXMLElement::addChild(string $qualifiedName, ?string $value = null, ?string $namespace = null): ?SimpleXMLElement

Ajoute un élément enfant au nœud et retourne un SimpleXMLElement de l'enfant.

Liste de paramètres

qualifiedName

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 nœud XML en cas de succès; null en cas d'échec.

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();

?>

Résultat de l'exemple ci-dessus est 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, PHP 7, PHP 8)

SimpleXMLElement::asXML — Retourne une chaîne XML basée sur un élément SimpleXML

Description

public SimpleXMLElement::asXML(?string $filename = null): string|bool

Formate les données de l'objet parent en XML 1.0.

Liste de paramètres

filename

Si une chaîne de caractères est 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.

Historique

Version | Description
8.0.0 | filename est désormais nullable.

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');

foreach ($result as $node) {
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, PHP 7, PHP 8)

SimpleXMLElement::attributes — Identifie les attributs d'un élément

Description

public SimpleXMLElement::attributes(?string $namespaceOrPrefix = null, bool $isPrefix = false): ?SimpleXMLElement

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

namespaceOrPrefix

Un espace de noms optionnel pour les attributs récupérés

isPrefix

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 nœud donné

  • « SimpleXMLElement::attributes
  • SimpleXMLElement::__construct »
  • PHP Manual
  • SimpleXMLElement
  • Cherche les fils d'un nœud donné

SimpleXMLElement::children

(PHP 5, PHP 7, PHP 8)

SimpleXMLElement::children — Cherche les fils d'un nœud donné

Description

public SimpleXMLElement::children(?string $namespaceOrPrefix = null, bool $isPrefix = false): ?SimpleXMLElement

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

namespaceOrPrefix

Un espace de noms XML.

isPrefix

Si isPrefix vaut true, namespaceOrPrefix sera considéré comme un préfixe. S'il vaut false, namespaceOrPrefix sera considéré comme une URL vers un espace de noms.

Valeurs de retour

Retourne un élément SimpleXMLElement que le nœud possède un fils ou pas, sauf si le noeud représente un attribut, auquel cas null est retourné.

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)

Voir aussi

  • SimpleXMLElement::count() - Compte le nombre de fils pour un élément
  • count() - Compte tous les éléments d'un tableau ou dans un objet Countable


Crée un nouvel objet SimpleXMLElement

  • « SimpleXMLElement::children
  • SimpleXMLElement::count »
  • PHP Manual
  • SimpleXMLElement
  • Crée un nouvel objet SimpleXMLElement

SimpleXMLElement::__construct

(PHP 5, PHP 7, PHP 8)

SimpleXMLElement::__construct — Crée un nouvel objet SimpleXMLElement

Description

public SimpleXMLElement::__construct(
string $data,
int $options = 0,
bool $dataIsURL = false,
string $namespaceOrPrefix = "",
bool $isPrefix = 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 dataIsURL vaut true.

options

Optionnellement utilisé pour spécifier des paramètres Libxml additionnels, qui affecte la lecture de documents XML. Les options affectant la sortie des documents XML (par exemple LIBXML_NOEMPTYTAG) sont ignorée silencieusement.

Note:

Il peut être nécessaire de passer LIBXML_PARSEHUGE pour pouvoir traiter des nœuds de texte profondément imbriqués ou très volumineux.

dataIsURL

Par défaut, dataIsURL 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.

namespaceOrPrefix

Préfixe d'espace de noms ou URI.

isPrefix

true si namespaceOrPrefix est un préfix, false sinon. Valeur par défaut : false.

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 être 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', 0, true);
echo $sxe->asXML();

?>

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
  • libxml_set_streams_context() - Configure le contexte de flux pour la prochaine opération libxml


Compte le nombre de fils pour un élément

  • « SimpleXMLElement::__construct
  • SimpleXMLElement::current »
  • PHP Manual
  • SimpleXMLElement
  • Compte le nombre de fils pour un élément

SimpleXMLElement::count

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SimpleXMLElement::count — Compte le nombre de fils pour un élément

Description

public SimpleXMLElement::count(): int

Cette méthode compte le nombre de fils d'un élément.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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 nœud donné


Retourne l'entrée courante

  • « SimpleXMLElement::count
  • SimpleXMLElement::getDocNamespaces »
  • PHP Manual
  • SimpleXMLElement
  • Retourne l'entrée courante

SimpleXMLElement::current

(No version information available, might only be in Git)

SimpleXMLElement::current — Retourne l'entrée courante

Description

public SimpleXMLElement::current(): SimpleXMLElement
Avertissement

Antérieur à PHP 8.0, SimpleXMLElement::current() n'était déclarée que sur la sous-classe SimpleXMLIterator.

Cette méthode retourne l'élément courant comme un objet SimpleXMLElement.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne l'élément courant comme un objet SimpleXMLElement.

Erreurs / Exceptions

Lance une Error en cas d'échec.

Historique

Version | Description
8.1.0 | Une Error est lancée si SimpleXMLElement::current() est appelée sur un itérateur invalide. Auparavant, null était returné.

Exemples

Exemple #1 Retourne l'élément courant

<?php
$xmlElement = new SimpleXMLElement('<books><book>PHP basics</book><book>XML basics</book></books>');

$xmlElement->rewind(); // Retour au premier élément, sinon current() ne fonctionne pas
var_dump($xmlElement->current());
?>

L'exemple ci-dessus va afficher :

object(SimpleXMLElement)#2 (1) {
  [0]=>
  string(10) "PHP basics"
}

Voir aussi

  • SimpleXMLElement::key() - Retourne la clé courante
  • SimpleXMLElement::next() - Se déplace sur l'élément suivant
  • SimpleXMLElement::rewind() - Replace le pointeur au début
  • SimpleXMLElement::valid() - Vérifie si l'élément actuel est valide
  • SimpleXMLElement


Retourne les espaces de noms déclarés dans un document

  • « SimpleXMLElement::current
  • 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, PHP 8)

SimpleXMLElement::getDocNamespaces — Retourne les espaces de noms déclarés dans un document

Description

public SimpleXMLElement::getDocNamespaces(bool $recursive = false, bool $fromRoot = true): array|false

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 nœuds parents et enfants. Sinon, retourne uniquement les espaces de noms déclarés dans le nœud racine.

fromRoot

Vous permet de vérifier récursivement les espaces de noms sous un nœud 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"
}

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, PHP 8)

SimpleXMLElement::getName — Récupère le nom d'un élément XML

Description

public SimpleXMLElement::getName(): string

Récupère le nom d'un élément XML.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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::getChildren »
  • PHP Manual
  • SimpleXMLElement
  • Retourne les espaces de noms utilisés dans un document

SimpleXMLElement::getNamespaces

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SimpleXMLElement::getNamespaces — Retourne les espaces de noms utilisés dans un document

Description

public SimpleXMLElement::getNamespaces(bool $recursive = false): array

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 nœuds parents et enfants. Sinon, retourne uniquement les espaces de noms utilisés dans le nœud 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


Renvoie les sous-éléments de l'élément courant

  • « SimpleXMLElement::getNamespaces
  • SimpleXMLElement::hasChildren »
  • PHP Manual
  • SimpleXMLElement
  • Renvoie les sous-éléments de l'élément courant

SimpleXMLElement::getChildren

(No version information available, might only be in Git)

SimpleXMLElement::getChildren — Renvoie les sous-éléments de l'élément courant

Description

public SimpleXMLElement::getChildren(): ?SimpleXMLElement
Avertissement

Antérieur à PHP 8.0, SimpleXMLElement::getChildren() n'était déclarée que sur la sous-classe SimpleXMLIterator.

Cette méthode retourne un objet SimpleXMLElement contenant les sous-éléments de l'élémenmt courant SimpleXMLElement.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un objet SimpleXMLElement 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;

$xmlElement = new SimpleXMLElement($xml);
for ($xmlElement->rewind(); $xmlElement->valid(); $xmlElement->next()) {
foreach($xmlElement->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 SimpleXMLElement
The author is 'Jim Smith' from the class SimpleXMLElement


Vérifie si l'élément actuel a des sous-éléments

  • « SimpleXMLElement::getChildren
  • SimpleXMLElement::key »
  • PHP Manual
  • SimpleXMLElement
  • Vérifie si l'élément actuel a des sous-éléments

SimpleXMLElement::hasChildren

(No version information available, might only be in Git)

SimpleXMLElement::hasChildren — Vérifie si l'élément actuel a des sous-éléments

Description

public SimpleXMLElement::hasChildren(): bool
Avertissement

Antérieur à PHP 8.0, SimpleXMLElement::hasChildren() n'était déclarée que sur la sous-classe SimpleXMLIterator.

Cette méthode vérifie si l'objet courant SimpleXMLElement 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;

$xmlElement = new SimpleXMLElement($xml);
for ($xmlElement->rewind(); $xmlElement->valid(); $xmlElement->next()) {
if ($xmlElement->hasChildren()) {
var_dump($xmlElement->current());
}
}
?>

L'exemple ci-dessus va afficher :

object(SimpleXMLElement)#2 (2) {
  ["title"]=>
  string(10) "PHP Basics"
  ["author"]=>
  string(9) "Jim Smith"
}


Retourne la clé courante

  • « SimpleXMLElement::hasChildren
  • SimpleXMLElement::next »
  • PHP Manual
  • SimpleXMLElement
  • Retourne la clé courante

SimpleXMLElement::key

(No version information available, might only be in Git)

SimpleXMLElement::key — Retourne la clé courante

Description

public SimpleXMLElement::key(): string
Avertissement

Antérieur à PHP 8.0, SimpleXMLElement::key() n'était déclarée que sur la sous-classe SimpleXMLIterator.

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 SimpleXMLElement.

Erreurs / Exceptions

Lance une Error en cas d'échec.

Historique

Version | Description
8.1.0 | Une Error est maintenant lancée si SimpleXMLElement::key() est appelé sur un itérateur invalide. Auparavant, false était retourné.

Exemples

Exemple #1 Le nom de la balise XML courante

<?php
$xmlElement = new SimpleXMLElement('<books><book>PHP basics</book><book>XML basics</book></books>');

echo var_dump($xmlElement->key());
$xmlElement->rewind(); // retour au premier élément
echo var_dump($xmlElement->key());

?>

L'exemple ci-dessus va afficher :

bool(false)
string(4) "book"


Se déplace sur l'élément suivant

  • « SimpleXMLElement::key
  • SimpleXMLElement::registerXPathNamespace »
  • PHP Manual
  • SimpleXMLElement
  • Se déplace sur l'élément suivant

SimpleXMLElement::next

(No version information available, might only be in Git)

SimpleXMLElement::next — Se déplace sur l'élément suivant

Description

public SimpleXMLElement::next(): void
Avertissement

Antérieur à PHP 8.0, SimpleXMLElement::next() n'était déclarée que sur la sous-classe SimpleXMLIterator.

Cette méthode déplace l'itérateur SimpleXMLElement à 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
$xmlElement = new SimpleXMLElement('<books><book>PHP Basics</book><book>XML basics</book></books>');
$xmlElement->rewind(); // rewind to the first element
$xmlElement->next();

var_dump($xmlElement->current());
?>

L'exemple ci-dessus va afficher :

object(SimpleXMLElement)#2 (1) {
  [0]=>
  string(10) "XML basics"
}


Crée un contexte préfixe/ns pour la prochaine requête XPath

  • « SimpleXMLElement::next
  • SimpleXMLElement::rewind »
  • PHP Manual
  • SimpleXMLElement
  • Crée un contexte préfixe/ns pour la prochaine requête XPath

SimpleXMLElement::registerXPathNamespace

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SimpleXMLElement::registerXPathNamespace — Crée un contexte préfixe/ns pour la prochaine requête XPath

Description

public SimpleXMLElement::registerXPathNamespace(string $prefix, string $namespace): bool

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 nœuds 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 namespace.

namespace

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


Replace le pointeur au début

  • « SimpleXMLElement::registerXPathNamespace
  • SimpleXMLElement::saveXML »
  • PHP Manual
  • SimpleXMLElement
  • Replace le pointeur au début

SimpleXMLElement::rewind

(No version information available, might only be in Git)

SimpleXMLElement::rewind — Replace le pointeur au début

Description

public SimpleXMLElement::rewind(): void
Avertissement

Antérieur à PHP 8.0, SimpleXMLElement::rewind() n'était déclarée que sur la sous-classe SimpleXMLIterator.

Cette méthode remet l'itérateur SimpleXMLElement 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
$xmlElement = new SimpleXMLElement('<books><book>PHP Basics</book><book>XML Basics</book></books>');
$xmlElement->rewind();

var_dump($xmlElement->current());
?>

L'exemple ci-dessus va afficher :

object(SimpleXMLElement)#2 (1) {
  [0]=>
  string(10) "PHP Basics"
}


Alias de SimpleXMLElement::asXML

  • « SimpleXMLElement::rewind
  • SimpleXMLElement::__toString »
  • PHP Manual
  • SimpleXMLElement
  • Alias de SimpleXMLElement::asXML

SimpleXMLElement::saveXML

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

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::valid »
  • PHP Manual
  • SimpleXMLElement
  • Retourne le contenu sous forme de chaine

SimpleXMLElement::__toString

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SimpleXMLElement::__toString — Retourne le contenu sous forme de chaine

Description

public SimpleXMLElement::__toString(): string

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


Vérifie si l'élément actuel est valide

  • « SimpleXMLElement::__toString
  • SimpleXMLElement::xpath »
  • PHP Manual
  • SimpleXMLElement
  • Vérifie si l'élément actuel est valide

SimpleXMLElement::valid

(No version information available, might only be in Git)

SimpleXMLElement::valid — Vérifie si l'élément actuel est valide

Description

public SimpleXMLElement::valid(): bool
Avertissement

Antérieur à PHP 8.0, SimpleXMLElement::valid() n'était déclarée que sur la sous-classe SimpleXMLIterator.

Cette méthode vérifie si l'élément courant est valide, après un appel à SimpleXMLElement::rewind() ou SimpleXMLElement::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
$xmlElement = new SimpleXMLElement('<books><book>SQL Basics</book></books>');

$xmlElement->rewind(); // Retour au premier élément
echo var_dump($xmlElement->valid()); // bool(true)

$xmlElement->next(); // Avance au prochain élément
echo var_dump($xmlElement->valid()); // bool(false) car il y a un seul élément
?>


Exécute une requête Xpath sur des données XML

  • « SimpleXMLElement::valid
  • SimpleXMLIterator »
  • PHP Manual
  • SimpleXMLElement
  • Exécute une requête Xpath sur des données XML

SimpleXMLElement::xpath

(PHP 5, PHP 7, PHP 8)

SimpleXMLElement::xpath — Exécute une requête Xpath sur des données XML

Description

public SimpleXMLElement::xpath(string $expression): array|null|false

La méthode xpath cherche dans le nœud SimpleXML des enfants qui correspondent au expression Xpath.

Liste de paramètres

expression

Un chemin XPath

Valeurs de retour

Retourne un tableau d'objets SimpleXMLElement en cas de succès ou null 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');

foreach ($result as $node) {
echo '/a/b/c: ',$node,"\n";
}

/* Les chemins relatifs fonctionnent aussi... */
$result = $xml->xpath('b/c');

foreach ($result as $node) {
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.3, PHP 7, PHP 8)

Introduction

La classe SimpleXMLIterator fournit des itérations récursives sur tous les éléments d'un objet SimpleXMLElement.

Synopsis de la classe

class SimpleXMLIterator extends SimpleXMLElement {
/* Méthodes héritées */
public SimpleXMLElement::__construct(
string $data,
int $options = 0,
bool $dataIsURL = false,
string $namespaceOrPrefix = "",
bool $isPrefix = false
)
public SimpleXMLElement::addAttribute(string $qualifiedName, string $value, ?string $namespace = null): void
public SimpleXMLElement::addChild(string $qualifiedName, ?string $value = null, ?string $namespace = null): ?SimpleXMLElement
public SimpleXMLElement::asXML(?string $filename = null): string|bool
public SimpleXMLElement::attributes(?string $namespaceOrPrefix = null, bool $isPrefix = false): ?SimpleXMLElement
public SimpleXMLElement::children(?string $namespaceOrPrefix = null, bool $isPrefix = false): ?SimpleXMLElement
public SimpleXMLElement::count(): int
public SimpleXMLElement::current(): SimpleXMLElement
public SimpleXMLElement::getDocNamespaces(bool $recursive = false, bool $fromRoot = true): array|false
public SimpleXMLElement::getName(): string
public SimpleXMLElement::getNamespaces(bool $recursive = false): array
public SimpleXMLElement::getChildren(): ?SimpleXMLElement
public SimpleXMLElement::hasChildren(): bool
public SimpleXMLElement::key(): string
public SimpleXMLElement::next(): void
public SimpleXMLElement::registerXPathNamespace(string $prefix, string $namespace): bool
public SimpleXMLElement::rewind(): void
public SimpleXMLElement::__toString(): string
public SimpleXMLElement::valid(): bool
public SimpleXMLElement::xpath(string $expression): array|null|false
}

Historique

Version | Description
8.0.0 | Les méthodes d'itération (SimpleXMLIterator::hasChildren(), SimpleXMLIterator::getChildren(), SimpleXMLIterator::current(), SimpleXMLIterator::key(), SimpleXMLIterator::next(),SimpleXMLIterator::rewind(), SimpleXMLIterator::valid()) ont été déplacées vers SimpleXMLElement.
8.0.0 | La classe SimpleXMLIterator implémente désormais Stringable.


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, PHP 8)

simplexml_import_dom — Construit un objet SimpleXMLElement à partir d'un objet DOM

Description

simplexml_import_dom(object $node, ?string $class_name = SimpleXMLElement::class): ?SimpleXMLElement

simplexml_import_dom() prend un nœud d'un document DOM et la transforme en nœud 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 null en cas d'échec.

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, PHP 8)

simplexml_load_file — Convertit un fichier XML en objet

Description

simplexml_load_file(
string $filename,
?string $class_name = SimpleXMLElement::class,
int $options = 0,
string $namespace_or_prefix = "",
bool $is_prefix = false
): SimpleXMLElement|false

Convertit le document XML filename en un objet de type SimpleXMLElement.

Liste de paramètres

filename

Chemin vers le fichier XML

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

Opération de 'OU' logique des constantes d'option libxml.

namespace_or_prefix

Préfixe ou l'URI de l'espace de noms.

is_prefix

true si namespace_or_prefix 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
  • libxml_set_streams_context() - Configure le contexte de flux pour la prochaine opération libxml


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, PHP 8)

simplexml_load_string — Convertit une chaîne XML en objet

Description

simplexml_load_string(
string $data,
?string $class_name = SimpleXMLElement::class,
int $options = 0,
string $namespace_or_prefix = "",
bool $is_prefix = false
): SimpleXMLElement|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

Opération de 'OU' logique des constantes d'option libxml.

namespace_or_prefix

Préfixe ou URI de l'espace de noms.

is_prefix

true si namespace_or_prefix 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ésérialise 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


Introduction

Avertissement

Cette extension est OBSOLÈTE et DÉGROUPÉ à partir de PHP 7.4.0.

Ces fonctions sont prévues pour fonctionner avec » WDDX.

Avertissement

Ne passez pas de données utilisateurs qui ne sont pas de confiance à la fonction wddx_deserialize(). La désérialisation peut conduire au chargement et à l'exécution des données lors de l'instansiation de l'objet et de son autochargement, aussi, un utilisateur malicieux peut être capable d'exploiter ce comportement. Utiliser donc des données sécurisées avec un format de données comme JSON (via la fonction json_decode() et la fonction json_encode()) si vous devez passer les données sérialisées à l'utilisateur.


Pré-requis

Cette extension requière l'extension PHP libxml. Ceci signifie passer l'option de configuration --with-libxml, ou antérieur à PHP 7.4 l'option de configuration --enable-libxml, bien que ceci est accomplie implicitement car libxml est activé 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

PHP 7.4

Cette extension a été déplacée dans le module » PECL et ne sera plus intégrée dans PHP à partir de PHP 7.4.0

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 : » https://pecl.php.net/package/wddx.

PHP < 7.4

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 sérialisent les variables utilisent le premier élément d'un tableau pour déterminer si le tableau doit être sérialisé 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 sérialisé dans une structure, sinon, dans un tableau.

Exemple #1 Sérialisation 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:

Les chaînes de caractères doivent être encodées en UTF-8 ; pour gérer d'autres encodages, convertissez d'abord la chaîne de caractères en utilisant la mb_convert_encoding(), UConverter::transcode(), ou iconv().


WDDX Fonctions

Sommaire

  • wddx_add_vars — Ajoute des variables à un paquet WDDX
  • wddx_deserialize — Désérialise 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

Avertissement

Cette fonction est a été SUPPRIMÉE à partir de PHP 7.4.0.

Description

wddx_add_vars(resource $packet_id, mixed $var_name, mixed ...$var_names): bool

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..

var_names

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.


Désérialise un paquet WDDX

  • « wddx_add_vars
  • wddx_packet_end »
  • PHP Manual
  • WDDX Fonctions
  • Désérialise un paquet WDDX

wddx_deserialize

(PHP 4, PHP 5, PHP 7)

wddx_deserialize — Désérialise un paquet WDDX

Avertissement

Cette fonction est a été SUPPRIMÉE à partir de PHP 7.4.0.

Description

wddx_deserialize(string $packet): mixed

Désérialise un paquet packet WDDX.

Avertissement

Ne passez pas d'entrée utilisateur non vérifiée à wddx_deserialize(). La désérialisation 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. Utilisez une format, sûr, d'échange de données standardisé comme JSON (à l'aide de json_decode() et json_encode()) si vous devez passer des données sérialisé à l'utilisateur.

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ésérialisée, pouvant être une chaîne de caractères, un nombre ou un tableau. Notez que les structures sont désérialisées dans des tableaux associatifs.


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

Avertissement

Cette fonction est a été SUPPRIMÉE à partir de PHP 7.4.0.

Description

wddx_packet_end(resource $packet_id): string

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

Avertissement

Cette fonction est a été SUPPRIMÉE à partir de PHP 7.4.0.

Description

wddx_packet_start(string $comment = ?): resource

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

Avertissement

Cette fonction est a été SUPPRIMÉE à partir de PHP 7.4.0.

Description

wddx_serialize_value(mixed $var, string $comment = ?): string

Enregistre une valeur donnée dans un paquet WDDX.

Liste de paramètres

var

La valeur à sérialiser.

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

Avertissement

Cette fonction est a été SUPPRIMÉE à partir de PHP 7.4.0.

Description

wddx_serialize_vars(mixed $var_name, mixed ...$var_names): string

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..

var_names

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 : » https://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

class XMLDiff\Base {
/* Méthodes */
public __construct(string $nsname)
abstract public diff(mixed $from, mixed $to): mixed
abstract public merge(mixed $src, mixed $diff): mixed
}

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.


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 XMLDiff\Base::diff(mixed $from, mixed $to): mixed

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 XMLDiff\Base::merge(mixed $src, mixed $diff): mixed

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

class XMLDiff\DOM extends XMLDiff\Base {
/* Méthodes */
public diff(DOMDocument $from, DOMDocument $to): DOMDocument
public merge(DOMDocument $src, DOMDocument $diff): DOMDocument
/* Méthodes héritées */
abstract public XMLDiff\Base::diff(mixed $from, mixed $to): mixed
abstract public XMLDiff\Base::merge(mixed $src, mixed $diff): mixed
}

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 XMLDiff\DOM::diff(DOMDocument $from, DOMDocument $to): DOMDocument

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 XMLDiff\DOM::merge(DOMDocument $src, DOMDocument $diff): DOMDocument

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

class XMLDiff\Memory extends XMLDiff\Base {
/* Méthodes */
public diff(string $from, string $to): string
public merge(string $src, string $diff): string
/* Méthodes héritées */
abstract public XMLDiff\Base::diff(mixed $from, mixed $to): mixed
abstract public XMLDiff\Base::merge(mixed $src, mixed $diff): mixed
}

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 XMLDiff\Memory::diff(string $from, string $to): string

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 XMLDiff\Memory::merge(string $src, string $diff): string

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

class XMLDiff\File extends XMLDiff\Base {
/* Méthodes */
public diff(string $from, string $to): string
public merge(string $src, string $diff): string
/* Méthodes héritées */
abstract public XMLDiff\Base::diff(mixed $from, mixed $to): mixed
abstract public XMLDiff\Base::merge(mixed $src, mixed $diff): mixed
}

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 XMLDiff\File::diff(string $from, string $to): string

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 XMLDiff\File::merge(string $src, string $diff): string

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
    • 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 de traitement
    • 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
  • XMLParser — La classe XMLParser


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 passer l'option de configuration --with-libxml, ou antérieur à PHP 7.4 l'option de configuration --enable-libxml, bien que ceci est accomplie implicitement car libxml est activé par défaut.

Cette extension PHP utilise expat compat layer par défaut. Elle peut aussi utiliser expat, qui est disponible sur » https://libexpat.github.io/. 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 » https://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

Antérieur à PHP 8.0.0, 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 (int)
XML_ERROR_NO_MEMORY (int)
XML_ERROR_SYNTAX (int)
XML_ERROR_NO_ELEMENTS (int)
XML_ERROR_INVALID_TOKEN (int)
XML_ERROR_UNCLOSED_TOKEN (int)
XML_ERROR_PARTIAL_CHAR (int)
XML_ERROR_TAG_MISMATCH (int)
XML_ERROR_DUPLICATE_ATTRIBUTE (int)
XML_ERROR_JUNK_AFTER_DOC_ELEMENT (int)
XML_ERROR_PARAM_ENTITY_REF (int)
XML_ERROR_UNDEFINED_ENTITY (int)
XML_ERROR_RECURSIVE_ENTITY_REF (int)
XML_ERROR_ASYNC_ENTITY (int)
XML_ERROR_BAD_CHAR_REF (int)
XML_ERROR_BINARY_ENTITY_REF (int)
XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF (int)
XML_ERROR_MISPLACED_XML_PI (int)
XML_ERROR_UNKNOWN_ENCODING (int)
XML_ERROR_INCORRECT_ENCODING (int)
XML_ERROR_UNCLOSED_CDATA_SECTION (int)
XML_ERROR_EXTERNAL_ENTITY_HANDLING (int)
XML_OPTION_CASE_FOLDING (int)
XML_OPTION_TARGET_ENCODING (int)
XML_OPTION_SKIP_TAGSTART (int)
XML_OPTION_SKIP_WHITE (int)
XML_SAX_IMPL (string)
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 n'est pas déclenché 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 = 0;

function startElement($parser, $name, $attrs)
{
global $depth;

global $depth;

for ($i = 0; $i < $depth; $i++) {
echo " ";
}
echo "$name\n";
$depth++;
}

function endElement($parser, $name)
{
global $depth;
$depth--;
}

$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

  • 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 de traitement
  • 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


Lit le message d'erreur de l'analyseur XML

  • « Fonctions d'analyse de fichier XML
  • 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, PHP 8)

xml_error_string — Lit le message d'erreur de l'analyseur XML

Description

xml_error_string(int $error_code): ?string

Lit le message d'erreur de l'analyseur XML associé avec le code error_code donné.

Liste de paramètres

error_code

Un code erreur provenant de xml_get_error_code().

Valeurs de retour

Retourne une chaîne représentant la description de l'erreur error_code, ou null 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, PHP 8)

xml_get_current_byte_index — Retourne l'index de l'octet courant d'un analyseur XML

Description

xml_get_current_byte_index(XMLParser $parser): int

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 l'index de l'octet d'analyse courante de l'analyseur XML (débute à 0).

Historique

Version | Description
8.0.0 | parser attend une instance de XMLParser désormais; auparavent, une resource xml était attendue.

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, PHP 8)

xml_get_current_column_number — Retourne le numéro de colonne courant d'un analyseur XML

Description

xml_get_current_column_number(XMLParser $parser): int

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 le numéro de colonne courante 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()).

Historique

Version | Description
8.0.0 | parser attend une instance de XMLParser désormais; auparavent, une resource xml était attendue.

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, PHP 8)

xml_get_current_line_number — Retourne le numéro de ligne courant d'un analyseur XML

Description

xml_get_current_line_number(XMLParser $parser): int

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

Retourne le numéro de la ligne en cours d'analyse.

Historique

Version | Description
8.0.0 | parser attend une instance de XMLParser désormais; auparavent, une resource xml était attendue.

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, PHP 8)

xml_get_error_code — Récupère le code erreur de l'analyseur XML

Description

xml_get_error_code(XMLParser $parser): int

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 un des codes erreur listés dans la section sur les codes erreur.

Historique

Version | Description
8.0.0 | parser attend une instance de XMLParser désormais; auparavent, une resource xml était attendue.

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, PHP 8)

xml_parse_into_struct — Analyse une structure XML

Description

xml_parse_into_struct(
XMLParser $parser,
string $data,
array &$values,
array &$index = null
): int

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 ===.

Historique

Version | Description
8.0.0 | parser attend une instance de XMLParser désormais; auparavent, une resource xml était attendue.

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 __construct ($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 = file_get_contents($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, PHP 8)

xml_parse — Commence l'analyse d'un document XML

Description

xml_parse(XMLParser $parser, string $data, bool $is_final = false): int

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:

Quelques erreurs (dont les erreurs d'entités) sont reportées à la fin des données, ceci uniquement si is_final vaut true.

Historique

Version | Description
8.0.0 | parser attend une instance de XMLParser désormais; auparavent, une resource xml était attendue.

Exemples

Exemple #1 Analyse de gros documents XML par morceaux

Cet exemple montre comment les gros documents XML peuvent être lus et analysés en morceaux, permettant ainsi de ne pas conserver en mémoire la totalité du document. Aucun gestionnaire d'erreur n'a été positionné pour rendre l'exemple plus concis.

<?php
$stream = fopen('large.xml', 'r');
$parser = xml_parser_create();
// set up the handlers here
while (($data = fread($stream, 16384))) {
xml_parse($parser, $data); // analyse du morceau courant
}
xml_parse($parser, '', true); // finalisation de l'analyse
xml_parser_free($parser);
fclose($stream);


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, PHP 8)

xml_parser_create_ns — Crée un analyseur XML

Description

xml_parser_create_ns(?string $encoding = null, string $separator = ":"): XMLParser

xml_parser_create_ns() crée un nouvel analyseur XML avec le support des espaces de noms, et retourne une instance de XMLParser à utiliser avec les autres fonctions XML.

Liste de paramètres

encoding

Ce jeu de caractères est automatiquement détecté et, donc, le paramètre encoding ne spécifie plus que la sortie. Le jeu de caractères de sortie par défaut est 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 nouvelle instance de XMLParser.

Historique

Version | Description
8.0.0 | Cette fonction retourne désormais une instance de XMLParser; auparavant, une resource était retournée, ou false si une erreur survient.
8.0.0 | encoding est désormais nullable.

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, PHP 8)

xml_parser_create — Création d'un analyseur XML

Description

xml_parser_create(?string $encoding = null): XMLParser

xml_parser_create() crée un analyseur XML et retourne une instance de XMLParser à utiliser avec les autres fonctions XML.

Liste de paramètres

encoding

L'encodage d'entrée est automatiquement détecté, ainsi le paramètre encoding ne spécifie que l'encodage de sortie. Si une chaîne vide est passée, l'analyseur tente d'identifier dans quel encodage le document est encodé en regardant les 3 ou 4 octets du haut. Le jeu de caractères de sortie par défaut est UTF-8. Les encodages supportées sont ISO-8859-1, UTF-8, et US-ASCII.

Valeurs de retour

Retourne une nouvelle instance de XMLParser.

Historique

Version | Description
8.0.0 | Cette fonction retourne désormais une instance de XMLParser; auparavant, une resource était retournée, ou false si une erreur survient.
8.0.0 | encoding est désormais nullable.

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, PHP 8)

xml_parser_free — Détruit un analyseur XML

Description

xml_parser_free(XMLParser $parser): bool

Note:

Cette fonction n'a aucun effet. Antérieur à PHP 8.0.0, cette fonction était utilisé pour fermer une ressource.

Détruit l'analyseur XML parser.

Attention

Antérieur à PHP 8.0.0, en plus d'appeler la fonction xml_parser_free() à la fin de l'analyse, il était nécessaire de supprimer explicitement la référence au paramètre parser pour éviter les fuites mémoires, si la ressource analysé est référencé depuis un objet, et cet objet fait référence à la ressource analysé.

Liste de paramètres

parser
Une référence sur un analyseur XML.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | parser attend une instance de XMLParser désormais; auparavent, une resource xml était attendue.


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, PHP 8)

xml_parser_get_option — Lit les options d'un analyseur XML

Description

xml_parser_get_option(XMLParser $parser, int $option): string|int|bool

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, XML_OPTION_SKIP_TAGSTART, XML_OPTION_SKIP_WHITE et XML_OPTION_TARGET_ENCODING sont disponibles. Reportez-vous à xml_parser_set_option() pour leurs descriptions.

Valeurs de retour

Renvoie la valeur de l'option

Erreurs / Exceptions

Lève une ValueError lorsque qu'une valeur invalide est passée à option.

Antérieur à PHP 8.0.0, passer une valeur invalide à option générait également un avertissement E_WARNING et faisait retourner à la fonction la valeur false.

Historique

Version | Description
8.3.0 | La fonction retourne désormais un booléen pour les options booléennes.
8.0.0 | parser attend une instance de XMLParser désormais; auparavent, une resource xml était attendue.
8.0.0 | Une ValueError est désormais générée si option est invalide.
7.1.24, 7.2.12, 7.3.0 | options supporte désormais XML_OPTION_SKIP_TAGSTART et XML_OPTION_SKIP_WHITE.


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, PHP 8)

xml_parser_set_option — Affecte les options d'un analyseur XML

Description

xml_parser_set_option(XMLParser $parser, int $option, string|int|bool $value): bool

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 | bool | Contrôle la gestion de la casse des balises de cet analyseur XML. Par défaut, activé.
XML_OPTION_SKIP_TAGSTART | bool | 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

Renvoie true en cas de succès ou false en cas d'échec.

Erreurs / Exceptions

Lève une ValueError lorsque qu'une valeur invalide est passée à option.

Antérieur à PHP 8.0.0, passer une valeur invalide à option générait un avertissement E_WARNING et faisait retourner à la fonction la valeur false.

Historique

Version | Description
8.3.0 | Le paramètre value accepte désormais également les booléens. Les options XML_OPTION_CASE_FOLDING et XML_OPTION_SKIP_WHITE sont désormais des options booléennes.
8.0.0 | parser attend une instance de XMLParser désormais; auparavent, une resource xml était attendue.
8.0.0 | Une exception ValueError est désormais lancée si le option est invalide.


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, PHP 8)

xml_set_character_data_handler — Affecte les gestionnaires de texte littéral

Description

xml_set_character_data_handler(XMLParser $parser, callable $handler): true

Affecte les gestionnaires de début et de fin de l'analyseur XML parser.

Liste de paramètres

parser

Le parseur XML.

handler

Si null ou une chaîne vide est passée, le gestionnaire est réinitialisé à son état par défaut.

Si handler est un callable, l'appelable est défini comme le gestionnaire.

Si handler est une string, il peut s'agir du nom d'une méthode d'un objet défini avec xml_set_object().

La signature du gestionnaire doit être :

handler(XMLParser $parser, string $data): void
parser
Le parseur XML appelant le gestionnaire.
data
Character data comme chaîne de caractères.

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 (par exemple pour les chaînes non-ASCII).

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.0.0 | parser attend une instance de XMLParser désormais; auparavent, une resource xml était attendue.


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, PHP 8)

xml_set_default_handler — Affecte le gestionnaire XML par défaut

Description

xml_set_default_handler(XMLParser $parser, callable $handler): true

Affecte le gestionnaire par défaut de l'analyseur XML parser.

Liste de paramètres

parser

Le parseur XML.

handler

Si null ou une chaîne vide est passée, le gestionnaire est réinitialisé à son état par défaut.

Si handler est un callable, l'appelable est défini comme le gestionnaire.

Si handler est une string, il peut s'agir du nom d'une méthode d'un objet défini avec xml_set_object().

La signature du gestionnaire doit être :

handler(XMLParser $parser, string $data): void
parser
Le parseur XML appelant le gestionnaire.
data
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.

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.0.0 | parser attend une instance de XMLParser désormais; auparavent, une resource xml était attendue.


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, PHP 8)

xml_set_element_handler — Affecte les gestionnaires de début et de fin de balise XML

Description

xml_set_element_handler(XMLParser $parser, callable $start_handler, callable $end_handler): true

Affecte les gestionnaires de début et de fin de l'analyseur XML parser.

start_handler est appelé quand un nouvel élément XML est ouvert. end_handler est appelé quand un élément XML est fermé.

Liste de paramètres

parser

Le parseur XML.

start_handler

Si null ou une chaîne vide est passée, le gestionnaire est réinitialisé à son état par défaut.

Si handler est un callable, l'appelable est défini comme le gestionnaire.

Si handler est une string, il peut s'agir du nom d'une méthode d'un objet défini avec xml_set_object().

La signature du gestionnaire doit être :

start_element_handler(XMLParser $parser, string $name, array $attributes): void
parser
Le parseur XML appelant le gestionnaire.
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.
attributes
Un tableau associatif avec les attributs de l'élément. Le tableau est vide s'il n'y a pas d'attributs. 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 dans lequel attributes est traversé est identique à l'ordre dans lequel les attributs ont été déclaré.

end_handler

Si null ou une chaîne vide est passée, le gestionnaire est réinitialisé à son état par défaut.

Si handler est un callable, l'appelable est défini comme le gestionnaire.

Si handler est une string, il peut s'agir du nom d'une méthode d'un objet défini avec xml_set_object().

La signature du gestionnaire doit être :

end_element_handler(XMLParser $parser, string $name): void
parser
Le parseur XML appelant le gestionnaire.
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.

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.0.0 | parser attend une instance de XMLParser désormais; auparavent, une resource xml était attendue.


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, PHP 8)

xml_set_end_namespace_decl_handler — Configure le gestionnaire XML de données

Description

xml_set_end_namespace_decl_handler(XMLParser $parser, callable $handler): true

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é.

Attention

Cet évènement n'est pas supporté sous libXML, aussi, un gestionnaire enregistré ne sera pas appelé.

Liste de paramètres

parser

Le parseur XML.

handler

Si null ou une chaîne vide est passée, le gestionnaire est réinitialisé à son état par défaut.

Si handler est un callable, l'appelable est défini comme le gestionnaire.

Si handler est une string, il peut s'agir du nom d'une méthode d'un objet défini avec xml_set_object().

La signature du gestionnaire doit être :

handler(XMLParser $parser, string|false $prefix)
parser
Le parseur XML appelant 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. false si aucun préfixe existe.

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.0.0 | parser attend une instance de XMLParser désormais; auparavent, une resource xml était attendue.

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, PHP 8)

xml_set_external_entity_ref_handler — Configure le gestionnaire XML de références externes

Description

xml_set_external_entity_ref_handler(XMLParser $parser, callable $handler): true

Affecte le gestionnaire d'entité externe de l'analyseur XML parser.

Liste de paramètres

parser

Le parseur XML.

handler

Si null ou une chaîne vide est passée, le gestionnaire est réinitialisé à son état par défaut.

Si handler est un callable, l'appelable est défini comme le gestionnaire.

Si handler est une string, il peut s'agir du nom d'une méthode d'un objet défini avec xml_set_object().

La signature du gestionnaire doit être :

handler(
XMLParser $parser,
string $open_entity_names,
string|false $base,
string $system_id,
string|false $public_id
): bool
parser
Le parseur XML appelant le gestionnaire.
open_entity_names
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 racine pour la résolution de l'identifiant système (system_id) de l'entité externe.
system_id
L'identifiant système tel que spécifié dans la déclaration d'entité
public_id
L'identifiant public tel que 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.

Le gestionnaire devrait retourner true si l'entité a été géré, sinon false. Quand false est retourné l'analyseur XML arrêtera l'analyse et xml_get_error_code() retournera XML_ERROR_EXTERNAL_ENTITY_HANDLING.

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.0.0 | parser attend une instance de XMLParser désormais; auparavent, une resource xml était attendue.
7.3.0 | La valeur de retour de handler n'est désormais plus ignoré quand l'extension a été compilé contre libxml. Auparavant, la valeur de retour était ignoré et l'analyse ne s'arrêtait jamais.


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, PHP 8)

xml_set_notation_decl_handler — Configure le gestionnaire XML de notations

Description

xml_set_notation_decl_handler(XMLParser $parser, callable $handler): true

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

Le parseur XML.

handler

Si null ou une chaîne vide est passée, le gestionnaire est réinitialisé à son état par défaut.

Si handler est un callable, l'appelable est défini comme le gestionnaire.

Si handler est une string, il peut s'agir du nom d'une méthode d'un objet défini avec xml_set_object().

La signature du gestionnaire doit être :

handler(
XMLParser $parser,
string $notation_name,
string|false $base,
string $system_id,
string|false $public_id
): void
parser
Le parseur XML appelant le gestionnaire.
notation_name
Le nom de la notation, comme précisé dans le format de notation ci-dessus.
base
La racine pour la résolution de l'identifiant système (system_id) de l'entité externe.
system_id
Identifiant système pour cette entité externe.
public_id
Identifiant public pour cette entité externe.

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.0.0 | parser attend une instance de XMLParser désormais; auparavent, une resource xml était attendue.


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, PHP 8)

xml_set_object — Configure un objet comme analyseur XML

Description

xml_set_object(XMLParser $parser, object $object): true

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

Retourne toujours true.

Historique

Version | Description
8.0.0 | parser attend une instance de XMLParser désormais; auparavent, une resource xml était attendue.

Exemples

Exemple #1 Exemple avec xml_set_object()

<?php
class CustomXMLParser
{
private $parser;

function __construct()
{
$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($tag, $attributes);
}

function cdata($parser, $cdata)
{
var_dump($cdata);
}

function tag_close($parser, $tag)
{
var_dump($tag);
}
}

$xml_parser = new CustomXMLParser();
$xml_parser->parse("<A ID='hallo'>PHP</A>");
?>

L'exemple ci-dessus va afficher :

string(1) "A"
array(1) {
  ["ID"]=>
  string(5) "hallo"
}
string(3) "PHP"
string(1) "A"


Affecte les gestionnaires d'instructions de traitement

  • « xml_set_object
  • xml_set_start_namespace_decl_handler »
  • PHP Manual
  • Fonctions d'analyse de fichier XML
  • Affecte les gestionnaires d'instructions de traitement

xml_set_processing_instruction_handler

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_set_processing_instruction_handler — Affecte les gestionnaires d'instructions de traitement

Description

xml_set_processing_instruction_handler(XMLParser $parser, callable $handler): true

Affecte le gestionnaire d'instructions exécutables de l'analyseur XML parser.

Une instruction de traitement a la forme suivante :

<?target
data
?>

Attention

Le code PHP code est délimité par l'instruction de traitement <?php. Ainsi, il est possible d'avoir du code PHP dans un document XML. Cependant, la balise de fin de l'instruction de traitement (?>) ne doit pas faire partie des données. Si une balise de fin de l'instruction de traitement existe dans le code PHP imbriqué, le reste du code PHP et la "vrai" balise de fin de l'instruction de traitement, seront traité comme des données de texte.

Liste de paramètres

parser

Le parseur XML.

handler

Si null ou une chaîne vide est passée, le gestionnaire est réinitialisé à son état par défaut.

Si handler est un callable, l'appelable est défini comme le gestionnaire.

Si handler est une string, il peut s'agir du nom d'une méthode d'un objet défini avec xml_set_object().

La signature du gestionnaire doit être :

handler(XMLParser $parser, string $target, string $data): void
parser
Le parseur XML appelant le gestionnaire.
target
La cible de l'instruction de traitement.
data
Les données de l'instruction de traitement.

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.0.0 | parser attend une instance de XMLParser désormais; auparavent, une resource xml était attendue.


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, PHP 8)

xml_set_start_namespace_decl_handler — Configure le gestionnaire de caractères

Description

xml_set_start_namespace_decl_handler(XMLParser $parser, callable $handler): true

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

Le parseur XML.

handler

Si null ou une chaîne vide est passée, le gestionnaire est réinitialisé à son état par défaut.

Si handler est un callable, l'appelable est défini comme le gestionnaire.

Si handler est une string, il peut s'agir du nom d'une méthode d'un objet défini avec xml_set_object().

La signature du gestionnaire doit être :

handler(XMLParser $parser, string|false $prefix, string $uri): void
parser
Le parseur XML appelant 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. false si aucun préfixe n'existe.
uri
Identifiant de ressource uniforme (URI) d'un espace de noms.

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.0.0 | parser attend une instance de XMLParser désormais; auparavent, une resource xml était attendue.

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
  • XMLParser »
  • 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, PHP 8)

xml_set_unparsed_entity_decl_handler — Affecte les gestionnaires d'entités non déclarées

Description

xml_set_unparsed_entity_decl_handler(XMLParser $parser, callable $handler): true

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

Le parseur XML.

handler

Si null ou une chaîne vide est passée, le gestionnaire est réinitialisé à son état par défaut.

Si handler est un callable, l'appelable est défini comme le gestionnaire.

Si handler est une string, il peut s'agir du nom d'une méthode d'un objet défini avec xml_set_object().

La signature du gestionnaire doit être :

handler(
XMLParser $parser,
string $entity_name,
string|false $base,
string $system_id,
string|false $public_id,
string|false $notation_name
): void
parser
Le parseur XML appelant le gestionnaire.
entity_name
Le nom de l'entité qui va être définie.
base
La racine pour la résolution de l'identifiant système (system_id) de l'entité externe.
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()).

Valeurs de retour

Retourne toujours true.

Historique

Version | Description
8.0.0 | parser attend une instance de XMLParser désormais; auparavent, une resource xml était attendue.


La classe XMLParser

(PHP 8)

Introduction

Une classe totalement opaque qui remplace les ressources xml à partir de PHP 8.0.0.

Synopsis de la classe

final class XMLParser {
}


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 nœud courant comme un nœud 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 nœud en sautant tous les sous arbres
    • XMLReader::open — Fixe le URI contenant le XML à analyser
    • XMLReader::read — Déplace le curseur sur le prochain nœud du document
    • XMLReader::readInnerXml — Lit le code XML du nœud courant
    • XMLReader::readOuterXml — Lit le code XML du nœud courant, y compris lui-même
    • XMLReader::readString — Lit le contenu du nœud 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 nœud 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 est inclut avec la source 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, PHP 8)

Introduction

L'extension XMLReader est un analyseur XML. L'analyseur fonctionne comme un curseur qui parcourt le document et s'arrête sur chaque nœud.

Synopsis de la classe

class XMLReader {
/* Constantes */
public const int NONE;
public const int ELEMENT;
public const int ATTRIBUTE;
public const int TEXT;
public const int CDATA;
public const int ENTITY_REF;
public const int ENTITY;
public const int PI;
public const int COMMENT;
public const int DOC;
public const int DOC_TYPE;
public const int DOC_FRAGMENT;
public const int NOTATION;
public const int WHITESPACE;
public const int SIGNIFICANT_WHITESPACE;
public const int END_ELEMENT;
public const int END_ENTITY;
public const int XML_DECLARATION;
public const int LOADDTD;
public const int DEFAULTATTRS;
public const int VALIDATE;
public const int SUBST_ENTITIES;
/* Propriétés */
public int $attributeCount;
public string $baseURI;
public int $depth;
public bool $hasAttributes;
public bool $hasValue;
public bool $isDefault;
public bool $isEmptyElement;
public string $localName;
public string $name;
public string $namespaceURI;
public int $nodeType;
public string $prefix;
public string $value;
public string $xmlLang;
/* Méthodes */
public close(): true
public expand(?DOMNode $baseNode = null): DOMNode|false
public getAttribute(string $name): ?string
public getAttributeNo(int $index): ?string
public getAttributeNs(string $name, string $namespace): ?string
public getParserProperty(int $property): bool
public isValid(): bool
public lookupNamespace(string $prefix): ?string
public moveToAttribute(string $name): bool
public moveToAttributeNo(int $index): bool
public moveToAttributeNs(string $name, string $namespace): bool
public moveToElement(): bool
public moveToFirstAttribute(): bool
public moveToNextAttribute(): bool
public next(?string $name = null): bool
public static open(string $uri, ?string $encoding = null, int $flags = 0): bool|XMLReader
public read(): bool
public readInnerXml(): string
public readOuterXml(): string
public readString(): string
public setParserProperty(int $property, bool $value): bool
public setRelaxNGSchema(?string $filename): bool
public setRelaxNGSchemaSource(?string $source): bool
public setSchema(?string $filename): bool
public static XML(string $source, ?string $encoding = null, int $flags = 0): bool|XMLReader
}

Propriétés

attributeCount

Le nombre d'attributs dans le nœud

baseURI

La base URI du nœud

depth

Profondeur du nœud dans l'arbre démarrant à 0

hasAttributes

Indique si le nœud a des attributs

hasValue

Indique si le nœud a une valeur de texte

isDefault

Indique si l'attribut est par défaut à partir du DTD

isEmptyElement

Indique si le nœud est un élément vide

localName

Le nom local du nœud

name

Le nœud qualifié du nœud

namespaceURI

L'URI de l'espace de nom associé avec le nœud

nodeType

Le type de nœud pour le nœud

prefix

Le préfixe de l'espace de nom associé avec le nœud

value

La valeur du texte du nœud

xmlLang

La portée xml:lang dans lequel le nœud réside

Constantes pré-définies

Types de nœud XMLReader

XMLReader::NONE

Pas de type de nœud

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 nœud courant comme un nœud 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 nœud en sautant tous les sous arbres
  • XMLReader::open — Fixe le URI contenant le XML à analyser
  • XMLReader::read — Déplace le curseur sur le prochain nœud du document
  • XMLReader::readInnerXml — Lit le code XML du nœud courant
  • XMLReader::readOuterXml — Lit le code XML du nœud courant, y compris lui-même
  • XMLReader::readString — Lit le contenu du nœud 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, PHP 8)

XMLReader::close — Ferme l'entrée XMLReader

Description

public XMLReader::close(): true

Ferme l'entrée de l'objet XMLReader qui est en train d'être analysé.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne toujours true.

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 nœud courant comme un nœud d'objet DOM

  • « XMLReader::close
  • XMLReader::getAttribute »
  • PHP Manual
  • XMLReader
  • Retourne une copie du nœud courant comme un nœud d'objet DOM

XMLReader::expand

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::expand — Retourne une copie du nœud courant comme un nœud d'objet DOM

Description

public XMLReader::expand(?DOMNode $baseNode = null): DOMNode|false

Cette méthode copie le nœud 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.


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, PHP 8)

XMLReader::getAttribute — Récupère la valeur d'un attribut par nom

Description

public XMLReader::getAttribute(string $name): ?string

Retourne la valeur d'un attribut par nom ou null si l'attribut n'existe pas ou n'est pas positionné sur le nœud.

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
8.0.0 | Cette fonction ne peut plus retourner false.

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, PHP 8)

XMLReader::getAttributeNo — Récupère la valeur d'un attribut par index

Description

public XMLReader::getAttributeNo(int $index): ?string

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 nœud.

Liste de paramètres

index

La position de l'attribut.

Valeurs de retour

La valeur de l'attribut, ou null si aucun attribut n'existe à index ou n'est pas positionné sur l'élément.

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, PHP 8)

XMLReader::getAttributeNs — Récupère la valeur d'un attribut par nom local et URI

Description

public XMLReader::getAttributeNs(string $name, string $namespace): ?string

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 nœud.

Liste de paramètres

name

Le nom local.

namespace

L'espace de nom URI.

Valeurs de retour

La valeur de l'attribut, ou null si aucun attribut avec le name et namespace donnés n'est trouvé ou positionné sur l'élément.

Historique

Version | Description
8.0.0 | Cette fonction ne peut plus retourner false.

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, PHP 8)

XMLReader::getParserProperty — Indique si la propriété spécifiée a été fixée

Description

public XMLReader::getParserProperty(int $property): bool

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, PHP 8)

XMLReader::isValid — Indique si le document analysé est valide

Description

public XMLReader::isValid(): bool

Retourne un booléen indiquant si le document qui est en train d'être analysé est valide selon le DTD, ou un schéma XML ou RelaxNG. S'il n'y a pas de schéma et que l'option de validation DTD n'est pas fournie, cette méthode renverra false.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne true lorsque le document est valide, sinon false.

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 nœud 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, PHP 8)

XMLReader::lookupNamespace — Consulte l'espace de nom pour un préfixe

Description

public XMLReader::lookupNamespace(string $prefix): ?string

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

La valeur de l'espace de nom, ou null si aucun espace de nom existe.

Historique

Version | Description
8.0.0 | Cette fonction ne peut plus retourner false.


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, PHP 8)

XMLReader::moveToAttribute — Déplace un curseur à un attribut nommé

Description

public XMLReader::moveToAttribute(string $name): bool

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, PHP 8)

XMLReader::moveToAttributeNo — Déplace le curseur à un attribut par index

Description

public XMLReader::moveToAttributeNo(int $index): bool

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, PHP 8)

XMLReader::moveToAttributeNs — Déplace le curseur à un attribut d'espace de nom

Description

public XMLReader::moveToAttributeNs(string $name, string $namespace): bool

Positionne le curseur sur le nom de l'attribut dans l'espace de nom spécifié.

Liste de paramètres

name

Le nom local.

namespace

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, PHP 8)

XMLReader::moveToElement — Positionne le curseur sur l'élément parent de l'attribut courant

Description

public XMLReader::moveToElement(): bool

Déplace le curseur de l'élément parent de l'attribut courant.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

XMLReader::moveToFirstAttribute — Positionne le curseur sur le premier attribut

Description

public XMLReader::moveToFirstAttribute(): bool

Déplace le curseur sur le premier attribut.

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

  • 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, PHP 8)

XMLReader::moveToNextAttribute — Positionne le curseur sur le prochain attribut

Description

public XMLReader::moveToNextAttribute(): bool

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.

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

  • 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 nœud en sautant tous les sous arbres

  • « XMLReader::moveToNextAttribute
  • XMLReader::open »
  • PHP Manual
  • XMLReader
  • Déplace le curseur au prochain nœud en sautant tous les sous arbres

XMLReader::next

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::next — Déplace le curseur au prochain nœud en sautant tous les sous arbres

Description

public XMLReader::next(?string $name = null): bool

Positionne le curseur sur le prochain nœud en sautant tous les sous arbres. Si aucun nœud existe, le curseur est déplacé à la fin du document.

Liste de paramètres

name

Le nom du prochaine nœud à se déplacer.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | name est désormais nullable.

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, PHP 8)

XMLReader::open — Fixe le URI contenant le XML à analyser

Description

public static XMLReader::open(string $uri, ?string $encoding = null, int $flags = 0): bool|XMLReader

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.

flags

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

This method may be called statically, but prior to PHP 8.0.0, will issue an E_DEPRECATED error in this case.

Historique

Version | Description
8.0.0 | XMLReader::open() est désormais déclaré comme méthode statique, mais peut toujours être appelé sur une instance de XMLReader.

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 nœud du document

  • « XMLReader::open
  • XMLReader::readInnerXml »
  • PHP Manual
  • XMLReader
  • Déplace le curseur sur le prochain nœud du document

XMLReader::read

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

XMLReader::read — Déplace le curseur sur le prochain nœud du document

Description

public XMLReader::read(): bool

Déplace le curseur au prochain nœud texte du 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.

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 nœud en sautant tous les sous arbres


Lit le code XML du nœud courant

  • « XMLReader::read
  • XMLReader::readOuterXml »
  • PHP Manual
  • XMLReader
  • Lit le code XML du nœud courant

XMLReader::readInnerXml

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

XMLReader::readInnerXml — Lit le code XML du nœud courant

Description

public XMLReader::readInnerXml(): string

Lit le contenu du nœud 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 nœud 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 nœud courant sous forme de chaîne
  • XMLReader::readOuterXml() - Lit le code XML du nœud courant, y compris lui-même
  • XMLReader::expand() - Retourne une copie du nœud courant comme un nœud d'objet DOM


Lit le code XML du nœud courant, y compris lui-même

  • « XMLReader::readInnerXml
  • XMLReader::readString »
  • PHP Manual
  • XMLReader
  • Lit le code XML du nœud courant, y compris lui-même

XMLReader::readOuterXml

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

XMLReader::readOuterXml — Lit le code XML du nœud courant, y compris lui-même

Description

public XMLReader::readOuterXml(): string

Lit le code XML du nœud 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 nœud 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 nœud courant sous forme de chaîne
  • XMLReader::readInnerXml() - Lit le code XML du nœud courant
  • XMLReader::expand() - Retourne une copie du nœud courant comme un nœud d'objet DOM


Lit le contenu du nœud courant sous forme de chaîne

  • « XMLReader::readOuterXml
  • XMLReader::setParserProperty »
  • PHP Manual
  • XMLReader
  • Lit le contenu du nœud courant sous forme de chaîne

XMLReader::readString

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

XMLReader::readString — Lit le contenu du nœud courant sous forme de chaîne

Description

public XMLReader::readString(): string

Lit le contenu du nœud courant sous forme de chaîne.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne le contenu du nœud 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 nœud courant, y compris lui-même
  • XMLReader::readInnerXml() - Lit le code XML du nœud courant
  • XMLReader::expand() - Retourne une copie du nœud courant comme un nœud 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, PHP 8)

XMLReader::setParserProperty — Fixe des options pour l'analyseur

Description

public XMLReader::setParserProperty(int $property, bool $value): bool

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.1.0, PHP 7, PHP 8)

XMLReader::setRelaxNGSchema — Fixe le nom du fichier ou l'URI pour le Schéma RelaxNG

Description

public XMLReader::setRelaxNGSchema(?string $filename): bool

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, PHP 8)

XMLReader::setRelaxNGSchemaSource — Spécifie le schéma RelaxNG

Description

public XMLReader::setRelaxNGSchemaSource(?string $source): bool

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, PHP 8)

XMLReader::setSchema — Valide le document avec XSD

Description

public XMLReader::setSchema(?string $filename): bool

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, PHP 8)

XMLReader::XML — Fixe les données contenant le XML à analyser

Description

public static XMLReader::XML(string $source, ?string $encoding = null, int $flags = 0): bool|XMLReader

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.

flags

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

This method may be called statically, but prior to PHP 8.0.0, will issue an E_DEPRECATED error in this case.

Historique

Version | Description
8.0.0 | XMLReader::xml() est désormais déclaré comme méthode statique, mais peut toujours être appelé sur une instance de XMLReader.

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
  • Exemples
    • Créer un document XML basique
    • Travailler avec les espaces de noms XML
    • Travailler avec l'API OO
  • XMLWriter — La classe XMLWriter
    • 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


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 est inclut avec la source de PHP. 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

Antérieur à PHP 8.0.0, il y avait 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
  • Exemples »
  • PHP Manual
  • XMLWriter
  • Constantes pré-définies

Constantes pré-définies

Cette extension ne définit aucune constante.


Exemples

Sommaire

  • Créer un document XML basique
  • Travailler avec les espaces de noms XML
  • Travailler avec l'API OO


Créer un document XML basique

Cet exemple montre comment utiliser XMLWriter pour créer un document XML en mémoire.

Exemple #1 Créer un document XML basique

<?php

$xw = xmlwriter_open_memory();
xmlwriter_set_indent($xw, 1);
$res = xmlwriter_set_indent_string($xw, ' ');

xmlwriter_start_document($xw, '1.0', 'UTF-8');

// Un premier élément
xmlwriter_start_element($xw, 'tag1');

// Attribut 'att1' pour élément 'tag1'
xmlwriter_start_attribute($xw, 'att1');
xmlwriter_text($xw, 'valueofatt1');
xmlwriter_end_attribute($xw);

xmlwriter_write_comment($xw, 'ceci est un commentaire.');

// Début d'un élément enfant
xmlwriter_start_element($xw, 'tag11');
xmlwriter_text($xw, 'Ceci est du texte, ä');
xmlwriter_end_element($xw); // tag11

xmlwriter_end_element($xw); // tag1

// CDATA
xmlwriter_start_element($xw, 'testc');
xmlwriter_write_cdata($xw, "Ceci est du contenu cdata");
xmlwriter_end_element($xw); // testc

xmlwriter_start_element($xw, 'testc');
xmlwriter_start_cdata($xw);
xmlwriter_text($xw, "test cdata2");
xmlwriter_end_cdata($xw);
xmlwriter_end_element($xw); // testc

// Une instruction de traitement
xmlwriter_start_pi($xw, 'php');
xmlwriter_text($xw, '$foo=2;echo $foo;');
xmlwriter_end_pi($xw);

xmlwriter_end_document($xw);

echo xmlwriter_output_memory($xw);

L'exemple ci-dessus va afficher :

<?xml version="1.0" encoding="UTF-8"?>
<tag1 att1="valueofatt1">
 <!--ceci est un commentaire.-->
 <tag11>Ceci est du texte, ä</tag11>
</tag1>
<testc><![CDATA[Ceci est du contenu cdata]]></testc>
<testc><![CDATA[test cdata2]]></testc>
<?php $foo=2;echo $foo;?>


Travailler avec les espaces de noms XML

Cet exemple montre comment créer des éléments dans des espaces de noms XML.

Exemple #1 Travailler avec les espaces de noms XML

<?php

$xw = xmlwriter_open_memory();
xmlwriter_set_indent($xw, 1);
$res = xmlwriter_set_indent_string($xw, ' ');

xmlwriter_start_document($xw, '1.0', 'UTF-8');
// A first element
xmlwriter_start_element_ns($xw,'prefix', 'books', 'uri');
xmlwriter_start_attribute($xw, 'isbn');

xmlwriter_start_attribute_ns($xw, 'prefix', 'isbn', 'uri');
xmlwriter_end_attribute($xw);

xmlwriter_end_attribute($xw);

xmlwriter_text($xw, 'book1');
xmlwriter_end_element($xw);

xmlwriter_end_document($xw);

echo xmlwriter_output_memory($xw);

L'exemple ci-dessus va afficher :

<?xml version="1.0" encoding="UTF-8"?>
<prefix:books isbn="" prefix:isbn="" xmlns:prefix="uri">book1</prefix:books>


Travailler avec l'API OO

Cet exemple montre comment travailler avec l'API orienté objet de XMLWriter.

Exemple #1 Travailler avec l'API OO

<?php

$xw = new XMLWriter();
$xw->openMemory();
$xw->startDocument("1.0");
$xw->startElement("book");
$xw->text("example");
$xw->endElement();
$xw->endDocument();
echo $xw->outputMemory();

L'exemple ci-dessus va afficher :

<?xml version="1.0"?>
<book>example</book>


La classe XMLWriter

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

Introduction

Synopsis de la classe

class XMLWriter {
/* Méthodes */
public endAttribute(): bool
public endCdata(): bool
public endComment(): bool
public endDocument(): bool
public endDtd(): bool
public endDtdAttlist(): bool
public endDtdElement(): bool
public endDtdEntity(): bool
public endElement(): bool
public endPi(): bool
public flush(bool $empty = true): string|int
public fullEndElement(): bool
public openMemory(): bool
public openUri(string $uri): bool
public outputMemory(bool $flush = true): string
public setIndent(bool $enable): bool
public setIndentString(string $indentation): bool
public startAttribute(string $name): bool
public startAttributeNs(?string $prefix, string $name, ?string $namespace): bool
public startCdata(): bool
public startComment(): bool
public startDocument(?string $version = "1.0", ?string $encoding = null, ?string $standalone = null): bool
public startDtd(string $qualifiedName, ?string $publicId = null, ?string $systemId = null): bool
public startDtdAttlist(string $name): bool
public startDtdElement(string $qualifiedName): bool
public startDtdEntity(string $name, bool $isParam): bool
public startElement(string $name): bool
public startElementNs(?string $prefix, string $name, ?string $namespace): bool
public startPi(string $target): bool
public text(string $content): bool
public writeAttribute(string $name, string $value): bool
public writeAttributeNs(
?string $prefix,
string $name,
?string $namespace,
string $value
): bool
public writeCdata(string $content): bool
public writeComment(string $content): bool
public writeDtd(
string $name,
?string $publicId = null,
?string $systemId = null,
?string $content = null
): bool
public writeDtdAttlist(string $name, string $content): bool
public writeDtdElement(string $name, string $content): bool
public writeDtdEntity(
string $name,
string $content,
bool $isParam = false,
?string $publicId = null,
?string $systemId = null,
?string $notationData = null
): bool
public writeElement(string $name, ?string $content = null): bool
public writeElementNs(
?string $prefix,
string $name,
?string $namespace,
?string $content = null
): bool
public writePi(string $target, string $content): bool
public writeRaw(string $content): bool
}

Sommaire

  • 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


Termine un attribut

  • « XMLWriter
  • XMLWriter::endCdata »
  • PHP Manual
  • XMLWriter
  • Termine un attribut

XMLWriter::endAttribute

xmlwriter_end_attribute

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endAttribute -- xmlwriter_end_attribute — Termine un attribut

Description

Style orienté objet

public XMLWriter::endAttribute(): bool

Style procédural

xmlwriter_end_attribute(XMLWriter $writer): bool

Termine l'attribut courant.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet 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.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.

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
  • XMLWriter
  • Termine un bloc CDATA

XMLWriter::endCdata

xmlwriter_end_cdata

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endCdata -- xmlwriter_end_cdata — Termine un bloc CDATA

Description

Style orienté objet

public XMLWriter::endCdata(): bool

Style procédural

xmlwriter_end_cdata(XMLWriter $writer): bool

Termine la section CDATA courante.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet 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.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.

Voir aussi

  • XMLWriter::startCdata() - Crée une balise CDATA
  • XMLWriter::writeCdata() - Écrit un bloc CDATA


Termine un commentaire

  • « XMLWriter::endCdata
  • XMLWriter::endDocument »
  • PHP Manual
  • XMLWriter
  • Termine un commentaire

XMLWriter::endComment

xmlwriter_end_comment

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 1.0.0)

XMLWriter::endComment -- xmlwriter_end_comment — Termine un commentaire

Description

Style orienté objet

public XMLWriter::endComment(): bool

Style procédural

xmlwriter_end_comment(XMLWriter $writer): bool

Termine le commentaire courant.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet 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.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.

Voir aussi

  • XMLWriter::startComment() - Crée un commentaire
  • XMLWriter::writeComment() - Écrit un commentaire


Termine le document courant

  • « XMLWriter::endComment
  • XMLWriter::endDtd »
  • PHP Manual
  • XMLWriter
  • Termine le document courant

XMLWriter::endDocument

xmlwriter_end_document

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endDocument -- xmlwriter_end_document — Termine le document courant

Description

Style orienté objet

public XMLWriter::endDocument(): bool

Style procédural

xmlwriter_end_document(XMLWriter $writer): bool

Termine le document courant.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet 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.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.

Voir aussi

  • XMLWriter::startDocument() - Crée un document


Termine la DTD courante

  • « XMLWriter::endDocument
  • XMLWriter::endDtdAttlist »
  • PHP Manual
  • XMLWriter
  • Termine la DTD courante

XMLWriter::endDtd

xmlwriter_end_dtd

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endDtd -- xmlwriter_end_dtd — Termine la DTD courante

Description

Style orienté objet

public XMLWriter::endDtd(): bool

Style procédural

xmlwriter_end_dtd(XMLWriter $writer): bool

Termine la DTD courante du document.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet 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.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.

Voir aussi

  • XMLWriter::startDtd() - Crée une DTD
  • XMLWriter::writeDtd() - Écrit une DTD


Termine la liste des attributs de la DTD courante

  • « XMLWriter::endDtd
  • XMLWriter::endDtdElement »
  • PHP Manual
  • XMLWriter
  • Termine la liste des attributs de la DTD courante

XMLWriter::endDtdAttlist

xmlwriter_end_dtd_attlist

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endDtdAttlist -- xmlwriter_end_dtd_attlist — Termine la liste des attributs de la DTD courante

Description

Style orienté objet

public XMLWriter::endDtdAttlist(): bool

Style procédural

xmlwriter_end_dtd_attlist(XMLWriter $writer): bool

Termine la liste des attributs de la DTD courante.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet 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.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.

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
  • XMLWriter
  • Termine l'élément de la DTD courante

XMLWriter::endDtdElement

xmlwriter_end_dtd_element

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endDtdElement -- xmlwriter_end_dtd_element — Termine l'élément de la DTD courante

Description

Style orienté objet

public XMLWriter::endDtdElement(): bool

Style procédural

xmlwriter_end_dtd_element(XMLWriter $writer): bool

Termine l'élément de la DTD courante.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet 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.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.

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::endElement »
  • PHP Manual
  • XMLWriter
  • Termine l'entité de la DTD courante

XMLWriter::endDtdEntity

xmlwriter_end_dtd_entity

(PHP 5 >= 5.2.1, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endDtdEntity -- xmlwriter_end_dtd_entity — Termine l'entité de la DTD courante

Description

Style orienté objet

public XMLWriter::endDtdEntity(): bool

Style procédural

xmlwriter_end_dtd_entity(XMLWriter $writer): bool

Termine l'entité de la DTD courante.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet 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.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.

Voir aussi

  • XMLWriter::startDtdEntity() - Crée une entité DTD
  • XMLWriter::writeDtdEntity() - Écrit une entité DTD


Termine l'élément courant

  • « XMLWriter::endDtdEntity
  • XMLWriter::endPi »
  • PHP Manual
  • XMLWriter
  • Termine l'élément courant

XMLWriter::endElement

xmlwriter_end_element

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endElement -- xmlwriter_end_element — Termine l'élément courant

Description

Style orienté objet

public XMLWriter::endElement(): bool

Style procédural

xmlwriter_end_element(XMLWriter $writer): bool

Termine l'élément courant.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet 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.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.

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
  • XMLWriter
  • Termine le PI courant

XMLWriter::endPi

xmlwriter_end_pi

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::endPi -- xmlwriter_end_pi — Termine le PI courant

Description

Style orienté objet

public XMLWriter::endPi(): bool

Style procédural

xmlwriter_end_pi(XMLWriter $writer): bool

Termine l'instruction courante.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet 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.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.

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
  • XMLWriter
  • Affiche le buffer courant

XMLWriter::flush

xmlwriter_flush

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 1.0.0)

XMLWriter::flush -- xmlwriter_flush — Affiche le buffer courant

Description

Style orienté objet

public XMLWriter::flush(bool $empty = true): string|int

Style procédural

xmlwriter_flush(XMLWriter $writer, bool $empty = true): string|int

Affiche le buffer courant.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet 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.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.
8.0.0 | Cette fonction ne peut plus retourner false.


Termine l'élément courant

  • « XMLWriter::flush
  • XMLWriter::openMemory »
  • PHP Manual
  • XMLWriter
  • Termine l'élément courant

XMLWriter::fullEndElement

xmlwriter_full_end_element

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL xmlwriter >= 2.0.4)

XMLWriter::fullEndElement -- xmlwriter_full_end_element — Termine l'élément courant

Description

Style orienté objet

public XMLWriter::fullEndElement(): bool

Style procédural

xmlwriter_full_end_element(XMLWriter $writer): bool

Termine l'élément XML courant. Écrit une balise de fin même si l'élément est vide.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet 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.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.

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
  • 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, PHP 8, 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

public XMLWriter::openMemory(): bool

Style procédural

xmlwriter_open_memory(): XMLWriter|false

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 nouvelle instance de XMLWriter pour une utilisation future avec les fonctions xmlwriter en cas de succès, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | Cette fonction retourne désormais une instance de XMLWriter en cas de succès. Auparavant, une ressource était retournée dans ce cas.

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
  • 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, PHP 8, 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

public XMLWriter::openUri(string $uri): bool

Style procédural

xmlwriter_open_uri(string $uri): XMLWriter|false

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 nouvelle instance de XMLWriter pour une utilisation future avec les fonctions xmlwriter en cas de succès, ou false si une erreur survient.

Historique

Version | Description
8.0.0 | Cette fonction retourne désormais une instance de XMLWriter en cas de succès. Auparavant, une ressource était retournée dans ce cas.

Exemples

Exemple #1 Écrire directement de l'XML

Il est possible d'écrire directement de l'XML en utilisant l' enveloppe de flux php://output.

<?php
$out =new XMLWriter();
$out->openURI('php://output');
?>

Notes

Note:

Sur Windows, les fichiers ouvert avec cette fonction sont vérouiller jusqu'à ce que l'objet XMLWriter est libéré.

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::setIndent »
  • PHP Manual
  • XMLWriter
  • Retourne le buffer courant

XMLWriter::outputMemory

xmlwriter_output_memory

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::outputMemory -- xmlwriter_output_memory — Retourne le buffer courant

Description

Style orienté objet

public XMLWriter::outputMemory(bool $flush = true): string

Style procédural

xmlwriter_output_memory(XMLWriter $writer, bool $flush = true): string

Retourne le buffer courant.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet 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.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.

Voir aussi

  • XMLWriter::flush() - Affiche le buffer courant


Active ou non l'indentation

  • « XMLWriter::outputMemory
  • XMLWriter::setIndentString »
  • PHP Manual
  • XMLWriter
  • Active ou non l'indentation

XMLWriter::setIndent

xmlwriter_set_indent

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::setIndent -- xmlwriter_set_indent — Active ou non l'indentation

Description

Style orienté objet

public XMLWriter::setIndent(bool $enable): bool

Style procédural

xmlwriter_set_indent(XMLWriter $writer, bool $enable): bool

Active ou non l'indentation.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

enable

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.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.

Exemples

Exemple #1 XMLWriter::setIndent() et divers contenus

L'activation de l'indentation n'est pas conseillé pour le contenu diverse, car le caractère d'indentation sera aussi inséré avant les éléments en ligne.

<?php
$writer = new XMLWriter();
$writer->openMemory();
$writer->setIndent(2);
$writer->startDocument();
$writer->startElement('p');
$writer->text('before');
$writer->writeElement('a', 'element');
$writer->text('after');
$writer->endElement();
$writer->endDocument();
echo $writer->outputMemory();
?>

L'exemple ci-dessus va afficher :

<?xml version="1.0"?>
<p>before <a>element</a>
after</p>

Notes

Note:

L'indentation est réinitialisé quand un XMLWriter est ouvert.

Voir aussi

  • XMLWriter::setIndentString() - Définit la chaîne à utiliser pour l'indentation


Définit la chaîne à utiliser pour l'indentation

  • « XMLWriter::setIndent
  • XMLWriter::startAttribute »
  • PHP Manual
  • XMLWriter
  • Définit la chaîne à utiliser pour l'indentation

XMLWriter::setIndentString

xmlwriter_set_indent_string

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::setIndentString -- xmlwriter_set_indent_string — Définit la chaîne à utiliser pour l'indentation

Description

Style orienté objet

public XMLWriter::setIndentString(string $indentation): bool

Style procédural

xmlwriter_set_indent_string(XMLWriter $writer, string $indentation): bool

Définit la chaîne qui sera utilisée pour indenter chaque élément/attribut d'un document XML.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

indentation

La chaîne pour l'indentation.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.

Notes

Note:

L'indentation est réinitialisé quand un XMLWriter est ouvert.

Voir aussi

  • XMLWriter::setIndent() - Active ou non l'indentation


Crée un attribut

  • « XMLWriter::setIndentString
  • XMLWriter::startAttributeNs »
  • PHP Manual
  • XMLWriter
  • Crée un attribut

XMLWriter::startAttribute

xmlwriter_start_attribute

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startAttribute -- xmlwriter_start_attribute — Crée un attribut

Description

Style orienté objet

public XMLWriter::startAttribute(string $name): bool

Style procédural

xmlwriter_start_attribute(XMLWriter $writer, string $name): bool

Commence un attribut.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet 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.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.

Exemples

Exemple #1 Utilisation Basique de XMLWriter::startAttribute()

<?php
$writer = new XMLWriter;
$writer->openURI('php://output');
$writer->startDocument('1.0', 'UTF-8');
$writer->startElement('element');
$writer->startAttribute('attribute');
$writer->text('value');
$writer->endAttribute();
$writer->endElement();
$writer->endDocument();

Résultat de l'exemple ci-dessus est similaire à :

<?xml version="1.0" encoding="UTF-8"?>
<element attribute="value"/>

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 un attribut pour l'espace de noms

  • « XMLWriter::startAttribute
  • XMLWriter::startCdata »
  • PHP Manual
  • XMLWriter
  • Crée un attribut pour l'espace de noms

XMLWriter::startAttributeNs

xmlwriter_start_attribute_ns

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startAttributeNs -- xmlwriter_start_attribute_ns — Crée un attribut pour l'espace de noms

Description

Style orienté objet

public XMLWriter::startAttributeNs(?string $prefix, string $name, ?string $namespace): bool

Style procédural

xmlwriter_start_attribute_ns(
XMLWriter $writer,
?string $prefix,
string $name,
?string $namespace
): bool

Crée un attribut pour l'espace de noms.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet 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.

namespace

L'URI de l'espace de noms. Si le namespace vaut null, la déclaration de l'espace de noms sera omise.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.
8.0.0 | prefix est désormais nullable.

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 une balise CDATA

  • « XMLWriter::startAttributeNs
  • XMLWriter::startComment »
  • PHP Manual
  • XMLWriter
  • Crée une balise CDATA

XMLWriter::startCdata

xmlwriter_start_cdata

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startCdata -- xmlwriter_start_cdata — Crée une balise CDATA

Description

Style orienté objet

public XMLWriter::startCdata(): bool

Style procédural

xmlwriter_start_cdata(XMLWriter $writer): bool

Commence un bloc CDATA.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet 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.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.

Voir aussi

  • XMLWriter::endCdata() - Termine un bloc CDATA
  • XMLWriter::writeCdata() - Écrit un bloc CDATA


Crée un commentaire

  • « XMLWriter::startCdata
  • XMLWriter::startDocument »
  • PHP Manual
  • XMLWriter
  • Crée un commentaire

XMLWriter::startComment

xmlwriter_start_comment

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 1.0.0)

XMLWriter::startComment -- xmlwriter_start_comment — Crée un commentaire

Description

Style orienté objet

public XMLWriter::startComment(): bool

Style procédural

xmlwriter_start_comment(XMLWriter $writer): bool

Commence un commentaire.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet 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.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.

Voir aussi

  • XMLWriter::endComment() - Termine un commentaire
  • XMLWriter::writeComment() - Écrit un commentaire


Crée un document

  • « XMLWriter::startComment
  • XMLWriter::startDtd »
  • PHP Manual
  • XMLWriter
  • Crée un document

XMLWriter::startDocument

xmlwriter_start_document

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startDocument -- xmlwriter_start_document — Crée un document

Description

Style orienté objet

public XMLWriter::startDocument(?string $version = "1.0", ?string $encoding = null, ?string $standalone = null): bool

Style procédural

xmlwriter_start_document(
XMLWriter $writer,
?string $version = "1.0",
?string $encoding = null,
?string $standalone = null
): bool

Commence un document.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet 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.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.

Voir aussi

  • XMLWriter::endDocument() - Termine le document courant


Crée une DTD

  • « XMLWriter::startDocument
  • XMLWriter::startDtdAttlist »
  • PHP Manual
  • XMLWriter
  • Crée une DTD

XMLWriter::startDtd

xmlwriter_start_dtd

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startDtd -- xmlwriter_start_dtd — Crée une DTD

Description

Style orienté objet

public XMLWriter::startDtd(string $qualifiedName, ?string $publicId = null, ?string $systemId = null): bool

Style procédural

xmlwriter_start_dtd(
XMLWriter $writer,
string $qualifiedName,
?string $publicId = null,
?string $systemId = null
): bool

Commence une DTD.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet 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.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.

Voir aussi

  • XMLWriter::endDtd() - Termine la DTD courante
  • XMLWriter::writeDtd() - Écrit une DTD


Crée une liste d'attributs pour la DTD

  • « XMLWriter::startDtd
  • XMLWriter::startDtdElement »
  • PHP Manual
  • XMLWriter
  • Crée une liste d'attributs pour la DTD

XMLWriter::startDtdAttlist

xmlwriter_start_dtd_attlist

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startDtdAttlist -- xmlwriter_start_dtd_attlist — Crée une liste d'attributs pour la DTD

Description

Style orienté objet

public XMLWriter::startDtdAttlist(string $name): bool

Style procédural

xmlwriter_start_dtd_attlist(XMLWriter $writer, string $name): bool

Crée une liste d'attributs pour la DTD.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet 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.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.

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
  • XMLWriter
  • Crée un élément DTD

XMLWriter::startDtdElement

xmlwriter_start_dtd_element

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startDtdElement -- xmlwriter_start_dtd_element — Crée un élément DTD

Description

Style orienté objet

public XMLWriter::startDtdElement(string $qualifiedName): bool

Style procédural

xmlwriter_start_dtd_element(XMLWriter $writer, string $qualifiedName): bool

Commence un élément DTD.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet 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.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.

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::startElement »
  • PHP Manual
  • XMLWriter
  • Crée une entité DTD

XMLWriter::startDtdEntity

xmlwriter_start_dtd_entity

(PHP 5 >= 5.2.1, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startDtdEntity -- xmlwriter_start_dtd_entity — Crée une entité DTD

Description

Style orienté objet

public XMLWriter::startDtdEntity(string $name, bool $isParam): bool

Style procédural

xmlwriter_start_dtd_entity(XMLWriter $writer, string $name, bool $isParam): bool

Commence une entité DTD.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet 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.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.

Voir aussi

  • XMLWriter::endDtdEntity() - Termine l'entité de la DTD courante
  • XMLWriter::writeDtdEntity() - Écrit une entité DTD


Crée un élément

  • « XMLWriter::startDtdEntity
  • XMLWriter::startElementNs »
  • PHP Manual
  • XMLWriter
  • Crée un élément

XMLWriter::startElement

xmlwriter_start_element

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startElement -- xmlwriter_start_element — Crée un élément

Description

Style orienté objet

public XMLWriter::startElement(string $name): bool

Style procédural

xmlwriter_start_element(XMLWriter $writer, string $name): bool

Commence un élément.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet 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.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.

Voir aussi

  • XMLWriter::endElement() - Termine l'élément courant
  • XMLWriter::writeElement() - Écrit un élément


Crée un élément d'un espace de noms

  • « XMLWriter::startElement
  • XMLWriter::startPi »
  • PHP Manual
  • XMLWriter
  • Crée un élément d'un espace de noms

XMLWriter::startElementNs

xmlwriter_start_element_ns

(PHP 5 >= 5.1.2, PHP 7, PHP 8, 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

public XMLWriter::startElementNs(?string $prefix, string $name, ?string $namespace): bool

Style procédural

xmlwriter_start_element_ns(
XMLWriter $writer,
?string $prefix,
string $name,
?string $namespace
): bool

Crée un élément d'un espace de noms.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

prefix

Le préfixe de l'espace de noms. Si le paramètre prefix vaut null, l'espace de noms sera omis.

name

Le nom de l'élément.

namespace

L'URI de l'espace de noms. Si le namespace vaut null, la déclaration de l'espace de noms sera omise.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.

Voir aussi

  • XMLWriter::endElement() - Termine l'élément courant
  • XMLWriter::writeElementNs() - Écrit un élément d'un espace de noms


Crée une balise PI

  • « XMLWriter::startElementNs
  • XMLWriter::text »
  • PHP Manual
  • XMLWriter
  • Crée une balise PI

XMLWriter::startPi

xmlwriter_start_pi

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::startPi -- xmlwriter_start_pi — Crée une balise PI

Description

Style orienté objet

public XMLWriter::startPi(string $target): bool

Style procédural

xmlwriter_start_pi(XMLWriter $writer, string $target): bool

Commence une balise d'instruction.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet 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.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.

Voir aussi

  • XMLWriter::endPi() - Termine le PI courant
  • XMLWriter::writePi() - Écrit la balise PI


Écrit du texte

  • « XMLWriter::startPi
  • XMLWriter::writeAttribute »
  • PHP Manual
  • XMLWriter
  • Écrit du texte

XMLWriter::text

xmlwriter_text

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::text -- xmlwriter_text — Écrit du texte

Description

Style orienté objet

public XMLWriter::text(string $content): bool

Style procédural

xmlwriter_text(XMLWriter $writer, string $content): bool

Écrit du texte.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

content

Le contenu du texte. Les caractères <, >, & et " sont écrit en tant que références d'entités (c.à.d. &lt;, &gt;, &amp; et &quot;, respectivement). Tous les autres caractères ' inclus sont écrit littéralement. Pour écrire les caractères XML spéciaux littéralement, ou pour écrire des références d'entités litérales, xmlwriter_write_raw() doit être utilisé.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.


Écrit un attribut

  • « XMLWriter::text
  • XMLWriter::writeAttributeNs »
  • PHP Manual
  • XMLWriter
  • Écrit un attribut

XMLWriter::writeAttribute

xmlwriter_write_attribute

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeAttribute -- xmlwriter_write_attribute — Écrit un attribut

Description

Style orienté objet

public XMLWriter::writeAttribute(string $name, string $value): bool

Style procédural

xmlwriter_write_attribute(XMLWriter $writer, string $name, string $value): bool

Écrit un attribut.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet 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.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.

Exemples

Exemple #1 Mélanger des Sous-éléments et Attributs

Lors de l'écriture de sous-éléments avec des attributs mélangé, toute tentative d'écrires des attributs après le premier sous-élément échouera et retournera false.

<?php
$xml = new XMLWriter();
$xml->openMemory();

$xml->startElement('element');
$xml->writeAttribute('attr1', '0');
$xml->writeElement('subelem', '0');
var_dump($xml->writeAttribute('attr2', '0'));
$xml->endElement();

echo $xml->flush();
?>

L'exemple ci-dessus va afficher :

bool(false)
<element attr1="0"><subelem>0</subelem></element>

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 attribut d'un espace de noms

  • « XMLWriter::writeAttribute
  • XMLWriter::writeCdata »
  • PHP Manual
  • XMLWriter
  • Écrit un attribut d'un espace de noms

XMLWriter::writeAttributeNs

xmlwriter_write_attribute_ns

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeAttributeNs -- xmlwriter_write_attribute_ns — Écrit un attribut d'un espace de noms

Description

Style orienté objet

public XMLWriter::writeAttributeNs(
?string $prefix,
string $name,
?string $namespace,
string $value
): bool

Style procédural

xmlwriter_write_attribute_ns(
XMLWriter $writer,
?string $prefix,
string $name,
?string $namespace,
string $value
): bool

Écrit un attribut d'un espace de noms.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

prefix

Le préfixe de l'espace de noms. Si le paramètre prefix vaut null, l'espace de noms sera omis.

name

Le nom de l'attribut.

namespace

L'URI de l'espace de noms. Si le namespace vaut null, la déclaration de l'espace de noms sera omise.

value

La valeur de l'attribut.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.

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 bloc CDATA

  • « XMLWriter::writeAttributeNs
  • XMLWriter::writeComment »
  • PHP Manual
  • XMLWriter
  • Écrit un bloc CDATA

XMLWriter::writeCdata

xmlwriter_write_cdata

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeCdata -- xmlwriter_write_cdata — Écrit un bloc CDATA

Description

Style orienté objet

public XMLWriter::writeCdata(string $content): bool

Style procédural

xmlwriter_write_cdata(XMLWriter $writer, string $content): bool

Écrit un bloc CDATA.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet 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.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.

Exemples

Exemple #1 Utilisation Basique de xmlwriter_write_cdata()

<?php
// set up the document
$xml = new XmlWriter();
$xml->openMemory();
$xml->setIndent(true);
$xml->startDocument('1.0', 'UTF-8');
$xml->startElement('mydoc');
$xml->startElement('myele');

// CData output
$xml->startElement('mycdataelement');
$xml->writeCData("text for inclusion as CData");
$xml->endElement();

// end the document and output
$xml->endElement();
$xml->endElement();
echo $xml->outputMemory(true);
?>

L'exemple ci-dessus va afficher :

<mydoc>
 <myele>
  <mycdataelement><![CDATA[text for inclusion as CData]?]></mycdataelement>
 </myele>
</mydoc>

Voir aussi

  • XMLWriter::startCdata() - Crée une balise CDATA
  • XMLWriter::endCdata() - Termine un bloc CDATA


Écrit un commentaire

  • « XMLWriter::writeCdata
  • XMLWriter::writeDtd »
  • PHP Manual
  • XMLWriter
  • Écrit un commentaire

XMLWriter::writeComment

xmlwriter_write_comment

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeComment -- xmlwriter_write_comment — Écrit un commentaire

Description

Style orienté objet

public XMLWriter::writeComment(string $content): bool

Style procédural

xmlwriter_write_comment(XMLWriter $writer, string $content): bool

Écrit un commentaire.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet 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.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.

Voir aussi

  • XMLWriter::startComment() - Crée un commentaire
  • XMLWriter::endComment() - Termine un commentaire


Écrit une DTD

  • « XMLWriter::writeComment
  • XMLWriter::writeDtdAttlist »
  • PHP Manual
  • XMLWriter
  • Écrit une DTD

XMLWriter::writeDtd

xmlwriter_write_dtd

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDtd -- xmlwriter_write_dtd — Écrit une DTD

Description

Style orienté objet

public XMLWriter::writeDtd(
string $name,
?string $publicId = null,
?string $systemId = null,
?string $content = null
): bool

Style procédural

xmlwriter_write_dtd(
XMLWriter $writer,
string $name,
?string $publicId = null,
?string $systemId = null,
?string $content = null
): bool

Écrit une DTD.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet 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.

content

Le contenu de la DTD.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.

Voir aussi

  • XMLWriter::startDtd() - Crée une DTD
  • XMLWriter::endDtd() - Termine la DTD courante


Écrit une liste d'attributs DTD

  • « XMLWriter::writeDtd
  • XMLWriter::writeDtdElement »
  • PHP Manual
  • XMLWriter
  • Écrit une liste d'attributs DTD

XMLWriter::writeDtdAttlist

xmlwriter_write_dtd_attlist

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDtdAttlist -- xmlwriter_write_dtd_attlist — Écrit une liste d'attributs DTD

Description

Style orienté objet

public XMLWriter::writeDtdAttlist(string $name, string $content): bool

Style procédural

xmlwriter_write_dtd_attlist(XMLWriter $writer, string $name, string $content): bool

Écrit une liste d'attribut DTD.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet 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.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.

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
  • XMLWriter
  • Écrit un élément DTD

XMLWriter::writeDtdElement

xmlwriter_write_dtd_element

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDtdElement -- xmlwriter_write_dtd_element — Écrit un élément DTD

Description

Style orienté objet

public XMLWriter::writeDtdElement(string $name, string $content): bool

Style procédural

xmlwriter_write_dtd_element(XMLWriter $writer, string $name, string $content): bool

Écrit un élément DTD.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet 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.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.

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::writeElement »
  • PHP Manual
  • XMLWriter
  • Écrit une entité DTD

XMLWriter::writeDtdEntity

xmlwriter_write_dtd_entity

(PHP 5 >= 5.2.1, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDtdEntity -- xmlwriter_write_dtd_entity — Écrit une entité DTD

Description

Style orienté objet

public XMLWriter::writeDtdEntity(
string $name,
string $content,
bool $isParam = false,
?string $publicId = null,
?string $systemId = null,
?string $notationData = null
): bool

Style procédural

xmlwriter_write_dtd_entity(
XMLWriter $writer,
string $name,
string $content,
bool $isParam = false,
?string $publicId = null,
?string $systemId = null,
?string $notationData = null
): bool

Écrit une entité DTD.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet 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.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.
8.0.0 | publicId, systemId et notationData sont désormais nullable.

Voir aussi

  • XMLWriter::startDtdEntity() - Crée une entité DTD
  • XMLWriter::endDtdEntity() - Termine l'entité de la DTD courante


Écrit un élément

  • « XMLWriter::writeDtdEntity
  • XMLWriter::writeElementNs »
  • PHP Manual
  • XMLWriter
  • Écrit un élément

XMLWriter::writeElement

xmlwriter_write_element

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeElement -- xmlwriter_write_element — Écrit un élément

Description

Style orienté objet

public XMLWriter::writeElement(string $name, ?string $content = null): bool

Style procédural

xmlwriter_write_element(XMLWriter $writer, string $name, ?string $content = null): bool

Écrit un élément.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet 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
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.

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 un élément d'un espace de noms

  • « XMLWriter::writeElement
  • XMLWriter::writePi »
  • PHP Manual
  • XMLWriter
  • Écrit un élément d'un espace de noms

XMLWriter::writeElementNs

xmlwriter_write_element_ns

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writeElementNs -- xmlwriter_write_element_ns — Écrit un élément d'un espace de noms

Description

Style orienté objet

public XMLWriter::writeElementNs(
?string $prefix,
string $name,
?string $namespace,
?string $content = null
): bool

Style procédural

xmlwriter_write_element_ns(
XMLWriter $writer,
?string $prefix,
string $name,
?string $namespace,
?string $content = null
): bool

Écrit un élément d'un espace de noms.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

prefix

Le préfixe de l'espace de noms. Si le paramètre prefix vaut null, l'espace de noms sera omis.

name

Le nom de l'élément.

namespace

L'URI de l'espace de noms. Si le namespace vaut null, la déclaration de l'espace de noms sera omise.

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
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.

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 la balise PI

  • « XMLWriter::writeElementNs
  • XMLWriter::writeRaw »
  • PHP Manual
  • XMLWriter
  • Écrit la balise PI

XMLWriter::writePi

xmlwriter_write_pi

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::writePi -- xmlwriter_write_pi — Écrit la balise PI

Description

Style orienté objet

public XMLWriter::writePi(string $target, string $content): bool

Style procédural

xmlwriter_write_pi(XMLWriter $writer, string $target, string $content): bool

Écrit la balise PI.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet 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.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.

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
  • XMLWriter
  • Écrit un texte XML brut

XMLWriter::writeRaw

xmlwriter_write_raw

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL xmlwriter >= 2.0.4)

XMLWriter::writeRaw -- xmlwriter_write_raw — Écrit un texte XML brut

Description

Style orienté objet

public XMLWriter::writeRaw(string $content): bool

Style procédural

xmlwriter_write_raw(XMLWriter $writer, string $content): bool

Écrit un texte XML brut.

Liste de paramètres

writer

Uniquement pour les appels procéduraux. L'instance XMLWriter qui est modifiée. Cet objet 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.

Historique

Version | Description
8.0.0 | writer attend une instance de XMLWriter désormais; auparavant, une resource était attendu.

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
    • XSLTProcessor::transformToUri — Transforme en URI
    • XSLTProcessor::transformToXml — Transformer 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 passer l'option de configuration --with-libxml, ou antérieur à PHP 7.4 l'option de configuration --enable-libxml, bien que ceci est accomplie implicitement car libxml est activé 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 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 (int)
XSL_CLONE_NEVER (int)
XSL_CLONE_ALWAYS (int)
LIBXSLT_VERSION (int)
Version libxslt, par exemple : 10117.
LIBXSLT_DOTTED_VERSION (string)
Version libxslt, par exemple : 1.1.17.
LIBEXSLT_VERSION (int)
Version libexslt, par exemple : 813.
LIBEXSLT_DOTTED_VERSION (string)
Version libexslt, par exemple : 1.1.17.
XSL_SECPREF_NONE (int)
Désactive toutes les restrictions de sécurité.
XSL_SECPREF_READ_FILE (int)
Interdit la lecture de fichiers.
XSL_SECPREF_WRITE_FILE (int)
Interdit l'écriture de fichiers.
XSL_SECPREF_CREATE_DIRECTORY (int)
Interdit la création de répertoires.
XSL_SECPREF_READ_NETWORK (int)
Interdit la lecture de fichiers via le réseau.
XSL_SECPREF_WRITE_NETWORK (int)
Interdit l'écriture de fichiers via le réseau.
XSL_SECPREF_DEFAULT (int)
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);
}

?>

Résultat de l'exemple ci-dessus est 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, PHP 8)

Introduction

Synopsis de la classe

class XSLTProcessor {
/* Méthodes */
public getParameter(string $namespace, string $name): string|false
public getSecurityPrefs(): int
public hasExsltSupport(): bool
public importStylesheet(object $stylesheet): bool
public registerPHPFunctions(array|string|null $functions = null): void
public removeParameter(string $namespace, string $name): bool
public setParameter(string $namespace, string $name, string $value): bool
public setParameter(string $namespace, array $options): bool
public setProfiling(?string $filename): true
public setSecurityPrefs(int $preferences): int
public transformToDoc(object $document, ?string $returnClass = null): object|false
public transformToUri(object $document, string $uri): int
public transformToXml(object $document): string|null|false
}

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
  • XSLTProcessor::transformToUri — Transforme en URI
  • XSLTProcessor::transformToXml — Transformer 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, PHP 8)

XSLTProcessor::__construct — Crée un nouvel objet XSLTProcessor

Description

XSLTProcessor::__construct()

Crée un nouvel objet XSLTProcessor.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

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, PHP 8)

XSLTProcessor::getParameter — Récupère la valeur d'un paramètre

Description

public XSLTProcessor::getParameter(string $namespace, string $name): string|false

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

namespace

L'URI de l'espace de noms du paramètre XSLT.

name

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, PHP 7, PHP 8)

XSLTProcessor::getSecurityPrefs — Récupère les préférences de sécurité

Description

public XSLTProcessor::getSecurityPrefs(): int

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, PHP 8)

XSLTProcessor::hasExsltSupport — Indique si PHP utilise EXSLT

Description

public XSLTProcessor::hasExsltSupport(): bool

Cette méthode détermine si PHP a été compilé avec la bibliothèque » EXSLT.

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 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, PHP 8)

XSLTProcessor::importStylesheet — Importe une feuille de style

Description

public XSLTProcessor::importStylesheet(object $stylesheet): bool

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.


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, PHP 8)

XSLTProcessor::registerPHPFunctions — Active l'utilisation de PHP dans les feuilles de styles XSLT

Description

public XSLTProcessor::registerPHPFunctions(array|string|null $functions = null): void

Cette méthode permet d'utiliser les fonctions PHP en tant que fonctions XSLT dans les feuilles de style XSL.

Liste de paramètres

functions

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 = new DOMDocument();
$xmldoc->loadXML($xml);
$xsldoc = new DOMDocument();
$xsldoc->loadXML($xsl);

$proc = new XSLTProcessor();
$proc->registerPHPFunctions();
$proc->importStyleSheet($xsldoc);
echo $proc->transformToXML($xmldoc);
?>


Efface un paramètre

  • « XSLTProcessor::registerPHPFunctions
  • XSLTProcessor::setParameter »
  • PHP Manual
  • XSLTProcessor
  • Efface un paramètre

XSLTProcessor::removeParameter

(PHP 5, PHP 7, PHP 8)

XSLTProcessor::removeParameter — Efface un paramètre

Description

public XSLTProcessor::removeParameter(string $namespace, string $name): bool

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

namespace

L'URI de l'espace de noms du paramètre XSLT.

name

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, PHP 8)

XSLTProcessor::setParameter — Définit la valeur d'un paramètre

Description

public XSLTProcessor::setParameter(string $namespace, string $name, string $value): bool
public XSLTProcessor::setParameter(string $namespace, array $options): bool

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.

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, PHP 7, PHP 8)

XSLTProcessor::setProfiling — Spécifie le fichier de profilage

Description

public XSLTProcessor::setProfiling(?string $filename): true

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

Retourne toujours true.

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, PHP 7, PHP 8)

XSLTProcessor::setSecurityPrefs — Définit les préférences de sécurité

Description

public XSLTProcessor::setSecurityPrefs(int $preferences): int

Définit les préférences de sécurité.

Liste de paramètres

preferences

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

  • « XSLTProcessor::setSecurityPrefs
  • XSLTProcessor::transformToUri »
  • PHP Manual
  • XSLTProcessor
  • Transforme en un document

XSLTProcessor::transformToDoc

(PHP 5, PHP 7, PHP 8)

XSLTProcessor::transformToDoc — Transforme en un document

Description

public XSLTProcessor::transformToDoc(object $document, ?string $returnClass = null): object|false

Transforme le nœud source en un document (par ex. DOMDocument) en y appliquant la feuille de style donnée par la méthode XSLTProcessor::importStylesheet().

Liste de paramètres

document

L'objet DOMDocument ou SimpleXMLElement ou un objet libxml-compatible à transformer.

returnClass

Ce paramètre facultatif peut être utilisé afin que XSLTProcessor::transformToDoc() renvoie un objet de la classe spécifiée. Cette classe doit soit étendre la classe de document, soit être la même classe que celle de document.

Valeurs de retour

Le document 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() - Transformer en XML


Transforme en URI

  • « XSLTProcessor::transformToDoc
  • XSLTProcessor::transformToXml »
  • PHP Manual
  • XSLTProcessor
  • Transforme en URI

XSLTProcessor::transformToUri

(PHP 5, PHP 7, PHP 8)

XSLTProcessor::transformToUri — Transforme en URI

Description

public XSLTProcessor::transformToUri(object $document, string $uri): int

Transforme le nœud source en une URI en y appliquant la feuille de style donnée par la méthode XSLTProcessor::importStylesheet().

Liste de paramètres

document

L'objet DOMDocument ou SimpleXMLElement à 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
  • XSLTProcessor::transformToXml() - Transformer en XML


Transformer en XML

  • « XSLTProcessor::transformToUri
  • Extensions GUI »
  • PHP Manual
  • XSLTProcessor
  • Transformer en XML

XSLTProcessor::transformToXml

(PHP 5, PHP 7, PHP 8)

XSLTProcessor::transformToXml — Transformer en XML

Description

public XSLTProcessor::transformToXml(object $document): string|null|false

Transforme le nœud source en une chaîne en y appliquant une feuille de style donnée par la méthode xsltprocessor::importStylesheet().

Liste de paramètres

document

L'objet DOMDocument ou SimpleXMLElement à 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
  • XSLTProcessor::transformToUri() - Transforme en URI


Extensions GUI

  • UI
    • Introduction
    • Installation/Configuration
    • UI\Point — Represents a position (x,y)
    • UI\Size — Represents dimensions (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 dimensions (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 — Affiche un message d'erreur
    • 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 — Récupére les familles de polices
    • UI\quit — Quitte la boucle UI
    • UI\run — Entre dans la boucle UI
  • 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

Cette extension encapsule libui afin de fournir une API OO pour le développement multi-plateforme d’interfaces utilisateur ayant un aspect natif.


  • « Introduction
  • Pré-requis »
  • PHP Manual
  • UI
  • Installation/Configuration

Installation/Configuration

Sommaire

  • Pré-requis
  • Installation


Pré-requis

L'installation nécessite la bibliothèque libui et PHP 7 ou une version plus récente.

Cette extension nécessite l'installation de » la bibliothèque libui version 0.1.0 ou une version plus récente. Consultez la documentation libui pour obtenir une liste des 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 : » https://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)

(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 class UI\Point {
/* Propriétés */
public $x;
public $y;
/* Constructor */
public __construct(float $x, float $y)
/* Méthodes */
public static at(float $point): UI\Point
public static at(UI\Size $size): UI\Point
public getX(): float
public getY(): float
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

(UI 1.0.2)

UI\Point::at — Size Coercion

Description

public static UI\Point::at(float $point): UI\Point
public static UI\Point::at(UI\Size $size): UI\Point

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

(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

(UI 0.9.9)

UI\Point::getX — Retrieves X

Description

public UI\Point::getX(): float

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

(UI 0.9.9)

UI\Point::getY — Retrieves Y

Description

public UI\Point::getY(): float

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

(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

(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 dimensions (width, height)

(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 class UI\Size {
/* Propriétés */
public $width;
public $height;
/* Constructor */
public __construct(float $width, float $height)
/* Méthodes */
public getHeight(): float
public getWidth(): float
public static of(float $size): UI\Size
public static of(UI\Point $point): UI\Size
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

(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

(UI 0.9.9)

UI\Size::getHeight — Retrieves Height

Description

public UI\Size::getHeight(): float

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

(UI 0.9.9)

UI\Size::getWidth — Retrives Width

Description

public UI\Size::getWidth(): float

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

(UI 1.0.2)

UI\Size::of — Point Coercion

Description

public static UI\Size::of(float $size): UI\Size
public static UI\Size::of(UI\Point $point): UI\Size

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

(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

(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

(UI 0.9.9)

Introduction

Represents a UI Window

Synopsis de la classe

class UI\Window extends UI\Control {
/* Propriétés */
protected $controls;
/* Constructor */
public __construct(string $title, Size $size, bool $menu = false)
/* Méthodes */
public add(UI\Control $control)
public error(string $title, string $msg)
public getSize(): UI\Size
public getTitle(): string
public hasBorders(): bool
public hasMargin(): bool
public isFullScreen(): bool
public msg(string $title, string $msg)
protected onClosing(): int
public open(): string
public save(): string
public setBorders(bool $borders)
public setFullScreen(bool $full)
public setMargin(bool $margin)
public setSize(UI\Size $size)
public setTitle(string $title)
/* Méthodes héritées */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

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 — Affiche un message d'erreur
  • 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

(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

(UI 0.9.9)

UI\Window::__construct — Construct a new Window

Description

public UI\Window::__construct(string $title, Size $size, bool $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


Affiche un message d'erreur

  • « UI\Window::__construct
  • UI\Window::getSize »
  • PHP Manual
  • UI\Window
  • Affiche un message d'erreur

UI\Window::error

(UI 0.9.9)

UI\Window::error — Affiche un message d'erreur

Description

public UI\Window::error(string $title, string $msg)

Devrait montrer un message d'erreur

Liste de paramètres

title

Titre du message d'erreur

msg

Message d'erreur


Get Window Size

  • « UI\Window::error
  • UI\Window::getTitle »
  • PHP Manual
  • UI\Window
  • Get Window Size

UI\Window::getSize

(UI 0.9.9)

UI\Window::getSize — Get Window Size

Description

public UI\Window::getSize(): UI\Size

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

(UI 0.9.9)

UI\Window::getTitle — Get Title

Description

public UI\Window::getTitle(): string

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

(UI 0.9.9)

UI\Window::hasBorders — Border Detection

Description

public UI\Window::hasBorders(): bool

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

(UI 0.9.9)

UI\Window::hasMargin — Margin Detection

Description

public UI\Window::hasMargin(): bool

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

(UI 0.9.9)

UI\Window::isFullScreen — Full Screen Detection

Description

public UI\Window::isFullScreen(): bool

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

(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

(UI 0.9.9)

UI\Window::onClosing — Closing Callback

Description

protected UI\Window::onClosing(): int

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

(UI 0.9.9)

UI\Window::open — Open Dialog

Description

public UI\Window::open(): string

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

(UI 0.9.9)

UI\Window::save — Save Dialog

Description

public UI\Window::save(): string

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

(UI 0.9.9)

UI\Window::setBorders — Border Use

Description

public UI\Window::setBorders(bool $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

(UI 0.9.9)

UI\Window::setFullScreen — Full Screen Use

Description

public UI\Window::setFullScreen(bool $full)

Shall enable or disable the use of the full screen for this Window

Avertissement

Cette fonction est actuellement non documentée ; 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

(UI 0.9.9)

UI\Window::setMargin — Margin Use

Description

public UI\Window::setMargin(bool $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

(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

(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

(UI 0.9.9)

Introduction

This is the closed base class for all UI Controls.

Synopsis de la classe

final class UI\Control {
/* Méthodes */
public destroy()
public disable()
public enable()
public getParent(): UI\Control
public getTopLevel(): int
public hide()
public isEnabled(): bool
public isVisible(): bool
public setParent(UI\Control $parent)
public show()
}

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

(UI 0.9.9)

UI\Control::destroy — Destroy Control

Description

public UI\Control::destroy()

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

(UI 0.9.9)

UI\Control::disable — Disable Control

Description

public UI\Control::disable()

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

(UI 0.9.9)

UI\Control::enable — Enable Control

Description

public UI\Control::enable()

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

(UI 0.9.9)

UI\Control::getParent — Get Parent Control

Description

public UI\Control::getParent(): UI\Control

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

(UI 0.9.9)

UI\Control::getTopLevel — Get Top Level

Description

public UI\Control::getTopLevel(): int

Avertissement

Cette fonction est actuellement non documentée ; 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

(UI 0.9.9)

UI\Control::hide — Hide Control

Description

public UI\Control::hide()

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

(UI 0.9.9)

UI\Control::isEnabled — Determine if Control is enabled

Description

public UI\Control::isEnabled(): bool

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

(UI 0.9.9)

UI\Control::isVisible — Determine if Control is visible

Description

public UI\Control::isVisible(): bool

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

(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

(UI 0.9.9)

UI\Control::show — Control Show

Description

public UI\Control::show()

Shall show this Control

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Menu

(UI 0.9.9)

Introduction

Menus must be constructed before the first Window, and can be shown on any Window

Synopsis de la classe

class UI\Menu {
/* Constructor */
public __construct(string $name)
/* Méthodes */
public append(string $name, string $type = UI\MenuItem::class): UI\MenuItem
public appendAbout(string $type = UI\MenuItem::class): UI\MenuItem
public appendCheck(string $name, string $type = UI\MenuItem::class): UI\MenuItem
public appendPreferences(string $type = UI\MenuItem::class): UI\MenuItem
public appendQuit(string $type = UI\MenuItem::class): UI\MenuItem
public appendSeparator()
}

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

(UI 0.9.9)

UI\Menu::append — Append Menu Item

Description

public UI\Menu::append(string $name, string $type = UI\MenuItem::class): UI\MenuItem

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

(UI 0.9.9)

UI\Menu::appendAbout — Append About Menu Item

Description

public UI\Menu::appendAbout(string $type = UI\MenuItem::class): UI\MenuItem

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

(UI 0.9.9)

UI\Menu::appendCheck — Append Checkable Menu Item

Description

public UI\Menu::appendCheck(string $name, string $type = UI\MenuItem::class): UI\MenuItem

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

(UI 0.9.9)

UI\Menu::appendPreferences — Append Preferences Menu Item

Description

public UI\Menu::appendPreferences(string $type = UI\MenuItem::class): UI\MenuItem

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

(UI 0.9.9)

UI\Menu::appendQuit — Append Quit Menu Item

Description

public UI\Menu::appendQuit(string $type = UI\MenuItem::class): UI\MenuItem

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

(UI 0.9.9)

UI\Menu::appendSeparator — Append Menu Item Separator

Description

public UI\Menu::appendSeparator()

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

(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

(UI 0.9.9)

Introduction

Menu Items should only be created by the Menu

Synopsis de la classe

class UI\MenuItem {
/* Méthodes */
public disable()
public enable()
public isChecked(): bool
protected onClick()
public setChecked(bool $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

(UI 0.9.9)

UI\MenuItem::disable — Disable Menu Item

Description

public UI\MenuItem::disable()

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

(UI 0.9.9)

UI\MenuItem::enable — Enable Menu Item

Description

public UI\MenuItem::enable()

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

(UI 0.9.9)

UI\MenuItem::isChecked — Detect Checked

Description

public UI\MenuItem::isChecked(): bool

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

(UI 0.9.9)

UI\MenuItem::onClick — On Click Callback

Description

protected UI\MenuItem::onClick()

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

(UI 0.9.9)

UI\MenuItem::setChecked — Set Checked

Description

public UI\MenuItem::setChecked(bool $checked)

Shall set the checked status of this Menu Item

Liste de paramètres

checked

The new status


Area

(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

class UI\Area extends UI\Control {
/* Constantes */
const int Ctrl;
const int Alt;
const int Shift;
const int Super;
const int Down;
const int Up;
/* Méthodes */
protected onDraw(
UI\Draw\Pen $pen,
UI\Size $areaSize,
UI\Point $clipPoint,
UI\Size $clipSize
)
protected onKey(string $key, int $ext, int $flags)
protected onMouse(UI\Point $areaPoint, UI\Size $areaSize, int $flags)
public redraw()
public scrollTo(UI\Point $point, UI\Size $size)
public setSize(UI\Size $size)
/* Méthodes héritées */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

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

(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

(UI 0.9.9)

UI\Area::onKey — Key Callback

Description

protected UI\Area::onKey(string $key, int $ext, int $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

(UI 0.9.9)

UI\Area::onMouse — Mouse Callback

Description

protected UI\Area::onMouse(UI\Point $areaPoint, UI\Size $areaSize, int $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

(UI 0.9.9)

UI\Area::redraw — Redraw Area

Description

public UI\Area::redraw()

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

(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

(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

(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 class UI\Executor {
/* Constructor */
public __construct()
public __construct(int $microseconds)
public __construct(int $seconds, int $microseconds)
/* Méthodes */
public kill(): void
abstract protected onExecute(): void
public setInterval(int $microseconds): bool
public setInterval(int $seconds, int $microseconds): bool
}

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

(UI 2.0.0)

UI\Executor::__construct — Construct a new Executor

Description

public UI\Executor::__construct()
public UI\Executor::__construct(int $microseconds)
public UI\Executor::__construct(int $seconds, int $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

(UI 2.0.0)

UI\Executor::kill — Stop Executor

Description

public 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

(UI 2.0.0)

UI\Executor::onExecute — Execution Callback

Description

abstract protected 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

(UI 2.0.0)

UI\Executor::setInterval — Interval Manipulation

Description

public UI\Executor::setInterval(int $microseconds): bool
public UI\Executor::setInterval(int $seconds, int $microseconds): bool

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

(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

class UI\Controls\Tab extends UI\Control {
/* Propriétés */
protected $controls;
/* Méthodes */
public append(string $name, UI\Control $control): int
public delete(int $index): bool
public hasMargin(int $page): bool
public insertAt(string $name, int $page, UI\Control $control)
public pages(): int
public setMargin(int $page, bool $margin)
/* Méthodes héritées */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

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

(UI 0.9.9)

UI\Controls\Tab::append — Append Page

Description

public UI\Controls\Tab::append(string $name, UI\Control $control): int

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

(UI 0.9.9)

UI\Controls\Tab::delete — Delete Page

Description

public UI\Controls\Tab::delete(int $index): bool

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

(UI 0.9.9)

UI\Controls\Tab::hasMargin — Margin Detection

Description

public UI\Controls\Tab::hasMargin(int $page): bool

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

(UI 0.9.9)

UI\Controls\Tab::insertAt — Insert Page

Description

public UI\Controls\Tab::insertAt(string $name, int $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

(UI 0.9.9)

UI\Controls\Tab::pages — Page Count

Description

public UI\Controls\Tab::pages(): int

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

(UI 0.9.9)

UI\Controls\Tab::setMargin — Set Margin

Description

public UI\Controls\Tab::setMargin(int $page, bool $margin)

Shall enable or disable margins on the selected page

Liste de paramètres

page

The page to select

margin

Margin switch


Check Control

(UI 0.9.9)

Introduction

A Check is a labelled checkable box

Synopsis de la classe

class UI\Controls\Check extends UI\Control {
/* Constructor */
public __construct(string $text)
/* Méthodes */
public getText(): string
public isChecked(): bool
protected onToggle()
public setChecked(bool $checked)
public setText(string $text)
/* Méthodes héritées */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

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

(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

(UI 0.9.9)

UI\Controls\Check::getText — Get Text

Description

public UI\Controls\Check::getText(): string

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

(UI 0.9.9)

UI\Controls\Check::isChecked — Checked Detection

Description

public UI\Controls\Check::isChecked(): bool

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

(UI 0.9.9)

UI\Controls\Check::onToggle — Toggle Callback

Description

protected UI\Controls\Check::onToggle()

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

(UI 0.9.9)

UI\Controls\Check::setChecked — Set Checked

Description

public UI\Controls\Check::setChecked(bool $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

(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

(UI 0.9.9)

Introduction

Represents a labelled clickable button

Synopsis de la classe

class UI\Controls\Button extends UI\Control {
/* Constructor */
public __construct(string $text)
/* Méthodes */
public getText(): string
protected onClick()
public setText(string $text)
/* Méthodes héritées */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

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

(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

(UI 0.9.9)

UI\Controls\Button::getText — Get Text

Description

public UI\Controls\Button::getText(): string

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

(UI 0.9.9)

UI\Controls\Button::onClick — Click Handler

Description

protected UI\Controls\Button::onClick()

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

(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

(UI 0.9.9)

Introduction

A Color Button is a button which displays a color picker when clicked

Synopsis de la classe

class UI\Controls\ColorButton extends UI\Control {
/* Méthodes */
public getColor(): UI\Color
protected onChange()
public setColor(UI\Draw\Color $color)
public setColor(int $color)
/* Méthodes héritées */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

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

(UI 0.9.9)

UI\Controls\ColorButton::getColor — Get Color

Description

public UI\Controls\ColorButton::getColor(): UI\Color

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

(UI 0.9.9)

UI\Controls\ColorButton::onChange — Change Handler

Description

protected UI\Controls\ColorButton::onChange()

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

(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(int $color)

Shall set the currently selected Color

Liste de paramètres

color

The new color


Label Control

(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

class UI\Controls\Label extends UI\Control {
/* Constructor */
public __construct(string $text)
/* Méthodes */
public getText(): string
public setText(string $text)
/* Méthodes héritées */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

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

(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

(UI 0.9.9)

UI\Controls\Label::getText — Get Text

Description

public UI\Controls\Label::getText(): string

Shall return the current text for this Label

Avertissement

Cette fonction est actuellement non documentée ; 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

(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

(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

class UI\Controls\Entry extends UI\Control {
/* Constantes */
const int Normal;
const int Password;
const int Search;
/* Constructor */
public __construct(int $type = UI\Controls\Entry::Normal)
/* Méthodes */
public getText(): string
public isReadOnly(): bool
protected onChange()
public setReadOnly(bool $readOnly)
public setText(string $text)
/* Méthodes héritées */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

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

(UI 0.9.9)

UI\Controls\Entry::__construct — Construct a new Entry

Description

public UI\Controls\Entry::__construct(int $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

(UI 0.9.9)

UI\Controls\Entry::getText — Get Text

Description

public UI\Controls\Entry::getText(): string

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

(UI 0.9.9)

UI\Controls\Entry::isReadOnly — Detect Read Only

Description

public UI\Controls\Entry::isReadOnly(): bool

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

(UI 0.9.9)

UI\Controls\Entry::onChange — Change Handler

Description

protected UI\Controls\Entry::onChange()

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

(UI 0.9.9)

UI\Controls\Entry::setReadOnly — Set Read Only

Description

public UI\Controls\Entry::setReadOnly(bool $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

(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

(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

class UI\Controls\MultilineEntry extends UI\Control {
/* Constantes */
const int Wrap;
const int NoWrap;
/* Constructor */
public __construct(int $type = ?)
/* Méthodes */
public append(string $text)
public getText(): string
public isReadOnly(): bool
protected onChange()
public setReadOnly(bool $readOnly)
public setText(string $text)
/* Méthodes héritées */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

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

(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

(UI 0.9.9)

UI\Controls\MultilineEntry::__construct — Construct a new Multiline Entry

Description

public UI\Controls\MultilineEntry::__construct(int $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

(UI 0.9.9)

UI\Controls\MultilineEntry::getText — Get Text

Description

public UI\Controls\MultilineEntry::getText(): string

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

(UI 0.9.9)

UI\Controls\MultilineEntry::isReadOnly — Read Only Detection

Description

public UI\Controls\MultilineEntry::isReadOnly(): bool

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

(UI 0.9.9)

UI\Controls\MultilineEntry::onChange — Change Handler

Description

protected UI\Controls\MultilineEntry::onChange()

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

(UI 0.9.9)

UI\Controls\MultilineEntry::setReadOnly — Set Read Only

Description

public UI\Controls\MultilineEntry::setReadOnly(bool $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

(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

(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

class UI\Controls\Spin extends UI\Control {
/* Constructor */
public __construct(int $min, int $max)
/* Méthodes */
public getValue(): int
protected onChange()
public setValue(int $value)
/* Méthodes héritées */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

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

(UI 0.9.9)

UI\Controls\Spin::__construct — Construct a new Spin

Description

public UI\Controls\Spin::__construct(int $min, int $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

(UI 0.9.9)

UI\Controls\Spin::getValue — Get Value

Description

public UI\Controls\Spin::getValue(): int

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

(UI 0.9.9)

UI\Controls\Spin::onChange — Change Handler

Description

protected UI\Controls\Spin::onChange()

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

(UI 0.9.9)

UI\Controls\Spin::setValue — Set Value

Description

public UI\Controls\Spin::setValue(int $value)

Set the value in this Spin

Liste de paramètres

value

The new value


Slider Control

(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

class UI\Controls\Slider extends UI\Control {
/* Constructor */
public __construct(int $min, int $max)
/* Méthodes */
public getValue(): int
protected onChange()
public setValue(int $value)
/* Méthodes héritées */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

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

(UI 0.9.9)

UI\Controls\Slider::__construct — Construct a new Slider

Description

public UI\Controls\Slider::__construct(int $min, int $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

(UI 0.9.9)

UI\Controls\Slider::getValue — Get Value

Description

public UI\Controls\Slider::getValue(): int

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

(UI 0.9.9)

UI\Controls\Slider::onChange — Change Handler

Description

protected UI\Controls\Slider::onChange()

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

(UI 0.9.9)

UI\Controls\Slider::setValue — Set Value

Description

public UI\Controls\Slider::setValue(int $value)

Shall set the value for this Slider

Liste de paramètres

value

The new value


Progress Control

(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

class UI\Controls\Progress extends UI\Control {
/* Méthodes */
public getValue(): int
public setValue(int $value)
/* Méthodes héritées */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

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

(UI 0.9.9)

UI\Controls\Progress::getValue — Get Value

Description

public UI\Controls\Progress::getValue(): int

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

(UI 0.9.9)

UI\Controls\Progress::setValue — Set Value

Description

public UI\Controls\Progress::setValue(int $value)

Shall set the value for this Progress bar

Liste de paramètres

value

An integer between 0 and 100 (inclusive)


Control Separator

(UI 0.9.9)

Introduction

A Separator represents a control separator, it has no other function.

Synopsis de la classe

class UI\Controls\Separator extends UI\Control {
/* Constantes */
const int Horizontal;
const int Vertical;
/* Constructor */
public __construct(int $type = UI\Controls\Separator::Horizontal)
/* Méthodes héritées */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

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

(UI 0.9.9)

UI\Controls\Separator::__construct — Construct a new Separator

Description

public UI\Controls\Separator::__construct(int $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

(UI 0.9.9)

Introduction

A Combo control represents a list of options, like the familiar select HTML element.

Synopsis de la classe

class UI\Controls\Combo extends UI\Control {
/* Méthodes */
public append(string $text)
public getSelected(): int
protected onSelected()
public setSelected(int $index)
/* Méthodes héritées */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

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

(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

(UI 0.9.9)

UI\Controls\Combo::getSelected — Get Selected Option

Description

public UI\Controls\Combo::getSelected(): int

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

(UI 0.9.9)

UI\Controls\Combo::onSelected — Selected Handler

Description

protected UI\Controls\Combo::onSelected()

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

(UI 0.9.9)

UI\Controls\Combo::setSelected — Set Selected Option

Description

public UI\Controls\Combo::setSelected(int $index)

Shall set the currently selected option in this Combo

Liste de paramètres

index

The index of the option to select


EdiableCombo Control

(UI 0.9.9)

Introduction

An Editable Combo is a Combo which allows the user to enter custom options

Synopsis de la classe

class UI\Controls\EditableCombo extends UI\Control {
/* Méthodes */
public append(string $text)
public getText(): string
protected onChange()
public setText(string $text)
/* Méthodes héritées */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

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

(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

(UI 0.9.9)

UI\Controls\EditableCombo::getText — Get Text

Description

public UI\Controls\EditableCombo::getText(): string

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

(UI 0.9.9)

UI\Controls\EditableCombo::onChange — Change Handler

Description

protected UI\Controls\EditableCombo::onChange()

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

(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

(UI 0.9.9)

Introduction

A Radio is similar to the radio input type familiar from HTML

Synopsis de la classe

class UI\Controls\Radio extends UI\Control {
/* Méthodes */
public append(string $text)
public getSelected(): int
protected onSelected()
public setSelected(int $index)
/* Méthodes héritées */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

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

(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

(UI 0.9.9)

UI\Controls\Radio::getSelected — Get Selected Option

Description

public UI\Controls\Radio::getSelected(): int

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

(UI 0.9.9)

UI\Controls\Radio::onSelected — Selected Handler

Description

protected UI\Controls\Radio::onSelected()

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

(UI 0.9.9)

UI\Controls\Radio::setSelected — Set Selected Option

Description

public UI\Controls\Radio::setSelected(int $index)

Shall set the currently selected option in this Radio

Liste de paramètres

index

The index of the option to select


Picker Control

(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

class UI\Controls\Picker extends UI\Control {
/* Constantes */
const int Date;
const int Time;
const int DateTime;
/* Constructor */
public __construct(int $type = UI\Controls\Picker::Date)
/* Méthodes héritées */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

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

(UI 0.9.9)

UI\Controls\Picker::__construct — Construct a new Picker

Description

public UI\Controls\Picker::__construct(int $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)

(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

class UI\Controls\Form extends UI\Control {
/* Propriétés */
protected $controls;
/* Méthodes */
public append(string $label, UI\Control $control, bool $stretchy = false): int
public delete(int $index): bool
public isPadded(): bool
public setPadded(bool $padded)
/* Méthodes héritées */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

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

(UI 0.9.9)

UI\Controls\Form::append — Append Control

Description

public UI\Controls\Form::append(string $label, UI\Control $control, bool $stretchy = false): int

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

(UI 0.9.9)

UI\Controls\Form::delete — Delete Control

Description

public UI\Controls\Form::delete(int $index): bool

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

(UI 0.9.9)

UI\Controls\Form::isPadded — Padding Detection

Description

public UI\Controls\Form::isPadded(): bool

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

(UI 0.9.9)

UI\Controls\Form::setPadded — Set Padding

Description

public UI\Controls\Form::setPadded(bool $padded)

Shall enable or disable padding on this Form

Liste de paramètres

padded


Control Grid (Arrangement)

(UI 0.9.9)

Introduction

A Grid is a control which is allows the arrangement of children into a grid

Synopsis de la classe

class UI\Controls\Grid extends UI\Control {
/* Constantes */
const int Fill;
const int Start;
const int Center;
const int End;
const int Leading;
const int Top;
const int Trailing;
const int Bottom;
/* Propriétés */
protected $controls;
/* Méthodes */
public append(
UI\Control $control,
int $left,
int $top,
int $xspan,
int $yspan,
bool $hexpand,
int $halign,
bool $vexpand,
int $valign
)
public isPadded(): bool
public setPadded(bool $padding)
/* Méthodes héritées */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

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

(UI 0.9.9)

UI\Controls\Grid::append — Append Control

Description

public UI\Controls\Grid::append(
UI\Control $control,
int $left,
int $top,
int $xspan,
int $yspan,
bool $hexpand,
int $halign,
bool $vexpand,
int $valign
)

Avertissement

Cette fonction est actuellement non documentée ; 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

(UI 0.9.9)

UI\Controls\Grid::isPadded — Padding Detection

Description

public UI\Controls\Grid::isPadded(): bool

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

(UI 0.9.9)

UI\Controls\Grid::setPadded — Set Padding

Description

public UI\Controls\Grid::setPadded(bool $padding)

Shall enable or disable padding for this Grid

Liste de paramètres

padding


Control Group (Arrangement)

(UI 0.9.9)

Introduction

A Group is a titled container for child controls

Synopsis de la classe

class UI\Controls\Group extends UI\Control {
/* Propriétés */
protected $controls;
/* Constructor */
public __construct(string $title)
/* Méthodes */
public append(UI\Control $control)
public getTitle(): string
public hasMargin(): bool
public setMargin(bool $margin)
public setTitle(string $title)
/* Méthodes héritées */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

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

(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

(UI 0.9.9)

UI\Controls\Group::getTitle — Get Title

Description

public UI\Controls\Group::getTitle(): string

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

(UI 0.9.9)

UI\Controls\Group::hasMargin — Margin Detection

Description

public UI\Controls\Group::hasMargin(): bool

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

(UI 0.9.9)

UI\Controls\Group::setMargin — Set Margin

Description

public UI\Controls\Group::setMargin(bool $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

(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)

(UI 0.9.9)

Introduction

A Box allows the arrangement of other controls

Synopsis de la classe

class UI\Controls\Box extends UI\Control {
/* Constantes */
const int Vertical;
const int Horizontal;
/* Propriétés */
protected $controls;
/* Constructor */
public __construct(int $orientation = UI\Controls\Box::Horizontal)
/* Méthodes */
public append(Control $control, bool $stretchy = false): int
public delete(int $index): bool
public getOrientation(): int
public isPadded(): bool
public setPadded(bool $padded)
/* Méthodes héritées */
public UI\Control::destroy()
public UI\Control::disable()
public UI\Control::enable()
public UI\Control::getParent(): UI\Control
public UI\Control::getTopLevel(): int
public UI\Control::hide()
public UI\Control::isEnabled(): bool
public UI\Control::isVisible(): bool
public UI\Control::setParent(UI\Control $parent)
public UI\Control::show()
}

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

(UI 0.9.9)

UI\Controls\Box::append — Append Control

Description

public UI\Controls\Box::append(Control $control, bool $stretchy = false): int

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

(UI 0.9.9)

UI\Controls\Box::__construct — Construct a new Box

Description

public UI\Controls\Box::__construct(int $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

(UI 0.9.9)

UI\Controls\Box::delete — Delete Control

Description

public UI\Controls\Box::delete(int $index): bool

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

(UI 0.9.9)

UI\Controls\Box::getOrientation — Get Orientation

Description

public UI\Controls\Box::getOrientation(): int

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

(UI 0.9.9)

UI\Controls\Box::isPadded — Padding Detection

Description

public UI\Controls\Box::isPadded(): bool

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

(UI 0.9.9)

UI\Controls\Box::setPadded — Set Padding

Description

public UI\Controls\Box::setPadded(bool $padded)

Shall enable or disable padding on this Box

Liste de paramètres

padded


Draw Pen

(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 class 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, int $with)
public restore()
public save()
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, int $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

(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

(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, int $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

(UI 0.9.9)

UI\Draw\Pen::restore — Restore

Description

public UI\Draw\Pen::restore()

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

(UI 0.9.9)

UI\Draw\Pen::save — Save

Description

public UI\Draw\Pen::save()

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

(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, int $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

(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

(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

(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

class UI\Draw\Path {
/* Constantes */
const int Winding;
const int Alternate;
/* Constructor */
public __construct(int $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()
public end()
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

(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

(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

(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

(UI 0.9.9)

UI\Draw\Path::closeFigure — Close Figure

Description

public UI\Draw\Path::closeFigure()

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

(UI 0.9.9)

UI\Draw\Path::__construct — Construct a new Path

Description

public UI\Draw\Path::__construct(int $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

(UI 0.9.9)

UI\Draw\Path::end — Finalize Path

Description

public UI\Draw\Path::end()

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

(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

(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

(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

(UI 0.9.9)

Introduction

Synopsis de la classe

class UI\Draw\Matrix {
/* Méthodes */
public invert()
public isInvertible(): bool
public multiply(UI\Draw\Matrix $matrix): UI\Draw\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

(UI 0.9.9)

UI\Draw\Matrix::invert — Invert Matrix

Description

public UI\Draw\Matrix::invert()

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

(UI 0.9.9)

UI\Draw\Matrix::isInvertible — Invertible Detection

Description

public UI\Draw\Matrix::isInvertible(): bool

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

(UI 0.9.9)

UI\Draw\Matrix::multiply — Multiply Matrix

Description

public UI\Draw\Matrix::multiply(UI\Draw\Matrix $matrix): UI\Draw\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

(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

(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

(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

(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

(UI 0.9.9)

Introduction

Represents RGBA colours, individual channels are accessible via public properties.

Synopsis de la classe

class UI\Draw\Color {
/* Constantes */
const int Red;
const int Green;
const int Blue;
const int Alpha;
/* Propriétés */
public $r;
public $g;
public $b;
public $a;
/* Constructor */
public __construct(UI\Draw\Color $color = ?)
public __construct(int $color = ?)
/* Méthodes */
public getChannel(int $channel): float
public setChannel(int $channel, float $value): void
}

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

(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(int $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

(UI 0.9.9)

UI\Draw\Color::getChannel — Color Manipulation

Description

public UI\Draw\Color::getChannel(int $channel): float

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

(UI 0.9.9)

UI\Draw\Color::setChannel — Color Manipulation

Description

public UI\Draw\Color::setChannel(int $channel, float $value): void

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

(UI 0.9.9)

Introduction

Holds the configuration for the Pen to perform a stroke

Synopsis de la classe

class UI\Draw\Stroke {
/* Constructor */
public __construct(
int $cap = UI\Draw\Line\Cap::Flat,
int $join = UI\Draw\Line\Join::Miter,
float $thickness = 1,
float $miterLimit = 10
)
/* Méthodes */
public getCap(): int
public getJoin(): int
public getMiterLimit(): float
public getThickness(): float
public setCap(int $cap)
public setJoin(int $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

(UI 0.9.9)

UI\Draw\Stroke::__construct — Construct a new Stroke

Description

public UI\Draw\Stroke::__construct(
int $cap = UI\Draw\Line\Cap::Flat,
int $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

(UI 0.9.9)

UI\Draw\Stroke::getCap — Get Line Cap

Description

public UI\Draw\Stroke::getCap(): int

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

(UI 0.9.9)

UI\Draw\Stroke::getJoin — Get Line Join

Description

public UI\Draw\Stroke::getJoin(): int

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

(UI 0.9.9)

UI\Draw\Stroke::getMiterLimit — Get Miter Limit

Description

public UI\Draw\Stroke::getMiterLimit(): float

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

(UI 0.9.9)

UI\Draw\Stroke::getThickness — Get Thickness

Description

public UI\Draw\Stroke::getThickness(): float

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

(UI 0.9.9)

UI\Draw\Stroke::setCap — Set Line Cap

Description

public UI\Draw\Stroke::setCap(int $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

(UI 0.9.9)

UI\Draw\Stroke::setJoin — Set Line Join

Description

public UI\Draw\Stroke::setJoin(int $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

(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

(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

(UI 0.9.9)

Introduction

Represents a solid color brush

Synopsis de la classe

class UI\Draw\Brush {
/* Constructor */
public __construct(UI\Draw\Color $color)
public __construct(int $color)
/* Méthodes */
public getColor(): UI\Draw\Color
public setColor(UI\Draw\Color $color): void
public setColor(int $color): void
}

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

(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(int $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

(UI 0.9.9)

UI\Draw\Brush::getColor — Get Color

Description

public UI\Draw\Brush::getColor(): UI\Draw\Color

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

(UI 0.9.9)

UI\Draw\Brush::setColor — Set Color

Description

public UI\Draw\Brush::setColor(UI\Draw\Color $color): void
public UI\Draw\Brush::setColor(int $color): void

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

(UI 2.0.0)

Introduction

Abstract for gradient brushes

Synopsis de la classe

abstract class UI\Draw\Brush\Gradient extends UI\Draw\Brush {
/* Méthodes */
public addStop(float $position, UI\Draw\Color $color): int
public addStop(float $position, int $color): int
public delStop(int $index): int
public setStop(int $index, float $position, UI\Draw\Color $color): bool
public setStop(int $index, float $position, int $color): bool
/* Méthodes héritées */
public UI\Draw\Brush::getColor(): UI\Draw\Color
public UI\Draw\Brush::setColor(UI\Draw\Color $color): void
public UI\Draw\Brush::setColor(int $color): void
}

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

(UI 2.0.0)

UI\Draw\Brush\Gradient::addStop — Stop Manipulation

Description

public UI\Draw\Brush\Gradient::addStop(float $position, UI\Draw\Color $color): int
public UI\Draw\Brush\Gradient::addStop(float $position, int $color): int

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

(UI 2.0.0)

UI\Draw\Brush\Gradient::delStop — Stop Manipulation

Description

public UI\Draw\Brush\Gradient::delStop(int $index): int

Avertissement

Cette fonction est actuellement non documentée ; 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

(UI 2.0.0)

UI\Draw\Brush\Gradient::setStop — Stop Manipulation

Description

public UI\Draw\Brush\Gradient::setStop(int $index, float $position, UI\Draw\Color $color): bool
public UI\Draw\Brush\Gradient::setStop(int $index, float $position, int $color): bool

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

(UI 2.0.0)

Introduction

Synopsis de la classe

class UI\Draw\Brush\LinearGradient extends UI\Draw\Brush\Gradient {
/* Constructor */
public __construct(UI\Point $start, UI\Point $end)
/* Méthodes héritées */
public UI\Draw\Brush\Gradient::addStop(float $position, UI\Draw\Color $color): int
public UI\Draw\Brush\Gradient::addStop(float $position, int $color): int
public UI\Draw\Brush\Gradient::delStop(int $index): int
public UI\Draw\Brush\Gradient::setStop(int $index, float $position, UI\Draw\Color $color): bool
public UI\Draw\Brush\Gradient::setStop(int $index, float $position, int $color): bool
}

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

(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

(UI 2.0.0)

Introduction

Synopsis de la classe

class 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 UI\Draw\Brush\Gradient::addStop(float $position, UI\Draw\Color $color): int
public UI\Draw\Brush\Gradient::addStop(float $position, int $color): int
public UI\Draw\Brush\Gradient::delStop(int $index): int
public UI\Draw\Brush\Gradient::setStop(int $index, float $position, UI\Draw\Color $color): bool
public UI\Draw\Brush\Gradient::setStop(int $index, float $position, int $color): bool
}

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

(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

(UI 0.9.9)

Introduction

A Text Layout represents the layout of text which will be drawn by the Pen

Synopsis de la classe

class UI\Draw\Text\Layout {
/* Constructor */
public __construct(string $text, UI\Draw\Text\Font $font, float $width)
/* Méthodes */
public setColor(UI\Draw\Color $color, int $start = 0, int $end = ?)
public setColor(int $color, int $start = 0, int $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

(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

(UI 0.9.9)

UI\Draw\Text\Layout::setColor — Set Color

Description

public UI\Draw\Text\Layout::setColor(UI\Draw\Color $color, int $start = 0, int $end = ?)
public UI\Draw\Text\Layout::setColor(int $color, int $start = 0, int $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

(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

(UI 0.9.9)

Introduction

Loads a described font

Synopsis de la classe

class UI\Draw\Text\Font {
/* Constructor */
public __construct(UI\Draw\Text\Font\Descriptor $descriptor)
/* Méthodes */
public getAscent(): float
public getDescent(): float
public getLeading(): float
public getUnderlinePosition(): float
public getUnderlineThickness(): float
}

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

(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

(UI 1.0.3)

UI\Draw\Text\Font::getAscent — Font Metrics

Description

public UI\Draw\Text\Font::getAscent(): float

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

(UI 1.0.3)

UI\Draw\Text\Font::getDescent — Font Metrics

Description

public UI\Draw\Text\Font::getDescent(): float

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

(UI 1.0.3)

UI\Draw\Text\Font::getLeading — Font Metrics

Description

public UI\Draw\Text\Font::getLeading(): float

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

(UI 1.0.3)

UI\Draw\Text\Font::getUnderlinePosition — Font Metrics

Description

public UI\Draw\Text\Font::getUnderlinePosition(): float

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

(UI 1.0.3)

UI\Draw\Text\Font::getUnderlineThickness — Font Metrics

Description

public UI\Draw\Text\Font::getUnderlineThickness(): float

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Font Descriptor

(UI 0.9.9)

Introduction

Describes a font

Synopsis de la classe

class UI\Draw\Text\Font\Descriptor {
/* Constructor */
public __construct(
string $family,
float $size,
int $weight = UI\Draw\Text\Font\Weight::Normal,
int $italic = UI\Draw\Text\Font\Italic::Normal,
int $stretch = UI\Draw\Text\Font\Stretch::Normal
)
/* Méthodes */
public getFamily(): string
public getItalic(): int
public getSize(): float
public getStretch(): int
public getWeight(): int
}

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

(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,
int $weight = UI\Draw\Text\Font\Weight::Normal,
int $italic = UI\Draw\Text\Font\Italic::Normal,
int $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

(UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getFamily — Get Font Family

Description

public UI\Draw\Text\Font\Descriptor::getFamily(): string

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

(UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getItalic — Style Detection

Description

public UI\Draw\Text\Font\Descriptor::getItalic(): int

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

(UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getSize — Size Detection

Description

public UI\Draw\Text\Font\Descriptor::getSize(): float

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

(UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getStretch — Style Detection

Description

public UI\Draw\Text\Font\Descriptor::getStretch(): int

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

(UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getWeight — Weight Detection

Description

public UI\Draw\Text\Font\Descriptor::getWeight(): int

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 — Récupére les familles de polices
  • UI\quit — Quitte la boucle UI
  • UI\run — Entre dans la boucle UI


Récupére les familles de polices

  • « UI Fonctions
  • UI\quit »
  • PHP Manual
  • UI Fonctions
  • Récupére les familles de polices

UI\Draw\Text\Font\fontFamilies

(UI 0.9.9)

UI\Draw\Text\Font\fontFamilies — Récupére les familles de polices

Description

UI\Draw\Text\Font\fontFamilies(): array

Retourne un tableau des familles de polices valide pour le système actuel

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau des familles de polices valide pour le système actuel.


Quitte la boucle UI

  • « UI\Draw\Text\Font\fontFamilies
  • UI\run »
  • PHP Manual
  • UI Fonctions
  • Quitte la boucle UI

UI\quit

(UI 2.0.0)

UI\quit — Quitte la boucle UI

Description

UI\quit(): void

Doit faire arrêter la boucle principale

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour


Entre dans la boucle UI

  • « UI\quit
  • UI\Draw\Text\Font\Weight »
  • PHP Manual
  • UI Fonctions
  • Entre dans la boucle UI

UI\run

(UI 2.0.0)

UI\run — Entre dans la boucle UI

Description

UI\run(int $flags = ?): void

Doit pousser PHP à entrer dans la boucle principale. Par défaut, le contrôle ne sera pas retourné à la fonction appelante.

Liste de paramètres

flags

Mettre UI\Loop pour retourner le contrôle et UI\Wait pour retourner le contrôle après l'attente.

Valeurs de retour


Font Weight Settings

(UI 0.9.9)

Introduction

Synopsis de la classe

final class UI\Draw\Text\Font\Weight {
/* Constantes */
const int Thin;
const int UltraLight;
const int Light;
const int Book;
const int Normal;
const int Medium;
const int SemiBold;
const int Bold;
const int UltraBold;
const int Heavy;
const int UltraHeavy;
}

Constantes pré-définies

UI\Draw\Text\Font\Weight::Thin
UI\Draw\Text\Font\Weight::UltraLight
UI\Draw\Text\Font\Weight::Light
UI\Draw\Text\Font\Weight::Book
UI\Draw\Text\Font\Weight::Normal
UI\Draw\Text\Font\Weight::Medium
UI\Draw\Text\Font\Weight::SemiBold
UI\Draw\Text\Font\Weight::Bold
UI\Draw\Text\Font\Weight::UltraBold
UI\Draw\Text\Font\Weight::Heavy
UI\Draw\Text\Font\Weight::UltraHeavy


Italic Font Settings

(UI 0.9.9)

Introduction

Synopsis de la classe

final class UI\Draw\Text\Font\Italic {
/* Constantes */
const int Normal = 0;
const int Oblique = 1;
const int Italic = 2;
}

Constantes pré-définies

UI\Draw\Text\Font\Italic::Normal
UI\Draw\Text\Font\Italic::Oblique
UI\Draw\Text\Font\Italic::Italic


Font Stretch Settings

(UI 0.9.9)

Introduction

Synopsis de la classe

final class UI\Draw\Text\Font\Stretch {
/* Constantes */
const int UltraCondensed = 0;
const int ExtraCondensed = 1;
const int Condensed = 2;
const int SemiCondensed = 3;
const int Normal = 4;
const int SemiExpanded = 5;
const int Expanded = 6;
const int ExtraExpanded = 7;
const int UltraExpanded = 8;
}

Constantes pré-définies

UI\Draw\Text\Font\Stretch::UltraCondensed
UI\Draw\Text\Font\Stretch::ExtraCondensed
UI\Draw\Text\Font\Stretch::Condensed
UI\Draw\Text\Font\Stretch::SemiCondensed
UI\Draw\Text\Font\Stretch::Normal
UI\Draw\Text\Font\Stretch::SemiExpanded
UI\Draw\Text\Font\Stretch::Expanded
UI\Draw\Text\Font\Stretch::ExtraExpanded
UI\Draw\Text\Font\Stretch::UltraExpanded


Line Cap Settings

(UI 0.9.9)

Introduction

Synopsis de la classe

final class UI\Draw\Line\Cap {
/* Constantes */
const int Flat;
const int Round;
const int Square;
}

Constantes pré-définies

UI\Draw\Line\Cap::Flat
UI\Draw\Line\Cap::Round
UI\Draw\Line\Cap::Square


Line Join Settings

(UI 0.9.9)

Introduction

Synopsis de la classe

final class UI\Draw\Line\Join {
/* Constantes */
const int Miter;
const int Round;
const int Bevel;
}

Constantes pré-définies

UI\Draw\Line\Join::Miter
UI\Draw\Line\Join::Round
UI\Draw\Line\Join::Bevel


Key Identifiers

(UI 1.0.0)

Introduction

Synopsis de la classe

final class UI\Key {
/* Constantes */
const int Escape;
const int Insert;
const int Delete;
const int Home;
const int End;
const int PageUp;
const int PageDown;
const int Up;
const int Down;
const int Left;
const int Right;
const int F1;
const int F2;
const int F3;
const int F4;
const int F5;
const int F6;
const int F7;
const int F8;
const int F9;
const int F10;
const int F11;
const int F12;
const int N0;
const int N1;
const int N2;
const int N3;
const int N4;
const int N5;
const int N6;
const int N7;
const int N8;
const int N9;
const int NDot;
const int NEnter;
const int NAdd;
const int NSubtract;
const int NMultiply;
const int NDivide;
}

Constantes pré-définies

UI\Key::Escape
UI\Key::Insert
UI\Key::Delete
UI\Key::Home
UI\Key::End
UI\Key::PageUp
UI\Key::PageDown
UI\Key::Up
UI\Key::Down
UI\Key::Left
UI\Key::Right
UI\Key::F1
UI\Key::F2
UI\Key::F3
UI\Key::F4
UI\Key::F5
UI\Key::F6
UI\Key::F7
UI\Key::F8
UI\Key::F9
UI\Key::F10
UI\Key::F11
UI\Key::F12
UI\Key::N0
UI\Key::N1
UI\Key::N2
UI\Key::N3
UI\Key::N4
UI\Key::N5
UI\Key::N6
UI\Key::N7
UI\Key::N8
UI\Key::N9
UI\Key::NDot
UI\Key::NEnter
UI\Key::NAdd
UI\Key::NSubtract
UI\Key::NMultiply
UI\Key::NDivide


InvalidArgumentException

(UI 1.0.3)

Introduction

Synopsis de la classe

class UI\Exception\InvalidArgumentException extends InvalidArgumentException implements Throwable {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


RuntimeException

(UI 1.0.3)

Introduction

Synopsis de la classe

class UI\Exception\RuntimeException extends RuntimeException implements Throwable {
/* Propriétés héritées */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* Méthodes héritées */
final public Exception::getMessage(): string
final public Exception::getPrevious(): ?Throwable
final public Exception::getCode(): int
final public Exception::getFile(): string
final public Exception::getLine(): int
final public Exception::getTrace(): array
final public Exception::getTraceAsString(): string
public Exception::__toString(): string
private Exception::__clone(): void
}


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
  • Hachage de mots de passe — Hachage 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 8 est la génération actuelle de PHP, qui utilise le moteur Zend 4 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 à » https://github.com/php/php-src/issues.


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 !

La raison la plus courante pour laquelle les gens ont du mal à se désabonner de nos listes de diffusion c'est à cause des courriels redirigés. Par exemple, si votre adresse e-mail est elephpant@example.com, mais que vous vous êtes abonné à la liste de diffusion en utilisant la redirection php-lists@example.com et que vous redirigez cela vers elephpant@example.com, tenter de vous désabonner de elephpant@example.com ne fonctionnera pas, car cette adresse n'est même pas connue de nos systèmes. Au lieu de cela, vous devrez vous désabonner de l'adresse vers laquelle le courrier est envoyé, en envoyant un e-mail depuis cette adresse — dans cet 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 » https://www.php.net/. Vous pouvez aussi utiliser Git pour obtenir la toute dernière version des sources. Pour plus d'informations, allez sur » https://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 multithreadé.

  • » 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 multithread 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 multithreads, 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 ?
J'ai entendu dire qu'il était possible d'accéder à Microsoft SQL Server à partir de PHP. Comment est-ce possible ?

Sur les machines UNIX, vous pouvez utiliser PDO_ODBC ou Unified ODBC API.

Sur les machines Windows, vous pouvez également utiliser PDO_SQLSRV ou SQLSRV.

Jetez aussi un oeil à la réponse à la question suivante.

Puis-je accéder à des bases 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.


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 » https://github.com/php/php-src/issues.

Si votre script utilise les expressions régulières (preg_match() et consorts), assurez-vous que PHP et Apache ont été compilés avec les même outils d'expression régulières. 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 :

  • 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

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.

Comment rendre le fichier php.ini disponible à PHP sous Windows ?

Il y a plusieurs façons de faire cela. Si vous utilisez Apache, référez vous à la documentation d'Apache, sinon vous devez définir la variable d'environnement PHPRC.

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. 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.
  10. 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 ?
  11. 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.
  12. Quand j'esaie de compiler PHP avec --with-apxs, j'obtiens des messages d'erreur étranges.
  13. Pendant le make, j'ai des erreurs concernant microtime et beaucoup de RUSAGE_.
  14. 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 ?
  15. Je veux mettre à jour mon PHP. Où puis-je trouver la ligne ./configure qui a été utilisée pour mon installation actuelle de PHP?
  16. 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.
  17. 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 cœur 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.

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.       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 ?
  5. 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>
  6. J'obtiens le message 'Warning: Cannot send session cookie - headers already sent...' ou 'Cannot add header information - headers already sent...'.
  7. J'ai besoin d'accéder à des informations dans l'en-tête de requête directement. Comment puis-je le faire ?
  8. Quand j'essaye d'utiliser l'identification avec IIS j'obtiens 'No Input file specified'.
  9. Windows: Je ne peux pas accéder aux fichiers partagés sur un autre ordinateur utilisant IIS
  10. Comment mélanger XML et PHP ? PHP se plaint de mes balises <?xml !
  11. Où puis-je trouver une liste complète des variables prédéfinies que je peux utiliser dans mes scripts PHP ?
  12. 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.
  13. Certaines directives PHP peuvent prendre des noms littéraux, et pas seulement des valeurs entier. Quelles sont tous les raccourcis disponibles?
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.

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. 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.

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.

Certaines directives PHP peuvent prendre des noms littéraux, et pas seulement des valeurs entier. Quelles sont tous les raccourcis disponibles?

Les options disponibles sont K (pour Kilo octets) et M (pour mégaoctet) et G (pour gigaoctet), 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. Ces notations abrégées peuvent être utilisées dans le fichier php.ini et dans la fonction ini_set(). Notez que la valeur numérique est transtypé en entier ; par exemple, 0.5M est interprété comme 0.

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.


Hachage de mots de passe sûr

Cette section explique les raisons d'utiliser des fonctions de hachage pour les mots de passe, ainsi que la façon de le faire efficacement.

  1. Pourquoi devrais-je hacher les mots de passe envoyés par les utilisateurs de mon application ?
  2. Pourquoi les fonctions traditionnelles de hachage comme md5 et sha1 sont-elles inappropriées aux mots de passe ?
  3. Alors, comment hacher mes mots de passe ?
  4. Qu'est ce que le grain de sel ?
  5. Comment stocker mes salts ?
Pourquoi devrais-je hacher les mots de passe envoyés par les utilisateurs de mon application ?

Le hachage 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 hachage 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 hachage 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 hachage comme md5() et sha1() sont-elles inappropriées aux mots de passe ?

Les algorithmes de hachage 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 hacher un mot de passe utilisateur.

Alors, comment hacher 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 fournit une API native de hachage de mot de passe qui gère à la fois le hachage et la vérification de mots de passe, le tout, de manière totalement sécurisée.

Une autre option est la fonction crypt(), qui supporte différents algorithmes de hachage. 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 hachage de mots de passe est Blowfish, qui est aussi l'algorithme par défaut de l'API de hachage 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 hachage 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 hachage pour éliminer la possibilité d'attaques par dictionnaires (hachages 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 hachage 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ée 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 hachage 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 ?
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.


Annexes

  • Histoire de PHP
    • Histoire de PHP
    • Quelques projets liés à PHP
    • Livres traitant de PHP
    • Publications à propos de PHP
  • Migrating from PHP 8.2.x to PHP 8.3.x
    • New Features
    • New Classes and Interfaces
    • New Functions
    • New Global Constants
    • Backward Incompatible Changes
    • Deprecated Features
    • Other Changes
    • Windows Support
  • Migration de PHP 8.1.x vers PHP 8.2.x
    • Nouvelles fonctionnalités
    • Nouvelles fonctions
    • Nouvelles constantes globales
    • Modifications entrainant une incompatibilité ascendante
    • Fonctionnalités obsolètes
    • Autres changements
    • Support Windows
  • Migration de PHP 8.0.x vers PHP 8.1.x
    • New Features
    • New Classes and Interfaces
    • New Functions
    • New Global Constants
    • Backward Incompatible Changes
    • Deprecated Features
    • Other Changes
  • Migration de PHP 7.4.x vers PHP 8.0.x
    • New Features
    • Modifications entrainant une incompatibilité ascendante
    • Fonctionnalités obsolètes
    • Other Changes
  • Migration de PHP 7.3.x vers PHP 7.4.x
    • Nouvelles fonctionnalités
    • Nouvelles Classes et Interfaces
    • Nouvelles fonctions
    • Nouvelles constantes globales
    • Modifications entrainant une incompatibilité ascendante
    • Fonctionnalités obsolètes
    • Extensions supprimées
    • Autres changements
    • Gestion de Windows
  • Migration de PHP 7.2.x vers PHP 7.3.x
    • Nouvelles fonctionnalités
    • Nouvelles fonctions
    • Nouvelles constantes globales
    • Modifications entrainant une incompatibilité ascendante
    • Fonctionnalités devenues obsolètes
    • Autres changements
    • Support de Windows
  • Migration de PHP 7.1.x vers PHP 7.2.x
    • Nouvelles fonctionnalités
    • Nouvelles fonctions
    • Nouvelles constantes globales
    • Évolutions incompatibles avec les versions précédentes
    • Fonctionnalités devenues obsolètes en PHP 7.2.x
    • Autres changements
  • Migration de PHP 7.0.x vers PHP 7.1.x
    • Nouvelles fonctionnalités
    • Nouvelles fonctions
    • Nouvelles constantes globales
    • Modifications entrainant une incompatibilité ascendante
    • Les fonctionnalités dépréciées dans PHP 7.1.x
    • Fonctions modifiées
    • Autres changements
    • Support Windows
  • Migration de PHP 5.6.x vers PHP 7.0.x
    • Modifications entrainant une incompatibilité ascendante
    • Nouvelles fonctionnalités
    • Les fonctionnalités dépréciées dans PHP 7.0.x
    • Fonctions modifiées
    • Nouvelles fonctions
    • Nouvelles Classes et Interfaces
    • Nouvelles constantes globales
    • Modifications des modules SAPI
    • Extensions et SAPI supprimées
    • Autres changements
  • 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
    • Changement pour OpenSSL dans PHP 5.6.x
    • Autres modifications dans les extensions
    • Nouvelles constantes globales
  • 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 jetons 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'exemples
  • 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 plateformes.

PHP-GTK

» PHP-GTK est la solution PHP pour écrire des applications avec interface graphique, côté 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 excitant. 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 8.2.x to PHP 8.3.x

Sommaire

  • New Features
  • New Classes and Interfaces
  • New Functions
  • New Global Constants
  • Backward Incompatible Changes
  • Deprecated Features
  • 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 7.1.x, 7.2.x, 7.3.x, 7.4.x, 8.0.x, 8.1.x, 8.2.x.


New Features

PHP Core

Readonly Amendments

Anonymous classes may now be marked as readonly.

Readonly properties can now be reinitialized during cloning.

Typed Class Constants

Class, interface, trait, and enum constants now support type declarations.

Closures created from magic methods

Closures created from magic methods can now accept named arguments.

The final modifier with a method from a trait

The final modifier may now be used when using a method from a trait.

Override Attribute

Added the #[\Override] attribute to check that a method exists in a parent class or implemented interface.

Fetch class constant dynamically syntax

Class constants can now be accessed dynamically using the C::{$name} syntax.

Static variable Initializers

Static variable initializers can now contain arbitrary expressions.

Fallback value syntax for ini variables

php.ini now supports fallback/default value syntax.

<?php
/*
On /path/to/user.ini contains the following settings:

listen = localhost:${DRUPAL_FPM_PORT:-9000}
*/

$user_ini = parse_ini_file('/path/to/user.ini');
echo $user_ini['listen']; // localhost:9000

CLI

It is now possible to lint multiple files.

DOM

Added properties DOMElement::$className and DOMElement::$id. These are not binary-safe at the moment because of underlying limitations of libxml2. This means that the property values will be cut off at a NUL byte.

Added properties DOMNode::$isConnected and DOMNameSpaceNode::$isConnected.

Added properties DOMNode::$parentElement and DOMNameSpaceNode::$parentElement.

FFI

It is now possible to assign FFI\CData to other FFI\CData. Meaning CData can now be assigned to structs and fields.

Opcache

opcache_get_status()['scripts'][n]['revalidate'] now contains a Unix timestamp of when the next revalidation of the scripts timestamp is due, dictated by the opcache.revalidate_freq INI directive.

POSIX

posix_getrlimit() now takes an optional $res parameter to allow fetching a single resource limit.

posix_isatty() now raises type warnings for integers following the usual ZPP semantics.

posix_ttyname() now raises type warnings for integers following the usual ZPP semantics and value warnings for invalid file descriptor integers.

Streams

Streams can now emit the STREAM_NOTIFY_COMPLETED notification. This was previously not implemented.


New Classes and Interfaces

Date

  • DateError
  • DateObjectError
  • DateRangeError
  • DateException
  • DateInvalidOperationException
  • DateInvalidTimeZoneException
  • DateMalformedIntervalStringException
  • DateMalformedPeriodStringException
  • DateMalformedStringException

Random

  • Random\IntervalBoundary


New Functions

Date

  • DatePeriod::createFromISO8601String()

DOM

  • DOMElement::getAttributeNames()
  • DOMElement::insertAdjacentElement()
  • DOMElement::insertAdjacentText()
  • DOMElement::toggleAttribute()
  • DOMNode::contains()
  • DOMNode::getRootNode()
  • DOMNode::isEqualNode()
  • DOMNameSpaceNode::contains()
  • DOMParentNode::replaceChildren()

Intl

  • IntlCalendar::setDate()
  • IntlCalendar::setDateTime()
  • IntlGregorianCalendar::createFromDate()
  • IntlGregorianCalendar::createFromDateTime()

JSON

  • json_validate()

LDAP

  • ldap_connect_wallet()
  • ldap_exop_sync()

MBString

  • mb_str_pad()

Posix

  • posix_sysconf()
  • posix_pathconf()
  • posix_fpathconf()
  • posix_eaccess()

PostgreSQL

  • pg_set_error_context_visibility() (libpq >= 9.6)

Random

  • Random\Randomizer::getBytesFromString()
  • Random\Randomizer::nextFloat()
  • Random\Randomizer::getFloat()

Reflection

  • ReflectionMethod::createFromMethodName()

Sockets

  • socket_atmark()

Standard

  • str_increment()
  • str_decrement()
  • stream_context_set_options()

Zip

  • ZipArchive::getArchiveFlag()


New Global Constants

cURL

  • CURLINFO_CAPATH (libcurl >= 7.84.0)
  • CURLINFO_CAINFO (libcurl >= 7.84.0)
  • CURLOPT_MIME_OPTIONS (libcurl >= 7.81.0)
  • CURLMIMEOPT_FORMESCAPE (libcurl >= 7.81.0)
  • CURLOPT_WS_OPTIONS (libcurl >= 7.86.0)
  • CURLWS_RAW_MODE (libcurl >= 7.86.0)
  • CURLOPT_SSH_HOSTKEYFUNCTION (libcurl >= 7.84.0)
  • CURLOPT_PROTOCOLS_STR (libcurl >= 7.85.0)
  • CURLOPT_REDIR_PROTOCOLS_STR (libcurl >= 7.85.0)
  • CURLOPT_CA_CACHE_TIMEOUT (libcurl >= 7.87.0)
  • CURLOPT_QUICK_EXIT (libcurl >= 7.87.0)
  • CURLKHMATCH_OK (libcurl >= 7.19.6)
  • CURLKHMATCH_MISMATCH (libcurl >= 7.19.6)
  • CURLKHMATCH_MISSING (libcurl >= 7.19.6)
  • CURLKHMATCH_LAST (libcurl >= 7.19.6)

Intl

  • MIXED_NUMBERS (Spoofchecker)
  • HIDDEN_OVERLAY (Spoofchecker)

OpenSSL

  • OPENSSL_CMS_OLDMIMETYPE
  • PKCS7_NOOLDMIMETYPE

PCNTL

  • SIGINFO

PDO_ODBC

  • PDO_ODBC_TYPE

Posix

  • POSIX_SC_ARG_MAX
  • POSIX_SC_PAGESIZE
  • POSIX_SC_NPROCESSORS_CONF
  • POSIX_SC_NPROCESSORS_ONLN
  • POSIX_PC_LINK_MAX
  • POSIX_PC_MAX_CANON
  • POSIX_PC_MAX_INPUT
  • POSIX_PC_NAME_MAX
  • POSIX_PC_PATH_MAX
  • POSIX_PC_PIPE_BUF
  • POSIX_PC_CHOWN_RESTRICTED
  • POSIX_PC_NO_TRUNC
  • POSIX_PC_ALLOC_SIZE_MIN
  • POSIX_PC_SYMLINK_MAX

Sockets

The following socket options are now defined if they are supported:

  • SO_ATTACH_REUSEPORT_CBPF (Linux)
  • SO_DETACH_BPF (Linux)
  • SO_DETACH_FILTER (Linux)
  • TCP_QUICKACK (Linux)
  • IP_DONTFRAG (FreeBSD)
  • IP_MTU_DISCOVER (Linux)
  • IP_PMTUDISC_DO (Linux)
  • IP_PMTUDISC_DONT (Linux)
  • IP_PMTUDISC_WANT (Linux)
  • IP_PMTUDISC_PROBE (Linux)
  • IP_PMTUDISC_INTERFACE (Linux)
  • IP_PMTUDISC_OMIT (Linux)
  • AF_DIVERT (FreeBSD)
  • SOL_UDPLITE
  • UDPLITE_RECV_CSCOV
  • UDPLITE_SEND_CSCOV
  • SO_RERROR (NetBSD)
  • SO_ZEROIZE (OpenBSD)
  • SO_SPLICE (OpenBSD)
  • TCP_REPAIR (Linux)
  • SO_REUSEPORT_LB (FreeBSD)
  • IP_BIND_ADDRESS_NO_PORT (Linux)

Zip

  • ZipArchive::ER_DATA_LENGTH (libzip >= 1.10)
  • ZipArchive::ER_NOT_ALLOWED (libzip >= 1.10)
  • ZipArchive::AFL_RDONLY (libzip >= 1.10)
  • ZipArchive::AFL_IS_TORRENTZIP (libzip >= 1.10)
  • ZipArchive::AFL_WANT_TORRENTZIP (libzip >= 1.10)
  • ZipArchive::AFL_CREATE_OR_KEEP_FILE_FOR_EMPTY_ARCHIVE (libzip >= 1.10)
  • ZipArchive::FL_OPEN_FILE_NOW
  • ZipArchive::LENGTH_TO_END as default value for
ZipArchive::addFile() and
ZipArchive::replaceFile()
  • ZipArchive::LENGTH_UNCHECKED (libzip >= 1.10)


Backward Incompatible Changes

PHP Core

Programs that were very close to overflowing the call stack

Programs that were very close to overflowing the call stack may now throw an Error when using more than zend.max_allowed_stack_size-zend.reserved_stack_size bytes of stack (fiber.stack_size-zend.reserved_stack_size for fibers).

Executing proc_get_status() multiple times

Executing proc_get_status() multiple times will now always return the right value on POSIX systems. Previously, only the first call of the function returned the right value. Executing proc_close() after proc_get_status() will now also return the right exit code. Previously this would return -1. Internally, this works by caching the result on POSIX systems. If the previous behaviour is required, it is possible to check the "cached" key in the array returned by proc_get_status() to check whether the result was cached.

Zend Max Execution Timers

Zend Max Execution Timers is now enabled by default for ZTS builds on Linux.

Uses of traits with static properties

Uses of traits with static properties will now redeclare static properties inherited from the parent class. This will create a separate static property storage for the current class. This is analogous to adding the static property to the class directly without traits.

Assigning a negative index to an empty array

Assigning a negative index $n to an empty array will now make sure that the next index is $n+1 instead of 0.

Class constant visibility variance check

Class constant visibility variance is now correctly checked when inherited from interfaces.

WeakMap entries whose key maps to itself

WeakMap entries whose key maps to itself (possibly transitively) may now be removed during cycle collection if the key is not reachable except by iterating over the WeakMap (reachability via iteration is considered weak). Previously, such entries would never be automatically removed.

Date

The DateTime extension has introduced Date extension specific exceptions and errors under the DateError and DateException hierarchies, instead of warnings and generic exceptions. This improves error handling, at the expense of having to check for errors and exceptions.

DOM

Calling DOMChildNode::after(),
DOMChildNode::before(),
DOMChildNode::replaceWith()
on a node that has no parent is now a no-op instead of a hierarchy
exception, which is the behaviour demanded by the DOM specification.

Using the DOMParentNode and DOMChildNode methods without a document now works instead of throwing a DOM_HIERARCHY_REQUEST_ERR DOMException. This is in line with the behaviour demanded by the DOM specification.

Calling DOMDocument::createAttributeNS() without specifying a prefix would incorrectly create a default namespace, placing the element inside the namespace instead of the attribute. This bug is now fixed.

DOMDocument::createAttributeNS() would previously incorrectly throw a DOM_NAMESPACE_ERRNAMESPACE_ERR DOMException when the prefix was already used for a different URI. It now correctly chooses a different prefix when there's a prefix name conflict.

New methods and properties were added to some DOM classes. If a userland class inherits from these classes and declare a method or property with the same name, the declarations must be compatible. Otherwise, a typical compile error about incompatible declarations will be thrown. See the list of new features and new functions for a list of the newly implemented methods and properties.

FFI

C functions that have a return type of void now return null instead of returning the following object object(FFI\CData:void) { }

Opcache

The opcache.consistency_checks INI directive was removed. This feature was broken with the tracing JIT, as well as with inheritance cache, and has been disabled without a way to enable it since PHP 8.1.18 and PHP 8.2.5. Both the tracing JIT and inheritance cache may modify shm after the script has been persisted by invalidating its checksum. The attempted fix skipped over the modifiable pointers but was rejected due to complexity. For this reason, it was decided to remove the feature instead.

Phar

The type of Phar class constants are now declared.

Standard

The range() function has had various changes:

  • A TypeError is now thrown when passing objects, resources, or arrays as the boundary inputs.
  • A more descriptive ValueError is thrown when passing 0 for $step.
  • A ValueError is now thrown when using a negative $step for increasing ranges.
  • If $step is a float that can be interpreted as an int, it is now done so.
  • A ValueError is now thrown if any argument is infinity or NAN.
  • An E_WARNING is now emitted if $start or $end is the empty string. The value continues to be cast to the value 0.
  • An E_WARNING is now emitted if $start or $end has more than one byte, only if it is a non-numeric string.
  • An E_WARNING is now emitted if $start or $end is cast to an integer because the other boundary input is a number. (e.g. range(5, 'z');).
  • An E_WARNING is now emitted if $step is a float when trying to generate a range of characters, except if both boundary inputs are numeric strings (e.g. range('5', '9', 0.5); does not produce a warning).
  • number_format() now handles negative $decimals values by rounding $num to abs($decimals) digits before the decimal point. Previously, negative $decimals values were ignored.
  • range() now produce a list of characters if one of the boundary inputs is a string digit instead of casting the other input to int (e.g. range('9', 'A');).
<?php
range('9', 'A'); // ["9", ":", ";", "<", "=", ">", "?", "@", "A"], as of PHP 8.3.0
range('9', 'A'); // [9, 8, 7, 6, 5, 4, 3, 2, 1, 0], prior to PHP 8.3.0
?>

The file() flags error check now catches all invalid flags. Notably FILE_APPEND was previously silently accepted.

SNMP

The type of SNMP class constants are now declared.


Deprecated Features

PHP Core

Saner Increment/Decrement operators

Using the increment operator (++) on empty, non-numeric, or non-alphanumeric strings is now deprecated. Moreover, incrementing non-numeric strings is soft deprecated. That means no E_DEPRECATED diagnostic is emitted, but this feature should not be used when producing new code. The new str_increment() function should be used instead.

Using the decrement operator (--) on empty or non-numeric strings is now deprecated.

get_class()/get_parent_class() call without arguments

Calling get_class() and get_parent_class() without arguments is now deprecated.

DBA

Calling dba_fetch() with $dba as the 3rd argument is now deprecated.

FFI

Calling FFI::cast(), FFI::new(), and FFI::type() statically is now deprecated.

Intl

The U_MULTIPLE_DECIMAL_SEP*E*RATORS constant had been deprecated, using the U_MULTIPLE_DECIMAL_SEP*A*RATORS constant instead is recommended.

The NumberFormatter::TYPE_CURRENCY constant has been deprecated.

LDAP

Calling ldap_connect() with separate $hostname and $port is deprecated.

MBString

Passing a negative $width to mb_strimwidth() is now deprecated.

Phar

Calling Phar::setStub() with a resource and a $length is now deprecated. Such calls should be replaced by: $phar->setStub(stream_get_contents($resource));

Random

The MT_RAND_PHP Mt19937 variant is deprecated.

Reflection

Calling ReflectionProperty::setValue() with only one parameter is deprecated. To set static properties, pass null as the first parameter.

Standard

The assert_options() function is now deprecated.

The ASSERT_ACTIVE, ASSERT_BAIL, ASSERT_CALLBACK, ASSERT_EXCEPTION, and ASSERT_WARNING constants have been deprecated.

The assert.* INI settings have been deprecated. See the Changes to INI File Handling page for further details.

SQLite3

Using exceptions is now preferred, warnings will be removed in the future. Calling SQLite3::enableExceptions(false) will trigger a deprecation warning in this version.

Zip

The ZipArchive::FL_RECOMPRESS constant is deprecated and will be removed in a future version of libzip.


Other Changes

Core changes

FFI

FFI::load() is now allowed during preloading when opcache.preload_user is the current system user. Previously, calling FFI::load() was not possible during preloading if the opcache.preload_user directive was set.

FPM

FPM CLI test now fails if the socket path is longer than supported by the OS.

Opcache

In the CLI and phpdbg SAPIs, preloading does not require the opcache.preload_user directive to be set anymore when running as root. In other SAPIs, this directive is required when running as root because preloading is done before the SAPI switches to an unprivileged user.

Streams

Blocking fread() on a socket connection returns immediately if there are any buffered data instead of waiting for more data.

A memory stream no longer fails if the seek offset is past the end. Instead, the memory will be increased on the next write and the data between the old end and the offset is filled with zero bytes, similar to how files work.

stat() access operations like file_exists() and similar will now use real path instead of the actual stream path. This is consistent with stream opening.

Changes in SAPI Modules

CLI

The STDOUT, STDERR and STDIN streams are no longer closed on resource destruction which is mostly when the CLI finishes. It is however still possible to explicitly close those streams using fclose() and similar.

Changed Functions

Core

gc_status() has added the following 8 fields:

  • "running" => bool
  • "protected" => bool
  • "full" => bool
  • "buffer_size" => int
  • "application_time" => float: Total application time, in seconds (including collector_time)
  • "collector_time" => float: Time spent collecting cycles, in seconds (including destructor_time and free_time)
  • "destructor_time" => float: Time spent executing destructors during cycle collection, in seconds
  • "free_time" => float: Time spent freeing values during cycle collection, in seconds

class_alias() now supports creating an alias of an internal class.

Setting open_basedir at runtime using ini_set('open_basedir', ...); no longer accepts paths containing the parent directory (..). Previously, only paths starting with .. were disallowed. This could easily be circumvented by prepending ./ to the path.

User exception handlers now catch exceptions during shutdown.

The resultant HTML of highlight_string() and highlight_file() has changed. Whitespace between outer HTML tags is removed. Newlines and spaces are no longer converted to HTML entities. The whole HTML is now wrapped in a <pre> tag. The outer <span> tag has been merged with the <code> tag.

Calendar

easter_date() now supports years from 1970 to 2,000,000,000 on 64-bit systems, previously it only supported years in the range from 1970 to 2037.

Curl

curl_getinfo() now supports two new constants: CURLINFO_CAPATH and CURLINFO_CAINFO. If option is null, the following two additional keys are present: "capath" and "cainfo".

DOM

Changed DOMCharacterData::appendData() tentative return type to true.

DOMDocument::loadHTML(), DOMDocument::loadHTMLFile(), and DOMDocument::loadXML() now have a tentative return type of bool. Previously, this was documented as having a return type of DOMDocument|bool, but, as of PHP 8.0.0, DOMDocument cannot be returned as it is no longer statically callable.

Gd

The signature of imagerotate() has changed. The $ignore_transparent parameter has been removed, as it was ignored since PHP 5.5.0.

Intl

datefmt_set_timezone() (and its alias IntlDateformatter::setTimeZone()) now returns true on success, previously null was returned.

IntlBreakiterator::setText() now returns false on failure, previously null was returned. It now returns true on success, previously null was returned.

IntlChar::enumCharNames() is now returning a boolean. Previously it returned null on success and false on failure.

IntlDateFormatter::__construct() throws an U_ILLEGAL_ARGUMENT_ERROR exception when an invalid locale had been set.

MBString

mb_strtolower() and mb_convert_case() implement conditional casing rules for the Greek letter sigma. For mb_convert_case(), conditional casing only applies to MB_CASE_LOWER and MB_CASE_TITLE modes, not to MB_CASE_LOWER_SIMPLE and MB_CASE_TITLE_SIMPLE.

mb_decode_mimeheader() interprets underscores in QPrint-encoded MIME encoded words as required by RFC 2047; they are converted to spaces. Underscores must be encoded as "=5F" in such MIME encoded words.

In rare cases, mb_encode_mimeheader() will transfer-encode its input string where it would pass it through as raw ASCII in PHP 8.2.

mb_encode_mimeheader() no longer drops NUL (zero) bytes when QPrint-encoding the input string. This previously caused strings in certain text encodings, especially UTF-16 and UTF-32, to be corrupted by mb_encode_mimeheader.

mb_detect_encoding()'s "non-strict" mode now behaves as described in the documentation. Previously, it would return false if the same byte (for example, the first byte) of the input string was invalid in all candidate encodings. More generally, it would eliminate candidate encodings from consideration when an invalid byte was seen, and if the same input byte eliminated all remaining encodings still under consideration, it would return false. On the other hand, if all candidate encodings but one were eliminated from consideration, it would return the last remaining one without regard for how many encoding errors might be encountered later in the string. This is different from the behavior described in the documentation, which says: "If strict is set to false, the closest matching encoding will be returned."

mysqli

mysqli_fetch_object() now raises a ValueError instead of an Exception when the $constructor_args argument is non empty with the class not having constructor.

mysqli_poll() now raises a ValueError when neither the $read nor the $error arguments are passed.

mysqli_field_seek() and mysqli_result::field_seek() now specify the return type as true instead of bool.

ODBC

odbc_autocommit() now accepts null for the $enable parameter. Passing null has the same behaviour as passing only 1 parameter, namely indicating if the autocommit feature is enabled or not.

PGSQL

pg_fetch_object() now raises a ValueError instead of an Exception when the $constructor_args argument is non empty with the class not having constructor.

pg_insert() now raises a ValueError instead of a E_WARNING when the table specified is invalid.

pg_insert() and pg_convert() raises a ValueError or a TypeError instead of a E_WARNING when the value/type of a field does not match properly with a PostgreSQL's type.

The $row parameter of
pg_fetch_result(),
pg_field_prtlen(), and
pg_field_is_null() is now nullable.

Random

Changed mt_srand() and srand() to not check the number of arguments to determine whether a random seed should be used. Passing null will generate a random seed, 0 will use zero as the seed. The functions are now consistent with Random\Engine\Mt19937::__construct().

Reflection

Return type of ReflectionClass::getStaticProperties() is no longer nullable.

Standard

E_NOTICEs emitted by unserialize() have been promoted to E_WARNING.

unserialize() now emits a new E_WARNING if the input contains unconsumed bytes.

array_pad() is now only limited by the maximum number of elements an array can have. Before, it was only possible to add at most 1048576 elements at a time.

strtok() raises an E_WARNING in the case token is not provided when starting tokenization.

password_hash() will now chain the underlying Random\RandomException as the ValueError's $previous Exception when salt generation fails.

If using an array as the $command for proc_open(), it must now have at least one non empty element. Otherwise a ValueError is thrown.

proc_open() returns false if $command array is invalid command instead of resource object that produces warning later. This was already the case for Windows but it is now also the case if a posix_spawn implementation is in use (most Linux, BSD and MacOS platforms). There are still some old platforms where this behavior is not changed as posix_spawn is not supported there.

array_sum() and array_product() now warn when values in the array cannot be converted to int/float. Previously arrays and objects where ignored whilst every other value was cast to int. Moreover, objects that define a numeric cast (e.g. GMP) are now casted instead of ignored.

The $decimals of number_format() now properly handles negative integers. Rounding with a negative value for $decimals means that $num is rounded to $decimals significant digits before the decimal point. Previously negative $decimals were silently ignored and the number got rounded to zero decimal places.

A new $before_needle argument has been added to strrchr(). It behaves like its counterpart in the strstr() or stristr() functions.

str_getcsv() and fgetcsv() now return an empty string instead of a string with a single null byte for the last field which only contains an unterminated enclosure.

Other Changes to Extensions

Core

Using the increment/decrement operators (++/--) on values of type bool now emit warnings. This is because it currently has no effect, but will behave like $bool += 1 in the future.

Using the decrement operator (--) on values of type null now emit warnings. This is because it currently has no effect, but will behave like $null -= 1 in the future.

Internal objects that implement an _IS_NUMBER cast but not a do_operator handler that overrides addition and subtraction now can be incremented and decrement as if one would do $o += 1 or $o -= 1

DOM

The DOM lifetime mechanism has been reworked such that implicitly removed nodes can still be fetched. Previously this resulted in an exception.

SQLite3

The SQLite3 class now throws SQLite3Exception (extends Exception) instead of Exception.

The SQLite error code is now passed in the exception error code instead of being included in the error message.

Changes to INI File Handling

  • The assert.* INI settings have been deprecated. This comprises the following INI settings:

    • assert.active
    • assert.bail
    • assert.callback
    • assert.exception
    • assert.warning
    If the value of the setting is equal to the default value, no deprecation notice is emitted. The zend.assertions INI setting should be used instead.

  • zend.max_allowed_stack_size is a new INI directive to set the maximum allowed stack size. Possible values are 0 (detect the process or thread maximum stack size), -1 (no limit), or a positive number of bytes. The default is 0. When it is not possible to detect the process or thread maximum stack size, a known system default is used. Setting this value too high has the same effect as disabling the stack size limit. Fibers use fiber.stack_size as maximum allowed stack size. An Error is thrown when the process call stack exceeds zend.max_allowed_stack_size-zend.reserved_stack_size bytes, to prevent stack-overflow-induced segmentation faults, with the goal of making debugging easier. The stack size increases during uncontrolled recursions involving internal functions or the magic methods __toString(), __clone(), __sleep(), __destruct(). This is not related to stack buffer overflows, and is not a security feature.

  • zend.reserved_stack_size is a new INI directive to set the reserved stack size, in bytes. This is subtracted from the max allowed stack size, as a buffer, when checking the stack size.

Performance

DOM

Looping over a DOMNodeList now uses caching. Therefore requesting items no longer takes quadratic time by default.

Getting text content from nodes now avoids an allocation, resulting in a performance gain.

DOMChildNode::remove() now runs in O(1) performance.

Standard

The file() flags error check is now about 7% faster.

SPL

RecursiveDirectoryIterator now performs less I/O when looping over a directory.


  • « Other Changes
  • Migration de PHP 8.1.x vers PHP 8.2.x »
  • PHP Manual
  • Migrating from PHP 8.2.x to PHP 8.3.x
  • Windows Support

Windows Support

Core

Minimum supported Windows version has been bumped to Windows 8 or Windows Server 2012.


Migration de PHP 8.1.x vers PHP 8.2.x

Sommaire

  • Nouvelles fonctionnalités
  • Nouvelles fonctions
  • Nouvelles constantes globales
  • Modifications entrainant une incompatibilité ascendante
  • Fonctionnalités obsolètes
  • Autres changements
  • Support Windows

Cette nouvelle version mineure apporte un certain nombre de nouvelles fonctionnalités et quelques incompatibilités qui devraient être testées avant de changer de version de PHP dans des environnements de production.

Voir aussi les guides de migration entre les différentes versions de PHP 7.1.x, 7.2.x, 7.3.x, 7.4.x, 8.0.x, 8.1.x.


Nouvelles fonctionnalités

Cœur de PHP

Attribut SensitiveParameter

Ajout de l'attribut #[\SensitiveParameter] pour expurger les données sensibles dans les backtraces.

Directive INI error_log_mode

La directive INI error_log_mode a été ajoutée pour permettre de définir les permissions du fichier d'enregistrement des erreurs.

Propriétés des énumérations dans les expressions constantes

Il est maintenant possible de récupérer les propriétés des énumérations dans des expressions constantes.

Améliorations du système de types

Il est maintenant possible d'utiliser null et false en tant que types indépendants.

Le type true a été ajouté.

Il est désormais possible de combiner les types intersection et union. Le type doit être écrit en DNF.

Constantes dans les traits

Il est désormais possible de définir des constantes dans les traits.

Classes en lecture seule

La prise en charge de readonly sur les classes a été ajoutée.

cURL

Ajout de l'option CURLINFO_EFFECTIVE_METHOD, qui renvoie la méthode HTTP effective dans la valeur de retour de curl_getinfo().

Exposition de plusieurs nouvelles constantes de libcurl 7.62 à 7.80.

Ajout de la fonction curl_upkeep() pour effectuer les vérifications de maintien de la connexion.

DBA

Le pilote LMDB accepte désormais les drapeaux DBA_LMDB_USE_SUB_DIR ou DBA_LMDB_NO_SUB_DIR pour déterminer s'il doit créer ou non un sous-répertoire lors de la création d'un fichier de base de données.

OCI8

Ajout de la directive INI oci8.prefetch_lob_size et de la fonction oci_set_prefetch_lob() pour améliorer les performances des requêtes LOB en réduisant le nombre d'aller-retour entre PHP et la base de données Oracle lors de la récupération des LOBS. Ceci est utilisable avec les bases de données Oracle 12.2 ou plus récentes.

OpenSSL

Ajout du support AEAD pour l'algorithme chacha20-poly1305.

ODBC

Ajout des fonctions odbc_connection_string_is_quoted(), odbc_connection_string_should_quote(), et odbc_connection_string_quote(). Elles sont principalement utilisées en arrière-plan dans les extensions ODBC et PDO_ODBC, mais sont exposées à l'espace utilisateur pour faciliter les tests unitaires, et pour que les applications et les bibliothèques utilisateur puissent effectuer elles-mêmes le "quoting".

PCRE

Ajout de la prise en charge du modificateur n (NO_AUTO_CAPTURE), qui rend les groupes simples (xyz) non capturables. Seuls les groupes nommés comme (?<name>xyz) sont capturables. Cela n'affecte que les groupes qui sont capturés, il est toujours possible d'utiliser des références de sous-motifs numérotés, et le tableau des correspondances contiendra toujours des résultats numérotés.

Random

Il s'agit d'une nouvelle extension qui organise et consolide les implémentations existantes relatives aux générateurs de nombres aléatoires. De nouveaux et meilleurs RNG sont disponibles et les problèmes de portée sont éliminés.


Nouvelles fonctions

cURL

  • curl_upkeep()

IMAP

  • imap_is_open() (à partir de PHP 8.2.1)

MySQLi

  • mysqli_execute_query()

ODBC

  • odbc_connection_string_is_quoted()
  • odbc_connection_string_should_quote()
  • odbc_connection_string_quote()

OpenSSL

  • openssl_cipher_key_length()

Reflection

  • ReflectionFunction::isAnonymous()
  • ReflectionMethod::hasPrototype()

Sodium

XChaCha20

  • sodium_crypto_stream_xchacha20_xor_ic()

Standard

  • memory_reset_peak_usage()
  • ini_parse_quantity()

XML

  • libxml_get_external_entity_loader()


Nouvelles constantes globales

COM

  • DISP_E_PARAMNOTFOUND
  • LOCALE_NEUTRAL

cURL

  • CURLALTSVC_H1 (libcurl >= 7.64.1)
  • CURLALTSVC_H2 (libcurl >= 7.64.1)
  • CURLALTSVC_H3 (libcurl >= 7.64.1)
  • CURLALTSVC_READONLYFILE (libcurl >= 7.64.1)
  • CURLAUTH_AWS_SIGV4 (libcurl >= 7.75.0)
  • CURLE_PROXY (libcurl >= 7.73.0)
  • CURLFTPMETHOD_DEFAULT
  • CURLHSTS_ENABLE (libcurl >= 7.74.0)
  • CURLHSTS_READONLYFILE (libcurl >= 7.74.0)
  • CURLINFO_PROXY_ERROR (libcurl >= 7.73.0)
  • CURLINFO_REFERER (libcurl >= 7.76.0)
  • CURLINFO_RETRY_AFTER (libcurl >= 7.66.0)
  • CURLMOPT_MAX_CONCURRENT_STREAMS (libcurl >= 7.67.0)
  • CURLOPT_ALTSVC_CTRL (libcurl >= 7.64.1)
  • CURLOPT_ALTSVC (libcurl >= 7.64.1)
  • CURLOPT_AWS_SIGV4 (libcurl >= 7.75.0)
  • CURLOPT_CAINFO_BLOB (libcurl >= 7.77.0)
  • CURLOPT_DOH_SSL_VERIFYHOST (libcurl >= 7.76.0)
  • CURLOPT_DOH_SSL_VERIFYPEER (libcurl >= 7.76.0)
  • CURLOPT_DOH_SSL_VERIFYSTATUS (libcurl >= 7.76.0)
  • CURLOPT_HSTS_CTRL (libcurl >= 7.74.0)
  • CURLOPT_HSTS (libcurl >= 7.74.0)
  • CURLOPT_MAIL_RCPT_ALLLOWFAILS (libcurl >= 7.69.0)
  • CURLOPT_MAXAGE_CONN (libcurl >= 7.65.0)
  • CURLOPT_MAXFILESIZE_LARGE
  • CURLOPT_MAXLIFETIME_CONN (libcurl >= 7.80.0)
  • CURLOPT_PROXY_CAINFO_BLOB (libcurl >= 7.77.0)
  • CURLOPT_SASL_AUTHZID (libcurl >= 7.66.0)
  • CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256 (libcurl >= 7.80.0)
  • CURLOPT_SSL_EC_CURVES (libcurl >= 7.73.0)
  • CURLOPT_UPKEEP_INTERVAL_MS (libcurl >= 7.62.0)
  • CURLOPT_UPLOAD_BUFFERSIZE (libcurl >= 7.62.0)
  • CURLOPT_XFERINFOFUNCTION (libcurl >= 7.32.0)
  • CURLPROTO_MQTT (libcurl >= 7.71.0)
  • CURLPX_BAD_ADDRESS_TYPE (libcurl >= 7.73.0)
  • CURLPX_BAD_VERSION (libcurl >= 7.73.0)
  • CURLPX_CLOSED (libcurl >= 7.73.0)
  • CURLPX_GSSAPI (libcurl >= 7.73.0)
  • CURLPX_GSSAPI_PERMSG (libcurl >= 7.73.0)
  • CURLPX_GSSAPI_PROTECTION (libcurl >= 7.73.0)
  • CURLPX_IDENTD_DIFFER (libcurl >= 7.73.0)
  • CURLPX_IDENTD (libcurl >= 7.73.0)
  • CURLPX_LONG_HOSTNAME (libcurl >= 7.73.0)
  • CURLPX_LONG_PASSWD (libcurl >= 7.73.0)
  • CURLPX_LONG_USER (libcurl >= 7.73.0)
  • CURLPX_NO_AUTH (libcurl >= 7.73.0)
  • CURLPX_OK (libcurl >= 7.73.0)
  • CURLPX_RECV_ADDRESS (libcurl >= 7.73.0)
  • CURLPX_RECV_AUTH (libcurl >= 7.73.0)
  • CURLPX_RECV_CONNECT (libcurl >= 7.73.0)
  • CURLPX_RECV_REQACK (libcurl >= 7.73.0)
  • CURLPX_REPLY_ADDRESS_TYPE_NOT_SUPPORTED (libcurl >= 7.73.0)
  • CURLPX_REPLY_COMMAND_NOT_SUPPORTED (libcurl >= 7.73.0)
  • CURLPX_REPLY_CONNECTION_REFUSED (libcurl >= 7.73.0)
  • CURLPX_REPLY_GENERAL_SERVER_FAILURE (libcurl >= 7.73.0)
  • CURLPX_REPLY_HOST_UNREACHABLE (libcurl >= 7.73.0)
  • CURLPX_REPLY_NETWORK_UNREACHABLE (libcurl >= 7.73.0)
  • CURLPX_REPLY_NOT_ALLOWED (libcurl >= 7.73.0)
  • CURLPX_REPLY_TTL_EXPIRED (libcurl >= 7.73.0)
  • CURLPX_REPLY_UNASSIGNED (libcurl >= 7.73.0)
  • CURLPX_REQUEST_FAILED (libcurl >= 7.73.0)
  • CURLPX_RESOLVE_HOST (libcurl >= 7.73.0)
  • CURLPX_SEND_AUTH (libcurl >= 7.73.0)
  • CURLPX_SEND_CONNECT (libcurl >= 7.73.0)
  • CURLPX_SEND_REQUEST (libcurl >= 7.73.0)
  • CURLPX_UNKNOWN_FAIL (libcurl >= 7.73.0)
  • CURLPX_UNKNOWN_MODE (libcurl >= 7.73.0)
  • CURLPX_USER_REJECTED (libcurl >= 7.73.0)
  • CURLSSLOPT_AUTO_CLIENT_CERT (libcurl >= 7.77.0)
  • CURLSSLOPT_NATIVE_CA (libcurl >= 7.71.0)
  • CURLSSLOPT_NO_PARTIALCHAIN (libcurl >= 7.68.0)
  • CURLSSLOPT_REVOKE_BEST_EFFORT (libcurl >= 7.70.0)
  • CURL_VERSION_GSASL (libcurl >= 7.76.0)
  • CURL_VERSION_HSTS (libcurl >= 7.74.0)
  • CURL_VERSION_HTTP3 (libcurl >= 7.66.0)
  • CURL_VERSION_UNICODE (libcurl >= 7.72.0)
  • CURL_VERSION_ZSTD (libcurl >= 7.72.0)

DBA

  • DBA_LMDB_USE_SUB_DIR
  • DBA_LMDB_NO_SUB_DIR

Filtre

  • FILTER_FLAG_GLOBAL_RANGE

Sockets

Les options de socket suivantes sont désormais définies si elles sont prises en charge :

  • SO_INCOMING_CPU
  • SO_MEMINFO
  • SO_RTABLE (OpenBSD)
  • TCP_KEEPALIVE (MacOS)
  • TCP_KEEPCNT (Linux, autres)
  • TCP_KEEPIDLE (Linux, autres)
  • TCP_KEEPINTVL (Linux, autres)
  • TCP_NOTSENT_LOWAT
  • LOCAL_CREDS_PERSISTENT (FreeBSD)
  • SCM_CREDS2 (FreeBSD)
  • LOCAL_CREDS (NetBSD)
  • SO_BPF_EXTENSIONS
  • SO_SETFIB
  • TCP_CONGESTION (Linux, FreeBSD)
  • SO_ZEROCOPY (Linux)
  • MSG_ZEROCOPY (Linux)


Modifications entrainant une incompatibilité ascendante

Date

DateTime::createFromImmutable() a désormais un type de retour provisoire static, auparavant c'était DateTime.

DateTimeImmutable::createFromMutable() a désormais un type de retour provisoire static, auparavant c'était DateTimeImmutable.

Les symboles numériques dans les formats relatifs n'acceptent plus les signes multiples, par exemple +-2.

ODBC

L'extension ODBC échappe désormais le nom d'utilisateur et le mot de passe dans le cas où une chaîne de connexion et un nom d'utilisateur/mot de passe sont transmis, et que la chaîne doit être ajoutée. Auparavant, les valeurs utilisateur contenant des valeurs nécessitant un échappement pouvaient créer une chaîne de connexion malformée ou injecter des valeurs à partir de données fournies par l'utilisateur. Les règles d'échappement devraient être identiques au comportement de DbConnectionOptions dans la BCL .NET.

PDO_ODBC

L'extension PDO_ODBC échappe également le nom d'utilisateur et le mot de passe lorsqu'une chaîne de connexion est transmise. Voir la modification de l'extension ODBC pour plus de détails.

Standard

glob() retourne désormais un tableau vide si tous les chemins d'accès sont restreints par open_basedir. Auparavant, elle retournait false. De plus, un avertissement est désormais émis même si seulement quelques chemins sont restreints par open_basedir.

FilesystemIterator::__construct(): antérieur à PHP 8.2.0, le constante FilesystemIterator::SKIP_DOTS était toujours définie et ne pouvait pas être désactivée. Afin de conserver le comportement précédent, la constante doit être explicitement définie lors de l'utilisation du paramètre flags. La valeur par défaut du paramètre flags n'a pas été modifiée.

strtolower(),
strtoupper(),
stristr(),
stripos(),
strripos(),
lcfirst(),
ucfirst(),
ucwords(),
et str_ireplace() ne sont plus sensibles à la locale.
Elles effectuent désormais une conversion ASCII de la casse, comme si la locale était "C".
Des versions localisées de ces fonctions sont disponibles dans l'extension MBString.
De plus, array_change_key_case() et le tri avec
SORT_FLAG_CASE utilisent désormais également la conversion ASCII.

str_split() retourne désormais un tableau vide pour une chaîne de caractères vide. Auparavant, elle retournait un tableau avec une seule chaîne vide comme entrée. mb_str_split() n'est pas affectée par ce changement car elle se comportait déjà de la sorte.

ksort() et krsort() font désormais des comparaisons numériques de chaînes de caractères sous SORT_REGULAR en utilisant les règles standards de PHP 8.

var_export() n'omet plus le backslash de tête pour les classes exportées, c'est-à-dire qu'elles sont désormais pleinement qualifiées.

Bibliothèque standard de PHP (SPL)

Les méthodes suivantes enforcent désormais leur signature :

  • SplFileInfo::_bad_state_ex()
  • SplFileObject::getCsvControl()
  • SplFileObject::fflush()
  • SplFileObject::ftell()
  • SplFileObject::fgetc()
  • SplFileObject::fpassthru()

SplFileObject::hasChildren() a désormais un type de retour provisoire false, auparavant c'était bool.

SplFileObject::getChildren() a désormais un type de retour provisoire null, auparavant c'était ?RecursiveIterator.

GlobIterator retourne désormais un tableau vide si tous les chemins d'accès sont restreints par open_basedir. Auparavant, elle retournait false. De plus, un avertissement est désormais émis même si seulement certains chemins sont restreints par open_basedir.


Fonctionnalités obsolètes

PHP Core

Utilisation des propriétés dynamiques

La création de propriétés dynamiques est obsolète, à moins que la classe ne l'autorise en utilisant l'attribut #[\AllowDynamicProperties]. stdClass autorise les propriétés dynamiques. L'utilisation des méthodes magiques __get()/__set() n'est pas affectée par ce changement. L'avertissement d'obsolescence des propriétés dynamiques peut être adressé en :

  • Déclarant la propriété (préférable).
  • Ajoutant l'attribut #[\AllowDynamicProperties] à la classe (qui s'applique également à toutes les classes enfants).
  • Utilisant un WeakMap si des données supplémentaires doivent être associées à un objet dont on n'est pas propriétaire.

Callables relatifs

Les callables qui ne sont pas acceptés par la syntaxe $callable() (mais qui sont acceptés par call_user_func()) sont obsolètes. En particulier :

  • "self::method"
  • "parent::method"
  • "static::method"
  • ["self", "method"]
  • ["parent", "method"]
  • ["static", "method"]
  • ["Foo", "Bar::method"]
  • [new Foo, "Bar::method"]
Cela n'affecte pas les callables de méthode normaux tels que "A::method" ou ["A", "method"].

Interpolation de style "${var}" et "${expr}".

Les styles d'interpolation de chaîne "${var}" et "${expr}" sont obsolètes. Utilisez respectivement "$var"/"{$var}" et "{${expr}}".

MBString

L'utilisation des formats QPrint, Base64, Uuencode et HTML-ENTITIES est obsolète pour toutes les fonctions MBString. Contrairement à tous les autres encodages de texte supportés par MBString, ceux-ci n'encodent pas une séquence de points de code Unicode, mais plutôt une séquence d'octets bruts. Les valeurs de retour de la plupart des fonctions MBString ne sont pas claires lorsqu'un de ces non-encodages est spécifié. De plus, PHP a des implémentations distinctes pour chacun d'entre eux ; par exemple, les données UUencoded peuvent être gérées en utilisant convert_uuencode()/convert_uudecode().

SPL

La méthode interne SplFileInfo::_bad_state_ex() a été rendue obsolète.

Standard

utf8_encode() et utf8_decode() ont été rendues obsolètes.


Autres changements

Changements du cœur

Le type iterable est maintenant un alias intégré à la compilation pour le type array|Traversable. Les messages d'erreur relatifs à iterable utiliseront donc array|Traversable. La réflexion sur le type est préservée pour les simples iterable (et ?iterable) pour produire une classe ReflectionNamedType avec le nom iterable, cependant, l'utilisation de iterable dans les types union sera converti en array|Traversable.

Le format de date des cookies envoyés est désormais 'D, d M Y H:i:s \G\M\T'; auparavant, il était 'D, d-M-Y H:i:s T'.

Changements dans les modules SAPI

CLI

Les flux STDOUT, STDERR et STDIN ne sont plus fermés lors de la destruction des ressources ce qui est généralement le cas lorsque le CLI se termine. Il est cependant toujours possible de fermer explicitement ces flux en utilisant fclose() et similaires.

Fonctions modifiées

Cœur

Les fonctions strcmp(), strcasecmp(), strncmp(), strncasecmp(), et substr_compare(), qui utilisent une comparaison binaire sûre des chaînes de caractères, retournent désormais -1, 0 et 1.

DBA

dba_open() et dba_popen() ont désormais la signature enforcée suivante :

dba_open(
string $path,
string $mode,
?string $handler = null,
int $permission = 0644,
int $map_size = 0,
?int $flags = null
): resource|false

l'argument optionnel skip de dba_fetch() est maintenant à la fin en accord avec la sémantique de PHP. Sa signature est désormais :

dba_fetch(string|array $key, resource $handle, int $skip): string|false
La signature surchargée :
dba_fetch(string|array $key, int $skip, resource $handle): string|false
est toujours acceptée, mais il est recommandé d'utiliser la nouvelle variante standard.

Random

random_bytes() et random_int() lancent désormais \Random\RandomException en cas d'échec du CSPRNG. Auparavant, une simple \Exception était lancée à la place.

SPL

Le paramètre iterator de iterator_to_array() et iterator_count() est étendu à iterable au lieu de Iterator, ce qui permet de transmettre des tableaux.

Autres modifications apportées aux extensions

Date

Les propriétés de DatePeriod sont désormais correctement déclarées.

Intl

Les instances de IntlBreakIterator, IntlRuleBasedBreakIterator, IntlCodePointBreakIterator, IntlPartsIterator, IntlCalendar, Collator, IntlIterator, UConverter, IntlDateFormatter, IntlDatePatternGenerator, MessageFormatter, ResourceBundle, Spoofchecker, IntlTimeZone, et Transliterator ne sont plus sérialisables. Auparavant, elles pouvaient être sérialisés, mais la désérialisation produisait des objets inutilisables ou échouait.

MySQLi

Le support de libmysql a été supprimé et il n'est plus possible de compiler mysqli avec libmysql. Désormais, l'extension mysqli ne peut être compilée qu'avec mysqlnd. Toutes les fonctionnalités de libmysql non disponibles dans mysqlnd ont été supprimées :

  • La propriété reconnect de mysqli_driver
  • La directive INI mysqli.reconnect
  • La constante MYSQLI_IS_MARIADB est obsolète

OCI8

La version minimale requise de la bibliothèque Oracle Client est désormais 11.2.

PCRE

Les caractères NUL (\0) dans les chaînes de motifs sont maintenant supportés.

Session

Essayer de modifier le session.cookie_samesite alors que la session est active ou que la sortie a déjà été envoyée échouera désormais et émettra un avertissement. Le comportement est ainsi aligné sur tous les autres paramètres INI de session.

SQLite3

sqlite3.defensive est maintenant INI_USER.

Standard

getimagesize() indique désormais les dimensions réelles de l'image, bits et canaux des images AVIF. Auparavant, les dimensions étaient indiquées sous la forme 0x0, et les bits et les canaux n'étaient pas indiqués du tout.

Tidy

Les propriétés de la classe tidy sont désormais correctement déclarées. Et celles de la classe tidyNode sont maintenant correctement déclarées en lecture seule.

Zip

L'extension Zip a été mise à jour à la version 1.20.0, qui ajoute les méthodes suivantes :

  • ZipArchive::clearError()
  • ZipArchive::getStreamName()
  • ZipArchive::getStreamIndex()

Changements dans la gestion des fichiers INI

La prise en charge des préfixes binaires (0b/0B) et octaux (0o/0O) a été ajoutée aux paramètres INI pour les nombres entiers. Les paramètres INI entiers qui commencent par un zéro (0) continuent d'être interprétés comme des nombres entiers octaux.

L'analyse de certaines valeurs mal formatées déclenche désormais un avertissement alors qu'elle était auparavant ignorée silencieusement. Pour des raisons de compatibilité ascendante, l'interprétation de ces valeurs n'a pas changé. Cela affecte les paramètres suivants :

  • bcmath.scale
  • com.code_page
  • default_socket_timeout
  • fiber.stack_size
  • hard_timeout
  • intl.error_level
  • ldap.max_links
  • max_input_nesting_level
  • max_input_vars
  • mbstring.regex_retry_limit
  • mbstring.regex_stack_limit
  • mysqli.allow_local_infile
  • mysqli.allow_persistent
  • mysqli.default_port
  • mysqli.max_links
  • mysqli.max_persistent
  • mysqli.rollback_on_cached_plink
  • mysqlnd.log_mask
  • mysqlnd.mempool_default_size
  • mysqlnd.net_read_buffer_size
  • mysqlnd.net_read_timeout
  • oci8.default_prefetch
  • oci8.max_persistent
  • oci8.persistent_timeout
  • oci8.ping_interval
  • oci8.prefetch_lob_size
  • oci8.privileged_connect
  • oci8.statement_cache_size
  • odbc.allow_persistent
  • odbc.check_persistent
  • odbc.max_persistent
  • odbc.max_links
  • odbc.defaultbinmode
  • odbc.default_cursortype
  • odbc.defaultlrl
  • opcache.consistency_checks
  • opcache.file_update_protection
  • opcache.force_restart_timeout
  • opcache.interned_strings_buffer
  • opcache.jit_bisect_limit
  • opcache.jit_blacklist_root_trace
  • opcache.jit_blacklist_side_trace
  • opcache.jit_debug
  • opcache.jit_hot_func
  • opcache.jit_hot_loop
  • opcache.jit_hot_return
  • opcache.jit_hot_side_exit
  • opcache.jit_max_exit_counters
  • opcache.jit_max_loop_unrolls
  • opcache.jit_max_polymorphic_calls
  • opcache.jit_max_recursive_calls
  • opcache.jit_max_recursive_returns
  • opcache.jit_max_root_traces
  • opcache.jit_max_side_traces
  • opcache.log_verbosity_level
  • opcache.max_file_size
  • opcache.opt_debug_level
  • opcache.optimization_level
  • opcache.revalidate_freq
  • output_buffering
  • pcre.backtrack_limit
  • pcre.recursion_limit
  • pgsql.max_links
  • pgsql.max_persistent
  • post_max_size
  • realpath_cache_size
  • realpath_cache_ttl
  • session.cache_expire
  • session.cookie_lifetime
  • session.gc_divisor
  • session.gc_maxlifetime
  • session.gc_probability
  • soap.wsdl_cache_limit
  • soap.wsdl_cache_ttl
  • unserialize_max_depth
  • upload_max_filesize
  • user_ini.cache_ttl
  • xmlrpc_error_number
  • zend.assertions
  • zlib.output_compression_level


Support Windows

Cœur

Les messages d'erreur spécifiques à Windows ne sont plus localisés, mais toujours affichés en anglais pour mieux correspondre aux messages d'erreur de PHP.

Un support préliminaire et hautement expérimental pour la construction sur ARM64 a été ajouté.

OCI8

Parce que la construction avec Oracle Client 10g n'est plus supportée de toute façon, l'option de configuration --with-oci8 a été abandonnée. Les options de configuration --with-oci8-11g, --with-oci8-12c et --with-oci8-19 sont toujours supportées.

Zip

L'extension Zip a été mise à jour à la version 1.21.0, et est maintenant compilée en tant que bibliothèque partagée (DLL) par défaut.


Migration de PHP 8.0.x vers PHP 8.1.x

Sommaire

  • New Features
  • New Classes and Interfaces
  • New Functions
  • New Global Constants
  • Backward Incompatible Changes
  • Deprecated Features
  • Other Changes

Cette nouvelle version mineure apporte un certain nombre de nouvelles fonctionnalités et quelques incompatibilités qui devraient être testées avant de changer de version de PHP dans des environnements de production.

Voir aussi les guides de migration entre les différentes versions de PHP 7.1.x, 7.2.x, 7.3.x, 7.4.x, 8.0.x.


New Features

PHP Core

Integer Octal Literal Prefix

Octal integers can now use an explicit 0o/0O prefix in integer literals, similarly to binary and hexadecimal integer literals.

<?php
014; // Non-prefix octal literal
0o14; // Prefixed octal literal
?>

Array Unpacking with String Keys

Added support for array unpacking with strings keys.

<?php
$arr1 = [1, 'a' => 'b'];
$arr2 = [...$arr1, 'c' => 'd']; //[1, 'a' => 'b', 'c' => 'd']
?>

Named Argument After Argument Unpacking

It is now possible to specify named arguments after an argument unpack. e.g. foo(...$args, named: $arg).

full-path Key for File Uploads

File uploads now provide an additional full_path key, which contains the full path (rather than just the basename) of the uploaded file. This is intended for use in conjunction with "upload webkitdirectory".

Enumerations

Support for Enumerations has been added.

Fibers

Support for Fibers has been added.

First Class Callable Syntax

Closures for callables can now be created using the syntax myFunc(...), which is identical to Closure::fromCallable('myFunc').

Note: The ... is part of the syntax, and not an omission.

Intersection Types

Support for intersection types has been added.

Attention

Intersection types cannot be used together with union types

Never type

A new return only type never has been added. This indicates that a function either exit(), throws an exception, or doesn't terminate.

new in Initializers

It is now possible to use new ClassName() expressions as the default value of a parameter, static variable, global constant initializers, and as attribute arguments. Objects can also be passed to define() now.

Readonly properties

Support for readonly has been added.

Final class constants

Added support for the final modifier for class constants. Also, interface constants become overridable by default.

CURL

Added the CURLOPT_DOH_URL option.

Added options for blob certificate when libcurl >= 7.71.0:

  • CURLOPT_ISSUERCERT_BLOB
  • CURLOPT_PROXY_ISSUERCERT
  • CURLOPT_PROXY_ISSUERCERT_BLOB
  • CURLOPT_PROXY_SSLCERT_BLOB
  • CURLOPT_PROXY_SSLKEY_BLOB
  • CURLOPT_SSLCERT_BLOB
  • CURLOPT_SSLKEY_BLOB

Added CURLStringFile, which can be used to post a file from a chaîne de caractères rather than a file:

<?php
$file = new CURLStringFile($data, 'filename.txt', 'text/plain');
curl_setopt($curl, CURLOPT_POSTFIELDS, ['file' => $file]);
?>

FPM

Added openmetrics status format. It can be used by Prometheus to fetch FPM metrics.

Added new pool option for the dynamic process manager called pm.max_spawn_rate. It allows to start a number of children at a faster rate when dynamic pm is selected. The default value is 32 which was the previous hard coded value.

GD

Avif support is now available through imagecreatefromavif() and imageavif(), if libgd has been built with Avif support.

Hash

The following functions hash(), hash_file(), and hash_init() now support an additional optional options argument, which can be used to pass algorithm specific data.

MurmurHash3

Added support for MurmurHash3 with streaming support. The following variants are implemented:

  • murmur3a, 32-bit hash
  • murmur3c, 128-bit hash for x86
  • murmur3f, 128-bit hash for x64

The initial hash state can be passed through the seed key in the options array, for example:

<?php
$h = hash("murmur3f", $data, options: ["seed" => 42]);
echo $h, "\n";
?>
A valid seed value is within the range from 0 to the platform defined UINT_MAX, usually 4294967295.

xxHash

Added support for xxHash. The following variants are implemented:

  • xxh32, 32-bit hash
  • xxh64, 64-bit hash
  • xxh3, 64-bit hash
  • xxh128, 128-bit hash

The initial hash state can be passed through the seed key in the options array, for example:

<?php
$h = hash("xxh3", $data, options: ["seed" => 42]);
echo $h, "\n";
?>
Secret usage is supported through passing the secret key in the options array, too:
<?php
$h = hash("xxh3", $data, options: ["secret" => "at least 136 bytes long secret here"]);
echo $h, "\n";
?>
The quality of the custom secret is crucial for the quality of the resulting hash. It is highly recommended for the secret to use the best possible entropy.

MySQLi

New INI directive mysqli.local_infile_directory

The mysqli.local_infile_directory INI directive has been added, which can be used to specify a directory from which files are allowed to be loaded. It is only meaningful if mysqli.allow_local_infile is not enabled, as all directories are allowed in that case.

Binding parameters in execute

It is now possible to bind parameters by passing them as an array to mysqli_stmt::execute(). All values will be bound as strings. Only list arrays are allowed. This new feature is not available when MySQLi is compiled with libmysqlclient.

<?php
$stmt = $mysqli->prepare('INSERT INTO users(id, name) VALUES(?,?)');
$stmt->execute([1, $username]);
?>

New method mysqli_result::fetch_column()

mysqli_result::fetch_column() has been added to allow fetching a single scalar value from the result set. The new method accepts an optional 0-based column parameter of type entier specifying which column to fetch from.

<?php
$result = $mysqli->query('SELECT username FROM users WHERE id = 123');
echo $result->fetch_column();
?>

PDO

The PDO::MYSQL_ATTR_LOCAL_INFILE_DIRECTORY attribute has been added, which can be used to specify a directory from which files are allowed to be loaded. It is only meaningful if PDO::MYSQL_ATTR_LOCAL_INFILE is not enabled, as all directories are allowed in that case.

PDO_SQLite

SQLite's "file:" DSN syntax is now supported, which allows specifying additional flags. This feature is not available if open_basedir is set.

<?php
new PDO('sqlite:file:path/to/sqlite.db?mode=ro')
?>

POSIX

Added POSIX_RLIMIT_KQUEUES and POSIX_RLIMIT_NPTS. These rlimits are only available on FreeBSD.

Standard

fputcsv() now accepts a new eol argument which allows to define a custom End of Line sequence, the default remains the same and is "\n".

SPL

SplFileObject::fputcsv() now accepts a new eol argument which allows to define a custom End of Line sequence, the default remains the same and is "\n".


  • « New Features
  • New Functions »
  • PHP Manual
  • Migration de PHP 8.0.x vers PHP 8.1.x
  • New Classes and Interfaces

New Classes and Interfaces

cURL

  • CURLStringFile

Intl

  • IntlDatePatternGenerator

Reflection

  • ReflectionFiber


New Functions

PHP Core

  • array_is_list()

GD

  • imagecreatefromavif()
  • imageavif()

MySQLi

  • mysqli_result::fetch_column()
  • mysqli_fetch_column()

Process Control

  • pcntl_rfork()

Reflection

  • ReflectionFunctionAbstract::getClosureUsedVariables()

Standard

  • fsync()
  • fdatasync()

Sodium

XChaCha20

  • sodium_crypto_stream_xchacha20()
  • sodium_crypto_stream_xchacha20_keygen()
  • sodium_crypto_stream_xchacha20_xor()

Ristretto255

Ristretto255 functions are available as of libsodium 1.0.18.

  • sodium_crypto_core_ristretto255_add()
  • sodium_crypto_core_ristretto255_from_hash()
  • sodium_crypto_core_ristretto255_is_valid_point()
  • sodium_crypto_core_ristretto255_random()
  • sodium_crypto_core_ristretto255_scalar_add()
  • sodium_crypto_core_ristretto255_scalar_complement()
  • sodium_crypto_core_ristretto255_scalar_invert()
  • sodium_crypto_core_ristretto255_scalar_mul()
  • sodium_crypto_core_ristretto255_scalar_negate()
  • sodium_crypto_core_ristretto255_scalar_random()
  • sodium_crypto_core_ristretto255_scalar_reduce()
  • sodium_crypto_core_ristretto255_scalar_sub()
  • sodium_crypto_core_ristretto255_sub()
  • sodium_crypto_scalarmult_ristretto255()
  • sodium_crypto_scalarmult_ristretto255_base()


New Global Constants

cURL

  • CURLOPT_DOH_URL
  • CURLOPT_ISSUERCERT_BLOB
  • CURLOPT_PROXY_ISSUERCERT
  • CURLOPT_PROXY_ISSUERCERT_BLOB
  • CURLOPT_PROXY_SSLCERT_BLOB
  • CURLOPT_PROXY_SSLKEY_BLOB
  • CURLOPT_SSLCERT_BLOB
  • CURLOPT_SSLKEY_BLOB

GD

  • IMG_AVIF
  • IMG_WEBP_LOSSLESS

MySQLi

  • MYSQLI_REFRESH_REPLICA

    This constant has been added as a replacement for MYSQLI_REFRESH_SLAVE, in line with an upstream change in MySQL. The old constant is still available for backwards-compatibility reasons, but may be deprecated/removed in the future.

PCNTL

  • PRIO_DARWIN_BG
  • PRIO_DARWIN_THREAD

POSIX

  • POSIX_RLIMIT_KQUEUES
  • POSIX_RLIMIT_NPTS

Sockets

The following socket options are now defined if they are supported:

  • SO_ACCEPTFILTER
  • SO_DONTTRUNC
  • SO_WANTMORE
  • SO_MARK
  • TCP_DEFER_ACCEPT

Sodium

  • SODIUM_CRYPTO_STREAM_XCHACHA20_NONCEBYTES
  • SODIUM_CRYPTO_STREAM_XCHACHA20_KEYBYTES
  • SODIUM_CRYPTO_SCALARMULT_RISTRETTO255_BYTES
  • SODIUM_CRYPTO_SCALARMULT_RISTRETTO255_SCALARBYTES
  • SODIUM_CRYPTO_CORE_RISTRETTO255_BYTES
  • SODIUM_CRYPTO_CORE_RISTRETTO255_HASHBYTES
  • SODIUM_CRYPTO_CORE_RISTRETTO255_SCALARBYTES
  • SODIUM_CRYPTO_CORE_RISTRETTO255_NONREDUCEDSCALARBYTES

Tokenizer

  • T_READONLY


Backward Incompatible Changes

PHP Core

$GLOBALS Access Restrictions

Access to the $GLOBALS array is now subject to a number of restrictions. Read and write access to individual array elements like $GLOBALS['var'] continues to work as-is. Read-only access to the entire $GLOBALS array also continues to be supported. However, write access to the entire $GLOBALS array is no longer supported. For example, array_pop($GLOBALS) will result in an error.

Usage of static Variables in Inherited Methods

When a method using static variables is inherited (but not overridden), the inherited method will now share static variables with the parent method.

<?php
class A {
public static function counter() {
static $counter = 0;
$counter++;
return $counter;
}
}
class B extends A {}
var_dump(A::counter()); // int(1)
var_dump(A::counter()); // int(2)
var_dump(B::counter()); // int(3), previously int(1)
var_dump(B::counter()); // int(4), previously int(2)
?>
This means that static variables in methods now behave the same way as static properties.

Optional parameters specified before required parameters

An optional parameter specified before required parameters is now always treated as required, even when called using named arguments. As of PHP 8.0.0, but prior to PHP 8.1.0, the below emits a deprecation notice on the definition, but runs successfully when called. As of PHP 8.1.0, an error of class ArgumentCountError is thrown, as it would be when called with positional arguments.

<?php
function makeyogurt($container = "bowl", $flavour)
{
return "Making a $container of $flavour yogurt.\n";
}
try
{
echo makeyogurt(flavour: "raspberry");
}
catch (Error $e)
{
echo get_class($e), ' - ', $e->getMessage(), "\n";
}
?>

Résultat de l'exemple ci-dessus en PHP 8.0 :

Deprecated: Required parameter $flavour follows optional parameter $container
 in example.php on line 3
Making a bowl of raspberry yogurt.

Résultat de l'exemple ci-dessus en PHP 8.1 :

Deprecated: Optional parameter $container declared before required parameter
 $flavour is implicitly treated as a required parameter in example.php on line 3
ArgumentCountError - makeyogurt(): Argument #1 ($container) not passed

Note that a default value of null can be used before required parameters to specify a nullable type, but the parameter will still be required.

Return Type Compatibility with Internal Classes

Most non-final internal methods now require overriding methods to declare a compatible return type, otherwise a deprecated notice is emitted during inheritance validation. In case the return type cannot be declared for an overriding method due to PHP cross-version compatibility concerns, a ReturnTypeWillChange attribute can be added to silence the deprecation notice.

New Keywords

readonly is a keyword now. However, it still may be used as function name.

never is now a reserved word, so it cannot be used to name a class, interface or trait, and is also prohibited from being used in namespaces.

Resource to Object Migration

Several ressources have been migrated to objets. Return value checks using is_resource() should be replaced with checks for false.

  • The FileInfo functions now accept and return finfo objects instead of fileinfo ressources.

  • The FTP functions now accept and return FTP\Connection objects instead of ftp ressources.

  • The IMAP functions now accept and return IMAP\Connection objects instead of imap ressources.

  • The LDAP functions now accept and return LDAP\Connection objects instead of ldap link ressources.

  • The LDAP functions now accept and return LDAP\Result objects instead of ldap result ressources.

  • The LDAP functions now accept and return LDAP\ResultEntry objects instead of ldap result entry ressources.

  • The PgSQL functions now accept and return PgSql\Connection objects instead of pgsql link ressources.

  • The PgSQL functions now accept and return PgSql\Result objects instead of pgsql result ressources.

  • The PgSQL functions now accept and return PgSql\Lob objects instead of pgsql large object ressources.

  • The PSpell functions now accept and return PSpell\Dictionary objects instead of pspell ressources.

  • The PSpell functions now accept and return PSpell\Config objects instead of pspell config ressources.

MySQLi

mysqli_fetch_fields(), and mysqli_fetch_field_direct() will now always return 0 for the max_length. This information can be computed by iterating over the result set, and taking the maximum length. This is what PHP was doing internally previously.

The MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH option no longer has any effect.

The MYSQLI_STORE_RESULT_COPY_DATA option no longer has any effect. Passing any value to the mode parameter of mysqli::store_result() no longer has any effect.

mysqli::connect() now returns true instead of null on success.

The default error handling mode has been changed from "silent" to "exceptions" See the MySQLi reporting mode page for more details on what this entails, and how to explicitly set this attribute. To restore the previous behaviour use: mysqli_report(MYSQLI_REPORT_OFF);

Classes extending mysqli_stmt::execute() are now required to specify the additional optional parameter.

MySQLnd

The mysqlnd.fetch_data_copy INI directive has been removed. This should not result in user-visible behavior changes.

OpenSSL

EC private keys will now be exported in PKCS#8 format rather than traditional format, just like all other keys.

openssl_pkcs7_encrypt() and openssl_cms_encrypt() will now to default using AES-128-CBC rather than RC2-40. The RC2-40 cipher is considered insecure and not enabled by default by OpenSSL 3.

PHP Data Objects

PDO::ATTR_STRINGIFY_FETCHES now stringifies values of type booléen to "0" or "1". Previously booléens were not stringified.

Calling PDOStatement::bindColumn() with PDO::PARAM_LOB will now constantly bind a stream result when PDO::ATTR_STRINGIFY_FETCHES is not enabled. Previously, the result would either be a stream or a string depending on the used database driver and the time the binding is performed.

MySQL Driver

Integers and floats in result sets will now be returned using native PHP types instead of chaîne de caractèress when using emulated prepared statements. This matches the behavior of native prepared statements. The previous behaviour can be restored by enabling the PDO::ATTR_STRINGIFY_FETCHES option.

SQLite Driver

Integers and floats in results sets will now be returned using native PHP types. The previous behaviour can be restored by enabling the PDO::ATTR_STRINGIFY_FETCHES option.

Phar

To comply with the ArrayAccess interface, Phar::offsetUnset() and PharData::offsetUnset() no longer return a booléen.

Standard

version_compare() no longer accepts undocumented operator abbreviations.

htmlspecialchars(), htmlentities(), htmlspecialchars_decode(), html_entity_decode(), and get_html_translation_table() now use ENT_QUOTES | ENT_SUBSTITUTE rather than ENT_COMPAT by default. This means that ' is escaped to &#039; while previously nothing was done. Additionally, malformed UTF-8 will be replaced by a Unicode substitution character, instead of resulting in an empty string.

debug_zval_dump() now prints the refcount of a reference wrappers with their refcount, instead of only prepending & to the value. This more accurately models reference representation since PHP 7.0.

debug_zval_dump() now prints interned instead of a dummy refcount for interned strings and immutable arrays.

Standard PHP Library (SPL)

SplFixedArray, will now be JSON encoded like an tableau


Deprecated Features

PHP Core

Implementing Serializable without __serialize() and __unserialize()

Either only the new methods should be implemented, if no support for PHP prior to version 7.4 is provided, or both should be implemented.

Passing null to non-nullable parameters of built-in functions

Scalar types for built-in functions are nullable by default. This behaviour is deprecated to align with the behaviour of user-defined functions, where scalar types need to be marked as nullable explicitly.

<?php
var_dump(str_contains("foobar", null));
// Deprecated: Passing null to parameter #2 ($needle) of type string
// is deprecated
?>

Implicit incompatible nombre décimal to entier conversions

The implicit conversion of nombre décimal to entier which leads to a loss in precision is now deprecated. This affects tableau keys, entier type declarations in coercive mode, and operators working on entiers.

<?php
$a = [];
$a[15.5]; // deprecated, as key value loses the 0.5 component
$a[15.0]; // ok, as 15.0 == 15
?>

Calling a static element on a trait

Calling a static method, or accessing a static property directly on a trait is deprecated. Static methods and properties should only be accessed on a class using the trait.

Returning a non-tableau from __sleep()

Returning a value which is not an tableau from __sleep() now generates a diagnostic.

Returning by reference from a void function

<?php
function &test(): void {}
?>
Such a function is contradictory, and already emits the following E_NOTICE when called: Only variable references should be returned by reference.

Autovivification from false

Autovivification is the process of creating a new tableau when appending to a value. Autovivification is prohibited from scalar values, false however was an exception. This is now deprecated.

<?php
$arr = false;
$arr[] = 2; // deprecated
?>

Note:

Autovivification from null and undefined values is still allowed:

<?php
// From undefined
$arr[] = 'some value';
$arr['doesNotExist'][] = 2;
// From null
$arr = null;
$arr[] = 2;
?>

ctype

Verifying non-string arguments

Passing a non-string argument is deprecated. In the future, the argument will be interpreted as a string instead of an ASCII codepoint. Depending on the intended behavior, the argument should either be cast to chaîne de caractères or an explicit call to chr() should be made. All ctype_*() functions are affected.

Date

date_sunrise() and date_sunset() have been deprecated in favor of date_sun_info().

strptime() has been deprecated.
Use date_parse_from_format() instead (for locale-independent parsing),
or IntlDateFormatter::parse() (for locale-dependent parsing).

strftime() and gmstrftime() have been deprecated.
Use date() instead (for locale-independent formatting),
or IntlDateFormatter::format() (for locale-dependent formatting).

Filter

The FILTER_SANITIZE_STRING and FILTER_SANITIZE_STRIPPED filters are deprecated.

The filter.default INI directive is deprecated.

GD

The num_points of imagepolygon(), imageopenpolygon() and imagefilledpolygon() has been deprecated.

Hash

The mhash(),
mhash_keygen_s2k(),
mhash_count(),
mhash_get_block_size(),
and mhash_get_hash_name() have been deprecated.
Use the hash_*() functions instead.

IMAP

The NIL constant has been deprecated. Use 0 instead.

Intl

Calling IntlCalendar::roll() with a booléen argument is deprecated. Use 1 and -1 instead of true and false respectively.

Multibyte String

Calling mb_check_encoding() without any arguments is deprecated.

MySQLi

The mysqli_driver::$driver_version property has been deprecated. It was meaningless and outdated, use PHP_VERSION_ID instead.

Calling mysqli::get_client_info() or mysqli_get_client_info() with the mysqli argument has been deprecated. Call mysqli_get_client_info() without any arguments to obtain the version information of the client library.

The mysqli::init() method has been deprecated.
Replace calls to parent::init() with
parent::__construct().

OCI8

The oci8.old_oci_close_semantics INI directive is deprecated.

ODBC

odbc_result_all() has been deprecated.

PDO

The PDO::FETCH_SERIALIZE fetch mode has been deprecated.

PgSQL

Not passing the connection argument to all pgsql_*() functions has been deprecated.

SOAP

The ssl_method option of SoapClient::__construct() has been deprecated in favor of SSL stream context options.

Standard

Calling key(), current(), next(), prev(), reset(), or end() on objets is deprecated. Either convert the objet to an tableau using get_mangled_object_vars() first, or use the methods provided by a class that implements Iterator, such as ArrayIterator, instead.

The auto_detect_line_endings INI directive is deprecated. If necessary, handle "\r" line breaks manually instead.

The FILE_BINARY and FILE_TEXT constants have been deprecated. They never had any effect.


Other Changes

Changes in SAPI Modules

CLI

Using -a without the readline extension will now result in an error. Previously, -a without readline had the same behavior as calling php without any arguments, apart from printing an additional "Interactive mode enabled" message. This mode was not interactive.

PHPDBG

Remote functionality from phpdbg has been removed.

Changed Functions

Core

The order of properties used in foreach, var_dump(), serialize(), object comparison, etc. was changed. Properties are now ordered naturally according to their declaration and inheritance. Properties declared in a base class are going to be before the child properties.

This order is consistent with internal layout of properties in zend_object structure and repeats the order in default_properties_table[] and properties_info_table[]. The old order was not documented and was caused by class inheritance implementation details.

Filter

The FILTER_FLAG_ALLOW_OCTAL flag of the FILTER_VALIDATE_INT filter now accept octal string with the leading octal prefix ("0o"/"0O").

GMP

All GMP functions now accept octal string with the leading octal prefix ("0o"/"0O").

PDO ODBC

PDO::getAttribute() with
PDO::ATTR_SERVER_INFO and
PDO::ATTR_SERVER_VERSION
now return values instead of throwing PDOException.

Reflection

ReflectionProperty::setAccessible() and ReflectionMethod::setAccessible() no longer have an effect. Properties and methods are now always considered accessible via Reflection.

Standard

syslog() is now binary safe.

Other Changes to Extensions

GD

imagewebp() can now do lossless WebP encoding by passing IMG_WEBP_LOSSLESS as the quality.

This constant is only defined, if the used libgd supports lossless WebP encoding.

MySQLi

mysqli_stmt::next_result() and mysqli::fetch_all() are now available when linking against libmysqlclient.

OpenSSL

  • The OpenSSL extension now requires at least OpenSSL version 1.0.2.

  • OpenSSL 3.0 is now supported. Be aware that many ciphers are no longer enabled by default (part of the legacy provider), and that parameter validation (e.g. minimum key sizes) is stricter now.

Phar

  • SHA256 is now used by default for signatures.

  • Added support for OpenSSL_SHA256 and OpenSSL_SHA512 signatures.

SNMP

  • Added support for SHA256 and SHA512 for the security protocol.

Standard

--with-password-argon2 now uses pkg-config to detect libargon2. As such, an alternative libargon2 location should now be specified using PKG_CONFIG_PATH.

Changes to INI File Handling

  • The log_errors_max_len INI directive has been removed. It no longer had an effect since PHP 8.0.0.

  • A leading dollar in a quoted string can now be escaped: "\${" will now be interpreted as a string with contents ${.

  • Backslashes in double quoted strings are now more consistently treated as escape characters. Previously, "foo\\" followed by something other than a newline was not considered as a terminated string. It is now interpreted as a string with contents foo\. However, as an exception, the string "foo\" followed by a newline will continue to be treated as a valid string with contents foo\ rather than an unterminated string. This exception exists to support naive uses of Windows file paths such as "C:\foo\".


Migration de PHP 7.4.x vers PHP 8.0.x

Sommaire

  • New Features
  • Modifications entrainant une incompatibilité ascendante
  • Fonctionnalités obsolètes
  • Other Changes

Cette nouvelle version majeure apporte un certain nombre de nouvelles fonctionnalités et quelques incompatibilités qui devraient être testées avant de changer de version de PHP dans des environnements de production.

Voir aussi les guides de migration entre les différentes versions de PHP 7.0.x, 7.1.x, 7.2.x, 7.3.x. 7.4.x.


New Features

PHP Core

Named Arguments

Support for Named Arguments has been added.

Attributes

Support for Attributes has been added.

Constructor Property Promotion

Support for constructor property promotion (declaring properties in the constructor signature) has been added.

Union Types

Support for union types has been added.

Match Expression

Support for match expressions has been added.

Nullsafe Operator

Support for the nullsafe operator (?->) has been added.

Other new Features

  • The WeakMap class has been added.

  • The ValueError class has been added.

  • Any number of function parameters may now be replaced by a variadic argument, as long as the types are compatible. For example, the following code is now allowed:

    <?php
    class A {
    public function     method(int $many, string $parameters, $here) {}
    }
    class     B extends A {
    public function     method(...$everything) {}
    }
    ?>

  • static (as in "late static binding") can now be used as a return type:

    <?php
    class Test {
    public function     create(): static {
    return new static();
    }
    }
    ?>

  • It is now possible to fetch the class name of an object using $object::class. The result is the same as get_class($object).

  • new and instanceof can now be used with arbitrary expressions, using new (expression)(...$args) and $obj instanceof (expression).

  • Some consistency fixes to variable syntax have been applied, for example writing Foo::BAR::$baz is now allowed.

  • Added Stringable interface, which is automatically implemented if a class defines a __toString() method.

  • Traits can now define abstract private methods. Such methods must be implemented by the class using the trait.

  • throw can now be used as an expression. That allows usages like:

    <?php
    $fn     = fn() => throw new Exception('Exception in arrow function');
    $user = $session->user ?? throw new Exception('Must have user');

  • An optional trailing comma is now allowed in parameter lists.

    <?php
    function functionWithLongSignature(
    Type1 $parameter1,
    Type2 $parameter2, // <-- This comma is now allowed.
    ) {
    }

  • It is now possible to write catch (Exception) to catch an exception without storing it in a variable.

  • Support for mixed type has been added.

  • Private methods declared on a parent class no longer enforce any inheritance rules on the methods of a child class (with the exception of final private constructors). The following example illustrates which restrictions have been removed:

    <?php
    class ParentClass {
    private function     method1() {}
    private function     method2() {}
    private static function     method3() {}
    // Throws a warning, as "final" no longer has an effect:
    private final function method4() {}
    }
    class     ChildClass extends ParentClass {
    // All of the following are now allowed, even though the modifiers aren't
    // the same as for the private methods in the parent class.
    public abstract function method1() {}
    public static function     method2() {}
    public function     method3() {}
    public function     method4() {}
    }
    ?>

  • get_resource_id() has been added, which returns the same value as (int) $resource. It provides the same functionality under a clearer API.

  • The InternalIterator has been added.

Date and Time

  • DateTime::createFromInterface() and DateTimeImmutable::createFromInterface() have been added.

  • The DateTime format specifier p has been added, which is the same as P but returns Z rather than +00:00 for UTC.

DOM

DOMParentNode and DOMChildNode with new traversal and manipulation APIs have been added.

Filter

FILTER_VALIDATE_BOOL has been added as an alias for FILTER_VALIDATE_BOOLEAN. The new name is preferred, as it uses the canonical type name.

Enchant

enchant_dict_add(), enchant_dict_is_added(), and LIBENCHANT_VERSION have been added.

FPM

Added a new option pm.status_listen that allows getting the status from different endpoint (e.g. port or UDS file) which is useful for getting the status when all children are busy with serving long running requests.

Hash

HashContext objects can now be serialized.

Internationalization Functions

The IntlDateFormatter::RELATIVE_FULL,
IntlDateFormatter::RELATIVE_LONG,
IntlDateFormatter::RELATIVE_MEDIUM, and
IntlDateFormatter::RELATIVE_SHORT
constants have been added.

LDAP

ldap_count_references() has been added, which returns the number of reference messages in a search result.

OPcache

If the opcache.record_warnings ini setting is enabled, OPcache will record compile-time warnings and replay them on the next include, even if it is served from cache.

OpenSSL

Added Cryptographic Message Syntax (CMS) (» RFC 5652) support composed of functions for encryption, decryption, signing, verifying and reading. The API is similar to the API for PKCS #7 functions with an addition of new encoding constants: OPENSSL_ENCODING_DER, OPENSSL_ENCODING_SMIME and OPENSSL_ENCODING_PEM:

  • openssl_cms_encrypt() encrypts the message in the file with the certificates and outputs the result to the supplied file.
  • openssl_cms_decrypt() that decrypts the S/MIME message in the file and outputs the results to the supplied file.
  • openssl_cms_read() that exports the CMS file to an array of PEM certificates.
  • openssl_cms_sign() that signs the MIME message in the file with a cert and key and output the result to the supplied file.
  • openssl_cms_verify() that verifies that the data block is intact, the signer is who they say they are, and returns the certs of the signers.

Regular Expressions (Perl-Compatible)

preg_last_error_msg() has been added, which returns a human-readable message for the last PCRE error. It complements preg_last_error(), which returns an integer enum value instead.

Reflection

  • The following methods can now return information about default values of parameters of internal functions:

    • ReflectionParameter::isDefaultValueAvailable()
    • ReflectionParameter::getDefaultValue()
    • ReflectionParameter::isDefaultValueConstant()
    • ReflectionParameter::getDefaultValueConstantName()

SQLite3

SQLite3::setAuthorizer() and respective class constants have been added to set a userland callback that will be used to authorize or not an action on the database.

Standard Library

  • str_contains(), str_starts_with() and str_ends_with() have been added, which check whether haystack contains, starts with or ends with needle, respectively.

  • fdiv() has been added, which performs a floating-point division under IEEE 754 semantics. Division by zero is considered well-defined and will return one of Inf, -Inf or NaN.

  • get_debug_type() has been added, which returns a type useful for error messages. Unlike gettype(), it uses canonical type names, returns class names for objects, and indicates the resource type for resources.

  • printf() and friends now support the %h and %H format specifiers. These are the same as %g and %G, but always use "." as the decimal separator, rather than determining it through the LC_NUMERIC locale.

  • printf() and friends now support using "*" as width or precision, in which case the width/precision is passed as an argument to printf. This also allows using precision -1 with %g, %G, %h and %H. For example, the following code can be used to reproduce PHP's default floating point formatting:

    <?php
    printf    ("%.*H", (int) ini_get("precision"), $float);
    printf("%.*H", (int) ini_get("serialize_precision"), $float);
    ?>

  • proc_open() now supports pseudo-terminal (PTY) descriptors. The following attaches stdin, stdout and stderr to the same PTY:

    <?php
    $proc     = proc_open($command, [['pty'], ['pty'], ['pty']], $pipes);
    ?>

  • proc_open() now supports socket pair descriptors. The following attaches a distinct socket pair to stdin, stdout and stderr:

    <?php
    $proc     = proc_open($command, [['socket'], ['socket'], ['socket']], $pipes);
    ?>

    Unlike pipes, sockets do not suffer from blocking I/O issues on Windows. However, not all programs may work correctly with stdio sockets.

  • Sorting functions are now stable, which means that equal-comparing elements will retain their original order.

  • array_diff(), array_intersect() and their variations can now be used with a single array as argument. This means that usages like the following are now possible:

    <?php
    // OK even if $excludes is empty:
    array_diff($array, ...$excludes);
    // OK even if $arrays only contains a single array:
    array_intersect(...$arrays);
    ?>

  • The flag parameter of ob_implicit_flush() was changed to accept a bool rather than an int.

Tokenizer

PhpToken adds an object-based interface to the tokenizer. It provides a more uniform and ergonomic representation, while being more memory efficient and faster.

Zip

  • The Zip extension has been updated to version 1.19.1.

  • New ZipArchive::setMtimeName() and ZipArchive::setMtimeIndex() to set the modification time of an entry.

  • New ZipArchive::registerProgressCallback() to provide updates during archive close.

  • New ZipArchive::registerCancelCallback() to allow cancellation during archive close.

  • New ZipArchive::replaceFile() to replace an entry content.

  • New ZipArchive::isCompressionMethodSupported() to check optional compression features.

  • New ZipArchive::isEncryptionMethodSupported() to check optional encryption features.

  • The ZipArchive::lastId property to get the index value of the last added entry has been added.

  • Errors can now be checked after an archive has been closed using the
ZipArchive::status and
ZipArchive::statusSys properties, or the
ZipArchive::getStatusString() method.

  • The 'remove_path' option of ZipArchive::addGlob() and ZipArchive::addPattern() is now treated as an arbitrary string prefix (for consistency with the 'add_path' option), whereas formerly it was treated as a directory name.

  • Optional compression / encryption features are now listed in phpinfo.


Modifications entrainant une incompatibilité ascendante

Cœur de PHP

Comparaison entre une chaîne de caractères et un nombre

Les comparaisons non strictes entre les nombres et les chaînes non numériques fonctionnent désormais en transformant le nombre en chaîne et en comparant les chaînes. Les comparaisons entre les nombres et les chaînes numériques continuent de fonctionner comme auparavant. Cela signifie notamment que 0 == "not-a-number" est désormais considéré comme faux.

Comparaison | Avant | Après
0 == "0" | true | true
0 == "0.0" | true | true
0 == "foo" | true | false
0 == "" | true | false
42 == " 42" | true | true
42 == "42foo" | true | false

Autres changements incompatibles

  • match est désormais un mot-clé réservé.

  • mixed est désormais un mot réservé, il ne peut donc pas être utilisé pour nommer une classe, une interface ou un trait, et il est également interdit de l'utiliser dans les espaces de noms.

  • Les échecs d'assertion sont maintenant lancés par défaut. Si l'ancien comportement est souhaité, assert.exception=0 peut être défini dans les paramètres INI.

  • Les méthodes portant le même nom que la classe ne sont plus interprétées comme des constructeurs. La méthode __construct() doit être utilisée à la place.

  • La possibilité d'appeler des méthodes non statiques de manière statique a été supprimée. Ainsi, is_callable() échouera lors de la vérification d'une méthode non statique avec un nom de classe (il faut vérifier avec une instance d'objet).

  • Les castings (real) et (unset) ont été supprimés.

  • La directive ini track_errors a été supprimée. Cela signifie que php_errormsg n'est plus disponible. La fonction error_get_last() peut être utilisée à la place.

  • La possibilité de définir des constantes insensibles à la casse a été supprimée. Le troisième argument de define() ne peut plus être true.

  • La possibilité de spécifier un autochargeur en utilisant une fonction __autoload() a été supprimée. spl_autoload_register() doit être utilisée à la place.

  • L'argument errcontext ne sera plus passé aux gestionnaires d'erreurs personnalisés paramétrés avec set_error_handler().

  • create_function() a été supprimée. Les fonctions anonymes peuvent être utilisées à la place.

  • each() a été supprimée. foreach ou ArrayIterator doivent être utilisées à la place.

  • La possibilité de délier this des fermetures qui ont été créées à partir d'une méthode, en utilisant Closure::fromCallable() ou ReflectionMethod::getClosure() a été supprimée.

  • La possibilité de délier this des fermetures appropriées qui contiennent des utilisations de this a également été supprimée.

  • La possibilité d'utiliser array_key_exists() avec des objets a été supprimée. isset() ou property_exists() peuvent être utilisées à la place.

  • Le comportement de array_key_exists() concernant le type du paramètre key a été rendu cohérent avec isset() et l'accès normal aux tableaux. Tous les types de clés utilisent maintenant les coercions habituels et les clés de type tableau/objet lancent une TypeError.

  • Tout tableau dont la première clé numérique est un nombre n utilisera n+1 pour sa prochaine clé implicite, même si n est négatif.

  • Le niveau de signalement des erreurs par défaut (error_reporting) est désormais E_ALL. Auparavant, il excluait E_NOTICE et E_DEPRECATED.

  • display_startup_errors est désormais activée par défaut.

  • L'utilisation de parent à l'intérieur d'une classe qui n'a pas de parent entraîne désormais une erreur fatale à la compilation.

  • L'opérateur @ ne silence plus les erreurs fatales (E_ERROR, E_CORE_ERROR, E_COMPILE_ERROR, E_USER_ERROR, E_RECOVERABLE_ERROR, E_PARSE). Les gestionnaires d'erreurs qui s'attendent à ce que error_reporting soit égal à 0 lorsque @ est utilisé, doivent être ajustés pour utiliser une vérification de masque à la place :

    <?php
    // Remplacer
    function my_error_handler($err_no, $err_msg, $filename, $linenum) {
    if (    error_reporting() == 0) {
    return     false;
    }
    // ...
    }

    // Par
    function my_error_handler($err_no, $err_msg, $filename, $linenum) {
    if (!(    error_reporting() & $err_no)) {
    return     false;
    }
    // ...
    }
    ?>

    En outre, il faut veiller à ce que les messages d'erreur ne soient pas affichés dans les environnements de production, ce qui peut entraîner des fuites d'informations. Veillez à ce que l'option display_errors=Off soit utilisée en conjonction avec la journalisation des erreurs.

  • #[ n'est plus interprété comme le début d'un commentaire, car cette syntaxe est désormais utilisée pour les attributs.

  • Les erreurs d'héritage dues à des signatures de méthodes incompatibles (violations de LSP) génèrent désormais une erreur fatale. Auparavant, un avertissement était généré dans certains cas.

  • La priorité de l'opérateur de concaténation a été modifiée par rapport aux décalages de bits, à l'addition ainsi qu'à la soustraction.

    <?php
    echo "Sum: " . $a + $b;
    // était auparavant interprété comme:
    echo ("Sum: " . $a) + $b;
    // est désormais interprété comme:
    echo "Sum:" . ($a + $b);
    ?>

  • Les arguments avec une valeur par défaut qui se résout en null à l'exécution ne marqueront plus implicitement le type d'argument comme nullable. Il faut utiliser soit un type explicite nullable, soit une valeur par défaut explicite null à la place.

    <?php
    // Remplacer
    function test(int $arg = CONST_RESOLVING_TO_NULL) {}
    // Par
    function test(?int $arg = CONST_RESOLVING_TO_NULL) {}
    // Ou
    function test(int $arg = null) {}
    ?>

  • Un certain nombre d'avertissements ont été convertis en exceptions Error:

    • Tentative d'écriture sur une propriété d'un non-objet. Auparavant, cela créait implicitement un objet stdClass pour null, false et les chaînes vides.
    • Tentative d'ajout d'un élément à un tableau pour lequel la clé PHP_INT_MAX est déjà utilisée.
    • Tentative d'utilisation d'un type invalide (tableau ou objet) comme clé de tableau ou comme index de chaîne de caractères.
    • Tentative d'écriture sur un index de tableau d'une valeur scalaire.
    • Tentative de décompactage d'un non tableau/Traversable.
    • Tentative d'accès à des constantes non qualifiées qui sont indéfinies. Auparavant, les accès à des constantes non qualifiées entraînaient un avertissement et étaient interprétés comme des chaînes de caractères.
    • Passer le nombre incorrect d'arguments à une fonction intégrée non variadique entraînera le déclenchement d'une ArgumentCountError.
    • Passer des types compteurs invalides à count() entraînera le déclenchement d'une TypeError.

    Un certain nombre de notices ont été convertis en avertissements :

    • Tentative de lecture d'une variable non définie.
    • Tentative de lecture d'une propriété non définie.
    • Tentative de lecture d'une clé de tableau non définie.
    • Tentative de lecture d'une propriété d'un non-objet.
    • Tentative d'accès à un index de tableau d'un non-tableau.
    • Tentative de conversion d'un tableau en chaîne de caractères.
    • Tentative d'utilisation d'une ressource comme clé de tableau.
    • Tentative d'utilisation de null, d'un booléen ou d'un nombre flottant comme index de chaîne.
    • Tentative de lecture d'un index de chaîne hors limites.
    • Tentative d'affectation d'une chaîne vide à un index de chaîne.

  • Tenter d'assigner plusieurs octets à un index de chaîne émettra désormais un avertissement.

  • Les caractères inattendus dans les fichiers source (tels que les octets NUL à l'extérieur des chaînes de caractères) entraîneront désormais une exception ParseError au lieu d'un avertissement de compilation.

  • Les exceptions non capturée passent maintenant par un "arrêt propre", ce qui signifie que les destructeurs seront appelés après une exception non capturée.

  • L'erreur fatale à la compilation "Only variables can be passed by reference" a été retardée jusqu'à l'exécution, et convertie en une exception Error "Argument cannot be passed by reference".

  • Certaines notices "Only variables should be passed by reference" ont été convertis en exception "Argument cannot be passed by reference".

  • Le nom généré pour les classes anonymes a changé. Il inclura désormais le nom du premier parent ou interface :

    <?php
    new class extends ParentClass {};
    // -> ParentClass@anonymous
    new class implements FirstInterface, SecondInterface {};
    // -> FirstInterface@anonymous
    new class {};
    // -> class@anonymous
    ?>

    Le nom ci-dessus est toujours suivi d'un octet NUL et d'un suffixe unique.

  • Les références de méthodes de traits non absolues dans les adaptations d'alias de traits doivent désormais être non ambiguës :

    <?php
    class X {
    use     T1, T2 {
    func as otherFunc;
    }
    function     func() {}
    }
    ?>

    Si T1::func() et T2::func() existent tous les deux, ce code était auparavant accepté silencieusement, et func était supposé faire référence à T1::func. Désormais, il génère une erreur fatale, et T1::func ou T2::func doivent être écrit explicitement.

  • La signature des méthodes abstraites définies dans les traits est maintenant vérifiée par rapport à la méthode dans la classe d'implémentation:

    <?php
    trait MyTrait {
    abstract private function     neededByTrait(): string;
    }

    class     MyClass {
    use     MyTrait;

    // Error, because of return type mismatch.
    private function neededByTrait(): int { return 42; }
    }
    ?>

  • Les fonctions désactivées sont désormais traitées exactement comme des fonctions inexistantes. L'appel d'une fonction la signalera comme inconnue, et il est désormais possible de redéfinir une fonction désactivée.

  • Les enveloppes de flux data:// ne sont plus inscriptibles, ce qui correspond au comportement documenté.

  • Les opérateurs arithmétiques et binaires +, -, *, /, **, %, <<, >>, &, |, ^, ~, ++, -- lancent désormais systématiquement une TypeError lorsqu'un des opérandes est un tableau, ressource ou un objet non surchargé. La seule exception à cette règle est l'opération de fusion de tableau +, qui reste supportée.

  • La conversion de nombres flottants en chaînes de caractères se fera désormais indépendamment de la localisation.

    <?php
    setlocale    (LC_ALL, "de_DE");
    $f = 3.14;
    echo     $f, "\n";
    // Previously: 3,14
    // Now: 3.14
    ?>

    Voir printf(), number_format() et NumberFormatter() pour personnaliser le formatage des nombres.

  • La prise en charge des accolades pour l'accès aux index a été supprimée.

    <?php
    // Instead of:
    $array{0};
    $array{"key"};
    // Write:
    $array[0];
    $array["key"];
    ?>

  • L'application du modificateur final sur une méthode privée produira désormais un avertissement à moins que cette méthode ne soit le constructeur.

  • Si un constructeur d'objet appelle exit(), le destructeur d'objet n'est plus appelé. Cela correspond au comportement lorsque le constructeur lance une exception.

  • Les noms d'espace de nommage ne peuvent plus contenir d'espace blanc : Alors que Foo\Bar sera reconnu comme un nom à espace de noms, Foo \ Bar ne le sera pas. Inversement, les mots-clés réservés sont désormais autorisés en tant que segments d'espace de noms, ce qui peut également modifier l'interprétation du code : new\x est maintenant la même chose que constant('new\x'), et pas new \x().

  • Les ternaires imbriqués nécessitent désormais des parenthèses explicites.

  • debug_backtrace() et Exception::getTrace() ne fourniront plus de références aux arguments. Il ne sera plus possible de modifier les arguments d'une fonction par le biais de la trace.

  • La gestion des chaînes numériques a été modifiée pour être plus intuitive et moins sujette aux erreurs. L'espacement de fin est désormais autorisé dans les chaînes numériques pour des raisons de cohérence avec le traitement des espaces de tête. Ceci affecte principalement :

    • La fonction is_numeric()
    • Les comparaisons entre deux chaîne de caractères
    • Les déclarations de type
    • Les opérations d'incrémentation et de décrémentation

    Le concept de "chaînes débutant numériquement" a été pratiquement abandonné ; les cas où il subsiste existent afin de faciliter la migration. Les chaînes de caractères qui émettaient une erreur E_NOTICE "A non wellformed numeric value encountered" émettront désormais une erreur E_WARNING "A nonumeric value encountered" et toutes les chaînes qui émettaient une erreur E_WARNING "A non-numeric value encountered" émettront désormais une erreur de type TypeError. Ceci affecte principalement :

    • les opérations arithmétiques
    • les opérations binaires

    Cette modification de E_WARNING à TypeError affecte également l'erreur E_WARNING "Illegal string offset 'string'" pour les index de chaîne illégaux. Le comportement des transformations explicites en int/float à partir de chaînes de caractères n'a pas été modifié.

  • Les arguments et les types de retour des méthodes magiques seront désormais vérifiés s'ils ont été déclarés. Les signatures doivent correspondre à la liste suivante :

    • __call(string $name, array $arguments): mixed
    • __callStatic(string $name, array $arguments): mixed
    • __clone(): void
    • __debugInfo(): ?array
    • __get(string $name): mixed
    • __invoke(mixed $arguments): mixed
    • __isset(string $name): bool
    • __serialize(): array
    • __set(string $name, mixed $value): void
    • __set_state(array $properties): object
    • __sleep(): array
    • __unserialize(array $data): void
    • __unset(string $name): void
    • __wakeup(): void

  • Les clés des tableaux call_user_func_array() seront désormais interprétées comme des noms de paramètres, au lieu d'être ignorées silencieusement.

  • La déclaration d'une fonction appelée assert() à l'intérieur d'un espace de noms n'est plus autorisée, et émet une E_COMPILE_ERROR. La fonction assert() est soumise à un traitement spécial par le moteur, ce qui peut conduire à un comportement incohérent lors de la définition d'une fonction de l'espace de noms portant le même nom.

Migration des ressources vers les objets

Plusieurs ressources ont été migrées en objets. Les vérifications de la valeur retournée utilisant is_resource() devraient être remplacées par des vérifications pour false.

  • curl_init() retourne désormais un objet CurlHandle plutôt qu'une ressource. La fonction curl_close() n'a plus d'effet, l'instance CurlHandle est automatiquement détruite si elle n'est plus référencée.

  • curl_multi_init() retourne désormais un objet CurlMultiHandle plutôt qu'un ressource. La fonction curl_multi_close() n'a plus d'effet, l'instance CurlMultiHandle est automatiquement détruite si elle n'est plus référencée.

  • curl_share_init() retourne désormais un objet CurlShareHandle plutôt qu'un ressource. La fonction curl_share_close() n'a plus d'effet, l'instance CurlShareHandle est automatiquement détruite si elle n'est plus référencée.

  • enchant_broker_init() retourne désormais un objet EnchantBroker plutôt qu'une ressource.

  • enchant_broker_request_dict() et enchant_broker_request_pwl_dict() retournent désormais un objet EnchantDictionary au lieu d'une ressource.

  • L'extension GD utilise désormais les objets GdImage comme structure de données sous-jacente pour les images, plutôt que des ressources. La fonction imagedestroy() n'a plus d'effet ; à la place, l'instance est automatiquement détruite si elle n'est plus référencée. GdImage est automatiquement détruite si elle n'est plus référencée.

  • openssl_x509_read() et openssl_csr_sign() retournent désormais un objet OpenSSLCertificate plutôt qu'une ressource. La fonction openssl_x509_free() est obsolète et n'a plus d'effet, l'instance OpenSSLCertificate est automatiquement détruite si elle n'est plus référencée.

  • openssl_csr_new() retourne désormais un objet OpenSSLCertificateSigningRequest plutôt qu'une ressource.

  • openssl_pkey_new() retourne désormais un objet OpenSSLAsymmetricKey plutôt qu'une ressource. La fonction openssl_pkey_free() est obsolète et n'a plus d'effet, l'instance OpenSSLAsymmetricKey est automatiquement détruite si elle n'est plus référencée.

  • shmop_open() retourne désormais un objet Shmop plutôt qu'une ressource. La fonction shmop_close() n'a plus d'effet, et est obsolète ; l'instance Shmop est automatiquement détruite si elle n'est plus référencée.

  • socket_create(), socket_create_listen(),
socket_accept(), socket_import_stream(),
socket_addrinfo_connect(), socket_addrinfo_bind(), et
socket_wsaprotocol_info_import() retournent désormais un objet
Socket plutôt qu'une ressource.
socket_addrinfo_lookup() retourne désormais un tableau d'objets
AddressInfo au lieu de ressources.

  • msg_get_queue() retourne désormais un objet SysvMessageQueue plutôt qu'une ressource.

  • sem_get() retourne désormais un objet SysvSemaphore plutôt qu'une ressource.

  • shm_attach() retourne désormais un objet SysvSharedMemory plutôt qu'une ressource.

  • xml_parser_create() et xml_parser_create_ns() retournent désormais un objet XMLParser au lieu d'une ressource. La fonction xml_parser_free() n'a plus d'effet, l'instance de XMLParser est automatiquement détruite si elle n'est plus référencée.

  • Les fonctions XMLWriter acceptent et retournent désormais, respectivement, des objets XMLWriter au lieu de ressources.

  • inflate_init() retourne désormais un objet InflateContext plutôt qu'une ressource.

  • deflate_init() retourne désormais un objet DeflateContext plutôt qu'une ressource.

COM et .Net (Windows)

La possibilité d'importer des constantes insensibles à la casse à partir de bibliothèques de types a été supprimée. Le deuxième argument de com_load_typelib() ne peut plus être false ; com.autoregister_casesensitive ne peut plus être désactivé ; les marqueurs insensibles à la casse dans com.typelib_file sont ignorés.

CURL

CURLOPT_POSTFIELDS n'accepte plus les objets sous forme de tableaux. Pour interpréter un objet comme un tableau, il faut effectuer un cast explicite (array). Cela s'applique également aux autres options acceptant les tableaux.

Date et heure

mktime() et gmmktime() requièrent désormais au moins un argument. time() peut être utilisée pour obtenir l'horodatage actuel.

DOM

Les classes non implémentées de l'extension DOM qui n'avaient pas de comportement et contenaient des données de test ont été supprimées. Ces classes ont également été supprimées dans la dernière version de la norme du standard DOM :

  • DOMNameList
  • DomImplementationList
  • DOMConfiguration
  • DomError
  • DomErrorHandler
  • DOMImplementationSource
  • DOMLocator
  • DOMUserDataHandler
  • DOMTypeInfo
  • DOMStringExtend

Les méthodes non implémentées de l'extension DOM qui n'avaient pas de comportement ont été supprimées :

  • DOMNamedNodeMap::setNamedItem()
  • DOMNamedNodeMap::removeNamedItem()
  • DOMNamedNodeMap::setNamedItemNS()
  • DOMNamedNodeMap::removeNamedItemNS()
  • DOMText::replaceWholeText()
  • DOMNode::compareDocumentPosition()
  • DOMNode::isEqualNode()
  • DOMNode::getFeature()
  • DOMNode::setUserData()
  • DOMNode::getUserData()
  • DOMDocument::renameNode()

Enchant

  • enchant_broker_list_dicts(), enchant_broker_describe() et enchant_dict_suggest() retourneront désormais un tableau vide au lieu de null.

Exif

read_exif_data() a été supprimée ; exif_read_data() doit être utilisée à la place.

Filter

  • Les drapeaux FILTER_FLAG_SCHEME_REQUIRED et FILTER_FLAG_HOST_REQUIRED pour le filtre FILTER_VALIDATE_URL ont été supprimés. Le schéma et l'hôte sont (et ont toujours été) nécessaires.

  • Les sources INPUT_REQUEST et INPUT_SESSION pour filter_input() etc. ont été supprimées. Elles n'ont jamais été mises en œuvre et leur utilisation a toujours généré un avertissement.

GD

  • La fonction obsolète image2wbmp() a été supprimée.

  • Les fonctions obsolètes png2wbmp() et jpeg2wbmp() ont été supprimées.

  • Le paramètre par défaut mode d'imagecropauto() n'accepte plus -1. IMG_CROP_DEFAULT doit être utilisé à la place.

  • Sous Windows, php_gd2.dll a été renommé en php_gd.dll.

GMP

gmp_random() a été supprimée. L'une des fonctions gmp_random_range() ou gmp_random_bits() doit être utilisée à la place.

Iconv

Les implémentations iconv qui ne définissent pas correctement errno en cas d'erreur ne sont plus supportées.

IMAP

  • L'argument inutilisé default_host de imap_headerinfo() a été supprimé.

  • La fonction imap_header() qui est un alias de imap_headerinfo() a été supprimée.

Fonctions d'internationalisation

  • La constante obsolète INTL_IDNA_VARIANT_2003 a été supprimée.

  • La constante obsolète Normalizer::NONE a été supprimée.

LDAP

  • Les fonctions ldap_sort(),
ldap_control_paged_result() et
ldap_control_paged_result_response() ont été supprimées.

  • L'interface de ldap_set_rebind_proc() a changée ; le paramètre callback n'accepte plus les chaînes vides ; null doit être utilisé à la place.

MBString

  • La directive mbstring.func_overload a été supprimée. Les constantes MB_OVERLOAD_MAIL, MB_OVERLOAD_STRING, et MB_OVERLOAD_REGEX ont également été supprimées. Enfin, les entrées "func_overload" et "func_overload_list" dans mb_get_info() ont été supprimées.

  • mb_parse_str() ne peut plus être utilisée sans spécifier un tableau de résultats.

  • Un certain nombre d'alias mbregex obsolètes ont été supprimés. Voir la liste suivante pour savoir quelles fonctions doivent être utilisées à la place :

    • mbregex_encoding() ? mb_regex_encoding()
    • mbereg() ? mb_ereg()
    • mberegi() ? mb_eregi()
    • mbereg_replace() ? mb_ereg_replace()
    • mberegi_replace() ? mb_eregi_replace()
    • mbsplit() ? mb_split()
    • mbereg_match() ? mb_ereg_match()
    • mbereg_search() ? mb_ereg_search()
    • mbereg_search_pos() ? mb_ereg_search_pos()
    • mbereg_search_regs() ? mb_ereg_search_regs()
    • mbereg_search_init() ? mb_ereg_search_init()
    • mbereg_search_getregs() ? mb_ereg_search_getregs()
    • mbereg_search_getpos() ? mb_ereg_search_getpos()
    • mbereg_search_setpos() ? mb_ereg_search_setpos()

  • Le modificateur e pour mb_ereg_replace() a été supprimé. mb_ereg_replace_callback() doit être utilisé à la place.

  • Un argument de motif autre qu'une chaîne de caractères à mb_ereg_replace() sera désormais interprété comme une chaîne de caractères au lieu d'un point de code ASCII. Le comportement précédent peut être restauré avec un appel explicite à chr().

  • L'argument needle pour mb_strpos(),
mb_strrpos(), mb_stripos(),
mb_strripos(), mb_strstr(),
mb_stristr(), mb_strrchr() et
mb_strrichr() peut désormais être vide.

  • Le paramètre is_hex, qui n'était pas utilisé en interne, a été supprimé de mb_decode_numericentity().

  • L'ancien comportement consistant à passer l'encodage comme troisième argument au lieu d'un offset pour la fonction mb_strrpos() a été supprimé ; un index explicite de 0 avec l'encodage doit être fourni comme quatrième argument.

  • Les alias de codage de caractères ISO_8859-* ont été remplacés par ISO8859-* pour une meilleure interopérabilité avec l'extension iconv. Les alias mbregex ISO 8859 avec des traits de soulignement(ISO_8859_* et ISO8859_*) ont également été supprimés.

  • mb_ereg() et mb_eregi() retourneront désormais le booléen true en cas de correspondance réussie. Auparavant, elles retournaient l'entier 1 si matches n'était pas passé, ou max(1, strlen($matches[0])) si matches était passé.

OCI8

  • La classe OCI-Lob s'appelle désormais OCILob, et la classe OCI-Collection s'appelle maintenant OCICollection pour la conformité des noms avec l'outil d'annotation de type arginfo de PHP 8.

  • Plusieurs fonctions alias ont été marquées comme obsolètes.

  • oci_internal_debug() et son alias ociinternaldebug() ont été supprimés.

ODBC

  • odbc_connect() ne réutilise plus les connexions.

  • Le paramètre inutilisé flags de odbc_exec() a été supprimé.

OpenSSL

  • openssl_seal() et openssl_open() requièrent désormais le paramètre method car l'ancienne valeur par défaut "RC4" est considéré comme peu sûr.

Expressions régulières (compatibles avec Perl)

Lorsque des séquences d'échappement invalides sont passées, elles ne sont plus interprétées comme des littéraux. Ce comportement nécessitait auparavant le modificateur X qui est maintenant ignoré.

Objets de données PHP (PDO)

  • Le mode de gestion des erreurs par défaut a été changé de "silencieux" à "exceptions". Voir Erreurs et gestion des erreurs pour plus de détails.

  • Les signatures de certaines méthodes PDO ont changé :

    • PDO::query(string $query, ?int $fetchMode = null, mixed ...$fetchModeArgs)
    • PDOStatement::setFetchMode(int $mode, mixed ...$args)

PDO ODBC

La directive php.ini pdo_odbc.db2_instance_name a été supprimée.

PDO MySQL

PDO::inTransaction() indique désormais l'état réel de la transaction de la connexion, plutôt qu'une approximation maintenue par PDO. Si une requête soumise à un "commit implicite" est exécutée, PDO::inTransaction() retournera par la suite false, car la transaction n'est plus active.

PostgreSQL

  • La syntaxe obsolète pg_connect() utilisant plusieurs paramètres au lieu d'une chaîne de connexion n'est plus supportée.

  • La signature pg_lo_import() et pg_lo_export() qui transmet la connexion comme dernier argument n'est plus supportée. La connexion doit être passée comme premier argument à la place.

  • pg_fetch_all() retourne maintenant un tableau vide au lieu de false pour les jeux de résultats avec zéro ligne.

Phar

Les métadonnées associées à un phar ne seront plus automatiquement désérialisées, afin de corriger des vulnérabilités de sécurité potentielles dues à l'instanciation d'objets, à l'autoloading, etc.

Reflection

  • Les signatures de méthodes

    • ReflectionClass::newInstance($args)
    • ReflectionFunction::invoke($args)
    • ReflectionMethod::invoke($object, $args)

    ont été remplacées par :

    • ReflectionClass::newInstance(...$args)
    • ReflectionFunction::invoke(...$args)
    • ReflectionMethod::invoke($object, ...$args)

    Le code qui doit être compatible avec PHP 7 et PHP 8 peut utiliser les signatures suivantes pour être compatible avec les deux versions :

    • ReflectionClass::newInstance($arg = null, ...$args)
    • ReflectionFunction::invoke($arg = null, ...$args)
    • ReflectionMethod::invoke($object, $arg = null, ...$args)

  • La méthode ReflectionType::__toString() retourne maintenant une représentation complète de débogage du type, et n'est plus dépréciée. En particulier, le résultat inclura un indicateur de nullité pour les types nullables. Le format de la valeur retournée n'est pas stable et peut changer changer d'une version de PHP à l'autre.

  • Les méthodes de réflexion export() ont été supprimées. A la place, les objets de réflexion peuvent être transformés en chaînes de caractères.

  • ReflectionMethod::isConstructor() et ReflectionMethod::isDestructor() retournent désormais également true pour les méthodes __construct() et __destruct() des interfaces. Auparavant, ce n'était le cas que pour les méthodes des classes et des traits.

  • La méthode ReflectionType::isBuiltin() a été déplacée vers ReflectionNamedType. ReflectionUnionType n'a pas cette méthode.

Sockets

  • Les drapeaux obsolètes AI_IDN_ALLOW_UNASSIGNED et AI_IDN_USE_STD3_ASCII_RULES flags pour socket_addrinfo_lookup() ont été supprimés.

Bibliothèque standard de PHP (SPL)

  • SplFileObject::fgetss() a été supprimée.

  • SplFileObject::seek() cherche maintenant toujours le début de la ligne. Auparavant, les positions >=1 recherchaient le début de la ligne suivante.

  • SplHeap::compare() spécifie désormais une signature de méthode. Les classes héritées implémentant cette méthode devront désormais utiliser une signature de méthode compatible.

  • SplDoublyLinkedList::push(), SplDoublyLinkedList::unshift() et SplQueue::enqueue() retournent désormais void au lieu de true.

  • spl_autoload_register() lancera désormais toujours une TypeError en cas d'arguments invalides, donc le second argument do_throw est ignoré et une notification sera émise s'il est défini à false.

  • SplFixedArray est maintenant un IteratorAggregate et non plus un Iterator. SplFixedArray::rewind(), SplFixedArray::current(), SplFixedArray::key(), SplFixedArray::next(), et SplFixedArray::valid() ont été supprimées. A leur place, SplFixedArray::getIterator() a été ajoutée. Tout code qui utilise l'itération explicite sur SplFixedArray doit maintenant obtenir une valeur de Iterator à travers SplFixedArray::getIterator(). Cela signifie que SplFixedArray peut désormais être utilisé en toute sécurité dans les boucles imbriquées.

Bibliothèque standard

  • assert() n'évalue plus les arguments de type chaîne de caractères, ils sont traités comme n'importe quel autre argument. assert($a == $b) doit être utilisé à la place de assert('$a == $b'). La directive ini assert.quiet_eval et la constante ASSERT_QUIET_EVAL ont également été supprimées, car elles n'auraient plus d'effet.

  • parse_str() ne peut plus être utilisé sans spécifier un tableau de résultats.

  • Le filtre string.strip_tags a été supprimé.

  • L'argument needle de strpos(), strrpos(), stripos(), strripos(), strstr(), strchr(), strrchr(), et stristr() sera désormais toujours interprété comme une chaîne de caractères. Auparavant, les needle étaient interprétés comme des points de code ASCII. Un appel explicite à chr() peut être utilisé pour rétablir le comportement précédent.

  • L'argument needle pour strpos(),
 strrpos(), stripos(), strripos(),
strstr(), stristr() et strrchr() peut
désormais être vide.

  • L'argument length pour substr(), substr_count(), substr_compare() et iconv_substr() peut désormais être null. Les valeurs null se comporteront comme si aucun argument de longueur n'avait été fourni et retourneront donc le reste de la chaîne de caractères au lieu d'une chaîne vide.

  • L'argument length pour array_splice() peut maintenant être null. Les valeurs null se comporteront de la même manière que si l'on omettait l'argument, c'est-à-dire qu'elles supprimeront tout ce qui se trouve de l'offset à la fin du tableau.

  • L'argument args de vsprintf(), vfprintf(), et vprintf() doit maintenant être un tableau. Auparavant n'importe quel type était accepté.

  • L'option 'salt' de password_hash() n'est plus supportée. Si l'option 'salt' est utilisée, un avertissement est généré, le salt fourni est ignoré et un salt généré est utilisé à la place.

  • La fonction quotemeta() retourne désormais une chaîne vide si une chaîne vide a été passée. Auparavant, elle retournait false.

  • Les fonctions suivantes ont été supprimées :

    • hebrevc()
    • convert_cyr_string()
    • money_format()
    • ezmlm_hash()
    • restore_include_path()
    • get_magic_quotes_gpc()
    • get_magic_quotes_runtime()
    • fgetss()

  • FILTER_SANITIZE_MAGIC_QUOTES a été supprimée.

  • L'appel à implode() avec des paramètres dans l'ordre inverse ($pieces, $glue) n'est plus supporté.

  • parse_url() distingue désormais les requêtes et les fragments absents ou vides :

    • http://example.com/foo ? query = null, fragment = null
    • http://example.com/foo? ? query = "", fragment = null
    • http://example.com/foo# ? query = null, fragment = ""
    • http://example.com/foo?# ? query = "", fragment = ""
    Auparavant, dans tous les cas, la requête et le fragment étaient des null.

  • var_dump() et debug_zval_dump() imprimeront maintenant les nombres à virgule flottante en utilisant serialize_precision plutôt que la précision. Dans une configuration par défaut, cela signifie que les nombres à virgule flottante sont désormais imprimés avec une précision totale par ces fonctions de débogage.

  • Si le tableau retourné par __sleep() contient des propriétés inexistantes, celles-ci sont désormais ignorées de manière silencieuse. Auparavant, de telles propriétés auraient été sérialisées comme si elles avaient la valeur null.

  • La locale par défaut au démarrage est désormais toujours "C". Aucune locale n'est héritée de l'environnement par défaut. Auparavant, LC_ALL était réglé sur "C", tandis que LC_CTYPE était hérité de l'environnement. Cependant, certaines fonctions ne respectaient pas les paramètres linguistiques hérités sans un appel explicite à setlocale(). Un appel explicite à setlocale() est désormais toujours nécessaire si un composant de locale doit être modifié par rapport à la valeur par défaut.

  • La solution de repli DES dans crypt() a été supprimée. Si un format de salt inconnu est passé à crypt(), la fonction échouera avec *0 au lieu de se rabattre sur un hachage DES faible.

  • Spécifier des rounds hors plage pour SHA256/SHA512 crypt() échouera maintenant avec *0 au lieu de se caler sur la limite la plus proche. Cela correspond au comportement de la glibc.

  • Le résultat des fonctions de tri peut avoir changé, si le tableau contient des éléments qui se comparent comme étant égaux.

  • Toutes les fonctions acceptant des fonctions de rappels qui ne sont pas explicitement spécifiées pour accepter des paramètres par référence seront désormais averties si une fonction de rappel avec des paramètres par référence est utilisée. Les exemples incluent array_filter() et array_reduce(). C'était déjà le cas pour la plupart des fonctions, mais pas toutes.

  • L'enveloppe de flux HTTP utilisée par des fonctions telles que file_get_contents() annonce désormais HTTP/1.1 au lieu de HTTP/1.0 par défaut. Cela ne modifie pas le comportement du client mais les serveurs peuvent réagir différemment. Pour conserver l'ancien comportement, définissez l'option de contexte de flux 'protocol_version', par exemple

    <?php
    $ctx     = stream_context_create(['http' => ['protocol_version' => '1.0']]);
    echo     file_get_contents('http://example.org', false, $ctx);
    ?>

  • L'appel à crypt() sans salt explicite n'est plus supporté. Si vous souhaitez produire un hachage fort avec un salt auto-généré, utilisez plutôt password_hash() à la place.

  • substr(), mb_substr(), iconv_substr() et grapheme_substr() fixent désormais de manière cohérente les index hors limites à la limite de la chaîne de caractères. Auparavant, false était retourné au lieu de la chaîne vide dans certains cas.

  • Sous Windows, les fonctions d'exécution de programmes(proc_open(), exec(), popen() etc.) utilisant l'interpréteur de commandes, exécutent désormais systématiquement %comspec% /s /c "$commandline", ce qui a le même effet que l'exécution de $commandline (sans les guillemets supplémentaires).

Sysvsem

  • Le paramètre auto_release de sem_get() a été modifié pour accepter les valeurs booléen au lieu de entier.

Tidy

  • Le paramètre use_include_path, qui n'était pas utilisé en interne, a été supprimé de tidy_repair_string().

  • tidy::repairString() et tidy::repairFile() sont devenues des méthodes statiques.

Tokenizer

  • Les tokens T_COMMENT n'incluront plus de nouvelle ligne à la fin. La nouvelle ligne fera partie d'un jeton T_WHITESPACE suivant. Il convient de noter que T_COMMENT n'est pas toujours suivi d'un espace blanc, il peut également être suivi de T_CLOSE_TAG ou d'une fin de fichier.

  • Les noms à espace de nommage sont désormais représentés à l'aide des attributs T_NAME_QUALIFIED (Foo\Bar), T_NAME_FULLY_QUALIFIED(\Foo\Bar) et T_NAME_RELATIVE(namespace\Foo\Bar). T_NS_SEPARATOR n'est utilisé que pour les séparateurs d'espace de noms autonomes, et n'est syntaxiquement valide qu'en conjonction avec les déclarations d'utilisation de groupe.

XMLReader

XMLReader::open() et XMLReader::xml() sont désormais des méthodes statiques. Elles peuvent toujours être appelées en tant que méthodes d'instance, mais les classes qui en héritent doivent les déclarer comme statiques si elles surchargent ces méthodes.

XML-RPC

L'extension XML-RPC a été déplacée vers PECL et ne fait plus partie de la distribution de PHP. et ne fait plus partie de la distribution de PHP.

Zip

ZipArchive::OPSYS_Z_CPM a été supprimée (ce nom était une erreur de frappe). Utilisez plutôt ZipArchive::OPSYS_CPM à la place.

Zlib

  • gzgetss() a été supprimée.

  • zlib.output_compression n'est plus automatiquement désactivée pour Content-Type: image/*.

Packs de test PHP pour Windows

Le programme de test a été renommé de run-test.php à run-tests.php, pour correspondre à son nom dans php-src.


Fonctionnalités obsolètes

PHP Core

  • Si un paramètre avec une valeur par défaut est suivi d'un paramètre obligatoire, la valeur par défaut n'a pas d'effet. Ceci est obsolète à partir de PHP 8.0.0 et peut généralement être résolu en supprimant la valeur par défaut du paramètre, sans changer la fonctionnalité.

    <?php
    function test($a = [], $b) {} // Avant
    function test($a, $b) {} // Après
    ?>

    Une exception à cette règle sont les paramètres de la forme Type $param = null, où la valeur par défaut null rend le type implicitement nullable. Cette utilisation reste autorisée, mais il est recommandé d'utiliser un type explicitement nullable :

    <?php
    function test(A $a = null, $b) {} // Toujours autorisé
    function test(?A $a, $b) {} // Recommandé
    ?>

  • Appeler get_defined_functions() avec exclude_disabled explicitement à false est obsolète et n'a plus d'effet. get_defined_functions() n'inclura jamais les fonctions désactivées.

Enchant

  • enchant_broker_set_dict_path() et enchant_broker_get_dict_path() sont obsolètes, car cette fonctionnalité n'est pas disponible dans libenchant < 1.5 ni dans libenchant-2.

  • enchant_dict_add_to_personal() est obsolète ; utilisez plutôt enchant_dict_add() à la place.

  • enchant_dict_is_in_session() est obsolète ; utilisez plutôt enchant_dict_is_added() à la place.

  • enchant_broker_free() et enchant_broker_free_dict() sont obsolètes ; détruissez l'objet à la place.

  • Les constantes ENCHANT_MYSPELL et ENCHANT_ISPELL sont obsolètes.

LibXML

libxml_disable_entity_loader() est maintenant obsolète. Comme libxml 2.9.0 est désormais requis, le chargement d'entités externes est garanti d'être désactivé par défaut, et cette fonction n'est plus nécessaire pour se protéger contre les attaques XXE, à moins d'utiliser la constante (toujours vulnérable) LIBXML_NOENT. Dans ce cas, il est recommandé de refactoriser le code en utilisant libxml_set_external_entity_loader() pour supprimer le chargement des entités externes.

PGSQL / PDO PGSQL

  • La constante PGSQL_LIBPQ_VERSION_STR a maintenant la même valeur que PGSQL_LIBPQ_VERSION et est donc obsolète.

  • Les alias de fonctions de l'extension pgsql sont obsolètes. Voir la liste suivante pour savoir quelles fonctions doivent être utilisées à la place :

    • pg_errormessage() ? pg_last_error()
    • pg_numrows() ? pg_num_rows()
    • pg_numfields() ? pg_num_fields()
    • pg_cmdtuples() ? pg_affected_rows()
    • pg_fieldname() ? pg_field_name()
    • pg_fieldsize() ? pg_field_size()
    • pg_fieldtype() ? pg_field_type()
    • pg_fieldnum() ? pg_field_num()
    • pg_result() ? pg_fetch_result()
    • pg_fieldprtlen() ? pg_field_prtlen()
    • pg_fieldisnull() ? pg_field_is_null()
    • pg_freeresult() ? pg_free_result()
    • pg_getlastoid() ? pg_last_oid()
    • pg_locreate() ? pg_lo_create()
    • pg_lounlink() ? pg_lo_unlink()
    • pg_loopen() ? pg_lo_open()
    • pg_loclose() ? pg_lo_close()
    • pg_loread() ? pg_lo_read()
    • pg_lowrite() ? pg_lo_write()
    • pg_loreadall() ? pg_lo_read_all()
    • pg_loimport() ? pg_lo_import()
    • pg_loexport() ? pg_lo_export()
    • pg_setclientencoding() ? pg_set_client_encoding()
    • pg_clientencoding() -> pg_client_encoding()

Bibliothèque standard

  • Les fonctions de comparaison de tri qui retournent true ou false lèveront désormais un avertissement d'obsolescence, et doivent être remplacées par une implémentation qui retourne un entier inférieur, égal ou supérieur à zéro.

    <?php
    // Remplacer
    usort($array, fn($a, $b) => $a > $b);
    // Par
    usort($array, fn($a, $b) => $a <=> $b);
    ?>

Zip

  • L'utilisation d'un fichier vide en tant que ZipArchive est obsolète. Libzip 1.6.0 n'accepte plus les fichiers vides comme des archives zip valides. La solution de contournement existante sera supprimée dans la prochaine version.

  • L'API procédurale de Zip est obsolète. Utilisez plutôt ZipArchive. L'itération sur toutes les entrées peut être réalisée en utilisant ZipArchive::statIndex() et une boucle for:

    <?php
    // itère à l'aide de l'API procédurale
    assert(is_resource($zip));
    while (    $entry = zip_read($zip)) {
    echo     zip_entry_name($entry);
    }

    // itère à l'aide de l'API orientée objet
    assert($zip instanceof ZipArchive);
    for (    $i = 0; $entry = $zip->statIndex($i); $i++) {
    echo     $entry['name'];
    }
    ?>

Reflection

  • ReflectionFunction::isDisabled() est obsolète, car il n'est plus possible de créer un ReflectionFunction pour une fonction désactivée. Cette méthode retourne maintenant toujours false.

  • ReflectionParameter::getClass(),
ReflectionParameter::isArray(), et
ReflectionParameter::isCallable() sont obsolètes.
Les APIs ReflectionParameter::getType() et
ReflectionType doivent être utilisées à la place.


Other Changes

Changes in SAPI Modules

Apache2Handler

The PHP module has been renamed from php7_module to php_module.

Changed Functions

Reflection

ReflectionClass::getConstants() and ReflectionClass::getReflectionConstants() results can be now filtered via a new parameter filter. Three new constants were added to be used with it:

  • ReflectionClassConstant::IS_PUBLIC
  • ReflectionClassConstant::IS_PROTECTED
  • ReflectionClassConstant::IS_PRIVATE

Standard

The math functions abs(), ceil(), floor() and round() now properly heed the strict_types directive. Previously, they coerced the first argument even in strict type mode.

Zip

  • The ZipArchive::addGlob() and ZipArchive::addPattern() methods accept more values in the options array argument:

    • flags
    • comp_method
    • comp_flags
    • env_method
    • enc_password

  • ZipArchive::addEmptyDir(), ZipArchive::addFile() and ZipArchive::addFromString() methods have a new flags argument. This allows managing name encoding (ZipArchive::FL_ENC_*) and entry replacement (ZipArchive::FL_OVERWRITE).

  • ZipArchive::extractTo() now restores the file modification time.

Other Changes to Extensions

CURL

  • The CURL extension now requires at least libcurl 7.29.0.

  • The deprecated parameter version of curl_version() has been removed.

Date and Time

DatePeriod now implements IteratorAggregate (instead of Traversable).

DOM

DOMNamedNodeMap and DOMNodeList now implement IteratorAggregate (instead of Traversable).

Intl

IntlBreakIterator and ResourceBundle now implement IteratorAggregate (instead of Traversable).

Enchant

The enchant extension now uses libenchant-2 by default when available. libenchant version 1 is still supported but is deprecated and could be removed in the future.

GD

  • The num_points parameter of imagepolygon(), imageopenpolygon() and imagefilledpolygon() is now optional, i.e. these functions may be called with either 3 or 4 arguments. If the argument is omitted, it is calculated as count($points)/2.

  • The function imagegetinterpolation() to get the current interpolation method has been added.

JSON

The JSON extension cannot be disabled anymore and is always an integral part of any PHP build, similar to the date extension.

MBString

The Unicode data tables have been updated to version 13.0.0.

PDO

PDOStatement now implements IteratorAggregate (instead of Traversable).

LibXML

The minimum required libxml version is now 2.9.0. This means that external entity loading is now guaranteed to be disabled by default, and no extra steps need to be taken to protect against XXE attacks.

MySQLi / PDO MySQL

  • When mysqlnd is not used (which is the default and recommended option), the minimum supported libmysqlclient version is now 5.5.

  • mysqli_result now implements IteratorAggregate (instead of Traversable).

PGSQL / PDO PGSQL

The PGSQL and PDO PGSQL extensions now require at least libpq 9.1.

Readline

Calling readline_completion_function() before the interactive prompt starts (e.g. in auto_prepend_file) will now override the default interactive prompt completion function. Previously, readline_completion_function() only worked when called after starting the interactive prompt.

SimpleXML

SimpleXMLElement now implements RecursiveIterator and absorbed the functionality of SimpleXMLIterator. SimpleXMLIterator is an empty extension of SimpleXMLElement.

Changes to INI File Handling

  • com.dotnet_version is a new INI directive to choose the version of the .NET framework to use for dotnet objects.

  • zend.exception_string_param_max_len is a new INI directive to set the maximum string length in an argument of a stringified stack strace.

EBCDIC

EBCDIC targets are no longer supported, though it's unlikely that they were still working in the first place.

Performance

  • A Just-In-Time (JIT) compiler has been added to the opcache extension.

  • array_slice() on an array without gaps will no longer scan the whole array to find the start offset. This may significantly reduce the runtime of the function with large offsets and small lengths.

  • strtolower() now uses a SIMD implementation when using the "C" LC_CTYPE locale (which is the default).


Migration de PHP 7.3.x vers PHP 7.4.x

Sommaire

  • Nouvelles fonctionnalités
  • Nouvelles Classes et Interfaces
  • Nouvelles fonctions
  • Nouvelles constantes globales
  • Modifications entrainant une incompatibilité ascendante
  • Fonctionnalités obsolètes
  • Extensions supprimées
  • Autres changements
  • Gestion de Windows

Cette nouvelle version mineure apporte un certain nombre de nouvelles fonctionnalités et quelques incompatibilités qui devraient être testées avant de changer les versions PHP dans les environnements de production.

Voir aussi les guides de migration entre les différentes versions de PHP 7.0.x, 7.1.x, 7.2.x et 7.3.x.


Nouvelles fonctionnalités

Cœur de PHP

Propriétés typées

Les propriétés des classes supportent désormais la déclaration du type.

<?php
class User {
public int $id;
public string $name;
}
?>
L'exemple ci-dessus s'assurera que $user->id ne peut se voir attribuer que des valeurs d'entier et $user->name ne peut se voir attribuer que des valeurs chaîne de caractères.

Fonctions flèches

Les fonctions flèches fournissent une syntaxe courte pour définir des fonctions qui lient la portée par valeur implicitement.

<?php
$factor = 10;
$nums = array_map(fn($n) => $n * $factor, [1, 2, 3, 4]);
// $nums = array(10, 20, 30, 40);
?>

Type de retour covariant et type d'argument contravariant limité

Le code suivant va désormais fonctionner :

<?php
class A {}
class B extends A {}

class Producer {
public function method(): A {}
}
class ChildProducer extends Producer {
public function method(): B {}
}
?>
Le support de variance totale est seulement disponible quand l'autoloading est utilisé. Dans un fichier unique seules des références de types non cycliques sont possibles, car toutes les classes doivent être disponibles avant qu'elles soient référencées.

Opérateur d'assignement de fusion Null

<?php
$array['key'] ??= computeDefault();
// is roughly equivalent to
if (!isset($array['key'])) {
$array['key'] = computeDefault();
}
?>

Déballage dans les tableaux

<?php
$parts = ['apple', 'pear'];
$fruits = ['banana', 'orange', ...$parts, 'watermelon'];
// ['banana', 'orange', 'apple', 'pear', 'watermelon'];
?>

Séparateur numérique litéral

Les nombres littéraux peuvent contenir un caractère de soulignement entre les chiffres.

<?php
6.674_083e-11; // float
299_792_458; // decimal
0xCAFE_F00D; // hexadecimal
0b0101_1111; // binary
?>

Références faibles

Les références faibles permettent au développeur de retenir une référence à un objet qui n'empêche pas l'objet d'être détruit.

Autoriser des Exceptions depuis __toString()

Lancer des exceptions depuis __toString() est désormais permis. Précédemment, ceci résultait en une erreur fatale. Les erreurs fatales récupérables dans les conversions de chaîne de caractères ont été converties en exceptions Error.

CURL

CURLFile supporte désormais les enveloppes de flux en plus des noms de fichiers bruts, si l'extension a été compilée avec libcurl >= 7.56.0.

Filtre

Le filtre FILTER_VALIDATE_FLOAT supporte désormais les options min_range et max_range, avec la même sémantique que FILTER_VALIDATE_INT.

FFI

FFI est une nouvelle extension, qui fournit une manière simple d'appeler les fonctions natives, un accès natif aux variables, et la création/l'accès à des structures de données définies dans des bibliothèques C.

GD

Ajout du filtre d'image IMG_FILTER_SCATTER pour appliquer un filtre à dispersions aux images.

Hash

Ajout du hash crc32c utilisant le polynôme de Castagnoli. Cette variante de CRC32 est utilisée par les systèmes de stockage, tels que iSCSI, SCTP, Btrfs et ext4.

Chaînes multioctets

Ajout de la fonction mb_str_split(), qui fournit la même fonctionnalité que str_split(), mais opère sur des points de code au lieu d'octets.

OPcache

Le support pour le préchargement de code a été ajouté.

Expressions Régulières (Compatible Perl)

Les fonctions preg_replace_callback() et preg_replace_callback_array() acceptent désormais un argument flags additionnel, avec le support des drapeaux PREG_OFFSET_CAPTURE et PREG_UNMATCHED_AS_NULL. Ceci influence le format du tableau de matchs passé à la fonction de rappel.

PDO

Le nom d'utilisateur et le mot de passe peuvent désormais être spécifiés en tant que partie du DSN PDO pour les pilotes mysql, mssql, sybase, dblib, firebird et oci. Précédemment, ceci était seulement supporté pour le pilote pgsql. Si un nom d'utilisateur/mot de passe est défini à la fois dans le constructeur et le DSN, le constructeur prend précédence.

Il est désormais possible d'échapper les points d'interrogations dans les requêtes SQL pour éviter qu'ils ne soient interprétés comme paramètre fictif. Écrire ?? permet d'envoyer un seul point d'interrogation à la base de données et, par exemple, utiliser l'opérateur PostgreSQL JSON pour savoir si une clef existe (?).

PDO_OCI

PDOStatement::getColumnMeta() est désormais disponible.

PDO_SQLite

PDOStatement::getAttribute(PDO::SQLITE_ATTR_READONLY_STATEMENT) permet de vérifier si la déclaration est en lecture seule, c.à.d. si elle ne modifie pas la base de données.

PDO::setAttribute(PDO::SQLITE_ATTR_EXTENDED_RESULT_CODES, true) active l'utilisation des codes de résultats étendus dans PDO::errorInfo() et PDOStatement::errorInfo().

SQLite3

Ajout de SQLite3::lastExtendedErrorCode() pour récupérer le dernier code étendu du résultat.

Ajout de SQLite3::enableExtendedResultCodes($enable = true), qui fera retourner des codes de résultats étendus par SQLite3::lastErrorCode().

Standard

strip_tags() avec un tableau de noms de tag

strip_tags() accepte désormais un tableau de tags autorisés : au lieu de strip_tags($str, '<a><p>') il est désormais possible d'écrire strip_tags($str, ['a', 'p']).

Sérialisation personnalisée d'objets

Un nouveau mécanisme de sérialisation personnalisée d'objets a été ajouté, qui utilise deux nouvelles méthodes magiques : __serialize et __unserialize.

<?php
// Retourne un tableau contenant tout l'état nécessaire de l'objet.
public function __serialize(): array;

// Restaure l'état d'un objet depuis le tableau de données fourni.
public function __unserialize(array $data): void;
?>
Le nouveau mécanisme de sérialisation succèdera à l'interface Serializable, qui sera rendu obsolète dans le futur.

Les fonctions array merge sans arguments

array_merge() et array_merge_recursive() peuvent désormais être appelées sans arguments, dans ce cas-là elles retourneront un tableau vide. Ceci est utile en conjonction avec l'opérateur de décomposition, par exemple array_merge(...$arrays).

La fonction proc_open()

proc_open() accepte désormais un tableau au lieu d'une chaîne de caractères pour la commande. Dans ce cas-là, le processus est ouvert directement (sans passer à travers un shell) et PHP s'occupera d'échapper les arguments lorsque nécessaire.

<?php
proc_open(['php', '-r', 'echo "Hello World\n";'], $descriptors, $pipes);
?>

proc_open() supporte désormais les descripteurs redirect et null.

<?php
// Like 2>&1 on the shell
proc_open($cmd, [1 => ['pipe', 'w'], 2 => ['redirect', 1]], $pipes);
// Like 2>/dev/null or 2>nul on the shell
proc_open($cmd, [1 => ['pipe', 'w'], 2 => ['null']], $pipes);
?>

argon2i(d) sans libargon

password_hash() a désormais les implémentations de argon2i et argon2id de l'extension sodium quand PHP est compilé sans libargon.


  • « Nouvelles fonctionnalités
  • Nouvelles fonctions »
  • PHP Manual
  • Migration de PHP 7.3.x vers PHP 7.4.x
  • Nouvelles Classes et Interfaces

Nouvelles Classes et Interfaces

Reflection

  • ReflectionReference


Nouvelles fonctions

PHP Core

  • get_mangled_object_vars()
  • password_algos()
  • sapi_windows_set_ctrl_handler()

GD

  • imagecreatefromtga()

Chaînes Multi-octets

  • mb_str_split()

OpenSSL

  • openssl_x509_verify()

Process Control

  • pcntl_unshare()

SQLite3

  • SQLite3::backup()
  • SQLite3Stmt::getSQL()


Nouvelles constantes globales

PHP Core

  • PHP_WINDOWS_EVENT_CTRL_C
  • PHP_WINDOWS_EVENT_CTRL_BREAK

Chaîne multioctets

  • MB_ONIGURUMA_VERSION

Sockets

Added the following FreeBSD-specific socket options:

  • SO_LABEL
  • SO_PEERLABEL
  • SO_LISTENQLIMIT
  • SO_LISTENQLEN
  • SO_USER_COOKIE

Tidy

  • TIDY_TAG_ARTICLE
  • TIDY_TAG_ASIDE
  • TIDY_TAG_AUDIO
  • TIDY_TAG_BDI
  • TIDY_TAG_CANVAS
  • TIDY_TAG_COMMAND
  • TIDY_TAG_DATALIST
  • TIDY_TAG_DETAILS
  • TIDY_TAG_DIALOG
  • TIDY_TAG_FIGCAPTION
  • TIDY_TAG_FIGURE
  • TIDY_TAG_FOOTER
  • TIDY_TAG_HEADER
  • TIDY_TAG_HGROUP
  • TIDY_TAG_MAIN
  • TIDY_TAG_MARK
  • TIDY_TAG_MENUITEM
  • TIDY_TAG_METER
  • TIDY_TAG_NAV
  • TIDY_TAG_OUTPUT
  • TIDY_TAG_PROGRESS
  • TIDY_TAG_SECTION
  • TIDY_TAG_SOURCE
  • TIDY_TAG_SUMMARY
  • TIDY_TAG_TEMPLATE
  • TIDY_TAG_TIME
  • TIDY_TAG_TRACK
  • TIDY_TAG_VIDEO


Modifications entrainant une incompatibilité ascendante

PHP Core

Accès de type tableau des non-tableaux

Essayer d'utiliser des valeurs de type null, bool, int, float ou ressource comme un tableau (comme $null["clé"]) va maintenant générer un avis.

Fonction get_declared_classes()

La fonction get_declared_classes() ne renvoie plus les classes anonymes qui n'ont pas encore été instanciées.

mot-clé fn

fn est maintenant un mot-clé réservé. En particulier, il ne peut plus être utilisé comme une fonction ou un nom de classe. Il peut encore être utilisé comme une méthode ou un nom de constante de classe.

<?php tag à la fin du fichier

<?php à la fin du fichier (sans nouvelle ligne) sera désormais interprété comme une balise PHP d'ouverture. Auparavant, il était interprété soit comme une balise courte d'ouverture suivie d'une php littérale et aboutissait à une erreur de syntaxe (avec short_open_tag=1) ou était interprété comme une chaîne <?php (avec short_open_tag=0).

Filtres de flux

Lors de l'utilisation de include/require sur un flux, streamWrapper::stream_set_option() sera invoqué avec l'option STREAM_OPTION_READ_BUFFER. Les implémentations de filtre de flux personnalisés peuvent avoir besoin d'implémenter la méthode streamWrapper::stream_set_option() pour éviter un avertissement (toujours retouner false est une implémentation suffisante).

Sérialisation

Le format o de sérialisation a été supprimé. Comme il n'est jamais produit par PHP, cela peut seulement briser la désérialisation des chaînes construites manuellement.

Constantes d'algorithme de mot de passe

Les identificateurs d'algorithme de hachage de mot de passe sont maintenant des chaînes nullables plutôt que des entiers.

  • PASSWORD_DEFAULT était l'entier 1 ; maintenant c'est la chaîne '2y' (en PHP 7.4.0, 7.4.1, et 7.4.2 c'était null)
  • PASSWORD_BCRYPT était l'entier 1; maintenant est '2y'
  • PASSWORD_ARGON2I était l'entier 2; maintenant est 'argon2i'
  • PASSWORD_ARGON2ID était l'entier 3; maintenant est 'argon2id'

Les applications utilisant correctement les constantes PASSWORD_DEFAULT, PASSWORD_BCRYPT, PASSWORD_ARGON2I, et PASSWORD_ARGON2ID continueront à fonctionner correctement.

Fonction htmlentities()

htmlentities() va maintenant lever un avis (au lieu d'un avertissement de normes strictes) s'il est utilisé avec un codage pour lequel seule la substitution d'entité de base est supportée, auquel cas il est équivalent à htmlspecialchars().

Les fonctions fread() et fwrite()

fread() et fwrite() vont maintenant retourner false si l'opération échoue. Auparavant, une chaîne vide ou 0 était retourné(e). EAGAIN/EWOULDBLOCK ne sont pas considérés comme des échecs.

Ces fonctions soulèvent également un avis sur l'échec, par exemple lorsque vous essayez d'écrire à une ressource de fichier en lecture uniquement.

BCMath Arbitrary Precision Mathematics

Les fonctions BCMath avertiront désormais si un nombre non bien formé est adopté, tel que "32foo". L'argument sera interprété comme zéro, comme avant.

CURL

Tenter de sérialiser une classe CURLFile va maintenant générer une exception. Auparavant, l'exception n'était lancée que sur la désérialisation.

L'utilisation de CURLPIPE-HTTP1 est dépréciée et n'est plus prise en charge à partir de cURL 7.62.0.

Le paramètre $version de curl_version () est déprécié. Si une valeur n'est pas égale à la valeur par défaut CURLVERSION_NOW est passé, un avertissement est levé et le paramètre est ignoré.

Date et heure

Appeler var_dump() ou similaire sur une instance DateTime ou DateTimeImmutable ne laissera plus de propriétés accessibles sur l'objet.

La comparaison des objets DateInterval (à l'aide de ==, <, etc.) va maintenant générer un avertissement et toujours retourner false. Auparavant, tous les objets DateInterval étaient considérés comme égaux, à moins qu'ils n'aient des propriétés.

Intl

La valeur par défaut du paramètre de idn_to_ascii() et idn_to_utf8() est maintenant INTL_IDNA_VARIANT_UTS46 au lieu de la valeur déconseillée INTL_IDNA_VARIANT_2003.

MySQLi

La fonctionnalité du serveur intégré a été supprimée. Elle a été cassée depuis au moins PHP 7.0.

La propriété non documentée mysqli::$stat a été supprimée au profit de mysqli::stat().

OpenSSL

La fonction openssl_random_pseudo_bytes() lance une exception dans les situations d'erreur, semblable à random_bytes(). En particulier, une Error est lancée si le nombre d'octets demandés est inférieur ou égal à zéro, et une Exception est lancée si un caractère aléatoire suffisant ne peut pas être recueilli. L'argument de sortie $crypto_strong est garanti d'être toujours true si la fonction ne lance pas d'exception, afin de vérifier explicitement qu'il n'est pas nécessaire.

Expressions régulières (compatible Perl)

Lorsque le mode PREG_UNMATCHED_AS_NULL est utilisé, les groupes de capture non trouvés seront désormais également réglés à null (ou [null, -1] si la capture offset est activée). Cela signifie que la taille de $matches sera toujours la même.

PHP Data Objects

Une tentative de sérialisation d'une instance de PDO ou PDOStatement va désormais générer une Exception plutôt qu'une PDOException, compatible avec d'autres classes internes qui ne prennent pas en charge la sérialisation.

Reflection

Les objets Reflection génèrent désormais une exception si une tentative est faite pour les sérialiser. La sérialisation des objets Reflection n'a jamais été prise en charge et a donné lieu à des objets Reflection corrompus. Il a été explicitement interdit maintenant.

La valeur des constantes de classe de ReflectionClassConstant, ReflectionMethod et ReflectionProperty ont été changé.

Bibliothèque PHP standard (SPL)

L'appel get_object_vars() sur une instance ArrayObject retournera toujours les propriétés de l'ArrayObject lui-même (ou d'une sous-classe). Auparavant, il retournait les valeurs du tableau/objet à moins que le drapeau ArrayObject::STD_PROP_LIST n'ait été spécifié.

Les autres opérations touchées sont les suivantes :

  • ReflectionObject::getProperties()
  • reset(), current(), etc. Utiliser plutôt les méthodes d'Iterator.
  • Potentiellement d'autres fonctions travaillant sur les propriétés de l'objet comme une liste, e.g. array_walk().

Les modifications de type (array) ne sont pas affectées. Elles continueront à retourner soit le tableau enveloppé, soit les propriétés ArrayObject, selon que le drapeau ArrayObject::STD_PROP_LIST est utilisé.

SplPriorityQueue::setExtractFlags() lancera une exception si zéro est passé. Auparavant, cela générerait une erreur fatale récupérable lors de la prochaine opération d'extraction.

ArrayObject, ArrayIterator, SplDoublyLinkedList et SplObjectStorage gèrent maintenant __serialize() et __unserialize() en plus de l'interface Serializable. Cela signifie que les charges utiles de sérialisation créées sur les anciennes versions PHP peuvent toujours être désérialisées, mais les nouvelles charges utiles créées par PHP 7.4 ne seront pas compatibles par les anciennes versions.

Tokenizer

token_get_all() émettra maintenant un jeton T-BAD-CHARACTER pour les caractères inattendus au lieu de laisser derrière eux des trous dans le flux de jetons.

Cookies entrants

Depuis PHP 7.4.11, les noms des cookies entrants ne sont plus url-décodés pour des raisons de sécurité.


Fonctionnalités obsolètes

Cœur de PHP

Opérateurs ternaires imbriqués sans parenthèses explicites

Les opérateurs ternaires imbriqués doivent explicitement utiliser des parenthèses pour dicter l'ordre des opérations. Précédemment, quand utilisée sans parenthèses, l'associativité-gauche ne résulterait pas dans le comportement attendu pour la plupart des cas.

<?php
1 ? 2 : 3 ? 4 : 5; // obsolète
(1 ? 2 : 3) ? 4 : 5; // ok
1 ? 2 : (3 ? 4 : 5); // ok
?>

Les parenthèses ne sont pas requises lors de l'imbrication dans l'opérant du milieu car ceci est toujours sans ambiguïté et n'est pas affecté par l'associativité :

1 ? 2 ? 3 : 4 : 5 // ok

Accès de position de tableau et de chaînes en utilisant les accolades

La syntaxe pour accéder à la position des tableaux et chaîne de caractères avec les accolades est obsolète. Utiliser $var[$idx] au lieu de $var{$idx}.

Le transtypage (real) et la fonction is_real()

Le transtypage (real) est obsolète, utiliser (float) à la place.

La fonction is_real() est aussi obsolète, utiliser is_float() à la place.

Délier $this quand $this est utilisé

Délier $this d'une fermeture non statique qui utilise $this est obsolète.

Mot-clé parent sans classe parente

L'utilisation de parent à l'intérieur d'une classe sans parent est obsolète, et émettra une erreur lors de la compilation dans le futur. Actuellement seule une erreur sera générée si/quand un parent est accédé lors de l'exécution.

Option INI allow_url_include

La directive INI allow_url_include est obsolète. L'activer génèrera un avis d'obsolescence lors du démarrage.

Caractères invalides dans les fonctions de conversion de base

Passer des caractères invalides à base_convert(), bindec(), octdec() et hexdec() génèrera désormais un avis d'obsolescence. Le résultat sera toujours calculé comme si les caractères invalides n'existaient pas. Les caractères d'espacement blanc, aussi bien que les préfixes de type 0x (en fonction de la base) continuent d'être acceptés.

L'utilisation de array_key_exists() sur des objets

L'utilisation de array_key_exists() sur des objets est obsolète. À la place isset() ou property_exists() devraient être utilisés.

Fonctions des guillemets magiques

Les fonctions get_magic_quotes_gpc() et get_magic_quotes_runtime() sont obsolètes. Elles retournent toujours false.

Fonction hebrevc()

La fonction hebrevc() est obsolète. Elle peut être remplacée par nl2br(hebrev($str)) ou, de préférence, en utilisant le support Unicode RTL (Droite à Gauche).

Fonction convert_cyr_string()

La fonction convert_cyr_string() est obsolète. Elle peut être remplacée par l'une de mb_convert_string(), iconv() ou UConverter.

Fonction money_format()

La fonction money_format() est obsolète. Elle peut être remplacée par la fonctionnalité intl NumberFormatter.

Fonction ezmlm_hash()

La fonction ezmlm_hash() est obsolète.

Fonction restore_include_path()

La fonction restore_include_path() est obsolète. Elle peut être remplacée par ini_restore('include_path').

Implode avec l'ordre de paramètre historique

Passer les paramètres à implode() dans l'ordre inverse est obsolète, utiliser implode($glue, $parts) au lieu de implode($parts, $glue).

COM

L'importation de bibliothèques de type avec l'enregistrement de constantes non sensibles à la casse a été rendue obsolète.

Filtre

FILTER_SANITIZE_MAGIC_QUOTES est obsolète, utiliser FILTER_SANITIZE_ADD_SLASHES à la place.

Chaînes Multi-octets

Passer un pattern qui n'est pas une chaîne de caractères à mb_ereg_replace() est obsolète. Actuellement, les patterns qui ne sont pas des chaîne de caractères sont interprétés en tant que point de code ASCII. En PHP 8, le pattern sera interprété comme une chaîne de caractères à la place.

Passer l'encodage en tant que troisième paramètre à mb_strrpos() est obsolète. À la place passer une position de 0, et l'encodage en tant que quatrième paramètre.

Lightweight Directory Access Protocol (LDAP)

ldap_control_paged_result_response() et ldap_control_paged_result() sont obsolètes. Les contrôles de paginations peuvent être envoyés avec ldap_search() à la place.

Reflection

L'appel à ReflectionType::__toString() génère maintenant un avis d'obsolescence. Cette méthode a été dépréciée en faveur de ReflectionNamedType::getName() dans la documentation à partir de PHP 7.1, mais ne lançait pas un avis d'obsolescence pour des raisons techniques.

Les méthodes export() dans toutes les classes Reflection sont obsolètes. Créer un objet Reflection et le convertir en chaîne de caractères à la place :

<?php
// ReflectionClass::export(Foo::class, false) est :
echo new ReflectionClass(Foo::class), "\n";

// $str = ReflectionClass::export(Foo::class, true) est :
$str = (string) new ReflectionClass(Foo::class);
?>

Socket

Les drapeaux AI_IDN_ALLOW_UNASSIGNED et AI_IDN_USE_STD3_ASCII_RULES pour socket_addrinfo_lookup() sont obsolètes, en raison d'une dépréciation en amont dans glibc.


Extensions supprimées

Ces extensions ont été transférées à PECL et ne font plus partie de la distribution PHP. Les versions paquet PECL de ces extensions seront créées en fonction de la demande des utilisateurs.

  • Firebird/Interbase - l'accès à une base de données InterBase et/ou Firebird est toujours disponible avec le pilote Firebird du PDO.
  • Recode
  • WDDX


Autres changements

Amélioration des Performances

Cœur de PHP

Un opcode de VM spécialisé pour la fonction array_key_exists() a été ajouté, ceci améliore les performances de cette fonction si elle peut être résolue statiquement. Dans du code sous un espace de nom, ceci peut nécessiter d'écrire \array_key_exists() ou importer explicitement la fonction.

Expressions Régulières (Compatible Perl)

Quand preg_match() en mode UTF-8 (modificateur "u") est appelée à plusieurs reprises sur la même chaîne de caractères (mais possiblement à différentes positions), elle ne sera vérifiée qu'une seule fois pour la validité UTF-8.

Modifications Apportées à la Gestion de Fichiers INI

zend.exception_ignore_args est une nouvelle directive INI pour inclure ou exclure les arguments des traces de pile générées par les exceptions.

opcache.preload_user est une nouvelle directive INI permettant de spécifier le compte utilisateur ayant pour rôle d'exécuter le code pré-chargé (l'utilisateur root n'est pas autorisé pour des raisons de sécurité).

Migration vers pkg-config

Un nombre d'extensions a été migré pour utiliser exclusivement pkg-config pour la détection des dépendances de bibliothèques. Généralement, ceci signifie qu'au lieu d'utiliser --with-foo-dir=DIR ou similaire seul --with-foo est utilisé. Les chemins de bibliothèques personnalisées peuvent être spécifiés soit en ajoutant des dossiers supplémentaires à PKG_CONFIG_PATH soit en spécifiant les options de compilations explicitement à travers FOO_CFLAGS et FOO_LIBS.

Les extensions et SAPIs suivantes sont affectées :

  • CURL :
    • --with-curl n'accepte plus un dossier.
  • Enchant :
    • --with-enchant n'accepte plus un dossier.
  • FPM :
    • --with-fpm-systemd utilise désormais uniquement pkg-config pour les vérifications libsystem. La version minimale libsystemd requise est 209.
  • GD :
    • --with-gd devient --enable-gd (pour activer l'extension) et --with-external-gd (pour opter pour l'utilisation d'un libgd externe, plutôt que celui fourni).
    • --with-png-dir a été supprimé. libpng est requis.
    • --with-zlib-dir a été supprimé. zlib est requis.
    • --with-freetype-dir devient --with-freetype
    • --with-jpeg-dir devient --with-jpeg
    • --with-webp-dir devient --with-webp
    • --with-xpm-dir devient --with-xpm
  • IMAP :
    • --with-kerberos-systemd n'accepte plus un dossier.
  • Intl :
    • --with-icu-dir a été supprimé. Si --enable-intl est passé, alors libicu est toujours requis.
  • LDAP :
    • --with-ldap-sasl n'accepte plus un dossier.
  • Libxml :
    • --with-libxml-dir a été supprimé.
    • --enable-libxml devient --with-libxml.
    • --with-libexpat-dir a été renommé en --with-expat et n'accepte plus un dossier.
  • Litespeed :
    • --with-litespeed devient --enable-litespeed.
  • Mbstring :
    • --with-onig a été supprimé. Sauf si --disable-mbregex a été passé, libonig est requis.
  • ODBC :
    • --with-iodbc n'accepte plus un dossier.
    • --with-unixODBC sans un dossier utilise désormais phg-config (préférable). Le dossier est toujours accepté pour les anciennes versions sans libodbc.pc.
  • OpenSSL :
    • --with-openssl n'accepte plus un dossier.
  • PCRE :
    • --with-pcre-regex a été supprimé. À la place --with-external-pcre est offert pour opter pour l'utilisation d'une bibliothèque PCRE externe, plutôt que celle fournie.
  • PDO_SQLite :
    • --with-pdo-sqlite n'accepte plus un dossier.
  • Readline :
    • --with-libedit n'accepte plus un dossier.
  • Sodium :
    • --with-sodium n'accepte plus un dossier.
  • SQLite3 :
    • --with-sqlite3 n'accepte plus un dossier.
  • XSL :
    • --with-xsl n'accepte plus un dossier.
  • Zip :
    • --with-libzip a été supprimé.
    • --enable-zip devient --with-zip.

Échappement CSV

fputcsv(),
fgetcsv(),
SplFileObject::fputcsv(),
SplFileObject::fgetcsv(), et
SplFileObject::setCsvControl()
acceptent désormais une chaîne de caractères vide en tant qu'argument
$escape, qui désactive le mécanisme d'échappement
propriétaire de PHP.

Le comportement de str_getcsv() a été ajusté en conséquence (auparavant, une chaîne de caractères vide était identique à utiliser les valeurs par défaut).

SplFileObject::getCsvControl() peut, par conséquent désormais aussi retourner une chaîne de caractères vide pour le troisième élément du tableau.

Filtrage de Données

L'extension filter n'expose plus --with-pcre-dir pour les builds Unix et peut désormais être compilée de manière fiable en tant que partagé lors de l'utilisation de ./configure

GD

Le comportement de imagecropauto() dans la bibliothèque libgd fourni a été synchronisé avec celui de libgd système :

  • IMG_CROP_DEFAULT ne se replie plus sur IMG_CROP_SIDES
  • Le seuil de recadrage (Threshold-cropping) utilise désormais l'algorithme de libgd système.

La paramètre par défaut $mode de imagecropauto() a été modifié en IMG_CROP_DEFAULT ; fournir -1 est désormais obsolète.

imagescale() supporte désormais la préservation du rapport hauteur / largeur lors de la mise à l'échelle à une hauteur fixe en passant -1 à $new_width.

HASH Message Digest Framework

L'extension hash ne peut plus être désactivée et fait toujours partie intégrante de n'importe quel build PHP, similaire à l'extension date.

Intl

L'extension intl requiert désormais au moins ICU 50.1.

ResourceBundle implémente désormais Countable.

Lightweight Directory Access Protocol (LDAP)

Le support pour nsldap et umich_ldap a été supprimé.

Libxml

Toutes les extensions basées sur libxml nécessitent libxml 2.7.6 ou ultérieur.

Chaînes multioctets

La bibliothèque oniguruma n'est plus fournie avec PHP, à la place libonig doit être disponible sur le système. Alternativement --disable-mbregex peut être utilisé pour désactiver le composant mbregex.

OPcache

Les options de configurations --disable-opcache-file et --enable-opcache-file ont été supprimées en faveur de la directive INI opcache.file_cache.

Hachage de Mot de Passe

Les fonctions password_hash() et password_needs_rehash() acceptent désormais des chaîne de caractères et entier nullable pour l'argument $algo.

PEAR

L'installation de PEAR (inclus PECL) n'est plus activée par défaut. Ceci peut être explicitement activé en utilisant --with-pear. Cette option est obsolète et pourra être supprimée dans le futur.

Reflection

Les valeurs numériques des constantes de modificateur (IS_ABSTRACT, IS_DEPRECATED, IS_EXPLICIT_ABSTRACT, IS_FINAL, IS_IMPLICIT_ABSTRACT, IS_PRIVATE, IS_PROTECTED, IS_PUBLIC, et IS_STATIC) sur les classes ReflectionClass, ReflectionFunction, ReflectionMethod, ReflectionObject, et ReflectionProperty ont été modifiées.

SimpleXML

SimpleXMLElement implémente désormais Countable.

SQLite3

La bibliothèque libsqlite intégrée a été supprimée. Pour compiler l'extension SQLite3 une libsqlite3 = 3.7.4 du système est désormais requise. Pour compiler l'extension PDO_SQLite une libsqlite3 = 3.5.0 du système est désormais requise.

La sérialisation et désérialisation de SQLite3, SQLite3Stmt et SQLite3Result est désormais explicitement interdite. Auparavant, la sérialisation d'instances de ces classes était possible, mais la désérialisation générait des objets inutilisables.

La notation @param peut désormais être utilisée pour dénoter les paramètres de requête SQL.

Zip

La bibliothèque libzip intégrée a été supprimée. Une libzip >= 0.11 du système est désormais requise pour compiler l'extension zip.


Gestion de Windows

Drapeaux configure

configure supporte les variables d'environnement CFLAGS et LDFLAGS.

Traitement CTRL

CTRL+C et CTRL+BREAK sur la console peuvent être prises en définissant un gestionnaire avec la fonction sapi_windows_set_ctrl_handler().

L'option "create_process_group" peut être passée à proc_open() sur Windows. Elle est nécessaire si le processus enfant est censé gérer les événements CTRL.

OPcache

OPcache prend désormais en charge un nombre arbitraire de caches séparés par utilisateur via la directive INI opcache.cache-id. Tous les processus avec le même identifiant de cache et le même utilisateur partagent une instance OPcache.

stat

L'implémentation de la stat a été refactorisée.

  • Un numéro d'inode est livré et est basé sur l'index de fichier NTFS.
  • Le numéro de l'appareil est maintenant basé sur le numéro de série du volume.

Notez que les deux valeurs sont dérivées du système et fournies tel qu'il est sur les systèmes 64 bits. Sur les systèmes 32 bits, ces valeurs peuvent dépasser l'entier 32 bits dans PHP, donc ils sont faux.

libsqlite3

libsqlite3 n'est plus compilé statiquement en php_sqlite3.dll et php_pdo_sqlite.dll, mais est plutôt disponible en tant que libsqlite3.dll. Se référer aux instructions d'installation de SQLite3 et PDO_SQLITE, respectivement.


Migration de PHP 7.2.x vers PHP 7.3.x

Sommaire

  • Nouvelles fonctionnalités
  • Nouvelles fonctions
  • Nouvelles constantes globales
  • Modifications entrainant une incompatibilité ascendante
  • Fonctionnalités devenues obsolètes
  • Autres changements
  • Support de Windows

Cette nouvelle version mineure apporte un certain nombre de nouvelles fonctionnalités et quelques incompatibilités qui devraient être testées avant de changer les versions PHP dans les environnements de production.

Voir aussi les guides de migration entre les différentes versions de PHP 7.0.x, 7.1.x et 7.2.x.


Nouvelles fonctionnalités

Cœur de PHP

Syntaxe Plus Flexible pour Heredoc et Nowdoc

Le marqueur fermant pour les chaînes doc n'est plus requis d'être suivi par un point virgule ou un retour à la ligne. Additionellement le marqueur fermant peut être indenté, dans ce cas l'indentation sera retirée de toutes les lignes dans la chaîne doc.

La Déstructuration de Tableaux prend en charge les Assignations de Référence

La déstructuration de tableaux supporte désormais les assignements de référence en utilisant la syntaxe [&$a, [$b, &$c]] = $d. Ceci est aussi supporté pour list().

L'Opérateur Instanceof accepte les Littéraux

instanceof accepte désormais les littéraux comme premier opérant, dans ce cas le résultat est toujours false.

Exception CompileError au lieu de quelques Erreurs de Compilation

Une nouvelle exception CompileError a été ajoutée, duquel ParseError inhérite. Un petit nombre d'erreurs de compilation lanceront désormais CompileError au lieu de générer une erreur fatale. Actuellement ceci affecte uniquement les erreurs de compilation qui peuvent être lancées par token_get_all() dans le mode TOKEN_PARSE, mais plus d'erreurs pourront être converties dans le futur.

Les Virgules de Fin sont Autorisées dans les Appels

Les virgules de fin dans les appels de fonctions et méthodes sont désormais autorisées.

Support pour Argon2id

L'argument de configuration --with-password-argon2[=dir] fournit désormais le support pour les hash Argon2i et Argon2id dans les fonctions password_hash(), password_verify(), password_get_info(), et password_needs_rehash(). Les mots de passe peuvent être hachés et vérifiés en utilisant la constante PASSWORD_ARGON2ID. Le support pour Argon2i et Argon2id dans les fonctions password_*() nécessite désormais que PHP soit lié à la bibliothèque de référence libargon2 = 20161029.

Gestionnaire de Processus FastCGI

De nouvelles options ont été ajoutées pour personnaliser les journaux d'événements FPM :

log_limit
Cette option globale peut être utilisée pour définir la limite de journal pour la ligne journalisée, ce qui permet de consigner des messages de plus de 1024 caractères sans retour à la ligne. Il corrige également divers problèmes d'emballage (retour à la ligne).
log_buffering
Cette option globale permet une journalisation expérimentale sans mise en mémoire tampon supplémentaire.
decorate_workers_output
Cette option de pool permet de désactiver la décoration de sortie pour les sorties des workers quand catch_workers_output est activé.

Fonctions BC Math

bcscale() peut désormais être utilisé en tant que récupérateur pour récupérer la précision actuellement en utilisation.

Lightweight Directory Access Protocol

Le support total pour les Contrôles LDAP a été ajouté aux fonctions de requête LDAP et ldap_parse_result() :

  • Un paramètre $controls pour envoyer les contrôles
au serveur dans ldap_add(),
ldap_mod_replace(), ldap_mod_add(),
ldap_mod_del(), ldap_rename(),
ldap_compare(), ldap_delete(),
ldap_modify_batch(),
ldap_search(), ldap_list() et
ldap_read() a été ajouté.
  • Le paramètre de sortie $controls pour récupérer les contrôles depuis le serveur dans ldap_parse_result() a été ajouté.
  • Support pour LDAP_OPT_SERVER_CONTROLS et LDAP_OPT_CLIENT_CONTROLS dans ldap_get_option() et ldap_set_option() a été corrigé.

Fonctions pour les Chaînes Multi-Octets

Support pour le Mappage Pleine Casse et Pliage de Casse

Le support pour le mappage pleine casse et pliage de casse a été ajouté. Contrairement au mappage basique de casse, le mapping pleine casse peut modifier la longueur de la chaîne. Par exemple :

<?php
mb_strtoupper("Straße");
// Produit STRAßE en PHP 7.2
// Produit STRASSE en PHP 7.3
?>
Les différents modes de mappage et de pliage de casse sont disponibles à travers mb_convert_case() :
  • MB_CASE_LOWER (utilisé par mb_strtolower())
  • MB_CASE_UPPER (utilisé par mb_strtoupper())
  • MB_CASE_TITLE
  • MB_CASE_FOLD
  • MB_CASE_LOWER_SIMPLE
  • MB_CASE_UPPER_SIMPLE
  • MB_CASE_TITLE_SIMPLE
  • MB_CASE_FOLD_SIMPLE (utilisé par les opérations insensibles à la casse)
Seul un mappage complet des cas, inconditionnel et indépendant de la langue, est effectué.

Les Opérations de Chaînes Insensibles à la Casse utilisent le Pliage de Casse

Les opérations de chaînes insensibles à la casse utilisent désormais le pliage de casse au lieu du mappage de casse lors des comparaisons. Ceci signifie que plus de caractères seront considérés (insensible à la casse) égaux désormais.

MB_CASE_TITLE exécute une Conversion de casse de titre

mb_convert_case() avec MB_CASE_TITLE exécute désormais une conversion de casse de titre basée sur les propriétés dérivées Unicode Cased et CaseIgnorable. En particulier ceci améliore aussi la gestion des guillemets et apostrophes.

Support pour Unicode 11

Les tables de données pour les Chaînes Multi-octets ont été mis à jour pour Unicode 11.

Support pour les Chaînes Longues

Les Fonctions de Chaînes Multi-Octets supportent désormais correctement les chaînes plus grandes que 2Go.

Amélioration des Performances

Les performances de l'extension des Chaînes Multi-Octets ont été améliorées de façon significative à tous les niveaux. Les plus grandes améliorations sont dans les fonctions de conversion de casse.

Support pour les Captures Nommées

Les fonctions mb_ereg_* supportent désormais les captures nommées. Les fonctions de correspondances comme mb_ereg() retourneront désormais les captures nommées en utilisant à la fois leurs numéros de groupe et leurs noms, similaires à PCRE :

<?php
mb_ereg('(?<word>\w+)', '?', $matches);
// => [0 => "?", 1 => "?", "word" => "?"];
?>
De plus, mb_ereg_replace() supporte désormais les notations \k<> et \k'' pour faire référence aux captures nommées dans la chaîne de remplacement :
<?php
mb_ereg_replace('\s*(?<word>\w+)\s*', "_\k<word>_\k'word'_", ' foo ');
// => "_foo_foo_"
?>
\k<> et \k'' peuvent aussi être utilisés pour les références numériques, qui fonctionnent aussi avec des nombres de groupe supérieur à 9.

Readline

Le support pour les options completion_append_character et completion_suppress_append a été ajouté à readline_info(). Ces options sont seulement disponibles si PHP est lié à libreadline (plutôt que libedit).


Nouvelles fonctions

Cœur de PHP

  • array_key_first()
  • array_key_last()
  • gc_status()
  • hrtime()
  • is_countable()
  • net_get_interfaces()

FastCGI Process Manager

  • fpm_get_status()

Date et Temps

  • DateTime::createFromImmutable()

GNU Multiple Precision

  • gmp_binomial()
  • gmp_kronecker()
  • gmp_lcm()
  • gmp_perfect_power()

Fonctions d'Internationalisation

  • Normalizer::getRawDecomposition()
  • normalizer_get_raw_decomposition()
  • Spoofchecker::setRestrictionLevel()

Lightweight Directory Access Protocol (LDAP)

  • ldap_add_ext()
  • ldap_bind_ext()
  • ldap_delete_ext()
  • ldap_exop_refresh()
  • ldap_mod_add_ext()
  • ldap_mod_replace_ext()
  • ldap_mod_del_ext()
  • ldap_rename_ext()

OpenSSL

  • openssl_pkey_derive()

Sockets

  • socket_wsaprotocol_info_export()
  • socket_wsaprotocol_info_import()
  • socket_wsaprotocol_info_release()


Nouvelles constantes globales

Cœur de PHP

  • PASSWORD_ARGON2ID

Librairie Client URL

  • CURLAUTH_BEARER
  • CURLAUTH_GSSAPI
  • CURLE_WEIRD_SERVER_REPLY
  • CURLINFO_APPCONNECT_TIME_T
  • CURLINFO_CONNECT_TIME_T
  • CURLINFO_CONTENT_LENGTH_DOWNLOAD_T
  • CURLINFO_CONTENT_LENGTH_UPLOAD_T
  • CURLINFO_FILETIME_T
  • CURLINFO_HTTP_VERSION
  • CURLINFO_NAMELOOKUP_TIME_T
  • CURLINFO_PRETRANSFER_TIME_T
  • CURLINFO_PROTOCOL
  • CURLINFO_PROXY_SSL_VERIFYRESULT
  • CURLINFO_REDIRECT_TIME_T
  • CURLINFO_SCHEME
  • CURLINFO_SIZE_DOWNLOAD_T
  • CURLINFO_SIZE_UPLOAD_T
  • CURLINFO_SPEED_DOWNLOAD_T
  • CURLINFO_SPEED_UPLOAD_T
  • CURLINFO_STARTTRANSFER_TIME_T
  • CURLINFO_TOTAL_TIME_T
  • CURL_LOCK_DATA_CONNECT
  • CURL_LOCK_DATA_PSL
  • CURL_MAX_READ_SIZE
  • CURLOPT_ABSTRACT_UNIX_SOCKET
  • CURLOPT_DISALLOW_USERNAME_IN_URL
  • CURLOPT_DNS_SHUFFLE_ADDRESSES
  • CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS
  • CURLOPT_HAPROXYPROTOCOL
  • CURLOPT_KEEP_SENDING_ON_ERROR
  • CURLOPT_PRE_PROXY
  • CURLOPT_PROXY_CAINFO
  • CURLOPT_PROXY_CAPATH
  • CURLOPT_PROXY_CRLFILE
  • CURLOPT_PROXY_KEYPASSWD
  • CURLOPT_PROXY_PINNEDPUBLICKEY
  • CURLOPT_PROXY_SSLCERT
  • CURLOPT_PROXY_SSLCERTTYPE
  • CURLOPT_PROXY_SSL_CIPHER_LIST
  • CURLOPT_PROXY_SSLKEY
  • CURLOPT_PROXY_SSLKEYTYPE
  • CURLOPT_PROXY_SSL_OPTIONS
  • CURLOPT_PROXY_SSL_VERIFYHOST
  • CURLOPT_PROXY_SSL_VERIFYPEER
  • CURLOPT_PROXY_SSLVERSION
  • CURLOPT_PROXY_TLS13_CIPHERS
  • CURLOPT_PROXY_TLSAUTH_PASSWORD
  • CURLOPT_PROXY_TLSAUTH_TYPE
  • CURLOPT_PROXY_TLSAUTH_USERNAME
  • CURLOPT_REQUEST_TARGET
  • CURLOPT_SOCKS5_AUTH
  • CURLOPT_SSH_COMPRESSION
  • CURLOPT_SUPPRESS_CONNECT_HEADERS
  • CURLOPT_TIMEVALUE_LARGE
  • CURLOPT_TLS13_CIPHERS
  • CURLPROXY_HTTPS
  • CURLSSH_AUTH_GSSAPI
  • CURL_SSLVERSION_MAX_DEFAULT
  • CURL_SSLVERSION_MAX_NONE
  • CURL_SSLVERSION_MAX_TLSv1_0
  • CURL_SSLVERSION_MAX_TLSv1_1
  • CURL_SSLVERSION_MAX_TLSv1_2
  • CURL_SSLVERSION_MAX_TLSv1_3
  • CURL_SSLVERSION_TLSv1_3
  • CURL_VERSION_ALTSVC (à partir de PHP 7.3.6)
  • CURL_VERSION_ASYNCHDNS
  • CURL_VERSION_BROTLI
  • CURL_VERSION_CONV
  • CURL_VERSION_CURLDEBUG (à partir de PHP 7.3.6)
  • CURL_VERSION_DEBUG
  • CURL_VERSION_GSSAPI
  • CURL_VERSION_GSSNEGOTIATE
  • CURL_VERSION_HTTPS_PROXY
  • CURL_VERSION_IDN
  • CURL_VERSION_LARGEFILE
  • CURL_VERSION_MULTI_SSL
  • CURL_VERSION_NTLM
  • CURL_VERSION_NTLM_WB
  • CURL_VERSION_PSL (à partir de PHP 7.3.6)
  • CURL_VERSION_SPNEGO
  • CURL_VERSION_SSPI
  • CURL_VERSION_TLSAUTH_SRP

Filtrage des données

  • FILTER_SANITIZE_ADD_SLASHES

JavaScript Object Notation

  • JSON_THROW_ON_ERROR

Lightweight Directory Access Protocol

  • LDAP_CONTROL_ASSERT
  • LDAP_CONTROL_MANAGEDSAIT
  • LDAP_CONTROL_PROXY_AUTHZ
  • LDAP_CONTROL_SUBENTRIES
  • LDAP_CONTROL_VALUESRETURNFILTER
  • LDAP_CONTROL_PRE_READ
  • LDAP_CONTROL_POST_READ
  • LDAP_CONTROL_SORTREQUEST
  • LDAP_CONTROL_SORTRESPONSE
  • LDAP_CONTROL_PAGEDRESULTS
  • LDAP_CONTROL_AUTHZID_REQUEST
  • LDAP_CONTROL_AUTHZID_RESPONSE
  • LDAP_CONTROL_SYNC
  • LDAP_CONTROL_SYNC_STATE
  • LDAP_CONTROL_SYNC_DONE
  • LDAP_CONTROL_DONTUSECOPY
  • LDAP_CONTROL_PASSWORDPOLICYREQUEST
  • LDAP_CONTROL_PASSWORDPOLICYRESPONSE
  • LDAP_CONTROL_X_INCREMENTAL_VALUES
  • LDAP_CONTROL_X_DOMAIN_SCOPE
  • LDAP_CONTROL_X_PERMISSIVE_MODIFY
  • LDAP_CONTROL_X_SEARCH_OPTIONS
  • LDAP_CONTROL_X_TREE_DELETE
  • LDAP_CONTROL_X_EXTENDED_DN
  • LDAP_CONTROL_VLVREQUEST
  • LDAP_CONTROL_VLVRESPONSE

Chaîne de caractères multioctets

  • MB_CASE_FOLD
  • MB_CASE_LOWER_SIMPLE
  • MB_CASE_UPPER_SIMPLE
  • MB_CASE_TITLE_SIMPLE
  • MB_CASE_FOLD_SIMPLE

OpenSSL

  • STREAM_CRYPTO_PROTO_SSLv3
  • STREAM_CRYPTO_PROTO_TLSv1_0
  • STREAM_CRYPTO_PROTO_TLSv1_1
  • STREAM_CRYPTO_PROTO_TLSv1_2

PostgreSQL

  • PGSQL_DIAG_SCHEMA_NAME
  • PGSQL_DIAG_TABLE_NAME
  • PGSQL_DIAG_COLUMN_NAME
  • PGSQL_DIAG_DATATYPE_NAME
  • PGSQL_DIAG_CONSTRAINT_NAME
  • PGSQL_DIAG_SEVERITY_NONLOCALIZED


Modifications entrainant une incompatibilité ascendante

Cœur de PHP

Interprétation des Labels de Terminaison Heredoc/Nowdoc

Avec l'introduction de la syntaxe flexible heredoc / nowdoc, les chaîne de caractères doc qui contiennent le label de terminaison dans leur corps peuvent causer des erreurs de syntaxe ou changer en interprétation. Par exemple dans :

<?php
$str = <<<FOO
abcdefg
 FOO
FOO;
?>
l'occurrence indentée de FOO n'avait pas de signification particulière précédemment. Désormais elle sera interprétée comme la fin de la chaîne de caractères heredoc et le FOO; suivant causera une erreur de syntaxe. Ce problème peut toujours être résolu en choisissant un label de terminaison qui n'apparait pas dans le contenu de la chaîne de caractères.

Continue visant Switch génèrent des Avertissements

Les déclarations continue visant les structures de flux de contrôle switch généreront désormais un avertissement. En PHP ces déclarations continue sont équivalentes à break, alors qu'elles se comportent comme continue 2 dans d'autres langages.

<?php
while ($foo) {
switch ($bar) {
case "baz":
continue;
// Warning: "continue" targeting switch is equivalent to
// "break". Did you mean to use "continue 2"?
}
}
?>

Interprétation Stricte des Clés de Chaînes de Caractères Entiers sur ArrayAccess

Les accès de tableau du type $obj["123"], où $obj implémente ArrayAccess et "123" est une chaîne de caractères d'entier litérale ne résulteront plus en une conversion implicite en entier, c.à.d., $obj->offsetGet("123") sera appellé au lieu de $obj->offsetGet(123). Ceci correspond au comportement pour les non litérales. Le comportement des tableau n'est pas affecté d'une quelconque manière, ils continuent de convertir implicitement des clés de chaîne de caractères en entier.

Les Propriétés Statiques ne sont plus séparées par l'Affectation de Référence

En PHP, les propriétés statiques sont partagées entre les classes héritantes, sauf si la propriété statique est explicitement remplacée dans une classe enfant. Cependant à cause d'un artefact d'implémentation il était possible de séparer les propriétés statiques en affectant une référence. Cette lacune a été corrigée.

<?php
class Test {
public static $x = 0;
}
class Test2 extends Test { }

Test2::$x = &$x;
$x = 1;

var_dump(Test::$x, Test2::$x);
// Previously: int(0), int(1)
// Now: int(1), int(1)
?>

Les références retournées par les tableaux et les accès aux propriétés sont immédiatement décompressées

Les références retournées par les tableaux et les accès aux propriétés sont désormais décompressées dans le cadre de l'accès. Ceci signifie qu'il n'est plus possible de modifier la référence entre l'accès et l'utilisation de la valeur accédée :

<?php
$arr = [1];
$ref =& $arr[0];
var_dump($arr[0] + ($arr[0] = 2));
// Previously: int(4), Now: int(3)
?>
Ceci rend le comportement des références et non références cohérent. Il est à noter que lire et écrire une valeur à l'intérieur d'une unique expression continue d'être un comportement non défini et peut changer de nouveau dans le futur.

La décompression d'arguments de Traversables avec des clés non-entières n'est plus prise en charge

La décompression d'arguments a cessé de fonctionner avec Traversables avec des clés non-entières Le code suivant fonctionnait en PHP 5.6-7.2 par accident.

<?php
function foo(...$args) {
var_dump($args);
}
function gen() {
yield 1.23 => 123;
}
foo(...gen());
?>

Divers

L'utilitaire ext_skel a été entièrement repensé avec de nouvelles options et certaines anciennes options supprimées. Ceci est maintenant écrit en PHP et n'a aucune dépendance externe.

Le support pour BeOS a été abandonné.

Les exceptions lancées à cause d'une conversion automatique d'avertissements en exceptions avec le mode EH_THROW (par exemple certaines exceptions de DateTime) ne remplissent plus l'état de error_get_last(). En tant que telles, elles fonctionnent désormais de la même manière que les exceptions levées manuellement.

TypeError rapporte désormais les mauvais types en tant que int et bool au lieu de integer et boolean, respectivement.

Les variables indéfinies passées à compact() seront désormais rapportées avec une notice.

getimagesize() et les fonctions connexes rapportent désormais le type MIME des images BMP en tant que image/bmp au lieu de image/x-ms-bmp, car le premier a été inscrit avec l'IANA (voir » RFC 7903).

stream_socket_get_name() retourne désormais les adresses IPv6 avec des crochets. Par exemple "[::1]:1337" sera retourné au lieu de "::1:1337".

BCMath Arbitrary Precision Mathematics

Tous les avertissements lancés par les fonctions BCMath utilisent désormais le gestionnaire d'erreur de PHP. Auparavant certains avertissements étaient écrits directement à stderr.

bcmul() et bcpow() retourne désormais les nombres avec la précision demandée. Auparavant, certains nombres pouvaient omettre les zéros de fin décimaux.

IMAP, POP3 et NNTP

Les authentifications rsh/ssh sont désactivées par défaut. Utilisez imap.enable_insecure_rsh si vous voulez les activer. Il est à noter que la bibliothèque IMAP ne filtre pas les noms des boîtes aux lettres avant de les passer aux commandes rsh/ssh, ainsi passer des données non fiables à cette fonction avec rsh/ssh activé est dangereux.

Chaînes de caractères multioctets

En raison de la prise en charge des captures nommées, les masques mb_ereg_*() utilisant les captures nommées se comporteront différemment. En particulier les captures nommées feront partie des correspondances et mb_ereg_replace() interprétera la syntaxe additionnelle. Voir Captures Nommées pour plus d'information.

Extension MySQL Améliorée (MySQLi)

Les déclarations préparées rapportent désormais les fractions de secondes pour les colonnes DATETIME, TIME et TIMESTAMP avec spécificateur décimal (par exemple TIMESTAMP(6) lors de l'utilisation de microsecondes). Auparavant les fractions de secondes étaient tout simplement omises des valeurs de retours.

Fonctions MySQL (PDO_MYSQL)

Les déclarations préparées rapportent désormais les fractions de secondes pour les colonnes DATETIME, TIME et TIMESTAMP avec spécificateur décimal (par exemple TIMESTAMP(6) lors de l'utilisation de microsecondes). Auparavant les fractions de secondes étaient tout simplement omises des valeurs de retours. Veuillez noter que ceci affecte uniquement l'utilisation de PDO_MYSQL avec les déclarations préparées émulées désactivées (par exemple en utilisant la fonctionnalité native de préparation). Les déclarations utilisant des connexions qui ont PDO::ATTR_EMULATE_PREPARES=true (ce qui est par défaut) ne sont pas affectées par la correction de bogue et récupéraient déjà les valeurs des fractions de secondes depuis le moteur.

Reflection

Les exportations de Reflection en chaîne de caractères utilisent désormais int et bool au lieu de integer et boolean, respectivement.

Bibliothéque Standard de PHP (SPL)

Si un autochargeur SPL lance une exception, les autochargeurs suivants ne seront pas exécutés. Précédemment tous les autochargeurs étaient exécutés et les exceptions étaient chainées.

SimpleXML

Les opérations mathématiques impliquant les objets SimpleXML traiteront désormais le texte comme un entier ou un nombre décimal, selon ce qui est plus approprié. Auparavant les valeurs étaient traitées comme un entier sans condition.

Cookies entrants

Depuis PHP 7.3.23, les noms des cookies entrants ne sont plus url-décodés pour des raisons de sécurité.


Fonctionnalités devenues obsolètes

Cœur de PHP

Constantes non sensibles à la casse

La déclaration des constantes non sensibles à la casse a été déconseillée. Le passage de true comme troisième argument à define() générera désormais un avertissement d'obsolescence. L'utilisation de constantes non sensibles à la casse avec une casse qui diffère de la déclaration est également obsolète.

assert() dans un espace de nom

La déclaration d'une fonction appelée assert() dans un espace de noms est déconseillée. La fonction assert() est sujette à une manipulation spéciale par le moteur, ce qui peut conduire à un comportement incohérent lors de la définition d'une fonction dans un espace de nom avec le même nom.

Recherche de chaînes avec Needle non-chaîne

Passer une valeur recherchée qui n'est pas du texte dans les fonctions de recherche est déconseillé. Dans le futur la valeur recherchée sera interprétée comme une chaîne en ASCII. Selon le comportement prévu, vous devez soit explicitement caster la recherche en chaîne soit effectuer un appel explicite à chr(). Les fonctions suivantes sont affectées :

  • strpos()
  • strrpos()
  • stripos()
  • strripos()
  • strstr()
  • strchr()
  • strrchr()
  • stristr()

Strip-Tags Streaming

La fonction fgetss() et le filtre de flux string.strip_tags sont maintenant déconseillés. Cela affecte également la méthode SplFileObject::fgetss() et la fonction gzgetss().

Filtrage des données

L'utilisation explicite des constantes FILTER_FLAG_SCHEME_REQUIRED et FILTER_FLAG_HOST_REQUIRED est maintenant déconseillée; les deux sont implicites pour FILTER_VALIDATE_URL de toute façon.

Traitement d'image et GD

La fonction image2wbmp() est déconseillée.

Fonctions d'internationalisation

L'utilisation de la forme Normalizer::NONE lève un avertissement d'obsolescence, si PHP est lié à l'ICU = 56.

Chaîne multioctets

Les alias mbereg_*() non documentés suivants sont déconseillés. Utilisez plutôt les variantes mb_ereg_*() correspondantes.

  • mbregex_encoding()
  • mbereg()
  • mberegi()
  • mbereg_replace()
  • mberegi_replace()
  • mbsplit()
  • mbereg_match()
  • mbereg_search()
  • mbereg_search_pos()
  • mbereg_search_regs()
  • mbereg_search_init()
  • mbereg_search_getregs()
  • mbereg_search_getpos()
  • mbereg_search_setpos()

Fonction ODBC et DB2 (PDO_ODBC)

Le paramètre ini pdo_odbc.db2_instance_name a été formellement déconseillé. Il est déconseillé dans la documentation à partir de PHP 5.1.1.


Autres changements

PHP Core

Set(raw)cookie accepte l'argument $option

setcookie() et setrawcookie() prennent également la signature suivante :

setcookie(string $name, string $value = "", array $options = []): bool
où $options est un tableau associatif qui peut avoir l'une des clés suivantes "expires", "path", "domain", "secure", "httponly" et "samesite".

Nouvelles directives INI Syslog

Les directives INI suivantes ont été ajoutées pour personnaliser l'enregistrement, si error_log est défini sur syslog:

syslog.facility
Spécifie quel type de programme enregistre le message.
syslog.filter
Spécifie le type de filtre pour filtrer les messages enregistrés, avec les types de filtres pris en charge - all, no-ctrl et ascii. À partir de PHP 7.3.8, raw est aussi disponible, restaurant le comportement de syslog correspondant au versions antérieures de PHP. Ce filtre affectera aussi les appels à syslog().
syslog.ident
Spécifie la chaîne ident qui préfixera chaque message.

Collecteur de mémoire

Le GC cyclique a été amélioré, ce qui améliore grandement les performances.

Divers

var_export() exporte maintenant les objets stdClass comme un tableau modifié en objet ((object) array( ... )), plutôt que d'utiliser la méthode inexistante stdClass::__setState().

debug_zval_dump() a été modifié pour afficher les tableaux et les objets récursifs de la même manière que var_dump(). Maintenant, il ne les affiche pas deux fois.

array_push() et array_unshift() peuvent maintenant être appelés avec un seul argument, ce qui est particulièrement pratique avec l'opétateur de décomposition.

Débogueur PHP interactif

Les constantes inutilisées PHPDBG_FILE, PHPDBG_METHOD, PHPDBG_LINENO et PHPDBG_FUNC ont été supprimées.

Gestionnaire de processus FastCGI

La fonction getallheaders() est maintenant également disponible.

Bibliothèque URL client

libcurl = 7.15.5 est maintenant nécessaire.

Filtrage des données

FILTER_VALIDATE_FLOAT gère maintenant l'option thousand, qui définit l'ensemble de caractères de séparation pour les milliers. La valeur par défaut est ("',.") entièrement rétrocompatible avec les anciennes versions PHP.

FILTER_SANITIZE_ADD_SLASHES a été ajouté comme un alias du filtre magic_quotes (FILTER_SANITIZE_MAGIC_QUOTES). Le filtre magic_quotes est susceptible d'être supprimé dans les futures versions de PHP.

FTP

Le mode de transfert par défaut a été modifié pour binary.

Fonctions d'internationalisation

Normalizer::NONE est déprécié, lorsque PHP est lié à ICU = 56.

Introduction de Normalizer::FORM_KC_CF en tant qu'argument de Normalizer::normalize() pour la normalisation NFKC_Casefold; disponible lorsque PHP est lié à ICU = 56.

Notation d'objets JavaScript

Un nouveau drapeau été ajouté, JSON_THROW_ON_ERROR, qui peut être utilisé avec json_decode() ou json_encode() et provoque la levée de la nouvelle exception JsonException lors d'une erreur, au lieu de définir l'état d'erreur global qui est récupéré avec json_last_error() et json_last_error_msg(). JSON_PARTIAL_OUTPUT_ON_ERROR prend le pas sur JSON_THROW_ON_ERROR.

Chaîne multioctet

L'option de configuration --with-libmbfl n'est plus disponible.

ODBC (Unifié)

La gestion de ODBCRouter et Birdstep incluant la directive ini birdstep.max_links ont été supprimés.

OPcache

La directive ini opcache.inherited_hack a été supprimée. La valeur était ignorée depuis PHP 5.3.0.

OpenSSL

Les options de flux ssl min_proto_version et max_proto_version ainsi que des constantes liées pour d'éventuelles valeurs de protocole TLS ont été ajoutées.

Expressions régulières (Perl-Compatible)

L'extension PCRE a été mise à niveau vers PCRE2, ce qui peut provoquer des changements mineurs de comportement (par exemple, les plages de caractères dans les classes sont maintenant plus strictement interprétées), et augmente la syntaxe d'expression rationnelle existante.

preg_quote() échappe désormais le caractère '#'.

Fonctions Microsoft SQL Server et Sybase (PDO_DBLIB)

L'attribut PDO::DBLIB_ATTR_SKIP_EMPTY_ROWSETS a été ajouté pour permettre le saut automatique des ensembles de lignes vides.

L'attribut PDO::DBLIB_ATTR_TDS_VERSION a été ajouté pour exposer la version de TDS.

Les colonnes DATETIME2 sont désormais traitées comme des colonnes DATETIME.

Fonctions SQLite (PDO_SQLITE)

Les bases de données SQLite3 peuvent désormais être ouvertes en lecture seule en définissant le nouvel attribut PDO::SQLITE_ATTR_OPEN_FLAGS à PDO::SQLITE_OPEN_READONLY.

Manipulation de session

session_set_cookie_params() gère désormais en charge la signature suivante :

session_set_cookie_params(array $options): bool
où $options est un tableau associatif qui peut contenir chacune de ces clés "lifetime", "path", "domain", "secure", "httponly" et "samesite". Par conséquent, la valeur de retour de session_get_cookie_params() a maintenant également un élément avec la clé "samesite". En outre, la nouvelle directive ini session.cookie_samesite a été ajoutée pour définir la valeur par défaut de SameSite pour les cookies. Par défaut à "" (chaîne vide), de sorte qu'aucune directive SameSite n'est définie. La valeur peut être "Lax" ou "Strict", qui définit la valeur de SameSite.

Tidy

Construire avec » tidyp est maintenant géré de façon transparente. Etant donné que tidyp n'offre pas d'API pour obtenir la date de sortie, tidy_get_release() et tidy::getRelease() retourne 'unknown' dans ce cas.

Parseur XML

La valeur de retour de la procédure de rappel de xml_set_external_entity_ref_handler() n'est plus ignorée si l'extension a été construite avec libxml. Auparavant, la valeur de retour était ignorée, et l'analyse ne cessait jamais.

Zip

Construire statiquement libzip est déconseillé, mais toujours possible en ajoutant l'option de configuration --without-libzip.

Zlib Compression

L'option de contexte zlib/level pour compress.zlib wrapper pour faciliter la définition du niveau de compression souhaité a été ajoutée.


Support de Windows

Cœur de PHP

Suppression de fichier plus conforme à POSIX

Les descripteurs de fichiers sont ouverts en mode partagé lecture/écriture/suppression par défaut. Cela mappe efficacement la sémantique POSIX et permet de supprimer des fichiers avec des pointeurs en cours d'utilisation. Il n'est pas 100% identique, certaines différences de plate-forme persistent encore. Après la suppression, l'entrée de nom de fichier est bloquée, jusqu'à ce que tous les pointeurs ouverts soit fermés.


Migration de PHP 7.1.x vers PHP 7.2.x

Sommaire

  • Nouvelles fonctionnalités
  • Nouvelles fonctions
  • Nouvelles constantes globales
  • Évolutions incompatibles avec les versions précédentes
  • Fonctionnalités devenues obsolètes en PHP 7.2.x
  • Autres changements

Cette nouvelle version mineure apporte un certain nombre de nouvelles fonctionnalités et quelques incompatibilités qui devraient être testées avant de changer les versions PHP dans les environnements de production.

Voir aussi les guides de migration entre les différentes versions de PHP 7.0.x et 7.1.x.


Nouvelles fonctionnalités

Nouveau type object

Un nouveau type, object, a été introduit. Il peut être utilisé pour typer un paramètre (contravariant) ou pour typer le retour (covariant).

<?php

function test(object $obj) : object
{
return new SplQueue();
}

test(new stdClass());

Chargement des extensions par leur nom

Les extensions partagées ne demanderont plus de saisir leur nom complet (.so pour Unix ou .dll pour Windows). C'est actif pour le fichier php.ini et pour la fonction dl().

Substitution de méthode abstraite

Les méthodes abstraites peuvent maintenant être surchargées quand une classe abstraite étend une autre classe abstraite.

<?php

abstract class A
{
abstract function test(string $s);
}
abstract class B extends A
{
// overridden - still maintaining contravariance for parameters and covariance for return
abstract function test($s) : int;
}

Sodium est maintenant une extension du noyau

La bibliothèque moderne de cryptographie sodium est maintenant devenue une extension de base dans PHP.

Pour une référence de fonction complète, consultez le chapitre Sodium.

Hachage de mot de passe avec Argon2

Argon2 a été ajouté à l'API pour le hachage de mot de passe, et les constantes suivantes ont été exposées :

  • PASSWORD_ARGON2I
  • PASSWORD_ARGON2_DEFAULT_MEMORY_COST
  • PASSWORD_ARGON2_DEFAULT_TIME_COST
  • PASSWORD_ARGON2_DEFAULT_THREADS

Extension des types de chaîne PDO

Le type de chaîne de PDO a été étendu pour prendre en charge le type de caractère national lors de l’utilisation des requêtes préparées. Cela a été fait avec l’une des constantes suivantes :

  • PDO::PARAM_STR_NATL
  • PDO::PARAM_STR_CHAR
  • PDO::ATTR_DEFAULT_STR_PARAM

Ces constantes sont utilisées avec l’opérateur de bits OR et PDO::PARAM_STR :

<?php

$db->quote('über', PDO::PARAM_STR | PDO::PARAM_STR_NATL);

Ajout d'information de débogage pour l'émulation des requêtes préparées pour PDO

La méthode PDOStatement::debugDumpParams() a été mise à jour pour inclure le SQL envoyé à la DB, où la requête complète, requête brute (y compris les espaces réservés remplacés par leurs valeurs liées) sera montrée. Ceci a été ajouté afin de faciliter le débogage de l'émulation des requêtes préparées (et donc il sera disponible lorsque l'émulation des requêtes préparées est activée).

Prise en charge des opérations étendues de LDAP

La prise en charge des EXOP a été ajoutée dans l'extension LDAP. Cela a été fait en exposant les constantes et les fonctions suivantes :

  • ldap_parse_exop()
  • ldap_exop()
  • ldap_exop_passwd()
  • ldap_exop_whoami()
  • LDAP_EXOP_START_TLS
  • LDAP_EXOP_MODIFY_PASSWD
  • LDAP_EXOP_REFRESH
  • LDAP_EXOP_WHO_AM_I
  • LDAP_EXOP_TURN

Informations additionnelles des adresses dans l'extension Sockets

L'extension sockets a maintenant la capacité de rechercher les informations sur l'adresse, mais aussi de s'y connecter, de se lier dessus et de l'expliquer. Les quatre fonctions suivantes ont été ajoutées pour cela :

  • socket_addrinfo_lookup()
  • socket_addrinfo_connect()
  • socket_addrinfo_bind()
  • socket_addrinfo_explain()

Elargissement du type des arguments

Les types de paramètres des méthodes substituées et des implémentations de l’interface peuvent maintenant être omises. C’est toujours dans le respect de LSP, puisque les types de paramètres sont contravariants.

<?php

interface A
{
public function Test(array $input);
}

class B implements A
{
public function Test($input){} // type omis pour $input
}

Permettre une virgule de fin pour les espaces de noms groupés

Une virgule de fin peut maintenant être ajoutée à la syntaxe d’utilisation groupée introduite en PHP 7.0.

<?php

use Foo\Bar\{
Foo,
Bar,
Baz,
};

Prise en charge sur Windows de proc_nice()

La fonction proc_nice() est maintenant prise en charge sur Windows.

Prise en charge de endian pour pack() et unpack()

Les fonctions pack() et unpack() prennent en charge les nombres décimaux et doubles dans les deux Little et Big endian.

Améliorations de l'extension EXIF

L'extension EXIF a été mise à jour pour prendre en charge une gamme beaucoup plus large de formats. Cela signifie que ces balises spécifiques au format sont maintenant correctement traduites lors de l'analyse des images avec la fonction exif_read_data(). Les nouveaux formats suivants sont désormais pris en charge :

  • Samsung
  • DJI
  • Panasonic
  • Sony
  • Pentax
  • Minolta
  • Sigma/Foveon
  • AGFA
  • Kyocera
  • Ricoh
  • Epson

Les fonctions EXIF exif_read_data() et exif_thumbnail() prennent désormais en charge des flux en tant que premier argument.

Nouvelles fonctionnalités dans PCRE

  • Le modificateur J pour définir PCRE_DUPNAMES a été ajouté.

SQLite3 permet l'écriture de BLOBs

SQLite3::openBlob() permet maintenant d'ouvrir des champs BLOB en mode écriture; auparavant, seul le mode lecture était pris en charge.

Oracle OCI8 prise en charge du Transparent Application Failover

La prise en charge de la fonction de rappel de Transparent Application Failover (TAF) a été ajouté. TAF permet aux applications PHP oci8 de se reconnecter automatiquement à une base de données préconfigurée lorsqu'une connexion est rompue. Le nouveau support de rappel TAF permet aux applications PHP de surveiller et de contrôler la reconnexion pendant le basculement.

Améliorations de l'extension ZIP

La prise en charge de la lecture et de l'écriture d'archives chiffrées a été ajoutée (nécessite libzip 1.2.0).

La classe ZipArchive implémente maintenant l'interface Countable.

Le flux zip:// accepte maintenant l'option de contexte 'password'.


Nouvelles fonctions

Cœur de PHP

  • stream_isatty()
  • sapi_windows_vt100_support()

SPL

  • spl_object_id()

DOM

  • DomNodeList::count()
  • DOMNamedNodeMap::count()

FTP

  • ftp_append()

GD

  • imagesetclip()
  • imagegetclip()
  • imageopenpolygon()
  • imageresolution()
  • imagecreatefrombmp()
  • imagebmp()

Hash

  • hash_hmac_algos()

LDAP

  • ldap_parse_exop()
  • ldap_exop()
  • ldap_exop_passwd()
  • ldap_exop_whoami()

Chaînes multioctets

  • mb_chr()
  • mb_ord()
  • mb_scrub()

Oracle OCI8

  • oci_register_taf_callback()
  • oci_unregister_taf_callback()

Sockets

  • socket_addrinfo_lookup()
  • socket_addrinfo_connect()
  • socket_addrinfo_bind()
  • socket_addrinfo_explain()

Sodium

  • sodium_add()
  • sodium_bin2hex()
  • sodium_compare()
  • sodium_crypto_aead_aes256gcm_decrypt()
  • sodium_crypto_aead_aes256gcm_encrypt()
  • sodium_crypto_aead_aes256gcm_is_available()
  • sodium_crypto_aead_aes256gcm_keygen()
  • sodium_crypto_aead_chacha20poly1305_decrypt()
  • sodium_crypto_aead_chacha20poly1305_encrypt()
  • sodium_crypto_aead_chacha20poly1305_ietf_decrypt()
  • sodium_crypto_aead_chacha20poly1305_ietf_encrypt()
  • sodium_crypto_aead_chacha20poly1305_ietf_keygen()
  • sodium_crypto_aead_chacha20poly1305_keygen()
  • sodium_crypto_auth_keygen()
  • sodium_crypto_auth_verify()
  • sodium_crypto_auth()
  • sodium_crypto_box_keypair_from_secretkey_and_publickey()
  • sodium_crypto_box_keypair()
  • sodium_crypto_box_open()
  • sodium_crypto_box_publickey_from_secretkey()
  • sodium_crypto_box_publickey()
  • sodium_crypto_box_seal_open()
  • sodium_crypto_box_seal()
  • sodium_crypto_box_secretkey()
  • sodium_crypto_box_seed_keypair()
  • sodium_crypto_box()
  • sodium_crypto_generichash_final()
  • sodium_crypto_generichash_init()
  • sodium_crypto_generichash_keygen()
  • sodium_crypto_generichash_update()
  • sodium_crypto_generichash()
  • sodium_crypto_kdf_derive_from_key()
  • sodium_crypto_kdf_keygen()
  • sodium_crypto_kx_client_session_keys()
  • sodium_crypto_kx_keypair()
  • sodium_crypto_kx_publickey()
  • sodium_crypto_kx_secretkey()
  • sodium_crypto_kx_seed_keypair()
  • sodium_crypto_kx_server_session_keys()
  • sodium_crypto_pwhash_scryptsalsa208sha256_str_verify()
  • sodium_crypto_pwhash_scryptsalsa208sha256_str()
  • sodium_crypto_pwhash_scryptsalsa208sha256()
  • sodium_crypto_pwhash_str_verify()
  • sodium_crypto_pwhash_str()
  • sodium_crypto_pwhash()
  • sodium_crypto_scalarmult_base()
  • sodium_crypto_scalarmult()
  • sodium_crypto_secretbox_keygen()
  • sodium_crypto_secretbox_open()
  • sodium_crypto_secretbox()
  • sodium_crypto_shorthash_keygen()
  • sodium_crypto_shorthash()
  • sodium_crypto_sign_detached()
  • sodium_crypto_sign_ed25519_pk_to_curve25519()
  • sodium_crypto_sign_ed25519_sk_to_curve25519()
  • sodium_crypto_sign_keypair_from_secretkey_and_publickey()
  • sodium_crypto_sign_keypair()
  • sodium_crypto_sign_open()
  • sodium_crypto_sign_publickey_from_secretkey()
  • sodium_crypto_sign_publickey()
  • sodium_crypto_sign_secretkey()
  • sodium_crypto_sign_seed_keypair()
  • sodium_crypto_sign_verify_detached()
  • sodium_crypto_sign()
  • sodium_crypto_stream_keygen()
  • sodium_crypto_stream_xor()
  • sodium_crypto_stream()
  • sodium_hex2bin()
  • sodium_increment()
  • sodium_memcmp()
  • sodium_memzero()
  • sodium_pad()
  • sodium_unpad()

ZIP

  • ZipArchive::count()
  • ZipArchive::setEncryptionName()
  • ZipArchive::setEncryptionIndex()


Nouvelles constantes globales

Constantes prédéfinies

  • PHP_FLOAT_DIG
  • PHP_FLOAT_EPSILON
  • PHP_FLOAT_MIN
  • PHP_FLOAT_MAX
  • PHP_OS_FAMILY

Informations sur les fichiers

  • FILEINFO_EXTENSION

JSON

  • JSON_INVALID_UTF8_IGNORE
  • JSON_INVALID_UTF8_SUBSTITUTE

GD

  • IMG_EFFECT_MULTIPLY
  • IMG_BMP

LDAP

  • LDAP_EXOP_START_TLS
  • LDAP_EXOP_MODIFY_PASSWD
  • LDAP_EXOP_REFRESH
  • LDAP_EXOP_WHO_AM_I
  • LDAP_EXOP_TURN

Table de hachage de mot de passe

  • PASSWORD_ARGON2I
  • PASSWORD_ARGON2_DEFAULT_MEMORY_COST
  • PASSWORD_ARGON2_DEFAULT_TIME_COST
  • PASSWORD_ARGON2_DEFAULT_THREADS

PCRE

  • PREG_UNMATCHED_AS_NULL

PDO

  • PDO::PARAM_STR_NATL
  • PDO::PARAM_STR_CHAR
  • PDO::ATTR_DEFAULT_STR_PARAM

Sodium

  • SODIUM_LIBRARY_VERSION
  • SODIUM_LIBRARY_MAJOR_VERSION
  • SODIUM_LIBRARY_MINOR_VERSION
  • SODIUM_CRYPTO_AEAD_AES256GCM_KEYBYTES
  • SODIUM_CRYPTO_AEAD_AES256GCM_NSECBYTES
  • SODIUM_CRYPTO_AEAD_AES256GCM_NPUBBYTES
  • SODIUM_CRYPTO_AEAD_AES256GCM_ABYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_KEYBYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_NSECBYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_NPUBBYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_ABYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_KEYBYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_NSECBYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_NPUBBYTES
  • SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_ABYTES
  • SODIUM_CRYPTO_AUTH_BYTES
  • SODIUM_CRYPTO_AUTH_KEYBYTES
  • SODIUM_CRYPTO_BOX_SEALBYTES
  • SODIUM_CRYPTO_BOX_SECRETKEYBYTES
  • SODIUM_CRYPTO_BOX_PUBLICKEYBYTES
  • SODIUM_CRYPTO_BOX_KEYPAIRBYTES
  • SODIUM_CRYPTO_BOX_MACBYTES
  • SODIUM_CRYPTO_BOX_NONCEBYTES
  • SODIUM_CRYPTO_BOX_SEEDBYTES
  • SODIUM_CRYPTO_KDF_BYTES_MIN
  • SODIUM_CRYPTO_KDF_BYTES_MAX
  • SODIUM_CRYPTO_KDF_CONTEXTBYTES
  • SODIUM_CRYPTO_KDF_KEYBYTES
  • SODIUM_CRYPTO_KX_SEEDBYTES
  • SODIUM_CRYPTO_KX_SESSIONKEYBYTES
  • SODIUM_CRYPTO_KX_PUBLICKEYBYTES
  • SODIUM_CRYPTO_KX_SECRETKEYBYTES
  • SODIUM_CRYPTO_KX_KEYPAIRBYTES
  • SODIUM_CRYPTO_GENERICHASH_BYTES
  • SODIUM_CRYPTO_GENERICHASH_BYTES_MIN
  • SODIUM_CRYPTO_GENERICHASH_BYTES_MAX
  • SODIUM_CRYPTO_GENERICHASH_KEYBYTES
  • SODIUM_CRYPTO_GENERICHASH_KEYBYTES_MIN
  • SODIUM_CRYPTO_GENERICHASH_KEYBYTES_MAX
  • SODIUM_CRYPTO_PWHASH_ALG_ARGON2I13
  • SODIUM_CRYPTO_PWHASH_ALG_DEFAULT
  • SODIUM_CRYPTO_PWHASH_SALTBYTES
  • SODIUM_CRYPTO_PWHASH_STRPREFIX
  • SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE
  • SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE
  • SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE
  • SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE
  • SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE
  • SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE
  • SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_SALTBYTES
  • SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_STRPREFIX
  • SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_INTERACTIVE
  • SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_INTERACTIVE
  • SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_SENSITIVE
  • SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_SENSITIVE
  • SODIUM_CRYPTO_SCALARMULT_BYTES
  • SODIUM_CRYPTO_SCALARMULT_SCALARBYTES
  • SODIUM_CRYPTO_SHORTHASH_BYTES
  • SODIUM_CRYPTO_SHORTHASH_KEYBYTES
  • SODIUM_CRYPTO_SECRETBOX_KEYBYTES
  • SODIUM_CRYPTO_SECRETBOX_MACBYTES
  • SODIUM_CRYPTO_SECRETBOX_NONCEBYTES
  • SODIUM_CRYPTO_SIGN_BYTES
  • SODIUM_CRYPTO_SIGN_SEEDBYTES
  • SODIUM_CRYPTO_SIGN_PUBLICKEYBYTES
  • SODIUM_CRYPTO_SIGN_SECRETKEYBYTES
  • SODIUM_CRYPTO_SIGN_KEYPAIRBYTES
  • SODIUM_CRYPTO_STREAM_NONCEBYTES
  • SODIUM_CRYPTO_STREAM_KEYBYTES

Zip

  • ZipArchive::EM_NONE
  • ZipArchive::EM_AES_128
  • ZipArchive::EM_AES_192
  • ZipArchive::EM_AES_256


Évolutions incompatibles avec les versions précédentes

Empêcher number_format() de retourner zéro négatif

Auparavant, il était possible pour la fonction number_format() retourne -0. Bien que cela soit parfaitement valide conformément à la norme "IEEE 754 floating point spécification", cette bizarrerie n'était pas souhaitable pour l’affichage des nombres mis en forme sous une forme lisible par l'homme.

<?php

var_dump(number_format(-0.01)); // maintenant affiche string(1) "0" à la place de string(2) "-0"

Conversion des clés numériques dans les objets et tableaux lors de cast

Les clé numériques sont maintenant mieux appréhendées lors de cast d'un tableau en objet et d'un objet en tableau (cast explicite ou par la fonction settype()).

Cela signifie que les clés représentées par un entier (ou un entier sous forme de texte) d'un tableau casté en objet sont désormais accessibles :

<?php

// tableau vers un objet
$arr = [0 => 1];
$obj = (object)$arr;
var_dump(
$obj,
$obj->{'0'}, // désormais accessible
$obj->{0} // désormais accessible
);

L'exemple ci-dessus va afficher :

object(stdClass)#1 (1) {
  ["0"]=>    // désormais clé texte plutôt qu'une clé entière
  int(1)
}
int(1)
int(1)

Et les clés au format entier (ou entier sous forme de texte) des objets convertis en tableaux sont désormais accessibles :

<?php

// objet vers tableau
$obj = new class {
public function __construct()
{
$this->{0} = 1;
}
};
$arr = (array)$obj;
var_dump(
$arr,
$arr[0], // désormais accessible
$arr['0'] // désormais accessible
);

L'exemple ci-dessus va afficher :

array(1) {
  [0]=>    // désormais clé entière plutôt qu'une clé texte
  int(1)
}
int(1)
int(1)

Interdire de passer null à get_class()

Auparavant, passer null à la fonction get_class() retournait le nom de la classe en cours. Ce comportement a été supprimé, une erreur E_WARNING est affichée à la place. Pour retrouver le même comportement qu'avant, l’argument devrait simplement être supprimé.

Avertir lors du comptage de types non dénombrables

Un E_WARNING sera émis lors de la tentative d'utilisation de la fonction count() sur un type non dénombrable (cela inclut la fonction alias sizeof()).

<?php

var_dump(
count(null), // NULL is not countable
count(1), // un entier n'est pas dénombrable
count('abc'), // une chaîne n'est pas dénombrable
count(new stdClass), // un objet qui n'implémente pas l'interface Countable n'est pas dénombrable
count([1,2]) // un tableau est dénombrable
);

L'exemple ci-dessus va afficher :

Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d

Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d

Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d

Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d
int(0)
int(1)
int(1)
int(1)
int(2)

Remplacement ext/hash de ressources en objets

Dans le cadre de la migration à long terme des ressources, l’extension Hash a été mise à jour pour utiliser les objets au lieu de ressources. Le changement devrait être transparent pour les développeurs PHP, à l’exception où des vérifications avec is_resource() ont été faites (il sera nécessaire de remplacer par is_object()).

Améliorer les valeurs par défaut SSL/TLS

Les modifications suivantes concernant les valeurs par défaut ont été apportées :

  • tls:// maintenant par défaut TLSv1.0 ou TLSv1.1 ou TLSv1.2
  • ssl:// est un alias de tls://
  • STREAM_CRYPTO_METHOD_TLS_* constantes par défaut de TLSv1.0 ou TLSv1.1 + TLSv1.2, à la place de TLSv1.0 uniquement.

gettype() valeur de retour sur les ressources fermées

Auparavant, l'utilisation de gettype() sur une ressource fermée retournait une chaîne "unknown type". Maintenant, la chaîne "resource (closed)" sera retournée.

is_object() et __PHP_Incomplete_Class

Auparavant, l'utilisation de is_object() sur la classe __PHP_Incomplete_Class retournait false. Maintenant, true sera retourné.

Augmentation du niveau d'erreur des constantes non définies

Les références non qualifiées aux constantes non définies généreront désormais une E_WARNING (à la place d'une E_NOTICE). Dans la prochaine version majeure de PHP, elles généreront une exception Error.

Prise en charge de Windows

Les versions minimales officiellement supportées pour Windows sont Windows 7/ Server 2008 R2.

Vérification des valeurs par défaut des propriétés des traits

Les contrôles de compatibilité sur les valeurs par défaut des propriétés de trait n'effectueront plus la conversion.

object pour les noms de classes

Le nom object était précédement soft-réservé en PHP 7.0. Il est maintenant réservé, interdisant son utilisation comme nom de classe, de trait ou d'interface.

Prise en charge de NetWare

La prise en charge de NetWare a maintenant été supprimée.

array_unique() avec SORT_STRING

Alors que array_unique() avec SORT_STRING copiait anciennement le tableau et supprimait des éléments non uniques (sans emballer le tableau par la suite), maintenant un nouveau tableau est construit en ajoutant les éléments uniques. Cela peut entraîner des index numériques différents.

bcmod() change pour des nombres décimaux

La fonction bcmod() ne tronque plus les nombres fractionnaires en entiers. En tant que tel, son comportement suit maintenant fmod(), plutôt que l'opérateur %. Par exemple bcmod('4', '3.5') retourne maintenant 0.5 à la place de 1.

Fonctions de hachage et hachages non cryptographiques

Les fonctions hash_hmac(), hash_hmac_file(), hash_pbkdf2(), et hash_init() (avec HASH_HMAC) n'acceptent plus les hachages non cryptographiques.

Options de la fonction json_decode()

L'option JSON_OBJECT_AS_ARRAY de la fonction json_decode() est maintenant utilisée si le second paramètre (assoc) est null. Précédemment JSON_OBJECT_AS_ARRAY a toujours été ignoré.

Sortie de rand() et mt_rand()

Les séquences générées par rand() et mt_rand() pour des cas spécifiques peuvent différer de PHP 7.1 sur les machines 64 bits (en raison de la correction d'un bug dans l'implémentation de la polarisation du modulo).

Suppression du paramètre INI sql.safe_mode

Le paramètre INI sql.safe_mode a maintenant été supprimé.

Changement dans date_parse() et date_parse_from_format()

L'élément de zone du tableau retourné par date_parse() et date_parse_from_format() représente des secondes au lieu des minutes, et son signe est inversé. Par exemple -120 est maintenant 7200.

Incoming Cookies

Depuis PHP 7.2.34, les noms des cookies entrants ne sont plus url-décodés pour des raisons de sécurité.


Fonctionnalités devenues obsolètes en PHP 7.2.x

Des chaînes non délimitées

Des chaînes qui sont des constantes globales inexistantes sont considérées comme des chaînes d’elles-mêmes. Ce comportement émettait une E_NOTICE, mais maintenant émet une E_WARNING. Dans la prochaine version majeure de PHP, une exception sera levée à la place.

<?php

var_dump(NONEXISTENT);

/* Output:
Warning: Use of undefined constant NONEXISTENT - assumed 'NONEXISTENT' (this will throw an Error in a future version of PHP) in %s on line %d
string(11) "NONEXISTENT"
*/

png2wbmp() et jpeg2wbmp()

Les fonctions png2wbmp() et jpeg2wbmp() de l'extension GD ont maintenant été désapprouvées et seront supprimées dans la prochaine version majeure de PHP.

Variante INTL_IDNA_VARIANT_2003

L'extension Intl a désapprouvé la variante INTL_IDNA_VARIANT_2003, qui est actuellement utilisée par idn_to_ascii() et idn_to_utf8(). La valeur par défaut sera changée dans PHP 7.4 par INTL_IDNA_VARIANT_UTS46, et la valeur INTL_IDNA_VARIANT_2003 sera supprimée dans la prochaine version majeure de PHP.

Méthode __autoload()

La méthode __autoload() a été déconseillée car inférieure à spl_autoload_register() (car elle n'est pas capable d'accepter plusieurs chargeurs automatiques), et les deux styles de chargement automatique ne sont pas interopérables.

Directive de configuration track_errors et la variable $php_errormsg

Lorsque la directive de configuration track_errors est activée, une variable $php_errormsg est créée dans la portée locale lorsqu'une erreur non fatale se produit. Étant donné que le meilleur moyen de récupérer ces informations d’erreur est d'utiliser error_get_last(), cette fonctionnalité a été désapprouvée.

Fonction create_function()

Étant donnés les problèmes de sécurité de cette fonction (qui est un wrapper mince autour de eval()) cette ancienne fonction est maintenant obsolète. Le meilleur moyen de créer des fermetures est en définissant des fonctions anonymes.

Directive de configuration mbstring.func_overload

Étant donnés les problèmes d’interopérabilité des fonctions basées sur une chaîne utilisées dans les environnements lorsque ce paramètre est activé, il est maintenant obsolète.

(unset) cast

Casting de n’importe quelle expression à ce type entraînera toujours un résultat null, et ce type de cast superflu est maintenant obsolète.

parse_str() sans second argument

Sans second argument à la fonction parse_str(), les paramètres de la requête sont alloués dans des variables locales. Étant données les implications de ce fonctionnement sur la sécurité, l'utilisation de parse_str() sans un second argument est maintenant obsolète. La fonction doit toujours être utilisée avec deux arguments, car le deuxième argument entraîne l'analyse de la chaîne de requête dans un tableau.

Fonction gmp_random()

Cette fonction génère un nombre aléatoire basé sur une plage qui est calculée par une taille non exposée, spécifique à la plateforme membre. Pour cette raison, la fonction est maintenant obsolète. Le meilleur moyen de générer un nombre aléatoire est l'utilisation de l’extension GMP avec les fonctions gmp_random_bits() et gmp_random_range().

Fonction each()

Cette fonction est beaucoup plus lente à l’itération qu’un classique foreach et entraîne des problèmes de mise en œuvre de certains changements de langue. Elle a donc été désapprouvée.

assert() avec un argument texte

Lors de l'utilisation d'assert() avec un argument texte, il est nécessaire que le texte soit évalué par la fonction eval(). Compte tenu du potentiel pour l’exécution de code à distance, avec un argument de chaîne à l’aide de assert() a maintenant été désapprouvée en faveur de l’utilisation des expressions booléennes.

$errcontext argument de gestionnaires d’erreurs

L’argument $errcontext contient toutes les variables locales de l’emplacement de l’erreur. Compte tenu de son utilisation rare et les problèmes qu'elle provoque avec des optimisations internes, il est maintenant devenu obsolète. Au lieu de cela, un débogueur doit être utilisé pour récupérer des informations sur les variables locales à l’emplacement de l’erreur.

Fonction read_exif_data()

L'alias read_exif_data() a été déconseillé. La fonction exif_read_data() peut être utilisée à la place.


Autres changements

Déplacement de utf8_encode() et utf8_decode()

Les fonctions utf8_encode() et utf8_decode() ont maintenant été déplacées vers l'extension standard en tant que fonctions de chaîne, alors qu'avant l'extension XML était requise pour qu'elles soient disponibles.

Changement pour mail() et mb_send_mail()

Le paramètre $additional_headers de mail() et mb_send_mail() accepte maintenant un array à la place d'un string

Prise en charge de LMDB

L'extension DBA prend maintenant en charge LMDB.

Modifications apportées au système build de PHP

  • Unix: Autoconf 2.64 ou plus est maintenant nécessaire pour construire PHP.
  • Unix: L'argument de configuration --with-pdo-oci n'a plus besoin de la version de Oracle Instant Client.
  • Unix: L'argument de configuration --enable-gd-native-ttf a été supprimé. Il n'a pas été utilisé depuis PHP 5.5.0.
  • Windows: L'argument de configuration --with-config-profile a été ajouté. Cela peut être utilisé pour enregistrer des configurations spécifiques, un peu comme le fichier magique config.nice.bat.

Changement dans GD

  • imageantialias() est également disponible si construit avec libgd du système.
  • imagegd() stocke des images TrueColor comme de vraies images TrueColor. Auparavant, elles étaient converties en palette.

Déplacement de MCrypt vers PECL

L'extension MCrypt a maintenant été déplacée du noyau vers PECL. Étant donné que la bibliothèque mcrypt n'a pas vu de mises à jour depuis 2007, son utilisation est fortement découragée. Au lieu de cela, soit OpenSSL soit l'extension Sodium doivent être utilisées.

session_module_name()

Le passage de "user" à session_module_name() déclenche maintenant une erreur de niveau E_RECOVERABLE_ERROR. Auparavant, cela a été ignoré silencieusement.


Migration de PHP 7.0.x vers PHP 7.1.x

Sommaire

  • Nouvelles fonctionnalités
  • Nouvelles fonctions
  • Nouvelles constantes globales
  • Modifications entrainant une incompatibilité ascendante
  • Les fonctionnalités dépréciées dans PHP 7.1.x
  • Fonctions modifiées
  • Autres changements
  • Support Windows

Cette nouvelle version mineure apporte un certain nombre de nouvelles fonctionnalités et quelques incompatibilités qui devraient être testées avant de changer les versions PHP dans les environnements de production.

Voir aussi les guides de migration entre les différentes versions de PHP 7.0.x.


Nouvelles fonctionnalités

Type nullable

La déclaration des types de paramètre et de valeur de retour peut désormais être marquée en tant que nullable en préfixant le nom du type avec un point d'interrogation. Ceci signifie que le type spécifié aussi bien que null peuvent être passés comme argument, ou retournés en tant que valeur, respectivement.

<?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...

Fonctions Void

Le type de retour void a été introduit. Les fonctions déclarées avec un type de retour void doivent soit omettre la déclaration de retour entièrement, soit utiliser une déclaration de retour vide. null n'est pas un type de retour valide pour une fonction void.

<?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)

Essayer d'utiliser la valeur de retour d'une fonction void évalue simplement à null, sans avertissement émit. La raison pour ceci est qu'un avertissement impliquerait l'usage de fonction générique d'ordre supérieur.

Déconstruction symétrique de tableau

L'abréviation de la syntaxe array [] peut désormais être utilisée pour déconstruire des tableaux pour des affectations (y compris au sein de foreach), à la place de la syntaxe existante list(), qui est toujours supportée.

<?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
}

Visibilité des constantes de classes

Le support pour spécifier la visibilité des constantes de classes a été ajouté.

<?php
class ConstDemo
{
const PUBLIC_CONST_A = 1;
public const PUBLIC_CONST_B = 2;
protected const PROTECTED_CONST = 3;
private const PRIVATE_CONST = 4;
}

Le pseudo-type iterable

Un nouveau pseudo-type (similaire à callable) appellé iterable a été introduit. Il peut être utilisé avec les paramètres et retours typés, où il accepte soit des tableau soit des objets qui implémentent l'interface Traversable. En ce qui concerne le sous-typage, les types de paramètres des classes enfant peuvent élargir une déclaration d'un parent de array ou Traversable en iterable. Avec les types de retour, les classes enfant peuvent restreindre le type de retour iterable du parent en array ou un objet qui implémente Traversable.

<?php
function iterator(iterable $iter)
{
foreach ($iter as $val) {
//
}
}

Gestion du catch de plusieurs exceptions

Plusieurs exceptions par bloc catch peuvent désormais être spécifiées en utilisant le caractère barre verticale (|). Ceci est utile quand différentes exceptions sont gérées de façon identique.

<?php
try {
// du code
} catch (FirstException | SecondException $e) {
// gère les exceptions first et second
}

Support des clés dans list()

Il est désormais possible de spécifier des clés dans list(), ou sa nouvelle syntaxe abrégée []. Ceci permet la déconstruction des tableaux qui ont des clés non entières ou non séquentielles.

<?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)) {
// logique ici avec $id et $name
}

// [] style
foreach ($data as ["id" => $id, "name" => $name]) {
// logique ici avec $id et $name
}

Support pour les positions négatives des chaîne de caractères

Le support des positions négatives des chaîne de caractères a été ajouté aux fonctions de manipulation de chaîne de caractères qui acceptent une position, ainsi qu'à l'indexation de chaîne de caractères avec [] ou {}. Dans de tels cas, une position négative est interprétée comme une position en partant de la fin de la chaîne de caractères.

<?php
var_dump("abcdef"[-2]);
var_dump(strpos("aabbcc", "b", -3));

L'exemple ci-dessus va afficher :

string (1) "e"
int(3)

Les positions négatives des chaîne de caractères et tableaux sont aussi supportées avec la syntaxe simple d'analyse dans les chaîne de caractères.

<?php
$string = 'bar';
echo "Le dernier caractère de '$string' est '$string[-1]'.\n";
?>

L'exemple ci-dessus va afficher :

Le dernier caractère de 'bar' est 'r'.

Support pour AEAD dans ext/openssl

Support pour AEAD (modes GCM et CCM) a été ajouté en étendant les fonctions openssl_encrypt() et openssl_decrypt() avec des paramètres additionnels.

Convertir des callables en Closures avec Closure::fromCallable()

Une nouvelle méthode statique a été introduite dans la classe Closure pour permettre des callables d'être facilement convertit en objets Closure.

<?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"

Gestion des signaux asynchrones

Une nouvelle fonction appellée pcntl_async_signals() a été introduite pour permettre la gestion des signaux asynchrones sans utiliser les ticks (ce qui introduisait beaucoup de surcoût).

<?php
pcntl_async_signals(true); // activer les signaux asynchrones

pcntl_signal(SIGHUP, function($sig) {
echo "SIGHUP\n";
});

posix_kill(posix_getpid(), SIGHUP);

L'exemple ci-dessus va afficher :

SIGHUP

Support des push serveur HTTP/2 dans ext/curl

Le support pour les push serveur a été ajouté à l'extension CURL (nécessite la version 7.46 ou ultérieure). Ceci peut être exploité à travers la fonction curl_multi_setopt() avec la nouvelle constante CURLMOPT_PUSHFUNCTION. Les constantes CURL_PUSH_OK et CURL_PUSH_DENY ont aussi été ajoutées pour que l'exécution de la fonction de rappel du push serveur puisse être approuvée ou refusée.

Options du contexte de flux (Stream Context Options)

L'option du contexte de flux tcp_nodelay a été ajoutée.


Nouvelles fonctions

Cœur de PHP

  • 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()

OpenSSL

  • openssl_get_curve_names()

Session

  • session_create_id()
  • session_gc()

SPL

  • is_iterable()

PCNTL

  • pcntl_async_signals()
  • pcntl_signal_get_handler()


Nouvelles constantes globales

Core Predefined Constants

  • PHP_FD_SETSIZE

CURL

  • CURLMOPT_PUSHFUNCTION
  • CURL_PUSH_OK
  • CURL_PUSH_DENY

Data Filtering

  • FILTER_FLAG_EMAIL_UNICODE

Image Processing et 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


Modifications entrainant une incompatibilité ascendante

Exception en passant trop peu d'arguments de fonction

Auparavant, un avertissement était émis pour invoquer des fonctions définies par l'utilisateur avec trop peu d'arguments. Maintenant, cet avertissement a été promu en une exception d'erreur. Cette modification s'applique uniquement aux fonctions définies par l'utilisateur, et non aux fonctions internes. Par exemple:

<?php
function test($param){}
test();

Résultat de l'exemple ci-dessus est 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

Interdire les appels dynamiques aux fonctions d'introspection de portée

Les appels dynamiques pour certaines fonctions ont été interdits (sous la forme de $func() ou array_map('extract', ...), etc.). Ces fonctions inspectent ou modifient une autre étendue, et présentent avec eux un comportement ambigu et non fiable. Les fonctions sont les suivantes:

  • assert() - avec une chaîne comme premier argument
  • compact()
  • extract()
  • func_get_args()
  • func_get_arg()
  • func_num_args()
  • get_defined_vars()
  • mb_parse_str() - avec un argument
  • parse_str() - avec un argument
<?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

Nom de classe, interface, et trait invalide

Les noms suivants ne peuvent pas être utilisés pour nommer des classes, des interfaces ou des traits:

  • void
  • iterable

Les conversions de chaînes numériques respectent désormais la notation scientifique

Les opérations entières et les conversions sur les chaînes numériques respectent désormais la notation scientifique. Cela inclut également l'opération de cast (int) et les fonctions suivantes: intval() (où la base est 10), settype(), decbin(), decoct() et dechex().

Correctifs à l'algorithme mt_rand()

mt_rand() utilise désormais par défaut la version fixe de l'algorithme Mersenne Twister. Si la sortie déterministe de mt_srand() a été invoquée, alors MT_RAND_PHP peut être utilisé comme second paramètre optionnel de mt_srand() pour préserver l'ancienne (et incorrecte) implémentation.

rand() alias de mt_rand() et srand() alias de mt_srand()

rand() et srand() sont désormais des alias de mt_rand() et mt_srand(), respectivement. Cela signifie que la sortie pour les fonctions suivantes a été modifiée : rand(), shuffle(), str_shuffle() et array_rand().

Interdire le caractère de contrôle de suppression ASCII dans les identificateurs

Le caractère de contrôle de suppression ASCII (0X7f) ne peut plus être utilisé dans les identificateurs qui ne sont pas entre guillemets.

error_log change pour la valeur syslog

Si le paramètre INI error_log est défini sur syslog, les niveaux d'erreur PHP sont mappés aux niveaux d'erreur syslog. Cela apporte une différenciation plus fine dans les journaux d'erreurs contrairement à l'approche précédente où toutes les erreurs sont enregistrées avec le niveau d'avis uniquement.

N'appelez pas les destructeurs sur des objets incomplets

Les destructeurs ne sont désormais jamais appelés pour les objets qui lèvent une exception pendant l'exécution de leur constructeur. Dans les versions précédentes, ce comportement dépendait de la question de savoir si l'objet était référencé en dehors du constructeur (par exemple par une exception backtrace).

call_user_func() gestion des arguments de référence

call_user_func() va maintenant toujours générer un avertissement sur les appels aux fonctions qui attendent des références comme arguments. Auparavant, cela dépendait de la question de savoir si l'appel était entièrement qualifié.

En outre, call_user_func() et call_user_func_array() n'abandonneront plus l'appel de fonction dans ce cas. L'avertissement "référence attendue" sera émis, mais l'appel va continuer comme d'habitude.

L'opérateur d'index vide n'est plus pris en charge pour les chaînes

L'application de l'opérateur d'index vide à une chaîne (par exemple $str[] = $x) lève une erreur fatale au lieu de la convertir silencieusement en tableau.

Affectation via l'accès d'index de chaîne sur une chaîne vide

La modification de chaîne par caractère sur une chaîne vide fonctionne désormais comme pour les chaînes non vides, c'est-à-dire l'écriture dans un décalage hors plage de la chaîne avec des espaces, où les types non entiers sont convertis en entiers, et seul le premier caractère de la chaîne assignée est utilisé. Autrefois, les chaînes vides étaient silencieusement traitées comme un tableau vide.

<?php
$a = '';
$a[10] = 'foo';
var_dump($a);
?>

Résultat de l'exemple ci-dessus en PHP 7.0 :

array(1) {
  [10]=>
  string(3) "foo"
}

Résultat de l'exemple ci-dessus en PHP 7.1 :

string(11) "          f"

Directives ini supprimées

Les directives ini suivantes ont été supprimées :

  • session.entropy_file
  • session.entropy_length
  • session.hash_function
  • session.hash_bits_per_character

L'ordonnancement des éléments d'un tableau a changé lorsque qu'ils sont créés automatiquement pendant les affectations par référence

L'ordre des éléments dans un tableau a changé lorsque ces éléments ont été créés automatiquement en les référençant dans une assignation par référence. Par exemple:

<?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)
}

Ordre de tri des éléments égaux

L'algorithme de tri interne a été amélioré, ce qui peut entraîner un ordre de tri différent des éléments, qui se comparaient comme égaux auparavant.

Note:

Ne comptez pas sur l'ordre des éléments qui se comparent comme égaux; il pourrait changer à tout moment.

Message d'erreur pour les erreurs E_RECOVERABLE

Le message d'erreur pour les erreurs E_RECOVERABLE a été modifié de "Catchable fatal error" à "Recoverable fatal error".

Paramètre $options de unserialize()

L'élément allowed_classes du paramètre $options de unserialize() est maintenant strictement typé, c'est-à-dire que si une valeur autre qu'un tableau ou un booléen est donnée, unserialize() retourne false et émet un E_WARNING.

Le constructeur de DateTime incorpore microsecondes

DateTime et DateTimeImmutable intègrent désormais correctement les microsecondes lorsqu'elles sont construites à partir de l'heure actuelle, soit explicitement, soit avec une chaîne relative (par exemple "first day of next month"). Cela signifie que les comparaisons naïves de deux instances nouvellement créées seront désormais plus susceptibles de retourner false au lieu de true:

<?php
new DateTime() == new DateTime();
?>

Conversions des erreurs fatales en exceptions Error

Dans l'extension date, les données de sérialisation invalides pour les classes DateTime ou DatePeriod , ou l'échec de l'initialisation du fuseau horaire à partir de données sérialisées, lèveront désormais une exception Error à partir de la méthode __wakeup() ou __set_state(), au lieu de se traduire par une erreur fatale.

Dans l'extension DBA, les fonctions de modification des données (telles que dba_insert()) lèveront désormais une exception Error au lieu de déclencher une erreur fatale capturable si la clé ne contient pas exactement deux éléments.

Dans l'extension DOM, les contextes de validation de schéma ou de RelaxNG non valides lèveront désormais une exception Error au lieu de résulter en une erreur fatale. De même, la tentative d'inscription d'une classe de nœud qui n'étend pas la classe de base appropriée, ou tente de lire une propriété non valide ou d'écrire dans une propriété en lecture seule, lèvera également une exception Error .

Dans l'extension IMAP, les adresses de messagerie plus longues que 16385 octets lèveront une exception Error au lieu de se traduire par une erreur fatale.

Dans l'extension Intl, le fait de ne pas appeler le constructeur parent dans une classe qui étend Collator avant d'appeler les méthodes parentes lèvera maintenant une Error au lieu d'avoir pour résultat une erreur fatale récupérable. En outre, le clonage d'un objet Transliterator lève désormais une exception Error en cas d'échec du clonage du Transliterator interne au lieu d'une erreur fatale.

Dans l'extension LDAP, la fourniture d'un type de modification inconnu à ldap_batch_modify() lèvera désormais une exception Error au lieu d'une erreur fatale.

Dans l'extension mbstring, les fonctions mb_ereg() et mb_eregi() lèveront désormais une exception ParseError si une expression PHP non valide est fournie et que l'option 'e' est utilisée.

Dans l'extension mcrypt, mcrypt_encrypt() et mcrypt_decrypt() lèveront maintenant une exception Error au lieu d'une erreur fatale si mcrypt ne peut pas être initialisée.

Dans l'extension mysqli, la tentative de lecture d'une propriété non valide ou d'écriture dans une propriété en lecture seule lève maintenant une exception Error au lieu de se traduire par une erreur fatale.

Dans l'extension Reflection, le fait de ne pas récupérer un objet de réflexion ou de récupérer une propriété d'objet lève maintenant une exception Error au lieu de se traduire par une erreur fatale.

Dans l'extension de session, les gestionnaires de session personnalisés qui ne retournent pas de chaînes pour les ID de session lèveront désormais une exception Error au lieu de provoquer une erreur fatale lorsqu'une fonction est appelée pour générer un ID de session.

Dans l'extension SimpleXML, la création d'un attribut sans nom ou dupliqué va maintenant lever une exception Error au lieu de générer une erreur fatale.

Dans l'extension SPL, une tentative de clonage d'un objet SplDirectory va maintenant lever une exception Error au lieu de générer une erreur fatale. De même, appeler ArrayIterator::append() lors de l'itération sur un objet lèvera également une exception Error.

Dans l'extension standard, la fonction assert(), lorsqu'elle est fournie avec un argument de chaîne comme premier paramètre, lèvera maintenant une exception ParseError au lieu d'une erreur fatale capturable si le code PHP n'est pas valide. De même, l'appel à forward_static_call() en dehors d'une étendue de classe lève maintenant une exception Error .

Dans l'extension Tidy, la création manuelle d'un tidyNode lèvera une exception Error au lieu d'une erreur fatale.

Dans l'extension WDDX, une référence circulaire lors de la sérialisation va maintenant lever une exception Error au lieu d'une erreur fatale.

Dans l'extension XML-RPC, une référence circulaire lors de la sérialisation lève maintenant une instance d'exception Error au lieu de se traduire par une erreur fatale.

Dans l'extension Zip, la méthode ZipArchive::addGlob() lève maintenant une exception Error au lieu de se traduire par une erreur fatale si la prise en charge de glob n'est pas disponible.

Les variables liées lexiquement ne peuvent pas réutiliser les noms

Les variables liées à une fonction anonyme via la construction use ne peuvent pas utiliser le même nom que n'importe quelle superglobals, $this ou n'importe quel paramètre. Par exemple, toutes ces définitions de fonction entraîneront une erreur fatale :

<?php
$f = function () use ($_SERVER) {};
$f = function () use ($this) {};
$f = function ($param) use ($param) {};

long2ip() changement de type de paramètre

long2ip() attend maintenant un int à la place de string.

Encodage et décodage JSON

Le paramètre INI serialize_precision contrôle maintenant la précision de sérialisation lors de l'encodage des floats.

Le décodage d'une clé vide entraîne désormais un nom de propriété vide, plutôt que _empty_ comme nom de propriété.

<?php
var_dump(json_decode(json_encode(['' => 1])));

Résultat de l'exemple ci-dessus est similaire à :

object(stdClass)#1 (1) {
  [""]=>
  int(1)
}

Lorsque vous fournissez l'indicateur JSON_UNESCAPED_UNICODE à json_encode(), les séquences U+2028 et U+2029 sont maintenant échappées.

Modifications de la sémantique des paramètres de mb_ereg() et mb_eregi()

Le troisième paramètre des fonctions mb_ereg() et mb_eregi() (regs) est désormais défini sur un tableau vide si rien n'a été mis en correspondance. Auparavant, le paramètre n'aurait pas été modifié.

Abandon des flux sslv2

Le flux SSLv2 a maintenant été abandonné dans OpenSSL.

Interdit "return;" pour les retours typés lors de la compilation

Une déclaration de retour sans arguments dans les fonctions qui déclarent un type de retour émet désormais E_COMPILE_ERROR (sauf si le type de retour est déclaré comme void), même si la déclaration de retour ne serait jamais atteinte.


Les fonctionnalités dépréciées dans PHP 7.1.x

ext/mcrypt

L'extension mcrypt a été abandonnée pendant près d'une décennie maintenant, et était également assez complexe à utiliser. Elle a donc été dépréciée en faveur de OpenSSL, et elle sera retirée du noyau et dans PECL en PHP 7.2.

L'options Eval pour mb_ereg_replace() et mb_eregi_replace()

Le modificateur de motif e a été déprécié pour les fonctions mb_ereg_replace() et mb_eregi_replace().


Fonctions modifiées

Cœur de PHP

  • getopt() a un troisième paramètre optionnel qui expose l'index de l'élément suivant dans la liste des vecteurs d'arguments à traiter. Ceci est fait via un paramètre by-ref.
  • getenv() ne nécessite plus son paramètre. Si le paramètre est omis, les variables d'environnement actuelles seront renvoyées en tant que tableau associatif.
  • get_headers() a maintenant un paramètre supplémentaire pour permettre le passage de contextes de flux personnalisés.
  • output_reset_rewrite_vars() ne réinitialise plus la réécriture des URL des variables de session.
  • parse_url() est maintenant plus restrictif et supporte RFC3986.
  • unpack() accepte maintenant un troisième paramètre optionnel pour spécifier l'offset du début du dépaquetage.

Système de fichier

  • file_get_contents() accepte maintenant un offset de recherche négatif si le flux est cherchable.
  • tempnam() émet maintenant un notice quand on revient dans le répertoire système temporaire.

JSON

  • json_encode() accepte maintenant une nouvelle option, JSON_UNESCAPED_LINE_TERMINATORS, pour désactiver l'échappement des caractères U+2028 et U+2029 quand JSON_UNESCAPED_UNICODE est fournit.

Chaîne multioctet

  • mb_ereg() rejette maintenant les séquences d'octets illégales.
  • mb_ereg_replace() rejette maintenant les séquences d'octets illégales.

PDO

  • PDO::lastInsertId() pour PostgreSQL va maintenant déclencher une erreur quand nextval n'a pas été appelé pour la session courante. (la connexion postgres).

PostgreSQL

  • pg_last_notice() accepte maintenant un paramètre optionnel pour spécifier une opération. Ceci peut être fait avec une des nouvelles constantes suivantes : PGSQL_NOTICE_LAST, PGSQL_NOTICE_ALL, or PGSQL_NOTICE_CLEAR.
  • pg_fetch_all() accepte maintenant un second paramètre optionnel pour spécifier le type de résultat (similaire au troisième paramètre de pg_fetch_array()).
  • pg_select() accepte maintenant un quatrième paramètre pour spécifier le type de résultat (similaire au troisième paramètre de pg_fetch_array()).

Session

  • session_start() maintenant retourne false et n'initialise plus $_SESSION quand le démarrage de la session échoue.


Autres changements

Notices et avertisements sur opérations arithmétiques avec chaînes invalides

Des nouvelles erreurs E_WARNING et E_NOTICE ont été introduites quand des chaîne de caractères invalides sont contraintes en utilisant des opérateurs s'attendant à des nombres (+ - * / ** % << >> | & ^) ou leurs assignements équivalents. Une E_NOTICE est émise quand la chaîne de caractères commence avec une valeur numérique mais contient des caractères non numériques de fin, et une E_WARNING est émise quand la chaîne de caractères ne contient pas une valeur numérique.

<?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

Avertissement en cas de débordement de la séquence d'échappement octale

Auparavant, les séquences d'échappement de chaîne octale de 3 octets débordaient silencieusement. Désormais, elles déborderont toujours, mais une E_WARNING sera émise.

<?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) "@"

Correction des incohérences de $this

Bien que $this soit considérée comme une variable spéciale en PHP, il lui manquait des contrôles appropriés pour s'assurer qu'elle n'était pas utilisée comme nom de variable ou réassignée. Ceci a été désormais rectifié pour s'assurer que $this ne peut pas être une variable définie par l'utilisateur, réassignée à une différente valeur ou globalisée.

Génération d'ID de session sans hachage

Les IDs de session ne seront plus hachés dès la génération. Avec ce changement ceci amène à la suppression des quatres paramètres ini suivants :

  • session.entropy_file
  • session.entropy_length
  • session.hash_function
  • session.hash_bits_per_character

Et l'addition des deux paramètres ini suivants :

  • session.sid_length - définit la longueur de l'ID de session, par défaut 32 caractères pour la rétrocompatibilité.
  • session.sid_bits_per_character - définit le nombre de bits à enregistrer par caractère (c.à.d augmente l'intervale de caractères qui peuvent être utilisés dans l'ID de session), par défaut 4 pour la rétrocompatibilité.

Modifications apportées à la gestion des fichiers INI

precision

Si la valeur est définit à -1, alors le mode dtoa 0 est utilisé. La valeur par défaut est toujours 14.

serialize_precision

Si la valeur est définie à -1, alors le mode dtoa 0 est utilisé. La valeur -1 est désormais utilisée par défaut.

gd.jpeg_ignore_warning

La valeur par défaut de ce paramètre php.ini a été modifiée à 1, donc par défaut les avertissements libjpeg sont ignorés.

opcache.enable_cli

La valeur par défaut de ce paramètre php.ini a été modifiée à 1 (activé) en PHP 7.1.2, et retour à 0 (désactivé) en PHP 7.1.7.

Génération des IDs de sessions seulement avec un CSPRNG

Les IDs de sessions seront désormais seulement générés avec un CSPRNG (Crypto Secure Pseudo Random Number Generator)

Des messages TypeError plus informatifs quand null est permis

Les exceptions TypeError pour les vérifications de type arg_info fourniront désormais des messages d'erreurs plus informatifs. Si le type du paramètre ou le type de retour accepte null (soit en ayant une valeur par défaut de null soit en étant un type nullable), alors le message d'erreur mentionnera désormais ceci avec un message "must be ... or null" ou "must ... or be null."


Support Windows

Support pour les chemins longs et UTF-8

Si une application web est conforme à l'UTF-8, aucune action supplémentaire n'est requise. Pour des applications qui dépendent de chemins dans un encodage différent que UTF-8 pour l'I/O, une directive INI doit être explicitement définie. La vérification des paramètres d'encodage INI se fie à l'ordre dans le cœur (core) :

  • internal_encoding
  • default_charset
  • zend.multibyte

Plusieurs fonctions pour la gestion des codepage ont été introduites :

  • sapi_windows_cp_set() to set the default codepage
  • sapi_windows_cp_get() to retrieve the current codepage
  • sapi_windows_cp_is_utf8()
  • sapi_windows_cp_conv() to convert between codepages, using iconv() compatible signature

Ces fonctions sont thread safe.

La sortie de la console codepage est ajustée en fonction de l'encodage utilisé en PHP. En fonction du codepage OEM du système concret, la sortie visible pourrait ou pourrait ne pas être correcte. Par exemple, avec le cmd.exe par défaut et sur un système avec le codepage OEM 437, les sorties en codepage 1251, 1252, 1253 et d'autres peuvent être affichées correctement en utilisant UTF-8. Sur les mêmes systèmes, les caractères dans codepage tel que 20932 ne seront probablement pas affichées correctement. Ceci fait référence aux règles système particulières pour codepage, la compabilité de la police et le choix du programme de console utilisé. PHP définit automatiquement la codepage console en accord avec les règles d'encodages depuis php.ini. Utiliser des consoles alternatives à la place de cmd.exe directement pourrait apporter une meilleure expérience dans certains cas.

Toutefois soyez conscient, changer de codepage après que la requête a commencé peut causer des effets secondaires inattendus en CLI. La façon préférable est php.ini. Quand PHP CLI est utilisée dans un émulateur de console, qui ne supporte pas Unicode, il est possiblement nécessaire, d'éviter de changer la codepage de la console. La meilleure façon pour achever ceci est de définir l'encodage interne ou par défaut pour correspondre à la codepage ANSI. Une autre méthode est de définir la directive INI output_encoding et input_encoding à la codepage requise, cependant dans ce cas la différence entre les codepages internes et I/O risque de causer du mojibake. Dans de rares cas, si PHP arrive à planter gracieusement, la codepage originale de la console peut ne pas être restaurée. Dans ce cas, la commande chcp peut être utilisée, pour la restaurer manuellement.

Attention particulière pour les systèmes DBCS - le changement de codepage lors de l'exécution en utilisant ini_set() risque de causer des problèmes d'affichage. À la différence des systèmes non DBCS, c'est que les caractères étendus nécessitent deux consoles pour être affichés. Dans certains cas, seule la mise en correspondance des caractères dans le jeu de glyphes de la police pourrait se produire, aucun changement de police ne se produit. Ceci est la nature des systèmes DBCS, la manière la plus simple de prévenir des problèmes d'affichages est d'éviter l'usage de ini_set() pour le changement de codepage.

En conséquence du support d'UTF-8 dans les flux, les scripts PHP ne sont plus limités à des noms de fichiers ASCII ou ANSI. Ceci est prêt à l'emploi en CLI. Pour d'autres SAPI, la documentation pour le serveur correspondant est utile.

Le support des chemins longs est transparent. Les chemins plus longs que 260 octets sont automatiquement préfixés par \\?\. La longueur maximale du chemin est limitée à 2018 octets. Soyez conscient, que la limite des segments de chemin (longueur du basename) persiste.

Pour une meilleure portabilité, il est fortement recommandé de gérer les noms de fichiers, I/O et autres sujets connexes UTF-8. En outre, pour les applications console, l'usage d'une police TrueType est préférable et l'usage de ini_set() pour le le changement de codepage est déconseillé.

readline

L'extension readline est supportée à travers la » bibliothèque WinEditLine. Ainsi l'interface système interactive CLI est aussi supportée (php.exe -a).

PHP_FCGI_CHILDREN

PHP_FCGI_CHILDREN est désormais respecté. Si cette variable d'environnement est définie, le premier processus php-cgi.exe exécutera le nombre spécifié d'enfants. Ceux-ci partageront le même socket TCP.

ftok()

Ajout du support pour ftok()


Migration de PHP 5.6.x vers PHP 7.0.x

Sommaire

  • Modifications entrainant une incompatibilité ascendante
  • Nouvelles fonctionnalités
  • Les fonctionnalités dépréciées dans PHP 7.0.x
  • Fonctions modifiées
  • Nouvelles fonctions
  • Nouvelles Classes et Interfaces
  • Nouvelles constantes globales
  • Modifications des modules SAPI
  • Extensions et SAPI supprimées
  • Autres changements

Bien 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.


Modifications entrainant une incompatibilité ascendante

Modifications apportées à la gestion des erreurs et des exceptions

De nombreuses erreurs fatales et récupérables ont été converties en exceptions dans PHP 7. Ces exceptions d'erreur héritent de la classe Error, qui implémente elle-même l'interface Throwable (la nouvelle interface de base dont toutes les exceptions héritent).

Cela signifie que les gestionnaires d'erreurs personnalisés peuvent ne plus être déclenchés car des exceptions peuvent être levées à la place (provoquant de nouvelles erreurs irrécupérables pour les exceptions Error non interceptées).

Une description plus complète de la façon dont les erreurs fonctionnent en PHP 7 se trouve sur la page des erreurs PHP 7. Ce guide de migration énumérera simplement les modifications qui affectent la rétrocompatibilité.

set_exception_handler() n'est plus garanti de recevoir des objets Exception

Le code qui implémente un gestionnaire d'exceptions inscrit avec set_exception_handler() à l'aide d'une déclaration de type Exception provoquera une erreur fatale lorsqu'un objet Error est levé.

Si le gestionnaire doit fonctionner à la fois avec PHP 5 et 7, vous devriez supprimer la déclaration de type du gestionnaire, tandis que le code qui est migré pour travailler sur PHP 7 exclusivement peut simplement remplacer la déclaration de type Exception par Throwable.

<?php
// Code pour PHP 5 qui va se briser.
function handler(Exception $e) { ... }
set_exception_handler('handler');

// Compatible PHP 5 et 7.
function handler($e) { ... }

// PHP 7 seulement.
function handler(Throwable $e) { ... }
?>

Les constructeurs internes lèvent toujours des exceptions en cas d'échec

Auparavant, certaines classes internes retournaient null ou un objet inutilisable lorsque le constructeur échouait. Toutes les classes internes lèveront maintenant une Exception dans ce cas de la même manière que les classes d'utilisateurs.

Les erreurs d'analyse lèvent une ParseError

Les erreurs d'analyseur lèvent maintenant un objet ParseError. La gestion des erreurs pour eval() doit maintenant inclure un bloc catch qui peut gérer cette erreur.

Changements de gravité des avis E_STRICT

Tous les avis E_STRICT ont été reclassés à d'autres niveaux. La constante E_STRICT est conservée, donc les appels comme error_reporting(E_ALL|E_STRICT) ne provoqueront pas d'erreur.

Changements de gravité des avis E_STRICT
Situation | Nouveau niveau/comportement
Indexation par une ressource | E_NOTICE
Méthodes statiques abstraites | Avis supprimé, ne déclenche aucune erreur
"Redéfinir" un constructeur | Avis supprimé, ne déclenche aucune erreur
Incompatibilité de signature pendant l'héritage | E_WARNING
Même propriété (compatible) dans deux traits utilisés | Avis supprimé, ne déclenche aucune erreur
Accès à une propriété statique non statiquement | E_NOTICE
Seules les variables doivent être attribuées par référence | E_NOTICE
Seules les variables doivent être transmises par référence | E_NOTICE
Appel de méthodes non statiques statiquement | E_DEPRECATED

Modifications apportées à la gestion des variables

PHP 7 utilise maintenant une arborescence de syntaxe abstraite lors de l'analyse des fichiers sources. Cela a permis de nombreuses améliorations à la langue qui étaient auparavant impossibles en raison des limitations dans l'analyseur utilisé dans les versions antérieures de PHP, mais a abouti à la suppression de quelques cas spéciaux pour des raisons de cohérence, qui a abouti à casser la rétro-compatibilité. Ces cas sont détaillés dans cette section.

Modifications apportées à la gestion des variables, propriétés et méthodes indirectes

L'accès indirect aux variables, propriétés et méthodes sera maintenant évalué strictement dans l'ordre de gauche à droite, par opposition à la combinaison précédente de cas spéciaux. Le tableau ci-dessous montre comment l'ordre d'évaluation a changé.

Ancienne et nouvelle évaluation des expressions indirectes
Expression | Interprétation PHP 5 | Interprétation PHP 7
$$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']()

Le code qui utilisait l'ancien ordre d'évaluation de droite à gauche doit être réécrit pour utiliser explicitement cet ordre d'évaluation avec des accolades (voir la colonne du milieu ci-dessus). Cela rendra le code compatible avec PHP 7.x et rétrocompatible avec PHP 5.x.

Cela affecte également le mot clé global. La syntaxe des accolades peut être utilisée pour émuler le comportement précédent si nécessaire :

<?php
function f() {
// Valide en PHP 5 uniquement.
global $$foo->bar;

// Valide en PHP 5 et 7.
global ${$foo->bar};
}
?>

Modifications apportées à la gestion des list()

la fonction list() n'assigne plus de variable dans l'ordre inverse

list() assignera désormais des valeurs aux variables dans l'ordre dans lequel elles sont définies, plutôt que dans l'ordre inverse. En général, cela affecte uniquement le cas où list() est utilisée en conjonction avec l'opérateur de tableau [], comme illustré ci-dessous :

<?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)
}

En général, il est recommandé de ne pas compter sur l'ordre dans lequel les affectations de la fonction list() se produisent, car il s'agit d'un détail d'implémentation qui peut changer à nouveau à l'avenir.

Les affectations de list() vides ont été supprimées

Les constructions de list() ne peuvent plus être vides. Les éléments suivants ne sont plus autorisés :

<?php
list() = $a;
list(,,) = $a;
list($x, list(), $y) = $a;
?>
list() ne peut pas défaire chaîne de caractères

list() ne peut plus défaire les variables de chaîne de caractères. str_split() devrait être utilisé à la place.

L'ordre des éléments des tableaux a changé lorsque les éléments sont créés automatiquement pendant les affectations de référence

L'ordre des éléments dans un tableau a changé lorsque ces éléments ont été créés automatiquement en les référençant dans une assignation par référence. Par exemple :

<?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)
}

Les parenthèses autour des arguments de fonction n'affectent plus le comportement

En PHP 5, l'utilisation de parenthèses redondantes autour d'un argument de fonction peut calmer les avertissements de normes strictes lorsque l'argument de fonction a été passé par référence. L'avertissement est maintenant toujours émis.

<?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

Antérieur à PHP 7, le pointeur interne de tableau était modifié pendant qu'un tableau était parcouru 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.

Modifications apportées à la gestion d'entier

Littéraux octaux non valides

Auparavant, les littéraux octaux qui contenaient des nombres non valides étaient tronqués silencieusement (0128 a été pris comme 012). Désormais, un littéral octal non valide provoquera une erreur d'analyse.

Décalage de bits négatif

Les décalages de bits par nombres négatifs vont maintenant lancer une 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

Décalage de bits hors plage

Les décalages de bits (dans les deux sens) au-delà de la largeur de bit d'un entier retourneront toujours 0. Auparavant, le comportement de ces décalages était dépendant de l'architecture.

Changements apportés à la division par zéro

Auparavant, lorsque 0 a été utilisé comme diviseur pour les opérateurs de division (/) ou de modulo (%), un E_WARNING était émis et false était retourné. Désormais, l'opérateur de division retourne un float en tant que +INF,-INF ou NAN, comme spécifié par IEEE 754. Le E_WARNING de l'opérateur de modulo a été supprimé et lèvera une exception DivisionByZeroError.

<?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

Modifications apportées à la gestion des chaîne de caractères

Les chaînes hexadécimales ne sont plus considérées comme numériques

Les chaîne de caractères contenant des nombres hexadécimaux ne sont plus considérées comme numériques. Par exemple :

<?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() peut être utilisé pour vérifier si une chaîne de caractères contient un nombre hexadécimal, et aussi pour convertir une chaîne de caractères de ce type en un entier :

<?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{ peut provoquer des erreurs

En raison de l'ajout de la nouvelle syntaxe d'échappement du point de code Unicode, les chaîne de caractères contenant un littéral \u{ suivi d'une séquence non valide provoquera une erreur fatale. Pour éviter cela, la barre oblique inverse principale doit être échappée.

Fonctions supprimées

call_user_method() et call_user_method_array()

Ces fonctions ont été dépréciées en PHP 4.1.0 en faveur de call_user_func() et call_user_func_array(). Vous pourriez également utiliser les fonctions variables et/ou l'opérateur ....

Toutes les fonctions ereg*

Toutes les fonctions ereg ont été supprimées. PCRE est une alternative recommandée.

Aliasmcrypt

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_*.

Toutes les fonctions ext/mysql

Toutes les fonctions ext/mysql ont été supprimées. Pour plus d'informations sur le choix d'une autre API MySQL, consultez choisir une API MySQL.

Toutes les fonctions ext/mssql

Toutes les fonctions ext/mssql ont été supprimées.

  • PDO_SQLSRV
  • PDO_ODBC
  • SQLSRV
  • Unified ODBC API

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()

set_magic_quotes_runtime(), ainsi que son alias magic_quotes_runtime(), ont été supprimées. Elles étaient obsolètes à partir 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()

À la place, il est recommandé d'utiliser les polices TrueType et leurs fonctions associées.

Directives INI supprimées

Fonctionnalités supprimées

Les directives INI suivantes ont été supprimées car leurs fonctionnalités associées ont également été supprimées:

  • always_populate_raw_post_data
  • asp_tags

xsl.security_prefs

La directive xsl.security_prefs a été supprimée. Au lieu de cela, la méthode XsltProcessor::setSecurityPrefs() doit être appelée pour contrôler les préférences de sécurité sur une base du processeur.

Autres modifications rétro-incompatibles

Les nouveaux objets ne peuvent pas être attribués par référence

Le résultat de l'instruction new ne peut plus être assigné à une variable par référence :

<?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

Noms de classe, d'interface et de traits invalides

Les noms suivants ne peuvent pas être utilisés pour nommer des classes, des interfaces ou des traits :

  • bool
  • int
  • float
  • string
  • null
  • true
  • false

En outre, les noms suivants ne doivent pas être utilisés. Bien qu'ils ne génèrent pas une erreur dans PHP 7.0, ils sont réservés pour une utilisation future et doivent être considérés comme obsolètes.

  • resource
  • object
  • mixed
  • numeric

ASP et script PHP Tags supprimés

La prise en charge de l'utilisation des balises ASP et script pour délimiter le code PHP a été supprimée. Les balises affectées sont :

Suppression des balises ASP et script
Balise d'ouverture | Balise de fermeture
<% | %>
<%= | %>
<script language="php"> | </script>

Appels d'un contexte incompatible supprimés

Précédemment déconseillé dans PHP 5.6, les appels statiques effectués à une méthode non statique avec un contexte incompatible se traduiront désormais par la méthode appelée ayant une variable $this non définie et un avertissement d'obsolescence est émis.

<?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 est maintenant un opérateur associatif à droite

La construction yield ne nécessite plus de parenthèses et a été remplacée par un opérateur associatif droit avec la priorité entre print et =>. Cela peut entraîner un changement de comportement :

<?php
echo yield -1;
// A été précédemment interprété comme
echo (yield) - 1;
// Et est maitenant interprété comme
echo yield (-1);

yield $foo or die;
// A été précédemment interprété comme
yield ($foo or die);
// Et est maitenant interprété comme
(yield $foo) or die;
?>

Les parenthèses peuvent être utilisées pour lever l'ambiguïté sur ces cas.

Les fonctions ne peuvent pas avoir plusieurs paramètres avec le même nom

Il n'est plus possible de définir deux ou plusieurs paramètres de fonction avec le même nom. Par exemple, la fonction suivante déclenchera un E_COMPILE_ERROR:

<?php
function foo($a, $b, $unused, $unused) {
//
}
?>

Fonctions d'inspection des arguments signalent la valeur actuelle du paramètre

func_get_arg(), func_get_args(), debug_backtrace() et les traces d'exception ne signalent plus la valeur d'origine qui a été passée à un paramètre, mais fourniront plutôt la valeur actuelle (qui aurait pu être modifiée).

<?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

Les instructions Switch ne peuvent pas avoir plusieurs blocs par défaut

Il n'est plus possible de définir deux ou plusieurs blocs par défaut dans une instruction switch. Par exemple, l'instruction switch suivante déclenchera un E_COMPILE_ERROR :

<?php
switch (1) {
default:
break;
default:
break;
}
?>

$HTTP_RAW_POST_DATA a été supprimée

$HTTP_RAW_POST_DATA n'est plus disponible. Le flux php://input doit être utilisé à la place.

Les commentaires # dans le fichier INI ont été supprimés

La prise en charge des commentaires avec le préfix # dans les fichiers INI a été supprimée. ; (point-virgule) doit être utilisé à la place. Cette modification s'applique aux php.ini, ainsi qu'aux fichiers gérés par parse_ini_file() et parse_ini_string().

Extension JSON remplacée par JSOND

L'extension JSON a été remplacée par JSOND, provoquant trois incompatibilités BC mineures. Premièrement, un nombre ne doit pas se terminer par une virgule décimale (c.-à-d. 34. doit être modifié en 34.0 ou en 34). Deuxièmement, lors de l'utilisation de la notation scientifique, l'exposant e ne doit pas suivre immédiatement un point décimal (c.-à-d. 3.e3 doit être modifié soit en 3.0e3 ou en 3e3). Enfin, une chaîne vide n'est plus considérée comme du JSON valide.

Défaillance de la fonction interne sur le débordement

Auparavant, les fonctions internes devaient tronquer silencieusement les nombres produits à partir de contraintes de type float à entier lorsque le nombre était trop volumineux pour représenter un entier. Désormais, un E_WARNING sera émis et null sera renvoyé.

Correctifs aux valeurs de retour de gestionnaire de session personnalisé

Toutes les fonctions de prédicat implémentées par des gestionnaires de session personnalisés qui retournent false ou -1 seront des erreurs fatales. Si une valeur de ces fonctions autre qu'un booléen, -1 ou 0 est retournée, elle échouera et un E_WARNING sera émis.

Ordre de tri des éléments égaux

L'algorithme de tri interne a été amélioré, ce qui peut entraîner un ordre de tri différent des éléments, qui se comparent comme égaux auparavant.

Note:

Ne comptez pas sur l'ordre des éléments qui se comparent comme égaux; il pourrait changer à tout moment.

Instructions de coupure et de continuation mal placées

Les instructions break et continue en dehors d'une boucle ou d'une structure de contrôle switch sont maintenant détectées au moment de la compilation au lieu de l'exécution comme avant, et déclenchent un E_COMPILE_ERROR.

Mhash n'est plus une extension

L'extension mhash a été entièrement intégrée dans l'extension Hash. Par conséquent, il n'est plus possible de détecter le support mhash avec extension_loaded(); utiliser function_exists() à la place. En outre, mhash n'est plus rapporté par get_loaded_extensions() et les fonctionnalités connexes.

declare(ticks)

La directive declare(ticks) ne fuit plus dans des unités de compilation différentes.


Nouvelles fonctionnalités

Déclarations du type scalaire

Les déclarations de type scalaire viennent en deux modes : coercitive (par défaut) ou stricte. Les types de paramètres suivants peuvent être renforcés (soit coercitif soit strict) : les chaînes de caractères (string), les entiers (int), les décimaux (float) et les valeurs booléennes (bool). Ils complémentent les autres types introduits dans PHP 5 : les noms des classes, les interfaces, les tableaux (array) et les fonctions appelables (callable).

<?php
// Mode coercitive
function sommeEntiers(int ...$entiers)
{
return array_sum($entiers);
}

var_dump(sommeEntiers(2, '3', 4.1));

L'exemple ci-dessus va afficher :

int(9)

Pour activer le mode strict, une seule directive declare doit être placée en haut du fichier. Ceci signifie que le mode strict de déclaration du type scalaire est configurée par fichier. La directive n'affecte pas seulement la déclaration des paramètres mais aussi le type de retour de la fonction (voir les déclarations du type de retour dans les fonctions PHP et celles issues des extensions).

Une documentation complète et des exemples de déclarations du type scalaire peuvent être trouvés dans la référence : Déclarations de type.

Déclarations du type de retour

PHP 7 ajoute un support pour les déclarations du type de retour. Similaires aux déclarations du type d'argument, les déclarations du type de retour spécifient le type de la valeur qui sera retournée par la fonction. Les mêmes types qui sont disponibles pour les déclarations du type de retour sont disponibles pour les déclarations du type d'argument.

<?php

function sommeTableaux(array ...$tableaux): array
{
return array_map(function(array $tableaux): int {
return array_sum($tableaux);
}, $tableaux);
}

print_r(sommeTableaux([1,2,3], [4,5,6], [7,8,9]));

L'exemple ci-dessus va afficher :

Array
(
    [0] => 6
    [1] => 15
    [2] => 24
)

Une documentation complète et des exemples de déclarations du type de retour peuvent être trouvés dans la référence : Déclarations du type de retour.

L'opérateur Null coalescent

L'opérateur Null coalescent (??) a été ajouté comme un sucre syntaxique pour les cas de besoin les plus communs d'utiliser une troisième conjonction avec la fonction isset(). Il retourne le premier opérande s'il existe et n'a pas une valeur null; et retourne le second opérande sinon.

<?php
// Récupére la valeur de $_GET['utilisateur'] retourne 'aucun'
// s'il n'existe pas.
$identifiant = $_GET['utilisateur'] ?? 'aucun';
// Ceci est équivalent à :
$identifiant = isset($_GET['utilisateur']) ? $_GET['utilisateur'] : 'aucun';

// L'opérateur permet de faire du chaînage : Ceci va retourner la première
// valeur définie respectivement dans $_GET['utilisateur'], $_POST['utilisateur']
// et 'aucun'.
$identifiant = $_GET['utilisateur'] ?? $_POST['utilisateur'] ?? 'aucun';
?>

L'opérateur Spaceship

L'opérateur Spaceship est utilisé pour comparer deux expressions. Il retourne -1, 0 ou 1 quand $a est respectivement inférieur, égal ou supérieur à $b. Les comparaisons sont effectuées selon les règles de comparaison de types habituelles de PHP.

<?php
// Entiers
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1

// Nombres à virgule flottante
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1

// Chaînes de caractères
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1
?>

Les tableaux constants à l'aide de define()

Les tableaux (Array) constants peuvent maintenant être définis avec la fonction define(). Dans PHP 5.6, ils pouvaient être définis seulement avec const.

<?php
define('ANIMAUX', [
'chien',
'chat',
'oiseau'
]);

echo ANIMAUX[1]; // affiche "chat"
?>

Les classes anonymes

La prise en charge des classes anonymes a été ajoutée à travers l'instanciation new class. Celle-ci peut être utilisée au lieu de définir toute une classe pour des objets jetables :

<?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) {
}

La documentation complète peut être trouvée dans la référence des classes anonymes.

Syntaxe d’échappement du point de code Unicode

Cela prend un point de code Unicode sous forme hexadécimale, dans une chaîne entre doubles guillemets ou une syntaxe heredoc, pour le convertir en UTF-8. N’importe quel point de code valide est accepté, les zéros en début de chaîne étant facultatifs.

echo "\u{aa}";
echo "\u{0000aa}";
echo "\u{9999}";

L'exemple ci-dessus va afficher :

ª
ª (même affichage que la ligne précédente mais avec des zéros en début de chaîne)
?

Closure::call()

La méthode Closure::call() est devenue plus performante. Une façon plus courte de lier temporairement une fermeture à la portée d'un objet et l'invoquer.

<?php
class A {private $x = 1;}

// Code avant PHP 7
$getX = function() {return $this->x;};
$getXCB = $getX->bindTo(new A, 'A'); // fermeture intermédiaire
echo $getXCB();

// Code PHP 7+
$getX = function() {return $this->x;};
echo $getX->call(new A);

L'exemple ci-dessus va afficher :

1
1

unserialize() est filtrée

Cette fonctionnalité vise à garantir une meilleure sécurité lorsque la désérialisation d’objets est effectuée avec des données non fiables. Elle empêche les injections de code possible en permettant au développeur de whitelister les classes qui peuvent être désérialisées.

<?php

// Convertit tous les objets vers un objet __PHP_Incomplete_Class
$data = unserialize($foo, ["allowed_classes" => false]);

// Convertit tous les objets vers un objet __PHP_Incomplete_Class
// exceptés ceux de MyClass et MyClass2
$data = unserialize($foo, ["allowed_classes" => ["MyClass", "MyClass2"]]);

// Comportement par défaut (le même que lorsqu'on omet le deuxième argument)
// qui accepte toutes les classes
$data = unserialize($foo, ["allowed_classes" => true]);

IntlChar

La nouvelle classe IntlChar cherche à exposer la fonctionnalité ICU en plus. La classe elle-même définit un nombre de méthodes statiques et de constantes qui peuvent être utilisées pour manipuler les caractères unicode.

<?php

printf('%x', IntlChar::CODEPOINT_MAX);
echo IntlChar::charName('@');
var_dump(IntlChar::ispunct('!'));

L'exemple ci-dessus va afficher :

10ffff
COMMERCIAL AT
bool(true)

Pour utiliser cette classe, vous devez installer l'extension Intl.

Les attentes

Les attentes sont une amélioration rétro-compatible apportée à l'ancienne fonction assert(). Ils offrent des assertions à très faible coût dans le code de production et permettent de lever des exceptions personnalisées lorsque l’assertion échoue.

Alors que l'ancienne API continue à être maintenue pour des raisons de compatibilité, la fonction assert() est maintenant une construction de language, permettant au premier paramètre d'être une expression plutôt qu'un string à évaluer ou un bool à tester.

<?php
ini_set('assert.exception', 1);

class CustomError extends AssertionError {}

assert(false, new CustomError('Un message d\'erreur'));
?>

L'exemple ci-dessus va afficher :

Fatal error: Uncaught CustomError: Un message d\'erreur

On trouvera plus de détails sur cette fonctionnalité, y compris la façon de la configurer dans les environnements de développement et de production, dans la section attentes dans la référence de la fonction assert().

Grouper les déclarations use

Les classes, les fonctions et les constantes importées à partir du même namespace peuvent être groupées maintenant dans une seule instruction use.

<?php
// Code avant PHP 7
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;

// Code PHP 7+
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};
?>

Expressions de retour générateur

Cette fonction se base sur la fonctionnalité de générateur introduite dans PHP 5.5. Elle permet d'utiliser une instruction return dans un générateur pour retourner une expression finale (le retour par référence n'est pas autorisé). Cette valeur peut être extraite en utilisant la nouvelle méthode Generator::getReturn(), qui ne peut être utilisée que lorsque le générateur a fini de rendre les valeurs.

<?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

C'est très pratique d'être capable de renvoyer explicitement une valeur finale d'un générateur. Car cela permet à une valeur finale, susceptible d'être gérée spécialement par le code client exécutant le générateur, d'être retournée par le générateur (peut-être à partir d'une forme de calcul coroutine). C'est de loin plus simple que de forcer le code client à vérifier d'abord si la valeur finale a été rendue, puis de gérer spécifiquement la valeur quand c'est le cas.

Délégation de générateur

Les générateurs peuvent maintenant être délégués automatiquement à un autre générateur, un objet Traversable ou un array, en utilisant yield from, sans avoir recours à un boilerplate.

<?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

La division d’entiers avec intdiv()

La nouvelle fonction intdiv() retourne le résultat de la division d'entiers effectuée sur ses opérandes.

<?php
var_dump(intdiv(10, 3));
?>

L'exemple ci-dessus va afficher :

int(3)

Les options de session

La fonction session_start() accepte maintenant un array d'options qui surcharge les directives de configuration de session manuellement configurées dans le fichier php.ini.

Ces options ont aussi étendu le support pour l'option session.lazy_write, qui est activée par défaut et pousse PHP à surcharger les fichiers de session seulement si les données de session ont été mises à jour, et l'option read_and_close, ne pouvant être passée à la fonction session_start() que pour indiquer si les données de session doivent être lues avant que la session soit terminée sans changements.

Par exemple, pour mettre session.cache_limiter à private et fermer immédiatement la session après l'avoir lue :

<?php
session_start([
'cache_limiter' => 'private',
'read_and_close' => true,
]);
?>

preg_replace_callback_array()

La nouvelle fonction preg_replace_callback_array() permet au code d'être écrit de façon plus propre en utilisant la fonction preg_replace_callback(). Avant PHP 7, les fonctions de rappel (callback) devaient être exécutées par expression régulière ce qui demande à la fonction de rappel d'être salie avec beaucoup de ramifications.

Maintenant, les fonctions de rappel peuvent être enregistrées pour chaque expression régulière en utilisant un tableau associatif, là où la clé est une expression régulière ayant la fonction de rappel comme valeur.

Les fonctions CSPRNG

Deux nouvelles fonctions ont été ajoutées pour générer cryptographiquement des entiers et des chaînes de caractères sécurisées de façon multi-plateforme : random_bytes() et random_int().

La fonction list() peut toujours déballer les objets qui implémentent ArrayAccess

Auparavant, la fonction list() ne pouvait pas opérer à 100% sur des objets qui implémentent ArrayAccess. Maintenant, ça a été corrigé.

Autres fonctionnalités

  • L'accès aux membres de la classe (attributs et méthodes) lors du clonage a été ajouté. Exemple, (clone $foo)->bar().


Les fonctionnalités dépréciées dans PHP 7.0.x

Constructeurs de PHP 4

Les constructeurs de style PHP 4 (méthodes ayant le même nom que la classe dans laquelle elles sont définies) sont obsolètes et seront supprimés à l’avenir. PHP 7 émet E_DEPRECATED si le constructeur de PHP 4 est le seul constructeur défini dans la classe. Les classes qui implémentent une méthode __construct() ne sont pas affectées par ce changement.

<?php
class foo {
function foo() {
echo 'Je suis le constructeur';
}
}
?>

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

Les appels statiques à des méthodes non statiques

Les appels statiques aux méthodes qui ne sont pas déclarées avec le mot-clé static sont dépréciés et peuvent être supprimés dans le futur.

<?php
class foo {
function bar() {
echo 'Je ne suis pas statique !';
}
}

foo::bar();
?>

L'exemple ci-dessus va afficher :

Deprecated: Non-static method foo::bar() should not be called statically in - on line 8
Je ne suis pas statique !

L'option salt de la fonction password_hash()

L'option salt de la fonction password_hash() est dépréciée pour épargner aux développeurs de générer leurs propres salts (habituellement non sécurisés). La fonction elle-même génère cryptographiquement un salt sécurisé en l’absence d'un salt fourni par le développeur. Donc, la génération d'un salt sur mesure ne sera plus nécessaire.

L'option capture_session_meta du contexte SSL

L'option capture_session_meta du contexte SSL est dépréciée. Les métadonnées SSL sont maintenant disponibles à travers la fonction stream_get_meta_data().

Dépréciation dans LDAP

Les fonctions suivantes sont dépréciées :

  • ldap_sort()


Fonctions modifiées

Cœur de PHP

  • debug_zval_dump() affiche désormais "int" au lieu de "long" et "float" au lieu de "double"
  • La fonction dirname() prend désormais un deuxième paramètre optionnel, depth, pour indiquer le nombre de niveaux plus haut (par rapport au dossier courant) pour atteindre le nom du dossier dans l'arborescence.
  • getrusage() est désormais supporté sur Windows.
  • Les fonctions mktime() et gmmktime() n'acceptent plus le paramètre is_dst.
  • la fonction preg_replace() ne supporte plus "\e" (PREG_REPLACE_EVAL). preg_replace_callback() devrait être utilisé à la place.
  • La fonction setlocale() n'accepte plus que le paramètre category soit passé comme chaîne de caractères. Les constantes LC_* doivent être utilisées à la place.
  • Les fonctions exec(), system() et passthru() ont désormais l'octet NULL de protection.
  • shmop_open() retourne désormais une ressource à la place d'un entier qui doit être passé aux fonctions shmop_size(), shmop_write(), shmop_read(), shmop_close() et shmop_delete().
  • substr() et iconv_substr() retourne désormais une chaîne de caractères vide, si la longueur de la chaîne est égale à $start.
  • xml_parser_free() n'est plus suffisant pour libérer la ressource de l'analyseur, s'il fait référence à un objet et que cet objet fait référence à cette ressource d'analyseur. Dans ce cas, il est nécessaire de libérer également le $parser.


Nouvelles fonctions

Closure

  • Closure::call()

CSPRNG

  • random_bytes()
  • random_int()

Gestion des erreurs et des journaux

  • error_clear_last()

Générateur

  • Generator::getReturn()

GNU Multiple Precision

  • gmp_random_seed()

Math

  • intdiv()

PCRE

  • preg_replace_callback_array()

Options/Info PHP

  • gc_mem_caches()
  • get_resources()

POSIX

  • posix_setrlimit()

Reflection

  • ReflectionParameter::getType()
  • ReflectionParameter::hasType()
  • ReflectionFunctionAbstract::getReturnType()
  • ReflectionFunctionAbstract::hasReturnType()

Zip

  • ZipArchive::setCompressionIndex()
  • ZipArchive::setCompressionName()

Compression Zlib

  • inflate_add()
  • deflate_add()
  • inflate_init()
  • deflate_init()


Nouvelles Classes et Interfaces

Intl

  • IntlChar

Reflection

  • ReflectionGenerator
  • ReflectionType

Gestion des sessions

  • SessionUpdateTimestampHandlerInterface

Hiérarchie des exceptions

  • Throwable
  • Error
  • TypeError
  • ParseError
  • AssertionError
  • ArithmeticError
  • DivisionByZeroError


Nouvelles constantes globales

Constantes prédéfinies

  • PHP_INT_MIN

GD

  • IMG_WEBP (à partir de 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


Modifications des modules SAPI

FPM

Les ports d'écoute non qualifiés écoutent maintenant sur IPv4 et IPv6

En PHP 5, une directive d'écoute avec seulement un numéro de port écouterait toutes les interfaces, mais seulement sur IPv4. PHP 7 accepte désormais les demandes faites via IPv4 et IPv6.

Cela n'affecte pas les directives qui incluent des adresses IP spécifiques; celles-ci continueront à écouter seulement sur cette adresse et protocole.


Extensions et SAPI supprimées

Extensions supprimées

  • ereg
  • mssql
  • mysql
  • sybase_ct

SAPI supprimées

  • aolserver
  • apache
  • apache_hooks
  • apache2filter
  • caudium
  • continuity
  • isapi
  • milter
  • nsapi
  • phttpd
  • pi3web
  • roxen
  • thttpd
  • tux
  • webjames


Autres changements

Assouplissement des restrictions des mots réservés

Globalement, l'utilisation des mots réservés en tant que nom de propriété, constante ou méthode dans des classes, des interfaces ou des traits sont désormais autorisés. Ceci réduit la surface des casses de rétrocompatibilité quand des nouveaux mots-clés sont introduits et évite les restrictions de nommage sur les APIs.

Ceci est particulièrement utile lorsque vous créez des DSLs internes avec des interfaces "fluent" :

<?php
// 'new', 'private' et 'for' étaient inutilisables auparavant
Project::new('Project Name')->private()->for('purpose here')->with('username here');
?>

La seule limitation est que le mot-clé class ne peut toujours pas être utilisé comme nom de constante, sinon il serait en conflit avec la syntaxe de résolution du nom de la classe (ClassName::class).

Enlèvement de l'avertissement date.timezone

Auparavant, un avertissement était émit si le paramètre INI date.timezone n'avait pas été défini avant d'utiliser les fonctions de date/temps. Maintenant, cet avertissement a été supprimé (avec date.timezone qui continue d'être UTC par défaut).


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
  • Changement pour OpenSSL dans 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 prises en considération, et le code doit être testé avant de changer de version sur les environnements de production.


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îne de caractères 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 les arguments par défaut de fonction.

<?php
const UN = 1;
const DEUX = UN * 2;

class C {
const TROIS = DEUX + 1;
const UN_TIERS = 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 tableau 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 de décomposition ...

Les fonctions variables peuvent maintenant être implémentées en utilisant l'opérateur de décomposition ..., 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 de décomposition ...

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 de décomposition .... Cette méthode est connue sous le nom d'opérateur astérisque 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 réalisé en utilisant les constructions use function et use const, respectivement.

<?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 désormais 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.

GMP supporte la surcharge d'opérateur

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îne de caractères permettant d'éviter les attaques de type timing

La fonction hash_equals() a été ajoutée pour comparer deux chaîne de caractères 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 hachage gost-crypto

L'algorithme de hachage gost-crypto a été ajouté. Il implémente la fonction de hachage 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 ont é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 chiffré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 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 des méthodes depuis un contexte incompatible est désormais 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 désormais 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 d'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

Cœur de PHP

  • 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 sérialisé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()


Changement pour OpenSSL dans PHP 5.6.x

Les wrappers de flux vérifient désormais les certificats d'homologue et les noms d'hôte par défaut 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.

Empreintes digitales de certificat

Le support a été ajouté pour extraire et vérifier les empreintes digitales des certificats. openssl_x509_fingerprint() a été ajouté pour extraire une empreinte digitale d'un certificat X.509 et deux options de contexte de flux SSL ont été ajoutées: capture_peer_cert pour capturer le certificat X.509 de l'homologue et peer_fingerprint pour certifier que le certificat de l'homologue doit correspondre à l'empreinte digitale donnée.

Chiffrements par défaut mis à jour

Les chiffrements par défaut utilisés par PHP ont été mis à jour vers une liste plus sécurisée basée sur les » recommandations de chiffrement de Mozilla, avec deux exclusions supplémentaires: chiffrements Diffie-Hellman anonymes et RC4.

Cette liste est accessible via la nouvelle constante OPENSSL_DEFAULT_STREAM_CIPHERS et peut être remplacée (comme dans les versions précédentes de PHP) en définissant l'option de contexte chiffrements.

Compression désactivée par défaut

La compression SSL/TLS a été désactivée par défaut pour atténuer l'attaque CRIME. PHP 5.4.13 a ajouté une option de contexte disable_compression pour permettre à la compression d'être désactivée: elle est maintenant définie à true (c'est-à-dire que la compression est désactivée) par défaut.

Autoriser les serveurs à préférer leur ordre de chiffrement

L'option de contexte SSL honor_cipher_order a été ajoutée pour permettre aux serveurs de flux chiffrés d'atténuer les vulnérabilités de BEAST en préférant les chiffrements du serveur au client.

Accéder au protocole négocié et au chiffrement

Le protocole et le chiffrement qui ont été négociés pour un flux chiffré peuvent désormais être accédé via stream_get_meta_data() ou stream_context_get_options() lorsque l'option de contexte SSL capture_session_meta est définie à 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"
}

De nouvelles options pour la confidentialité persistante sur les serveurs de flux chiffrés

Les flux de clients chiffrés prennent déjà en charge la confidentialité persistante, car il est généralement contrôlé par le serveur. Les flux de serveurs chiffrés en PHP à l'aide de certificats capables d'une confidentialité persistante n'ont pas besoin de prendre d'autres mesures pour activer PFS; Toutefois, un certain nombre de nouvelles options de contexte SSL ont été ajoutées pour permettre un plus grand contrôle sur PFS et traiter les problèmes de compatibilité qui peuvent survenir.

ecdh_curve

Cette option permet de sélectionner une courbe spécifique à utiliser avec les chiffrements ECDH. S'il n'est pas spécifié, prime256v1 sera utilisé.

dh_param

Chemin d'accès à un fichier contenant des paramètres pour l'échange de clés Diffie-Hellman, tel que celui créé par la commande suivante :

openssl dhparam -out /path/to/my/certs/dh-2048.pem 2048
single_dh_use

Si définie à true, une nouvelle paire de clés sera créée lors de l'utilisation des paramètres Diffie-Hellman, améliorant ainsi la confidentialité persistante.

single_ecdh_use

Si définie à true, une nouvelle paire de clés sera toujours générée lors de la négociation des suites de chiffrement ECDH. Cela améliore la confidentialité persistante.

Sélection de la version SSL/TLS

Il est désormais possible de sélectionner des versions spécifiques de SSL et TLS via l'option de contexte SSL crypto_method ou en spécifiant un transport spécifique lors de la création d'un wrapper de flux (par exemple, en appelant stream_socket_client() ou stream_socket_ serveur()).

L'option de contexte SSL crypto_method accepte un masque de bits énumérant les protocoles qui sont autorisés, comme le fait le crypto_type de stream_socket_enable_crypto().

Versions de protocole sélectionnées et options correspondantes
Pprotocole(s) | Drapeau client | Drapeau serveur | Transport
Toute version TLS ou SSL | STREAM_CRYPTO_METHOD_ANY_CLIENT | STREAM_CRYPTO_METHOD_ANY_SERVER | ssl://
Toute version TLS | 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

// Nécessitant TLS 1.0 ou mieux lors de l'utilisation de file_get_contents():
$ctx = stream_context_create([
'ssl' => [
'crypto_method' => STREAM_CRYPTO_METHOD_TLS_CLIENT,
],
]);
$html = file_get_contents('https://google.com/', false, $ctx);

// Nécessitant TLS 1.1 ou 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);

// Connexion à l'aide du transport de socket tlsv1.2://.
$sock = stream_socket_client('tlsv1.2://google.com:443/');

?>

Ajout de openssl_get_cert_locations()

La fonction openssl_get_cert_locations() a été ajoutée : elle renvoie les emplacements par défaut que PHP recherchera lors de la recherche de paquets CA.

<?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) ""
}

Support de SPKI

Le support a été ajouté pour générer, extraire et vérifier les clés et les défis publics signés (SPKAC). openssl_spki_new(), openssl_spki_verify(), openssl_spki_export_challenge() et openssl_spki_export() ont été ajoutées pour créer, vérifier la clé publique PEM d'exportation et le défi associé de SPKAC générés à partir d'un élément HTML5 KeyGen.

openssl_spki_new

Génère un nouveau SPKAC en utilisant la clé privée, chaîne de caractères de défi et l'algorithme de hachage.

<?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

Vérifie le SPKAC fourni.

<?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

Exportations du défi associé au SPKAC fourni.

<?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

Exporte la clé publique RSA au format PEM du SPAKC.

<?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, elle contrôle le comportement de restauration des connexions persistantes.


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


  • « Nouvelles constantes globales
  • À 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 embarque un débogueur interactif en ligne de commande de base phpdbg.

La plupart des IDE ont une prise en charge de » Xdebug, un outil de débogage gratuit, qui permet de déboguer pas à pas votre code PHP.


  • « À 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:

Elles sont également utilisées 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ébogage

--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. Notez que si vous installez les pages de manuel sous PREFIX (par défaut), choisissez le style GNU afin qu'elles puissent être trouvées dans le chemin de recherche de l'utilitaire manpath.

--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-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.

--disable-short-tags

Désactive les balises courtes <?.

--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.

--enable-zts

Active la sécurité des threads. Antérieur à PHP 8.0.0 sur les systèmes non-Windows, l'option était appelée --enable-maintainer-zts.

Options SAPI

La liste suivante contient les options valides SAPI&s (Server Application Programming Interface) pour PHP.

--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.

--disable-cli

Empêche la compilation de la version CLI de PHP (cela force aussi l'option --without-pear). 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 interactif phpdbg.

--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.

--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.

--disable-cgi

Empêche la compilation de la version CGI de PHP.

Cet argument active aussi FastCGI.


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 qui peuvent être utilisées pour configurer 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_url_fopen | "1" | INI_SYSTEM |
allow_url_include | "0" | INI_SYSTEM | Obsolète à partir de PHP 7.4.0.
arg_separator.input | "&" | INI_PERDIR |
arg_separator.output | "&" | INI_ALL |
assert.active | "1" | INI_ALL |
assert.bail | "0" | INI_ALL |
assert.callback | null | INI_ALL |
assert.exception | "0" | INI_ALL |
assert.quiet_eval | "0" | INI_ALL | Supprimé à partir de PHP 8.0.0.
assert.warning | "1" | INI_ALL |
auto_append_file | null | INI_PERDIR |
auto_detect_line_endings | "0" | INI_ALL |
auto_globals_jit | "1" | INI_PERDIR |
auto_prepend_file | null | INI_PERDIR |
bcmath.scale | "0" | INI_ALL |
browscap | null | INI_SYSTEM |
cgi.check_shebang_line | "1" | INI_SYSTEM |
cgi.discard_path | "0" | INI_SYSTEM |
cgi.fix_pathinfo | "1" | INI_SYSTEM |
cgi.force_redirect | "1" | INI_SYSTEM |
cgi.nph | "0" | INI_ALL |
cgi.redirect_status_env | null | INI_SYSTEM |
cgi.rfc2616_headers | "0" | INI_ALL |
child_terminate | "0" | INI_ALL |
cli.pager | "" | INI_ALL |
cli.prompt | "\\b \\> " | INI_ALL |
cli_server.color | "0" | INI_ALL |
com.allow_dcom | "0" | INI_SYSTEM |
com.autoregister_typelib | "0" | INI_ALL |
com.autoregister_verbose | "0" | INI_ALL |
com.autoregister_casesensitive | "1" | INI_ALL |
com.code_page | "" | INI_ALL |
com.dotnet_version | "" | INI_SYSTEM | À partir de PHP 8.0.0
com.typelib_file | "" | INI_SYSTEM |
curl.cainfo | NULL | INI_SYSTEM |
date.default_latitude | "31.7667" | INI_ALL |
date.default_longitude | "35.2333" | INI_ALL |
date.sunrise_zenith | "90.833333" | INI_ALL | Avant PHP 8.0.0, la valeur par défaut était "90.583333"
date.sunset_zenith | "90.833333" | INI_ALL | Avant PHP 8.0.0, la valeur par défaut était "90.583333"
date.timezone | "UTC" | INI_ALL | À partir de PHP 8.2, un avertissement est émis si l'option est définie avec une valeur invalide ou une chaîne vide.
dba.default_handler | DBA_DEFAULT | INI_ALL |
default_charset | "UTF-8" | INI_ALL | Par défaut "UTF-8".
input_encoding | "" | INI_ALL |
output_encoding | "" | INI_ALL |
internal_encoding | "" | INI_ALL |
default_mimetype | "text/html" | INI_ALL |
default_socket_timeout | "60" | INI_ALL |
disable_classes | "" | php.ini uniquement |
disable_functions | "" | php.ini uniquement |
display_errors | "1" | INI_ALL |
display_startup_errors | "1" | INI_ALL | Antérieur à PHP 8.0.0, la valeur par défaut était "0".
docref_ext | "" | INI_ALL |
docref_root | "" | INI_ALL |
doc_root | null | INI_SYSTEM |
enable_dl | "1" | INI_SYSTEM | Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
enable_post_data_reading | On | INI_PERDIR |
engine | "1" | INI_ALL |
error_append_string | null | INI_ALL |
error_log | null | INI_ALL |
error_log_mode | 0o644 | INI_ALL | Disponible à partir de PHP 8.2.0
error_prepend_string | null | INI_ALL |
error_reporting | null | INI_ALL |
exif.encode_unicode | "ISO-8859-15" | INI_ALL |
exif.decode_unicode_motorola | "UCS-2BE" | INI_ALL |
exif.decode_unicode_intel | "UCS-2LE" | INI_ALL |
exif.encode_jis | "" | INI_ALL |
exif.decode_jis_motorola | "JIS" | INI_ALL |
exif.decode_jis_intel | "JIS" | INI_ALL |
exit_on_timeout | "" | INI_ALL |
expect.timeout | "10" | INI_ALL |
expect.loguser | "1" | INI_ALL |
expect.logfile | "" | INI_ALL |
expect.match_max | "" | INI_ALL |
expose_php | "1" | php.ini uniquement |
extension | null | php.ini uniquement |
extension_dir | "/path/to/php" | INI_SYSTEM |
fastcgi.impersonate | "0" | INI_SYSTEM |
fastcgi.logging | "1" | INI_SYSTEM |
file_uploads | "1" | INI_SYSTEM |
filter.default | "unsafe_raw" | INI_PERDIR | Obsolète à partir de PHP 8.1.0.
filter.default_flags | NULL | INI_PERDIR |
from | "" | INI_ALL |
gd.jpeg_ignore_warning | "1" | INI_ALL |
geoip.custom_directory | "" | INI_ALL |
hard_timeout | "2" | INI_SYSTEM | Disponible à partir de PHP 7.1.0.
highlight.comment | "#FF8000" | INI_ALL |
highlight.default | "#0000BB" | INI_ALL |
highlight.html | "#000000" | INI_ALL |
highlight.keyword | "#007700" | INI_ALL |
highlight.string | "#DD0000" | INI_ALL |
html_errors | "1" | INI_ALL |
ibase.allow_persistent | "1" | INI_SYSTEM |
ibase.max_persistent | "-1" | INI_SYSTEM |
ibase.max_links | "-1" | INI_SYSTEM |
ibase.default_db | NULL | INI_SYSTEM |
ibase.default_user | NULL | INI_ALL |
ibase.default_password | NULL | INI_ALL |
ibase.default_charset | NULL | INI_ALL |
ibase.timestampformat | "%Y-%m-%d %H:%M:%S" | INI_ALL |
ibase.dateformat | "%Y-%m-%d" | INI_ALL |
ibase.timeformat | "%H:%M:%S" | INI_ALL |
ibm_db2.binmode | "1" | INI_ALL |
ibm_db2.i5_all_pconnect | "0" | INI_SYSTEM | Disponible à partir de ibm_db2 1.6.5.
ibm_db2.i5_allow_commit | "0" | INI_SYSTEM | Disponible à partir de ibm_db2 1.4.9.
ibm_db2.i5_blank_userid | "0" | INI_SYSTEM | Disponible à partir de ibm_db2 1.9.7.
ibm_db2.i5_char_trim | "0" | INI_SYSTEM | Disponible à partir de ibm_db2 2.1.0.
ibm_db2.i5_dbcs_alloc | "0" | INI_SYSTEM | Disponible à partir de ibm_db2 1.5.0.
ibm_db2.i5_guard_profile | "0" | INI_SYSTEM | Disponible à partir de ibm_db2 1.9.7.
ibm_db2.i5_ignore_userid | "0" | INI_SYSTEM | Disponible à partir de ibm_db2 1.8.0.
ibm_db2.i5_job_sort | "0" | INI_SYSTEM | Disponible à partir de ibm_db2 1.8.4.
ibm_db2.i5_log_verbose | "0" | INI_SYSTEM | Disponible à partir de ibm_db2 1.9.7.
ibm_db2.i5_max_pconnect | "0" | INI_SYSTEM | Disponible à partir de ibm_db2 1.9.7.
ibm_db2.i5_override_ccsid | "0" | INI_SYSTEM | Disponible à partir de ibm_db2 1.9.7.
ibm_db2.i5_servermode_subsystem | NULL | INI_SYSTEM | Disponible à partir de ibm_db2 1.9.7.
ibm_db2.i5_sys_naming | "0" | INI_SYSTEM | Disponible à partir de ibm_db2 1.9.7.
ibm_db2.instance_name | NULL | INI_SYSTEM | Disponible à partir de ibm_db2 1.0.2.
iconv.input_encoding | "" | INI_ALL | Obsolète en PHP 5.6.0.
iconv.output_encoding | "" | INI_ALL | Obsolète en PHP 5.6.0.
iconv.internal_encoding | "" | INI_ALL | Obsolète en PHP 5.6.0.
ignore_repeated_errors | "0" | INI_ALL |
ignore_repeated_source | "0" | INI_ALL |
ignore_user_abort | "0" | INI_ALL |
implicit_flush | "0" | INI_ALL |
include_path | ".:/path/to/php/pear" | INI_ALL |
intl.default_locale |  | INI_ALL |
intl.error_level | 0 | INI_ALL |
intl.use_exceptions | 0 | INI_ALL | Disponible à partir de PECL 3.0.0a1
last_modified | "0" | INI_ALL |
ldap.max_links | "-1" | INI_SYSTEM |
log_errors | "0" | INI_ALL |
log_errors_max_len | "1024" | INI_ALL |
mail.add_x_header | "0" | INI_PERDIR |
mail.force_extra_parameters | null | php.ini uniquement |
mail.log | "" | INI_PERDIR |
max_execution_time | "30" | INI_ALL |
max_input_nesting_level | "64" | INI_PERDIR |
max_input_vars | 1000 | INI_PERDIR |
max_input_time | "-1" | INI_PERDIR |
mbstring.language | "neutral" | INI_ALL |
mbstring.detect_order | NULL | INI_ALL |
mbstring.http_input | "pass" | INI_ALL | Obsolète
mbstring.http_output | "pass" | INI_ALL | Obsolète
mbstring.internal_encoding | NULL | INI_ALL | Obsolète
mbstring.substitute_character | NULL | INI_ALL |
mbstring.func_overload | "0" | INI_SYSTEM | Obsolète à partir de PHP 7.2.0; supprimée à partir de PHP 8.0.0.
mbstring.encoding_translation | "0" | INI_PERDIR |
mbstring.http_output_conv_mimetypes | "^(text/|application/xhtml\+xml)" | INI_ALL |
mbstring.strict_detection | "0" | INI_ALL |
mbstring.regex_retry_limit | "1000000" | INI_ALL | Disponible à partir de PHP 7.4.0.
mbstring.regex_stack_limit | "100000" | INI_ALL | Disponible à partir de PHP 7.3.5.
mcrypt.algorithms_dir | null | INI_ALL |
mcrypt.modes_dir | null | INI_ALL |
memcache.allow_failover | "1" | INI_ALL | Disponible à partir de memcache 2.0.2.
memcache.max_failover_attempts | "20" | INI_ALL | Disponible à partir de memcache 2.1.0.
memcache.chunk_size | "8192" | INI_ALL | Disponible à partir de memcache 2.0.2.
memcache.default_port | "11211" | INI_ALL | Disponible à partir de memcache 2.0.2.
memcache.hash_strategy | "standard" | INI_ALL | Disponible à partir de memcache 2.2.0.
memcache.hash_function | "crc32" | INI_ALL | Disponible à partir de memcache 2.2.0.
memcache.protocol | ascii | INI_ALL | Supporté à partir de memcache 3.0.0
memcache.redundancy | 1 | INI_ALL | Supporté à partir de memcache 3.0.0
memcache.session_redundancy | 2 | INI_ALL | Supporté à partir de memcache 3.0.0
memcache.compress_threshold | 20000 | INI_ALL | Supporté à partir de memcache 3.0.3
memcache.lock_timeout | 15 | INI_ALL | Supporté à partir de memcache 3.0.4
memory_limit | "128M" | INI_ALL |
mysql.allow_local_infile | "1" | INI_SYSTEM |
mysql.allow_persistent | "1" | INI_SYSTEM |
mysql.max_persistent | "-1" | INI_SYSTEM |
mysql.max_links | "-1" | INI_SYSTEM |
mysql.trace_mode | "Off" | INI_ALL |
mysql.default_port | NULL | INI_ALL |
mysql.default_socket | NULL | INI_ALL |
mysql.default_host | NULL | INI_ALL |
mysql.default_user | NULL | INI_ALL |
mysql.default_password | NULL | INI_ALL |
mysql.connect_timeout | "60" | INI_ALL |
mysqli.allow_local_infile | "0" | INI_SYSTEM | Antérieur à PHP 7.2.16 et 7.3.3 la valeur par défaut était "1".
mysqli.local_infile_directory |  | INI_SYSTEM | Disponible à partir de PHP 8.1.0.
mysqli.allow_persistent | "1" | INI_SYSTEM |
mysqli.max_persistent | "-1" | INI_SYSTEM |
mysqli.max_links | "-1" | INI_SYSTEM |
mysqli.default_port | "3306" | INI_ALL |
mysqli.default_socket | NULL | INI_ALL |
mysqli.default_host | NULL | INI_ALL |
mysqli.default_user | NULL | INI_ALL |
mysqli.default_pw | NULL | INI_ALL |
mysqli.reconnect | "0" | INI_SYSTEM | Supprimée à partir de PHP 8.2.0
mysqli.rollback_on_cached_plink | "0" | INI_SYSTEM |
mysqlnd.collect_statistics | "1" | INI_SYSTEM |
mysqlnd.collect_memory_statistics | "0" | INI_SYSTEM |
mysqlnd.debug | "" | INI_SYSTEM |
mysqlnd.log_mask | 0 | INI_ALL |
mysqlnd.mempool_default_size | 16000 | INI_ALL |
mysqlnd.net_read_timeout | "86400" | INI_ALL | Avant PHP 7.2.0 la valeur par défaut était "31536000" et la variabilité était INI_SYSTEM
mysqlnd.net_cmd_buffer_size | "4096" | INI_SYSTEM |
mysqlnd.net_read_buffer_size | "32768" | INI_SYSTEM |
mysqlnd.sha256_server_public_key | "" | INI_PERDIR |
mysqlnd.trace_alloc | "" | INI_SYSTEM |
mysqlnd.fetch_data_copy | 0 | INI_ALL | Supprimé à partir de PHP 8.1.0
oci8.connection_class | "" | INI_ALL |
oci8.default_prefetch | "100" | INI_SYSTEM |
oci8.events | Off | INI_SYSTEM |
oci8.max_persistent | "-1" | INI_SYSTEM |
oci8.old_oci_close_semantics | Off | INI_SYSTEM | Obsolète à partir de PHP 8.1.0.
oci8.persistent_timeout | "-1" | INI_SYSTEM |
oci8.ping_interval | "60" | INI_SYSTEM |
oci8.prefetch_lob_size | "0" | INI_SYSTEM | Disponible à partir de PECL OCI8 3.2.
oci8.privileged_connect | Off | INI_SYSTEM |
oci8.statement_cache_size | "20" | INI_SYSTEM |
odbc.default_db * | NULL | INI_ALL |
odbc.default_user * | NULL | INI_ALL |
odbc.default_pw * | NULL | INI_ALL |
odbc.allow_persistent | "1" | INI_SYSTEM |
odbc.check_persistent | "1" | INI_SYSTEM |
odbc.max_persistent | "-1" | INI_SYSTEM |
odbc.max_links | "-1" | INI_SYSTEM |
odbc.defaultlrl | "4096" | INI_ALL |
odbc.defaultbinmode | "1" | INI_ALL |
odbc.default_cursortype | "3" | INI_ALL |
opcache.enable | "1" | INI_ALL |
opcache.enable_cli | "0" | INI_SYSTEM | Entre PHP 7.1.2 et 7.1.6 inclusivement, la valeur par défaut était de "1"
opcache.memory_consumption | "128" | INI_SYSTEM |
opcache.interned_strings_buffer | "8" | INI_SYSTEM |
opcache.max_accelerated_files | "10000" | INI_SYSTEM |
opcache.max_wasted_percentage | "5" | INI_SYSTEM |
opcache.use_cwd | "1" | INI_SYSTEM |
opcache.validate_timestamps | "1" | INI_ALL |
opcache.revalidate_freq | "2" | INI_ALL |
opcache.revalidate_path | "0" | INI_ALL |
opcache.save_comments | "1" | INI_SYSTEM |
opcache.fast_shutdown | "0" | INI_SYSTEM | Supprimé en PHP 7.2.0.
opcache.enable_file_override | "0" | INI_SYSTEM |
opcache.optimization_level | "0x7FFEBFFF" | INI_SYSTEM | Modifié depuis 0x7FFFBFFF en PHP 7.3.0
opcache.inherited_hack | "1" | INI_SYSTEM | Supprimé en PHP 7.3.0
opcache.dups_fix | "0" | INI_ALL |
opcache.blacklist_filename | "" | INI_SYSTEM |
opcache.max_file_size | "0" | INI_SYSTEM |
opcache.consistency_checks | "0" | INI_ALL | >Désactivé à partir de PHP 8.1.18 et 8.2.5. Supprimé à partir de PHP 8.3.0.
opcache.force_restart_timeout | "180" | INI_SYSTEM |
opcache.error_log | "" | INI_SYSTEM |
opcache.log_verbosity_level | "1" | INI_SYSTEM |
opcache.record_warnings | "0" | INI_SYSTEM | Disponible à partir de PHP 8.0.0.
opcache.preferred_memory_model | "" | INI_SYSTEM |
opcache.protect_memory | "0" | INI_SYSTEM |
opcache.mmap_base | null | INI_SYSTEM |
opcache.restrict_api | "" | INI_SYSTEM |
opcache.file_update_protection | "2" | INI_ALL |
opcache.huge_code_pages | "0" | INI_SYSTEM |
opcache.lockfile_path | "/tmp" | INI_SYSTEM |
opcache.opt_debug_level | "0" | INI_SYSTEM | Disponible à partir de PHP 7.1.0
opcache.file_cache | NULL | INI_SYSTEM |
opcache.file_cache_only | "0" | INI_SYSTEM |
opcache.file_cache_consistency_checks | "1" | INI_SYSTEM |
opcache.file_cache_fallback | "1" | INI_SYSTEM | Windows uniquement.
opcache.validate_permission | "0" | INI_SYSTEM | Disponible à partir de PHP 7.0.14
opcache.validate_root | "0" | INI_SYSTEM | Disponible à partir de PHP 7.0.14
opcache.preload | "" | INI_SYSTEM | Disponible à partir de PHP 7.4.0
opcache.preload_user | "" | INI_SYSTEM | Disponible à partir de PHP 7.4.0
opcache.cache_id | "" | INI_SYSTEM | Windows uniquement. Disponible à partir de PHP 7.4.0
opcache.jit | "tracing" | INI_ALL | Disponible à partir de PHP 8.0.0
opcache.jit_buffer_size | "0" | INI_SYSTEM | Disponible à partir de PHP 8.0.0
opcache.jit_debug | "0" | INI_ALL | Disponible à partir de PHP 8.0.0
opcache.jit_bisect_limit | "0" | INI_ALL | Disponible à partir de PHP 8.0.0
opcache.jit_prof_threshold | "0.005" | INI_ALL | Disponible à partir de PHP 8.0.0
opcache.jit_max_root_traces | "1024" | INI_SYSTEM | Disponible à partir de PHP 8.0.0
opcache.jit_max_side_traces | "128" | INI_SYSTEM | Disponible à partir de PHP 8.0.0
opcache.jit_max_exit_counters | "8192" | INI_SYSTEM | Disponible à partir de PHP 8.0.0
opcache.jit_hot_loop | "64" | INI_SYSTEM | Disponible à partir de PHP 8.0.0
opcache.jit_hot_func | "127" | INI_SYSTEM | Disponible à partir de PHP 8.0.0
opcache.jit_hot_return | "8" | INI_SYSTEM | Disponible à partir de PHP 8.0.0
opcache.jit_hot_side_exit | "8" | INI_SYSTEM | Disponible à partir de PHP 8.0.0
opcache.jit_blacklist_root_trace | "16" | INI_ALL | Disponible à partir de PHP 8.0.0
opcache.jit_blacklist_side_trace | "8" | INI_ALL | Disponible à partir de PHP 8.0.0
opcache.jit_max_loop_unrolls | "8" | INI_ALL | Disponible à partir de PHP 8.0.0
opcache.jit_max_recursive_calls | "2" | INI_ALL | Disponible à partir de PHP 8.0.0
opcache.jit_max_recursive_returns | "2" | INI_ALL | Disponible à partir de PHP 8.0.0
opcache.jit_max_polymorphic_calls | "2" | INI_ALL | Disponible à partir de PHP 8.0.0
open_basedir | null | INI_ALL |
output_buffering | "0" | INI_PERDIR |
output_handler | null | INI_PERDIR |
pcre.backtrack_limit | "1000000" | INI_ALL |
pcre.recursion_limit | "100000" | INI_ALL |
pcre.jit | "1" | INI_ALL |
pdo.dsn.* |  | php.ini seulement |
pdo_odbc.connection_pooling | "strict" | INI_ALL |
pdo_odbc.db2_instance_name | null | INI_SYSTEM | Cette fonctionnalité obsolète sera certainement supprimée dans le futur.
pgsql.allow_persistent | "1" | INI_SYSTEM |
pgsql.max_persistent | "-1" | INI_SYSTEM |
pgsql.max_links | "-1" | INI_SYSTEM |
pgsql.auto_reset_persistent | "0" | INI_SYSTEM |
pgsql.ignore_notice | "0" | INI_ALL |
pgsql.log_notice | "0" | INI_ALL |
phar.readonly | "1" | INI_ALL |
phar.require_hash | "1" | INI_ALL |
phar.cache_list | "" | INI_SYSTEM |
post_max_size | "8M" | INI_PERDIR |
precision | "14" | INI_ALL |
realpath_cache_size | "16K" | INI_SYSTEM |
realpath_cache_ttl | "120" | INI_SYSTEM |
register_argc_argv | "1" | INI_PERDIR |
report_memleaks | "1" | INI_ALL |
report_zend_debug | "1" | INI_ALL |
request_order | "" | INI_PERDIR |
runkit.superglobal | "" | INI_PERDIR |
runkit.internal_override | "0" | INI_SYSTEM |
sendmail_from | null | INI_ALL |
sendmail_path | "/usr/sbin/sendmail -t -i" | INI_SYSTEM |
serialize_precision | "-1" | INI_ALL | Antérieur à PHP 7.1.0, la valeur par défaut était 17.
session.save_path | "" | INI_ALL |
session.name | "PHPSESSID" | INI_ALL |
session.save_handler | "files" | INI_ALL |
session.auto_start | "0" | INI_PERDIR |
session.gc_probability | "1" | INI_ALL |
session.gc_divisor | "100" | INI_ALL |
session.gc_maxlifetime | "1440" | INI_ALL |
session.serialize_handler | "php" | INI_ALL |
session.cookie_lifetime | "0" | INI_ALL |
session.cookie_path | "/" | INI_ALL |
session.cookie_domain | "" | INI_ALL |
session.cookie_secure | "0" | INI_ALL | Antérieur à PHP 7.2.0, la valeur par défaut était "".
session.cookie_httponly | "0" | INI_ALL | Antérieur à PHP 7.2.0, la valeur par défaut était "".
session.cookie_samesite | "" | INI_ALL | Disponible à partir de PHP 7.3.0.
session.use_strict_mode | "0" | INI_ALL |
session.use_cookies | "1" | INI_ALL |
session.use_only_cookies | "1" | INI_ALL |
session.referer_check | "" | INI_ALL |
session.cache_limiter | "nocache" | INI_ALL |
session.cache_expire | "180" | INI_ALL |
session.use_trans_sid | "0" | INI_ALL |
session.trans_sid_tags | "a=href,area=href,frame=src,form=" | INI_ALL | Disponible à partir de PHP 7.1.0.
session.trans_sid_hosts | $_SERVER['HTTP_HOST'] | INI_ALL | Disponible à partir de PHP 7.1.0.
session.sid_length | "32" | INI_ALL | Disponible à partir de PHP 7.1.0.
session.sid_bits_per_character | "4" | INI_ALL | Disponible à partir de PHP 7.1.0.
session.upload_progress.enabled | "1" | INI_PERDIR |
session.upload_progress.cleanup | "1" | INI_PERDIR |
session.upload_progress.prefix | "upload_progress_" | INI_PERDIR |
session.upload_progress.name | "PHP_SESSION_UPLOAD_PROGRESS" | INI_PERDIR |
session.upload_progress.freq | "1%" | INI_PERDIR |
session.upload_progress.min_freq | "1" | INI_PERDIR |
session.lazy_write | "1" | INI_ALL |
session.hash_function | "0" | INI_ALL | Supprimé à partir de PHP 7.1.0
session.hash_bits_per_character | "4" | INI_ALL | Supprimé à partir de PHP 7.1.0
session.entropy_file | "" | INI_ALL | Supprimé à partir de PHP 7.1.0.
session.entropy_length | "0" | INI_ALL | Supprimé à partir de PHP 7.1.0.
short_open_tag | "1" | INI_PERDIR |
SMTP | "localhost" | INI_ALL |
smtp_port | "25" | INI_ALL |
soap.wsdl_cache_enabled | 1 | INI_ALL |
soap.wsdl_cache_dir | /tmp | INI_ALL |
soap.wsdl_cache_ttl | 86400 | INI_ALL |
soap.wsdl_cache | 1 | INI_ALL |
soap.wsdl_cache_limit | 5 | INI_ALL |
sql.safe_mode | "0" | INI_SYSTEM | Supprimé à partir de PHP 7.2.0
sqlite3.extension_dir | "" | INI_SYSTEM |
sqlite3.defensive | 1 | INI_USER | Disponible à partir de PHP 7.2.17 et 7.3.4 pour libsqlite = 3.26.0. Antérieur à PHP 8.2.0 ce paramètre pouvait seulement être modifié en tant que INI_SYSTEM.
syslog.facility | "LOG_USER" | INI_SYSTEM | Disponible à partir de PHP 7.3.0.
syslog.filter | "no-ctrl" | INI_ALL | Disponible à partir de PHP 7.3.0.
syslog.ident | "php" | INI_SYSTEM | Disponible à partir de PHP 7.3.0.
sys_temp_dir | "" | INI_SYSTEM |
sysvshm.init_mem | 10000 | INI_SYSTEM |
tidy.default_config | "" | INI_SYSTEM |
tidy.clean_output | "0" | INI_USER |
track_errors | "0" | INI_ALL | Obsolète à partir de PHP 7.2.0, supprimée à partir de PHP 8.0.0.
unserialize_callback_func | null | INI_ALL |
unserialize_max_depth | "4096" | INI_ALL | Disponible à partir de PHP 7.4.0.
uploadprogress.file.filename_template | "/tmp/upt_%s.txt" | INI_ALL |
upload_max_filesize | "2M" | INI_PERDIR |
max_file_uploads | 20 | INI_SYSTEM |
upload_tmp_dir | null | INI_SYSTEM |
url_rewriter.hosts | "" | INI_ALL | Disponible à partir de PHP 7.1.0.
url_rewriter.tags | "form=" | INI_ALL | Antérieur à PHP 7.1.0, la valeur par défaut était "a=href,area=href,frame=src,form=,fieldset=".
user_agent | null | INI_ALL |
user_dir | null | INI_SYSTEM |
user_ini.cache_ttl | "300" | INI_SYSTEM |
user_ini.filename | ".user.ini" | INI_SYSTEM |
uopz.disable | "0" | INI_SYSTEM | Disponible à partir de uopz 5.0.2
uopz.exit | "0" | INI_SYSTEM | Disponible à partir de uopz 6.0.1
uopz.overloads | "1" | INI_SYSTEM | Disponible à partir de uopz 2.0.2. Supprimé à partir de uopz 5.0.0.
variables_order | "EGPCS" | INI_PERDIR |
windows.show_crt_warning | "0" | INI_ALL |
xbithack | "0" | INI_ALL |
xmlrpc_errors | "0" | INI_SYSTEM |
xmlrpc_error_number | "0" | INI_ALL |
yaz.keepalive | "120" | INI_ALL |
yaz.log_mask | null | INI_ALL | Disponible à partir de yaz 1.0.3.
zend.assertions | "1" | INI_ALL |
zend.detect_unicode | "1" | INI_ALL |
zend.enable_gc | "1" | INI_ALL |
zend.multibyte | "0" | INI_PERDIR |
zend.script_encoding | null | INI_ALL |
zend.signal_check | "0" | INI_SYSTEM |
zend_extension | null | php.ini only |
zlib.output_compression | "0" | INI_ALL |
zlib.output_compression_level | "-1" | INI_ALL |
zlib.output_handler | "" | INI_ALL |


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=] | INI_SYSTEM |
[PATH=] | INI_SYSTEM |

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 environnement de développement peuvent varier.

Options du langage

Options de configuration
Nom | Défaut | Modifiable | Historique
short_open_tag | "1" | INI_ALL |
precision | "14" | INI_ALL |
serialize_precision | "-1" | INI_ALL | Antérieur à PHP 7.1.0, la valeur par défaut était 17.
disable_functions | "" | INI_SYSTEM uniquement |
disable_classes | "" | php.ini only |
exit_on_timeout | "" | INI_ALL |
expose_php | "1" | php.ini uniquement |
hard_timeout | "2" | INI_SYSTEM | Disponible à partir de PHP 7.1.0.
zend.exception_ignore_args | "0" | INI_ALL | Disponible à partir de PHP 7.4.0
zend.multibyte | "0" | INI_ALL |
zend.script_encoding | NULL | INI_ALL |
zend.detect-unicode | NULL | INI_ALL |
zend.signal_check | "0" | INI_SYSTEM |
zend.assertions | "1" | INI_ALL avec des restrictions |
zend.exception_string_param_max_len | "15" | INI_ALL | Disponible à partir de PHP 8.0.0.

Voici un éclaircissement sur l'utilisation des directives de configuration.

short_open_tag bool

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 n'affecte pas l'utilisation de <?=, qui est toujours disponible.

precision int
Le nombre de décimales significatives à afficher dans les nombres à virgule flottante. -1 signifie que le meilleur algorithme pour arrondir ce nombre sera utilisé.
serialize_precision int
Le nombre de chiffres significatifs conservés lors de la sérialisation des nombres à virgule flottante. -1 signifie que le meilleur algorithme pour arrondir ce nombre sera utilisé.
expose_php bool

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).

disable_functions string

Cette directive vous permet de désactiver certaines fonctions. Elle prend une liste de noms de fonction délimités par une virgule.

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 la définir dans le fichier httpd.conf.

disable_classes string
Cette directive vous permet de désactiver certaines classes. Elle prend une liste de noms de classes délimités par une virgule. Cette directive doit être définie dans le php.ini. Par exemple, vous ne pouvez pas la définir dans le fichier httpd.conf.
zend.assertions int
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.exception_string_param_max_len int
La longueur maximale des arguments fonction de chaînes dans les traces de piles convertit sous forme de chaîne. Doit être dans l'intervalle entre "0" et "1000000".
hard_timeout int

Quand le timeout défini dans max_execution_time est atteint, le runtime PHP détruira les ressources gracieusement. Si quelque chose se coince quand ceci se produit, le hard timeout se déclenchera pour le nombre de secondes défini. Quand le hard timeout est atteint, PHP quittera de manière non gracieuse. Quand défini à 0, le hard timeout ne s'activera jamais.

Quand PHP termine d'un hard timeout, ça ressemblera à quelque chose du genre :

Fatal error: Maximum execution time of 30+2 seconds exceeded (terminated) in Unknown on line 0

zend.exception_ignore_args bool

Exclut les arguments dans les stack traces générées depuis les exceptions.

zend.multibyte bool

Active l'analyse lexicale des fichiers PHP dans des encodages multioctets. 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 multioctets. Les encodages compatibles 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_encoding vers mbstring.internal_encoding, comme si mb_convert_encoding() avait été appelé.

zend.detect_unicode bool

Vérifie le BOM (Byte Order Mark) et regarde si le fichier contient des caractères multioctets valides. Cette détection est effectuée avant le lancement de la fonction __halt_compiler(). Disponible uniquement en mode Zend multioctets.

zend.signal_check bool

Vérifie si un gestionnaire de signaux de remplacement est utilisé lors de l'arrêt.

exit_on_timeout bool

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 consistant. 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" | INI_ALL |

Voici un éclaircissement sur l'utilisation des directives de configuration.

memory_limit int

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.

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 | "4M" | INI_SYSTEM | Antérieur à PHP 7.0.16 et 7.1.2, la valeur par défaut était "16K"
realpath_cache_ttl | "120" | INI_SYSTEM |

Note:

Utiliser open_basedir désactivera le cache realpath.

Voici un éclaircissement sur l'utilisation des directives de configuration.

realpath_cache_size int

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 grande. 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épendante du système.

realpath_cache_ttl int

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 | "&" | INI_ALL |
arg_separator.input | "&" | INI_PERDIR |
variables_order | "EGPCS" | INI_PERDIR |
request_order | "" | INI_SYSTEM|INI_PERDIR |
auto_globals_jit | "1" | INI_PERDIR |
register_argc_argv | "1" | INI_PERDIR |
enable_post_data_reading | "1" | INI_PERDIR |
post_max_size | "8M" | INI_PERDIR |
auto_prepend_file | NULL | INI_PERDIR |
auto_append_file | NULL | INI_PERDIR |
default_mimetype | "text/html" | INI_ALL |
default_charset | "UTF-8" | INI_ALL |
input_encoding | "" | INI_ALL |
output_encoding | "" | INI_ALL |
internal_encoding | "" | INI_ALL |

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, mais ne créera pas $_ENV, $_GET, et $_COOKIE. Le fait de définir cet ordre à "" signifie qu'aucune superglobals ne sera définie.

Avertissement

En SAPIs CGI et FastCGI, $_SERVER est également peuplé de valeurs 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 bool

Quand cette directive est activée, les variables SERVER , REQUEST 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.

Avertissement

L'utilisation des variables SERVER, REQUEST 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_argc_argv bool
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.
enable_post_data_reading bool
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 int
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 octets, 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

"UTF-8" est la valeur par défaut et celle-ci est utilisée 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

Ce paramètre est utilisé pour les modules multibytes tels que mbstring et iconv. Vide par défaut.

output_encoding string

Ce paramètre est utilisé pour les modules multibytes tels que mbstring et iconv. Vide par défaut.

internal_encoding string

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é.

Chemins et répertoires

Options de configuration
Nom | Défaut | Modifiable | Historique
include_path | ".;/chemin/vers/php/pear" | INI_ALL |
open_basedir | NULL | INI_ALL |
doc_root | NULL | INI_SYSTEM |
user_dir | NULL | INI_SYSTEM |
user_ini.cache_ttl | "300" | INI_SYSTEM |
user_ini.filename | ".user.ini" | INI_SYSTEM |
extension_dir | "/chemin/vers/php" | INI_SYSTEM |
extension | NULL | php.ini uniquement |
zend_extension | NULL | php.ini uniquement |
cgi.check_shebang_line | "1" | INI_SYSTEM |
cgi.discard_path | "0" | INI_SYSTEM |
cgi.fix_pathinfo | "1" | INI_SYSTEM |
cgi.force_redirect | "1" | INI_SYSTEM |
cgi.nph | "0" | INI_SYSTEM |
cgi.redirect_status_env | NULL | INI_SYSTEM |
cgi.rfc2616_headers | "0" | INI_ALL |
fastcgi.impersonate | "0" | INI_SYSTEM |
fastcgi.logging | "1" | INI_SYSTEM |

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 E_WARNING ou de type E_ERROR. 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.

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ée avec l'open_basedir est un nom de dossier, et non pas un préfixe.

Par défaut, tous les fichiers peuvent être ouverts.

Note:

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.

Note:

Utiliser open_basedir définira realpath_cache_size à 0 et ainsi désactive le cache realpath.

Attention

open_basedir est juste mesure de protection supplémentaire, et n'est en aucun cas exhaustive, et ne peut donc pas être dépendu quand la sécurité est nécessaire.

doc_root string

Le dossier racine de PHP sur le serveur. Uniquement utilisé si non vide. 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_ini.cache_ttl int

user_ini.filename string

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. Il est recommandé de spécifier un chemin absolut. Voir aussi enable_dl et dl().

extension string

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 XDebug) à charger lors du démarrage de PHP.

cgi.check_shebang_line bool

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 bool

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 capables de contourner la sécurité .htaccess.

cgi.fix_pathinfo bool

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 bool

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 bool

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 sachiez 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ée. 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 bool

Active la journalisation SAPI avec FastCGI. Activé par défaut.

Chargement de fichiers

Options de configuration
Nom | Défaut | Modifiable | Historique
file_uploads | "1" | INI_SYSTEM |
upload_tmp_dir | NULL | INI_SYSTEM |
max_input_nesting_level | 64 | INI_PERDIR |
max_input_vars | 1000 | INI_PERDIR |
upload_max_filesize | "2M" | INI_PERDIR |
max_file_uploads | 20 | INI_PERDIR |

Voici un éclaircissement sur l'utilisation des directives de configuration.

file_uploads bool

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 int

La taille maximale en octets d'un fichier téléversé.

post_max_size doit être plus large que cette valeur.

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 int

Le nombre maximum de fichiers pouvant être envoyés simultanément. 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" | INI_SYSTEM | Supprimé à partir de PHP 7.2.0

Voici un éclaircissement sur l'utilisation des directives de configuration.

sql.safe_mode bool

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.

Avertissement

Cette fonctionnalité a été SUPPRIMÉE à partir de PHP 7.2.0.

Spécifique à Windows

Options de configuration spécifiques à Windows
Nom | Défaut | Modifiable | Historique
windows.show_crt_warning | "0" | INI_ALL |

Voici un éclaircissement sur l'utilisation des directives de configuration.

windows.show_crt_warning bool

This directive shows the Windows CRT warnings when enabled.


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
  • APCu
  • Les tableaux
  • BC Math
  • Bzip2
  • Calendar
  • Classes/Objets
  • CommonMark
  • COM
  • Componere
  • ctype
  • CUBRID
  • cURL
  • Date/Heure
  • DBA
  • dBase
  • Direct IO
  • Les dossiers
  • DOM
  • Data Structures
  • Eio
  • Enchant
  • Gestion des erreurs
  • Ev
  • Event
  • Exécution de programme
  • Exif
  • Expect
  • FANN
  • FDF
  • FFI
  • Fileinfo
  • Système de fichiers
  • Filter
  • Gestionnaire de processus FastCGI
  • FTP
  • Gestion des fonctions
  • Gearman
  • Gender
  • GeoIP
  • Gettext
  • Gmagick
  • GMP
  • GnuPG
  • Hash
  • HRTime
  • Firebird/InterBase
  • IBM DB2
  • iconv
  • Igbinary
  • GD
  • ImageMagick
  • IMAP
  • Options PHP et informations PHP
  • Inotify
  • intl
  • JSON
  • LDAP
  • libxml
  • Lua
  • LuaSandbox
  • LZF
  • Mail
  • Mailparse
  • Math
  • Chaînes de caractères multioctets
  • Mcrypt
  • Memcache
  • Memcached
  • Mhash
  • Misc.
  • mqseries
  • MySQL (Original)
  • Mysql_xdevapi
  • MySQLi
  • Mysqlnd
  • Réseau
  • OAuth
  • OCI8
  • OPcache
  • OpenAL
  • OpenSSL
  • Contrôle de l'affichage
  • parallel
  • Parle
  • Table de hachage de mot de passe
  • PCNTL
  • PCRE
  • 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
  • phpdbg
  • POSIX
  • PS
  • Pspell
  • pthreads
  • Quickhash
  • Radius
  • Random
  • Rar
  • Readline
  • Recode
  • Réflexion
  • Rnp
  • RpmInfo
  • RRD
  • runkit7
  • ScoutAPM
  • Seaslog
  • Semaphore
  • Sessions
  • Mémoire partagée
  • Simdjson
  • SimpleXML
  • SNMP
  • SOAP
  • Sockets
  • Sodium
  • Solr
  • SPL
  • SQLite3
  • SQLSRV
  • ssdeep
  • SSH2
  • Statistics
  • Stomp
  • Flux
  • Chaîne de caractères
  • SVM
  • SVN
  • Swoole
  • Sync
  • Taint
  • TCP
  • Tidy
  • Tokenizer
  • Trader
  • UI
  • ODBC
  • uopz
  • URLs
  • V8js
  • Gestion des variables
  • var_representation
  • Varnish
  • WDDX
  • win32service
  • WinCache
  • wkhtmltox
  • xattr
  • xdiff
  • Xhprof
  • XLSWriter
  • Analyseur syntaxique XML
  • XMLDiff
  • XMLReader
  • XML-RPC
  • XMLWriter
  • XSL
  • Yac
  • Yaconf
  • Yaf
  • Yaml
  • Yar
  • YAZ
  • Zip
  • Zlib
  • 0MQ messaging
  • 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

  • Gestionnaire de processus FastCGI

  • Gestion des fonctions

  • Hash

  • Options PHP et informations PHP

  • JSON

  • Mail

  • Math

  • Misc.

  • Réseau

  • OPcache

  • Contrôle de l'affichage

  • Table de hachage de mot de passe

  • PCRE

  • Random

  • Réflexion

  • SPL

  • Flux

  • Chaîne de caractères

  • URLs

  • Gestion des variables

Extensions embarquées

Ces extensions sont embarquées avec PHP.

  • Apache

  • BC Math

  • Calendar

  • COM

  • ctype

  • DBA

  • Exif

  • FFI

  • Fileinfo

  • Filter

  • FTP

  • HRTime

  • iconv

  • GD

  • intl

  • Chaînes de caractères multioctets

  • Mhash

  • PCNTL

  • PDO

  • Phar

  • phpdbg

  • POSIX

  • Semaphore

  • Sessions

  • Mémoire partagée

  • Sockets

  • SQLite3

  • Tokenizer

  • Zlib

Extensions externes

Ces extensions sont fournies avec PHP mais pour pouvoir les compiler, des bibliothèques externes peuvent être nécessaires.

  • Bzip2

  • cURL

  • DOM

  • Enchant

  • Gettext

  • GMP

  • IMAP

  • LDAP

  • libxml

  • 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

  • SimpleXML

  • SNMP

  • SOAP

  • Sodium

  • Tidy

  • ODBC

  • 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.

  • APCu

  • CommonMark

  • Componere

  • CUBRID

  • dBase

  • Direct IO

  • Data Structures

  • Eio

  • Ev

  • Event

  • Expect

  • FANN

  • FDF

  • Gearman

  • Gender

  • GeoIP

  • Gmagick

  • GnuPG

  • Firebird/InterBase

  • IBM DB2

  • Igbinary

  • ImageMagick

  • Inotify

  • Lua

  • LuaSandbox

  • LZF

  • Mailparse

  • Mcrypt

  • Memcache

  • Memcached

  • mqseries

  • MySQL (Original)

  • Mysql_xdevapi

  • OAuth

  • OpenAL

  • parallel

  • Parle

  • CUBRID (PDO)

  • IBM (PDO)

  • Informix (PDO)

  • MS SQL Server (PDO)

  • PS

  • pthreads

  • Quickhash

  • Radius

  • Rar

  • Recode

  • Rnp

  • RpmInfo

  • RRD

  • runkit7

  • ScoutAPM

  • Seaslog

  • Simdjson

  • Solr

  • SQLSRV

  • ssdeep

  • SSH2

  • Statistics

  • Stomp

  • SVM

  • SVN

  • Swoole

  • Sync

  • Taint

  • TCP

  • Trader

  • UI

  • uopz

  • V8js

  • var_representation

  • Varnish

  • WDDX

  • win32service

  • WinCache

  • wkhtmltox

  • xattr

  • xdiff

  • Xhprof

  • XLSWriter

  • XMLDiff

  • XML-RPC

  • Yac

  • Yaconf

  • Yaf

  • Yaml

  • Yar

  • YAZ

  • 0MQ messaging

  • 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.

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.

  • ImageMagick

  • MS SQL Server (PDO)

  • Firebird (PDO)

  • Oracle (PDO)

  • PS

  • Rnp

  • 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 a 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 à tout 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
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
fputs | fwrite() | Base syntax
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
ldap_close | ldap_unbind() | LDAP
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
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
ociassignelem | OCICollection::assignElem | OCI8
ocibindbyname | oci_bind_by_name() | OCI8
ocicancel | oci_cancel() | OCI8
ocicloselob | OCILob::close | OCI8
ocicollappend | OCICollection::append | OCI8
ocicollassign | OCICollection::assign | OCI8
ocicollmax | OCICollection::max | OCI8
ocicollsize | OCICollection::size | OCI8
ocicolltrim | OCICollection::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 | OCICollection::free | OCI8
ocifreecursor | oci_free_statement() | OCI8
ocifreedesc | oci_free_descriptor() | OCI8
ocifreestatement | oci_free_statement() | OCI8
ocigetelem | OCICollection::getElem | OCI8
ociinternaldebug | oci_internal_debug() | OCI8
ociloadlob | OCILob::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 | OCILob::save | OCI8
ocisavelobfile | OCILob::import | OCI8
ociserverversion | oci_server_version() | OCI8
ocisetprefetch | oci_set_prefetch() | OCI8
ocistatementtype | oci_statement_type() | OCI8
ociwritelobtofile | OCILob::export | OCI8
ociwritetemporarylob | OCILob::writeTemporary | OCI8
odbc_do | odbc_exec() | ODBC
odbc_field_precision | odbc_field_len() | ODBC
pg_clientencoding | pg_client_encoding() | PostgreSQL
pg_setclientencoding | pg_set_client_encoding() | PostgreSQL
pos | current() | Base syntax
recode | recode_string() | Recode
show_source | highlight_file() | Base syntax
sizeof | count() | Base syntax
snmpwalkoid | snmprealwalk() | SNMP
strchr | strstr() | Base syntax
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 ni exhaustives.


Liste de mots-clés

Ces mots ont un sens spécial pour PHP. Certains représentent des objets ressemblant à des fonctions, d'autres à des constantes, et ainsi de suite, mais ils n'en sont pas vraiment : ce sont des structures de langage. Les mots clés suivant ne peuvent pas être utilisés comme nom de constante, de classe ou de fonction. Ils sont cependant autorisés comme nom de propriété, constante et de méthode 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 | 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 | fn (à partir de PHP 7.4) | for | foreach
function | global | goto | if | implements
include
include_once | instanceof | insteadof | interface
isset() | list() | match (à partir de PHP 8.0) | namespace | new
or | print | private | protected | public
require | readonly (à partir de PHP 8.1.0) * | require_once | return | static
switch | throw | trait | try | unset()
use | var | while | xor | yield
yield from |  |  |  |

* readonly peut être utilisé comme nom de fonction.

Constantes utilisées lors de la compilation


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
Une classe vide générique crée par la conversion en objet ou le résultat de diverses fonctions standard.
__PHP_Incomplete_Class
Peut être créé par la fonction unserialize().
Exception
ErrorException
php_user_filter
Closure
La classe prédéfinie finale Closure est utilisée pour représenter les fonctions anonymes.
Generator
La classe finale prédéfinie Generator est utilisée pour représenter les générateurs.
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 cœur de PHP. Cela inclut notamment PHP, le moteur Zend et les modules SAPI.

PHP_VERSION (string)
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 (int)
La version majeure courante de PHP sous la forme d'une chaîne de caractères (e.g., int(5) depuis la version "5.2.7-extra").
PHP_MINOR_VERSION (int)
La version mineure courante de PHP sous la forme d'une chaîne de caractères (e.g., int(2) depuis la version "5.2.7-extra").
PHP_RELEASE_VERSION (int)
La version stable courante de PHP sous la forme d'une chaîne de caractères (e.g., int(7) depuis la version "5.2.7-extra").
PHP_VERSION_ID (int)
La version courante de PHP sous la forme d'un entier, utile pour la comparaison de versions (e.g., int(50207) depuis la version "5.2.7-extra").
PHP_EXTRA_VERSION (string)
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.
ZEND_THREAD_SAFE (bool)
Indique si la version actuelle de PHP a été compilée avec prise en charge des threads.
ZEND_DEBUG_BUILD (bool)
Indique si la version actuelle de PHP est une compilation de débogage.
PHP_ZTS (int)
Indique si la version actuelle de PHP a été compilée avec prise en charge des threads.
PHP_DEBUG (int)
Indique si la version actuelle de PHP est une compilation de débogage.
PHP_MAXPATHLEN (int)
La longueur maximale des noms de fichiers (y compris le chemin) supportée par ce binaire PHP.
PHP_OS (string)
The operating system PHP was built for.
PHP_OS_FAMILY (string)
Le système d'exploitation pour lequel PHP a été compilé. Un de 'Windows', 'BSD', 'Darwin', 'Solaris', 'Linux' ou 'Unknown'. Disponible à partir de PHP 7.2.0.
PHP_SAPI (string)
L'API du serveur pour ce binaire PHP. Voir aussi php_sapi_name().
PHP_EOL (string)
Le symbole correct pour la fin de ligne pour cette plateforme.
PHP_INT_MAX (int)
Le plus grand entier supporté par ce binaire de PHP. Habituellement, int(2147483647) sur les systèmes 32 bit et int(9223372036854775807) sur les systèmes 64 bit.
PHP_INT_MIN (int)
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. Habituellement, PHP_INT_MIN === ~PHP_INT_MAX.
PHP_INT_SIZE (int)
La taille d'un entier, en octets, dans cette version de PHP.
PHP_FLOAT_DIG (int)
Nombre de décimales pouvant être arrondies dans un nombre à virgule flottante et retournées sans perte de précision. Disponible à partir de PHP 7.2.0.
PHP_FLOAT_EPSILON (float)
Le plus petit nombre à virgule flottante positif supporté, de sorte que x + 1.0 != 1.0. Disponible à partir de PHP 7.2.0.
PHP_FLOAT_MIN (float)
Le plus petit nombre à virgule flottante positif supporté. Si vous avez besoin de la plus petite représentation négative de nombre flottant, utiliser - PHP_FLOAT_MAX. Disponible à partir de PHP 7.2.0.
PHP_FLOAT_MAX (float)
Le plus grand nombre à virgule flottante supporté. Disponible à partir de PHP 7.2.0.
DEFAULT_INCLUDE_PATH (string)
PEAR_INSTALL_DIR (string)
PEAR_EXTENSION_DIR (string)
PHP_EXTENSION_DIR (string)
Le répertoire par défaut où chercher pour des extensions chargeable dynamiquement (sauf outrepassé par extension_dir). Par défaut PHP_PREFIX (ou PHP_PREFIX . "\\ext" sur Windows).
PHP_PREFIX (string)
La valeur de --prefix qui a été définie lors de la configuration. Sur Windows, c'est la valeur de --with-prefix qui a été définie lors de la configuration.
PHP_BINDIR (string)
La valeur de --bindir qui a été définie lors de la configuration. Sur Windows, c'est la valeur de --with-prefix qui a été définie lors de la configuration.
PHP_BINARY (string)
Spécifie le chemin vers le binaire PHP lors de l'exécution du script.
PHP_MANDIR (string)
Spécifie le chemin d'installation des pages man.
PHP_LIBDIR (string)
PHP_DATADIR (string)
PHP_SYSCONFDIR (string)
PHP_LOCALSTATEDIR (string)
PHP_CONFIG_FILE_PATH (string)
PHP_CONFIG_FILE_SCAN_DIR (string)
PHP_SHLIB_SUFFIX (string)
Le suffixe de la plate-forme de compilation pour les bibliothèques partagées, comme "so" (sous la plupart des Unix) ou "dll" (Windows).
PHP_FD_SETSIZE (int)
Nombre maximal de descripteurs de fichiers pour les appels système sélectionnés. Disponible à partir de PHP 7.1.0.
E_ERROR (int)
Constante de rapport d'erreur
E_WARNING (int)
Constante de rapport d'erreur
E_PARSE (int)
Constante de rapport d'erreur
E_NOTICE (int)
Constante de rapport d'erreur
E_CORE_ERROR (int)
Constante de rapport d'erreur
E_CORE_WARNING (int)
Constante de rapport d'erreur
E_COMPILE_ERROR (int)
Constante de rapport d'erreur
E_COMPILE_WARNING (int)
Constante de rapport d'erreur
E_USER_ERROR (int)
Constante de rapport d'erreur
E_USER_WARNING (int)
Constante de rapport d'erreur
E_USER_NOTICE (int)
Constante de rapport d'erreur
E_RECOVERABLE_ERROR (int)
Constante de rapport d'erreur.
E_DEPRECATED (int)
Constante de rapport d'erreur.
E_USER_DEPRECATED (int)
Constante de rapport d'erreur.
E_ALL (int)
Constante de rapport d'erreur
E_STRICT (int)
Constante de rapport d'erreur.
__COMPILER_HALT_OFFSET__ (int)
true (bool)
Voir Booléens.
false (bool)
Voir Booléens.
null (null)
Voir Null.
PHP_WINDOWS_EVENT_CTRL_C (int)
Évènement Windows CTRL+C. Disponible à partir de PHP 7.4.0 (Windows uniquement).
PHP_WINDOWS_EVENT_CTRL_BREAK (int)
Évènement Windows CTRL+BREAK. Disponible à partir de PHP 7.4.0 (Windows uniquement).
PHP_CLI_PROCESS_TITLE (bool)
Indique si le réglage et la récupération du titre du processus sont disponibles. Disponible uniquement sous le SAPI CLI.
STDERR (resource)
Un flux déjà ouvert vers stderr. Disponible uniquement sous le SAPI CLI.
STDIN (resource)
Un flux déjà ouvert vers stdin. Disponible uniquement sous le SAPI CLI.
STDOUT (resource)
Un flux déjà ouvert vers stdout. Disponible uniquement sous le SAPI CLI.

Voir aussi les constantes magiques.

Constantes standards prédéfinies

Toutes les constantes des extensions cœur 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. Antérieur à PHP 8.0, il était également interdit de les utiliser dans les espaces de noms.

Mots réservés
int | float | bool | string
true | false | null | void (à partir de PHP 7.1)
iterable (à partir de PHP 7.1) | object (à partir de PHP 7.2) | mixed (à partir de PHP 8.0) | never (à partir de PHP 8.1)

La liste des mots suivants présente une particularité. Bien qu'ils puissent être utilisés dans les noms de classe, d'interface, et de trait, il convient d'éviter de les utiliser sachant qu'ils peuvent être utilisés dans les futures versions de PHP.

Soft reserved words
enum resource numeric


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
AddressInfo | socket_addrinfo_lookup() | socket_addrinfo_bind(), socket_addrinfo_connect(), socket_addrinfo_explain(), | None | AddressInfo (sockets extension)
bzip2 | bzopen() | bzerrno(), bzerror(), bzerrstr(), bzflush(), bzread(), bzwrite() | bzclose() | Fichier bzip2
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() | cURL handle
curl_multi | curl_multi_init() | curl_multi_errno(), curl_multi_exec(), curl_multi_info_read(), curl_multi_remove_handle(), curl_multi_select(), curl_multi_setopt() | curl_multi_close() | cURL multi handle
curl_share | curl_share_init() | curl_share_errno(), curl_share_setopt() | curl_share_close() | cURL share handle
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
enchant_broker | enchant_broker_init() | enchant_broker_describe(), enchant_broker_dict_exists(), enchant_broker_get_dict_path(), enchant_broker_get_error(), enchant_broker_list_dicts(), enchant_broker_set_dict_path(), enchant_broker_set_ordering() | enchant_broker_free() | Enchant broker (antérieur à PHP 8.0.0)
enchant_dict | enchant_broker_request_dict() enchant_broker_request_pwl_dict() | enchant_dict_add_to_personal(), enchant_dict_add_to_session(), enchant_dict_check(), enchant_dict_describe(), enchant_dict_get_error(), enchant_dict_is_in_session(), enchant_dict_store_replacement(), enchant_dict_suggest() | enchant_broker_free_dict() | Enchant dictionary (antérieur à PHP 8.0.0)
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() | Connexion FTP (antérieur à PHP 8.1.0)
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(), 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 (antérieur à PHP 8.0.0)
gd font | imageloadfont() | imagechar(), imagecharup(), imagefontheight() | Aucun | Police pour GD (antérieur à PHP 8.1.0)
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 IMAP ou POP3 (antérieur à PHP 8.1.0)
interbase blob | ibase_blob_create(), ibase_blob_import(), ibase_blob_open() | ibase_blob_add(), ibase_blob_cancel(), ibase_blob_echo(), ibase_blob_get(), ibase_blob_info() | ibase_blob_close()
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
ldap link (antérieur à PHP 8.1.0) | 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 (antérieur à PHP 8.1.0) | 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 (antérieur à PHP 8.1.0)
mailparse_mail_structure | mailparse_msg_create() mailparse_msg_parse_file() | mailparse_msg_extract_part_file() mailparse_msg_extract_part() mailparse_msg_extract_whole_part_file() mailparse_msg_get_part_data() mailparse_msg_get_part() mailparse_msg_get_structure() mailparse_msg_parse() | mailparse_msg_free()
mysql link | mysql_connect() | mysql_affected_rows(), 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_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() | OCICollection::append(), OCICollection::assign(), OCICollection::assignElem(), OCICollection::getElem(), OCICollection::max(), OCICollection::size(), OCICollection::trim() | OCICollection::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() | OCILob::append(), OCILob::close(), OCILob::eof(), OCILob::erase(), OCILob::export(), OCILob::flush(), OCILob::getBuffering(), OCILob::import(), OCILob::load(), OCILob::read(), OCILob::rewind(), OCILob::save(), OCILob::saveFile(), OCILob::seek(), OCILob::setBuffering(), OCILob::size(), OCILob::tell(), OCILob::truncate(), OCILob::write(), OCILob::writeTemporary(), OCILob::writeToFile(), oci_lob_copy(), oci_lob_is_equal() | OCILob::free() | Objets larges 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 persistant 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 | Link to Birdstep database (antérieur à PHP 7.3.0)
birdstep result | Link to Birdstep database (antérieur à PHP 7.3.0)
OpenSSL key | openssl_get_privatekey(), openssl_get_publickey() | openssl_sign(), openssl_seal(), openssl_open(), openssl_verify() | openssl_free_key() | Clé OpenSSL
OpenSSL X.509 | openssl_x509_read() | openssl_x509_parse(), openssl_x509_checkpurpose() | openssl_x509_free() | Clé publique
Objet de grande taille pgsql (antérieur à PHP 8.1.0) | 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 (antérieur à PHP 8.1.0) | 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_meta_data(), 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_meta_data(), pg_convert(), pg_insert(), pg_select(), pg_delete(), pg_update() | Aucun | Lien persistant vers une base de données PostGreSQL
pgsql result (antérieur à PHP 8.1.0) | 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
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 (antérieur à PHP 8.1.0)
pspell config | pspell_config_create() | pspell_new_config() | Aucun | Configuration Pspell (antérieur à PHP 8.1.0)
shmop | shmop_open() | shmop_read(), shmop_write(), shmop_size(), shmop_delete() | shmop_close() | Handle d'un bloc de mémoire partagée (antérieur à PHP 8.0.0)
Socket | socket_accept(), socket_addrinfo_bind(), socket_addrinfo_connect(), socket_create(), socket_create_listen(), socket_import_stream(), socket_wsaprotocol_info_import() | socket_accept(), socket_bind(), socket_clear_error(), socket_connect(), socket_get_option(), socket_getpeername(), socket_getsockname(), socket_last_error(), socket_listen(), socket_read(), socket_recv(), socket_recvfrom(), socket_recvmsg(), socket_select(), socket_send(), socket_sendmsg(), socket_sendto(), socket_set_block(), socket_set_nonblock(), socket_set_option(), socket_shutdown(), socket_write(), socket_wsaprotocol_info_export(), socket_wsaprotocol_info_release() | socket_close() | Socket (sockets extension)
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 Handle
SSH2 Session | ssh2_connect() | ssh2_disconnect()
SSH2 Listener | ssh2_forward_listen()
SSH2 SFTP | ssh2_sftp()
SSH2 Publickey Subsystem | ssh2_publickey_init()
sysvmsg queue | msg_get_queue() | msg_queue_exists(), msg_receive(), msg_send(), msg_set_queue(), msg_stat_queue() | msg_remove_queue() | System V Message Queue (antérieur à PHP 8.0.0)
sysvsem | sem_get() | sem_acquire() | sem_release() | Sémaphore Système V (antérieur à PHP 8.0.0)
sysvshm | shm_attach() | shm_remove(), shm_put_var(), shm_get_var(), shm_remove_var() | shm_detach() | Mémoire partagée Système V (antérieur à PHP 8.0.0)
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 (antérieur à PHP 8.0.0)
zlib | gzopen() | gzeof(), gzgetc(), gzgets(), gzgetss(), gzpassthru(), gzputs(), gzread(), gzrewind(), gzseek(), gztell(), gzwrite() | gzclose() | Fichier compressé Gzip
zlib.deflate | deflate_init() | deflate_add() | None | Contexte de décompression incrémentale (antérieur à PHP 8.0.0)
zlib.inflate | inflate_init() | inflate_add(), inflate_get_read_len(), inflate_get_status() | None | Contexte de compression incrémentale (antérieur à PHP 8.0.0)


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

L'utilisation de ce filtre est équivalente à traiter toutes les données du flux à travers la fonction str_rot13().

Exemple #1 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

L'utilisation de ce filtre est équivalente à traiter toutes les données du flux à travers la fonction strtoupper().

Exemple #2 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

L'utilisation de ce filtre est équivalente à traiter toutes les données du flux à travers la fonction strtolower().

Exemple #3 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

L'utilisation de ce filtre est équivalente à traiter toutes les données du flux à travers la fonction strip_tags(). Le filtre accepte des paramètres sous deux formats : Soit comme une chaîne de caractères contenant une liste de balises, similaire au second paramètre de la fonction strip_tags(), soit en tant qu'un tableau de noms de balises.

Avertissement

Cette fonctionnalité est OBSOLÈTE à partir de PHP 7.3.0. Dépendre de cette fonctionnalité est fortement déconseillé.

Exemple #4 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 agrandi <h1>en un titre 1</h1>\n");
fclose($fp);
/* affiche : Ce texte en gras finit par être agrandi 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 agrandi <h1>en un titre 1</h1>\n");
fclose($fp);
/* affiche : Ce texte en gras finit par être agrandi en un titre 1 */
?>


Filtres de conversion

Comme pour les filtres de chaîne de caractères, les filtres de conversion font ce que leur nom indique. Pour plus d'informations sur un filtre donné, se référer à la page du manuel de la fonction correspondante.

convert.base64-encode et convert.base64-decode

L'utilisation de ce filtre est équivalente à traiter toutes les données du flux à travers les fonctions base64_encode() et base64_decode() respectivement. convert.base64-encode supporte les paramètres sous forme de tableau associatif. Si line-length est fourni, la sortie base64 sera séparée en lignes de line-length caractères. Si line-break-chars est fourni, chaque bloc de caractères sera délimité par le caractère fourni. Ces paramètres donnent le même effet que la fonction base64_encode() utilisée conjointement avec chunk_split().

Exemple #1 convert.base64-encode & 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

L'utilisation de la version decode ce filtre est équivalente à traiter toutes les données du flux à travers la fonction quoted_printable_decode(). Il n'y a pas d'équivalent fonctionnel à convert.quoted-printable-encode. convert.quoted-printable-encode supporte les paramètres sous forme de tableau associatif. En plus des paramètres supportés par convert.base64-encode, convert.quoted-printable-encode accepte aussi les arguments booléen binary et force-encode-first. convert.base64-decode supporte uniquement le paramètre line-break-chars en tant qu'indicateur de type pour l'extraction de la charge codée.

Exemple #2 convert.quoted-printable-encode & 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 */
?>

convert.iconv.*

Les filtres convert.iconv.* sont disponibles, si le support de iconv est activé, et leurs usages sont équivalents à traiter toutes les données du flux avec iconv(). Ces filtres ne supportent pas de paramètres, mais s'attendent à la place à ce que le nom du filtre contienne l'encodage des données en saisie et de sortie, c.à.d. convert.iconv.<input-encoding>.<output-encoding> ou convert.iconv.<input-encoding>/<output-encoding> (les deux notations sont sémantiquement équivalentes).

Exemple #3 convert.iconv.*

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.iconv.utf-16le.utf-8');
fwrite($fp, "T\0h\0i\0s\0 \0i\0s\0 \0a\0 \0t\0e\0s\0t\0.\0\n\0");
fclose($fp);
/* Outputs: This is a test. */
?>


Filtres de compression

Alors que les enveloppes 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 cela, un filtre de compression peut être appliqué à tout moment sur n'importe quelle ressource de flux.

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 and zlib.inflate

zlib.deflate (compression) et zlib.inflate (décompression) 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 zlib : actuellement, 6. window est la taille du tampon 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 tant que valeur entier, au lieu d'un tableau.

Les filtres de compression zlib.* sont disponibles si le support de zlib est activé.

Exemple #1 zlib.deflate and 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 zlib.deflate simple

<?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 and bzip2.decompress

bzip2.compress et bzip2.decompress fonctionnent de la même manière que les filtres zlib décrits ci-dessus. Le filtre bzip2.compress accepte jusqu'à 2 paramètres, sous la forme d'un tableau associatif : blocks est une valeur entier, 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'effort fourni 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, ou en tant que l'élément small d'un tableau associatif. small, lorsque défini à 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.* sont disponibles si le support de bz2 est activé.

Exemple #3 bzip2.compress et bzip2.decompress

<?php
$param = array('blocks' => 9, 'work' => 0);

echo "Le fichier original fait " . strlen(LICENSE) . " octets de long.\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 fichier original fait 3288 octets de long.
Le fichier compressé fait 1488 octets de long.

*/
?>


Filtres de chiffrement

Les filtres de chiffrement sont particulièrement utiles pour le chiffrement des fichiers/flux.

mcrypt.* and mdecrypt.*

Avertissement

Cette fonctionnalité est OBSOLÈTE à partir de PHP 7.1.0. Dépendre de cette fonctionnalité est fortement déconseillé.

mcrypt.* et mdecrypt.* fournissent un système de chiffrement symétrique utilisant libmcrypt. Les deux jeux de filtres supportent les mêmes algorithmes disponibles à l'extension mcrypt sous la forme mcrypt.ciphername où ciphername est le nom du chiffrement qui sera transmis à mcrypt_module_open(). Les cinq paramètres suivants sont aussi disponibles :

Paramètres des filtres 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échiffrement avec Blowfish

<?php
//$key supposé être précédemment généré
$iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_CBC);
$iv = mcrypt_create_iv($iv_size, MCRYPT_DEV_URANDOM);
$fp = fopen('encrypted-file.enc', 'wb');
fwrite($fp, $iv);
$opts = array('mode'=>'cbc','iv'=>$iv, 'key'=>$key);
stream_filter_append($fp, 'mcrypt.blowfish', STREAM_FILTER_WRITE, $opts);
fwrite($fp, 'message to encrypt');
fclose($fp);

//déchiffrement...
$fp = fopen('encrypted-file.enc', 'rb');
$iv = fread($fp, $iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_CBC));
$opts = array('mode'=>'cbc','iv'=>$iv, 'key'=>$key)
stream_filter_append($fp, 'mdecrypt.blowfish', STREAM_FILTER_READ, $opts);
$data = rtrim(stream_get_contents($fp));//trims off null padding
fclose($fp);
echo $data;
?>

Exemple #2 Chiffrer un fichier en utilisant AES-128 CBC avec SHA256 HMAC

<?php
AES_CBC::encryptFile($password, "plaintext.txt", "encrypted.enc");
AES_CBC::decryptFile($password, "encrypted.enc", "decrypted.txt");

class AES_CBC
{
protected static $KEY_SIZES = array('AES-128'=>16,'AES-192'=>24,'AES-256'=>32);
protected static function key_size() { return self::$KEY_SIZES['AES-128']; } //default AES-128
public static function encryptFile($password, $input_stream, $aes_filename){
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$fin = fopen($input_stream, "rb");
$fc = fopen($aes_filename, "wb+");
if (!empty($fin) && !empty($fc)) {
fwrite($fc, str_repeat("_", 32) );//placeholder, SHA256 HMAC will go here later
fwrite($fc, $hmac_salt = mcrypt_create_iv($iv_size, MCRYPT_DEV_URANDOM));
fwrite($fc, $esalt = mcrypt_create_iv($iv_size, MCRYPT_DEV_URANDOM));
fwrite($fc, $iv = mcrypt_create_iv($iv_size, MCRYPT_DEV_URANDOM));
$ekey = hash_pbkdf2("sha256", $password, $esalt, $it=1000, self::key_size(), $raw=true);
$opts = array('mode'=>'cbc', 'iv'=>$iv, 'key'=>$ekey);
stream_filter_append($fc, 'mcrypt.rijndael-128', STREAM_FILTER_WRITE, $opts);
$infilesize = 0;
while (!feof($fin)) {
$block = fread($fin, 8192);
$infilesize+=strlen($block);
fwrite($fc, $block);
}
$block_size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$padding = $block_size - ($infilesize % $block_size);//$padding is a number from 1-16
fwrite($fc, str_repeat(chr($padding), $padding) );//perform PKCS7 padding
fclose($fin);
fclose($fc);
$hmac_raw = self::calculate_hmac_after_32bytes($password, $hmac_salt, $aes_filename);
$fc = fopen($aes_filename, "rb+");
fwrite($fc, $hmac_raw);//overwrite placeholder
fclose($fc);
}
}
public static function decryptFile($password, $aes_filename, $out_stream) {
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$hmac_raw = file_get_contents($aes_filename, false, NULL, 0, 32);
$hmac_salt = file_get_contents($aes_filename, false, NULL, 32, $iv_size);
$hmac_calc = self::calculate_hmac_after_32bytes($password, $hmac_salt, $aes_filename);
$fc = fopen($aes_filename, "rb");
$fout = fopen($out_stream, 'wb');
if (!empty($fout) && !empty($fc) && self::hash_equals($hmac_raw,$hmac_calc)) {
fread($fc, 32+$iv_size);//skip sha256 hmac and salt
$esalt = fread($fc, $iv_size);
$iv = fread($fc, $iv_size);
$ekey = hash_pbkdf2("sha256", $password, $esalt, $it=1000, self::key_size(), $raw=true);
$opts = array('mode'=>'cbc', 'iv'=>$iv, 'key'=>$ekey);
stream_filter_append($fc, 'mdecrypt.rijndael-128', STREAM_FILTER_READ, $opts);
while (!feof($fc)) {
$block = fread($fc, 8192);
if (feof($fc)) {
$padding = ord($block[strlen($block) - 1]);//assume PKCS7 padding
$block = substr($block, 0, 0-$padding);
}
fwrite($fout, $block);
}
fclose($fout);
fclose($fc);
}
}
private static function hash_equals($str1, $str2) {
if(strlen($str1) == strlen($str2)) {
$res = $str1 ^ $str2;
for($ret=0,$i = strlen($res) - 1; $i >= 0; $i--) $ret |= ord($res[$i]);
return !$ret;
}
return false;
}
private static function calculate_hmac_after_32bytes($password, $hsalt, $filename) {
static $init=0;
$init or $init = stream_filter_register("user-filter.skipfirst32bytes", "FileSkip32Bytes");
$stream = 'php://filter/read=user-filter.skipfirst32bytes/resource=' . $filename;
$hkey = hash_pbkdf2("sha256", $password, $hsalt, $iterations=1000, 24, $raw=true);
return hash_hmac_file('sha256', $stream, $hkey, $raw=true);
}
}
class FileSkip32Bytes extends php_user_filter
{
private $skipped=0;
function filter($in, $out, &$consumed, $closing) {
while ($bucket = stream_bucket_make_writeable($in)) {
$outlen = $bucket->datalen;
if ($this->skipped<32){
$outlen = min($bucket->datalen,32-$this->skipped);
$bucket->data = substr($bucket->data, $outlen);
$bucket->datalen = $bucket->datalen-$outlen;
$this->skipped+=$outlen;
}
$consumed += $outlen;
stream_bucket_append($out, $bucket);
}
return PSFS_PASS_ON;
}
}
class AES_128_CBC extends AES_CBC {
protected static function key_size() { return self::$KEY_SIZES['AES-128']; }
}
class AES_192_CBC extends AES_CBC {
protected static function key_size() { return self::$KEY_SIZES['AES-192']; }
}
class AES_256_CBC extends AES_CBC {
protected static function key_size() { return self::$KEY_SIZES['AES-256']; }
}


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

ssl://, tls://, sslv2:// & sslv3://.

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 deuxième 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.

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://.

  • 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.

Note: Les sockets du domaine Unix ne sont pas supportés sur Windows.


Comparaison de types en PHP

La table suivante résume les différents comportements de PHP avec les types et opérateurs de comparaison, stricte ou large. 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 bool 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, à l'exception de true auront 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() | bool : 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 | true | false | true | false
$x = ['a', 'b']; | array | false | false | true | true
$x = false; | bool | true | false | true | false
$x = true; | bool | 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 | [] | "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 | false* | false*
-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
[] | false | true | false | false | false | false | false | false | true | true | false | false
"php" | true | false | false | false* | false | false | false | false | false | false | true | false
"" | false | true | false | false* | false | false | false | false | true | false | false | true
* true antérieur à PHP 8.0.0.

Comparaison stricte avec ===
 | true | false | 1 | 0 | -1 | "1" | "0" | "-1" | null | [] | "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
[] | 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 jetons de l'analyseur

Diverses parties du langage PHP sont représentées en interne par des jetons. Un morceau de code qui contient une séquence invalide de jetons peut mener à des erreurs telles que Parse error: syntax error, unexpected token "==", expecting "(" in script.php on line 10." où le jeton == est représenté en interne par T_IS_EQUAL.

Le tableau suivant liste tous les jetons. Ils sont aussi disponibles en tant que constantes PHP.

Note: Utilisation des constantes T_*

Les valeurs des constantes T_* sont générées automatiquement en fonction de l'infrastructure sous-jacente de l'analyseur PHP. Ceci signifie que la valeur concrète d'un jeton peut changer entre deux versions de PHP. Ceci signifie que votre code ne doit jamais utiliser la valeur littérale des constantes T_* d'une version PHP X.Y.Z, pour fournir une certaine compatibilité entre plusieurs versions de PHP.

Pour utiliser les constantes T_* à travers plusieurs versions de PHP, les constantes indéfinies peuvent être définies par l'utilisateur (en utilisant des nombres larges tels que 10000) avec une stratégie approprié qui fonctionnera avec les deux versions de PHP et les valeurs de T_*.

<?php
// Antérieur à PHP 7.4.0, T_FN n'est pas définie.
defined('T_FN') || define('T_FN', 10001);

Jetons
Jeton | Syntaxe | Référence
T_ABSTRACT | abstract | Abstraction de classes
T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG | & | Déclarations de type (disponible à partir de PHP 8.1.0)
T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG | & | Déclarations de type (disponible à partir de PHP 8.1.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_ATTRIBUTE | #[ | attributs (disponible à partir de PHP 8.0.0)
T_BAD_CHARACTER |  | Tous les caractères en dessous de ASCII 32 exceptés \t (0x09), \n (0x0a) et \r (0x0d) (disponible à partir de PHP 7.4.0)
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
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_COALESCE | ?? | opérateurs de comparaison
T_COALESCE_EQUAL | ??= | opérateurs d'assignation (disponible à partir de PHP 7.4.0)
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émentation/décrémentation
T_DECLARE | declare | declare
T_DEFAULT | default | switch
T_DIR | __DIR__ | constantes magiques
T_DIV_EQUAL | /= | opérateurs d'assignation
T_DNUMBER | 0.12, etc. | nombres à virgule flottante
T_DO | do | do..while
T_DOC_COMMENT | /** */ | style de commentaire dans la PHPDoc
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
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_ENUM | enum | Énumérations (disponible à partir de PHP 8.1.0)
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
T_FN | fn | fonctions fléchées (disponible à partir de PHP 7.4.0)
T_FOR | for | for
T_FOREACH | foreach | foreach
T_FUNCTION | function | fonctions
T_FUNC_C | __FUNCTION__ | constantes magiques
T_GLOBAL | global | scope de variable
T_GOTO | goto | goto
T_HALT_COMPILER | __halt_compiler() | __halt_compiler
T_IF | if | if
T_IMPLEMENTS | implements | Interfaces
T_INC | ++ | opérateurs d'incrémentation/décrémentation
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
T_INTERFACE | interface | Interfaces
T_INT_CAST | (int) ou (integer) | transtypage
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_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_MATCH | match | match (disponible à partir de PHP 8.0.0)
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 | espaces de noms
T_NAME_FULLY_QUALIFIED | \App\Namespace | espaces de noms (disponible à partir de PHP 8.0.0)
T_NAME_QUALIFIED | App\Namespace | namespaces (disponible à partir de PHP 8.0.0)
T_NAME_RELATIVE | namespace\Namespace | namespaces (disponible à partir de PHP 8.0.0)
T_NEW | new | classes et objets
T_NS_C | __NAMESPACE__ | espaces de noms
T_NS_SEPARATOR | \ | espaces de noms
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_NULLSAFE_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
T_POW_EQUAL | **= | les opérateurs d'affectation
T_PRINT | print | print
T_PRIVATE | private | classes et objets
T_PROTECTED | protected | classes et objets
T_PUBLIC | public | classes et objets
T_READONLY | readonly | classes et objets (disponible à partir de PHP 8.1.0)
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_SPACESHIP | <=> | opérateurs de comparaisons
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
T_TRAIT_C | __TRAIT__ | __TRAIT__
T_TRY | try | Les exceptions
T_UNSET | unset() | unset()
T_UNSET_CAST | (unset) | type-casting
T_USE | use | namespaces
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
T_YIELD_FROM | yield from | générateurs

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 ne pas placer de nombreuses variables, fonctions ou classes dans l'espace de noms global. Cela empêchera les conflits de nommage avec le code tiers ainsi que des ajouts possibles au langage.

Une façon commune de prévenir les conflits de noms de fonctions et de classes est de les ajouter à leur propre namespace.

<?php

namespace MyProject;

function my_function() {
return true;
}

\MyProject\my_function();

Cela a encore besoin de vous pour garder une trace des espaces de noms déjà utilisés, mais une fois que vous avez décidé sur un espace de noms que vous allez utiliser, vous pouvez ajouter toutes les fonctions et les classes à elle sans avoir à penser à nouveau les conflits.

Il est considéré comme la meilleure pratique pour limiter le nombre de variables ajoutées à la portée globale afin d'éviter les conflits de nommage avec le code tiers.

Note: Portée des variables

En raison des règles de portée de PHP, les variables définies à l'intérieur des fonctions et des méthodes ne sont pas dans la portée globale et, en tant que telles, ne peuvent pas entrer en conflit avec d'autres variables définies dans la portée globale.


À 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 fourni 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. La version en ligne du manuel PHP a actuellement deux rendus CSS : un rendu agréable à l'œil 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 du 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 visualiseurs 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 à 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, PHP 7)
strlen -- Retourne la taille de la chaîne

Description
strlen ( string $string ) : int

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, PHP 7) | strlen() est présente dans toutes les versions de PHP 4, 5 et 7.
( 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.
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).

Nous pourrions réécrire ce prototype avec une version plus générique :

      nom de la fonction    ( type du paramètre   nom du paramètre ) : type de retour

Plusieurs fonctions ont besoin de plusieurs paramètres, comme in_array(). Son prototype est le suivant :

      in_array ( mixed $needle, array $haystack , bool $strict = false ) : bool

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 ont une valeur par défaut ; si la valeur par défaut est inconnue, elle est affichée en tant que ?. Le 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 :

       preg_match ( string $pattern , string $subject , array &$matches = null,
       int $flags = 0 , int $offset = 0 ) : int|false

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, PHP 7)

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 7.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 développement." 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 7.3.1, le 7 est la version majeure, 3 la mineure, et 1 la révision. Typiquement PHP n'ajoute de nouvelles fonctionnalités que dans les versions majeures ou mineures, et corrige des bugs dans les révisions. Cependant, cette convention n'est pas toujours vérifiée.

Notez aussi que le 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 requiert 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édemment 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 plusieurs façons de participer à l'amélioration de la documentation.

Si une erreur est trouvée, dans n'importe quelle traduction de la documentation, veuillez rapporter le bogue sur le gestionnaire d'issue du dépôt de langue respectif à » https://github.com/php; par exemple, les erreurs dans le manuel anglais doivent être rapporté à » https://github.com/php/doc-en/issues; Toutes les issues en rapport avec la documentation, ainsi que ses formats, devraient être soumis comme des bogues.

Note:

N'abusez pas du gestionnaire d'issues 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'

Il est aussi possible de soumettre des pull requests au » miroir Github du repository de la documentation.

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 » https://www.php.net/docs.php pour plus d'informations. Le code source XML peut être téléchargé depuis git et visualisé sur » https://github.com/php/doc-en.


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 à partir de » https://github.com/php/doc-en. 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 : » https://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'exemples


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
    • AllowDynamicProperties::__construct - Construit une nouvelle instance d'attribut AllowDynamicProperties
    • 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_response_headers - Récupère tous les en-têtes de réponse HTTP
    • apache_setenv - Modifie une variable de processus Apache
    • APCUIterator::current - Retourne l'élément courant
    • APCUIterator::getTotalCount - Retourne le compte total
    • APCUIterator::getTotalHits - Retourne le nombre total d'accès au cache
    • APCUIterator::getTotalSize - Retourne la taille totale du cache
    • APCUIterator::key - Retourne la clé de l'élément courant
    • APCUIterator::next - Déplace le pointeur sur l'élément suivant
    • APCUIterator::rewind - Replace l'itérateur sur le premier élément
    • APCUIterator::valid - Vérifie si la position courante est valide
    • APCUIterator::__construct - Construit un objet itérateur de la classe APCUIterator
    • apcu_add - Met en cache une nouvelle variable dans le dépôt de données
    • apcu_cache_info - Récupère les informations mises en cache dans le dépôt de données d'APCu
    • apcu_cas - Remplace une ancienne valeur par une nouvelle
    • apcu_clear_cache - Efface le cache APCu
    • apcu_dec - Décrémente un nombre stocké
    • apcu_delete - Retire une variable stockée du cache
    • apcu_enabled - Vérifie si APCu est utilisable dans l'environnement courant
    • apcu_entry - Récupère atomiquement ou génère une entrée de cache
    • apcu_exists - Vérifie si une entrée existe
    • apcu_fetch - Récupère une variable stockée dans le cache
    • apcu_inc - Incrémente un nombre stocké
    • apcu_key_info - Retourne des informations détaillées sur la clé de cache
    • apcu_sma_info - Retourne des informations sur l'Allocation de Mémoire Partagée d'APCu
    • apcu_store - Met en cache une variable dans le dépôt de données
    • AppendIterator::append - Ajoute un itérateur à la fin
    • AppendIterator::current - Lit la valeur courante
    • AppendIterator::getArrayIterator - Récupère le ArrayIterator
    • 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 les entrées 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 les drapaux de comportement
    • ArrayIterator::key - Retourne la clé courante du tableau
    • ArrayIterator::ksort - Trie les entrées par les clés
    • ArrayIterator::natcasesort - Trie naturellement les entrées, en ne tenant pas compte de la casse
    • ArrayIterator::natsort - Trie naturellement les entrées
    • 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 - Sérialisation
    • ArrayIterator::setFlags - Définie les drapeaux de comportements
    • ArrayIterator::uasort - Trier avec une fonction de comparaison définie par l'utilisateur et maintient l'association de l'index
    • ArrayIterator::uksort - Trier par clés à l'aide d'une fonction de comparaison définie par l'utilisateur
    • ArrayIterator::unserialize - Désérialisation
    • 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 - Sérialise 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ésérialisation 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 les occurrences de chaque valeur distincte dans 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 de rappel
    • 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_is_list - Vérifie si un array donné est une liste
    • 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_key_first - Récupère la première clé d'un tableau
    • array_key_last - Récupère la dernière clé d'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 un ou 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 clés, 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 première clé associée à la 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 décroissant et conserve l'association des index
    • asin - Arc sinus
    • asinh - Arc sinus hyperbolique
    • asort - Trie un tableau en ordre croissant et conserve l'association des index
    • assert - Vérifie une assertion
    • assert_options - Définit/récupère différentes options d'assertions
    • atan - Arc tangente
    • atan2 - Arc tangent de deux variables
    • atanh - Arc tangente hyperbolique
    • Attribute::__construct - Construit une nouvelle instance de Attribute
  • b
    • BackedEnum::from - Convertit un scalaire en une instance d'enum
    • BackedEnum::tryFrom - Associe un scalaire à une instance d'enum ou à null
    • 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
    • BaseResult::getWarnings - Fetch warnings from last operation
    • BaseResult::getWarningsCount - Fetch warning count from last operation
    • base_convert - Convertit un nombre entre des bases arbitraires
    • 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 - Définit ou récupère la précision par défaut pour toutes les fonctions bc math
    • 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 - Spécifie ou récupère le chemin d'un domaine
    • bind_textdomain_codeset - Spécifie ou récupère le jeu de caractères utilisé pour les messages du domaine DOMAIN
    • boolval - Récupère la valeur booléenne d'une variable
    • 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 - Ne fait rien
    • 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::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
    • 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
    • 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
    • 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 - Générer une chaîne d'un octet à partir d'un nombre
    • chroot - Change le dossier racine
    • chunk_split - Scinde une chaîne
    • 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 les classes parentes d'une classe
    • class_uses - Retourne les traits utilisés par une classe donnée.
    • clearstatcache - Efface le cache de stat
    • Client::getClient - Get client session
    • Client::__construct - Client constructor
    • 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 - Lie et appelle la fermeture
    • Closure::fromCallable - Convertis un callable en une fermeture
    • 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 - Récupè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
    • Collection::add - Add collection document
    • Collection::addOrReplaceOne - Add or replace collection document
    • Collection::count - Get document count
    • Collection::createIndex - Create collection index
    • Collection::dropIndex - Drop collection index
    • Collection::existsInDatabase - Check if collection exists in database
    • Collection::find - Search for document
    • Collection::getName - Get collection name
    • Collection::getOne - Get one document
    • Collection::getSchema - Get schema object
    • Collection::getSession - Get session object
    • Collection::modify - Modify collection documents
    • Collection::remove - Remove collection documents
    • Collection::removeOne - Remove one collection document
    • Collection::replaceOne - Replace one collection document
    • Collection::__construct - Collection constructor
    • CollectionAdd::execute - Execute the statement
    • CollectionAdd::__construct - CollectionAdd constructor
    • CollectionFind::bind - Bind value to query placeholder
    • CollectionFind::execute - Execute the statement
    • CollectionFind::fields - Set document field filter
    • CollectionFind::groupBy - Set grouping criteria
    • CollectionFind::having - Set condition for aggregate functions
    • CollectionFind::limit - Limit number of returned documents
    • CollectionFind::lockExclusive - Execute operation with EXCLUSIVE LOCK
    • CollectionFind::lockShared - Execute operation with SHARED LOCK
    • CollectionFind::offset - Skip given number of elements to be returned
    • CollectionFind::sort - Set the sorting criteria
    • CollectionFind::__construct - CollectionFind constructor
    • CollectionModify::arrayAppend - Append element to an array field
    • CollectionModify::arrayInsert - Insert element into an array field
    • CollectionModify::bind - Bind value to query placeholder
    • CollectionModify::execute - Execute modify operation
    • CollectionModify::limit - Limit number of modified documents
    • CollectionModify::patch - Patch document
    • CollectionModify::replace - Replace document field
    • CollectionModify::set - Set document attribute
    • CollectionModify::skip - Skip elements
    • CollectionModify::sort - Set the sorting criteria
    • CollectionModify::unset - Unset the value of document fields
    • CollectionModify::__construct - CollectionModify constructor
    • CollectionRemove::bind - Bind value to placeholder
    • CollectionRemove::execute - Execute remove operation
    • CollectionRemove::limit - Limit number of documents to remove
    • CollectionRemove::sort - Set the sorting criteria
    • CollectionRemove::__construct - CollectionRemove constructor
    • ColumnResult::getCharacterSetName - Get character set
    • ColumnResult::getCollationName - Get collation name
    • ColumnResult::getColumnLabel - Get column label
    • ColumnResult::getColumnName - Get column name
    • ColumnResult::getFractionalDigits - Get fractional digit length
    • ColumnResult::getLength - Get column field length
    • ColumnResult::getSchemaName - Get schema name
    • ColumnResult::getTableLabel - Get table label
    • ColumnResult::getTableName - Get table name
    • ColumnResult::getType - Get column type
    • ColumnResult::isNumberSigned - Check if signed type
    • ColumnResult::isPadded - Check if padded
    • ColumnResult::__construct - ColumnResult constructor
    • com::__construct - Constructeur de la classe com
    • CommonMark\CQL::__construct - CQL Construction
    • CommonMark\CQL::__invoke - CQL Execution
    • CommonMark\Interfaces\IVisitable::accept - Visitation
    • CommonMark\Interfaces\IVisitor::enter - Visitation
    • CommonMark\Interfaces\IVisitor::leave - Visitation
    • CommonMark\Node::accept - Visitation
    • CommonMark\Node::appendChild - AST Manipulation
    • CommonMark\Node::insertAfter - AST Manipulation
    • CommonMark\Node::insertBefore - AST Manipulation
    • CommonMark\Node::prependChild - AST Manipulation
    • CommonMark\Node::replace - AST Manipulation
    • CommonMark\Node::unlink - AST Manipulation
    • CommonMark\Node\BulletList::__construct - BulletList Construction
    • CommonMark\Node\CodeBlock::__construct - CodeBlock Construction
    • CommonMark\Node\Heading::__construct - Heading Construction
    • CommonMark\Node\Image::__construct - Image Construction
    • CommonMark\Node\Link::__construct - Link Construction
    • CommonMark\Node\OrderedList::__construct - OrderedList Construction
    • CommonMark\Node\Text::__construct - Text Construction
    • CommonMark\Parse - Parsing
    • CommonMark\Parser::finish - Parsing
    • CommonMark\Parser::parse - Parsing
    • CommonMark\Parser::__construct - Parsing
    • CommonMark\Render - Rendering
    • CommonMark\Render\HTML - Rendering
    • CommonMark\Render\Latex - Rendering
    • CommonMark\Render\Man - Rendering
    • CommonMark\Render\XML - Rendering
    • compact - Crée un tableau à partir de variables et de leur valeur
    • COMPersistHelper::GetCurFileName - Get current filename
    • COMPersistHelper::GetMaxStreamSize - Get maximum stream size
    • COMPersistHelper::InitNew - Initialize object to default state
    • COMPersistHelper::LoadFromFile - Load object from file
    • COMPersistHelper::LoadFromStream - Load object from stream
    • COMPersistHelper::SaveToFile - Save object to file
    • COMPersistHelper::SaveToStream - Save object to stream
    • COMPersistHelper::__construct - Construct a COMPersistHelper object
    • Componere\Abstract\Definition::addInterface - Add Interface
    • Componere\Abstract\Definition::addMethod - Add Method
    • Componere\Abstract\Definition::addTrait - Add Trait
    • Componere\Abstract\Definition::getReflector - Reflection
    • Componere\cast - Casting
    • Componere\cast_by_ref - Casting
    • Componere\Definition::addConstant - Add Constant
    • Componere\Definition::addProperty - Add Property
    • Componere\Definition::getClosure - Get Closure
    • Componere\Definition::getClosures - Get Closures
    • Componere\Definition::isRegistered - State Detection
    • Componere\Definition::register - Registration
    • Componere\Definition::__construct - Definition Construction
    • Componere\Method::getReflector - Reflection
    • Componere\Method::setPrivate - Accessibility Modification
    • Componere\Method::setProtected - Accessibility Modification
    • Componere\Method::setStatic - Accessibility Modification
    • Componere\Method::__construct - Method Construction
    • Componere\Patch::apply - Application
    • Componere\Patch::derive - Patch Derivation
    • Componere\Patch::getClosure - Get Closure
    • Componere\Patch::getClosures - Get Closures
    • Componere\Patch::isApplied - State Detection
    • Componere\Patch::revert - Reversal
    • Componere\Patch::__construct - Patch Construction
    • Componere\Value::hasDefault - Value Interaction
    • Componere\Value::isPrivate - Accessibility Detection
    • Componere\Value::isProtected - Accessibility Detection
    • Componere\Value::isStatic - Accessibility Detection
    • Componere\Value::setPrivate - Accessibility Modification
    • Componere\Value::setProtected - Accessibility Modification
    • Componere\Value::setStatic - Accessibility Modification
    • Componere\Value::__construct - Value Construction
    • 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
    • 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
    • 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 dans un objet Countable
    • Countable::count - Compte le nombre d'éléments d'un objet
    • count_chars - Retourne des statistiques sur les caractères utilisés dans une chaîne
    • crc32 - Calcule la somme de contrôle CRC32
    • create_function - Crée une fonction anonyme
    • CrudOperationBindable::bind - Bind value to placeholder
    • CrudOperationLimitable::limit - Set result limit
    • CrudOperationSkippable::skip - Number of operations to skip
    • CrudOperationSortable::sort - Sort results
    • 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
    • CURLStringFile::__construct - Crée un objet CURLStringFile
    • 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_errno - Retourne le dernier numéro d'erreur multiple 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 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_errno - Retourne le dernier numéro d'erreur du gestionnaire partagé cURL
    • curl_share_init - Initialise un gestionnaire partagé cURL
    • curl_share_setopt - Définit une option du gestionnaire partagé cURL
    • curl_share_strerror - Retourne une chaîne qui décrit le code d'erreur fournit
    • curl_strerror - Retourne la chaîne descriptive du code erreur fourni
    • curl_unescape - Décode l'URL fourni
    • curl_upkeep - Effectue les contrôles de maintenance de la connexion
    • curl_version - Retourne la version courante de cURL
    • current - Retourne l'élément courant du tableau
  • d
    • data:// - Données (RFC 2397)
    • DatabaseObject::existsInDatabase - Check if object exists in database
    • DatabaseObject::getName - Get object name
    • DatabaseObject::getSession - Get session name
    • date - Formate un horodatage Unix
    • 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::createFromISO8601String - Creates a new DatePeriod object from an ISO8601 string
    • DatePeriod::getDateInterval - Retourne l'intervalle
    • DatePeriod::getEndDate - Retourne la date de fin
    • DatePeriod::getRecurrences - Récupère le nombre de récurrences
    • DatePeriod::getStartDate - Obtient la date de début
    • DatePeriod::__construct - Crée un nouvel objet DatePeriod
    • DateTime::add - Modifie un objet un objet DateTime, avec le nombre de jours, mois, années, heures, minutes et secondes ajouté
    • DateTime::createFromFormat - Analyse une heure au format texte selon le format spécifié.
    • DateTime::createFromImmutable - Retourne une nouvelle instance d'objet DateTime encapsulant l'objet DateTimeImmutable fourni
    • DateTime::createFromInterface - Retourne un nouvel objet DateTime encapsulant l'objet DateTimeInterface fourni
    • DateTime::getLastErrors - Alias de DateTimeImmutable::getLastErrors
    • 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 horodatage 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 - Retourne un nouvel object, avec le nombre de jours, mois, années, heures, minutes et secondes ajouté
    • DateTimeImmutable::createFromFormat - Analyse une heure au format texte selon le format spécifié.
    • DateTimeImmutable::createFromInterface - Retourne un nouvel objet DateTimeImmutable encapsulant l'objet DateTimeInterface fourni
    • DateTimeImmutable::createFromMutable - Retourne une nouvelle instance de DateTimeImmutable encapsulant l'objet DateTime fournit
    • DateTimeImmutable::getLastErrors - Retourne les alertes et erreurs
    • DateTimeImmutable::modify - Créée un nouvel objet avec l'horodatage modifié
    • DateTimeImmutable::setDate - Définit la date
    • DateTimeImmutable::setISODate - Définit la date ISO
    • DateTimeImmutable::setTime - Définit l'horaire
    • DateTimeImmutable::setTimestamp - Définit la date et l'heure basé sur un horodatage Unix
    • DateTimeImmutable::setTimezone - Définit le fuseau 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
    • DateTimeInterface::diff - Retourne la différence entre deux objets DateTime
    • DateTimeInterface::format - Retourne une date formatée suivant le format fourni
    • DateTimeInterface::getOffset - Retourne le décalage horaire
    • DateTimeInterface::getTimestamp - Récupère le timestamp Unix
    • DateTimeInterface::getTimezone - Retourne le fuseau horaire relatif au DateTime fourni
    • 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 - Création d'un objet DateTime
    • date_create_from_format - Alias de DateTime::createFromFormat
    • date_create_immutable - Crée un nouvel objet DateTimeImmutable
    • 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 DateTimeImmutable::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/moment 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
    • dcgettext - Remplace le domaine lors d'une recherche
    • dcngettext - Version plurielle de dcgettext
    • debug_backtrace - Génère le contexte de débogage
    • debug_print_backtrace - Affiche la pile d'exécution PHP
    • debug_zval_dump - Extrait une représentation sous forme de chaîne de la structure interne d'une zval 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 si une constante avec le nom donné existe
    • 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::getBasename - Lit le nom de dossier de l'élément DirectoryIterator
    • DirectoryIterator::getExtension - Récupère l'extension du fichier
    • DirectoryIterator::getFilename - Retourne le nom de l'entrée courante du dossier
    • DirectoryIterator::isDot - Retourne true si l'entrée courante est '.' ou '..'
    • 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
    • DocResult::fetchAll - Get all rows
    • DocResult::fetchOne - Get one row
    • DocResult::getWarnings - Get warnings from last operation
    • DocResult::getWarningsCount - Get warning count from last operation
    • DocResult::__construct - DocResult constructor
    • 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::after - Adds nodes after the character data
    • DOMCharacterData::appendData - Ajoute la chaîne à la fin des données dans le nœud
    • DOMCharacterData::before - Adds nodes before the node
    • DOMCharacterData::deleteData - Supprime une sous-chaîne dans le nœud
    • DOMCharacterData::insertData - Insère une chaîne à la position spécifiée d'unité 16-bit
    • DOMCharacterData::remove - Removes the character data
    • DOMCharacterData::replaceData - Remplace une sous-chaîne dans le nœud DOMCharacterData
    • DOMCharacterData::replaceWith - Replaces the character data with new nodes
    • DOMCharacterData::substringData - Extrait un morceau de données dans le nœud
    • DOMChildNode::after - Ajoute des nœuds après le nœud
    • DOMChildNode::before - Ajoute des nœuds avant le nœud
    • DOMChildNode::remove - Supprime le nœud
    • DOMChildNode::replaceWith - Remplace le nœud par de nouveaux nœuds
    • DOMComment::__construct - Crée un nouvel objet DOMComment
    • DOMDocument::adoptNode - Transfer a node from another document
    • DOMDocument::append - Appends nodes after the last child node
    • 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 nœud cdata
    • DOMDocument::createComment - Crée un nouveau nœud de commentaire
    • DOMDocument::createDocumentFragment - Crée un nouveau fragment de document
    • DOMDocument::createElement - Crée un nouveau nœud
    • DOMDocument::createElementNS - Crée un nouveau nœud avec un espace de noms associé
    • DOMDocument::createEntityReference - Crée un nouveau nœud de référence d'entité
    • DOMDocument::createProcessingInstruction - Crée un nouveau nœud PI
    • DOMDocument::createTextNode - Crée un nouveau nœud 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 nœud 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::prepend - Prepends nodes before the first child node
    • DOMDocument::registerNodeClass - Enregistre la classe étendue utilisée pour créer un type de base de nœud
    • DOMDocument::relaxNGValidate - Effectue une validation relaxNG sur le document
    • DOMDocument::relaxNGValidateSource - Effectue une validation relaxNG sur le document
    • DOMDocument::replaceChildren - Replace children in 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. Seuls les schémas XML 1.0 sont supportés.
    • 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::append - Appends nodes after the last child node
    • DOMDocumentFragment::appendXML - Ajoute des données XML
    • DOMDocumentFragment::prepend - Prepends nodes before the first child node
    • DOMDocumentFragment::replaceChildren - Replace children in fragment
    • DOMDocumentFragment::__construct - Construit un objet DOMDocumentFragment
    • DOMElement::after - Adds nodes after the element
    • DOMElement::append - Appends nodes after the last child node
    • DOMElement::before - Adds nodes before the element
    • DOMElement::getAttribute - Retourne la valeur d'un attribut
    • DOMElement::getAttributeNames - Get attribute names
    • DOMElement::getAttributeNode - Retourne le nœud d'attribut
    • DOMElement::getAttributeNodeNS - Retourne le nœud 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::insertAdjacentElement - Insert adjacent element
    • DOMElement::insertAdjacentText - Insert adjacent text
    • DOMElement::prepend - Prepends nodes before the first child node
    • DOMElement::remove - Removes the element
    • DOMElement::removeAttribute - Efface un attribut
    • DOMElement::removeAttributeNode - Efface un attribut
    • DOMElement::removeAttributeNS - Efface un attribut
    • DOMElement::replaceChildren - Replace children in element
    • DOMElement::replaceWith - Replaces the element with new nodes
    • DOMElement::setAttribute - Ajoute un nouvel attribut, ou modifie un attribut existant
    • 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 nœud à ê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::toggleAttribute - Toggle attribute
    • 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::count - Récupère le nombre de nœuds dans la collection non triée (map)
    • DOMNamedNodeMap::getIterator - Retrieve an external iterator
    • DOMNamedNodeMap::getNamedItem - Retourne un nœud spécifié par son nom
    • DOMNamedNodeMap::getNamedItemNS - Retourne un nœud spécifié par son nom local et son espace de noms
    • DOMNamedNodeMap::item - Retourne un nœud selon son index
    • DOMNode::appendChild - Ajoute un nouveau fils à la fin des fils
    • DOMNode::C14N - Canonise des nœuds en une chaîne
    • DOMNode::C14NFile - Canonise des nœuds en fichier
    • DOMNode::cloneNode - Clone un nœud
    • DOMNode::contains - Checks if node contains other node
    • DOMNode::getLineNo - Lit le numéro de ligne d'un nœud
    • DOMNode::getNodePath - Récupère un XPath pour un nœud
    • DOMNode::getRootNode - Get root node
    • DOMNode::hasAttributes - Vérifie si le nœud possède un attribut
    • DOMNode::hasChildNodes - Vérifie si le nœud possède des enfants
    • DOMNode::insertBefore - Ajoute un nouveau fils avant un nœud de référence.
    • DOMNode::isDefaultNamespace - Vérifie si l'espace de nom spécifié est l'espace de noms par défaut ou non
    • DOMNode::isEqualNode - Checks that both nodes are equal
    • DOMNode::isSameNode - Indique si deux nœuds 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 nœud
    • DOMNode::removeChild - Supprime un fils de la liste des enfants
    • DOMNode::replaceChild - Remplace un fils
    • DOMNodeList::count - Récupère le nombre de nœuds dans la collection triée (list)
    • DOMNodeList::getIterator - Retrieve an external iterator
    • DOMNodeList::item - Retourne un nœud spécifié par son index
    • DOMParentNode::append - Ajoute des nœuds après le dernier nœud enfant
    • DOMParentNode::prepend - Ajoute des nœuds avant le premier nœud enfant
    • DOMParentNode::replaceChildren - Replace children in node
    • DOMProcessingInstruction::__construct - Crée un nouvel objet DOMProcessingInstruction
    • DOMText::isElementContentWhitespace - Rapporte si le nœud textuel contient des caractères d'espacement blanc
    • DOMText::isWhitespaceInElementContent - Indique si ce nœud de texte contient des espaces blancs
    • DOMText::splitText - Coupe le nœud en deux nœuds à 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
    • dotnet::__construct - Constructeur de la classe dotnet
    • doubleval - Alias de floatval
    • DSN PDO_CUBRID - Connexion aux bases de données CUBRID
    • Ds\Collection::clear - Supprimer toutes les valeurs
    • Ds\Collection::copy - Retourne une copie superficielle de la collection
    • Ds\Collection::isEmpty - Indique si la collection est vide
    • Ds\Collection::toArray - Convertit la collection en un 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, mis à 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 - Vérifie si l'élément actuel est valide
    • 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 - Récupère le chemin du dossier pour un backend fournit
    • 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 - Définit le chemin du dossier pour un backend fournit
    • enchant_broker_set_ordering - Déclare une préférence pour un dictionnaire d'une langue
    • enchant_dict_add - Ajoute un mot à une liste de mot personnelle
    • enchant_dict_add_to_personal - Alias de enchant_dict_add
    • 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_added - Que le 'mot' existe ou non dans cette session d'orthographe
    • enchant_dict_is_in_session - Alias de enchant_dict_is_added
    • 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
    • enum_exists - Vérifie si l'énumération est définie
    • Error::getCode - Récupère le code d'erreur
    • Error::getFile - Récupère le fichier où l'erreur s'est produite
    • Error::getLine - Récupère le numéro de ligne où l'erreur s'est produite
    • Error::getMessage - Récupère le message d'erreur
    • Error::getPrevious - Retourne Throwable précédent
    • Error::getTrace - Récupère la trace d'appels
    • Error::getTraceAsString - Récupère la trace d'appels en tant que chaîne de caractères
    • Error::__clone - Cloner l'erreur
    • Error::__construct - Constructeur de l'objet Error
    • Error::__toString - Représentation sous forme de chaîne de caractère de l'erreur
    • ErrorException::getSeverity - Récupère la sévérité de l'exception
    • ErrorException::__construct - Construit l'exception
    • error_clear_last - Enlève l'erreur la plus récente
    • 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 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 fonctionnalité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 - Sérialise 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 fonctionnalité de méthode d'événement demandée par l'application
    • EventConfig::setFlags - Sets one or more flags to configure the eventual EventBase will be initialized
    • 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
    • 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 EvSignal
    • 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 a été créée
    • Exception::getLine - Récupère la ligne dans laquelle l'exception a été créée
    • Exception::getMessage - Récupère le message de l'exception
    • Exception::getPrevious - Retourne le Throwable précédent
    • 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
    • Executable::execute - Execute statement
    • ExecutionStatus::__construct - ExecutionStatus constructor
    • exif_imagetype - Détermine le type d'une image
    • exif_read_data - Lit les en-têtes EXIF dans les images
    • exif_tagname - Lit le nom d'en-tête EXIF d'un index
    • exif_thumbnail - Récupère la miniature d'une image
    • 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 - Scinde une chaîne de caractères en segments
    • expm1 - Retourne exp($num) - 1, calculé de manière précise même lorsque la valeur du nombre est proche de zéro
    • expression - Bind prepared statement variables as parameters
    • Expression::__construct - Expression constructor
    • 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
    • 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
    • fbird_add_user - Alias de ibase_add_user
    • fbird_affected_rows - Alias de ibase_affected_rows
    • fbird_backup - Alias de ibase_backup
    • fbird_blob_add - Alias de ibase_blob_add
    • fbird_blob_cancel - Annule la création d'un blob
    • fbird_blob_close - Alias de ibase_blob_close
    • fbird_blob_create - Alias de ibase_blob_create
    • fbird_blob_echo - Alias de ibase_blob_echo
    • fbird_blob_get - Alias de ibase_blob_get
    • fbird_blob_import - Alias de ibase_blob_import
    • fbird_blob_info - Alias de ibase_blob_info
    • fbird_blob_open - Alias de ibase_blob_open
    • fbird_close - Alias de ibase_close
    • fbird_commit - Alias de ibase_commit
    • fbird_commit_ret - Alias de ibase_commit_ret
    • fbird_connect - Alias de ibase_connect
    • fbird_db_info - Alias de ibase_db_info
    • fbird_delete_user - Alias de ibase_delete_user
    • fbird_drop_db - Alias de ibase_drop_db
    • fbird_errcode - Alias de ibase_errcode
    • fbird_errmsg - Alias de ibase_errmsg
    • fbird_execute - Alias de ibase_execute
    • fbird_fetch_assoc - Alias de ibase_fetch_assoc
    • fbird_fetch_object - Alias de ibase_fetch_object
    • fbird_fetch_row - Alias de ibase_fetch_row
    • fbird_field_info - Alias de ibase_field_info
    • fbird_free_event_handler - Alias de ibase_free_event_handler
    • fbird_free_query - Alias de ibase_free_query
    • fbird_free_result - Alias de ibase_free_result
    • fbird_gen_id - Alias de ibase_gen_id
    • fbird_maintain_db - Alias de ibase_maintain_db
    • fbird_modify_user - Alias de ibase_modify_user
    • fbird_name_result - Alias de ibase_name_result
    • fbird_num_fields - Alias de ibase_num_fields
    • fbird_num_params - Alias de ibase_num_params
    • fbird_param_info - Alias de ibase_param_info
    • fbird_pconnect - Alias de ibase_pconnect
    • fbird_prepare - Alias de ibase_prepare
    • fbird_query - Alias de ibase_query
    • fbird_restore - Alias de ibase_restore
    • fbird_rollback - Alias de ibase_rollback
    • fbird_rollback_ret - Alias de ibase_rollback_ret
    • fbird_server_info - Alias de ibase_server_info
    • fbird_service_attach - Alias de ibase_service_attach
    • fbird_service_detach - Alias de ibase_service_detach
    • fbird_set_event_handler - Alias de ibase_set_event_handler
    • fbird_trans - Alias de ibase_trans
    • fbird_wait_event - Alias de ibase_wait_event
    • fclose - Ferme un fichier
    • fdatasync - Synchronise les données (mais pas les métadonnées) avec le 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
    • fdiv - Divides two numbers, according to IEEE 754
    • feof - Teste la fin du fichier
    • FFI::addr - Crée un pointeur non géré vers des données C
    • FFI::alignof - Récupère l'alignement
    • FFI::arrayType - Construit dynamiquement un nouveau type de tableau C
    • FFI::cast - Effectue une conversion de type C
    • FFI::cdef - Crée un nouvel objet FFI
    • FFI::free - Libère une structure de données non gérée
    • FFI::isNull - Vérifie si un objet FFI\CData est un pointeur null
    • FFI::load - Charge les déclarations C à partir d'un fichier d'en-tête C
    • FFI::memcmp - Comparaison des zones de mémoire
    • FFI::memcpy - Copie d'une zone de mémoire dans une autre
    • FFI::memset - Remplit une zone de mémoire
    • FFI::new - Crée une structure de données C
    • FFI::scope - Instancie un objet FFI avec les déclarations C analysées lors du préchargement
    • FFI::sizeof - Récupère la taille des données ou des types C
    • FFI::string - Crée une chaîne PHP à partir d'une zone de mémoire
    • FFI::type - Crée un objet FFI\CType à partir d'une déclaration C
    • FFI::typeof - Récupère le FFI\CType de FFI\CData
    • FFI\CType::getAlignment - Description
    • FFI\CType::getArrayElementType - Description
    • FFI\CType::getArrayLength - Description
    • FFI\CType::getAttributes - Description
    • FFI\CType::getEnumKind - Description
    • FFI\CType::getFuncABI - Description
    • FFI\CType::getFuncParameterCount - Description
    • FFI\CType::getFuncParameterType - Description
    • FFI\CType::getFuncReturnType - Description
    • FFI\CType::getKind - Description
    • FFI\CType::getName - Description
    • FFI\CType::getPointerType - Description
    • FFI\CType::getSize - Description
    • FFI\CType::getStructFieldNames - Description
    • FFI\CType::getStructFieldOffset - Description
    • FFI\CType::getStructFieldType - Description
    • 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 à partir de l'emplacement du pointeur sur fichier
    • fgetss - Renvoie la ligne courante du fichier et élimine les balises HTML
    • Fiber::getCurrent - Obtient l'instance de Fibre en cours d'exécution
    • Fiber::getReturn - Obtient la valeur retournée par la fibre
    • Fiber::isRunning - Détermine si la fibre est en cours d'exécution
    • Fiber::isStarted - Détermine si la fibre a démarrée
    • Fiber::isSuspended - Détermine si la fibre est suspendue
    • Fiber::isTerminated - Détermine si la fibre est terminée
    • Fiber::resume - Reprend l'exécution de la fibre avec une valeur
    • Fiber::start - Démarre l'exécution de la fibre
    • Fiber::suspend - Suspend l'exécution de la fibre en cours
    • Fiber::throw - Reprend l'exécution de la fibre avec une exception
    • Fiber::__construct - Crée une nouvelle instance de Fibre
    • FiberError::__construct - Constructeur pour empêcher l'instanciation directe
    • 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
    • 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 des données 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::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 finfo_open
    • finfo_close - Ferme une instance finfo
    • finfo_open - Crée une nouvelle instance finfo
    • 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
    • fpm_get_status - Retourne l'état actuel du pool FPM
    • 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
    • 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
    • fsync - Synchronise les modifications apportées au fichier (y compris les métadonnées)
    • 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_append - Ajoute le contenu d'un fichier à un autre fichier sur le serveur FTP
    • 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 - Téléverse 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_mlsd - Retourne la liste des fichiers d'un dossier donné
    • 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 - Récupère de la mémoire utilisé par le gestionaire de mémoire de Zend Engine
    • gc_status - Récupère les informations à propos du ramasse-miettes
    • 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::wait - Wait for I/O activity on all connections in a client
    • 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::getReturn - Obtenir la valeur de retour d'un générateur
    • 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 sérialisation
    • 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 seule ou toutes les variables 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
    • getSession - Connect to a MySQL server
    • 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_debug_type - Gets the type name of a variable in a way that is suitable for debugging
    • 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_mangled_object_vars - Retourne un tableau de propriétés de l'objet manipulé
    • 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 - Retourne les ressources active
    • get_resource_id - Retourne un entier identifiant une ressource
    • 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 - Fait un rendu de l'objet GmagickDraw sur 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 - Crée une image miroir horizontale
    • 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 - Définit la qualité de compression par défaut de l'objet
    • 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 - Alias de Gmagick::writeimage
    • 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 - Trace une ligne
    • 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::__construct - Crée un nombre GMP
    • GMP::__serialize - Sérialise l'objet GMP
    • GMP::__unserialize - Désérialise le paramètre data en un objet GMP
    • gmp_abs - Valeur absolue GMP
    • gmp_add - Addition de 2 nombres GMP
    • gmp_and - ET logique
    • gmp_binomial - Calcul le coefficient binomial
    • 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 PGCD
    • 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_kronecker - Symbole Kronecker
    • gmp_lcm - Calcul le PPCM
    • 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_power - Vérifie si un nombre est une puissance parfaite
    • 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 - Récupérer un entier uniformément sélectionné
    • gmp_random_seed - Définit la graine RNG (Générateur de Nombres 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
    • 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_deletekey - Delete a key from the keyring
    • gnupg_encrypt - Chiffre un texte donné
    • gnupg_encryptsign - Chiffre et signe un texte donné
    • gnupg_export - Exporte une clé
    • gnupg_getengineinfo - Returns the engine info
    • gnupg_geterror - Retourne le texte d'erreur, si une fonction échoue
    • gnupg_geterrorinfo - Returns the error info
    • gnupg_getprotocol - Retourne le protocole actif courant pour toutes les opérations
    • gnupg_gettrustlist - Search the trust items
    • 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_listsignatures - List key signatures
    • 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é
    • 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
    • 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
    • hash - Génère une valeur de hachage (empreinte numérique)
    • HashContext::__construct - Constructeur privé pour interdire l'instanciation directe
    • HashContext::__serialize - Sérialise l'objet HashContext
    • HashContext::__unserialize - Désérialise le paramètre data en un objet HashContext
    • hash_algos - Retourne une liste des algorithmes de hachage enregistrés
    • hash_copy - Copie un contexte de hachage
    • 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_hkdf - Génère une dérivation de clé HKDF depuis une clé fournie
    • hash_hmac - Génère une valeur de clé de hachage en utilisant la méthode HMAC
    • hash_hmac_algos - Return a list of registered hashing algorithms suitable for hash_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 brut
    • 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 encodée en hexadécimal vers du binaire
    • 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 - Get the system's high resolution time
    • HRTime\PerformanceCounter::getFrequency - Fréquence du timer en ticks par seconde
    • HRTime\PerformanceCounter::getTicks - Ticks courrant depuis le système
    • HRTime\PerformanceCounter::getTicksSince - Ticks écoulés depuis la valeur fournie
    • HRTime\StopWatch::getElapsedTicks - Récupère les ticks écoulés pour toutes les intervalles
    • HRTime\StopWatch::getElapsedTime - Récupère le temps écoulé pour tous les intervalles
    • HRTime\StopWatch::getLastElapsedTicks - Récupère les ticks écoulés pour la dernière intervalle
    • HRTime\StopWatch::getLastElapsedTime - Récupère le temps écoulé pour la dernière intervalle
    • HRTime\StopWatch::isRunning - Vérifie si la mesure du temps est en cours
    • HRTime\StopWatch::start - Démarre la mesure du temps
    • HRTime\StopWatch::stop - Arrête la mesure du temps
    • 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 les entités HTML à leurs caractères correspondant
    • 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 définit le code de réponse HTTP
    • 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 - Lance une tâche de sauvegarde dans le gestionnaire de services et retourne immédiatement
    • 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 - Lance une tâche de restauration dans le gestionnaire de services et retourne immédiatement
    • ibase_rollback - Annule une transaction interBase
    • ibase_rollback_ret - Annule une transaction sans la fermer
    • ibase_server_info - Sollicite des informations à propos d'un serveur de base de donnée
    • ibase_service_attach - Connexion au gestionnaire de service
    • ibase_service_detach - Déconnexion du gestionnaire de service
    • 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 de caractères à partir d'un encodage vers un autre
    • 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
    • idate - Formate une partie de l'heure/date locale en tant qu'entier
    • idn_to_ascii - Convertit un nom de domaine au format IDNA ASCII
    • idn_to_utf8 - Convertit le nom de domaine IDNA ASCII en Unicode
    • igbinary_serialize - Génère une représentation binaire stockable et compacte d'une valeur
    • igbinary_unserialize - Crée une variable PHP à partir d'une valeur sérialisée par igbinary_serialize
    • ignore_user_abort - Active l'interruption de script sur déconnexion du visiteur
    • image2wbmp - Affichage de l'image vers le navigateur ou dans un fichier
    • imageaffine - Retourne une image contenant l'image source transformée, en utilisant optionnellement une zone de découpe
    • imageaffinematrixconcat - Concatène deux matrices de transformation affine
    • imageaffinematrixget - Obtenir une matrice de transformation affine
    • imagealphablending - Modifie le mode de blending d'une image
    • imageantialias - Utiliser ou non les fonctions d'antialias
    • imagearc - Dessine une ellipse partielle
    • imageavif - Affichage de l'image vers le navigateur ou dans un fichier
    • imagebmp - Affiche ou enregistre une image BMP au navigateur ou dans un fichier
    • 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
    • imagecreatefromavif - Crée une nouvelle image depuis un fichier ou une URL
    • imagecreatefrombmp - Crée une nouvelle image depuis un fichier ou une URL
    • 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
    • imagecreatefromtga - Crée une nouvelle image depuis un fichier ou une URL
    • 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 sur le rectangle donné
    • 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 - Récupère le rectangle de coupure
    • imagegetinterpolation - Récupère la méthode d'interpolation
    • 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 - Dessine un polygone ouvert
    • 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
    • imagerectangle - Dessine un rectangle
    • imageresolution - Récupère ou définit la résoltion de l'image
    • imagerotate - Fait tourner une image d'un angle
    • imagesavealpha - Détermine si les informations complètes du canal alpha doivent être conservées lors de la sauvegardes d'images
    • imagescale - Met à l'échelle une image en utilisant une hauteur et une largeur fournies
    • imagesetbrush - Modifie la brosse pour le dessin des lignes
    • imagesetclip - Définit le rectangle de coupure
    • 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 - Adjusts the levels of a particular image channel
    • Imagick::averageImages - Moyenne d'un jeu d'images
    • Imagick::blackThresholdImage - Force tous les pixels au-delà d'un seuil à noir
    • Imagick::blueShiftImage - Mutes the colors of the image
    • Imagick::blurImage - Ajoute un filtre de flou à une image
    • Imagick::borderImage - Encadre une image avec un bord
    • Imagick::brightnessContrastImage - Change the brightness and/or contrast of an image
    • Imagick::charcoalImage - Simule un dessin au fusain
    • Imagick::chopImage - Supprime une région d'une image et retaille
    • Imagick::clampImage - Restricts the color range from 0 to the quantum depth.
    • 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 - Clips along the named paths from the 8BIM profile, if present
    • 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 - Apply color transformation to an image
    • 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 - Get the number of images
    • 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 - Deletes an image property
    • 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 - Applies a custom convolution kernel to the image
    • 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 - Implements the discrete Fourier transform (DFT)
    • 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 - Vérifie si l'image a un canal alpha
    • Imagick::getImageArtifact - Récupère l'artefact de l'image
    • Imagick::getImageAttribute - Returns a named attribute
    • 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::getImageMatte - Indique si l'image a un canal mat
    • Imagick::getImageMatteColor - Retourne la couleur mate de l'image
    • Imagick::getImageMimeType - Returns the image mime-type
    • 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 - Returns the ImageMagick quantum range
    • Imagick::getQuantumDepth - Lit la profondeur quantique
    • Imagick::getQuantumRange - Retourne l'intervalle quantique de Imagick
    • Imagick::getRegistry - Get a StringRegistry entry
    • 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 - Formats a string with image details
    • 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 - Implements the inverse discrete Fourier transform (DFT)
    • 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 - List all the registry settings
    • 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 - Applies a user supplied kernel to the image according to the given morphology method.
    • 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 - Reads image from an array of filenames
    • 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 - Rotational blurs an image
    • 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 - Selectively blur an image within a contrast threshold
    • 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 - Sets an image attribute
    • Imagick::setImageBackgroundColor - Configure la couleur de fond d'image
    • Imagick::setImageBias - Configure le biais pour les convolutions
    • Imagick::setImageBiasQuantum - Sets the image bias
    • 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 - Set a callback to be called during processing
    • Imagick::setRegistry - Sets the ImageMagick registry entry named key to value
    • Imagick::setResolution - Configure la résolution de l'image
    • Imagick::setResourceLimit - Définit la limite pour une ressource particulière
    • 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 - Takes all images from the current image pointer to the end of the image list and smushs them
    • 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 - Modifies image using a statistics function
    • 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 - Searches for a subimage in the current image and returns a similarity image
    • 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 - Gets the font stretch to use when annotating with text
    • 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 - Récupère l'espace entre les mots d'un texte.
    • ImagickDraw::getTextInterwordSpacing - Récupère l'espace entre les mots d'un texte.
    • ImagickDraw::getTextKerning - Récupère le crénage d'un texte.
    • 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 - Resets the vector graphics
    • 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 - Définie la résolution
    • 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 - Défine l'espace entre les lignes d'un texte
    • ImagickDraw::setTextInterwordSpacing - Définie l'espace entre les mots d'un texte
    • ImagickDraw::setTextKerning - Définie le crénage d'un texte
    • 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 - Attach another kernel to a kernel list
    • ImagickKernel::addUnityKernel - Adds a Unity Kernel to the kernel list
    • ImagickKernel::fromBuiltIn - Create a kernel from a builtin in kernel
    • ImagickKernel::fromMatrix - Create a kernel from a 2d matrix of values
    • ImagickKernel::getMatrix - Get the 2d matrix of values used in this kernel
    • ImagickKernel::scale - Scales a kernel list by the given amount
    • ImagickKernel::separate - Separates a linked set of kernels and returns an array of ImagickKernels
    • 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 - Returns the color of the pixel in an array as Quantum values
    • ImagickPixel::getColorValue - Récupère la valeur normalisée du canal de la couleur fournie
    • ImagickPixel::getColorValueQuantum - Gets the quantum value of a color in the ImagickPixel
    • ImagickPixel::getHSL - Retourne la couleur HSL normalisée de l'objet ImagickPixel
    • ImagickPixel::getIndex - Gets the colormap index of the pixel wand
    • ImagickPixel::isPixelSimilar - Vérifie la distance entre cette couleur et une autre
    • ImagickPixel::isPixelSimilarQuantum - Returns whether two colors differ by less than the specified distance
    • ImagickPixel::isSimilar - Vérifie la distance entre 2 couleurs
    • ImagickPixel::setColor - Définit la couleur
    • ImagickPixel::setColorCount - Sets the color count associated with this color
    • ImagickPixel::setColorValue - Définit la valeur normalisée d'un des canaux
    • ImagickPixel::setColorValueQuantum - Sets the quantum value of a color element of the ImagickPixel
    • ImagickPixel::setHSL - Définit la couleur HSL normalisée
    • ImagickPixel::setIndex - Sets the colormap index of the pixel wand
    • 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_is_open - Vérifier si le flux IMAP est toujours valide
    • 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_mutf7_to_utf8 - Décode une chaîne de caractère UTF-7 modifié en UTF-8
    • 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
    • imap_utf8_to_mutf7 - Encode une chaîne de caractère UTF-8 en UTF-7 modifié
    • implode - Rassemble les éléments d'un tableau en une chaîne
    • 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_get_read_len - Get number of bytes read so far
    • inflate_get_status - Get decompression status
    • inflate_init - Initialize an incremental inflate context
    • 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_parse_quantity - Get interpreted size from ini shorthand syntax
    • 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 - Division d'Entier
    • interface_exists - Vérifie si une interface a été définie
    • InternalIterator::current - Retourne l'élément courant
    • InternalIterator::key - Retourne la clé de l'élément courant
    • InternalIterator::next - Passe à l'élément suivant
    • InternalIterator::rewind - Replace l'itérateur sur le premier élément
    • InternalIterator::valid - Vérifie si la position actuelle est valide
    • InternalIterator::__construct - Constructeur privé pour empêcher l'instanciation directe
    • 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::setDate - Set a date fields
    • IntlCalendar::setDateTime - Set a date and time fields
    • 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
    • IntlChar::charAge - Get the "age" of the code point
    • IntlChar::charDigitValue - Get the decimal digit value of a decimal digit character
    • IntlChar::charDirection - Get bidirectional category value for a code point
    • IntlChar::charFromName - Find Unicode character by name and return its code point value
    • IntlChar::charMirror - Get the "mirror-image" character for a code point
    • IntlChar::charName - Retrieve the name of a Unicode character
    • IntlChar::charType - Get the general category value for a code point
    • IntlChar::chr - Return Unicode character by code point value
    • IntlChar::digit - Get the decimal digit value of a code point for a given radix
    • IntlChar::enumCharNames - Enumerate all assigned Unicode characters within a range
    • IntlChar::enumCharTypes - Enumerate all code points with their Unicode general categories
    • IntlChar::foldCase - Perform case folding on a code point
    • IntlChar::forDigit - Get character representation for a given digit and radix
    • IntlChar::getBidiPairedBracket - Get the paired bracket character for a code point
    • IntlChar::getBlockCode - Get the Unicode allocation block containing a code point
    • IntlChar::getCombiningClass - Get the combining class of a code point
    • IntlChar::getFC_NFKC_Closure - Get the FC_NFKC_Closure property for a code point
    • IntlChar::getIntPropertyMaxValue - Get the max value for a Unicode property
    • IntlChar::getIntPropertyMinValue - Get the min value for a Unicode property
    • IntlChar::getIntPropertyValue - Get the value for a Unicode property for a code point
    • IntlChar::getNumericValue - Get the numeric value for a Unicode code point
    • IntlChar::getPropertyEnum - Get the property constant value for a given property name
    • IntlChar::getPropertyName - Get the Unicode name for a property
    • IntlChar::getPropertyValueEnum - Get the property value for a given value name
    • IntlChar::getPropertyValueName - Get the Unicode name for a property value
    • IntlChar::getUnicodeVersion - Get the Unicode version
    • IntlChar::hasBinaryProperty - Check a binary Unicode property for a code point
    • IntlChar::isalnum - Check if code point is an alphanumeric character
    • IntlChar::isalpha - Check if code point is a letter character
    • IntlChar::isbase - Check if code point is a base character
    • IntlChar::isblank - Check if code point is a "blank" or "horizontal space" character
    • IntlChar::iscntrl - Check if code point is a control character
    • IntlChar::isdefined - Check whether the code point is defined
    • IntlChar::isdigit - Check if code point is a digit character
    • IntlChar::isgraph - Check if code point is a graphic character
    • IntlChar::isIDIgnorable - Check if code point is an ignorable character
    • IntlChar::isIDPart - Check if code point is permissible in an identifier
    • IntlChar::isIDStart - Check if code point is permissible as the first character in an identifier
    • IntlChar::isISOControl - Check if code point is an ISO control code
    • IntlChar::isJavaIDPart - Check if code point is permissible in a Java identifier
    • IntlChar::isJavaIDStart - Check if code point is permissible as the first character in a Java identifier
    • IntlChar::isJavaSpaceChar - Check if code point is a space character according to Java
    • IntlChar::islower - Check if code point is a lowercase letter
    • IntlChar::isMirrored - Check if code point has the Bidi_Mirrored property
    • IntlChar::isprint - Check if code point is a printable character
    • IntlChar::ispunct - Check if code point is punctuation character
    • IntlChar::isspace - Check if code point is a space character
    • IntlChar::istitle - Check if code point is a titlecase letter
    • IntlChar::isUAlphabetic - Check if code point has the Alphabetic Unicode property
    • IntlChar::isULowercase - Check if code point has the Lowercase Unicode property
    • IntlChar::isupper - Check if code point has the general category "Lu" (uppercase letter)
    • IntlChar::isUUppercase - Check if code point has the Uppercase Unicode property
    • IntlChar::isUWhiteSpace - Check if code point has the White_Space Unicode property
    • IntlChar::isWhitespace - Check if code point is a whitespace character according to ICU
    • IntlChar::isxdigit - Check if code point is a hexadecimal digit
    • IntlChar::ord - Return Unicode code point value of character
    • IntlChar::tolower - Make Unicode character lowercase
    • IntlChar::totitle - Make Unicode character titlecase
    • IntlChar::toupper - Make Unicode character uppercase
    • 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 convertie 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
    • IntlDatePatternGenerator::create - Creates a new IntlDatePatternGenerator instance
    • IntlDatePatternGenerator::getBestPattern - Determines the most suitable date/time format
    • IntlGregorianCalendar::createFromDate - Create a new IntlGregorianCalendar instance from date
    • IntlGregorianCalendar::createFromDateTime - Create a new IntlGregorianCalendar instance from date and time
    • IntlGregorianCalendar::getGregorianChange - Get the Gregorian Calendar change date
    • IntlGregorianCalendar::isLeapYear - Determine if the given year is a leap year
    • IntlGregorianCalendar::setGregorianChange - Set the Gregorian Calendar the change date
    • IntlGregorianCalendar::__construct - Create the Gregorian Calendar 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
    • 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::createTimeZoneIDEnumeration - Get an enumeration over system time zone IDs with the given filter conditions
    • 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::getIDForWindowsID - Translate a Windows timezone into a system timezone
    • 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::getRegion - Get the region code associated with the given system time zone ID
    • IntlTimeZone::getTZDataVersion - Récupère la version du fuseau horaire actuellement utilisé par ICU
    • IntlTimeZone::getUnknown - Get the "unknown" time zone
    • IntlTimeZone::getWindowsID - Translate a system timezone into a Windows timezone
    • 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
    • IntlTimeZone::__construct - Private constructor to disallow direct instantiation
    • 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) en notation décimale à point en une adresse entier long
    • 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éclarée et est différente de null
    • is_a - Vérifie si l'objet est d'un certain type ou sous-type.
    • 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 une valeur peut être appelé comme une fonction dans la portée courante.
    • is_countable - Vérifie si le contenu de la variable est une valeur dénombrable
    • 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 - Vérifie si un nombre flottant est fini
    • is_float - Détermine si une variable est de type nombre décimal
    • is_infinite - Vérifie si un nombre flottant est infini
    • is_int - Détermine si une variable est de type nombre entier
    • is_integer - Alias de is_int
    • is_iterable - Détermine si le contenu de la variable est itérable.
    • is_link - Indique si le fichier est un lien symbolique
    • is_long - Alias de is_int
    • is_nan - Vérifie si un nombre flottant est NAN
    • is_null - Indique si une variable vaut null
    • is_numeric - Détermine si une variable est un nombre ou une chaîne 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 l'élément actuel 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 sérialisé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()
    • json_validate - Checks if a string contains valid JSON
    • juliantojd - Convertit un jours du calendrier Julien en un nombre de jours du calendrier Julien
  • k
    • key - Retourne une clé d'un tableau associatif
    • key_exists - Alias de array_key_exists
    • krsort - Trie un tableau en fonction des clés en ordre décroissant
    • ksort - Trie un tableau en fonction des clés en ordre croissant
  • l
    • 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_add_ext - Ajoute une entrée dans un dossier LDAP
    • ldap_bind - Authentification au serveur LDAP
    • ldap_bind_ext - Lie un dossier 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_connect_wallet - Connect to an LDAP server
    • 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_count_references - Counts the number of references in a search result
    • ldap_delete - Efface une entrée dans un dossier
    • ldap_delete_ext - Supprime une entrée d'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 - Échappe une chaîne pour l'utiliser dans un filtre LDAP ou un DN
    • ldap_exop - Performs an extended operation
    • ldap_exop_passwd - PASSWD extended operation helper
    • ldap_exop_refresh - Refresh extended operation helper
    • ldap_exop_sync - Performs an extended operation
    • ldap_exop_whoami - WHOAMI extended operation helper
    • 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 - Alias de ldap_mod_replace
    • 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_add_ext - Add attribute values to current attributes
    • ldap_mod_del - Efface un attribut à l'entrée courante
    • ldap_mod_del_ext - Delete attribute values from current attributes
    • ldap_mod_replace - Remplace un attribut dans l'entrée courante
    • ldap_mod_replace_ext - Replace attribute values with new ones
    • 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_exop - Parse result object from an LDAP extended operation
    • 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_rename_ext - Modify the name of an entry
    • 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 côté client
    • 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_external_entity_loader - Get the current external entity loader
    • 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::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
    • long2ip - Convertit une adresse entier long (IPv4) en sa notation décimale à point
    • 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
    • LuaSandbox::callFunction - Call a function in a Lua global variable
    • LuaSandbox::disableProfiler - Disable the profiler
    • LuaSandbox::enableProfiler - Enable the profiler.
    • LuaSandbox::getCPUUsage - Fetch the current CPU time usage of the Lua environment
    • LuaSandbox::getMemoryUsage - Fetch the current memory usage of the Lua environment
    • LuaSandbox::getPeakMemoryUsage - Fetch the peak memory usage of the Lua environment
    • LuaSandbox::getProfilerFunctionReport - Fetch profiler data
    • LuaSandbox::getVersionInfo - Return the versions of LuaSandbox and Lua
    • LuaSandbox::loadBinary - Load a precompiled binary chunk into the Lua environment
    • LuaSandbox::loadString - Load Lua code into the Lua environment
    • LuaSandbox::pauseUsageTimer - Pause the CPU usage timer
    • LuaSandbox::registerLibrary - Register a set of PHP functions as a Lua library
    • LuaSandbox::setCPULimit - Set the CPU time limit for the Lua environment
    • LuaSandbox::setMemoryLimit - Set the memory limit for the Lua environment
    • LuaSandbox::unpauseUsageTimer - Unpause the timer paused by LuaSandbox::pauseUsageTimer
    • LuaSandbox::wrapPhpFunction - Wrap a PHP callable in a LuaSandboxFunction
    • LuaSandboxFunction::call - Call a Lua function
    • LuaSandboxFunction::dump - Dump the function as a binary blob
    • LuaSandboxFunction::__construct - Unused
    • lzf_compress - Compression LZF
    • lzf_decompress - Décompression LZF
    • lzf_optimized_for - Détermine le mode d'optimisation de l'extension LZF
  • m
    • 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
    • max - La plus grande valeur
    • mb_check_encoding - Vérifie si les chaînes sont valide pour l'encodage spécifié
    • mb_chr - Retourne un caractère par sa valeur de point de code Unicode
    • mb_convert_case - Modifie la casse d'une chaîne
    • mb_convert_encoding - Convertir une chaîne d'un codage de caractères à un autre
    • 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 MIME
    • 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 multioctets
    • mb_eregi - Expression rationnelle insensible à la casse avec le support des caractères multioctets
    • mb_eregi_replace - Expression rationnelle avec support des caractères multioctets, sans tenir compte de la casse
    • mb_ereg_match - Expression rationnelle POSIX pour les chaînes multioctets
    • mb_ereg_replace - Remplace des segments de chaîne à l'aide des expressions régulières
    • 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 multioctets
    • 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 multioctets qui correspond au masque
    • mb_ereg_search_init - Configure les chaînes et les expressions régulières pour le support des caractères multioctets
    • 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 multioctets
    • 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 - Définit/Récupère le langage courant
    • mb_list_encodings - Retourne un tableau contenant tous les encodages supportés
    • mb_ord - Récupère le point de code Unicode d'un caractère
    • 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 régulières multioctets
    • mb_regex_set_options - Lit et modifie les options des fonctions d'expression rationnelle à support de caractères multioctets
    • mb_scrub - Remplacez les séquences d'octets mal formées par le caractère de substitution.
    • mb_send_mail - Envoie un mail encodé
    • mb_split - Scinde une chaîne en tableau avec une expression rationnelle multioctets
    • 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_str_pad - Pad a multibyte string to a certain length with another multibyte string
    • mb_str_split - Pour une chaîne multi-octets donnée, renvoie un tableau de ses caractères
    • mb_substitute_character - Définit/Récupère 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_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_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_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
    • 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
    • memory_reset_peak_usage - Reset the peak memory usage
    • 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
    • mkdir - Crée un dossier
    • mktime - Retourne l'horodatage UNIX d'une date
    • money_format - Met un nombre au format monétaire
    • MongoDB\BSON\Binary::getData - Retourne les données de Binary
    • MongoDB\BSON\Binary::getType - Retourne le type de Binary
    • MongoDB\BSON\Binary::jsonSerialize - Retourne une représentation qui peut être convertie en JSON
    • MongoDB\BSON\Binary::serialize - Sérialise un Binary
    • MongoDB\BSON\Binary::unserialize - Désérialise un Binary
    • MongoDB\BSON\Binary::__construct - Construit un nouveau binaire
    • MongoDB\BSON\Binary::__toString - Retourne les données de Binary
    • MongoDB\BSON\BinaryInterface::getData - Retourne les données de BinaryInterface
    • MongoDB\BSON\BinaryInterface::getType - Retourne le type de BinaryInterface
    • MongoDB\BSON\BinaryInterface::__toString - Retourne les données de BinaryInterface
    • MongoDB\BSON\DBPointer::jsonSerialize - Retourne une représentation qui peut être convertie en JSON
    • MongoDB\BSON\DBPointer::serialize - Sérialise un DBPointer
    • MongoDB\BSON\DBPointer::unserialize - Désérialisé un DBPointer
    • MongoDB\BSON\DBPointer::__construct - Construit un nouveau DBPointer (inutilisé)
    • MongoDB\BSON\DBPointer::__toString - Retourne une chaîne vide
    • MongoDB\BSON\Decimal128::jsonSerialize - Retourne une représentation qui peut être convertie en JSON
    • MongoDB\BSON\Decimal128::serialize - Sérialise un Decimal128
    • MongoDB\BSON\Decimal128::unserialize - Désérialisé un Decimal128
    • MongoDB\BSON\Decimal128::__construct - Construit un nouveau Decimal128
    • MongoDB\BSON\Decimal128::__toString - Retourne la représentation sous forme de chaîne de caractère de Decimal128
    • MongoDB\BSON\Decimal128Interface::__toString - Retourne une représentation sous chaîne de caractères de Decimal128Interface
    • MongoDB\BSON\Document::fromBSON - Construct a new document instance from a BSON string
    • MongoDB\BSON\Document::fromJSON - Construct a new document instance from a JSON string
    • MongoDB\BSON\Document::fromPHP - Construct a new document instance from PHP data
    • MongoDB\BSON\Document::get - Returns the value of a key in the document
    • MongoDB\BSON\Document::getIterator - Returns an iterator for the BSON document
    • MongoDB\BSON\Document::has - Returns whether a key is present in the document
    • MongoDB\BSON\Document::serialize - Serialize a Document
    • MongoDB\BSON\Document::toCanonicalExtendedJSON - Returns the Canonical Extended JSON representation of the BSON document
    • MongoDB\BSON\Document::toPHP - Returns the PHP representation of the BSON document
    • MongoDB\BSON\Document::toRelaxedExtendedJSON - Returns the Relaxed Extended JSON representation of the BSON document
    • MongoDB\BSON\Document::unserialize - Unserialize a BSON document
    • MongoDB\BSON\Document::__construct - Construct a new BSON document (unused)
    • MongoDB\BSON\Document::__toString - Returns the string representation of this BSON Document
    • MongoDB\BSON\fromJSON - Retourne la représentation BSON d'une valeur JSON
    • MongoDB\BSON\fromPHP - Retourne la représentation BSON d'une valeur PHP
    • MongoDB\BSON\Int64::jsonSerialize - Retourne une représentation qui peut être convertie en JSON
    • MongoDB\BSON\Int64::serialize - Sérialise un Int64
    • MongoDB\BSON\Int64::unserialize - Désérialisé un Int64
    • MongoDB\BSON\Int64::__construct - Construit un nouveau Int64
    • MongoDB\BSON\Int64::__toString - Retourne la représentation sous forme de chaîne de caractère de Int64
    • MongoDB\BSON\Iterator::current - Returns the current element
    • MongoDB\BSON\Iterator::key - Returns the key of the current element
    • MongoDB\BSON\Iterator::next - Advances the iterator to next element
    • MongoDB\BSON\Iterator::rewind - Rewinds the Iterator to the first element
    • MongoDB\BSON\Iterator::valid - Checks if current position is valid
    • MongoDB\BSON\Iterator::__construct - Construct a new BSON iterator (unused)
    • MongoDB\BSON\Javascript::getCode - Retourne le code Javascript
    • MongoDB\BSON\Javascript::getScope - Retourne le document de portée de Javascript
    • MongoDB\BSON\Javascript::jsonSerialize - Retourne une représentation qui peut être convertie en JSON
    • MongoDB\BSON\Javascript::serialize - Sérialise un Javascript
    • MongoDB\BSON\Javascript::unserialize - Désérialisé un Javascript
    • MongoDB\BSON\Javascript::__construct - Construit un nouvel objet Javascript
    • MongoDB\BSON\Javascript::__toString - Retourne le code Javascript
    • MongoDB\BSON\JavascriptInterface::getCode - Retourne le code de JavascriptInterface
    • MongoDB\BSON\JavascriptInterface::getScope - Retourne le document de portée de JavascriptInterface
    • MongoDB\BSON\JavascriptInterface::__toString - Retourne le code de JavascriptInterface
    • MongoDB\BSON\MaxKey::jsonSerialize - Retourne une représentation qui peut être convertie en JSON
    • MongoDB\BSON\MaxKey::serialize - Sérialise un MaxKey
    • MongoDB\BSON\MaxKey::unserialize - Désérialisé un MaxKey
    • MongoDB\BSON\MaxKey::__construct - Construit un nouveau MaxKey
    • MongoDB\BSON\MinKey::jsonSerialize - Retourne une représentation qui peut être convertie en JSON
    • MongoDB\BSON\MinKey::serialize - Sérialise un MinKey
    • MongoDB\BSON\MinKey::unserialize - Désérialisé un MinKey
    • MongoDB\BSON\MinKey::__construct - Construit un nouveau MinKey
    • MongoDB\BSON\ObjectId::getTimestamp - Retourne le composant d'horodatage de ObjectId
    • MongoDB\BSON\ObjectId::jsonSerialize - Retourne une représentation qui peut être convertie en JSON
    • MongoDB\BSON\ObjectId::serialize - Sérialise un ObjectId
    • MongoDB\BSON\ObjectId::unserialize - Désérialisé un ObjectId
    • MongoDB\BSON\ObjectId::__construct - Construit un nouvel ObjectId
    • MongoDB\BSON\ObjectId::__toString - Retourne la représentation hexadécimale de cet ObjectId
    • MongoDB\BSON\ObjectIdInterface::getTimestamp - Retourne le composant d'horodatage de ObjectIdInterface
    • MongoDB\BSON\ObjectIdInterface::__toString - Retourne la représentation hexadécimale de ObjectIdInterface
    • MongoDB\BSON\PackedArray::fromPHP - Construct a new BSON array instance from PHP data
    • MongoDB\BSON\PackedArray::get - Returns the value of an index in the array
    • MongoDB\BSON\PackedArray::getIterator - Returns an iterator for the BSON array
    • MongoDB\BSON\PackedArray::has - Returns whether a index is present in the array
    • MongoDB\BSON\PackedArray::serialize - Serialize a BSON array
    • MongoDB\BSON\PackedArray::toPHP - Returns the PHP representation of the BSON array
    • MongoDB\BSON\PackedArray::unserialize - Unserialize a BSON array
    • MongoDB\BSON\PackedArray::__construct - Construct a new BSON array (unused)
    • MongoDB\BSON\PackedArray::__toString - Returns the string representation of this BSON array
    • MongoDB\BSON\Persistable::bsonSerialize - Provides an array or document to serialize as BSON
    • MongoDB\BSON\Regex::getFlags - Retourne les drapeux de la REGEX
    • MongoDB\BSON\Regex::getPattern - Retourne le masque du REGEX
    • MongoDB\BSON\Regex::jsonSerialize - Retourne une représentation qui peut être convertie en JSON
    • MongoDB\BSON\Regex::serialize - Sérialise un Regex
    • MongoDB\BSON\Regex::unserialize - Désérialisé un Regex
    • MongoDB\BSON\Regex::__construct - Construit une nouvelle REGEX
    • MongoDB\BSON\Regex::__toString - Retourne la chaîne représentant cette REGEX
    • MongoDB\BSON\RegexInterface::getFlags - Retourne les drapeaux de RegexInterface
    • MongoDB\BSON\RegexInterface::getPattern - Retourne le masque de RegexInterface
    • MongoDB\BSON\RegexInterface::__toString - Retourne la représentation sous forme de chaîne de caractère de cette RegexInterface
    • MongoDB\BSON\Serializable::bsonSerialize - Fournit un tableau ou un document à sérialiser en tant que BSON
    • MongoDB\BSON\Symbol::jsonSerialize - Retourne une représentation qui peut être convertie en JSON
    • MongoDB\BSON\Symbol::serialize - Sérialise un Symbol
    • MongoDB\BSON\Symbol::unserialize - Désérialisé un Symbol
    • MongoDB\BSON\Symbol::__construct - Construit un nouveau Symbol (inutilisé)
    • MongoDB\BSON\Symbol::__toString - Retourne la représentation sous forme de chaîne de caractère de Symbol
    • MongoDB\BSON\Timestamp::getIncrement - Retourne le composant d'incrémentation de ce Timestamp
    • MongoDB\BSON\Timestamp::getTimestamp - Retourne le composant d'horodatage de Timestamp
    • MongoDB\BSON\Timestamp::jsonSerialize - Retourne une représentation qui peut être convertie en JSON
    • MongoDB\BSON\Timestamp::serialize - Sérialise un Timestamp
    • MongoDB\BSON\Timestamp::unserialize - Désérialisé un Timestamp
    • MongoDB\BSON\Timestamp::__construct - Contruit un nouveau Timestamp
    • MongoDB\BSON\Timestamp::__toString - Retourne la représentation sous forme de chaîne de cet horodatage
    • MongoDB\BSON\TimestampInterface::getIncrement - Retourne le composant d'incrémentation de ce TimestampInterface
    • MongoDB\BSON\TimestampInterface::getTimestamp - Retourne le composant d'horodatage de TimestampInterface
    • MongoDB\BSON\TimestampInterface::__toString - Retourne la représentation sous forme de chaîne de caractère de TimestampInterface
    • MongoDB\BSON\toCanonicalExtendedJSON - Returns the Canonical Extended JSON representation of a BSON value
    • MongoDB\BSON\toJSON - Retourne la représentation JSON étendue héritée d'une valeur BSON
    • MongoDB\BSON\toPHP - Returns the PHP representation of a BSON value
    • MongoDB\BSON\toRelaxedExtendedJSON - Returns the Relaxed Extended JSON representation of a BSON value
    • MongoDB\BSON\Undefined::jsonSerialize - Retourne une représentation qui peut être convertie en JSON
    • MongoDB\BSON\Undefined::serialize - Sérialise un Undefined
    • MongoDB\BSON\Undefined::unserialize - Désérialisé un Undefined
    • MongoDB\BSON\Undefined::__construct - Construit un nouveau Undefined (inutilisé)
    • MongoDB\BSON\Undefined::__toString - Retourne une chaîne vide
    • MongoDB\BSON\Unserializable::bsonUnserialize - Construit l'objet à partir d'un tableau ou d'un document BSON
    • MongoDB\BSON\UTCDateTime::jsonSerialize - Retourne une représentation qui peut être convertie en JSON
    • MongoDB\BSON\UTCDateTime::serialize - Sérialise un UTCDateTime
    • MongoDB\BSON\UTCDateTime::toDateTime - Retourne la représentation DateTime de ce UTCDateTime
    • MongoDB\BSON\UTCDateTime::unserialize - Désérialisé un UTCDateTime
    • MongoDB\BSON\UTCDateTime::__construct - Construit un nouveau UTCDateTime
    • MongoDB\BSON\UTCDateTime::__toString - Retourne la représentation sous forme de chaîne de ce UTCDateTime
    • MongoDB\BSON\UTCDateTimeInterface::toDateTime - Retourne la représentation DateTime de UTCDateTimeInterface
    • MongoDB\BSON\UTCDateTimeInterface::__toString - Retourne la représentation sous forme de chaîne de caractère de UTCDateTimeInterface
    • 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\ClientEncryption::addKeyAltName - Adds an alternate name to a key document
    • MongoDB\Driver\ClientEncryption::createDataKey - Creates a key document
    • MongoDB\Driver\ClientEncryption::decrypt - Decrypt a value
    • MongoDB\Driver\ClientEncryption::deleteKey - Deletes a key document
    • MongoDB\Driver\ClientEncryption::encrypt - Encrypt a value
    • MongoDB\Driver\ClientEncryption::encryptExpression - Encrypts a match or aggregate expression
    • MongoDB\Driver\ClientEncryption::getKey - Gets a key document
    • MongoDB\Driver\ClientEncryption::getKeyByAltName - Gets a key document by an alternate name
    • MongoDB\Driver\ClientEncryption::getKeys - Gets all key documents
    • MongoDB\Driver\ClientEncryption::removeKeyAltName - Removes an alternate name from a key document
    • MongoDB\Driver\ClientEncryption::rewrapManyDataKey - Rewraps data keys
    • MongoDB\Driver\ClientEncryption::__construct - Create a new ClientEncryption object
    • MongoDB\Driver\Command::__construct - Crée une nouvelle commande
    • MongoDB\Driver\Cursor::current - Returns the current element
    • MongoDB\Driver\Cursor::getId - Retourne l'ID de ce curseur
    • MongoDB\Driver\Cursor::getServer - Retourne le serveur associé à ce curseur
    • MongoDB\Driver\Cursor::isDead - Vérifie si le curseur est épuisé ou peut avoir des résultats supplémentaires
    • MongoDB\Driver\Cursor::key - Returns the current result's index within the cursor
    • MongoDB\Driver\Cursor::next - Advances the cursor to the next result
    • MongoDB\Driver\Cursor::rewind - Rewind the cursor to the first result
    • MongoDB\Driver\Cursor::setTypeMap - Défini un type de carte à utiliser pour la désérialisation BSON
    • MongoDB\Driver\Cursor::toArray - Retourne un tableau contenant tous les résultats pour ce curseur
    • MongoDB\Driver\Cursor::valid - Checks if the current position in the cursor is valid
    • MongoDB\Driver\Cursor::__construct - Créer un nouveau curseur (non utilisé)
    • MongoDB\Driver\CursorId::serialize - Serialize a CursorId
    • MongoDB\Driver\CursorId::unserialize - Unserialize a CursorId
    • MongoDB\Driver\CursorId::__construct - Créer un nouveau CursorId (non utilisé)
    • MongoDB\Driver\CursorId::__toString - Représentation sous forme de chaîne de l'ID de curseur
    • MongoDB\Driver\CursorInterface::getId - Returns the ID for this cursor
    • MongoDB\Driver\CursorInterface::getServer - Returns the server associated with this cursor
    • MongoDB\Driver\CursorInterface::isDead - Checks if the cursor may have additional results
    • MongoDB\Driver\CursorInterface::setTypeMap - Sets a type map to use for BSON unserialization
    • MongoDB\Driver\CursorInterface::toArray - Returns an array containing all results for this cursor
    • MongoDB\Driver\Exception\CommandException::getResultDocument - Retourne le document résultant pour la commande échoué
    • MongoDB\Driver\Exception\RuntimeException::hasErrorLabel - Retourne si un label d'erreur est associé avec une exception
    • MongoDB\Driver\Exception\WriteException::getWriteResult - Retourne le WriteResult pour l'opération d'écriture qui a échoué
    • MongoDB\Driver\Manager::addSubscriber - Registers a monitoring event subscriber with this Manager
    • MongoDB\Driver\Manager::createClientEncryption - Create a new ClientEncryption object
    • 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::executeReadCommand - Execute a database command that reads
    • MongoDB\Driver\Manager::executeReadWriteCommand - Execute a database command that reads and writes
    • MongoDB\Driver\Manager::executeWriteCommand - Execute a database command that writes
    • MongoDB\Driver\Manager::getEncryptedFieldsMap - Return the encryptedFieldsMap auto encryption option for the Manager
    • MongoDB\Driver\Manager::getReadConcern - Return the ReadConcern for the Manager
    • MongoDB\Driver\Manager::getReadPreference - Return the ReadPreference for the Manager
    • MongoDB\Driver\Manager::getServers - Retourner les serveurs auxquels ce gestionnaire est connecté
    • MongoDB\Driver\Manager::getWriteConcern - Return the WriteConcern for the Manager
    • MongoDB\Driver\Manager::removeSubscriber - Unregisters a monitoring event subscriber with this Manager
    • MongoDB\Driver\Manager::selectServer - Select a server matching a read preference
    • MongoDB\Driver\Manager::startSession - Start a new client session for use with this client
    • MongoDB\Driver\Manager::__construct - Create new MongoDB Manager
    • MongoDB\Driver\Monitoring\addSubscriber - Enregistre un abonnement de surveillance d'événement
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getCommandName - Returns the command name
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getDurationMicros - Returns the command's duration in microseconds
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getError - Returns the Exception associated with the failed command
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getOperationId - Returns the command's operation ID
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getReply - Returns the command reply document
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getRequestId - Returns the command's request ID
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getServer - Returns the Server on which the command was executed
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getServerConnectionId - Returns the server connection ID for the command
    • MongoDB\Driver\Monitoring\CommandFailedEvent::getServiceId - Returns the load balancer service ID for the command
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getCommand - Returns the command document
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getCommandName - Returns the command name
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getDatabaseName - Returns the database on which the command was executed
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getOperationId - Returns the command's operation ID
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getRequestId - Returns the command's request ID
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getServer - Returns the Server on which the command was executed
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getServerConnectionId - Returns the server connection ID for the command
    • MongoDB\Driver\Monitoring\CommandStartedEvent::getServiceId - Returns the load balancer service ID for the command
    • MongoDB\Driver\Monitoring\CommandSubscriber::commandFailed - Notification method for a failed command
    • MongoDB\Driver\Monitoring\CommandSubscriber::commandStarted - Notification method for a started command
    • MongoDB\Driver\Monitoring\CommandSubscriber::commandSucceeded - Notification method for a successful command
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getCommandName - Returns the command name
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getDurationMicros - Returns the command's duration in microseconds
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getOperationId - Returns the command's operation ID
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getReply - Returns the command reply document
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getRequestId - Returns the command's request ID
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServer - Returns the Server on which the command was executed
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServerConnectionId - Returns the server connection ID for the command
    • MongoDB\Driver\Monitoring\CommandSucceededEvent::getServiceId - Returns the load balancer service ID for the command
    • MongoDB\Driver\Monitoring\LogSubscriber::log - Notification method for a log message
    • MongoDB\Driver\Monitoring\removeSubscriber - Retire un abonnement de surveillance d'événement global
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverChanged - Notification method for a server description change
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverClosed - Notification method for closing a server
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatFailed - Notification method for a failed server heartbeat
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatStarted - Notification method for a started server heartbeat
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverHeartbeatSucceeded - Notification method for a successful server heartbeat
    • MongoDB\Driver\Monitoring\SDAMSubscriber::serverOpening - Notification method for opening a server
    • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyChanged - Notification method for a topology description change
    • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyClosed - Notification method for closing the topology
    • MongoDB\Driver\Monitoring\SDAMSubscriber::topologyOpening - Notification method for opening the topology
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getHost - Returns the hostname of the server
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getNewDescription - Returns the new description for the server
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getPort - Returns the port on which this server is listening
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getPreviousDescription - Returns the previous description for the server
    • MongoDB\Driver\Monitoring\ServerChangedEvent::getTopologyId - Returns the topology ID associated with this server
    • MongoDB\Driver\Monitoring\ServerClosedEvent::getHost - Returns the hostname of the server
    • MongoDB\Driver\Monitoring\ServerClosedEvent::getPort - Returns the port on which this server is listening
    • MongoDB\Driver\Monitoring\ServerClosedEvent::getTopologyId - Returns the topology ID associated with this server
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getDurationMicros - Returns the heartbeat's duration in microseconds
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getError - Returns the Exception associated with the failed heartbeat
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getHost - Returns the hostname of the server
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::getPort - Returns the port on which this server is listening
    • MongoDB\Driver\Monitoring\ServerHeartbeatFailedEvent::isAwaited - Returns whether the heartbeat used a streaming protocol
    • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getHost - Returns the hostname of the server
    • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::getPort - Returns the port on which this server is listening
    • MongoDB\Driver\Monitoring\ServerHeartbeatStartedEvent::isAwaited - Returns whether the heartbeat used a streaming protocol
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getDurationMicros - Returns the heartbeat's duration in microseconds
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getHost - Returns the hostname of the server
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getPort - Returns the port on which this server is listening
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::getReply - Returns the heartbeat reply document
    • MongoDB\Driver\Monitoring\ServerHeartbeatSucceededEvent::isAwaited - Returns whether the heartbeat used a streaming protocol
    • MongoDB\Driver\Monitoring\ServerOpeningEvent::getHost - Returns the hostname of the server
    • MongoDB\Driver\Monitoring\ServerOpeningEvent::getPort - Returns the port on which this server is listening
    • MongoDB\Driver\Monitoring\ServerOpeningEvent::getTopologyId - Returns the topology ID associated with this server
    • MongoDB\Driver\Monitoring\TopologyChangedEvent::getNewDescription - Returns the new description for the topology
    • MongoDB\Driver\Monitoring\TopologyChangedEvent::getPreviousDescription - Returns the previous description for the topology
    • MongoDB\Driver\Monitoring\TopologyChangedEvent::getTopologyId - Returns the topology ID
    • MongoDB\Driver\Monitoring\TopologyClosedEvent::getTopologyId - Returns the topology ID
    • MongoDB\Driver\Monitoring\TopologyOpeningEvent::getTopologyId - Returns the topology ID
    • MongoDB\Driver\Query::__construct - Create a 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::isDefault - Checks if this is the default read concern
    • MongoDB\Driver\ReadConcern::serialize - Serialize a ReadConcern
    • MongoDB\Driver\ReadConcern::unserialize - Unserialize a ReadConcern
    • MongoDB\Driver\ReadConcern::__construct - Create a new ReadConcern
    • MongoDB\Driver\ReadPreference::bsonSerialize - Returns an object for BSON serialization
    • MongoDB\Driver\ReadPreference::getHedge - Returns the ReadPreference's "hedge" option
    • MongoDB\Driver\ReadPreference::getMaxStalenessSeconds - Returns the ReadPreference's "maxStalenessSeconds" option
    • MongoDB\Driver\ReadPreference::getMode - Returns the ReadPreference's "mode" option
    • MongoDB\Driver\ReadPreference::getModeString - Returns the ReadPreference's "mode" option as a string
    • MongoDB\Driver\ReadPreference::getTagSets - Returns the ReadPreference's "tagSets" option
    • MongoDB\Driver\ReadPreference::serialize - Serialize a ReadPreference
    • MongoDB\Driver\ReadPreference::unserialize - Unserialize a ReadPreference
    • MongoDB\Driver\ReadPreference::__construct - Créer un nouveau ReadPreference
    • 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::executeReadCommand - Execute a database command that reads on this server
    • MongoDB\Driver\Server::executeReadWriteCommand - Execute a database command that reads and writes on this server
    • MongoDB\Driver\Server::executeWriteCommand - Execute a database command that writes on this server
    • MongoDB\Driver\Server::getHost - Retourne le nom d'hôte du serveur
    • MongoDB\Driver\Server::getInfo - Retourne un tableau d'informations décrivant ce serveur
    • MongoDB\Driver\Server::getLatency - Retourne la latence de ce serveur en millisecondes
    • MongoDB\Driver\Server::getPort - Retourne le port sur lequel le serveur écoute
    • MongoDB\Driver\Server::getServerDescription - Returns a ServerDescription for this server
    • 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 - Créer un nouveau serveur (non utilisé)
    • MongoDB\Driver\ServerApi::bsonSerialize - Returns an object for BSON serialization
    • MongoDB\Driver\ServerApi::serialize - Serialize a ServerApi
    • MongoDB\Driver\ServerApi::unserialize - Unserialize a ServerApi
    • MongoDB\Driver\ServerApi::__construct - Create a new ServerApi instance
    • MongoDB\Driver\ServerDescription::getHelloResponse - Returns the server's most recent "hello" response
    • MongoDB\Driver\ServerDescription::getHost - Returns the hostname of this server
    • MongoDB\Driver\ServerDescription::getLastUpdateTime - Returns the server's last update time in microseconds
    • MongoDB\Driver\ServerDescription::getPort - Returns the port on which this server is listening
    • MongoDB\Driver\ServerDescription::getRoundTripTime - Returns the server's round trip time in milliseconds
    • MongoDB\Driver\ServerDescription::getType - Returns a string denoting the type of this server
    • MongoDB\Driver\Session::abortTransaction - Aborts a transaction
    • MongoDB\Driver\Session::advanceClusterTime - Advances the cluster time for this session
    • MongoDB\Driver\Session::advanceOperationTime - Advances the operation time for this session
    • MongoDB\Driver\Session::commitTransaction - Commits a transaction
    • MongoDB\Driver\Session::endSession - Terminates a session
    • MongoDB\Driver\Session::getClusterTime - Returns the cluster time for this session
    • MongoDB\Driver\Session::getLogicalSessionId - Returns the logical session ID for this session
    • MongoDB\Driver\Session::getOperationTime - Returns the operation time for this session
    • MongoDB\Driver\Session::getServer - Returns the server to which this session is pinned
    • MongoDB\Driver\Session::getTransactionOptions - Returns options for the currently running transaction
    • MongoDB\Driver\Session::getTransactionState - Returns the current transaction state for this session
    • MongoDB\Driver\Session::isDirty - Returns whether the session has been marked as dirty
    • MongoDB\Driver\Session::isInTransaction - Returns whether a multi-document transaction is in progress
    • MongoDB\Driver\Session::startTransaction - Starts a transaction
    • MongoDB\Driver\Session::__construct - Create a new Session (not used)
    • MongoDB\Driver\TopologyDescription::getServers - Returns the servers in the topology
    • MongoDB\Driver\TopologyDescription::getType - Returns a string denoting the type of this topology
    • MongoDB\Driver\TopologyDescription::hasReadableServer - Returns whether the topology has a readable server
    • MongoDB\Driver\TopologyDescription::hasWritableServer - Returns whether the topology has a writable server
    • 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::isDefault - Checks if this is the default write concern
    • MongoDB\Driver\WriteConcern::serialize - Serialize a WriteConcern
    • MongoDB\Driver\WriteConcern::unserialize - Unserialize a WriteConcern
    • MongoDB\Driver\WriteConcern::__construct - Construit un WriteConcern
    • MongoDB\Driver\WriteConcernError::getCode - Retourne le code d'erreur de WriteConcernError
    • MongoDB\Driver\WriteConcernError::getInfo - Retourne le document de métadonnées pour WriteConcernError
    • MongoDB\Driver\WriteConcernError::getMessage - Renvoie le message d'erreur du WriteConcernError
    • MongoDB\Driver\WriteError::getCode - Retourne le code d'erreur de WriteError
    • MongoDB\Driver\WriteError::getIndex - Retourne l'index de l'opération d'écriture correspondant à ce WriteError
    • MongoDB\Driver\WriteError::getInfo - Retourne le document de métadonnées pour WriteError
    • MongoDB\Driver\WriteError::getMessage - Renvoie le message d'erreur du WriteError
    • MongoDB\Driver\WriteResult::getDeletedCount - Renvoie le nombre de documents supprimés
    • MongoDB\Driver\WriteResult::getInsertedCount - Renvoie le nombre de documents insérés (à l'exception de Upserts)
    • MongoDB\Driver\WriteResult::getMatchedCount - Renvoie le nombre de documents sélectionnés pour la mise à jour
    • MongoDB\Driver\WriteResult::getModifiedCount - Renvoie le nombre de documents existants mis à jour
    • MongoDB\Driver\WriteResult::getServer - Retourne le serveur associé à ce résultat d'écriture
    • MongoDB\Driver\WriteResult::getUpsertedCount - Renvoie le nombre de documents insérés par un upsert
    • MongoDB\Driver\WriteResult::getUpsertedIds - Retourne un tableau d'identificateurs pour les documents upserted
    • MongoDB\Driver\WriteResult::getWriteConcernError - Retourne toute erreur de WriteConcern qui s'est produite
    • MongoDB\Driver\WriteResult::getWriteErrors - Retourne toutes les erreurs d'écriture qui se sont produites
    • MongoDB\Driver\WriteResult::isAcknowledged - Retourne si l'écriture a été reconnue
    • 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
    • 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
    • mt_getrandmax - La plus grande valeur aléatoire possible
    • mt_rand - Génère une valeur aléatoire via le générateur de nombre aléatoire Mersenne Twister
    • mt_srand - Initialise le générateur de nombres aléatoires Mersenne Twister
    • 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
    • mysqli::$affected_rows - Retourne le nombre de lignes affectées par la dernière opération MySQL
    • mysqli::$client_info - Récupère des informations sur le client MySQL
    • mysqli::$client_version - Retourne la version du client MySQL sous forme d'un entier
    • mysqli::$connect_errno - Retourne le code d'erreur du dernier appel de connexion
    • mysqli::$connect_error - Retourne une description de la dernière erreur de connexion
    • 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 la valeur généré pour une colonne AUTO_INCREMENT 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ébogage
    • mysqli::dump_debug_info - Écrit les informations de débogage dans les logs
    • mysqli::escape_string - Alias de mysqli_real_escape_string
    • mysqli::execute_query - Prepares, binds parameters, and executes SQL statement
    • mysqli::get_charset - Retourne un objet représentant le jeu de caractères
    • 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 un objet à 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 ou plusieurs requêtes sur la base de donnée
    • 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::savepoint - Définit 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::set_charset - Définit le jeu de caractères du client
    • 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_connect - Alias de mysqli::__construct
    • mysqli_driver::$report_mode - Définit le mode du rapport d'erreur mysqli
    • mysqli_driver::embedded_server_end - Arrête le serveur embarqué
    • mysqli_driver::embedded_server_start - Initialise et démarre le serveur embarqué
    • mysqli_execute - Alias de mysqli_stmt_execute
    • mysqli_get_client_stats - Retourne les statistiques client par processus
    • mysqli_get_links_stats - Retourne des informations sur les liens ouverts et mis en cache
    • 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 l'ensemble de résultats
    • 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 le jeu de résultats
    • mysqli_result::data_seek - Déplace le pointeur interne de résultat
    • mysqli_result::fetch_all - Récupère toutes les lignes de résultats dans un tableau associatif, numérique, ou les deux
    • mysqli_result::fetch_array - Récupère la ligne suivante d'un ensemble de résultats sous forme de tableau associatif, numérique ou les deux
    • mysqli_result::fetch_assoc - Récupère la ligne suivante d'un ensemble de résultats sous forme de tableau associatif
    • mysqli_result::fetch_column - Fetch a single column from the next row of a result set
    • 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 suivante d'un ensemble de résultats 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_result::getIterator - Retrieve an external iterator
    • mysqli_result::__construct - Constructs a mysqli_result object
    • mysqli_sql_exception::getSqlState - Returns the SQLSTATE error code
    • mysqli_stmt::$affected_rows - Retourne le nombre total de lignes modifiées, effacées insérées, ou correspondant 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 colonnes 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 extraites du serveur
    • mysqli_stmt::$param_count - Retourne le nombre de paramètres 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 - Ajuste le pointeur de résultat vers une ligne arbitraire dans le résultat mis en mémoire tampon.
    • 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 en tant qu'objet mysqli_result
    • 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 ensemble de résultats dans un tampon interne
    • mysqli_stmt::__construct - Construit un nouvel objet mysqli_stmt
    • mysqli_warning::next - Récupère le prochain avertissement
    • mysqli_warning::__construct - Private constructor to disallow direct instantiation
    • 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
    • mysql_xdevapi\Client::close - Close client
  • n
    • natcasesort - Trie un tableau avec l'algorithme à "ordre naturel" insensible à la casse
    • natsort - Trie un tableau avec l'algorithme à "ordre naturel"
    • net_get_interfaces - Get network interfaces
    • 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::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::getRawDecomposition - Gets the Decomposition_Mapping property for the given UTF-8 encoded code point
    • Normalizer::isNormalized - Vérifie si une chaîne est normalisée
    • Normalizer::normalize - Normalise une chaîne en entrée
    • 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 - Nettoyer (effacer) le contenu du tampon de sortie actif.
    • ob_end_clean - Effacez (nettoyez) le contenu du tampon de sortie actif et désactivez-le.
    • ob_end_flush - Vide (envoie) la valeur de retour du gestionnaire de sortie actif et désactive le tampon de sortie actif
    • ob_flush - Vide (envoie) la valeur de retour du gestionnaire de sortie actif.
    • ob_get_clean - Obtiens le contenu du tampon de sortie actif et désactive-le
    • ob_get_contents - Retourne le contenu du tampon de sortie
    • ob_get_flush - Vide (envoie) la valeur de retour du gestionnaire de sortie actif, renvoie le contenu du tampon de sortie actif et le désactive.
    • 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
    • ocibindbyname - Alias de oci_bind_by_name
    • ocicancel - Alias de oci_cancel
    • ocicloselob - Alias de OCILob::close
    • ocicollappend - Alias de OCICollection::append
    • ocicollassign - Alias de OCICollection::assign
    • ocicollassignelem - Alias de OCICollection::assignElem
    • OCICollection::append - Ajoute un élément à une collection Oracle
    • OCICollection::assign - Assigne une valeur à une collection depuis une autre collection Oracle
    • OCICollection::assignElem - Assigne une valeur à un élément d'une collection Oracle
    • OCICollection::free - Libère les ressources associées avec un objet de collection
    • OCICollection::getElem - Retourne la valeur d'un élément d'une collection Oracle
    • OCICollection::max - Retourne le nombre maximal de valeurs d'une collection Oracle
    • OCICollection::size - Retourne la taille d'une collection Oracle
    • OCICollection::trim - Supprime les derniers éléments d'une collection Oracle
    • ocicollgetelem - Alias de OCICollection::getElem
    • ocicollmax - Alias de OCICollection::max
    • ocicollsize - Alias de OCICollection::size
    • ocicolltrim - Alias de OCICollection::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 OCICollection::free
    • ocifreecursor - Alias de oci_free_statement
    • ocifreedesc - Alias de OCILob::free
    • ocifreestatement - Alias de oci_free_statement
    • ociinternaldebug - Alias de oci_internal_debug
    • ociloadlob - Alias de OCILob::load
    • OCILob::append - Ajoute des données à un LOB Oracle
    • OCILob::close - Ferme un LOB Oracle
    • OCILob::eof - Test la fin du LOB Oracle
    • OCILob::erase - Écrase une partie d'un LOB Oracle
    • OCILob::export - Exporte un LOB Oracle dans un fichier
    • OCILob::flush - Écrit les LOB Oracle sur le disque
    • OCILob::free - Détruit un pointeur de LOB Oracle
    • OCILob::getBuffering - Retourne l'état de bufferisation LOB d'Oracle
    • OCILob::import - Importe un fichier dans LOB Oracle
    • OCILob::load - Retourne le contenu d'un LOB
    • OCILob::read - Lit une partie d'un LOB Oracle
    • OCILob::rewind - Ramène le pointeur interne d'un LOB Oracle au début
    • OCILob::save - Sauvegarde des données dans un LOB Oracle
    • OCILob::saveFile - Alias de OCILob::import
    • OCILob::seek - Déplace le pointeur interne d'un LOB Oracle
    • OCILob::setBuffering - Active/désactive la bufferisation des LOB Oracle
    • OCILob::size - Retourne la taille d'un LOB Oracle
    • OCILob::tell - Retourne la position courante du pointeur de LOB
    • OCILob::truncate - Tronque un LOB Oracle
    • OCILob::write - Écrit des données dans un LOB Oracle
    • OCILob::writeTemporary - Écrit un LOB Oracle temporaire
    • OCILob::writeToFile - Alias de OCILob::export
    • 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 OCILob::save
    • ocisavelobfile - Alias de OCILob::import
    • ociserverversion - Alias de oci_server_version
    • ocisetprefetch - Alias de oci_set_prefetch
    • ocistatementtype - Alias de oci_statement_type
    • ociwritelobtofile - Alias de OCILob::export
    • ociwritetemporarylob - Alias de OCILob::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 multidimensionnel
    • 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
    • oci_internal_debug - Enables or disables internal debug output
    • 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_register_taf_callback - Register a user-defined callback function for Oracle Database TAF
    • 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_call_timeout - Sets a millisecond timeout for database calls
    • oci_set_client_identifier - Définit l'identifiant du client
    • oci_set_client_info - Définit l'information concernant le client
    • oci_set_db_operation - Sets the database operation
    • 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_set_prefetch_lob - Sets the amount of data prefetched for each CLOB or BLOB.
    • oci_statement_type - Retourne le type de la requête Oracle
    • oci_unregister_taf_callback - Unregister a user-defined callback function for Oracle Database TAF
    • 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_connection_string_is_quoted - Determines if an ODBC connection string value is quoted
    • odbc_connection_string_quote - Quotes an ODBC connection string value
    • odbc_connection_string_should_quote - Determines if an ODBC connection string value should be quoted
    • odbc_cursor - Lit le nom du pointeur de résultat courant
    • odbc_data_source - Retourne des informations sur les DSNs disponibles
    • odbc_do - Alias de odbc_exec
    • odbc_error - Lit le dernier code d'erreur
    • odbc_errormsg - Lit le dernier message d'erreur
    • odbc_exec - Exécute directement 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 - Compile 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_cipher_key_length - Gets the cipher key length
    • openssl_cms_decrypt - Decrypt a CMS message
    • openssl_cms_encrypt - Encrypt a CMS message
    • openssl_cms_read - Export the CMS file to an array of PEM certificates
    • openssl_cms_sign - Sign a file
    • openssl_cms_verify - Verify a CMS signature
    • 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 CSR
    • openssl_csr_get_subject - Retourne le sujet d'une CSR
    • 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échiffrer les données
    • openssl_dh_compute_key - Calcule un secret partagé pour une valeur publique de la clé DH publique distante et la clé DH locale
    • openssl_digest - Calcule un digest
    • openssl_encrypt - Chiffre 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 de chiffrements disponibles
    • openssl_get_curve_names - Récupère la liste des noms de courbes disponibles pour ECC
    • 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
    • openssl_pkcs7_decrypt - Déchiffre un message S/MIME
    • openssl_pkcs7_encrypt - Chiffre un message S/MIME
    • openssl_pkcs7_read - Exporte le fichier PKCS7 vers un tableau de certificats PEM
    • 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_derive - Computes shared secret for public value of remote and local DH or ECDH key
    • 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 les détails de la 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 un objet
    • openssl_x509_verify - Vérifie la signature digitale d'un certificat x509 par rapport à une clé publique
    • 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 SSL - Liste des options de contexte SSL
    • Options de contexte Zip - Zip context option listing
    • Options de contexte Zlib - Liste des options de contexte Zlib
    • ord - Convertit le premier octet d'une chaîne en une valeur entre 0 et 255
    • 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::__construct - Construit une nouvelle instance de l'attribut Override
  • p
    • pack - Compacte des données dans une chaîne binaire
    • parallel\bootstrap - Bootstrapping
    • parallel\Channel::close - Closing
    • parallel\Channel::make - Access
    • parallel\Channel::open - Access
    • parallel\Channel::recv - Sharing
    • parallel\Channel::send - Sharing
    • parallel\Channel::__construct - Channel Construction
    • parallel\Events::addChannel - Targets
    • parallel\Events::addFuture - Targets
    • parallel\Events::poll - Polling
    • parallel\Events::remove - Targets
    • parallel\Events::setBlocking - Behaviour
    • parallel\Events::setInput - Input
    • parallel\Events::setTimeout - Behaviour
    • parallel\Events\Input::add - Inputs
    • parallel\Events\Input::clear - Inputs
    • parallel\Events\Input::remove - Inputs
    • parallel\Future::cancel - Cancellation
    • parallel\Future::cancelled - State Detection
    • parallel\Future::done - State Detection
    • parallel\Future::value - Resolution
    • parallel\run - Execution
    • parallel\Runtime::close - Runtime Graceful Join
    • parallel\Runtime::kill - Runtime Join
    • parallel\Runtime::run - Execution
    • parallel\Runtime::__construct - Runtime Construction
    • parallel\Sync::get - Access
    • parallel\Sync::notify - Synchronization
    • parallel\Sync::set - Access
    • parallel\Sync::wait - Synchronization
    • parallel\Sync::__construct - Construction
    • parallel\Sync::__invoke - Synchronization
    • 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
    • Parle\Lexer::advance - Process next lexer rule
    • Parle\Lexer::build - Finalize the lexer rule set
    • Parle\Lexer::callout - Define token callback
    • Parle\Lexer::consume - Pass the data for processing
    • Parle\Lexer::dump - Dump the state machine
    • Parle\Lexer::getToken - Retrieve the current token
    • Parle\Lexer::insertMacro - Insert regex macro
    • Parle\Lexer::push - Add a lexer rule
    • Parle\Lexer::reset - Reset lexer
    • Parle\Parser::advance - Process next parser rule
    • Parle\Parser::build - Finalize the grammar rules
    • Parle\Parser::consume - Consume the data for processing
    • Parle\Parser::dump - Dump the grammar
    • Parle\Parser::errorInfo - Retrieve the error information
    • Parle\Parser::left - Declare a token with left-associativity
    • Parle\Parser::nonassoc - Declare a token with no associativity
    • Parle\Parser::precedence - Declare a precedence rule
    • Parle\Parser::push - Add a grammar rule
    • Parle\Parser::reset - Reset parser state
    • Parle\Parser::right - Declare a token with right-associativity
    • Parle\Parser::sigil - Retrieve a matching part of a rule
    • Parle\Parser::sigilCount - Number of elements in matched rule
    • Parle\Parser::sigilName - Retrieve a rule or token name
    • Parle\Parser::token - Declare a token
    • Parle\Parser::tokenId - Get token id
    • Parle\Parser::trace - Trace the parser operation
    • Parle\Parser::validate - Validate input
    • Parle\RLexer::advance - Process next lexer rule
    • Parle\RLexer::build - Finalize the lexer rule set
    • Parle\RLexer::callout - Define token callback
    • Parle\RLexer::consume - Pass the data for processing
    • Parle\RLexer::dump - Dump the state machine
    • Parle\RLexer::getToken - Retrieve the current token
    • Parle\RLexer::insertMacro - Insert regex macro
    • Parle\RLexer::push - Add a lexer rule
    • Parle\RLexer::pushState - Push a new start state
    • Parle\RLexer::reset - Reset lexer
    • Parle\RParser::advance - Process next parser rule
    • Parle\RParser::build - Finalize the grammar rules
    • Parle\RParser::consume - Consume the data for processing
    • Parle\RParser::dump - Dump the grammar
    • Parle\RParser::errorInfo - Retrieve the error information
    • Parle\RParser::left - Declare a token with left-associativity
    • Parle\RParser::nonassoc - Declare a token with no associativity
    • Parle\RParser::precedence - Declare a precedence rule
    • Parle\RParser::push - Add a grammar rule
    • Parle\RParser::reset - Reset parser state
    • Parle\RParser::right - Declare a token with right-associativity
    • Parle\RParser::sigil - Retrieve a matching part of a rule
    • Parle\RParser::sigilCount - Number of elements in matched rule
    • Parle\RParser::sigilName - Retrieve a rule or token name
    • Parle\RParser::token - Declare a token
    • Parle\RParser::tokenId - Get token id
    • Parle\RParser::trace - Trace the parser operation
    • Parle\RParser::validate - Validate input
    • Parle\Stack::pop - Pop an item from the stack
    • Parle\Stack::push - Push an item into the stack
    • parse_ini_file - Analyse un fichier de configuration
    • parse_ini_string - Analyse une chaîne de configuration
    • parse_str - Analyse une chaîne de caractères d'une variable
    • parse_url - Analyse une URL et retourne ses composants
    • passthru - Exécute un programme externe et affiche le résultat brut
    • password_algos - Récupère tous les identifiants des algorithmes de hachage de mots de passe disponibles
    • 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_async_signals - Enable/disable asynchronous signal handling or return the old setting
    • pcntl_errno - Alias de pcntl_get_last_error
    • 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_rfork - Manipulates process resources
    • 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_signal_get_handler - Récupère le gestionnaire courant pour le signal spécifié
    • 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_unshare - Dissociates parts of the process execution context
    • 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
    • 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 - Copie des données d'un tableau PHP dans une table
    • PDO::pgsqlCopyFromFile - Copie des données d'un fichier dans une table
    • PDO::pgsqlCopyToArray - Copie des données d'une table de base de donnée dans un tableau PHP
    • PDO::pgsqlCopyToFile - Copie des données d'une table dans un fichier
    • 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 - Prépare et Exécute une requête SQL sans marque substitutive
    • 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 - Récupère les lignes restantes d'un ensemble de résultats
    • 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::getIterator - Gets result set iterator
    • 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_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 valeurs d'un tableaux associatifs en une forme convenable pour des requêtes SQL
    • 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 - Définit la position de la ligne 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_context_visibility - Détermine la visibilité des messages d'erreur du contexte retournés par pg_last_error et pg_result_error
    • 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::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::getAlias - Récupère l'alias pour Phar
    • Phar::getMetadata - Retourne les méta-données de l'archive phar
    • Phar::getModified - Indique si le fichier phar a été modifié
    • Phar::getPath - Récupère le chemin absolu de l'archive Phar sur le disque
    • 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 d'é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::unlinkArchive - Efface complètement une archive phar du disque et de la mémoire
    • Phar::webPhar - Redirige une requête depuis un navigateur web à un fichier interne dans l'archive phar
    • Phar::__construct - Construit un objet d'archive Phar
    • Phar::__destruct - Destructs a Phar archive object
    • 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 - Ajoutez un fichier à partir d'une chaîne de caractères à 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 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::setMetadata - Fixe les méta-données de l'archive
    • PharData::setSignatureAlgorithm - Assigne l'algorithme de signature d'un phar et l'applique
    • 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
    • PharData::__destruct - Destructs a non-executable tar or zip archive object
    • 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::getContent - Récupère le contenu entier du fichier 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::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::isCRCChecked - Détermine si le fichier a un CRC vérifié
    • PharFileInfo::setMetadata - Fixe les métadonnées spécifiques à un fichier
    • PharFileInfo::__construct - Construit un objet d'entrée Phar
    • PharFileInfo::__destruct - Destructs a Phar entry object
    • php:// - Accès aux divers flux I/O
    • phpcredits - Affiche les crédits de PHP
    • phpdbg_break_file - Insère un point d'arrêt dans une ligne d'un fichier
    • phpdbg_break_function - Insère un point d'arrêt à l'entrée d'une fonction
    • phpdbg_break_method - Insère un point d'arrêt à l'entrée d'une méthode
    • phpdbg_break_next - Insère un point d'arrêt au prochain opcode
    • phpdbg_clear - Supprime tous les points d'arrêt
    • phpdbg_color - Définie la couleur de certaines éléments
    • phpdbg_end_oplog - Description
    • phpdbg_exec - Tente de définir le contexte d'exécution
    • phpdbg_get_executable - Description
    • phpdbg_prompt - Définie l'invite de commande
    • phpdbg_start_oplog - Description
    • phpinfo - Affiche de nombreuses informations sur la configuration de PHP
    • PhpToken::getTokenName - Returns the name of the token.
    • PhpToken::is - Tells whether the token is of given kind.
    • PhpToken::isIgnorable - Tells whether the token would be ignored by the PHP parser.
    • PhpToken::tokenize - Splits given source into PHP tokens, represented by PhpToken objects.
    • PhpToken::__construct - Returns a new PhpToken object
    • PhpToken::__toString - Returns the textual content of the token.
    • phpversion - Retourne le numéro de la version courante de 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_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 une tâche à un worker spécifique 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_eaccess - Determine accessibility of a file
    • posix_errno - Alias de posix_get_last_error
    • posix_fpathconf - Returns the value of a configurable limit
    • 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 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_pathconf - Returns the value of a configurable limit
    • 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 - Définit les limites pour une ressource système
    • 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_sysconf - Returns system runtime information
    • 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_last_error_msg - Returns the error message of the last PCRE regex execution
    • 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 régulières
    • 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 - Éffectue une recherche de correspondance avec une expression régulière et remplace grâce à une fonction de rappel
    • 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
  • q
    • QuickHashIntHash::add - This method adds a new entry to the hash
    • QuickHashIntHash::delete - This method deletes an entry from the hash
    • QuickHashIntHash::exists - This method checks whether a key is part of the hash
    • QuickHashIntHash::get - This method retrieves a value from the hash by its key
    • QuickHashIntHash::getSize - Returns the number of elements in the hash
    • QuickHashIntHash::loadFromFile - This factory method creates a hash from a file
    • QuickHashIntHash::loadFromString - This factory method creates a hash from a string
    • QuickHashIntHash::saveToFile - This method stores an in-memory hash to disk
    • QuickHashIntHash::saveToString - This method returns a serialized version of the hash
    • QuickHashIntHash::set - This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
    • QuickHashIntHash::update - This method updates an entry in the hash with a new value
    • QuickHashIntHash::__construct - Creates a new QuickHashIntHash object
    • QuickHashIntSet::add - This method adds a new entry to the set
    • QuickHashIntSet::delete - This method deletes an entry from the set
    • QuickHashIntSet::exists - This method checks whether a key is part of the set
    • QuickHashIntSet::getSize - Returns the number of elements in the set
    • QuickHashIntSet::loadFromFile - This factory method creates a set from a file
    • QuickHashIntSet::loadFromString - This factory method creates a set from a string
    • QuickHashIntSet::saveToFile - This method stores an in-memory set to disk
    • QuickHashIntSet::saveToString - This method returns a serialized version of the set
    • QuickHashIntSet::__construct - Creates a new QuickHashIntSet object
    • QuickHashIntStringHash::add - This method adds a new entry to the hash
    • QuickHashIntStringHash::delete - This method deletes an entry from the hash
    • QuickHashIntStringHash::exists - This method checks whether a key is part of the hash
    • QuickHashIntStringHash::get - This method retrieves a value from the hash by its key
    • QuickHashIntStringHash::getSize - Returns the number of elements in the hash
    • QuickHashIntStringHash::loadFromFile - This factory method creates a hash from a file
    • QuickHashIntStringHash::loadFromString - This factory method creates a hash from a string
    • QuickHashIntStringHash::saveToFile - This method stores an in-memory hash to disk
    • QuickHashIntStringHash::saveToString - This method returns a serialized version of the hash
    • QuickHashIntStringHash::set - This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
    • QuickHashIntStringHash::update - This method updates an entry in the hash with a new value
    • QuickHashIntStringHash::__construct - Creates a new QuickHashIntStringHash object
    • QuickHashStringIntHash::add - This method adds a new entry to the hash
    • QuickHashStringIntHash::delete - This method deletes an entry from the hash
    • QuickHashStringIntHash::exists - This method checks whether a key is part of the hash
    • QuickHashStringIntHash::get - This method retrieves a value from the hash by its key
    • QuickHashStringIntHash::getSize - Returns the number of elements in the hash
    • QuickHashStringIntHash::loadFromFile - This factory method creates a hash from a file
    • QuickHashStringIntHash::loadFromString - This factory method creates a hash from a string
    • QuickHashStringIntHash::saveToFile - This method stores an in-memory hash to disk
    • QuickHashStringIntHash::saveToString - This method returns a serialized version of the hash
    • QuickHashStringIntHash::set - This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
    • QuickHashStringIntHash::update - This method updates an entry in the hash with a new value
    • QuickHashStringIntHash::__construct - Creates a new QuickHashStringIntHash object
    • 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 - Chiffre une valeur en utilisant un Salt
    • radius_send_request - Envoie une requête et attend 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\Engine::generate - Génère de l'aléatoire
    • Random\Engine\Mt19937::generate - Generate 32 bits of randomness
    • Random\Engine\Mt19937::__construct - Constructs a new Mt19937 engine
    • Random\Engine\Mt19937::__debugInfo - Returns the internal state of the engine
    • Random\Engine\Mt19937::__serialize - Serializes the Mt19937 object
    • Random\Engine\Mt19937::__unserialize - Deserializes the data parameter into a Mt19937 object
    • Random\Engine\PcgOneseq128XslRr64::generate - Generate 64 bits of randomness
    • Random\Engine\PcgOneseq128XslRr64::jump - Efficiently move the engine ahead multiple steps
    • Random\Engine\PcgOneseq128XslRr64::__construct - Constructs a new PCG Oneseq 128 XSL RR 64 engine
    • Random\Engine\PcgOneseq128XslRr64::__debugInfo - Returns the internal state of the engine
    • Random\Engine\PcgOneseq128XslRr64::__serialize - Serializes the PcgOneseq128XslRr64 object
    • Random\Engine\PcgOneseq128XslRr64::__unserialize - Deserializes the data parameter into a PcgOneseq128XslRr64 object
    • Random\Engine\Secure::generate - Generate cryptographically secure randomness
    • Random\Engine\Xoshiro256StarStar::generate - Generate 64 bits of randomness
    • Random\Engine\Xoshiro256StarStar::jump - Efficiently move the engine ahead by 2^128 steps
    • Random\Engine\Xoshiro256StarStar::jumpLong - Efficiently move the engine ahead by 2^192 steps
    • Random\Engine\Xoshiro256StarStar::__construct - Constructs a new xoshiro256** engine
    • Random\Engine\Xoshiro256StarStar::__debugInfo - Returns the internal state of the engine
    • Random\Engine\Xoshiro256StarStar::__serialize - Serializes the Xoshiro256StarStar object
    • Random\Engine\Xoshiro256StarStar::__unserialize - Deserializes the data parameter into a Xoshiro256StarStar object
    • Random\Randomizer::getBytes - Get random bytes
    • Random\Randomizer::getBytesFromString - Get random bytes from a source string
    • Random\Randomizer::getFloat - Get a uniformly selected float
    • Random\Randomizer::getInt - Get a uniformly selected integer
    • Random\Randomizer::nextFloat - Get a float from the right-open interval [0.0, 1.0)
    • Random\Randomizer::nextInt - Get a positive integer
    • Random\Randomizer::pickArrayKeys - Select random array keys
    • Random\Randomizer::shuffleArray - Get a permutation of an array
    • Random\Randomizer::shuffleBytes - Get a byte-wise permutation of a string
    • Random\Randomizer::__construct - Constructs a new Randomizer
    • Random\Randomizer::__serialize - Serializes the Randomizer object
    • Random\Randomizer::__unserialize - Deserializes the data parameter into a Randomizer object
    • random_bytes - Récupère des octets aléatoires cryptographiquement sécurisés
    • random_int - Récupère un entier sélectionné de manière uniforme et cryptographiquement sécurisée
    • 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::setPostfix - Définit le suffixe
    • RecursiveTreeIterator::setPrefixPart - Définit une partie du préfixe
    • RecursiveTreeIterator::valid - Vérifie la validité
    • RecursiveTreeIterator::__construct - Construit un nouvel objet RecursiveTreeIterator
    • Reflection::export - Exporte
    • Reflection::getModifierNames - Récupère le nom des modificateurs
    • ReflectionAttribute::getArguments - Retourne les arguments passés à l'attribut
    • ReflectionAttribute::getName - Retourne le nom de l'attribut
    • ReflectionAttribute::getTarget - Retourne la cible de l'attribut en tant que masque de bits
    • ReflectionAttribute::isRepeated - Retourne si l'attribut de ce nom à été répété sur des éléments de code
    • ReflectionAttribute::newInstance - Instancie la classe de l'attribut representée par cette classe ReflectionAttribute et ses arguments
    • ReflectionAttribute::__construct - Constructeur privé pour la désactivation de l'instanciation
    • ReflectionClass::export - Exporte une classe
    • ReflectionClass::getAttributes - Récupère les attributs d'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 de documentation
    • ReflectionClass::getEndLine - Récupère la fin d'une ligne
    • ReflectionClass::getExtension - Récupère un objet ReflectionExtension pour l'extension qui définit 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 où la classe a été déclaré
    • ReflectionClass::getInterfaceNames - Récupère les noms des interfaces
    • ReflectionClass::getInterfaces - Récupère les interfaces
    • ReflectionClass::getMethod - Récupère un ReflectionMethod pour une méthode de classe
    • ReflectionClass::getMethods - Récupère un tableau des méthodes
    • ReflectionClass::getModifiers - Récupère les modificateurs de classe
    • 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::getReflectionConstant - Récupère un ReflectionClassConstant pour une constante d'une classe
    • ReflectionClass::getReflectionConstants - Récupère les constantes de 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 - Vérifie si la classe est anonyme
    • ReflectionClass::isCloneable - Renseigne à propos de la propriété de duplication de la classe
    • ReflectionClass::isEnum - Vérifie si une classe est une énumération
    • 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::isIterable - Vérifie si cette classe est itérable
    • ReflectionClass::isIterateable - Alias de ReflectionClass::isIterable
    • ReflectionClass::isReadOnly - Vérifie si une classe est en lecture seule
    • 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
    • ReflectionClassConstant::export - Exporte
    • ReflectionClassConstant::getAttributes - Gets Attributes
    • ReflectionClassConstant::getDeclaringClass - Récupère la classe déclarante
    • ReflectionClassConstant::getDocComment - Récupère le commentaire de documentation
    • ReflectionClassConstant::getModifiers - Récupère les modificateurs de la constante de classe
    • ReflectionClassConstant::getName - Récupère le nom de la constante
    • ReflectionClassConstant::getValue - Récupère la valeur
    • ReflectionClassConstant::isEnumCase - Checks if class constant is an Enum case
    • ReflectionClassConstant::isFinal - Checks if class constant is final
    • ReflectionClassConstant::isPrivate - Vérifie si la constante de classe est privée
    • ReflectionClassConstant::isProtected - Vérifie si la constante de classe est protégée
    • ReflectionClassConstant::isPublic - Vérifie si la constante de classe est publique
    • ReflectionClassConstant::__construct - Construit une ReflectionClassConstant
    • ReflectionClassConstant::__toString - Retourne la représentation sous forme de chaîne de caractères de l'objet ReflectionClassConstant
    • ReflectionEnum::getBackingType - Gets the backing type of an Enum, if any
    • ReflectionEnum::getCase - Returns a specific case of an Enum
    • ReflectionEnum::getCases - Returns a list of all cases on an Enum
    • ReflectionEnum::hasCase - Checks for a case on an Enum
    • ReflectionEnum::isBacked - Determines if an Enum is a Backed Enum
    • ReflectionEnum::__construct - Instantiates a ReflectionEnum object
    • ReflectionEnumBackedCase::getBackingValue - Gets the scalar value backing this Enum case
    • ReflectionEnumBackedCase::__construct - Instantiates a ReflectionEnumBackedCase object
    • ReflectionEnumUnitCase::getEnum - Gets the reflection of the enum of this case
    • ReflectionEnumUnitCase::getValue - Gets the enum case object described by this reflection object
    • ReflectionEnumUnitCase::__construct - Instantiates a ReflectionEnumUnitCase object
    • 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
    • ReflectionFiber::getCallable - Gets the callable used to create the Fiber
    • ReflectionFiber::getExecutingFile - Get the file name of the current execution point
    • ReflectionFiber::getExecutingLine - Get the line number of the current execution point
    • ReflectionFiber::getFiber - Get the reflected Fiber instance
    • ReflectionFiber::getTrace - Get the backtrace of the current execution point
    • ReflectionFiber::__construct - Constructs a ReflectionFiber object
    • ReflectionFunction::export - Exporte une fonction
    • ReflectionFunction::getClosure - Retourne une fermeture créée dynamiquement pour la fonction
    • ReflectionFunction::invoke - Invoque une fonction
    • ReflectionFunction::invokeArgs - Invoque les arguments d'une fonction
    • ReflectionFunction::isAnonymous - Checks if a function is anonymous
    • ReflectionFunction::isDisabled - Vérifie si une fonction est désactivée
    • ReflectionFunction::__construct - Construit un nouvel objet ReflectionFunction
    • ReflectionFunction::__toString - Retourne une représentation textuelle de l'objet ReflectionFunction
    • ReflectionFunctionAbstract::getAttributes - Gets Attributes
    • ReflectionFunctionAbstract::getClosureScopeClass - Retourne la portée de la classe associée à la fermeture
    • ReflectionFunctionAbstract::getClosureThis - Retourne le pointeur lié à la fermeture
    • ReflectionFunctionAbstract::getClosureUsedVariables - Returns an array of the used variables in the Closure
    • 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 - Récupère le type de retour définit pour une fonction
    • 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::getTentativeReturnType - Returns the tentative return type associated with the function
    • ReflectionFunctionAbstract::hasReturnType - Vérifie si la fonction a un type de retour définit
    • ReflectionFunctionAbstract::hasTentativeReturnType - Returns whether the function has a tentative 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::isStatic - Vérifie si la fonction est statique
    • 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 d'un objet ReflectionFunctionAbstract
    • ReflectionGenerator::getExecutingFile - Récupère le nom de fichier du générateur actuellement exécuté
    • ReflectionGenerator::getExecutingGenerator - Récupère l'objet Generator exécuté
    • ReflectionGenerator::getExecutingLine - Récupère la ligne actuellement exécutée du générateur
    • ReflectionGenerator::getFunction - Récupère le nom de fonction du générateur
    • ReflectionGenerator::getThis - Récupère la valeur de $this du générateur
    • ReflectionGenerator::getTrace - Récupère la trace du générateur exécutant
    • ReflectionGenerator::__construct - Construit un objet ReflectionGenerator
    • ReflectionIntersectionType::getTypes - Returns the types included in the intersection type
    • ReflectionMethod::createFromMethodName - Créer une nouvelle 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éflé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::hasPrototype - Retourne si la méthode a un prototype
    • 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::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
    • ReflectionNamedType::getName - Récupère le nom du type en tant que chaîne
    • ReflectionNamedType::isBuiltin - Vérifie si c'est un type intégré
    • 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::getAttributes - Gets Attributes
    • ReflectionParameter::getClass - Récupère un objet ReflectionClass pour le paramètre étant reflété ou null
    • 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 ou null
    • ReflectionParameter::getName - Récupère le nom du paramètre
    • ReflectionParameter::getPosition - Récupère la position d'un paramètre
    • ReflectionParameter::getType - Récupère le type du paramètre
    • ReflectionParameter::hasType - Vérifie si un paramètre a un 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::getAttributes - Gets Attributes
    • ReflectionProperty::getDeclaringClass - Récupère la classe déclarante
    • ReflectionProperty::getDefaultValue - Returns the default value declared for a property
    • ReflectionProperty::getDocComment - Récupère le commentaire de documentation d'une propriété
    • ReflectionProperty::getModifiers - Récupère les modificateurs de propriété
    • ReflectionProperty::getName - Récupère le nom de la propriété
    • ReflectionProperty::getType - Récupère le type d'une propriété
    • ReflectionProperty::getValue - Récupère la valeur de la propriété
    • ReflectionProperty::hasDefaultValue - Checks if property has a default value declared
    • ReflectionProperty::hasType - Vérifie si la propriété à un type
    • ReflectionProperty::isDefault - Vérifie si la propriété est celle par défaut
    • ReflectionProperty::isInitialized - Vérifie si une propriété est initialisée
    • ReflectionProperty::isPrivate - Vérifie si la propriété est privée
    • ReflectionProperty::isPromoted - Checks if property is promoted
    • ReflectionProperty::isProtected - Vérifie si la propriété est protégée
    • ReflectionProperty::isPublic - Vérifie si la propriété est publique
    • ReflectionProperty::isReadOnly - Checks if property is readonly
    • ReflectionProperty::isStatic - Vérifie si la propriété est statique
    • ReflectionProperty::setAccessible - Définit l'accessibilité d'une 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
    • ReflectionReference::fromArrayElement - Create a ReflectionReference from an array element
    • ReflectionReference::getId - Get unique ID of a reference
    • ReflectionReference::__construct - Private constructor to disallow direct instantiation
    • ReflectionType::allowsNull - Vérifie si null est permit
    • ReflectionType::__toString - To string
    • ReflectionUnionType::getTypes - Returns the types included in the union type
    • 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 - Construit un objet ReflectionZendExtension
    • ReflectionZendExtension::__toString - Gestionnaire de conversion en chaîne de caractères
    • Reflector::export - Exporte
    • 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
    • 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
    • Result::getAffectedItemsCount - Get affected row count
    • Result::getAutoIncrementValue - Get autoincremented value
    • Result::getGeneratedIds - Get generated ids
    • Result::getWarnings - Get warnings from last operation
    • Result::getWarningsCount - Get warning count from last operation
    • Result::__construct - Result constructor
    • ReturnTypeWillChange::__construct - Construit une nouvelle instance de l'attribut ReturnTypeWillChange
    • rewind - Replace le pointeur de fichier au début
    • rewinddir - Retourne à la première entrée du dossier
    • rmdir - Efface un dossier
    • rnp_backend_string - Return cryptographic backend library name
    • rnp_backend_version - Return cryptographic backend library version
    • rnp_decrypt - Decrypt PGP message
    • rnp_dump_packets - Dump OpenPGP packets stream information in humand-readable format
    • rnp_dump_packets_to_json - Dump OpenPGP packets stream information to the JSON string
    • rnp_ffi_create - Create the top-level object used for interacting with the library
    • rnp_ffi_destroy - Destroy the top-level object used for interacting with the library
    • rnp_ffi_set_pass_provider - Set password provider callback function
    • rnp_import_keys - Import keys from PHP string to the keyring and receive JSON describing new/updated keys
    • rnp_import_signatures - Import standalone signatures to the keyring and receive JSON describing updated keys
    • rnp_key_export - Export a key
    • rnp_key_export_autocrypt - Export minimal key for autocrypt feature (just 5 packets: key, uid, signature, encryption subkey, signature)
    • rnp_key_export_revocation - Generate and export primary key revocation signature
    • rnp_key_get_info - Get information about the key
    • rnp_key_remove - Remove a key from keyring(s)
    • rnp_key_revoke - Revoke a key or subkey by generating and adding revocation signature
    • rnp_list_keys - Enumerate all keys present in a keyring by specified identifer type
    • rnp_load_keys - Load keys from PHP string
    • rnp_load_keys_from_path - Load keys from specified path
    • rnp_locate_key - Search for the key
    • rnp_op_encrypt - Encrypt message
    • rnp_op_generate_key - Generate key
    • rnp_op_sign - Perform signing operation on a binary data, return embedded signature(s)
    • rnp_op_sign_cleartext - Perform signing operation on a textual data, return cleartext signed message
    • rnp_op_sign_detached - Perform signing operation, return detached signature(s)
    • rnp_op_verify - Verify embedded or cleartext signatures
    • rnp_op_verify_detached - Verify detached signatures
    • rnp_save_keys - Save keys to PHP string
    • rnp_save_keys_to_path - Save keys to specified path
    • rnp_supported_features - Get supported features in JSON format
    • rnp_version_string - RNP library version
    • rnp_version_string_full - Full version string of RNP library
    • round - Arrondit un nombre à virgule flottante
    • RowResult::fetchAll - Get all rows from result
    • RowResult::fetchOne - Get row from result
    • RowResult::getColumnNames - Get all column names
    • RowResult::getColumns - Get column metadata
    • RowResult::getColumnsCount - Get column count
    • RowResult::getWarnings - Get warnings from last operation
    • RowResult::getWarningsCount - Get warning count from last operation
    • RowResult::__construct - RowResult constructor
    • rpmaddtag - Add tag retrieved in query
    • rpmdbinfo - Get information from installed RPM
    • rpmdbsearch - Search RPM packages
    • rpmgetsymlink - Get target of a symlink
    • rpminfo - Get information from a RPM file
    • rpmvercmp - RPM version comparison
    • 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 décroissant
    • rtrim - Supprime les espaces (ou d'autres caractères) de fin de chaîne
    • runkit7_constant_add - Similar to define(), but allows defining in class definitions as well
    • runkit7_constant_redefine - Redefine an already defined constant
    • runkit7_constant_remove - Remove/Delete an already defined constant
    • runkit7_function_add - Add a new function, similar to create_function
    • runkit7_function_copy - Copy a function to a new function name
    • runkit7_function_redefine - Replace a function definition with a new implementation
    • runkit7_function_remove - Remove a function definition
    • runkit7_function_rename - Change a function's name
    • runkit7_import - Process a PHP file importing function and class definitions, overwriting where appropriate
    • runkit7_method_add - Dynamically adds a new method to a given class
    • runkit7_method_copy - Copies a method from class to another
    • runkit7_method_redefine - Dynamically changes the code of the given method
    • runkit7_method_remove - Dynamically removes the given method
    • runkit7_method_rename - Dynamically changes the name of the given method
    • runkit7_object_id - Return the integer object handle for given object
    • runkit7_superglobals - Return numerically indexed array of registered superglobals
    • runkit7_zval_inspect - Returns information about the passed in value with data types, reference counts, etc
  • s
    • sapi_windows_cp_conv - Convert string from one codepage to another
    • sapi_windows_cp_get - Get current codepage
    • sapi_windows_cp_is_utf8 - Indicates whether the codepage is UTF-8 compatible
    • sapi_windows_cp_set - Set process codepage
    • sapi_windows_generate_ctrl_event - Send a CTRL event to another process
    • sapi_windows_set_ctrl_handler - Set or remove a CTRL event handler
    • sapi_windows_vt100_support - Get or set VT100 support for the specified stream associated to an output buffer of a Windows console.
    • scandir - Liste les fichiers et dossiers dans un dossier
    • Schema::createCollection - Add collection to schema
    • Schema::dropCollection - Drop collection from schema
    • Schema::existsInDatabase - Check if exists in database
    • Schema::getCollection - Get collection from schema
    • Schema::getCollectionAsTable - Get collection as a Table object
    • Schema::getCollections - Get all schema collections
    • Schema::getName - Get schema name
    • Schema::getSession - Get schema session
    • Schema::getTable - Get schema table
    • Schema::getTables - Get schema tables
    • Schema::__construct - Schema constructor
    • SchemaObject::getSchema - Get schema object
    • scoutapm_get_calls - Returns a list of instrumented calls that have occurred
    • scoutapm_list_instrumented_functions - List functions scoutapm will instrument.
    • SeasLog::alert - Record alert log information
    • SeasLog::analyzerCount - Get log count by level, log_path and key_word
    • SeasLog::analyzerDetail - Get log detail by level, log_path, key_word, start, limit, order
    • SeasLog::closeLoggerStream - Manually release stream flow from logger
    • SeasLog::critical - Record critical log information
    • SeasLog::debug - Record debug log information
    • SeasLog::emergency - Record emergency log information
    • SeasLog::error - Record error log information
    • SeasLog::flushBuffer - Flush logs buffer, dump to appender file, or send to remote api with tcp/udp
    • SeasLog::getBasePath - Get SeasLog base path.
    • SeasLog::getBuffer - Get the logs buffer in memory as array
    • SeasLog::getBufferEnabled - Determin if buffer enabled
    • SeasLog::getDatetimeFormat - Get SeasLog datetime format style
    • SeasLog::getLastLogger - Get SeasLog last logger path
    • SeasLog::getRequestID - Get SeasLog request_id differentiated requests
    • SeasLog::getRequestVariable - Get SeasLog request variable
    • SeasLog::info - Record info log information
    • SeasLog::log - The Common Record Log Function
    • SeasLog::notice - Record notice log information
    • SeasLog::setBasePath - Set SeasLog base path
    • SeasLog::setDatetimeFormat - Set SeasLog datetime format style
    • SeasLog::setLogger - Set SeasLog logger name
    • SeasLog::setRequestID - Set SeasLog request_id differentiated requests
    • SeasLog::setRequestVariable - Manually set SeasLog request variable
    • SeasLog::warning - Record warning log information
    • SeasLog::__construct - Description
    • SeasLog::__destruct - Description
    • seaslog_get_author - Get SeasLog author.
    • seaslog_get_version - Get SeasLog version.
    • 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
    • SensitiveParameter::__construct - Construit une nouvelle instance d'attribut SensitiveParameter
    • SensitiveParameterValue::getValue - Retourne la valeur sensible
    • SensitiveParameterValue::__construct - Construit un nouvel objet SensitiveParameterValue
    • SensitiveParameterValue::__debugInfo - Protège la valeur sensible contre une exposition accidentelle
    • 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
    • Session::close - Close session
    • Session::createSchema - Create new schema
    • Session::dropSchema - Drop a schema
    • Session::generateUUID - Get new UUID
    • Session::getDefaultSchema - Get default schema name
    • Session::getSchema - Get a new schema object
    • Session::getSchemas - Get the schemas
    • Session::getServerVersion - Get server version
    • Session::listClients - Get client list
    • Session::quoteName - Add quotes
    • Session::releaseSavepoint - Release set savepoint
    • Session::rollback - Rollback transaction
    • Session::rollbackTo - Rollback transaction to savepoint
    • Session::setSavepoint - Create savepoint
    • Session::sql - Create SQL query
    • Session::startTransaction - Start transaction
    • Session::__construct - Description constructor
    • 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
    • SessionIdInterface::create_sid - Créer un ID de session
    • SessionUpdateTimestampHandlerInterface::updateTimestamp - Mettre à jour l'horodatage
    • SessionUpdateTimestampHandlerInterface::validateId - Valider l'ID
    • session_abort - Abandonne les changements sur le tableau de session et termine la session
    • session_cache_expire - Récupère et/ou définie le 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 - Créer un nouvel ID de session
    • 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 - Exécute le ramasse miette des données de session
    • session_get_cookie_params - Lit la configuration du cookie de session
    • session_id - Lit et/ou modifie l'identifiant courant de 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_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_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
    • setrawcookie - Envoie un cookie sans encoder sa valeur en URL
    • 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_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
    • simdjson_decode - Decodes a JSON string
    • simdjson_is_valid - Check if a JSON string is valid
    • simdjson_key_count - Returns the value at a JSON pointer.
    • simdjson_key_exists - Check if the JSON contains the value referred to by a JSON pointer.
    • simdjson_key_value - Decodes the value of a JSON string located at the requested JSON pointer.
    • 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 nœud 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 nœud donné
    • SimpleXMLElement::count - Compte le nombre de fils pour un élément
    • SimpleXMLElement::current - Retourne l'entrée courante
    • SimpleXMLElement::getChildren - Renvoie les sous-éléments de l'élément courant
    • 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::hasChildren - Vérifie si l'élément actuel a des sous-éléments
    • SimpleXMLElement::key - Retourne la clé courante
    • SimpleXMLElement::next - Se déplace sur l'élément suivant
    • SimpleXMLElement::registerXPathNamespace - Crée un contexte préfixe/ns pour la prochaine requête XPath
    • SimpleXMLElement::rewind - Replace le pointeur au début
    • SimpleXMLElement::saveXML - Alias de SimpleXMLElement::asXML
    • SimpleXMLElement::valid - Vérifie si l'élément actuel est valide
    • 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
    • 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éfinit la 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 NET-SNMP
    • 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 - Alias de snmp_set_oid_output_format
    • snmp_set_oid_output_format - Définit le format de sortie OID
    • snmp_set_quick_print - Écrit la valeur courante de l'option enable de la bibliothèque NET-SNMP
    • snmp_set_valueretrieval - Spécifie la méthode avec laquelle les valeurs SNMP seront retournées
    • SoapClient::__call - Appelle une fonction SOAP (obsolète)
    • SoapClient::__construct - Constructeur SoapClient
    • SoapClient::__doRequest - Exécute une requête SOAP
    • SoapClient::__getCookies - Get list of cookies
    • 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 un cookie pour les requêtes 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::__construct - Constructeur SoapFault
    • SoapFault::__toString - Produit une représentation chaîne d'un objet SoapFault
    • SoapHeader::__construct - Constructeur SoapHeader
    • 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::__construct - Constructeur SoapServer
    • SoapVar::__construct - Constructeur SoapVar
    • socket_accept - Accepte une connexion sur un socket
    • socket_addrinfo_bind - Create and bind to a socket from a given addrinfo
    • socket_addrinfo_connect - Create and connect to a socket from a given addrinfo
    • socket_addrinfo_explain - Get information about addrinfo
    • socket_addrinfo_lookup - Get array with contents of getaddrinfo about the given hostname
    • socket_atmark - Determines whether socket is at out-of-band mark
    • 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 une instance de 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_export_stream - Export a socket into a stream that encapsulates a 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_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
    • socket_wsaprotocol_info_export - Exports the WSAPROTOCOL_INFO Structure
    • socket_wsaprotocol_info_import - Imports a Socket from another Process
    • socket_wsaprotocol_info_release - Releases an exported WSAPROTOCOL_INFO Structure
    • sodium_add - Add large numbers
    • sodium_base642bin - Decodes a base64-encoded string into raw binary.
    • sodium_bin2base64 - Encodes a raw binary string with base64.
    • sodium_bin2hex - Encode to hexadecimal
    • sodium_compare - Compare large numbers
    • sodium_crypto_aead_aes256gcm_decrypt - Verify then decrypt a message with AES-256-GCM
    • sodium_crypto_aead_aes256gcm_encrypt - Encrypt then authenticate with AES-256-GCM
    • sodium_crypto_aead_aes256gcm_is_available - Check if hardware supports AES256-GCM
    • sodium_crypto_aead_aes256gcm_keygen - Generate a random AES-256-GCM key
    • sodium_crypto_aead_chacha20poly1305_decrypt - Verify then decrypt with ChaCha20-Poly1305
    • sodium_crypto_aead_chacha20poly1305_encrypt - Encrypt then authenticate with ChaCha20-Poly1305
    • sodium_crypto_aead_chacha20poly1305_ietf_decrypt - Verify that the ciphertext includes a valid tag
    • sodium_crypto_aead_chacha20poly1305_ietf_encrypt - Encrypt a message
    • sodium_crypto_aead_chacha20poly1305_ietf_keygen - Generate a random ChaCha20-Poly1305 (IETF) key.
    • sodium_crypto_aead_chacha20poly1305_keygen - Generate a random ChaCha20-Poly1305 key.
    • sodium_crypto_aead_xchacha20poly1305_ietf_decrypt - (Preferred) Verify then decrypt with XChaCha20-Poly1305
    • sodium_crypto_aead_xchacha20poly1305_ietf_encrypt - (Preferred) Encrypt then authenticate with XChaCha20-Poly1305
    • sodium_crypto_aead_xchacha20poly1305_ietf_keygen - Generate a random XChaCha20-Poly1305 key.
    • sodium_crypto_auth - Compute a tag for the message
    • sodium_crypto_auth_keygen - Generate a random key for sodium_crypto_auth
    • sodium_crypto_auth_verify - Verifies that the tag is valid for the message
    • sodium_crypto_box - Authenticated public-key encryption
    • sodium_crypto_box_keypair - Randomly generate a secret key and a corresponding public key
    • sodium_crypto_box_keypair_from_secretkey_and_publickey - Create a unified keypair string from a secret key and public key
    • sodium_crypto_box_open - Authenticated public-key decryption
    • sodium_crypto_box_publickey - Extract the public key from a crypto_box keypair
    • sodium_crypto_box_publickey_from_secretkey - Calculate the public key from a secret key
    • sodium_crypto_box_seal - Anonymous public-key encryption
    • sodium_crypto_box_seal_open - Anonymous public-key decryption
    • sodium_crypto_box_secretkey - Extracts the secret key from a crypto_box keypair
    • sodium_crypto_box_seed_keypair - Deterministically derive the key pair from a single key
    • sodium_crypto_core_ristretto255_add - Adds an element
    • sodium_crypto_core_ristretto255_from_hash - Maps a vector
    • sodium_crypto_core_ristretto255_is_valid_point - Determines if a point on the ristretto255 curve
    • sodium_crypto_core_ristretto255_random - Generates a random key
    • sodium_crypto_core_ristretto255_scalar_add - Adds a scalar value
    • sodium_crypto_core_ristretto255_scalar_complement - The sodium_crypto_core_ristretto255_scalar_complement purpose
    • sodium_crypto_core_ristretto255_scalar_invert - Inverts a scalar value
    • sodium_crypto_core_ristretto255_scalar_mul - Multiplies a scalar value
    • sodium_crypto_core_ristretto255_scalar_negate - Negates a scalar value
    • sodium_crypto_core_ristretto255_scalar_random - Generates a random key
    • sodium_crypto_core_ristretto255_scalar_reduce - Reduces a scalar value
    • sodium_crypto_core_ristretto255_scalar_sub - Subtracts a scalar value
    • sodium_crypto_core_ristretto255_sub - Subtracts an element
    • sodium_crypto_generichash - Get a hash of the message
    • sodium_crypto_generichash_final - Complete the hash
    • sodium_crypto_generichash_init - Initialize a hash for streaming
    • sodium_crypto_generichash_keygen - Generate a random generichash key
    • sodium_crypto_generichash_update - Add message to a hash
    • sodium_crypto_kdf_derive_from_key - Derive a subkey
    • sodium_crypto_kdf_keygen - Generate a random root key for the KDF interface
    • sodium_crypto_kx_client_session_keys - Calculate the client-side session keys.
    • sodium_crypto_kx_keypair - Creates a new sodium keypair
    • sodium_crypto_kx_publickey - Extract the public key from a crypto_kx keypair
    • sodium_crypto_kx_secretkey - Extract the secret key from a crypto_kx keypair.
    • sodium_crypto_kx_seed_keypair - Description
    • sodium_crypto_kx_server_session_keys - Calculate the server-side session keys.
    • sodium_crypto_pwhash - Derive a key from a password, using Argon2
    • sodium_crypto_pwhash_scryptsalsa208sha256 - Derives a key from a password, using scrypt
    • sodium_crypto_pwhash_scryptsalsa208sha256_str - Get an ASCII encoded hash
    • sodium_crypto_pwhash_scryptsalsa208sha256_str_verify - Verify that the password is a valid password verification string
    • sodium_crypto_pwhash_str - Get an ASCII-encoded hash
    • sodium_crypto_pwhash_str_needs_rehash - Determine whether or not to rehash a password
    • sodium_crypto_pwhash_str_verify - Verifies that a password matches a hash
    • sodium_crypto_scalarmult - Compute a shared secret given a user's secret key and another user's public key
    • sodium_crypto_scalarmult_base - Alias de sodium_crypto_box_publickey_from_secretkey
    • sodium_crypto_scalarmult_ristretto255 - Computes a shared secret
    • sodium_crypto_scalarmult_ristretto255_base - Calculates the public key from a secret key
    • sodium_crypto_secretbox - Authenticated shared-key encryption
    • sodium_crypto_secretbox_keygen - Generate random key for sodium_crypto_secretbox
    • sodium_crypto_secretbox_open - Authenticated shared-key decryption
    • sodium_crypto_secretstream_xchacha20poly1305_init_pull - Initialize a secretstream context for decryption
    • sodium_crypto_secretstream_xchacha20poly1305_init_push - Initialize a secretstream context for encryption
    • sodium_crypto_secretstream_xchacha20poly1305_keygen - Generate a random secretstream key.
    • sodium_crypto_secretstream_xchacha20poly1305_pull - Decrypt a chunk of data from an encrypted stream
    • sodium_crypto_secretstream_xchacha20poly1305_push - Encrypt a chunk of data so that it can safely be decrypted in a streaming API
    • sodium_crypto_secretstream_xchacha20poly1305_rekey - Explicitly rotate the key in the secretstream state
    • sodium_crypto_shorthash - Compute a short hash of a message and key
    • sodium_crypto_shorthash_keygen - Get random bytes for key
    • sodium_crypto_sign - Sign a message
    • sodium_crypto_sign_detached - Sign the message
    • sodium_crypto_sign_ed25519_pk_to_curve25519 - Convert an Ed25519 public key to a Curve25519 public key
    • sodium_crypto_sign_ed25519_sk_to_curve25519 - Convert an Ed25519 secret key to a Curve25519 secret key
    • sodium_crypto_sign_keypair - Randomly generate a secret key and a corresponding public key
    • sodium_crypto_sign_keypair_from_secretkey_and_publickey - Join a secret key and public key together
    • sodium_crypto_sign_open - Check that the signed message has a valid signature
    • sodium_crypto_sign_publickey - Extract the Ed25519 public key from a keypair
    • sodium_crypto_sign_publickey_from_secretkey - Extract the Ed25519 public key from the secret key
    • sodium_crypto_sign_secretkey - Extract the Ed25519 secret key from a keypair
    • sodium_crypto_sign_seed_keypair - Deterministically derive the key pair from a single key
    • sodium_crypto_sign_verify_detached - Verify signature for the message
    • sodium_crypto_stream - Generate a deterministic sequence of bytes from a seed
    • sodium_crypto_stream_keygen - Generate a random sodium_crypto_stream key.
    • sodium_crypto_stream_xchacha20 - Expands the key and nonce into a keystream of pseudorandom bytes
    • sodium_crypto_stream_xchacha20_keygen - Returns a secure random key
    • sodium_crypto_stream_xchacha20_xor - Encrypts a message using a nonce and a secret key (no authentication)
    • sodium_crypto_stream_xchacha20_xor_ic - Encrypts a message using a nonce and a secret key (no authentication)
    • sodium_crypto_stream_xor - Encrypt a message without authentication
    • sodium_hex2bin - Decodes a hexadecimally encoded binary string
    • sodium_increment - Increment large number
    • sodium_memcmp - Test for equality in constant-time
    • sodium_memzero - Overwrite a string with NUL characters
    • sodium_pad - Add padding data
    • sodium_unpad - Remove padding data
    • 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 sérialisation personnalisée
    • SolrDocument::sort - Trie les champs du document
    • SolrDocument::toArray - Récupère un tableau représentant le document
    • SolrDocument::unserialize - Sérialisation 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 sérialisation 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 sérialisation 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 sérialisé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 en ordre croissant
    • soundex - Calcule la clé soundex
    • SplDoublyLinkedList::add - Ajoute/insert une nouvelle valeur à l'index spécifié
    • SplDoublyLinkedList::bottom - Le nœud 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 nœud 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 nœud de la liste
    • SplDoublyLinkedList::top - Récupère le dernier nœud 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 nœuds
    • SplFileInfo::getATime - Lit la date de dernier accès au fichier
    • SplFileInfo::getBasename - Lit le nom de base 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 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 - Retourne la ligne courante sous forme de chaîne de caractères
    • 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::getIterator - Retrieve the iterator to go through the array
    • SplFixedArray::getSize - Lit la taille du tableau à taille fixe
    • SplFixedArray::jsonSerialize - Returns a representation that can be converted to JSON
    • 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::__serialize - Serializes the SplFixedArray object
    • SplFixedArray::__unserialize - Deserializes the data parameter into an SplFixedArray object
    • SplFixedArray::__wakeup - Ré-initialise le tableau après sa désérialisation
    • SplHeap::compare - Compare deux éléments
    • SplHeap::count - Compte le nombre d'éléments dans le tas
    • SplHeap::current - Retourne le nœud courant, pointé par l'itérateur
    • SplHeap::extract - Extrait un nœud du haut du tas
    • SplHeap::insert - Insère un élément dans le tas
    • SplHeap::isCorrupted - Informe si le tas est dans un état corrompu
    • SplHeap::isEmpty - Vérifie si le tas est vide
    • SplHeap::key - Retourne l'index du nœud courant
    • SplHeap::next - Se déplace au nœud suivant
    • SplHeap::recoverFromCorruption - Répare un tas
    • SplHeap::rewind - Revient au début de l'itérateur
    • SplHeap::top - Récupère le premier nœud du tas
    • SplHeap::valid - Vérifie si le tas contient des nœuds
    • 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 - Sérialise un stockage
    • SplObjectStorage::setInfo - Modifie les données associée à l'élément courant
    • SplObjectStorage::unserialize - Désérialise 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 nœud courant, pointé par l'itérateur
    • SplPriorityQueue::extract - Extrait un nœud depuis le haut du tas
    • SplPriorityQueue::getExtractFlags - Récupère les drapeaux d'extraction
    • SplPriorityQueue::insert - Insère un élément dans la file d'attente
    • SplPriorityQueue::isCorrupted - Informe si la file prioritaire est dans un état corrompue
    • SplPriorityQueue::isEmpty - Vérifie si la file est vide
    • SplPriorityQueue::key - Retourne l'index du nœud courant
    • SplPriorityQueue::next - Se déplace sur le prochain nœud
    • 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 nœud du haut de la file d'attente
    • SplPriorityQueue::valid - Vérifie si la file d'attente contient encore des nœuds
    • SplQueue::dequeue - Supprime un nœud de la file d'attente
    • SplQueue::enqueue - Ajoute un élément à la file d'attente
    • 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
    • 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 hachage pour un objet donné
    • spl_object_id - Retourne le gestionnaire d'objet entier pour un objet donné
    • Spoofchecker::areConfusable - Vérifie si les chaînes données peuvent être confondues
    • 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::setRestrictionLevel - Set the restriction level
    • Spoofchecker::__construct - Constructeur
    • sprintf - Retourne une chaîne formatée
    • SQLite3::backup - Backup one database to another database
    • 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 fonction scalaire SQL
    • SQLite3::enableExceptions - Active le lancement d'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 correspondant à 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 - Ouvre un flux de ressource pour lire un 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::setAuthorizer - Configures a callback to be used as an authorizer to limit what a statement can do
    • 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
    • SQLite3Result::__construct - Constructs an SQLite3Result
    • SQLite3Stmt::bindParam - Lie un paramètre à une variable de déclaration
    • SQLite3Stmt::bindValue - Lie la valeur d'un paramètre à une variable de déclaration
    • 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::getSQL - Récupère le SQL d'une déclaration
    • SQLite3Stmt::paramCount - Retourne le nombre de paramètres d'une requête préparée
    • SQLite3Stmt::readOnly - Détermine si une déclaration est uniquement en lecture seule
    • SQLite3Stmt::reset - Réinitialise une requête préparée
    • SQLite3Stmt::__construct - Constructs an SQLite3Stmt object
    • 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
    • SqlStatement::bind - Bind statement parameters
    • SqlStatement::execute - Execute the operation
    • SqlStatement::getNextResult - Get next result
    • SqlStatement::getResult - Get result
    • SqlStatement::hasMoreResults - Check for more results
    • SqlStatement::__construct - Description constructor
    • SqlStatementResult::fetchAll - Get all rows from result
    • SqlStatementResult::fetchOne - Get single row
    • SqlStatementResult::getAffectedItemsCount - Get affected row count
    • SqlStatementResult::getColumnNames - Get column names
    • SqlStatementResult::getColumns - Get columns
    • SqlStatementResult::getColumnsCount - Get column count
    • SqlStatementResult::getGeneratedIds - Get generated ids
    • SqlStatementResult::getLastInsertId - Get last insert id
    • SqlStatementResult::getWarnings - Get warnings from last operation
    • SqlStatementResult::getWarningsCount - Get warning count from last operation
    • SqlStatementResult::hasData - Check if result has data
    • SqlStatementResult::nextResult - Get next result
    • SqlStatementResult::__construct - Description constructor
    • 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_disconnect - Ferme une connexion à un serveur SSH distant
    • 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_forward_accept - Accept a connection created by a listener
    • ssh2_forward_listen - Bind a port on the remote server and listen for connections
    • ssh2_methods_negotiated - Retourne une liste de méthodes négociées
    • ssh2_poll - Poll the channels/listeners/streams for events
    • 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_send_eof - Send EOF to stream
    • 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
    • Statement::getNextResult - Get next result
    • Statement::getResult - Get result
    • Statement::hasMoreResults - Check if more results
    • Statement::__construct - Description constructor
    • stats_absolute_deviation - Returns the absolute deviation of an array of values
    • stats_cdf_beta - Calculates any one parameter of the beta distribution given values for the others
    • stats_cdf_binomial - Calculates any one parameter of the binomial distribution given values for the others
    • stats_cdf_cauchy - Calculates any one parameter of the Cauchy distribution given values for the others
    • stats_cdf_chisquare - Calculates any one parameter of the chi-square distribution given values for the others
    • stats_cdf_exponential - Calculates any one parameter of the exponential distribution given values for the others
    • stats_cdf_f - Calculates any one parameter of the F distribution given values for the others
    • stats_cdf_gamma - Calculates any one parameter of the gamma distribution given values for the others
    • stats_cdf_laplace - Calculates any one parameter of the Laplace distribution given values for the others
    • stats_cdf_logistic - Calculates any one parameter of the logistic distribution given values for the others
    • stats_cdf_negative_binomial - Calculates any one parameter of the negative binomial distribution given values for the others
    • stats_cdf_noncentral_chisquare - Calculates any one parameter of the non-central chi-square distribution given values for the others
    • stats_cdf_noncentral_f - Calculates any one parameter of the non-central F distribution given values for the others
    • stats_cdf_noncentral_t - Calculates any one parameter of the non-central t-distribution give values for the others
    • stats_cdf_normal - Calculates any one parameter of the normal distribution given values for the others
    • stats_cdf_poisson - Calculates any one parameter of the Poisson distribution given values for the others
    • stats_cdf_t - Calculates any one parameter of the t-distribution given values for the others
    • stats_cdf_uniform - Calculates any one parameter of the uniform distribution given values for the others
    • stats_cdf_weibull - Calculates any one parameter of the Weibull distribution given values for the others
    • stats_covariance - Computes the covariance of two data sets
    • stats_dens_beta - Probability density function of the beta distribution
    • stats_dens_cauchy - Probability density function of the Cauchy distribution
    • stats_dens_chisquare - Probability density function of the chi-square distribution
    • stats_dens_exponential - Probability density function of the exponential distribution
    • stats_dens_f - Probability density function of the F distribution
    • stats_dens_gamma - Probability density function of the gamma distribution
    • stats_dens_laplace - Probability density function of the Laplace distribution
    • stats_dens_logistic - Probability density function of the logistic distribution
    • stats_dens_normal - Probability density function of the normal distribution
    • stats_dens_pmf_binomial - Probability mass function of the binomial distribution
    • stats_dens_pmf_hypergeometric - Probability mass function of the hypergeometric distribution
    • stats_dens_pmf_negative_binomial - Probability mass function of the negative binomial distribution
    • stats_dens_pmf_poisson - Probability mass function of the Poisson distribution
    • stats_dens_t - Probability density function of the t-distribution
    • stats_dens_uniform - Probability density function of the uniform distribution
    • stats_dens_weibull - Probability density function of the Weibull distribution
    • stats_harmonic_mean - Returns the harmonic mean of an array of values
    • stats_kurtosis - Computes the kurtosis of the data in the array
    • stats_rand_gen_beta - Generates a random deviate from the beta distribution
    • stats_rand_gen_chisquare - Generates a random deviate from the chi-square distribution
    • stats_rand_gen_exponential - Generates a random deviate from the exponential distribution
    • stats_rand_gen_f - Generates a random deviate from the F distribution
    • stats_rand_gen_funiform - Generates uniform float between low (exclusive) and high (exclusive)
    • stats_rand_gen_gamma - Generates a random deviate from the gamma distribution
    • stats_rand_gen_ibinomial - Generates a random deviate from the binomial distribution
    • stats_rand_gen_ibinomial_negative - Generates a random deviate from the negative binomial distribution
    • stats_rand_gen_int - Generates random integer between 1 and 2147483562
    • stats_rand_gen_ipoisson - Generates a single random deviate from a Poisson distribution
    • stats_rand_gen_iuniform - Generates integer uniformly distributed between LOW (inclusive) and HIGH (inclusive)
    • stats_rand_gen_noncentral_chisquare - Generates a random deviate from the non-central chi-square distribution
    • stats_rand_gen_noncentral_f - Generates a random deviate from the noncentral F distribution
    • stats_rand_gen_noncentral_t - Generates a single random deviate from a non-central t-distribution
    • stats_rand_gen_normal - Generates a single random deviate from a normal distribution
    • stats_rand_gen_t - Generates a single random deviate from a t-distribution
    • stats_rand_get_seeds - Get the seed values of the random number generator
    • stats_rand_phrase_to_seeds - Generate two seeds for the RGN random number generator
    • stats_rand_ranf - Generates a random floating point number between 0 and 1
    • stats_rand_setall - Set seed values to the random generator
    • stats_skew - Computes the skewness of the data in the array
    • stats_standard_deviation - Returns the standard deviation
    • stats_stat_binomial_coef - Returns a binomial coefficient
    • stats_stat_correlation - Returns the Pearson correlation coefficient of two data sets
    • stats_stat_factorial - Returns the factorial of an integer
    • stats_stat_independent_t - Returns the t-value from the independent two-sample t-test
    • stats_stat_innerproduct - Returns the inner product of two vectors
    • stats_stat_paired_t - Returns the t-value of the dependent t-test for paired samples
    • stats_stat_percentile - Returns the percentile value
    • stats_stat_powersum - Returns the power sum of a vector
    • stats_variance - Returns the variance
    • 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_options - Sets options on the specified context
    • 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_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_isatty - Vérifie si un flux est un TTY
    • 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_read_buffer - Configure le buffer de lecture d'un flux
    • stream_set_size - Change la taille du segment du 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
    • Stringable::__toString - Retourne la représentation de l'objet sous forme de 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
    • 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_contains - Détermine si une chaîne contient une sous-chaîne donnée
    • str_decrement - Décremente une chaîne de caractères alphanumérique
    • str_ends_with - Détermine si une chaîne se termine par une sous-chaîne donnée
    • str_getcsv - Analyse une chaîne de caractères CSV dans un tableau
    • str_increment - Incrémente une chaîne de caractères alphanumérique
    • 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_starts_with - Détermine si une chaîne commence par une sous-chaîne donnée
    • 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 - Interrompre 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 - Détermine si un chemin donné pointe vers un dossier
    • svn_fs_is_file - Détermine si un chemin donné pointe vers un fichier
    • svn_fs_make_dir - Crée un nouveau dossier vide
    • svn_fs_make_file - Crée un nouveau 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 nœud
    • 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
    • Swoole\Async::dnsLookup - Async and non-blocking hostname to IP lookup.
    • Swoole\Async::read - Read file stream asynchronously.
    • Swoole\Async::readFile - Read a file asynchronously.
    • Swoole\Async::set - Update the async I/O options.
    • Swoole\Async::write - Write data to a file stream asynchronously.
    • Swoole\Async::writeFile - Description
    • Swoole\Atomic::add - Add a number to the value to the atomic object.
    • Swoole\Atomic::cmpset - Compare and set the value of the atomic object.
    • Swoole\Atomic::get - Get the current value of the atomic object.
    • Swoole\Atomic::set - Set a new value to the atomic object.
    • Swoole\Atomic::sub - Subtract a number to the value of the atomic object.
    • Swoole\Atomic::__construct - Construct a swoole atomic object.
    • Swoole\Buffer::append - Append the string or binary data at the end of the memory buffer and return the new size of memory allocated.
    • Swoole\Buffer::clear - Reset the memory buffer.
    • Swoole\Buffer::expand - Expand the size of memory buffer.
    • Swoole\Buffer::read - Read data from the memory buffer based on offset and length.
    • Swoole\Buffer::recycle - Release the memory to OS which is not used by the memory buffer.
    • Swoole\Buffer::substr - Read data from the memory buffer based on offset and length. Or remove data from the memory buffer.
    • Swoole\Buffer::write - Write data to the memory buffer. The memory allocated for the buffer will not be changed.
    • Swoole\Buffer::__construct - Fixed size memory blocks allocation.
    • Swoole\Buffer::__destruct - Destruct the Swoole memory buffer.
    • Swoole\Buffer::__toString - Get the string value of the memory buffer.
    • Swoole\Channel::pop - Read and pop data from swoole channel.
    • Swoole\Channel::push - Write and push data into Swoole channel.
    • Swoole\Channel::stats - Get stats of swoole channel.
    • Swoole\Channel::__construct - Construct a Swoole Channel
    • Swoole\Channel::__destruct - Destruct a Swoole channel.
    • Swoole\Client::close - Close the connection established.
    • Swoole\Client::connect - Connect to the remote TCP or UDP port.
    • Swoole\Client::getpeername - Get the remote socket name of the connection.
    • Swoole\Client::getsockname - Get the local socket name of the connection.
    • Swoole\Client::isConnected - Check if the connection is established.
    • Swoole\Client::on - Add callback functions triggered by events.
    • Swoole\Client::pause - Pause receiving data.
    • Swoole\Client::pipe - Redirect the data to another file descriptor.
    • Swoole\Client::recv - Receive data from the remote socket.
    • Swoole\Client::resume - Resume receiving data.
    • Swoole\Client::send - Send data to the remote TCP socket.
    • Swoole\Client::sendfile - Send file to the remote TCP socket.
    • Swoole\Client::sendto - Send data to the remote UDP address.
    • Swoole\Client::set - Set the Swoole client parameters before the connection is established.
    • Swoole\Client::sleep - Remove the TCP client from system event loop.
    • Swoole\Client::wakeup - Add the TCP client back into the system event loop.
    • Swoole\Client::__construct - Create Swoole sync or async TCP/UDP client, with or without SSL.
    • Swoole\Client::__destruct - Destruct the Swoole client.
    • Swoole\Connection\Iterator::count - Count connections.
    • Swoole\Connection\Iterator::current - Return current connection entry.
    • Swoole\Connection\Iterator::key - Return key of the current connection.
    • Swoole\Connection\Iterator::next - Move to the next connection.
    • Swoole\Connection\Iterator::offsetExists - Check if offet exists.
    • Swoole\Connection\Iterator::offsetGet - Offset to retrieve.
    • Swoole\Connection\Iterator::offsetSet - Assign a Connection to the specified offset.
    • Swoole\Connection\Iterator::offsetUnset - Unset an offset.
    • Swoole\Connection\Iterator::rewind - Rewinds iterator
    • Swoole\Connection\Iterator::valid - Check if current position is valid.
    • Swoole\Coroutine::call_user_func - Call a callback given by the first parameter
    • Swoole\Coroutine::call_user_func_array - Call a callback with an array of parameters
    • Swoole\Coroutine::cli_wait - Description
    • Swoole\Coroutine::create - Description
    • Swoole\Coroutine::getuid - Description
    • Swoole\Coroutine::resume - Description
    • Swoole\Coroutine::suspend - Description
    • Swoole\Coroutine\Client::close - Description
    • Swoole\Coroutine\Client::connect - Description
    • Swoole\Coroutine\Client::getpeername - Description
    • Swoole\Coroutine\Client::getsockname - Description
    • Swoole\Coroutine\Client::isConnected - Description
    • Swoole\Coroutine\Client::recv - Description
    • Swoole\Coroutine\Client::send - Description
    • Swoole\Coroutine\Client::sendfile - Description
    • Swoole\Coroutine\Client::sendto - Description
    • Swoole\Coroutine\Client::set - Description
    • Swoole\Coroutine\Client::__construct - Description
    • Swoole\Coroutine\Client::__destruct - Description
    • Swoole\Coroutine\Http\Client::addFile - Description
    • Swoole\Coroutine\Http\Client::close - Description
    • Swoole\Coroutine\Http\Client::execute - Description
    • Swoole\Coroutine\Http\Client::get - Description
    • Swoole\Coroutine\Http\Client::getDefer - Description
    • Swoole\Coroutine\Http\Client::isConnected - Description
    • Swoole\Coroutine\Http\Client::post - Description
    • Swoole\Coroutine\Http\Client::recv - Description
    • Swoole\Coroutine\Http\Client::set - Description
    • Swoole\Coroutine\Http\Client::setCookies - Description
    • Swoole\Coroutine\Http\Client::setData - Description
    • Swoole\Coroutine\Http\Client::setDefer - Description
    • Swoole\Coroutine\Http\Client::setHeaders - Description
    • Swoole\Coroutine\Http\Client::setMethod - Description
    • Swoole\Coroutine\Http\Client::__construct - Description
    • Swoole\Coroutine\Http\Client::__destruct - Description
    • Swoole\Coroutine\MySQL::close - Description
    • Swoole\Coroutine\MySQL::connect - Description
    • Swoole\Coroutine\MySQL::getDefer - Description
    • Swoole\Coroutine\MySQL::query - Description
    • Swoole\Coroutine\MySQL::recv - Description
    • Swoole\Coroutine\MySQL::setDefer - Description
    • Swoole\Coroutine\MySQL::__construct - Description
    • Swoole\Coroutine\MySQL::__destruct - Description
    • Swoole\Event::add - Add new callback functions of a socket into the EventLoop.
    • Swoole\Event::defer - Add a callback function to the next event loop.
    • Swoole\Event::del - Remove all event callback functions of a socket.
    • Swoole\Event::exit - Exit the eventloop, only available at client side.
    • Swoole\Event::set - Update the event callback functions of a socket.
    • Swoole\Event::wait - Description
    • Swoole\Event::write - Write data to the socket.
    • Swoole\Http\Client::addFile - Add a file to the post form.
    • Swoole\Http\Client::close - Close the http connection.
    • Swoole\Http\Client::download - Download a file from the remote server.
    • Swoole\Http\Client::execute - Send the HTTP request after setting the parameters.
    • Swoole\Http\Client::get - Send GET http request to the remote server.
    • Swoole\Http\Client::isConnected - Check if the HTTP connection is connected.
    • Swoole\Http\Client::on - Register callback function by event name.
    • Swoole\Http\Client::post - Send POST http request to the remote server.
    • Swoole\Http\Client::push - Push data to websocket client.
    • Swoole\Http\Client::set - Update the HTTP client parameters.
    • Swoole\Http\Client::setCookies - Set the http request cookies.
    • Swoole\Http\Client::setData - Set the HTTP request body data.
    • Swoole\Http\Client::setHeaders - Set the HTTP request headers.
    • Swoole\Http\Client::setMethod - Set the HTTP request method.
    • Swoole\Http\Client::upgrade - Upgrade to websocket protocol.
    • Swoole\Http\Client::__construct - Construct the async HTTP client.
    • Swoole\Http\Client::__destruct - Destruct the HTTP client.
    • Swoole\Http\Request::rawcontent - Get the raw HTTP POST body.
    • Swoole\Http\Request::__destruct - Destruct the HTTP request.
    • Swoole\Http\Response::cookie - Set the cookies of the HTTP response.
    • Swoole\Http\Response::end - Send data for the HTTP request and finish the response.
    • Swoole\Http\Response::gzip - Enable the gzip of response content.
    • Swoole\Http\Response::header - Set the HTTP response headers.
    • Swoole\Http\Response::initHeader - Init the HTTP response header.
    • Swoole\Http\Response::rawcookie - Set the raw cookies to the HTTP response.
    • Swoole\Http\Response::sendfile - Send file through the HTTP response.
    • Swoole\Http\Response::status - Set the status code of the HTTP response.
    • Swoole\Http\Response::write - Append HTTP body content to the HTTP response.
    • Swoole\Http\Response::__destruct - Destruct the HTTP response.
    • Swoole\Http\Server::on - Bind callback function to HTTP server by event name.
    • Swoole\Http\Server::start - Start the swoole http server.
    • Swoole\Lock::lock - Try to acquire the lock. It will block if the lock is not available.
    • Swoole\Lock::lock_read - Lock a read-write lock for reading.
    • Swoole\Lock::trylock - Try to acquire the lock and return straight away even the lock is not available.
    • Swoole\Lock::trylock_read - Try to lock a read-write lock for reading and return straight away even the lock is not available.
    • Swoole\Lock::unlock - Release the lock.
    • Swoole\Lock::__construct - Construct a memory lock.
    • Swoole\Lock::__destruct - Destory a Swoole memory lock.
    • Swoole\Mmap::open - Map a file into memory and return the stream resource which can be used by PHP stream operations.
    • Swoole\MySQL::close - Close the async MySQL connection.
    • Swoole\MySQL::connect - Connect to the remote MySQL server.
    • Swoole\MySQL::getBuffer - Description
    • Swoole\MySQL::on - Register callback function based on event name.
    • Swoole\MySQL::query - Run the SQL query.
    • Swoole\MySQL::__construct - Construct an async MySQL client.
    • Swoole\MySQL::__destruct - Destory the async MySQL client.
    • Swoole\Process::alarm - High precision timer which triggers signal with fixed interval.
    • Swoole\Process::close - Close the pipe to the child process.
    • Swoole\Process::daemon - Change the process to be a daemon process.
    • Swoole\Process::exec - Execute system commands.
    • Swoole\Process::exit - Stop the child processes.
    • Swoole\Process::freeQueue - Destroy the message queue created by swoole_process::useQueue.
    • Swoole\Process::kill - Send signal to the child process.
    • Swoole\Process::name - Set name of the process.
    • Swoole\Process::pop - Read and pop data from the message queue.
    • Swoole\Process::push - Write and push data into the message queue.
    • Swoole\Process::read - Read data sending to the process.
    • Swoole\Process::signal - Send signal to the child processes.
    • Swoole\Process::start - Start the process.
    • Swoole\Process::statQueue - Get the stats of the message queue used as the communication method between processes.
    • Swoole\Process::useQueue - Create a message queue as the communication method between the parent process and child processes.
    • Swoole\Process::wait - Wait for the events of child processes.
    • Swoole\Process::write - Write data into the pipe and communicate with the parent process or child processes.
    • Swoole\Process::__construct - Construct a process.
    • Swoole\Process::__destruct - Destroy the process.
    • Swoole\Redis\Server::format - Description
    • Swoole\Redis\Server::setHandler - Description
    • Swoole\Redis\Server::start - Description
    • Swoole\Serialize::pack - Serialize the data.
    • Swoole\Serialize::unpack - Unserialize the data.
    • Swoole\Server::addlistener - Add a new listener to the server.
    • Swoole\Server::addProcess - Add a user defined swoole_process to the server.
    • Swoole\Server::after - Trigger a callback function after a period of time.
    • Swoole\Server::bind - Bind the connection to a user defined user ID.
    • Swoole\Server::clearTimer - Stop and destroy a timer.
    • Swoole\Server::close - Close a connection to the client.
    • Swoole\Server::confirm - Check status of the connection.
    • Swoole\Server::connection_info - Get the connection info by file description.
    • Swoole\Server::connection_list - Get all of the established connections.
    • Swoole\Server::defer - Delay execution of the callback function at the end of current EventLoop.
    • Swoole\Server::exist - Check if the connection is existed.
    • Swoole\Server::finish - Used in task process for sending result to the worker process when the task is finished.
    • Swoole\Server::getClientInfo - Get the connection info by file description.
    • Swoole\Server::getClientList - Get all of the established connections.
    • Swoole\Server::getLastError - Get the error code of the most recent error.
    • Swoole\Server::heartbeat - Check all the connections on the server.
    • Swoole\Server::listen - Listen on the given IP and port, socket type.
    • Swoole\Server::on - Register a callback function by event name.
    • Swoole\Server::pause - Stop receiving data from the connection.
    • Swoole\Server::protect - Set the connection to be protected mode.
    • Swoole\Server::reload - Restart all the worker process.
    • Swoole\Server::resume - Start receving data from the connection.
    • Swoole\Server::send - Send data to the client.
    • Swoole\Server::sendfile - Send file to the connection.
    • Swoole\Server::sendMessage - Send message to worker processes by ID.
    • Swoole\Server::sendto - Send data to the remote UDP address.
    • Swoole\Server::sendwait - Send data to the remote socket in the blocking way.
    • Swoole\Server::set - Set the runtime settings of the swoole server.
    • Swoole\Server::shutdown - Shutdown the master server process, this function can be called in worker processes.
    • Swoole\Server::start - Start the Swoole server.
    • Swoole\Server::stats - Get the stats of the Swoole server.
    • Swoole\Server::stop - Stop the Swoole server.
    • Swoole\Server::task - Send data to the task worker processes.
    • Swoole\Server::taskwait - Send data to the task worker processes in blocking way.
    • Swoole\Server::taskWaitMulti - Execute multiple tasks concurrently.
    • Swoole\Server::tick - Repeats a given function at every given time-interval.
    • Swoole\Server::__construct - Construct a Swoole server.
    • Swoole\Server\Port::on - Register callback functions by event.
    • Swoole\Server\Port::set - Set protocol of the server port.
    • Swoole\Server\Port::__construct - Construct a server port
    • Swoole\Server\Port::__destruct - Destory server port
    • Swoole\Table::column - Set the data type and size of the columns.
    • Swoole\Table::count - Count the rows in the table, or count all the elements in the table if $mode = 1.
    • Swoole\Table::create - Create the swoole memory table.
    • Swoole\Table::current - Get the current row.
    • Swoole\Table::decr - Decrement the value in the Swoole table by $row_key and $column_key.
    • Swoole\Table::del - Delete a row in the Swoole table by $row_key.
    • Swoole\Table::destroy - Destroy the Swoole table.
    • Swoole\Table::exist - Check if a row is existed by $row_key.
    • Swoole\Table::get - Get the value in the Swoole table by $row_key and $column_key.
    • Swoole\Table::incr - Increment the value by $row_key and $column_key.
    • Swoole\Table::key - Get the key of current row.
    • Swoole\Table::next - Iterator the next row.
    • Swoole\Table::rewind - Rewind the iterator.
    • Swoole\Table::set - Update a row of the table by $row_key.
    • Swoole\Table::valid - Check if the current row is valid.
    • Swoole\Table::__construct - Construct a Swoole memory table with fixed size.
    • Swoole\Timer::after - Trigger a callback function after a period of time.
    • Swoole\Timer::clear - Delete a timer by timer ID.
    • Swoole\Timer::exists - Check if a timer is existed.
    • Swoole\Timer::tick - Repeats a given function at every given time-interval.
    • Swoole\WebSocket\Server::exist - Check if the file descriptor exists.
    • Swoole\WebSocket\Server::on - Register event callback function
    • Swoole\WebSocket\Server::pack - Get a pack of binary data to send in a single frame.
    • Swoole\WebSocket\Server::push - Push data to the remote client.
    • Swoole\WebSocket\Server::unpack - Unpack the binary data received from the client.
    • swoole_async_dns_lookup - Async and non-blocking hostname to IP lookup
    • swoole_async_read - Read file stream asynchronously
    • swoole_async_readfile - Read a file asynchronously
    • swoole_async_set - Update the async I/O options
    • swoole_async_write - Write data to a file stream asynchronously
    • swoole_async_writefile - Write data to a file asynchronously
    • swoole_clear_error - Clear errors in the socket or on the last error code
    • swoole_client_select - Get the file description which are ready to read/write or error
    • swoole_cpu_num - Get the number of CPU
    • swoole_errno - Get the error code of the latest system call
    • swoole_error_log - Output error messages to the log
    • swoole_event_add - Add new callback functions of a socket into the EventLoop
    • swoole_event_defer - Add callback function to the next event loop
    • swoole_event_del - Remove all event callback functions of a socket
    • swoole_event_exit - Exit the eventloop, only available at the client side
    • swoole_event_set - Update the event callback functions of a socket
    • swoole_event_wait - Start the event loop
    • swoole_event_write - Write data to a socket
    • swoole_get_local_ip - Get the IPv4 IP addresses of each NIC on the machine
    • swoole_last_error - Get the lastest error message
    • swoole_load_module - Load a swoole extension
    • swoole_select - Select the file descriptions which are ready to read/write or error in the eventloop
    • swoole_set_process_name - Set the process name
    • swoole_strerror - Convert the Errno into error messages
    • swoole_timer_after - Trigger a one time callback function in the future
    • swoole_timer_exists - Check if a timer callback function is existed
    • swoole_timer_tick - Trigger a timer tick callback function by time interval
    • swoole_version - Get the version of Swoole
    • 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
    • SyncSharedMemory::first - Check to see if the object is the first instance system-wide of named shared memory
    • SyncSharedMemory::read - Copy data from named shared memory
    • SyncSharedMemory::size - Returns the size of the named shared memory
    • SyncSharedMemory::write - Copy data to named shared memory
    • SyncSharedMemory::__construct - Constructs a new SyncSharedMemory object
    • 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
    • Table::count - Get row count
    • Table::delete - Delete rows from table
    • Table::existsInDatabase - Check if table exists in database
    • Table::getName - Get table name
    • Table::getSchema - Get table schema
    • Table::getSession - Get table session
    • Table::insert - Insert table rows
    • Table::isView - Check if table is view
    • Table::select - Select rows from table
    • Table::update - Update rows in table
    • Table::__construct - Table constructor
    • TableDelete::bind - Bind delete query parameters
    • TableDelete::execute - Execute delete query
    • TableDelete::limit - Limit deleted rows
    • TableDelete::orderby - Set delete sort criteria
    • TableDelete::where - Set delete search condition
    • TableDelete::__construct - TableDelete constructor
    • TableInsert::execute - Execute insert query
    • TableInsert::values - Add insert row values
    • TableInsert::__construct - TableInsert constructor
    • TableSelect::bind - Bind select query parameters
    • TableSelect::execute - Execute select statement
    • TableSelect::groupBy - Set select grouping criteria
    • TableSelect::having - Set select having condition
    • TableSelect::limit - Limit selected rows
    • TableSelect::lockExclusive - Execute EXCLUSIVE LOCK
    • TableSelect::lockShared - Execute SHARED LOCK
    • TableSelect::offset - Set limit offset
    • TableSelect::orderby - Set select sort criteria
    • TableSelect::where - Set select search condition
    • TableSelect::__construct - TableSelect constructor
    • TableUpdate::bind - Bind update query parameters
    • TableUpdate::execute - Execute update query
    • TableUpdate::limit - Limit update row count
    • TableUpdate::orderby - Set sorting criteria
    • TableUpdate::set - Add field to be updated
    • TableUpdate::where - Set search filter
    • TableUpdate::__construct - TableUpdate constructor
    • 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 - Définie le domaine par défaut
    • Thread::getCreatorId - Identification
    • Thread::getCurrentThread - Identification
    • Thread::getCurrentThreadId - Identification
    • Thread::getThreadId - Identification
    • Thread::isJoined - Détection de statut
    • Thread::isStarted - Détection de statut
    • Thread::join - Synchronisation
    • Thread::start - Exécution
    • Threaded::chunk - Manipulation
    • Threaded::count - Manipulation
    • Threaded::extend - Manipulation pendant l'exécution
    • Threaded::isRunning - Détection de statut
    • Threaded::isTerminated - Détection de statut
    • Threaded::merge - Manipulation
    • Threaded::notify - Synchronisation
    • Threaded::notifyOne - Synchronization
    • Threaded::pop - Manipulation
    • Threaded::run - Exécution
    • Threaded::shift - Manipulation
    • Threaded::synchronized - Synchronisation
    • Threaded::wait - Synchronisation
    • Throwable::getCode - Récupère le code de l'exception
    • Throwable::getFile - Récupère le fichier où l'objet a été créé
    • Throwable::getLine - Récupère le numéro de ligne où l'objet instancié a été jeté
    • Throwable::getMessage - Récupère le message
    • Throwable::getPrevious - Retourne le Throwable précédent
    • Throwable::getTrace - Récupère la trace d'appels
    • Throwable::getTraceAsString - Récupère la trace d'appels en tant que chaîne de caractères
    • Throwable::__toString - Récupère la représentation sous forme de chaîne de caractère de l'objet jeté
    • 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 nœud parent du nœud courant
    • tidyNode::hasChildren - Indique si le nœud a des enfants
    • tidyNode::hasSiblings - Indique si le nœud a des frères
    • tidyNode::isAsp - Vérifie si le nœud est du code ASP
    • tidyNode::isComment - Indique si le nœud représente un commentaire
    • tidyNode::isHtml - Indique si le nœud est une nœud d'élément
    • tidyNode::isJste - Indique si ce nœud est JSTE
    • tidyNode::isPhp - Indique si un nœud contient du code PHP
    • tidyNode::isText - Indique si le nœud représente du texte (sans balise)
    • tidyNode::__construct - Constructeur privée pour interdire l'instanciation directe
    • 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_warning_count - Retourne le nombre d'alertes Tidy rencontrées dans le document spécifié
    • time - Retourne l'horodatage 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 d'un fuseau horaire à partir de son abréviation et de son décalage UTC
    • 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
    • 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
  • 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 d'un jeu de caractères à un autre
    • UConverter::__construct - Crée un objet UConverter
    • ucwords - Met en majuscule la première lettre de tous les mots
    • 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 - Récupére les familles de polices
    • 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 - Quitte la boucle UI
    • UI\run - Entre dans la boucle UI
    • 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 - Affiche un message d'erreur
    • 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
    • UnitEnum::cases - Génère une liste de cas sur une énumération
    • unixtojd - Convertit un timestamp UNIX en un jour Julien
    • unlink - Supprime 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 sérialisée
    • unset - Détruit une variable
    • untaint - Ne nettoie pas une chaîne
    • uopz_add_function - Adds non-existent function or method
    • uopz_allow_exit - Allows control over disabled exit opcode
    • uopz_backup - Sauvegarde une fonction
    • uopz_compose - Compose une classe
    • uopz_copy - Copie une fonction
    • uopz_delete - Supprime une fonction
    • uopz_del_function - Deletes previously added function or method
    • 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_get_exit_status - Retrieve the last set exit status
    • uopz_get_hook - Gets previously set hook on function or method
    • uopz_get_mock - Get the current mock for a class
    • uopz_get_property - Gets value of class or instance property
    • uopz_get_return - Gets a previous set return value for a function
    • uopz_get_static - Gets the static variables from function or method scope
    • 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_set_hook - Sets hook to execute when entering a function or method
    • uopz_set_mock - Use mock instead of class for new objects
    • uopz_set_property - Sets value of existing class or instance property
    • uopz_set_return - Provide a return value for an existing function
    • uopz_set_static - Sets the static variables in function or method scope
    • uopz_undefine - Supprime une constante
    • uopz_unset_hook - Removes previously set hook on function or method
    • uopz_unset_mock - Unset previously set mock
    • uopz_unset_return - Unsets a previously set return value for a function
    • 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, en remplaçant les caractères invalides ou non représentables.
    • 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::__construct - Constructeur de la classe variant
    • 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 expression 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 message 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
    • var_representation - Returns a short, readable, parsable string representation of a 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
    • vprintf - Affiche une chaîne formatée
    • vsprintf - Retourne une chaîne formatée
    • Vtiful\Kernel\Excel::addSheet - Ajoute une feuille de calcul
    • Vtiful\Kernel\Excel::autoFilter - Ajoute un filtre automatique
    • Vtiful\Kernel\Excel::constMemory - Ecrit un gros fichier avec une utilisation constante de la mémoire
    • Vtiful\Kernel\Excel::data - Ecrit des données
    • Vtiful\Kernel\Excel::fileName - Crée un nouveau fichier ainsi qu'une feuille de calcul
    • Vtiful\Kernel\Excel::getHandle - Récupère le gestionnaire de ressource
    • Vtiful\Kernel\Excel::header - Ecrit l'en-tête d'une feuille de calcul
    • Vtiful\Kernel\Excel::insertFormula - Insère une formule
    • Vtiful\Kernel\Excel::insertImage - Insère une image dans une cellule
    • Vtiful\Kernel\Excel::insertText - Ecrit du texte dans une cellule
    • Vtiful\Kernel\Excel::mergeCells - Fusionne des cellules
    • Vtiful\Kernel\Excel::output - Enregistre le fichier xlsx sur le disque
    • Vtiful\Kernel\Excel::setColumn - Définit le format d'une colonne
    • Vtiful\Kernel\Excel::setRow - Définit le format d'une ligne
    • Vtiful\Kernel\Excel::__construct - Constructeur de la classe Vtiful\Kernel\Excel
    • Vtiful\Kernel\Format::align - Définit l'alignement de la cellule
    • Vtiful\Kernel\Format::bold - Mise en gras
    • Vtiful\Kernel\Format::italic - Mise en italique
    • Vtiful\Kernel\Format::underline - Mise en souligné
  • w
    • Warning::__construct - Warning constructor
    • wddx_add_vars - Ajoute des variables à un paquet WDDX
    • wddx_deserialize - Désérialise 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 actives dans le dictionnaire
    • WeakMap::getIterator - Récupére un itérateur externe
    • WeakMap::offsetExists - Vérifie si un certain objet se trouve dans le dictionnaire
    • WeakMap::offsetGet - Retourne la valeur indiquée par un certain objet
    • WeakMap::offsetSet - Met à jour le dictionnaire avec une nouvelle paire clé-valeur
    • WeakMap::offsetUnset - Supprime une entrée du dictionnaire
    • WeakReference::create - Créer une nouvelle référence faible
    • WeakReference::get - Récupère un objet faiblement référencé
    • WeakReference::__construct - Constructeur qui interdit l'initialisation
    • 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_send_custom_control - Envoyer un contrôle personnalisé au service
    • win32_set_service_exit_code - Définir ou renvoyer le code de sortie pour le service en cours d'exécution
    • win32_set_service_exit_mode - Définir ou renvoyer le mode de sortie pour le service en cours d'exécution
    • 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
    • wkhtmltox\Image\Converter::convert - Réalise une conversion d'image
    • wkhtmltox\Image\Converter::getVersion - Détermine la version du convertisseur
    • wkhtmltox\Image\Converter::__construct - Cré un nouveau convertisseur d'image
    • wkhtmltox\PDF\Converter::add - Ajoute un objet pour la conversion
    • wkhtmltox\PDF\Converter::convert - Lance la conversion PDF
    • wkhtmltox\PDF\Converter::getVersion - Détermine la version du convertisseur
    • wkhtmltox\PDF\Converter::__construct - Cré un nouveau convertisseur PDF
    • wkhtmltox\PDF\Object::__construct - Crée un nouvel objet PDF
    • wordwrap - Effectue la césure d'une chaîne
    • Worker::collect - Collect references to completed tasks
    • Worker::getStacked - Obtient la taille de pile restante
    • Worker::isShutdown - Détection de statut
    • Worker::shutdown - Arrêter le worker
    • Worker::stack - Empile la tâche
    • Worker::unstack - Dépile une tâche
  • 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 - Alias de xdiff_file_bdiff
    • 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 nœud courant comme un nœud 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 nœud en sautant tous les sous arbres
    • XMLReader::open - Fixe le URI contenant le XML à analyser
    • XMLReader::read - Déplace le curseur sur le prochain nœud du document
    • XMLReader::readInnerXml - Lit le code XML du nœud courant
    • XMLReader::readOuterXml - Lit le code XML du nœud courant, y compris lui-même
    • XMLReader::readString - Lit le contenu du nœud 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 de traitement
    • 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
    • XSLTProcessor::transformToUri - Transforme en URI
    • XSLTProcessor::transformToXml - Transformer en XML
    • XSLTProcessor::__construct - Crée un nouvel objet XSLTProcessor
  • y
    • Yac::add - Stock un élément dans le cache
    • Yac::delete - Supprime un ou plusieurs éléments du cache
    • Yac::dump - Extraie les valeurs du cache
    • Yac::flush - Supprime toutes les valeurs mises en cache
    • Yac::get - Récupère un élément du cache
    • Yac::info - Statut du cache
    • Yac::set - Stock une valeur dans le cache
    • Yac::__construct - Constructeur
    • Yac::__get - Récupère un élément du cache
    • Yac::__set - Stock un élément dans le cache
    • Yaconf::get - Récupère une entrée
    • Yaconf::has - Détermine si une entrée existe
    • Yaf_Action_Abstract::execute - Point d'entrée de l'action
    • Yaf_Action_Abstract::getController - Récupère l'objet contrôleur
    • Yaf_Action_Abstract::getControllerName - Récupère le nom du 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::__construct - Constructeur de Yaf_Application
    • Yaf_Application::__destruct - Le but de __destruct
    • 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 - Compte tous les élements dans Yaf_Config.ini
    • Yaf_Config_Ini::current - Récupérer la valeur actuelle
    • Yaf_Config_Ini::key - Récupérer la clé de l'élément actuel
    • Yaf_Config_Ini::next - Avancer le pointeur interne
    • 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 la configuration dans un tableau PHP
    • Yaf_Config_Ini::valid - Le but de valid
    • Yaf_Config_Ini::__construct - Constructeur Yaf_Config_Ini
    • Yaf_Config_Ini::__get - Récupérer un élément
    • Yaf_Config_Ini::__isset - Déterminer si une clé existe
    • 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::getName - Récupère le nom du contrôleur
    • 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::__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::getDefaultAction - Récupère le nom de l'action par défaut
    • Yaf_Dispatcher::getDefaultController - Récupère le nom du contrôleur par défaut
    • Yaf_Dispatcher::getDefaultModule - Récupère le nom du module par défaut
    • 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::__construct - Constructeur de Yaf_Dispatcher
    • 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 - Récupère toutes les informations de tous les espaces de noms enregistrés
    • Yaf_Loader::getNamespacePath - Récupère le chemin d'un espace de noms enregistré
    • 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::registerNamespace - Register namespace with searching path
    • Yaf_Loader::setLibraryPath - Modifie le chemin de la bibliothèque
    • Yaf_Loader::__construct - Le but de __construct
    • Yaf_Plugin_Abstract::dispatchLoopShutdown - Le but de dispatchLoopShutdown
    • Yaf_Plugin_Abstract::dispatchLoopStartup - Crochet avant une boucle de répétitionp
    • 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::__construct - Constructeur de la classe Yaf_Registry
    • Yaf_Request_Abstract::clearParams - Supprime tous les paramètres
    • 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 - Récupère la langue préférée du client
    • Yaf_Request_Abstract::getMethod - Récupère la méthode utilisée
    • Yaf_Request_Abstract::getModuleName - Le but de getModuleName
    • Yaf_Request_Abstract::getParam - Récupère un paramètre
    • Yaf_Request_Abstract::getParams - Récupère tous les paramètres
    • Yaf_Request_Abstract::getRequestUri - Le but de getRequestUri
    • Yaf_Request_Abstract::getServer - Récupère une variable SERVER
    • Yaf_Request_Abstract::isCli - Vérifie si la requête est une requête en ligne de commande
    • Yaf_Request_Abstract::isDispatched - Vérifie si la requête est une requête isDispatched
    • Yaf_Request_Abstract::isGet - Vérifie si la requête est une requête GET
    • Yaf_Request_Abstract::isHead - Vérifie si la requête est une requête HEAD
    • Yaf_Request_Abstract::isOptions - Vérifie si la requête est une requête OPTIONS
    • Yaf_Request_Abstract::isPost - Vérifie si la requête est une requête isPost
    • Yaf_Request_Abstract::isPut - Vérifie si la requête est une requête PUT
    • Yaf_Request_Abstract::isRouted - Vérifie si la requête a été routée
    • Yaf_Request_Abstract::isXmlHttpRequest - Vérifie si la requête est une requête AJAX
    • Yaf_Request_Abstract::setActionName - Définie le nom de l'action
    • Yaf_Request_Abstract::setBaseUri - Défini l'URI de base
    • Yaf_Request_Abstract::setControllerName - Définie le nom du contrôleur
    • Yaf_Request_Abstract::setDispatched - Le but de setDispatched
    • Yaf_Request_Abstract::setModuleName - Définit le nom du module
    • Yaf_Request_Abstract::setParam - Définie un paramètre dans une requête
    • 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::getRaw - Récupère le corps brut 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::__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 - Détermine si la requête est une requête AJAX
    • Yaf_Request_Simple::__construct - Constructeur de __construct
    • Yaf_Response_Abstract::appendBody - Ajoute le corps de la réponse
    • Yaf_Response_Abstract::clearBody - Supprime tous les corps de réponse existants
    • Yaf_Response_Abstract::clearHeaders - Supprime toutes les en-têtes définies
    • 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 - Envoie 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 - Définit l'en-tête de réponse
    • Yaf_Response_Abstract::setRedirect - Le but de setRedirect
    • Yaf_Response_Abstract::__construct - Le but de __construct
    • Yaf_Response_Abstract::__destruct - Le but de __destruct
    • Yaf_Response_Abstract::__toString - Récupère tout le corps sous la forme d'une chaîne de caractères
    • 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::__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::__unset - Le but de __unset
    • 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 - Récupérer le type de l'exception
    • Yar_Concurrent_Client::call - Enregistre un appel concurrent
    • Yar_Concurrent_Client::loop - Envoi tous les appels
    • Yar_Concurrent_Client::reset - Nettoie tous les appels enregistré
    • Yar_Server::handle - Démarre un serveur RPC
    • Yar_Server::__construct - Enregistre un serveur
    • Yar_Server_Exception::getType - Récupérer le type de l'exception
    • 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
  • z
    • 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::clearError - Efface le message d'erreur, les messages système et/ou zip
    • ZipArchive::close - Ferme l'archive active
    • ZipArchive::count - Compte le nombre de fichiers dans l'archive
    • 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::getArchiveFlag - Retourne la valeur d'un drapeau global de l'archive
    • 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 externes d'une entrée définie par son index
    • ZipArchive::getExternalAttributesName - Récupère les attributs externes 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::getStreamIndex - Récupère un gestionnaire de fichier pour l'entrée définie par son index (lecture seule)
    • ZipArchive::getStreamName - Récupère un gestionnaire de fichier pour l'entrée définie par son nom (lecture seule))
    • ZipArchive::isCompressionMethodSupported - Vérifie si une méthode de compression est supportée par libzip
    • ZipArchive::isEncryptionMethodSupported - Vérifie si une méthode de chiffrement est supportée par libzip
    • ZipArchive::locateName - Retourne l'index d'une entrée de l'archive
    • ZipArchive::open - Ouvre une archive ZIP
    • ZipArchive::registerCancelCallback - Enregistre une fonction de appel permettant d'annuler pendant la clôture d'une archive
    • ZipArchive::registerProgressCallback - Enregistre une fonction de rappel pour permettre des mises à jour pendant la fermeture de l'archive
    • ZipArchive::renameIndex - Renomme une entrée définie par son index
    • ZipArchive::renameName - Renomme une entrée définie par son nom
    • ZipArchive::replaceFile - Remplace un fichier d'une archive ZIP
    • ZipArchive::setArchiveComment - Définit le commentaire d'une archive ZIP
    • ZipArchive::setArchiveFlag - Définit un drapeau global 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 - Définit la méthode de compression d'une entrée définit par son index
    • ZipArchive::setCompressionName - Définit la méthode de compression d'une entrée définit par son nom
    • ZipArchive::setEncryptionIndex - Définit la méthode de chiffrement d'une entrée définit par son index
    • ZipArchive::setEncryptionName - Définit la méthode de chiffrement d'une entrée définit par son nom
    • ZipArchive::setExternalAttributesIndex - Définit les attributs externes d'une entrée définie par son index
    • ZipArchive::setExternalAttributesName - Définit les attributs externes d'une entrée définie par son nom
    • ZipArchive::setMtimeIndex - Définit la date de modification d'une entrée
    • ZipArchive::setMtimeName - Définit le date de modification d'une entée par son nom
    • ZipArchive::setPassword - Définit 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::close - Close the zookeeper handle and free up any resources
    • 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::getChildren - Lists the children of 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::getConfig - Get instance of ZookeeperConfig
    • 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
    • ZookeeperConfig::add - Add servers to the ensemble
    • ZookeeperConfig::get - Gets the last committed configuration of the ZooKeeper cluster as it is known to the server to which the client is connected, synchronously
    • ZookeeperConfig::remove - Remove servers from the ensemble
    • ZookeeperConfig::set - Change ZK cluster ensemble membership and roles of ensemble peers
    • zookeeper_dispatch - Calls callbacks for pending operations
  • _
    • __autoload - Tente de charger une classe indéfinie
    • __halt_compiler - Stoppe l'exécution du compilateur


Liste d'exemples

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 - Portion du fichier lighttpd.conf
  • Example#9 - Appel des répondeurs FastCGI
  • Example#10 - Connexion à des instances distantes de php-fastcgi
  • Example#11 - Exemple d'installation de PHP sous OpenBSD avec Ports
  • Example#12 - Exemple d'installation sous Debian avec Apache 2
  • Example#13 - Stopper et démarrer Apache une fois PHP installé
  • Example#14 - Méthodes pour lister les paquets PHP supplémentaires
  • Example#15 - Installer PHP avec MySQL et cURL
  • Example#16 - Configuration recommandée pour OpCache
  • Example#17 - Configuration recommandée pour WinCache
  • Example#18 - Ligne de commande pour configurer IIS et PHP
  • Example#19 - Registry changes
  • Example#20 - PHP and Apache 2.x as handler
  • Example#21 - PHP and Apache 2.x as CGI
  • Example#22 - Configure Apache to run PHP as FastCGI
  • Example#23 - Passer des variables d'environnement et des paramètres PHP à un pool
  • Example#24 - Définit les paramètres PHP dans le fichier nginx.conf
  • Example#25 - Appel de la fonction phpinfo
  • Example#26 - Les variables d'environnement dans un fichier php.ini
  • Example#27 - Extrait du php.ini
  • Example#28 - Exemple de configuration Apache
  • Example#29 - Balises d'ouvertures et de fermetures PHP
  • Example#30 - Echappement avancé en utilisant des conditions
  • Example#31 - Exemple montrant que la balise fermente englobe la nouvelle ligne qui suit
  • Example#32 - Exemple de commentaire
  • Example#33 - Les commentaires vont jusqu'à la fin de la ligne
  • Example#34 - Les commentaires de type C
  • Example#35 - Les entiers littéraux
  • Example#36 - Dépassement d'entier sur un système 32-bit
  • Example#37 - Dépassement d'entier sur un système 64-bit
  • Example#38 - Exemple Heredoc basique à partir de PHP 7.3.0
  • Example#39 - Closing identifier must not be indented further than any lines of the body
  • Example#40 - Indentation différente pour le texte (espace) et identifiant de fin
  • Example#41 - Continuer une expression après un identifiant de fin
  • Example#42 - Identifiant de fin dans le corps de la chaîne de caractères tend à causer une ParseError
  • Example#43 - Exemple invalide, antérieur à PHP 7.3.0
  • Example#44 - Exemple valide, même antérieur à PHP 7.3.0
  • Example#45 - Exemple de chaînes Heredoc
  • Example#46 - Exemple d'utilisation de Heredoc pour passer des arguments
  • Example#47 - Utilisation de Heredoc pour initialiser des valeurs statiques
  • Example#48 - Utilisation des guillemets doubles avec Heredoc
  • Example#49 - Exemple de chaîne Nowdoc
  • Example#50 - Exemple de chaîne Nowdoc avec des variables
  • Example#51 - Exemple avec des données statiques
  • Example#52 - Exemple de la syntaxe simple
  • Example#53 - Indices numériques négatifs
  • Example#54 - Quelques exemples de chaînes
  • Example#55 - Exemple de Positions de Chaîne Invalide
  • Example#56 - Un tableau simple
  • Example#57 - Exemple sur la modification de type et l'écrasement
  • Example#58 - Exemple avec des clés de type int et string
  • Example#59 - Tableaux indexés sans clé
  • Example#60 - Exemple avec des clés seulement pour quelques éléments
  • Example#61 - Exemple complexe sur la modification de type et l'écrasement
  • Example#62 - Accès aux éléments d'un tableau
  • Example#63 - Faire référence à un tableau à la sortie d'une fonction ou d'une méthode
  • Example#64 - Déballage simple de tableau
  • Example#65 - Déballage de tableau avec clé dupliqué
  • Example#66 - Utilisation de array()
  • Example#67 - Collection
  • Example#68 - Modification d'un élément dans la boucle
  • Example#69 - Indexation commençant à 1
  • Example#70 - Remplissage d'un tableau
  • Example#71 - Tri d'un tableau
  • Example#72 - Tableaux récursifs et multidimensionnels
  • Example#73 - Exemples de fonctions de rappel
  • Example#74 - Exemple d'une fonction de rappel utilisant une Closure
  • Example#75 - Exemple de type de retour itérable d'un générateur
  • Example#76 - Paramètre typé passé par référence
  • Example#77 - Ancienne façon de rendre les arguments nullables
  • Example#78 - Déclaration de type de classe de base
  • Example#79 - Déclaration de type d’interface de base
  • Example#80 - Déclaration de type de retour de base
  • Example#81 - Renvoi d’un objet
  • Example#82 - Déclaration de type d’argument nullable
  • Example#83 - Déclaration de type de retour nullable
  • Example#84 - Déclaration de type pour les propriétés de classe
  • Example#85 - Typage strict pour les valeurs d'arguments
  • Example#86 - Typage coercitif pour les valeurs d'arguments
  • Example#87 - Typage strict pour les valeurs de retour
  • Example#88 - Exemple de types contraints à une partie type de l'union
  • Example#89 - Validité des noms de variables
  • Example#90 - Assignation de référence
  • Example#91 - Assignation de référence et variables anonymes
  • Example#92 - Valeurs par défaut des variables non initialisées
  • Example#93 - Les variables sont locales à la fonction
  • Example#94 - Exemple avec global
  • Example#95 - Les variables globales et $GLOBALS
  • Example#96 - Exemple montrant les superglobales et la portée
  • Example#97 - Les variables statiques
  • Example#98 - Les variables statiques (2)
  • Example#99 - Les variables statiques et la récursivité
  • Example#100 - Déclaration de variables statiques
  • Example#101 - Utilisation de variables statiques dans les méthodes héritées
  • Example#102 - Exemple de propriété variable
  • Example#103 - Exemple avec un formulaire simple
  • Example#104 - Accéder simplement à des variables de formulaires POST
  • Example#105 - Variables de formulaires complexes
  • Example#106 - Exemple avec setcookie
  • Example#107 - Noms valides et invalides pour les constantes
  • Example#108 - Définir une constante
  • Example#109 - Définir des constantes en utilisant le mot-clé const
  • Example#110 - Associativité
  • Example#111 - Ordre d'évaluation indéfini
  • Example#112 - +, - et . ont la même priorité (antérieur à PHP 8.0.0)
  • Example#113 - Exemple d'incrémentation de chaîne PERL
  • Example#114 - Conversion de chaîne alphanumérique en flottant
  • Example#115 - Affectation par référence
  • Example#116 - Opérations sur les bits et les entiers
  • Example#117 - Opération sur les bits et les chaînes
  • Example#118 - Décalage de bits sur les entiers
  • Example#119 - Comparaison Booléen/null
  • Example#120 - Transcription des comparaisons standards des tableaux
  • Example#121 - Affectation d'une valeur par défaut
  • Example#122 - Comportement de PHP
  • Example#123 - Combinaison de ternaire court
  • Example#124 - Assigner une valeur par défaut
  • Example#125 - Imbrication de l'opération de fusion null
  • Example#126 - Opérateur d'exécution
  • Example#127 - Illustration des opérateurs logiques
  • Example#128 - Opérateur de concaténation
  • Example#129 - Comparer des tableaux
  • Example#130 - Utilisation de instanceof avec des classes
  • Example#131 - Utilisation de instanceof avec des classes héritées
  • Example#132 - Utilisation de instanceof pour vérifier que l'objet n'est pas une instance de la classe
  • Example#133 - Utilisation de instanceof pour une interface
  • Example#134 - Utilisation de instanceof avec d'autres variables
  • Example#135 - Utilisation de instanceof pour tester d'autres variables
  • Example#136 - Utilisation de instanceof pour tester des constantes
  • Example#137 - Utilisation de instanceof avec une expression arbitraire
  • Example#138 - Instruction switch
  • Example#139 - Utilisation de base des expressions match
  • Example#140 - Structure d'une expression match
  • Example#141 - Exemple d'une expression match non gérée
  • Example#142 - Utilisation d'une expression match généralisée pour effectuer des branchements sur des plages d'entiers
  • Example#143 - Utilisation d'une expression match généralisée pour effectuer des branchements sur le contenu d'une chaîne de caractères
  • Example#144 - Exemple d'utilisation des ticks
  • Example#145 - Déclaration d'un encodage pour un script
  • Example#146 - Exemple avec include
  • Example#147 - Inclusion de fichiers dans une fonction
  • Example#148 - Utiliser l'instruction include via HTTP
  • Example#149 - Comparaison de la valeur de retour d'une inclusion
  • Example#150 - include et return
  • Example#151 - Utilisation de la sortie du buffer pour inclure un fichier PHP dans une chaîne
  • Example#152 - Exemple avec goto
  • Example#153 - Exemple de boucle avec goto
  • Example#154 - Ce goto ne fonctionne pas
  • Example#155 - Pseudo code pour illustrer l'usage d'une fonction
  • Example#156 - Fonctions conditionnelles
  • Example#157 - Fonctions dans une autre fonction
  • Example#158 - Fonctions récursives
  • Example#159 - Nombre variable d'arguments sous forme de tableau
  • Example#160 - Function Argument List with trailing Comma
  • Example#161 - Passage d'arguments par référence
  • Example#162 - Valeur par défaut des arguments de fonctions
  • Example#163 - Utilisation de type non-scalaire comme valeur par défaut
  • Example#164 - Utilisation d'objets comme valeurs par défaut (à partir de PHP 8.1.0)
  • Example#165 - Les arguments sans valeur par défaut doivent être en premiers : erreur
  • Example#166 - Les arguments sans valeur par défaut doivent être en premiers : valide
  • Example#167 - Utilisation correcte des arguments de fonction par défaut
  • Example#168 - Déclarer des arguments facultatifs après les arguments obligatoires
  • Example#169 - Utilisation de ... pour accéder aux arguments variables
  • Example#170 - Utilisation de ... pour fournir des arguments
  • Example#171 - Transtypage d'arguments variables
  • Example#172 - Syntaxe des arguments nommés
  • Example#173 - Arguments positionnels comparés aux arguments nommés
  • Example#174 - Même exemple que ci-dessus, mais avec un ordre de paramètre différent
  • Example#175 - Combiner les arguments nommés avec les arguments positionnels
  • Example#176 - Error émise quand un même paramètre est passé plusieurs fois
  • Example#177 - Utiliser les arguments nommés après le déballage
  • Example#178 - Utilisation de return
  • Example#179 - Retourner un tableau d'une fonction
  • Example#180 - Retourner une référence d'une fonction
  • Example#181 - Exemple de fonction variable
  • Example#182 - Exemple de méthode variable
  • Example#183 - Exemple de méthode variable avec des propriétés statiques
  • Example#184 - callables complexe
  • Example#185 - Exemples avec des fonctions anonymes
  • Example#186 - Assignation de fonction anonyme à une variable
  • Example#187 - Héritage de variable depuis le contexte parent
  • Example#188 - Fonctions anonymes et contexte
  • Example#189 - Liage automatique de $this
  • Example#190 - Tentative d'usage de $this dans une fonction anonyme statique
  • Example#191 - Tentative de liage d'un objet à une fonction anonyme statique
  • Example#192 - Les fonctions fléchées capturent les variables par valeur automatiquement
  • Example#193 - Les fonctions fléchées capturent les variables par valeur automatiquement, même imbriquées
  • Example#194 - Exemples de fonctions fléchées
  • Example#195 - Valeurs de la portée extérieure ne peuvent pas être modifiées par les fonctions fléchées
  • Example#196 - Syntaxe callable de première classe basique
  • Example#197 - Comparaison de portée de CallableExpr(...) et des callables traditionnels
  • Example#198 - Définition typique d'une classe
  • Example#199 - Quelques exemples de la pseudo-variable $this
  • Example#200 - Création d'une instance
  • Example#201 - Créer une instance en utilisant une expression arbitraire
  • Example#202 - Assignation d'un objet
  • Example#203 - Créer de nouveaux objets
  • Example#204 - Accéder un membre d'un objet nouvellement créé
  • Example#205 - Accès de propriété contre appel de méthode
  • Example#206 - Appeler une fonction anonyme enregistrée dans une propriété
  • Example#207 - Héritage simple d'une classe
  • Example#208 - Méthodes enfant compatibles
  • Example#209 - Erreur fatale quand une méthode enfant supprime un paramètre
  • Example#210 - Erreur fatale quand une méthode enfant rend un paramètre optionnel obligatoire
  • Example#211 - Erreur lors de l'utilisation des arguments nommés et que les paramètres ont été renommés dans une classe enfant
  • Example#212 - Résolution de nom de classe
  • Example#213 - Résolution de nom de classe manquante
  • Example#214 - Résolution du nom d'un objet
  • Example#215 - Opérateur nullsafe
  • Example#216 - Déclarations de propriétés
  • Example#217 - Exemple de propriétés typées
  • Example#218 - Accès aux propriétés
  • Example#219 - Exemple de propriétés en lecture seule
  • Example#220 - Initialisation illégale de propriétés en lecture seule
  • Example#221 - Définition et utilisation d'une constante de classe
  • Example#222 - Exemple d'utilisation de ::class
  • Example#223 - Exemple d'expressions pour une constante de classe
  • Example#224 - Modificateur de visibilité des constantes de classe, à partir de PHP 7.1
  • Example#225 - Exemple d'autochargement
  • Example#226 - Autre exemple d'autochargement
  • Example#227 - Constructeur lors de l'héritage
  • Example#228 - Utiliser les arguments d'un constructeur
  • Example#229 - Utilisant la promotion de propriété de constructeur
  • Example#230 - Utilisation de new dans des initialiseurs
  • Example#231 - Utilisant la création via une méthode statique
  • Example#232 - Exemple avec un Destructeur
  • Example#233 - Déclaration de propriétés
  • Example#234 - Déclaration de méthodes
  • Example#235 - Déclaration de constantes à partir de PHP 7.1.0
  • Example#236 - Accès aux membres privés d'un objet du même type
  • Example#237 - Exemple d'héritage
  • Example#238 - La méthode surchargée ne déclare pas de type de retour.
  • Example#239 - La méthode surchargée déclare un mauvais type de retour.
  • Example#240 - La méthode surchargée déclare un mauvais type de retour sans notice de dépréciation.
  • Example#241 - :: en dehors de la définition de la classe
  • Example#242 - :: depuis la définition de la classe
  • Example#243 - Appel d'une méthode parente
  • Example#244 - Exemple avec une méthode statique
  • Example#245 - Exemple avec une propriété statique
  • Example#246 - Exemple de classe abstraite
  • Example#247 - Exemple avec une classe abstraite
  • Example#248 - Exemple d'interface
  • Example#249 - Les interfaces extensibles
  • Example#250 - Compatibilité de la variance avec plusieurs interfaces
  • Example#251 - Héritage de plusieurs interfaces
  • Example#252 - Interfaces avec des constantes
  • Example#253 - Les interfaces avec les classes abstraites
  • Example#254 - Étendant et implémentant simultanément
  • Example#255 - Exemple d'utilisation de Trait
  • Example#256 - Exemple avec l'ordre de précédence
  • Example#257 - Autre exemple d'ordre de précédence
  • Example#258 - Utilisation de plusieurs Traits
  • Example#259 - Résolution des conflits
  • Example#260 - Changer la visibilité des méthodes
  • Example#261 - Traits Composés depuis d'autres Traits
  • Example#262 - Obligations requises par les méthodes abstraites
  • Example#263 - Variables statiques
  • Example#264 - Méthodes statiques
  • Example#265 - Propriétés statiques
  • Example#266 - Définir des propriétés
  • Example#267 - Résolution des conflits
  • Example#268 - Trait définissant une constante
  • Example#269 - Résolution de conflit
  • Example#270 - Exemple de surcharge de propriétés avec les méthodes
     __get(),
     __set(),
     __isset() et
     __unset()
  • Example#271 - Surcharge de méthodes avec __call() et __callStatic()
  • Example#272 - Parcours d'objet simple
  • Example#273 - Utilisation de sleep() et wakeup()
  • Example#274 - Serialize et unserialize
  • Example#275 - Exemple simple
  • Example#276 - Exemple avec __invoke()
  • Example#277 - Exemple avec __invoke()
  • Example#278 - Utilisation de __set_state()
  • Example#279 - Utilisation de __debugInfo()
  • Example#280 - Exemple de méthode finale
  • Example#281 - Exemple de classe finale
  • Example#282 - Exemple de constante finale à partir de PHP 8.1.0
  • Example#283 - Exemple de duplication d'objets
  • Example#284 - Accès à un membre d'un objet fraîchement cloné
  • Example#285 - Exemple de comparaison d'objets en PHP
  • Example#286 - Utilisation de self::
  • Example#287 - Utilisation simple de static::
  • Example#288 - Utilisation de static:: dans un contexte non statique
  • Example#289 - Appel avec ou sans transmission
  • Example#290 - Références et Objets
  • Example#291 - Espaces de noms
  • Example#292 - Déclaration d'un espace de noms
  • Example#293 - Erreur de déclaration d'un espace de noms
  • Example#294 - Déclaration d'un espace de noms avec hiérarchie
  • Example#295 - Déclaration de plusieurs espaces de noms, syntaxe à combinaison simple
  • Example#296 - Déclaration de plusieurs espaces de noms, syntaxe à accolades
  • Example#297 - Déclaration de plusieurs espaces de noms avec un espace sans nom
  • Example#298 - Déclaration de plusieurs espaces de noms avec un espace sans nom (2)
  • Example#299 - Accès aux classes, fonctions et constantes globales depuis un espace de noms
  • Example#300 - Accès dynamique aux éléments
  • Example#301 - Accès dynamique à des espaces de noms
  • Example#302 - Exemple avec __NAMESPACE__, dans un code avec espace de noms
  • Example#303 - Exemple avec __NAMESPACE__, dans un code avec espace de noms global
  • Example#304 - Utilisation de __NAMESPACE__ pour une construction dynamique de noms
  • Example#305 - l'opérateur namespace, dans un espace de noms
  • Example#306 - l'opérateur namespace, dans l'espace de noms global
  • Example#307 - importation et alias avec l'opérateur use
  • Example#308 - importation et alias multiples avec l'opérateur use
  • Example#309 - Importation et noms d'espaces dynamiques
  • Example#310 - Importation et noms d'espaces absolus
  • Example#311 - Règles d'importation incorrectes
  • Example#312 - Spécification d'espace de noms global
  • Example#313 - Accès aux classes globales depuis un espace de noms
  • Example#314 - Accès aux fonctions et constantes globales dans un espace de noms
  • Example#315 - Exemples de résolutions d'espaces de noms
  • Example#316 - Accès à une classe globale de l'extérieur d'un espace de noms
  • Example#317 - Accéder à des classes globales hors d'un espace de noms
  • Example#318 - Accès aux classes internes depuis un espace de noms
  • Example#319 - Accès aux classes, fonctions et constantes internes dans un espace de noms
  • Example#320 - Noms d'espaces absolus
  • Example#321 - Noms qualifiés
  • Example#322 - Classes sans qualification
  • Example#323 - Fonctions et constantes sans espace de noms
  • Example#324 - Dangers de l'utilisation des espaces de noms dans une chaîne
  • Example#325 - Constantes indéfinies
  • Example#326 - Constantes qui ne peuvent être redéfinies
  • Example#327 - Valeurs limitées de base
  • Example#328 - Valeurs exclusives avancées
  • Example#329 - Convertir l'error reporting en exceptions
  • Example#330 - Lancer une exception
  • Example#331 - Gestion de l'exception avec un bloc finally
  • Example#332 - Interaction entre le bloc finally et return
  • Example#333 - Héritage d'une exception
  • Example#334 - Gestion des exceptions de capture multiple
  • Example#335 - Omettre la variable attrapé
  • Example#336 - Throw en tant qu'expression
  • Example#337 - La classe d'exception intégrée
  • Example#338 - Étendre la classe Exception
  • Example#339 - Utilisation de base
  • Example#340 - Implémentation de la fonction range sous la forme d'un générateur
  • Example#341 - Un exemple simple de production de valeurs
  • Example#342 - Production d'une paire clé/valeur
  • Example#343 - Production de valeurs nulles
  • Example#344 - Production de valeurs par référence
  • Example#345 - yield from avec iterator_to_array
  • Example#346 - Utilisation basique de yield from
  • Example#347 - yield from et les valeurs retournées
  • Example#348 - Implémentation de méthodes optionnelles d'une interface avec des attributs
  • Example#349 - Syntaxe des attributs
  • Example#350 - Lecture des attributs à l'aide de l'API de Reflection
  • Example#351 - Lecture d'attributs spécifiques à l'aide de l'API de Reflection
  • Example#352 - Classe d'attribut simple
  • Example#353 - Utilisation de la spécification de la cible pour restreindre l'utilisation des attributs
  • Example#354 - Utilisation de IS_REPEATABLE pour permettre à un attribut d'être utilisé plusieurs fois dans une déclaration
  • Example#355 - Utilisation des références avec des variables indéfinies
  • Example#356 - Référencer des variables globales depuis des fonctions
  • Example#357 - Références et structure foreach
  • Example#358 - Exemple avec $GLOBALS
  • Example#359 - Écrire au tableau entier $GLOBALS résultera en une erreur.
  • Example#360 - Exemple avec $_SERVER
  • Example#361 - Exemple avec $_GET
  • Example#362 - Exemple avec $_POST
  • Example#363 - Exemple avec $_ENV
  • Example#364 - Exemple avec $_COOKIE
  • Example#365 - Exemple avec $php_errormsg
  • Example#366 - Exemple avec $http_response_header
  • Example#367 - Exemple avec $argc
  • Example#368 - Exemple avec $argv
  • Example#369 - Exemple avec Exception::getMessage
  • Example#370 - Exemple avec Exception::getPrevious
  • Example#371 - Exemple avec Exception::getCode
  • Example#372 - Exemple avec Exception::getFile
  • Example#373 - Exemple avec Exception::getLine
  • Example#374 - Exemple avec Exception::getTrace
  • Example#375 - Exemple avec Exception::getTraceAsString
  • Example#376 - Exemple avec Exception::__toString
  • Example#377 - Utilisation de set_error_handler pour changer tous les messages d'erreurs en ErrorException
  • Example#378 - Exemple avec ErrorException::ErrorException
  • Example#379 - Exemple de Error::getMessage
  • Example#380 - Exemple de Error::getPrevious
  • Example#381 - Exemple de Error::getCode
  • Example#382 - Exemple de Error::getFile
  • Example#383 - Exemple de Error::getLine
  • Example#384 - Exemple de Error::getTrace
  • Example#385 - Exemple de Error::getTraceAsString
  • Example#386 - Exemple de Error::__toString
  • Example#387 - Exemple simple
  • Example#388 - Exemple simple
  • Example#389 - Exemple basique
  • Example#390 - Exemple avec ArrayAccess::offsetExists
  • Example#391 - Exemple simple
  • Example#392 - Exemple Closure::bind
  • Example#393 - Exemple Closure::bindTo
  • Example#394 - Exemple deClosure::call
  • Example#395 - Créé à la suite d'une conversion de type en objet
  • Example#396 - Créé en tant que résultat de json_decode
  • Example#397 - Déclaration de propriétés dynamiques
  • Example#398 - Generator::getReturn exemple
  • Example#399 - Exemple avec Generator::key
  • Example#400 - Exemple d'utilisation Generator::send pour injecter des données
  • Example#401 - >Lance une exception dans un générateur
  • Example#402 - Utilisation Simple de WeakReference
  • Example#403 - Exemple d'utilisation d'un Weakmap
  • Example#404 - Exemple simple
  • Example#405 - Utilisation de base
  • Example#406 - Utilisation de base
  • Example#407 - Utilisation de base
  • Example#408 - Passer un objet SensitiveParameterValue à var_dump
  • Example#409 - Exemple de SensitiveParameterValue::getValue
  • Example#410 - Exemple d'utilisation du paramètre bindto
  • Example#411 - Récupération d'une page et envoi de données POST
  • Example#412 - Ignore les redirections mais récupère les en-têtes et le contenu
  • Example#413 - Exemple avec une utilisation simple du paramètre password
  • Example#414 - Détecte la dernière URL après des redirections
  • Example#415 - php://temp/maxmemory
  • Example#416 - php://filter/resource=<flux à filtrer>
  • Example#417 - php://filter/read=<liste de filtres à appliquer lors de la lecture>
  • Example#418 - php://filter/write=<liste des filtres à appliquer lors de l'écriture>
  • Example#419 - php://memory et php://temp ne sont pas réutilisables
  • Example#420 - Affichage d'un contenu data://
  • Example#421 - Récupération du type de média
  • Example#422 - Utilisation simple
  • Example#423 - Ouverture d'un flux depuis une connexion active
  • Example#424 - La variable $session doit rester disponible !
  • Example#425 - Parcours d'une archive RAR
  • Example#426 - Ouverture d'un fichier crypté (en-tête crypté)
  • Example#427 - Ligne d'invocation de PHP
  • Example#428 - Une erreur de vérification de variable conduit à un gros problème
  • Example#429 - Une attaque du système de fichiers!
  • Example#430 - Une vérification renforcée
  • Example#431 - Vérification renforcée de noms de fichiers
  • Example#432 - Script vulnérable aux octets nuls
  • Example#433 - Validation correcte de l'entrée
  • Example#434 - Hacher un champ mot de passe
  • Example#435 - Séparation des résultats en pages, et créer des administrateurs (PostgreSQL et MySQL)
  • Example#436 - Exemple d'injection SQL
  • Example#437 - Liste d'articles ... et ajout de mot de passe
  • Example#438 - Révélation des mots de passe
  • Example#439 - Modifier un mot de passe ... et gain de droits!
  • Example#440 - Une requête et son injection
  • Example#441 - Attaque d'un serveur de bases de données (MSSQL Server)
  • Example#442 - Attaque d'un serveur de base de données (MSSQL Server) - 2
  • Example#443 - Éviter les injections SQL en utilisant des requêtes préparées PDO
  • Example#444 - Attaque de variables avec une page HTML personnalisée
  • Example#445 - Exploiter des variables classiques de débogage
  • Example#446 - Détecter des variables non protégées avec E_ALL
  • Example#447 - Utilisation dangereuse de variables
  • Example#448 - Masquer PHP avec un autre langage
  • Example#449 - Masquer PHP avec des types inconnus
  • Example#450 - Utiliser le type HTML pour les extensions PHP
  • Example#451 - Exemple d'identification HTTP simple
  • Example#452 - Exemple d'identification HTTP Digest
  • Example#453 - Identification HTTP avec nom d'utilisateur/mot de passe forcé
  • Example#454 - Un simple formulaire XForms de recherche
  • Example#455 - Utiliser des XForms pour remplir $_POST
  • Example#456 - Formulaire de chargement de fichier
  • Example#457 - Validation de téléchargement de fichiers
  • Example#458 - Envoi d'un tableau de fichiers
  • Example#459 - Télécharger plusieurs fichiers simultanément
  • Example#460 - Téléverser un dossier entier
  • Example#461 - Méthode PUT pour les chargements de fichiers
  • Example#462 - Directive Apache pour le chargement par méthode PUT
  • Example#463 - Sauvegarde de fichiers HTTP PUT
  • Example#464 - Connaître le titre d'une page distante
  • Example#465 - Stocker des données sur un serveur distant
  • Example#466 - Exemple montrant la différence avec le SAPI CGI :
  • Example#467 - Example of using -d to set an INI setting
  • Example#468 - Affichage des modules internes (et chargés) de PHP et Zend
  • Example#469 - Erreur de syntaxe lors de l'utilisation de doubles guillemets
  • Example#470 - Utilisation de guillemets simples pour éviter une substitution par le shell
  • Example#471 - Exemple d'utilisation des options -B, -R et -E pour compter le nombre de lignes d'un projet.
  • Example#472 - Utilisation de l'option -v pour récupérer le nom du SAPI ainsi que la version de PHP et de Zend
  • Example#473 - Exemple avec --ini
  • Example#474 - Exemple avec --rf
  • Example#475 - Exemple avec --rc
  • Example#476 - Exemple avec --re
  • Example#477 - Exemple avec --ri
  • Example#478 - Exécute un script PHP en tant que script shell
  • Example#479 - Script prévu pour être exécuté en ligne de commande (script.php)
  • Example#480 - Fichier batch pour exécuter un script PHP en ligne de commande (script.bat)
  • Example#481 - Exécution de code en utilisant le shell interactif
  • Example#482 - Auto-complétion en utilisant la touche de tabulation
  • Example#483 - Définition de directives du php.ini dans un shell interactif
  • Example#484 - Démarrage du serveur web
  • Example#485 - Démarrage avec un dossier racine spécifique
  • Example#486 - Utilisation d'un script routeur
  • Example#487 - Vérification de l'utilisation CLI du serveur Web
  • Example#488 - Gestion des types de fichiers non supportés
  • Example#489 - Accès au CLI du serveur web depuis une machine distante
  • Example#490 - Création d'un nouveau conteneur zval
  • Example#491 - Affichage des informations zval
  • Example#492 - Incrémentation du refcount d'une zval
  • Example#493 - Décrémentation du refcount d'une zval
  • Example#494 - Création d'une zval array
  • Example#495 - Ajout d'un élément déjà existant au tableau
  • Example#496 - Suppression d'un élément de tableau
  • Example#497 - Ajout du tableau comme référence à lui-même en tant qu'élement
  • Example#498 - Suppression de $a
  • Example#499 - Exemple d'utilisation mémoire
  • Example#500 - Impact de GC sur les performances
  • Example#501 - Lancement du script ci-dessus
  • Example#502 - Recompiler PHP pour activer le support du benchmark du GC
  • Example#503 - Statistiques GC
  • Example#504 - all_probes.d pour tracer toutes les sondes statiques PHP avec DTrace
  • Example#505 - all_probes.stp pour tracer toutes les sondes statiques PHP avec SystemTap
  • Example#506 - Un exemple avec apcu_add
  • Example#507 - Un exemple avec apcu_cache_info
  • Example#508 - Un exemple avec apcu_cas
  • Example#509 - Un exemple avec apcu_dec
  • Example#510 - Un exemple avec apcu_delete
  • Example#511 - Un exemple avec apcu_entry
  • Example#512 - Un exemple avec apcu_exists
  • Example#513 - Un exemple avec apcu_fetch
  • Example#514 - Un exemple avec apcu_inc
  • Example#515 - Un exemple avec apcu_key_info
  • Example#516 - Un exemple avec apcu_sma_info
  • Example#517 - Un exemple avec apcu_store
  • Example#518 - Un exemple avec APCUIterator::__construct
  • Example#519 - Gestion d'erreurs avancées en PHP
  • Example#520 - Exemple avec debug_backtrace
  • Example#521 - Exemple avec debug_print_backtrace
  • Example#522 - Un exemple de error_clear_last
  • 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 - Appel d'une fonction à partir d'une bibliothèque partagée
  • Example#532 - Appel d'une fonction, retournant une structure par l'intermédiaire d'un argument
  • Example#533 - Accès aux variables C existantes
  • Example#534 - Création et modification de variables C
  • Example#535 - Travailler avec des tableaux C
  • Example#536 - Travailler avec des enums en C
  • Example#537 - Assignation d'une Closure PHP à un pointeur de fonction C
  • Example#538 - Exemple de bufferisation de sortie
  • Example#539 - Exemple de réécriture de la sortie
  • Example#540 - Exemple avec ob_end_clean
  • Example#541 - Exemple avec ob_end_flush
  • Example#542 - Exemple avec ob_get_clean
  • Example#543 - Exemple avec ob_get_contents
  • Example#544 - Exemple avec ob_get_flush
  • Example#545 - Exemple avec ob_get_length
  • Example#546 - Tableau retourné lorsque le paramètre full_status est égal à true
  • Example#547 - Tableau retourné lorsque le paramètre full_status est égal à true
  • Example#548 - Exemple avec ob_list_handlers
  • Example#549 - Exemple de gestion de sortie avec fonction de rappel
  • Example#550 - Crée un tampon de sortie in-effaçable
  • Example#551 - Exemple avec output_add_rewrite_var
  • Example#552 - Exemple avec output_reset_rewrite_vars
  • Example#553 - Exemple avec assert_options
  • Example#554 - Exemple d'assert
  • Example#555 - Utilisation d'un message personnalisé
  • Example#556 - Utilisation d'une classe d'exception personnalisée
  • Example#557 - Exemple avec cli_get_process_title
  • Example#558 - Exemple avec cli_set_process_title
  • Example#559 - Exemples avec dl
  • Example#560 - Exemple avec extension_loaded
  • Example#561 - Exemple avec gc_enabled
  • Example#562 - Utilisation de gc_status
  • Example#563 - Exemple avec get_current_user
  • Example#564 - Exemple avec get_defined_constants
  • Example#565 - Affiche toutes les fonctions XML
  • Example#566 - Exemple avec get_include_path
  • Example#567 - Exemple avec get_included_files
  • Example#568 - Exemple avec get_loaded_extensions
  • Example#569 - get_resources non-filtré
  • Example#570 - get_resources filtré
  • Example#571 - Exemple avec getenv
  • Example#572 - Exemple avec getlastmod
  • Example#573 - Exemple avec getopt : les bases
  • Example#574 - Second exemple avec getopt : Introduction aux options longues
  • Example#575 - Troisième exemple avec getopt : Passage de plusieurs options
  • Example#576 - Exemple de getopt : Utilisant rest_index
  • Example#577 - Exemple avec getrusage
  • Example#578 - Exemple avec ini_get_all
  • Example#579 - Désactive le paramètre details
  • Example#580 - Exemples avec ini_get
  • Example#581 - A few ini_parse_quantity examples
  • Example#582 - Exemple avec ini_restore
  • Example#583 - Définit une option de configuration
  • Example#584 - Exemple avec memory_get_usage
  • Example#585 - memory_reset_peak_usage example
  • Example#586 - Exemple avec php_ini_loaded_file
  • Example#587 - Un exemple de liste retournée par php_ini_scanned_files
  • Example#588 - Exemple avec php_sapi_name
  • Example#589 - Exemples avec php_uname
  • Example#590 - Exemples avec quelques constantes liées au système
  • Example#591 - Exemple avec phpcredits
  • Example#592 - Affiche les développeurs principaux ansi que le groupe de documentation
  • Example#593 - Affiche tous les crédits
  • Example#594 - Exemple avec phpinfo
  • Example#595 - Exemple avec phpversion
  • Example#596 - Exemple avec PHP_VERSION_ID
  • Example#597 - Modification d'une variable d'environnement
  • Example#598 - Exemple avec restore_include_path
  • Example#599 - Exemple avec set_include_path
  • Example#600 - Ajout dans le chemin d'inclusion
  • Example#601 - Exemple avec sys_get_temp_dir
  • Example#602 - Exemple avec version_compare
  • Example#603 - Exemple avec zend_thread_id
  • Example#604 - Exemple avec zend_version
  • Example#605 - Custom Superglobals with runkit.superglobal=_FOO,_BAR in php.ini
  • Example#606 - A runkit7_function_add example
  • Example#607 - A runkit7_function_copy example
  • Example#608 - A runkit7_function_redefine example
  • Example#609 - runkit7_method_add example
  • Example#610 - runkit7_method_copy example
  • Example#611 - runkit7_method_redefine example
  • Example#612 - runkit7_method_remove example
  • Example#613 - runkit7_method_rename example
  • Example#614 - runkit7_zval_inspect example
  • Example#615 - Basic uopz_add_function Usage
  • Example#616 - uopz_allow_exit example
  • Example#617 - Exemple avec uopz_backup
  • Example#618 - Exemple avec uopz_compose
  • Example#619 - Exemple avec uopz_copy
  • Example#620 - Basic uopz_del_function Usage
  • Example#621 - Exemple avec uopz_delete
  • Example#622 - Exemple avec uopz_delete et une classe
  • Example#623 - Exemple avec uopz_extend
  • Example#624 - Exemple avec uopz_flags
  • Example#625 - Transformer une Classe finale en non-finale
  • Example#626 - Exemple avec uopz_function
  • Example#627 - Exemple avec uopz_function et une classe
  • Example#628 - uopz_get_exit_status example
  • Example#629 - Basic uopz_get_hook Usage
  • Example#630 - uopz_get_mock example
  • Example#631 - Basic uopz_get_property Usage
  • Example#632 - uopz_get_return example
  • Example#633 - Basic uopz_get_static Usage
  • Example#634 - Exemple avec uopz_implement
  • Example#635 - Exemple avec uopz_overload
  • Example#636 - Exemple avec uopz_redefine
  • Example#637 - Exemple avec uopz_rename
  • Example#638 - Exemple avec uopz_rename et une classe
  • Example#639 - Exemple avec uopz_restore
  • Example#640 - Basic uopz_set_hook Usage
  • Example#641 - uopz_set_mock example
  • Example#642 - uopz_set_mock example
  • Example#643 - uopz_set_mock and static members
  • Example#644 - Basic uopz_set_property Usage
  • Example#645 - uopz_set_return example
  • Example#646 - uopz_set_return example
  • Example#647 - uopz_set_return class example
  • Example#648 - Basic uopz_set_static Usage
  • Example#649 - Exemple avec uopz_undefine
  • Example#650 - Basic uopz_unset_hook Usage
  • Example#651 - uopz_unset_mock example
  • Example#652 - uopz_unset_return example
  • Example#653 - wincache.ignorelist exemple
  • Example#654 - Configuration de l'authentification pour wincache.php
  • Example#655 - Activer le gestionnaire de session WinCache
  • Example#656 - Activation des fonctionnalités de re routage des fonctions de WinCache
  • Example#657 - Reroute.ini
  • Example#658 - Un exemple de wincache_fcache_fileinfo
  • Example#659 - Un exemple de wincache_fcache_meminfo
  • Example#660 - Exemple avec wincache_lock
  • Example#661 - Un exemple de wincache_ocache_fileinfo
  • Example#662 - Un exemple de wincache_ocache_meminfo
  • Example#663 - Un exemple de wincache_refresh_if_changed
  • Example#664 - Exemple avec wincache_rplist_fileinfo
  • Example#665 - Exemple avec wincache_rplist_meminfo
  • Example#666 - Exemple avec wincache_scache_info
  • Example#667 - Exemple avec wincache_scache_meminfo
  • Example#668 - Exemple avec wincache_ucache_add et le paramètre key sous forme de chaîne de caractères
  • Example#669 - Exemple avec wincache_ucache_add et le paramètre key sous forme d'un tableau
  • Example#670 - Exemple avec wincache_ucache_cas
  • Example#671 - Exemple avec wincache_ucache_clear
  • Example#672 - Exemple avec wincache_ucache_dec
  • Example#673 - Exemple avec wincache_ucache_delete et le paramètre key sous forme de chaîne de caractères
  • Example#674 - Exemple avec wincache_ucache_delete et le paramètre key sous forme d'un tableau
  • Example#675 - 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#676 - Exemple avec wincache_ucache_exists
  • Example#677 - Exemple avec wincache_ucache_get et le paramètre key sous forme de chaîne de caractères
  • Example#678 - Exemple avec wincache_ucache_get et le paramètre key sous forme d'un tableau
  • Example#679 - Exemple avec wincache_ucache_inc
  • Example#680 - Exemple avec wincache_ucache_info
  • Example#681 - Exemple avec wincache_ucache_meminfo
  • Example#682 - Exemple avec wincache_ucache_set et le paramètre key sous forme de chaîne de caractères
  • Example#683 - Exemple avec wincache_ucache_set et le paramètre key sous forme de tableau
  • Example#684 - Exemple avec wincache_unlock
  • Example#685 - Exemple avec Xhprof et la GUI optionnelle
  • Example#686 - Exemple avec xhprof_disable
  • Example#687 - Exemple avec xhprof_enable
  • Example#688 - Exemple avec xhprof_sample_disable
  • Example#689 - Permet de s'assurer que l'élément est stocké
  • Example#690 - Utilisation des mots de passe CHAP
  • Example#691 - Exemple avec radius_acct_open
  • Example#692 - Exemple avec radius_add_server
  • Example#693 - Exemple avec radius_auth_open
  • Example#694 - Exemple avec radius_create_request
  • Example#695 - Exemple avec radius_cvt_addr
  • Example#696 - Exemple avec radius_cvt_int
  • Example#697 - Exemple avec radius_cvt_string
  • Example#698 - Exemple avec radius_get_attr
  • Example#699 - Exemple avec radius_get_tagged_attr_data
  • Example#700 - Exemple avec radius_get_tagged_attr_tag
  • Example#701 - Exemple avec radius_get_vendor_attr
  • Example#702 - Exemple avec radius_put_attr
  • Example#703 - Exemple avec radius_put_int
  • Example#704 - Exemple avec radius_put_string
  • Example#705 - Exemple avec radius_put_vendor_attr
  • Example#706 - Exemple d'interface de rappel de Readline
  • Example#707 - Exemple avec readline
  • Example#708 - Petit exemple avec bzip2
  • Example#709 - Compression de données
  • Example#710 - Décompression d'une chaîne
  • Example#711 - Exemple avec bzerror
  • Example#712 - Exemple avec bzopen
  • Example#713 - Exemple avec bzread
  • Example#714 - Exemple avec bzwrite
  • Example#715 - Utiliser un fichier externe
  • Example#716 - Utilier un fichier contenu dans une archive phar
  • Example#717 - Convertir une archive phar au format tar
  • Example#718 - Exemple d'utilisation de phar.cache_list
  • Example#719 - Un exemple avec Phar::addEmptyDir
  • Example#720 - Un exemple avec Phar::addFile
  • Example#721 - Un exemple avec Phar::addFromString
  • Example#722 - Un exemple avecPhar::apiVersion
  • Example#723 - Un exemple avecPhar::buildFromDirectory
  • Example#724 - Exemple avec Phar::buildFromIterator et SplFileInfo
  • Example#725 - Exemple avec Phar::buildFromIterator et d'autres itérateurs
  • Example#726 - Un exemple avec Phar::canCompress
  • Example#727 - Un exemple avec Phar::canWrite
  • Example#728 - Un exemple avec Phar::compress
  • Example#729 - Un exemple avec Phar::compressFiles
  • Example#730 - Un exemple avec Phar::__construct
  • Example#731 - Un exemple avec Phar::convertToData
  • Example#732 - Un exemple avec Phar::convertToExecutable
  • Example#733 - Exemple avec Phar::copy
  • Example#734 - Un exemple avec Phar::count
  • Example#735 - Exemple avec Phar::createDefaultStub
  • Example#736 - Un exemple avec Phar::decompress
  • Example#737 - Un exemple avec Phar::decompressFiles
  • Example#738 - Un exemple avec Phar::delMetaData
  • Example#739 - Un exemple avec Phar::delete
  • Example#740 - Exemple avec Phar::extractTo
  • Example#741 - Un exemple avec Phar::getMetadata
  • Example#742 - Exemple avec Phar::getStub
  • Example#743 - Un exemple avec Phar::hasMetadata
  • Example#744 - Exemple avec Phar::interceptFileFuncs
  • Example#745 - Un exemple avec Phar::interceptFileFuncs
  • Example#746 - Un exemple avec Phar::isBuffering
  • Example#747 - Exemple avec Phar::isCompressed
  • Example#748 - Un exemple avec Phar::loadPhar
  • Example#749 - Exemple avec Phar::mapPhar
  • Example#750 - Un exemple avec Phar::mount
  • Example#751 - Un exemple avec Phar::mungServer
  • Example#752 - Un exemple avec Phar::offsetExists
  • Example#753 - Exemple avec Phar::offsetGet
  • Example#754 - Un exemple avec Phar::offsetSet
  • Example#755 - Un exemple avec Phar::offsetUnset
  • Example#756 - Un exemple avec Phar::running
  • Example#757 - Un exemple avec Phar::setAlias
  • Example#758 - Un exemple avec Phar::setDefaultStub
  • Example#759 - Un exemple avec Phar::setMetadata
  • Example#760 - Un exemple avec Phar::setStub
  • Example#761 - Un exemple avec Phar::startBuffering
  • Example#762 - Un exemple Phar::stopBuffering
  • Example#763 - Un exemple avec Phar::unlinkArchive
  • Example#764 - Exemple avec Phar::webPhar
  • Example#765 - Un exemple avec PharData::addEmptyDir
  • Example#766 - Un exemple avec PharData::addFile
  • Example#767 - Exemple avec PharData::addFromString
  • Example#768 - Un exemple avec PharData::buildFromDirectory
  • Example#769 - Exemple avec PharData::buildFromIterator et SplFileInfo
  • Example#770 - Exemple avec PharData::buildFromIterator et d'autres itérateurs
  • Example#771 - Un exemple avec PharData::compress
  • Example#772 - Un exemple avec PharData::compressFiles
  • Example#773 - Un exemple avec PharData::__construct
  • Example#774 - Un exemple avec PharData::convertToData
  • Example#775 - Un exemple avec PharData::convertToExecutable
  • Example#776 - Un exemple avec PharData::copy
  • Example#777 - Exemple avec PharData::decompress
  • Example#778 - Un exemple avec PharData::decompressFiles
  • Example#779 - Un exemple avec PharData::delMetaData
  • Example#780 - Un exemple avec PharData::delete
  • Example#781 - Exemple avec PharData::extractTo
  • Example#782 - Un exemple avec PharData::offsetSet
  • Example#783 - Un exemple avec PharData::offsetUnset
  • Example#784 - Un exemple avec Phar::setMetadata
  • Example#785 - Un exemple avec PharFileInfo::chmod
  • Example#786 - Un exemple avec PharFileInfo::compress
  • Example#787 - Exemple avec PharFileInfo::__construct
  • Example#788 - Exemple avec PharFileInfo::decompress
  • Example#789 - Un exemple avec PharFileInfo::delMetaData
  • Example#790 - Exemple avec PharFileInfo::getCRC32
  • Example#791 - Un exemple avec PharFileInfo::getCompressedSize
  • Example#792 - Un exemple avec PharFileInfo::getMetadata
  • Example#793 - Un exemple avecPharFileInfo::getPharFlags
  • Example#794 - Un exemple avec PharFileInfo::isCRCChecked
  • Example#795 - Un exemple avec PharFileInfo::isCompressed
  • Example#796 - Un exemple avec PharFileInfo::setMetadata
  • Example#797 - Installation de Rar
  • Example#798 - Décompression à la volée
  • Example#799 - Exemple d'extractions RAR
  • Example#800 - Style orienté objet
  • Example#801 - Style procédural
  • Example#802 - Style orienté objet
  • Example#803 - Style procédural
  • Example#804 - Style orienté objet
  • Example#805 - Style procédural
  • Example#806 - Style orienté objet
  • Example#807 - Style procédural
  • Example#808 - Style orienté objet
  • Example#809 - Style procédural
  • Example#810 - Style orienté objet
  • Example#811 - Style procédural
  • Example#812 - Style orienté objet
  • Example#813 - Style procédural
  • Example#814 - Fonction de rappel pour le volume
  • Example#815 - Style orienté objet
  • Example#816 - Style procédural
  • Example#817 - Exemple avec RarArchive::__toString
  • Example#818 - Exemple avec RarEntry::extract
  • Example#819 - Comment extraire tous les fichiers d'une archive :
  • Example#820 - Exemple avec RarEntry::getAttr
  • Example#821 - Exemple avec RarEntry::getHostOs (version >= 2.0.0)
  • Example#822 - Exemple avec RarEntry::getHostOs (version <= 1.0.0)
  • Example#823 - Exemple avec RarEntry::getMethod
  • Example#824 - Exemple avec RarEntry::getName
  • Example#825 - Exemple avec RarEntry::getPackedSize
  • Example#826 - Exemple avec RarEntry::getStream
  • Example#827 - Exemple avec RarEntry::getUnpackedSize
  • Example#828 - Exemple avec RarEntry::getVersion
  • Example#829 - Exemple avec RarException::isUsingExceptions
  • Example#830 - Exemple avec RarException::setUsingExceptions
  • Example#831 - Création d'une archive Zip
  • Example#832 - Affiche les détails de l'archive et liste son contenu
  • Example#833 - Flux ZIP : lit les meta-données d'un fichier OpenOffice
  • Example#834 - Exemple d'utilisation de Zip
  • Example#835 - Crée un nouveau dossier dans l'archive
  • Example#836 - Ouverture et ajout
  • Example#837 - Ajout d'une entrée dans une nouvelle archive
  • Example#838 - Ajout d'un fichier dans un dossier d'une archive
  • Example#839 - Exemple avec ZipArchive::addGlob
  • Example#840 - Exemple avec ZipArchive::addPattern
  • Example#841 - Efface le fichier depuis l'archive en utilisant son index
  • Example#842 - Efface un fichier et un dossier de l'archive en utilisant les noms
  • Example#843 - Extrait toutes les entrées
  • Example#844 - Extrait deux entrées
  • Example#845 - Extrait le commentaire de l'archive
  • Example#846 - Teste si l'archive est au format torrentzip
  • Example#847 - Affiche le commentaire d'une entrée
  • Example#848 - Affiche le commentaire d'une entrée
  • Example#849 - Extrait toutes les entrées avec leurs droits Unix
  • Example#850 - Récupère le contenu du fichier
  • Example#851 - Récupère le contenu d'un fichier
  • Example#852 - Convertit une image depuis une entrée ZIP
  • Example#853 - Exemple avec ZipArchive::getNameIndex
  • Example#854 - Récupère le contenu de l'entrée ZIP
  • Example#855 - Récupère une entrée Zip avec la fonction fopen et le gestionnaire de flux ZIP
  • Example#856 - Gestionnaire de flux et image, peut être utilisé également avec les fonctions XML
  • Example#857 - Obtenir le contenu de l'entrée avec fread et le stocker
  • Example#858 - Obtenir le contenu de l'entrée avec fread et le stocker
  • Example#859 - Crée une archive et l'utilise avec ZipArchive::locateName
  • Example#860 - Ouverture et extraction
  • Example#861 - Création d'une archive
  • Example#862 - Créer une archive temporaire
  • Example#863 - Archivage d'un fichier
  • Example#864 - Archive un fichier
  • Example#865 - Renommer une entrée
  • Example#866 - Renommer une entrée
  • Example#867 - Ouvre et remplace
  • Example#868 - Création d'une archive et définition d'un commentaire
  • Example#869 - Créer une archive torrentzip
  • Example#870 - Ouvre une archive et définit un commentaire pour une entrée
  • Example#871 - Ouvre une archive et définit le commentaire pour une entrée
  • Example#872 - Ajoute des fichiers avec différentes méthodes de compression dans une archive
  • Example#873 - Ajoute des fichiers avec différentes méthodes de compression dans une archive
  • Example#874 - Ajoute un fichier et définir la méthode de compression
  • Example#875 - Archiver et chiffrer un fichier
  • Example#876 - Archiver un fichier avec ses droits Unix
  • Example#877 - Archive un fichier
  • Example#878 - Archive un fichier
  • Example#879 - Récupère les informations d'une entrée
  • Example#880 - Récupère les informations d'une entrée
  • Example#881 - Exemple avec Zlib
  • Example#882 - Fonctionnement avec l'API de compression et de décompression incrémentale
  • Example#883 - Exemple avec gzclose
  • Example#884 - Exemple avec gzcompress
  • Example#885 - Exemple avec gzdeflate
  • Example#886 - Création d'un fichier gzip
  • Example#887 - Exemple avec gzeof
  • Example#888 - Exemple avec gzfile
  • Example#889 - Exemple avec gzgetc
  • Example#890 - Exemple avec gzgets
  • Example#891 - Exemple avec gzgetss
  • Example#892 - Exemple avec gzinflate
  • Example#893 - Exemple avec gzopen
  • Example#894 - Exemple avec gzpassthru
  • Example#895 - Exemple avec gzread
  • Example#896 - Exemple avec gzseek
  • Example#897 - Exemple avec gzuncompress
  • Example#898 - Exemple avec gzwrite
  • Example#899 - Exemple avec ob_gzhandler
  • Example#900 - Exemple avec zlib_encode
  • Example#901 - Exemple avec hash_algos
  • Example#902 - Exemple avec hash_copy
  • Example#903 - Exemple dehash_equals example
  • Example#904 - Exemple avec hash_file
  • Example#905 - Exemple avec hash_hkdf
  • Example#906 - Exemple avec hash_hmac_algos
  • Example#907 - Exemple avec hash_hmac_file
  • Example#908 - Exemple avec hash_hmac
  • Example#909 - Exemple de hachage incrémental
  • Example#910 - Exemple avec hash_pbkdf2
  • Example#911 - Exemple avec hash_update_stream
  • Example#912 - Exemple avec hash
  • Example#913 - Exemple avec mcrypt_create_iv
  • Example#914 - Exemple avec mcrypt_enc_get_algorithms_name
  • Example#915 - Exemple avec mcrypt_enc_get_modes_name
  • Example#916 - Exemple avec mcrypt_enc_get_supported_key_sizes
  • Example#917 - Exemple avec mcrypt_encrypt
  • Example#918 - Exemple avec mcrypt_get_block_size
  • Example#919 - Exemple avec mcrypt_get_cipher_name
  • Example#920 - Exemple avec mcrypt_get_iv_size
  • Example#921 - Exemple avec mcrypt_get_key_size
  • Example#922 - Exemple avec mcrypt_list_algorithms
  • Example#923 - Exemple avec mcrypt_list_modes
  • Example#924 - Exemple avec mcrypt_module_open
  • Example#925 - Utilisation de mcrypt_module_open pour chiffrer
  • Example#926 - Exemple avec mcrypt_module_self_test
  • Example#927 - Exemple avec mdecrypt_generic
  • Example#928 - Calcule le MD5 et le hmac, puis l'affiche comme un hexadécimal
  • Example#929 - Parcourir la liste des hash
  • Example#930 - Exemple avec mhash_get_block_size
  • Example#931 - Exemple avec mhash_get_hash_name
  • Example#932 - Exemple avec openssl_cipher_iv_length
  • Example#933 - openssl_cipher_key_length example
  • Example#934 - openssl_cms_sign example
  • Example#935 - openssl_csr_export_to_file() example
  • Example#936 - openssl_csr_export() example
  • Example#937 - openssl_csr_get_public_key() example
  • Example#938 - Exemple avec openssl_csr_get_subject()
  • Example#939 - Création d'un certificat autosigné
  • Example#940 - Créer un certficat ECC autosigné (à partir de PHP 7.1.0)
  • Example#941 - Exemple avec openssl_csr_sign - signer une CSR (comment être votre propre Autorité de Certification)
  • Example#942 - Calcule un secret partagé
  • Example#943 - Générer une paire de clé DH publique/privée en PHP
  • Example#944 - Exemple de chiffrement authentifié AES en mode GCM pour PHP 7.1+
  • Example#945 - Exemple de chiffrement authentifié AES en mode GCM antérieur à PHP 7.1
  • Example#946 - Exemple avec openssl_error_string
  • Example#947 - Exemple avec openssl_get_cert_locations
  • Example#948 - Exemple openssl_get_cipher_methods
  • Example#949 - Exemple avec openssl_get_curve_names
  • Example#950 - Exemple openssl_get_md_methods
  • Example#951 - Exemple avec openssl_open
  • Example#952 - Exemple avec openssl_pbkdf2()
  • Example#953 - openssl_pkcs12_read example
  • Example#954 - Exemple avec openssl_pkcs7_decrypt
  • Example#955 - Exemple avec openssl_pkcs7_encrypt
  • Example#956 - Récupérer un tableau PEM depuis un fichier P7B
  • Example#957 - Exemple avec openssl_pkcs7_sign
  • Example#958 - openssl_pkey_derive example
  • Example#959 - Obtain the public key from a private key
  • Example#960 - Exemple openssl_random_pseudo_bytes
  • Example#961 - Exemple avec openssl_seal
  • Example#962 - Exemple avec openssl_sign
  • Example#963 - Exemple avec openssl_sign
  • Example#964 - Exemple avec openssl_spki_export_challenge
  • Example#965 - Exemple avec openssl_spki_export_challenge depuis <keygen>
  • Example#966 - Exemple avec openssl_spki_export
  • Example#967 - Exemple avec openssl_spki_export depuis <keygen>
  • Example#968 - Exemple avec openssl_spki_new
  • Example#969 - Exemple avec openssl_spki_verify
  • Example#970 - Exemple avec openssl_spki_verify depuis <keygen>
  • Example#971 - Exemple avec openssl_verify
  • Example#972 - Exemple avec openssl_verify
  • Example#973 - Exemple avec openssl_x509_verify
  • Example#974 - Utilisation basique de la fonction password_algos
  • Example#975 - Exemple avec password_hash
  • Example#976 - Exemple avec password_hash en définissant manuellement l'option cost
  • Example#977 - Exemple avec password_hash trouver un bon coût (cost)
  • Example#978 - Exemple avec password_hash et Argon2i
  • Example#979 - Usage de password_needs_rehash
  • Example#980 - Exemple avec password_verify
  • Example#981 - RNP clearsign example
  • Example#982 - simple callback function example
  • Example#983 - sodium_crypto_box_seal_open example
  • Example#984 - sodium_crypto_box_seal example
  • Example#985 - sodium_crypto_core_ristretto255_add example
  • Example#986 - sodium_crypto_core_ristretto255_from_hash example
  • Example#987 - sodium_crypto_core_ristretto255_is_valid_point example
  • Example#988 - sodium_crypto_core_ristretto255_random example
  • Example#989 - sodium_crypto_core_ristretto255_scalar_add example
  • Example#990 - sodium_crypto_core_ristretto255_scalar_invert example
  • Example#991 - sodium_crypto_core_ristretto255_scalar_negate example
  • Example#992 - sodium_crypto_core_ristretto255_scalar_random example
  • Example#993 - sodium_crypto_core_ristretto255_scalar_sub example
  • Example#994 - sodium_crypto_core_ristretto255_sub example
  • Example#995 - sodium_crypto_generichash_final example
  • Example#996 - sodium_crypto_generichash_init example
  • Example#997 - sodium_crypto_generichash_update example
  • Example#998 - sodium_crypto_kx_keypair usage
  • Example#999 - sodium_crypto_pwhash_str example
  • Example#1000 - sodium_crypto_pwhash example
  • Example#1001 - sodium_crypto_secretbox_keygen example
  • Example#1002 - Comparing sodium_crypto_secretbox_keygen with random_bytes
  • Example#1003 - sodium_crypto_secretbox_open example
  • Example#1004 - sodium_crypto_secretbox example
  • Example#1005 - sodium_crypto_secretstream_xchacha20poly1305_init_pull example
  • Example#1006 - sodium_crypto_secretstream_xchacha20poly1305_init_push example
  • Example#1007 - sodium_crypto_stream_xchacha20_xor_ic example
  • Example#1008 - Exemple avec DBA
  • Example#1009 - Lecture d'une base de données
  • Example#1010 - Exemple avec dba_handlers
  • Example#1011 - Lister les Priviléges pour une Colonne
  • Example#1012 - Lister les Colonnes d'une Table
  • Example#1013 - Connexion sans DSN
  • Example#1014 - odbc_connection_string_quote example
  • Example#1015 - Lister les DSNs disponibles
  • Example#1016 - Exemple avec odbc_execute et odbc_prepare
  • Example#1017 - Exemple avec odbc_fetch_into
  • Example#1018 - Exemple avec odbc_next_result
  • Example#1019 - Exemple avec odbc_prepare et odbc_execute
  • Example#1020 - Lister les Clés primaire d'une Colonne
  • Example#1021 - Liste les Colonnes d'une Procédure Stocké
  • Example#1022 - Liste les Procédures stocké d'une Base de Donnée
  • Example#1023 - Exemple avec odbc_result
  • Example#1024 - Exemple avec odbc_setoption
  • Example#1025 - Liste les Statistiques d'une Table
  • Example#1026 - Liste les Priviléges d'une Table
  • Example#1027 - Liste les Tables dans un Catalogue
  • Example#1028 - Utilisation de PDO::ATTR_DRIVER_NAME
  • Example#1029 - Connexion à MySQL
  • Example#1030 - Gestion des erreurs de connexion
  • Example#1031 - Fermeture d'une connexion
  • Example#1032 - Connexions persistantes
  • Example#1033 - Exécution d'un groupe dans une transaction
  • Example#1034 - Insertions répétitives en utilisant les requêtes préparées
  • Example#1035 - Insertions répétées en utilisant des requêtes préparées
  • Example#1036 - Récupération des données en utilisant des requêtes préparées
  • Example#1037 - Appel d'une procédure stockée avec un paramètre de sortie
  • Example#1038 - Appel d'une procédure stockée avec un paramètre d'entrée/sortie
  • Example#1039 - Utilisation invalide de marqueur
  • Example#1040 - Création d'une instance PDO et définition du mode d'erreur
  • Example#1041 - Crée une instance PDO et définit le mode d'erreur depuis le constructeur
  • Example#1042 - Affichage d'une image depuis une base de données
  • Example#1043 - Insertion d'une image dans une base de données
  • Example#1044 - Insertion d'une image dans une base de données Oracle
  • Example#1045 - Annule une transaction
  • Example#1046 - Valide une transaction basique
  • Example#1047 - Committing a DDL transaction
  • Example#1048 - Crée une instance PDO via une invocation de pilote
  • Example#1049 - Crée une instance PDO via une invocation URI
  • Example#1050 - Crée une instance PDO avec un alias
  • Example#1051 - Récupération d'un code SQLSTATE
  • Example#1052 - Affiche les champs d'erreurs pour une connexion PDO_ODBC sur une base de données DB2
  • Example#1053 - Exécution d'une requête DELETE
  • Example#1054 - Récupération des attributs de connexion à une base de données
  • Example#1055 - Exemple avec PDO::getAvailableDrivers
  • Example#1056 - Modèle de déclaration SQL avec des paramètres nommés
  • Example#1057 - Modèle de déclaration SQL avec des marqueurs
  • Example#1058 - Modèle de déclaration SQL avec un point d'interrogation échappé
  • Example#1059 - SQL sans marqueurs de substitution peut être exécuté utilisant PDO::query
  • Example#1060 - Protection d'une chaîne normale
  • Example#1061 - Protection d'une chaîne dangereuse
  • Example#1062 - Protection d'une chaîne complexe
  • Example#1063 - Annulation d'une transaction
  • Example#1064 - Lie l'affichage du jeu de résultats à des variables PHP
  • Example#1065 - Exécution d'une requête préparée avec des emplacements nommés
  • Example#1066 - Exécution d'une requête préparée avec des marqueurs de positionnement
  • Example#1067 - Appel une procédure stockée avec un paramètre INOUT
  • Example#1068 - Exécute une requête préparée avec des marqueurs nommés
  • Example#1069 - Exécute une requête préparée avec des points d'interrogation comme paramètre fictif
  • Example#1070 - Exemple avec PDOStatement::closeCursor
  • Example#1071 - Comptage des colonnes
  • Example#1072 - Exemple avec PDOStatement::debugDumpParams et des paramètres nommés
  • Example#1073 - Exemple avec PDOStatement::debugDumpParams et des paramètres anonymes
  • Example#1074 - Détermine la catégorie de l'erreur qui survient
  • Example#1075 - Affiche les champs de errorInfo pour une connexion PDO_ODBC sur une base de données DB2
  • Example#1076 - Exécute une requête préparée avec des variables et valeurs liées
  • Example#1077 - Exécute une requête préparée avec un tableau de valeurs nommées
  • Example#1078 - Exécute une requête préparée avec un tableau de valeurs positionnels
  • Example#1079 - Exécute une requête préparée avec des variables lié à un marqueur de positionnement
  • Example#1080 - Exécute une requête préparée en utilisant un tableau pour les clauses IN
  • Example#1081 - Récupération de lignes en utilisant différentes méthodes
  • Example#1082 - Récupération des lignes avec un curseur scrollable
  • Example#1083 - Ordre de construction
  • Example#1084 - Récupération de toutes les lignes d'un jeu de résultats
  • Example#1085 - Récupération de toutes les valeurs d'une seule colonne depuis un jeu de résultats
  • Example#1086 - Grouper toutes les valeurs d'une seule colonne
  • Example#1087 - Instancier une classe pour chaque résultat
  • Example#1088 - Appel d'une fonction pour chaque résultat
  • Example#1089 - Retourne la première colonne de la ligne suivante
  • Example#1090 - Récupération des métadonnées pour une colonne
  • Example#1091 - Récupération de multiples lignes de résultats retournées par une procédure stockée
  • Example#1092 - Retourne le nombre de lignes effacées
  • Example#1093 - Comptage des lignes retournées par une requête SELECT
  • Example#1094 - Définition du mode de récupération
  • Example#1095 - Insertion de LOBs dans CUBRID PDO
  • Example#1096 - Récupère des LOBs depuis CUBRID PDO
  • Example#1097 - Insertion d'un jeu dans CUBRID PDO avec le type de données par défaut.
  • Example#1098 - Spécifie le type de données lors de l'insertion du jeu dans CUBRID PDO
  • Example#1099 - Exemples de DSN PDO_CUBRID
  • Example#1100 - Exemple avec PDO::cubrid_schema
  • Example#1101 - Exemples avec PDO_DBLIB DSN
  • Example#1102 - Exemples avec PDO_FIREBIRD DSN
  • Example#1103 - Exemple avec un DSN PDO_FIREBIRD avec un port et un chemin
  • Example#1104 - Exemple avec un DSN PDO_FIREBIRD en local et un chemin vers le fichier employee.fdb sur un système Debian
  • Example#1105 - Un DSN PDO_FIREBIRD pour se connecter à une base de donnée en dialecte 1
  • Example#1106 - Exemple avec PDO_IBM DSN en utilisant db2cli.ini
  • Example#1107 - Exemple avec PDO_IBM DSN en utilisant une chaîne complète de connexion
  • Example#1108 - Exemple DSN de PDO_INFORMIX avec odbc.ini
  • Example#1109 - Exemple DSN de PDO_INFORMIX avec une chaîne de caractères de connexion
  • Example#1110 - Activation du mode non mis en cache de MySQL
  • Example#1111 - Exemples avec le DSN de PDO_MYSQL
  • Example#1112 - Exemples de DSN PDO_SQLSRV
  • Example#1113 - Exemples avec PDO_OCI DSN
  • Example#1114 - Exemple avec PDO_ODBC DSN (pilote ODBC Manager)
  • Example#1115 - Exemple avec PDO_ODBC DSN (connexion non cataloguée IBM DB2)
  • Example#1116 - Exemple avec PDO_ODBC DSN (connexion non cataloguée Microsoft Access)
  • Example#1117 - Exemples avec PDO_PGSQL DSN
  • Example#1118 - Exemple avec PDO::pgsqlLOBCreate
  • Example#1119 - Exemple avec PDO::pgsqlLOBOpen
  • Example#1120 - Exemple avec PDO::pgsqlLOBUnlink
  • Example#1121 - Exemples avec PDO_SQLITE DSN
  • Example#1122 - Exemple d'agrégation avec une fonction max_length
  • Example#1123 - Exemple avec PDO::sqliteCreateCollation
  • Example#1124 - Exemple avec PDO::sqliteCreateFunction
  • Example#1125 - Exemple de récupération de données
  • Example#1126 - Exemple d'insertion de données
  • Example#1127 - Exemple avec cubrid_bind
  • Example#1128 - Exemple avec cubrid_bind et les types BLOB/CLOB
  • Example#1129 - Exemple avec cubrid_bind et BLOB/CLOB
  • Example#1130 - Exemple avec cubrid_close_prepare
  • Example#1131 - Exemple avec cubrid_close_request
  • Example#1132 - Exemple avec cubrid_col_get
  • Example#1133 - Exemple avec cubrid_col_size
  • Example#1134 - Exemple avec cubrid_column_names
  • Example#1135 - Exemple avec cubrid_column_types
  • Example#1136 - Exemple avec cubrid_commit
  • Example#1137 - Exemple avec cubrid_connect_with_url
  • Example#1138 - Exemple avec cubrid_connect_with_url
  • Example#1139 - Exemple avec cubrid_connect
  • Example#1140 - Exemple avec cubrid_current_oid
  • Example#1141 - Exemple avec cubrid_disconnect
  • Example#1142 - Exemple avec cubrid_drop
  • Example#1143 - Exemple avec cubrid_error_code_facility
  • Example#1144 - Exemple avec cubrid_error_code
  • Example#1145 - Exemple avec cubrid_error_msg
  • Example#1146 - Exemple avec cubrid_execute
  • Example#1147 - Exemple avec cubrid_fetch
  • Example#1148 - Exemple avec cubrid_free_result
  • Example#1149 - Exemple avec cubrid_get_charset
  • Example#1150 - Exemple avec cubrid_get_class_name
  • Example#1151 - Exemple avec cubrid_get_client_info
  • Example#1152 - Exemple avec cubrid_get_db_parameter
  • Example#1153 - Exemple avec cubrid_get_query_timeout
  • Example#1154 - Exemple avec cubrid_get_server_info
  • Example#1155 - Exemple avec cubrid_get
  • Example#1156 - Exemple avec cubrid_insert_id
  • Example#1157 - Exemple avec cubrid_is_instance
  • Example#1158 - Exemple avec cubrid_lob_close
  • Example#1159 - Exemple avec cubrid_lob_export
  • Example#1160 - Exemple avec cubrid_lob_get
  • Example#1161 - Exemple avec cubrid_lob_send
  • Example#1162 - Exemple avec cubrid_lob_size
  • Example#1163 - Exemple avec cubrid_lob2_bind
  • Example#1164 - cubrid_lob2_export example
  • Example#1165 - Exemple avec cubrid_lob2_export
  • Example#1166 - Exemple 1 avec cubrid_lob2_read
  • Example#1167 - Exemple 2 avec cubrid_lob2_read
  • Example#1168 - Exemple avec cubrid_lob2_seek64
  • Example#1169 - Exemple avec cubrid_lob2_seek
  • Example#1170 - Exemple 1 avec cubrid_lob2_write
  • Example#1171 - Exemple 2 avec cubrid_lob2_write
  • Example#1172 - Exemple avec cubrid_lock_read
  • Example#1173 - Exemple avec cubrid_lock_write
  • Example#1174 - Exemple avec cubrid_move_cursor
  • Example#1175 - Exemple avec cubrid_next_result
  • Example#1176 - Exemple avec cubrid_num_cols
  • Example#1177 - Exemple avec cubrid_num_rows
  • Example#1178 - Exemple avec cubrid_pconnect_with_url sans propriétés
  • Example#1179 - cubrid_pconnect_with_url url with properties example
  • Example#1180 - Exemple avec cubrid_connect
  • Example#1181 - Exemple avec cubrid_prepare
  • Example#1182 - Exemple avec cubrid_put
  • Example#1183 - Exempe avec cubrid_rollback
  • Example#1184 - Exemple avec cubrid_schema
  • Example#1185 - Exemple avec cubrid_seq_drop
  • Example#1186 - Exemple avec cubrid_seq_insert
  • Example#1187 - Exemple avec cubrid_seq_put
  • Example#1188 - Exemple avec cubrid_set_add
  • Example#1189 - Exemple avec cubrid_get_db_parameter
  • Example#1190 - Exemple avec cubrid_set_drop
  • Example#1191 - Exemple avec cubrid_version
  • Example#1192 - Exemple avec cubrid_affected_rows
  • Example#1193 - Exemple avec cubrid_client_encoding
  • Example#1194 - Exemple avec cubrid_close
  • Example#1195 - Exemple avec cubrid_data_seek
  • Example#1196 - Exemple avec cubrid_db_name
  • Example#1197 - Exemple avec cubrid_errno
  • Example#1198 - Exemple avec cubrid_error
  • Example#1199 - Exemple avec cubrid_fetch_array
  • Example#1200 - Exemple avec cubrid_fetch_assoc
  • Example#1201 - Exemple avec cubrid_fetch_field
  • Example#1202 - Exemple avec cubrid_fetch_lengths
  • Example#1203 - Exemple avec cubrid_fetch_object
  • Example#1204 - Exemple avec cubrid_fetch_row
  • Example#1205 - Exemple avec cubrid_field_flags
  • Example#1206 - Exemple avec cubrid_field_len
  • Example#1207 - Exemple avec cubrid_field_name
  • Example#1208 - Exemple avec cubrid_field_seek
  • Example#1209 - Exemple avec cubrid_field_table
  • Example#1210 - Exemple avec cubrid_field_type
  • Example#1211 - Exemple avec cubrid_list_dbs
  • Example#1212 - Exemple avec cubrid_num_fields
  • Example#1213 - Exemple avec cubrid_ping
  • Example#1214 - Requête invalide
  • Example#1215 - Requête valide
  • Example#1216 - Exemple avec cubrid_real_escape_string
  • Example#1217 - Exemple avec cubrid_result
  • Example#1218 - Exemple avec cubrid_unbuffered_query
  • Example#1219 - Exemple avec cubrid_load_from_glo
  • Example#1220 - Exemple avec cubrid_new_glo
  • Example#1221 - Exemple avec cubrid_save_to_glo
  • Example#1222 - Exemple avec cubrid_send_glo
  • Example#1223 - Insertion d'un enregistrement dans une base de données dBase
  • Example#1224 - Ferme un fichier de base de données dBase
  • Example#1225 - Création d'un fichier de base de données dBase
  • Example#1226 - Affiche les informations d'en-têtes pour un fichier de base de données dBase
  • Example#1227 - Liste tous les membres enregistrés dans la base de données
  • Example#1228 - Exemple avec dbase_numfields
  • Example#1229 - Lecture de tous les enregistrements de la base de données
  • Example#1230 - Ouverture d'un fichier de base de données dBase
  • Example#1231 - Vide une base de données dBase
  • Example#1232 - Mise à jour d'un enregistrement dans une base de données
  • Example#1233 - Exemple avec ibase_backup
  • Example#1234 - Exemple de ibase_backup avec des arguments
  • Example#1235 - Exemple avec ibase_blob_get
  • Example#1236 - Exemple avec ibase_blob_import
  • Example#1237 - Exemple avec ibase_connect
  • Example#1238 - Exemple avec ibase_execute
  • Example#1239 - Exemple avec ibase_fetch_object
  • Example#1240 - Exemple avec ibase_field_info
  • Example#1241 - Exemple avec ibase_name_result
  • Example#1242 - Exemple avec ibase_num_fields
  • Example#1243 - Exemple avec ibase_query
  • Example#1244 - Exemple avec ibase_restore
  • Example#1245 - Exemple de ibase_restore avec des arguments
  • Example#1246 - Exemple avec ibase_service_attach
  • Example#1247 - Exemple avec ibase_service_attach
  • Example#1248 - Exemple deibase_service_attach en utilisant la syntaxe hostname/port
  • Example#1249 - Exemple avec ibase_service_detach
  • Example#1250 - Exemple avec ibase_set_event_handler
  • Example#1251 - Récupération de la valeur de AUTOCOMMIT pour une connexion
  • Example#1252 - Modification de la valeur de AUTOCOMMIT pour une connexion
  • Example#1253 - Association de variables PHP à une requête préparée
  • Example#1254 - Appel de procédures d'enregistrement avec les paramètres IN et OUT
  • Example#1255 - Insertion d'un objet large binaire (BLOB) provenant directement d'un fichier
  • Example#1256 - Exemple avec db2_client_info
  • Example#1257 - Fermeture d'une connexion
  • Example#1258 - Récupération de la valeur de SQLSTATE pour une tentative de connexion échouée
  • Example#1259 - Récupération du message d'erreur retourné par une tentative de connexion échouée
  • Example#1260 - Création d'une connexion cataloguée
  • Example#1261 - Création d'une connexion non cataloguée
  • Example#1262 - Création d'une connexion avec autocommit désactivé par défaut
  • Example#1263 - Meilleure performance i5/OS
  • Example#1264 - Utilisation du contexte
  • Example#1265 - Exemple avec db2_escape_string
  • Example#1266 - Création d'une table avec db2_exec
  • Example#1267 - Exécution d'une requête SELECT avec un curseur flottant
  • Example#1268 - Retourne des données XML en tant que ResultSet SQL
  • Example#1269 - Exécuter un "JOIN" avec des données XML
  • Example#1270 - Retourne des données SQL faisant partie d'un document XML large
  • Example#1271 - Préparation et exécution d'une requête SQL avec des marqueurs
  • Example#1272 - Appel d'une procédure d'enregistrement avec un paramètre de SORTIE
  • Example#1273 - Retourne des données XML en tant que ResultSet SQL
  • Example#1274 - Exécuter un "JOIN" avec des données XML
  • Example#1275 - Retourne des données SQL faisant partie d'un document XML large
  • Example#1276 - Itère avec un curseur d'avancement seul
  • Example#1277 - Récupération de lignes spécifiques avec db2_fetch_array provenant d'un curseur flottant
  • Example#1278 - Itère avec un curseur d'avancement seul
  • Example#1279 - Récupération de lignes spécifiques avec db2_fetch_assoc provenant d'un curseur flottant
  • Example#1280 - Itère avec un curseur d'avancement seul
  • Example#1281 - Récupération de lignes spécifiques avec db2_fetch_both provenant d'un curseur flottant
  • Example#1282 - Exemple avec db2_fetch_object
  • Example#1283 - Itère à travers un jeu de résultats
  • Example#1284 - Alternatives recommandées i5/OS pour db2_fetch_row/db2_result
  • Example#1285 - Fixe et récupère les paramètres d'une ressource de connexion
  • Example#1286 - Exemple avec db2_last_insert_id
  • Example#1287 - Itére à travers différents types de données
  • Example#1288 - Exemple avec db2_next_result
  • Example#1289 - Exemple avec db2_num_fields
  • Example#1290 - Fermer une connexion DB2 persistante
  • Example#1291 - Exemple d'utilisation de db2_pconnect
  • Example#1292 - Utilisation de contextes de confiance DB2
  • Example#1293 - Préparation et exécution d'une requête SQL avec des marqueurs
  • Example#1294 - Exemple d'utilisation de db2_result
  • Example#1295 - Annulation d'une requête DELETE
  • Example#1296 - Exemple avec db2_server_info
  • Example#1297 - Fixer un paramètre à une ressource de connexion
  • Example#1298 - Fixe des paramètres multiples avec une ressource de connexion
  • Example#1299 - Fixe des paramètres multiples avec une clé invalide
  • Example#1300 - Fixe des paramètres multiples avec une valeur invalide
  • Example#1301 - Fixe des paramètres multiples avec une ressource de connexion et un mauvais type
  • Example#1302 - Fixe des paramètres multiples avec une mauvaise ressource
  • Example#1303 - Tout mettre ensemble
  • Example#1304 - Les curseurs i5/OS sont en lecture seule
  • Example#1305 - MongoDB\Driver\Manager::__construct basic example
  • Example#1306 - MongoDB\Driver\Manager::__construct basic examples
  • Example#1307 - MongoDB\Driver\Manager::executeBulkWrite example
  • Example#1308 - MongoDB\Driver\Manager::executeCommand with a command returning a single result document
  • Example#1309 - MongoDB\Driver\Manager::executeCommand with a command returning a cursor
  • Example#1310 - Limiting execution time for a command
  • Example#1311 - MongoDB\Driver\Manager::executeQuery example
  • Example#1312 - Limiting execution time for a query
  • Example#1313 - MongoDB\Driver\Manager::getReadConcern example
  • Example#1314 - MongoDB\Driver\Manager::getReadPreference example
  • Example#1315 - Exemple avec MongoDB\Driver\Manager::getServers
  • Example#1316 - MongoDB\Driver\Manager::getWriteConcern example
  • Example#1317 - Composing MongoDB\Driver\Command to provide a helper to create collections
  • Example#1318 - Exemple avec MongoDB\Driver\Command::__construct
  • Example#1319 - Exemple avec MongoDB\Driver\Command::__construct
  • Example#1320 - MongoDB\Driver\Query::__construct example
  • Example#1321 - Mixed write operations are grouped by type
  • Example#1322 - Ordered write operations causing an error
  • Example#1323 - MongoDB\Driver\BulkWrite::__construct example
  • Example#1324 - MongoDB\Driver\BulkWrite::count example
  • Example#1325 - MongoDB\Driver\BulkWrite::delete example
  • Example#1326 - MongoDB\Driver\BulkWrite::insert example
  • Example#1327 - MongoDB\Driver\BulkWrite::update example
  • Example#1328 - Declare an API version on a manager
  • Example#1329 - Declare a strict API version on a manager
  • Example#1330 - MongoDB\Driver\WriteConcern::bsonSerialize with majority write concern
  • Example#1331 - MongoDB\Driver\WriteConcern::bsonSerialize with wtimeout and journal
  • Example#1332 - Exemple avec MongoDB\Driver\WriteConcern::__construct
  • Example#1333 - MongoDB\Driver\WriteConcern::getJournal example
  • Example#1334 - MongoDB\Driver\WriteConcern::getW example
  • Example#1335 - MongoDB\Driver\WriteConcern::getWtimeout example
  • Example#1336 - MongoDB\Driver\WriteConcern::isDefault example
  • Example#1337 - MongoDB\Driver\ReadPreference::bsonSerialize with primary read preference
  • Example#1338 - MongoDB\Driver\ReadPreference::bsonSerialize with secondary read preference and tag sets
  • Example#1339 - MongoDB\Driver\ReadPreference::bsonSerialize with secondary read preference and max staleness
  • Example#1340 - Exemple avec MongoDB\Driver\ReadPreference::__construct
  • Example#1341 - MongoDB\Driver\ReadPreference::getMaxStalenessSeconds example
  • Example#1342 - MongoDB\Driver\ReadPreference::getMode example
  • Example#1343 - MongoDB\Driver\ReadPreference::getModeString example
  • Example#1344 - MongoDB\Driver\ReadPreference::getTagSets example
  • Example#1345 - MongoDB\Driver\ReadConcern::bsonSerialize with empty read concern
  • Example#1346 - MongoDB\Driver\ReadConcern::bsonSerialize with local read concern
  • Example#1347 - MongoDB\Driver\ReadConcern::__construct example
  • Example#1348 - MongoDB\Driver\ReadConcern::getLevel example
  • Example#1349 - MongoDB\Driver\ReadConcern::isDefault example
  • Example#1350 - Lecture d'un jeu de résultats
  • Example#1351 - Lecture d'un jeu de résultats pour un curseur à queue
  • Example#1352 - Exemple avec MongoDB\Driver\Cursor::getId
  • Example#1353 - Exemple avec MongoDB\Driver\Cursor::getServer
  • Example#1354 - Exemple avec MongoDB\Driver\Cursor::isDead
  • Example#1355 - Exemple avec MongoDB\Driver\Cursor::setTypeMap
  • Example#1356 - Exemple avec MongoDB\Driver\Cursor::toArray
  • Example#1357 - Exemple avec MongoDB\Driver\CursorId::__toString
  • Example#1358 - Exemple avec MongoDB\Driver\Server::getHost
  • Example#1359 - Exemple avec MongoDB\Driver\Server::getInfo
  • Example#1360 - Exemple avec MongoDB\Driver\Server::getLatency
  • Example#1361 - Exemple avec MongoDB\Driver\Server::getPort
  • Example#1362 - Exemple avec MongoDB\Driver\WriteConcernError::getCode
  • Example#1363 - Exemple avec MongoDB\Driver\WriteConcernError::getInfo
  • Example#1364 - Exemple avec MongoDB\Driver\WriteConcernError::getMessage
  • Example#1365 - Exemple avec MongoDB\Driver\WriteError::getCode
  • Example#1366 - Exemple avec MongoDB\Driver\WriteError::getIndex
  • Example#1367 - Exemple avec MongoDB\Driver\WriteError::getMessage
  • Example#1368 - Exemple avec MongoDB\Driver\WriteResult::getDeletedCount
  • Example#1369 - Exemple avec MongoDB\Driver\WriteResult::getInsertedCount
  • Example#1370 - Exemple avec MongoDB\Driver\WriteResult::getMatchedCount
  • Example#1371 - Exemple avec MongoDB\Driver\WriteResult::getModifiedCount
  • Example#1372 - Exemple avec MongoDB\Driver\WriteResult::getServer
  • Example#1373 - Exemple avec MongoDB\Driver\WriteResult::getUpsertedCount
  • Example#1374 - Exemple avec MongoDB\Driver\WriteResult::getUpsertedIds
  • Example#1375 - Exemple avec MongoDB\Driver\WriteResult::getWriteConcernError
  • Example#1376 - MongoDB\Driver\WriteResult::getWriteErrors avec une seule erreur
  • Example#1377 - MongoDB\Driver\WriteResult::getWriteErrors avec plusieurs erreurs
  • Example#1378 - MongoDB\Driver\WriteResult::isAcknowledged avec la préocupation d'écriture reconnue
  • Example#1379 - MongoDB\Driver\WriteResult::isAcknowledged avec la préocupation d'écriture non reconnue
  • Example#1380 - Exemple avec MongoDB\BSON\fromJSON
  • Example#1381 - Exemple avec MongoDB\BSON\fromPHP
  • Example#1382 - MongoDB\BSON\toCanonicalExtendedJSON example
  • Example#1383 - Exemple avec MongoDB\BSON\toJSON
  • Example#1384 - MongoDB\BSON\toPHP example
  • Example#1385 - MongoDB\BSON\toRelaxedExtendedJSON example
  • Example#1386 - MongoDB\BSON\Document::toCanonicalExtendedJSON example
  • Example#1387 - MongoDB\BSON\Document::toRelaxedExtendedJSON example
  • Example#1388 - Exemple avec MongoDB\BSON\Binary::__construct
  • Example#1389 - Exemple avec MongoDB\BSON\Binary::getData
  • Example#1390 - Exemple avec MongoDB\BSON\Binary::getType
  • Example#1391 - Exemple avec MongoDB\BSON\Binary::__toString
  • Example#1392 - Exemple avec MongoDB\BSON\Decimal128::__construct
  • Example#1393 - Exemple avec MongoDB\BSON\Decimal128::__toString
  • Example#1394 - MongoDB\BSON\Javascript::__construct example
  • Example#1395 - Exemple avec MongoDB\BSON\Javascript::getCode
  • Example#1396 - Exemple avec MongoDB\BSON\Javascript::getScope
  • Example#1397 - Exemple avec MongoDB\BSON\Javascript::__toString
  • Example#1398 - Exemple avec MongoDB\BSON\MaxKey::__construct
  • Example#1399 - Exemple avec MongoDB\BSON\MinKey::__construct
  • Example#1400 - Exemple avec MongoDB\BSON\ObjectId::__construct
  • Example#1401 - Exemple avec MongoDB\BSON\ObjectId::getTimestamp
  • Example#1402 - Exemple avec MongoDB\BSON\ObjectId::__toString
  • Example#1403 - MongoDB\BSON\Regex::__construct example
  • Example#1404 - Exemple avec BSON\Regex::getFlags
  • Example#1405 - Exemple avec BSON\Regex::getPattern
  • Example#1406 - Exemple avec BSON\Regex::__toString
  • Example#1407 - Exemple avec MongoDB\BSON\Timestamp::__construct
  • Example#1408 - Exemple avec MongoDB\BSON\Timestamp::__toString
  • Example#1409 - Exemple avec MongoDB\BSON\UTCDatetime::__construct
  • Example#1410 - Exemple avec MongoDB\BSON\UTCDatetime::toDateTime
  • Example#1411 - Exemple avec MongoDB\BSON\UTCDatetime::__toString
  • Example#1412 - MongoDB\BSON\Serializable::bsonSerialize renvoyant un tableau associatif pour le document racine
  • Example#1413 - MongoDB\BSON\Serializable::bsonSerialize renvoyant un tableau séquentiel pour le document racine
  • Example#1414 - MongoDB\BSON\Serializable::bsonSerialize renvoyant un tableau associatif pour le champ de document
  • Example#1415 - MongoDB\BSON\Serializable::bsonSerialize renvoyant un tableau séquentiel pour le champ de document
  • Example#1416 - Exemple avec MongoDB\BSON\Unserializable::bsonUnserialize
  • Example#1417 - Exemple avec MongoDB\BSON\Int64::__toString
  • Example#1418 - Exemple avec MongoDB\Driver\Exception\WriteException::getWriteResult
  • Example#1419 - Comparaison des APIs MySQL
  • Example#1420 - Commande de configuration pour l'utilisation de mysqlnd ou de libmysqlclient
  • Example#1421 - Comparaison des instructions préparées
  • Example#1422 - Exemple de requêtes n'utilisant pas la mémoire tampon : mysqli
  • Example#1423 - Exemple de requêtes n'utilisant pas la mémoire tampon : pdo_mysql
  • Example#1424 - Problèmes lors de la définition du jeu de caractères avec SQL
  • Example#1425 - Exemple de définition du jeu de caractères : mysqli
  • Example#1426 - Exemple de définition du jeu de caractères : pdo_mysql
  • Example#1427 - Migration facile depuis l'ancienne extension mysql
  • Example#1428 - Interface procédurale et orientée objet
  • Example#1429 - Mauvais style de codage
  • Example#1430 - Signification spéciale de localhost
  • Example#1431 - Paramètres par défaut
  • Example#1432 - Exécution des requêtes
  • Example#1433 - Navigation dans des résultats mis en mémoire tampon
  • Example#1434 - Navigation dans des résultats non mis en mémoire tampon
  • Example#1435 - Le protocole texte retourne des chaînes de caractères par défaut
  • Example#1436 - Types natifs des données avec mysqlnd et l'option de connexion
  • Example#1437 - Première étape : la préparation
  • Example#1438 - Requête de type INSERT préparée une seule fois, et exécutée plusieurs fois
  • Example#1439 - Moins d'aller-retour en utilisant les multi-INSERTs SQL
  • Example#1440 - Types de données natifs
  • Example#1441 - Liage des variables de sortie
  • Example#1442 - Utilisation de mysqli_result pour récupérer les résultats
  • Example#1443 - Jeu de résultats mis en mémoire tampon pour plus de flexibilité dans la lecture
  • Example#1444 - Appel d'une procédure stockée
  • Example#1445 - Utilisation des variables de session
  • Example#1446 - Récupération des résultats issus d'une procédure stockée
  • Example#1447 - Procédures stockées et requête préparée
  • Example#1448 - Procédures stockées et requête préparée en utilisant l'API de liage
  • Example#1449 - Requêtes multiples
  • Example#1450 - Injection SQL
  • Example#1451 - Définir le mode autocommit via SQL ou via l'API
  • Example#1452 - Validation et annulation d'une transaction
  • Example#1453 - Accès aux méta-données du jeu de résultats
  • Example#1454 - Méta-données via des requêtes préparées
  • Example#1455 - Exemple avec $mysqli->affected_rows
  • Example#1456 - Exemple avec mysqli::autocommit
  • Example#1457 - Exemple avec mysqli::begin_transaction
  • Example#1458 - Exemple avec mysqli::change_user
  • Example#1459 - mysqli::character_set_name example
  • Example#1460 - mysqli::close example
  • Example#1461 - Exemple avec $mysqli->connect_errno
  • Example#1462 - Exemple avec $mysqli->connect_error
  • Example#1463 - Exemple mysqli::__construct
  • Example#1464 - Étendre la classe mysqli
  • Example#1465 - Gestion d'erreur manuelle
  • Example#1466 - Génération d'un fichier de "traces"
  • Example#1467 - Exemple avec $mysqli->errno
  • Example#1468 - Exemple avec $mysqli->error_list
  • Example#1469 - Exemple avec $mysqli->error
  • Example#1470 - mysqli::execute_query example
  • Example#1471 - Exemple avec $mysqli->field_count
  • Example#1472 - Exemple avec mysqli::get_charset
  • Example#1473 - Exemple avec mysqli_get_client_info
  • Example#1474 - Exemple avec mysqli_get_client_version
  • Example#1475 - Exemple avec mysqli_get_connection_stats
  • Example#1476 - Exemple avec $mysqli->host_info
  • Example#1477 - Exemple avec $mysqli->protocol_version
  • Example#1478 - Exemple avec $mysqli->server_info
  • Example#1479 - Exemple avec $mysqli->server_version
  • Example#1480 - Exemple avec $mysqli->info
  • Example#1481 - Exemple avec $mysqli->insert_id
  • Example#1482 - Exemple avec mysqli::kill
  • Example#1483 - Exemple avec mysqli::multi_query
  • Example#1484 - Exemple avec mysqli::ping
  • Example#1485 - Exemple avec mysqli_poll
  • Example#1486 - Exemple avec mysqli::prepare
  • Example#1487 - Exemple avec mysqli::query
  • Example#1488 - Exemple avec mysqli::real_connect
  • Example#1489 - Exemple avec mysqli::real_escape_string
  • Example#1490 - Exemple avec mysqli::select_db
  • Example#1491 - Exemple avec mysqli::set_charset
  • Example#1492 - Exemple avec $mysqli->sqlstate
  • Example#1493 - Exemple avec mysqli::stat
  • Example#1494 - Exemple avec $mysqli->thread_id
  • Example#1495 - Exemple avec mysqli::use_result
  • Example#1496 - Exemple avec $mysqli->warning_count
  • Example#1497 - Exemple de mysqli_stmt_affected_rows
  • Example#1498 - Exemple avec mysqli_stmt::bind_param
  • Example#1499 - Using ... to provide arguments
  • Example#1500 - Style orienté objet
  • Example#1501 - Style procédural
  • Example#1502 - Style orienté objet
  • Example#1503 - Style procédural
  • Example#1504 - Style orienté objet
  • Example#1505 - Style procédural
  • Example#1506 - Style orienté objet
  • Example#1507 - Style procédural
  • Example#1508 - Style orienté objet
  • Example#1509 - Style procédural
  • Example#1510 - Exécuter une instruction préparée avec des variables liées
  • Example#1511 - Exécuter une instruction préparée avec un tableau de valeurs
  • Example#1512 - Style orienté objet
  • Example#1513 - Style procédural
  • Example#1514 - Style orienté objet
  • Example#1515 - Style procédural
  • Example#1516 - Style orienté objet
  • Example#1517 - Style procédural
  • Example#1518 - Style orienté objet
  • Example#1519 - Style procédural
  • Example#1520 - Style orienté objet
  • Example#1521 - Style procédural
  • Example#1522 - Exemple pour mysqli_stmt::prepare
  • Example#1523 - Style orienté objet
  • Example#1524 - Style procédural
  • Example#1525 - Style orienté objet
  • Example#1526 - Style orienté objet
  • Example#1527 - Style procédural
  • Example#1528 - Style orienté objet
  • Example#1529 - Style procédural
  • Example#1530 - Creation of a mysqli_result object
  • Example#1531 - Style orienté objet
  • Example#1532 - Style procédural
  • Example#1533 - Exemple avec mysqli::data_seek
  • Example#1534 - Ajustement du pointeur de résultat lors de l'itération
  • Example#1535 - mysqli_result::fetch_all example
  • Example#1536 - mysqli_result::fetch_array example
  • Example#1537 - Exemple mysqli_result::fetch_assoc
  • Example#1538 - Comparaison de l'usage de mysqli_result iterator et mysqli_result::fetch_assoc
  • Example#1539 - mysqli_result::fetch_column example
  • Example#1540 - Style orienté objet
  • Example#1541 - Style procédural
  • Example#1542 - Style orienté objet
  • Example#1543 - Style procédural
  • Example#1544 - Style orienté objet
  • Example#1545 - Style procédural
  • Example#1546 - Exemple mysqli_result::fetch_object
  • Example#1547 - Exemple mysqli_result::fetch_row
  • Example#1548 - Style orienté objet
  • Example#1549 - Style procédural
  • Example#1550 - Style orienté objet
  • Example#1551 - Style procédural
  • Example#1552 - Style orienté objet
  • Example#1553 - Style procédural
  • Example#1554 - Style orienté objet
  • Example#1555 - Style procédural
  • Example#1556 - Style orienté objet
  • Example#1557 - Style procédural
  • Example#1558 - Rapport d'erreur à l'exception des erreurs de mauvais index
  • Example#1559 - Un exemple avec mysqli_get_client_stats
  • Example#1560 - Connecting to a MySQL Server
  • Example#1561 - Creating a Schema and Collection on the MySQL Server
  • Example#1562 - Storing and Retrieving Data
  • Example#1563 - Fetching and Iterating Multiple Documents
  • Example#1564 - mysql_xdevapi\Expression example
  • Example#1565 - URI examples
  • Example#1566 - mysql_xdevapi\getSession example
  • Example#1567 - mysql_xdevapi\RowResult::getWarnings example
  • Example#1568 - mysql_xdevapi\RowResult::getWarningsCount example
  • Example#1569 - mysql_xdevapi\Client::__construct example
  • Example#1570 - mysql_xdevapi\Collection::add example
  • Example#1571 - mysql_xdevapi\Collection::addOrReplaceOne example
  • Example#1572 - mysql_xdevapi\Collection::getOne example
  • Example#1573 - mysql_xdevapi\Collection::count example
  • Example#1574 - mysql_xdevapi\Collection::createIndex example
  • Example#1575 - mysql_xdevapi\Collection::dropIndex example
  • Example#1576 - mysql_xdevapi\Collection::existsInDatabase example
  • Example#1577 - mysql_xdevapi\Collection::find example
  • Example#1578 - mysql_xdevapi\Collection::getName example
  • Example#1579 - mysql_xdevapi\Collection::getOne example
  • Example#1580 - mysql_xdevapi\Collection::getSchema example
  • Example#1581 - mysql_xdevapi\Collection::getSession example
  • Example#1582 - mysql_xdevapi\Collection::modify example
  • Example#1583 - mysql_xdevapi\Collection::remove example
  • Example#1584 - mysql_xdevapi\Collection::removeOne example
  • Example#1585 - mysql_xdevapi\Collection::replaceOne example
  • Example#1586 - mysql_xdevapi\CollectionAdd::__construct example
  • Example#1587 - mysql_xdevapi\CollectionAdd::execute example
  • Example#1588 - mysql_xdevapi\CollectionFind::bind example
  • Example#1589 - CollectionFind example
  • Example#1590 - CollectionFind example
  • Example#1591 - mysql_xdevapi\CollectionFind::fields example
  • Example#1592 - mysql_xdevapi\CollectionFind::groupBy example
  • Example#1593 - mysql_xdevapi\CollectionFind::having example
  • Example#1594 - mysql_xdevapi\CollectionFind::limit example
  • Example#1595 - mysql_xdevapi\CollectionFind::lockExclusive example
  • Example#1596 - mysql_xdevapi\CollectionFind::lockShared example
  • Example#1597 - mysql_xdevapi\CollectionFind::offset example
  • Example#1598 - mysql_xdevapi\CollectionFind::sort example
  • Example#1599 - mysql_xdevapi\CollectionModify::arrayAppend example
  • Example#1600 - mysql_xdevapi\CollectionModify::arrayInsert example
  • Example#1601 - mysql_xdevapi\CollectionModify::bind example
  • Example#1602 - mysql_xdevapi\CollectionModify::__construct example
  • Example#1603 - mysql_xdevapi\CollectionModify::execute example
  • Example#1604 - mysql_xdevapi\CollectionModify::limit example
  • Example#1605 - mysql_xdevapi\CollectionModify::patch example
  • Example#1606 - mysql_xdevapi\CollectionModify::replace example
  • Example#1607 - mysql_xdevapi\CollectionModify::set example
  • Example#1608 - mysql_xdevapi\CollectionModify::skip example
  • Example#1609 - mysql_xdevapi\CollectionModify::sort example
  • Example#1610 - mysql_xdevapi\CollectionModify::unset example
  • Example#1611 - mysql_xdevapi\CollectionRemove::bind example
  • Example#1612 - mysql_xdevapi\Collection::remove example
  • Example#1613 - mysql_xdevapi\CollectionRemove::execute example
  • Example#1614 - mysql_xdevapi\CollectionRemove::limit example
  • Example#1615 - mysql_xdevapi\CollectionRemove::sort example
  • Example#1616 - mysql_xdevapi\ColumnResult::__construct example
  • Example#1617 - mysql_xdevapi\ColumnResult::getCharacterSetName example
  • Example#1618 - mysql_xdevapi\ColumnResult::getCollationName example
  • Example#1619 - mysql_xdevapi\ColumnResult::getColumnLabel example
  • Example#1620 - mysql_xdevapi\ColumnResult::getColumnName example
  • Example#1621 - mysql_xdevapi\ColumnResult::getFractionalDigits example
  • Example#1622 - mysql_xdevapi\ColumnResult::getLength example
  • Example#1623 - mysql_xdevapi\ColumnResult::getSchemaName example
  • Example#1624 - mysql_xdevapi\ColumnResult::getTableLabel example
  • Example#1625 - mysql_xdevapi\ColumnResult::getTableName example
  • Example#1626 - mysql_xdevapi\ColumnResult::getType example
  • Example#1627 - mysql_xdevapi\ColumnResult::isNumberSigned example
  • Example#1628 - mysql_xdevapi\ColumnResult::isPadded example
  • Example#1629 - mysql_xdevapi\CrudOperationBindable::bind example
  • Example#1630 - mysql_xdevapi\CrudOperationLimitable::limit example
  • Example#1631 - mysql_xdevapi\CrudOperationSkippable::skip example
  • Example#1632 - mysql_xdevapi\CrudOperationSortable::sort example
  • Example#1633 - mysql_xdevapi\DatabaseObject::existsInDatabase example
  • Example#1634 - mysql_xdevapi\DatabaseObject::getName example
  • Example#1635 - mysql_xdevapi\DatabaseObject::getSession example
  • Example#1636 - A DocResult example
  • Example#1637 - mysql_xdevapi\DocResult::fetchAll example
  • Example#1638 - mysql_xdevapi\DocResult::fetchOne example
  • Example#1639 - mysql_xdevapi\DocResult::getWarnings example
  • Example#1640 - mysql_xdevapi\DocResult::getWarningsCount example
  • Example#1641 - execute() examples
  • Example#1642 - mysql_xdevapi\ExecutionStatus::__construct example
  • Example#1643 - mysql_xdevapi\Expression::__construct example
  • Example#1644 - mysql_xdevapi\Result::__construct example
  • Example#1645 - mysql_xdevapi\Result::getAffectedItemsCount example
  • Example#1646 - mysql_xdevapi\Result::getAutoIncrementValue example
  • Example#1647 - mysql_xdevapi\Result::getGeneratedIds example
  • Example#1648 - mysql_xdevapi\RowResult::getWarnings example
  • Example#1649 - mysql_xdevapi\RowResult::getWarningsCount example
  • Example#1650 - mysql_xdevapi\RowResult::__construct example
  • Example#1651 - mysql_xdevapi\RowResult::fetchAll example
  • Example#1652 - mysql_xdevapi\RowResult::fetchOne example
  • Example#1653 - mysql_xdevapi\RowResult::getColumnsCount example
  • Example#1654 - mysql_xdevapi\RowResult::getColumnNames example
  • Example#1655 - mysql_xdevapi\RowResult::getColumns example
  • Example#1656 - mysql_xdevapi\RowResult::getWarnings example
  • Example#1657 - mysql_xdevapi\RowResult::getWarningsCount example
  • Example#1658 - mysql_xdevapi\Schema::__construct example
  • Example#1659 - mysql_xdevapi\Schema::createCollection example
  • Example#1660 - mysql_xdevapi\Schema::createCollection example
  • Example#1661 - mysql_xdevapi\Schema::dropCollection example
  • Example#1662 - mysql_xdevapi\Schema::existsInDatabase example
  • Example#1663 - mysql_xdevapi\Schema::getCollection example
  • Example#1664 - mysql_xdevapi\Schema::getCollectionAsTable example
  • Example#1665 - mysql_xdevapi\Schema::getCollections example
  • Example#1666 - mysql_xdevapi\Schema::getName example
  • Example#1667 - mysql_xdevapi\Schema::getSession example
  • Example#1668 - mysql_xdevapi\Schema::getTable example
  • Example#1669 - mysql_xdevapi\Schema::getTables example
  • Example#1670 - mysql_xdevapi\Session::getSchema example
  • Example#1671 - mysql_xdevapi\Session::close example
  • Example#1672 - mysql_xdevapi\Session::commit example
  • Example#1673 - mysql_xdevapi\Session::__construct example
  • Example#1674 - mysql_xdevapi\Session::createSchema example
  • Example#1675 - mysql_xdevapi\Session::dropSchema example
  • Example#1676 - mysql_xdevapi\Session::generateUuid example
  • Example#1677 - mysql_xdevapi\Session::getSchema example
  • Example#1678 - mysql_xdevapi\Session::getSchema example
  • Example#1679 - mysql_xdevapi\Session::getSchemas example
  • Example#1680 - mysql_xdevapi\Session::getServerVersion example
  • Example#1681 - mysql_xdevapi\Session::listClients example
  • Example#1682 - mysql_xdevapi\Session::quoteName example
  • Example#1683 - mysql_xdevapi\Session::releaseSavepoint example
  • Example#1684 - mysql_xdevapi\Session::rollback example
  • Example#1685 - mysql_xdevapi\Session::rollbackTo example
  • Example#1686 - mysql_xdevapi\Session::setSavepoint example
  • Example#1687 - mysql_xdevapi\Session::sql example
  • Example#1688 - mysql_xdevapi\Session::startTransaction example
  • Example#1689 - mysql_xdevapi\SqlStatement::bind example
  • Example#1690 - mysql_xdevapi\SqlStatement::__construct example
  • Example#1691 - mysql_xdevapi\SqlStatement::execute example
  • Example#1692 - mysql_xdevapi\SqlStatement::getNextResult example
  • Example#1693 - mysql_xdevapi\SqlStatement::getResult example
  • Example#1694 - mysql_xdevapi\SqlStatement::hasMoreResults example
  • Example#1695 - mysql_xdevapi\SqlStatementResult::__construct example
  • Example#1696 - mysql_xdevapi\SqlStatementResult::fetchAll example
  • Example#1697 - mysql_xdevapi\SqlStatementResult::fetchOne example
  • Example#1698 - mysql_xdevapi\SqlStatementResult::getAffectedItemsCount example
  • Example#1699 - mysql_xdevapi\SqlStatementResult::getColumnsCount example
  • Example#1700 - mysql_xdevapi\SqlStatementResult::getColumnNames example
  • Example#1701 - mysql_xdevapi\SqlStatementResult::getColumns example
  • Example#1702 - mysql_xdevapi\SqlStatementResult::getGeneratedIds example
  • Example#1703 - mysql_xdevapi\SqlStatementResult::getLastInsertId example
  • Example#1704 - mysql_xdevapi\SqlStatementResult::getWarnings example
  • Example#1705 - mysql_xdevapi\SqlStatementResult::getWarningsCount example
  • Example#1706 - mysql_xdevapi\SqlStatementResult::hasData example
  • Example#1707 - mysql_xdevapi\SqlStatementResult::nextResult example
  • Example#1708 - mysql_xdevapi\Statement::__construct example
  • Example#1709 - mysql_xdevapi\Statement::getNextResult example
  • Example#1710 - mysql_xdevapi\Statement::getResult example
  • Example#1711 - mysql_xdevapi\Statement::hasMoreResults example
  • Example#1712 - mysql_xdevapi\Table::__construct example
  • Example#1713 - mysql_xdevapi\Table::count example
  • Example#1714 - mysql_xdevapi\Table::delete example
  • Example#1715 - mysql_xdevapi\Table::existsInDatabase example
  • Example#1716 - mysql_xdevapi\Table::getName example
  • Example#1717 - mysql_xdevapi\Table::getSchema example
  • Example#1718 - mysql_xdevapi\Table::getSession example
  • Example#1719 - mysql_xdevapi\Table::insert example
  • Example#1720 - mysql_xdevapi\Table::isView example
  • Example#1721 - mysql_xdevapi\Table::count example
  • Example#1722 - mysql_xdevapi\Table::update example
  • Example#1723 - mysql_xdevapi\TableDelete::bind example
  • Example#1724 - mysql_xdevapi\TableDelete::__construct example
  • Example#1725 - mysql_xdevapi\TableDelete::execute example
  • Example#1726 - mysql_xdevapi\TableDelete::limit example
  • Example#1727 - mysql_xdevapi\TableDelete::orderBy example
  • Example#1728 - mysql_xdevapi\TableDelete::where example
  • Example#1729 - mysql_xdevapi\TableInsert::__construct example
  • Example#1730 - mysql_xdevapi\TableInsert::execute example
  • Example#1731 - mysql_xdevapi\TableInsert::values example
  • Example#1732 - mysql_xdevapi\TableSelect::bind example
  • Example#1733 - mysql_xdevapi\TableSelect::__construct example
  • Example#1734 - mysql_xdevapi\TableSelect::execute example
  • Example#1735 - mysql_xdevapi\TableSelect::groupBy example
  • Example#1736 - mysql_xdevapi\TableSelect::having example
  • Example#1737 - mysql_xdevapi\TableSelect::limit example
  • Example#1738 - mysql_xdevapi\TableSelect::lockExclusive example
  • Example#1739 - mysql_xdevapi\TableSelect::lockShared example
  • Example#1740 - mysql_xdevapi\TableSelect::offset example
  • Example#1741 - mysql_xdevapi\TableSelect::orderBy example
  • Example#1742 - mysql_xdevapi\TableSelect::where example
  • Example#1743 - mysql_xdevapi\TableUpdate::bind example
  • Example#1744 - mysql_xdevapi\TableUpdate::__construct example
  • Example#1745 - mysql_xdevapi\TableUpdate::execute example
  • Example#1746 - mysql_xdevapi\TableUpdate::limit example
  • Example#1747 - mysql_xdevapi\TableUpdate::orderby example
  • Example#1748 - mysql_xdevapi\TableUpdate::set example
  • Example#1749 - mysql_xdevapi\TableUpdate::where example
  • Example#1750 - mysql_xdevapi\Warning::__construct example
  • Example#1751 - Exemple de présentation de l'extension MySQL
  • Example#1752 - Exemple avec mysql_affected_rows
  • Example#1753 - Exemple avec mysql_affected_rows en utilisant les transactions
  • Example#1754 - Exemple avec mysql_client_encoding
  • Example#1755 - Exemple avec mysql_close
  • Example#1756 - Exemple avec mysql_connect
  • Example#1757 - Exemple avec mysql_connect en utilisant la syntaxe hostname:port
  • Example#1758 - Exemple avec mysql_connect en utilisant la syntaxe ":/path/to/socket"
  • Example#1759 - Exemple alternative avec mysql_create_db
  • Example#1760 - Exemple avec mysql_data_seek
  • Example#1761 - Exemple mysql_db_name
  • Example#1762 - Exemple alternatif avec mysql_db_query
  • Example#1763 - Exemple avec mysql_drop_db
  • Example#1764 - Exemple avec mysql_errno
  • Example#1765 - Exemple avec mysql_error
  • Example#1766 - Exemple avec mysql_escape_string
  • Example#1767 - Requête avec duplication de nom de colonnes
  • Example#1768 - mysql_fetch_array avec MYSQL_NUM
  • Example#1769 - mysql_fetch_array avec MYSQL_ASSOC
  • Example#1770 - mysql_fetch_array avec MYSQL_BOTH
  • Example#1771 - Exemple avec mysql_fetch_assoc
  • Example#1772 - Exemple avec mysql_fetch_field
  • Example#1773 - Exemple avec mysql_fetch_lengths
  • Example#1774 - Exemple avec mysql_fetch_object
  • Example#1775 - Exemple avec mysql_fetch_object
  • Example#1776 - Exemple avec mysql_fetch_row
  • Example#1777 - Exemple avec mysql_field_flags
  • Example#1778 - Exemple avec mysql_field_len
  • Example#1779 - Exemple avec mysql_field_name
  • Example#1780 - Exemple avec mysql_field_table
  • Example#1781 - Exemple avec mysql_field_type
  • Example#1782 - Exemple avec mysql_free_result
  • Example#1783 - Exemple avec mysql_get_client_info
  • Example#1784 - Exemple avec mysql_get_host_info
  • Example#1785 - Exemple avec mysql_get_proto_info
  • Example#1786 - Exemple avec mysql_get_server_info
  • Example#1787 - Requêtes MySQL
  • Example#1788 - Exemple avec mysql_insert_id
  • Example#1789 - Exemple avec mysql_list_dbs
  • Example#1790 - Exemple d'alternative à mysql_list_fields
  • Example#1791 - Exemple avec mysql_list_processes
  • Example#1792 - Exemple d'alternative à mysql_list_tables
  • Example#1793 - Exemple avec mysql_num_fields
  • Example#1794 - Exemple avec mysql_num_rows
  • Example#1795 - Exemple avec mysql_ping
  • Example#1796 - Requête invalide
  • Example#1797 - Requête valide
  • Example#1798 - Exemple simple avec mysql_real_escape_string
  • Example#1799 - Exemple avec mysql_real_escape_string et la nécessité de la présence d'une connexion
  • Example#1800 - Un exemple d'attaque par injection SQL
  • Example#1801 - Exemple avec mysql_result
  • Example#1802 - Exemple avec mysql_select_db
  • Example#1803 - Exemple avec mysql_stat
  • Example#1804 - Exemple alternatif pour mysql_stat
  • Example#1805 - Exemple avec mysql_tablename
  • Example#1806 - Exemple avec mysql_thread_id
  • Example#1807 - Requête simple
  • Example#1808 - Insertion de données en utilisant des variables liées
  • Example#1809 - Liage d'une clause WHERE d'une requête
  • Example#1810 - Insertion de données dans une colonne CLOB
  • Example#1811 - Utilisation d'une procédure stockée PL/SQL
  • Example#1812 - Utilisation d'une procédure stockée PL/SQL
  • Example#1813 - Appel d'une fonction PL/SQL qui retourne un REF CURSOR
  • Example#1814 -
  • Example#1815 - user_oci8_probes.d pour suivre toutes les découvertes statiques au niveau utilisation PHP OCI8 avec DTrace
  • Example#1816 - Exemple avec oci_bind_array_by_name
  • Example#1817 - Insertion de données avec la fonction oci_bind_by_name
  • Example#1818 - Une association avec de multiples appels
  • Example#1819 - Association avec une boucle foreach
  • Example#1820 - Association dans une clause WHERE
  • Example#1821 - Association avec une clause LIKE
  • Example#1822 - Association avec REGEXP_LIKE
  • Example#1823 - Association de plusieurs valeurs dans une clause IN
  • Example#1824 - Association d'un ROWID retourné par une requête
  • Example#1825 - Association d'un ROWID dans un INSERT
  • Example#1826 - Association pour une fonction stockée PL/SQL
  • Example#1827 - Association de paramètres à une procédure stockée PL/SQL
  • Example#1828 - Association sur une colonne CLOB
  • Example#1829 - Association sur un booléen dans un script PL/SQL
  • Example#1830 - Exemple avec oci_client_version
  • Example#1831 - Fermeture d'une connexion
  • Example#1832 - Les connexions à la base de données sont fermées à partir du moment où les références le sont
  • Example#1833 - Fermeture d'un connexion ouverte plus d'une fois
  • Example#1834 - Les connexions sont fermées lorsque les variables sortent du contexte
  • Example#1835 - Exemple avec oci_commit
  • Example#1836 - Exemple avec oci_connect en utilisant la syntaxe simplifiée
  • Example#1837 - Exemple avec oci_connect en utilisant un nom de connexion réseau
  • Example#1838 - Exemple avec oci_connect en utilisant un jeu de caractère spécifique
  • Example#1839 - Exemple avec plusieurs appels à la fonction oci_connect
  • Example#1840 - Exemple avec oci_define_by_name
  • Example#1841 - Exemple avec oci_define_by_name et des noms de colonne sensibles à la casse
  • Example#1842 - Exemple avec oci_define_by_name et des colonnes de type LOB
  • Example#1843 - Exemple avec oci_define_by_name et un type explicite
  • Example#1844 - Exemple d'affichage d'un message d'erreur Oracle après une erreur de connexion
  • Example#1845 - Exemple d'affichage d'un message d'erreur Oracle après une erreur d'analyse
  • Example#1846 - Exemple d'affichage d'un message d'erreur Oracle après une erreur d'exécution rencontré dans une requête SQL
  • Example#1847 - Exemple avec oci_execute pour des requêtes
  • Example#1848 - Exemple avec oci_execute sans spécifier de mode
  • Example#1849 - Exemple avec oci_execute et OCI_NO_AUTO_COMMIT
  • Example#1850 - Exemple avec oci_execute et différents modes dans le même script
  • Example#1851 - Exemple avec oci_execute et OCI_DESCRIBE_ONLY
  • Example#1852 - Exemple avec oci_fetch_all
  • Example#1853 - Exemple avec oci_fetch_all et OCI_FETCHSTATEMENT_BY_ROW
  • Example#1854 - Exemple avec oci_fetch_all et OCI_NUM
  • Example#1855 - Exemple avec oci_fetch_array avec OCI_BOTH
  • Example#1856 - Exemple avec oci_fetch_array avec OCI_NUM
  • Example#1857 - Exemple avec oci_fetch_array avec OCI_ASSOC
  • Example#1858 - Exemple avec oci_fetch_array avec OCI_RETURN_NULLS
  • Example#1859 - oci_fetch_array with OCI_RETURN_LOBS
  • Example#1860 - Exemple avec oci_fetch_array avec des noms de colonnes sensibles à la casse
  • Example#1861 - Exemple avec oci_fetch_array avec des colonnes possédant des noms dupliqués
  • Example#1862 - Exemple avec oci_fetch_array et des colonnes DATE
  • Example#1863 - Exemple avec oci_fetch_array et REF CURSOR
  • Example#1864 - Pagination avec oci_fetch_array en utilisant une requête utilisant le paramètre LIMIT
  • Example#1865 - Exemple avec oci_fetch_array avec Oracle Database
  • Example#1866 - Exemple avec oci_fetch_assoc
  • Example#1867 - Exemple avec oci_fetch_object
  • Example#1868 - Exemple avec oci_fetch_object avec des noms de colonne sensibles à la casse
  • Example#1869 - Exemple avec oci_fetch_object avec des LOBs
  • Example#1870 - Exemple avec oci_fetch_row
  • Example#1871 - Exemple avec oci_fetch avec des variables définies
  • Example#1872 - Exemple avec oci_fetch et oci_result
  • Example#1873 - Exemple avec oci_field_name
  • Example#1874 - Exemple avec oci_field_name
  • Example#1875 - Exemple avec oci_field_precision
  • Example#1876 - Exemple avec oci_field_scale
  • Example#1877 - Exemple avec oci_field_size
  • Example#1878 - Exemple avec oci_field_type_raw
  • Example#1879 - Exemple avec oci_field_type
  • Example#1880 - Récupèration des jeux de résultats implicites via une boucle
  • Example#1881 - Récupère individuellement les gestionnaires de requêtes fils
  • Example#1882 - Définission explicite du compteur de pré-récupération
  • Example#1883 - Exemple de jeu de résultats implicite sans utiliser la fonction oci_get_implicit_resultset
  • Example#1884 - Exemple avec oci_new_connect
  • Example#1885 - Utiliser un REF CURSOR issu d'une procédure enregistrée
  • Example#1886 - Exemple avec oci_new_descriptor
  • Example#1887 - Exemple avec oci_new_descriptor
  • Example#1888 - Exemple avec oci_num_fields
  • Example#1889 - Exemple avec oci_num_rows
  • Example#1890 - Exemple avec oci_parse
  • Example#1891 - Exemple avec oci_parse et une requête PL/SQL
  • Example#1892 - Exemple avec oci_password_change pour changer le mot de passe d'un utilisateur déjà connecté
  • Example#1893 - Exemple avec oci_password_change pour se connecter et changer le mot de passe en une seule étape
  • Example#1894 - Exemple avec oci_pconnect
  • Example#1895 - Exemple avec oci_fetch et oci_result
  • Example#1896 - Exemple avec oci_rollback
  • Example#1897 - Exemple de retour à un point de sauvegarde (SAVEPOINT)
  • Example#1898 - Exemple avec oci_server_version
  • Example#1899 - Définition d'une action
  • Example#1900 - Setting the timeout
  • Example#1901 - Définit l'identifiant du client comme l'utilisateur de l'application
  • Example#1902 - Définit l'information sur le client
  • Example#1903 - Setting the DBOP
  • Example#1904 - 2 scripts peuvent utiliser différentes versions de myfunc() au même moment
  • Example#1905 - Définition du nom du module
  • Example#1906 - Changing the LOB prefetch value for a query
  • Example#1907 - Modification de la valeur de préchargement pour une requête
  • Example#1908 - Modification de la valeur de préchargement pour une récupération REF CURSOR
  • Example#1909 - Définition de la valeur de préchargement lorsque l'on retourne un curseur REF CURSOR à Oracle
  • Example#1910 - Exemple avec oci_statement_type
  • Example#1911 - Exemple général de l'extension PostgreSQL
  • Example#1912 - Exemple de fonctions PostgreSQL définies par l'utilisateur
  • Example#1913 - Exemple avec pg_affected_rows
  • Example#1914 - Exemple avec pg_cancel_query
  • Example#1915 - Exemple avec pg_client_encoding
  • Example#1916 - Exemple avec pg_close
  • Example#1917 - Exemple avec pg_connect
  • Example#1918 - Exemple avec pg_connection_busy
  • Example#1919 - Exemple avec pg_connection_reset
  • Example#1920 - Exemple avec pg_connection_status
  • Example#1921 - Exemple avec pg_convert
  • Example#1922 - Exemple avec pg_copy_from
  • Example#1923 - Exemple avec pg_copy_to
  • Example#1924 - Exemple avec pg_dbname
  • Example#1925 - Exemple avec pg_delete
  • Example#1926 - Exemple avec pg_end_copy
  • Example#1927 - Exemple avec pg_escape_bytea
  • Example#1928 - Exemple avec pg_escape_identifier
  • Example#1929 - Exemple avec pg_escape_literal
  • Example#1930 - Exemple avec pg_escape_string
  • Example#1931 - Exemple avec pg_execute
  • Example#1932 - Exemple avec pg_fetch_all_columns
  • Example#1933 - Exemple avec pg_fetch_all
  • Example#1934 - Exemple avec pg_fetch_array
  • Example#1935 - Exemple avec pg_fetch_assoc
  • Example#1936 - Exemple avec pg_fetch_object
  • Example#1937 - Exemple avec pg_fetch_result
  • Example#1938 - Exemple avec pg_fetch_row
  • Example#1939 - Exemple avec pg_field_is_null
  • Example#1940 - Récupération d'informations des champs
  • Example#1941 - Récupération d'informations des champs
  • Example#1942 - Récupération d'informations à propos des champs
  • Example#1943 - Récupération d'informations des champs
  • Example#1944 - Récupération des informations d'une table à partir d'un champ
  • Example#1945 - Récupération d'informations des champs
  • Example#1946 - Récupération d'informations des champs
  • Example#1947 - Exemple avec pg_free_result
  • Example#1948 - Exemple avec pg_get_notify
  • Example#1949 - Exemple avec pg_get_pid
  • Example#1950 - Exemple avec pg_get_result
  • Example#1951 - Exemple avec pg_host
  • Example#1952 - Exemple avec pg_insert
  • Example#1953 - Exemple avec pg_last_error
  • Example#1954 - Exemple avec pg_last_notice
  • Example#1955 - Exemple avec pg_last_oid
  • Example#1956 - Exemple avec pg_lo_close
  • Example#1957 - Exemple avec pg_lo_create
  • Example#1958 - Exemple avec pg_lo_export
  • Example#1959 - Exemple avec pg_lo_import
  • Example#1960 - Exemple avec pg_lo_open
  • Example#1961 - Exemple avec pg_lo_read_all
  • Example#1962 - Exemple avec pg_lo_read
  • Example#1963 - Exemple avec pg_lo_seek
  • Example#1964 - Exemple avec pg_lo_tell
  • Example#1965 - Exemple avec pg_lo_truncate
  • Example#1966 - Exemple avec pg_lo_unlink
  • Example#1967 - Exemple avec pg_lo_write
  • Example#1968 - Récupération des métadonnées d'une table
  • Example#1969 - Exemple avec pg_num_fields
  • Example#1970 - Exemple avec pg_num_rows
  • Example#1971 - Exemple avec pg_options
  • Example#1972 - Exemple avec pg_parameter_status
  • Example#1973 - Exemple avec pg_pconnect
  • Example#1974 - Exemple avec pg_ping
  • Example#1975 - Exemple avec pg_port
  • Example#1976 - Exemple avec pg_prepare
  • Example#1977 - Exemple avec pg_put_line
  • Example#1978 - Exemple avec pg_query_params
  • Example#1979 - Exemple avec pg_query
  • Example#1980 - Utilisation de pg_query avec plusieurs requêtes
  • Example#1981 - Exemple avec pg_result_error_field
  • Example#1982 - Exemple avec pg_result_error
  • Example#1983 - Exemple avec pg_result_seek
  • Example#1984 - Exemple avec pg_result_status
  • Example#1985 - Exemple avec pg_select
  • Example#1986 - Exemple avec pg_send_execute
  • Example#1987 - Exemple pg_send_prepare
  • Example#1988 - Exemple avec pg_send_query_params
  • Example#1989 - Exemple avec pg_send_query
  • Example#1990 - Exemple avec pg_set_client_encoding
  • Example#1991 - pg_set_error_context_visibility exemple
  • Example#1992 - Exemple avec pg_set_error_verbosity
  • Example#1993 - Exemple avec pg_trace
  • Example#1994 - Exemple avec pg_transaction_status
  • Example#1995 - Exemple avec pg_tty
  • Example#1996 - Exemple avec pg_unescape_bytea
  • Example#1997 - Exemple avec pg_untrace
  • Example#1998 - Exemple avec pg_update
  • Example#1999 - Exemple avec pg_version
  • Example#2000 - Backup an existing database
  • Example#2001 - Exemple avec SQLite3::changes
  • Example#2002 - Exemple avec SQLite3::close
  • Example#2003 - Exemple avec SQLite3::__construct
  • Example#2004 - Exemple d'une fonction d'agrégation avec max_length
  • Example#2005 - Exemple avec SQLite3::createCollation
  • Example#2006 - Exemple avec SQLite3::createFunction
  • Example#2007 - Exemple avec SQLite3::enableExceptions
  • Example#2008 - Exemple avec SQLite3::exec
  • Example#2009 - Exemple avec SQLite3::loadExtension
  • Example#2010 - Exemple avec SQLite3::open
  • Example#2011 - Exemple avec SQLite3::openBlob
  • Example#2012 - Écrire progressivement un BLOB
  • Example#2013 - Exemple avec SQLite3::prepare
  • Example#2014 - Exemple avec SQLite3::query
  • Example#2015 - Exemple avec SQLite3::querySingle
  • Example#2016 - SQLite3::setAuthorizer example
  • Example#2017 - Exemple avec SQLite3::version
  • Example#2018 - Utilisation de SQLite3Stmt::bindParam
  • Example#2019 - Exemple avec SQLite3Stmt::bindValue
  • Example#2020 - Inspecter le SQL étendue
  • Example#2021 - Exemple avec sqlsrv_begin_transaction
  • Example#2022 - Exemple avec sqlsrv_cancel
  • Example#2023 - Exemple avec sqlsrv_client_info
  • Example#2024 - Exemple avec sqlsrv_close
  • Example#2025 - Exemple avec sqlsrv_commit
  • Example#2026 - Connexion en utilisant l'authentification Windows.
  • Example#2027 - Connexion en spécifiant un nom d'utilisateur et un mot de passe.
  • Example#2028 - Connexion sur un port spécifique.
  • Example#2029 - Exemple avec functionname
  • Example#2030 - Exemple avec sqlsrv_execute
  • Example#2031 - Récupération d'un tableau associatif
  • Example#2032 - Récupération d'un tableau numérique
  • Example#2033 - Exemple avec sqlsrv_fetch_object
  • Example#2034 - Exemple avec sqlsrv_fetch
  • Example#2035 - Exemple avec sqlsrv_field_metadata
  • Example#2036 - Exemple avec sqlsrv_free_stmt
  • Example#2037 - sqlsrv_get_field example
  • Example#2038 - Exemple avec sqlsrv_has_rows
  • Example#2039 - Exemple avec sqlsrv_next_result
  • Example#2040 - Exemple avec sqlsrv_num_fields
  • Example#2041 - Exemple avec sqlsrv_num_rows
  • Example#2042 - Exemple avec sqlsrv_prepare
  • Example#2043 - sqlsrv_query example
  • Example#2044 - Exemple avec sqlsrv_rollback
  • Example#2045 - Exemple avec sqlsrv_rows_affected
  • Example#2046 - Exemple avec sqlsrv_send_stream_data
  • Example#2047 - Exemple avec sqlsrv_server_info
  • Example#2048 - Exemple avec cal_days_in_month
  • Example#2049 - Exemple avec cal_from_jd
  • Example#2050 - Exemple avec cal_info
  • Example#2051 - Exemple avec easter_date
  • Example#2052 - Utilisation de easter_date avec DateTime
  • Example#2053 - Exemple avec easter_days
  • Example#2054 - Fonctions calendrier
  • Example#2055 - Comportement de débordement
  • Example#2056 - Exemple avec jdtojewish
  • Example#2057 - DateTimeImmutable::add/sub ajout d'un interval de temps écoulé.
  • Example#2058 - DateTimeImmutable::modify et strtotime incrémentation ou décrémentation de valeurs individuelles
  • Example#2059 - L'ajout ou la soustraction de dates/heures peut dépasser (en plus ou en moins) des dates
  • Example#2060 - Créer un objet de date et temps mutable
  • Example#2061 - Création d'un objet de date et temps mutable
  • Example#2062 - Exemple avec DateTime::modify
  • Example#2063 - Méfiez-vous lors de l'ajout ou la soustraction de mois
  • Example#2064 - Tous les formats de date et d'heure sont pris en charge
  • Example#2065 - Exemple avec DateTime::setTimeZone
  • Example#2066 - Exemple de DateTimeImmutable::add
  • Example#2067 - Exemples supplémentaires de DateTimeImmutable::add
  • Example#2068 - Faire attention lors de l'ajout de mois
  • Example#2069 - Exemple de DateTimeImmutable::__construct
  • Example#2070 - Intricacies of DateTimeImmutable::__construct
  • Example#2071 - Changement du fuseau horaire associé
  • Example#2072 - Utilisation d'une chaîne de date/heure relative
  • Example#2073 - Exemple avec DateTimeImmutable::createFromFormat
  • Example#2074 - Utilisation des constantes de format prédéfinies avec DateTimeImmutable::createFromFormat
  • Example#2075 - Les subtilités de DateTimeImmutable::createFromFormat
  • Example#2076 - Texte de Format avec des caractères litéraux
  • Example#2077 - Comportement de débordement
  • Example#2078 - Comportement pour le nom de jour débordant
  • Example#2079 - Détecter les dates dépassées
  • Example#2080 - Comportement d'analyse gourmand
  • Example#2081 - Création d'un objet de date et temps immutable
  • Example#2082 - Création d'un objet date temps immutable
  • Example#2083 - Exemple de DateTimeImmutable::getLastErrors
  • Example#2084 - Exemple de DateTimeImmutable::modify
  • Example#2085 - Faire attention lors de l'ajout ou soustraction de mois
  • Example#2086 - Exemple de DateTimeImmutable::setDate
  • Example#2087 - Les valeurs excédant la plage sont ajouté à leur valeur parente
  • Example#2088 - Exemple de DateTimeImmutable::setISODate
  • Example#2089 - Les valeurs excédant la plage sont ajouté à leur valeur parente
  • Example#2090 - Trouver le mois dont une semaine se trouve
  • Example#2091 - Exemple de DateTimeImmutable::setTime
  • Example#2092 - Values exceeding ranges are added to their parent values
  • Example#2093 - Exemple de DateTimeImmutable::setTimestamp
  • Example#2094 - Exemple de DateTimeImmutable::setTimeZone
  • Example#2095 - Exemple de DateTimeImmutable::sub
  • Example#2096 - Exemples supplémentaires de DateTimeImmutable::sub
  • Example#2097 - Faire attention lors de la soustraction de mois
  • Example#2098 - Exemple avec DateTimeImmutable::diff
  • Example#2099 - DateTimeInterface::diff lors du passage à l'heure d'été
  • Example#2100 - Calcul d'intervalle avec DateTimeInterface::diff
  • Example#2101 - Comparaison de deux objets DateTime
  • Example#2102 - Exemple avec DateTime::format
  • Example#2103 - Plus d'exemples
  • Example#2104 - Échappement de caractères lors du formatage
  • Example#2105 - Exemple avec DateTime::getOffset
  • Example#2106 - Exemple avec DateTime::getTimestamp
  • Example#2107 - Récupération de l'horodatage avec une précision en millisecondes et microsecondes
  • Example#2108 - Exemple avec DateTime::getTimezone
  • Example#2109 - Creating and attaching DateTimeZone to a DateTimeImmutable
  • Example#2110 - Interception des erreurs avec DateTimeZone
  • Example#2111 - Exemple avec DateTimeZone::getLocation
  • Example#2112 - Exemple avec DateTimeZone::getOffset
  • Example#2113 - Exemple avec timezone_transitions_get
  • Example#2114 - Un exemple de timezone_transitions_get avec timestampBegin défini
  • Example#2115 - Exemple avec timezone_abbreviations_list
  • Example#2116 - Exemple avec DateTimeZone::listIdentifiers
  • Example#2117 - Listing identifiers for a specific region
  • Example#2118 - Lister les identifiants de plusieurs régions
  • Example#2119 - Lister les identifiants d'un seul pays
  • Example#2120 - Construction et utilisation des objets DateInterval
  • Example#2121 - Exemple avec DateInterval
  • Example#2122 - Analyse d'intervalles de dates valides
  • Example#2123 - Parsing combinations and negative intervals
  • Example#2124 - Analyse des combinaisons et des intervalles négatifs
  • Example#2125 - Exemple avec DateInterval
  • Example#2126 - DateInterval et retenue
  • Example#2127 - DateInterval et DateTime::diff avec les modificateurs %a et %d
  • Example#2128 - Exemple avec DatePeriod
  • Example#2129 - Exemple avec DatePeriod et DatePeriod::EXCLUDE_START_DATE
  • Example#2130 - DatePeriod montrant tous les derniers jeudis du mois sur une année
  • Example#2131 - DatePeriod::createFromISO8601String example
  • Example#2132 - Exemple avec DatePeriod::getDateInterval
  • Example#2133 - Exemples avec DatePeriod::getEndDate
  • Example#2134 - DatePeriod::getEndDate sans date de fin
  • Example#2135 - Valeurs différentes pour DatePeriod::getRecurrences
  • Example#2136 - Exemple DatePeriod::getStartDate
  • Example#2137 - Exemple avec checkdate
  • Example#2138 - Récupération du décalage horaire par défaut
  • Example#2139 - Récupération de l'abréviation d'un décalage horaire
  • Example#2140 - Récupération du décalage horaire par défaut
  • Example#2141 - Exemple avec date_parse_from_format
  • Example#2142 - Exemple de date_parse_from_format avec des warnings (avertissements)
  • Example#2143 - Exemple de date_parse_from_format avec des errors (erreurs)
  • Example#2144 - date_parse avec une chaîne datetime complète
  • Example#2145 - date_parse avec des informations abrégé sur le fuseau horaire
  • Example#2146 - date_parse avec des informations abrégé sur le fuseau horaire
  • Example#2147 - date_parse avec une chaîne minimale
  • Example#2148 - Exemple avec date_parse et des formats relatifs
  • Example#2149 - date_parse avec des effets secondaires
  • Example#2150 - Exemple avec date_sun_info
  • Example#2151 - Nuit polaire avec un peu de traitement
  • Example#2152 - Soleil de minuit (Tromso, Norvège)
  • Example#2153 - Calcul de la durée du jour (Kyiv)
  • Example#2154 - Exemple avec date_sunrise
  • Example#2155 - Pas de levé de soleil
  • Example#2156 - Exemple avec date_sunset
  • Example#2157 - Pas de coucher du soleil
  • Example#2158 - Exemple avec date
  • Example#2159 - Protection des caractères dans la fonction date
  • Example#2160 - Exemple avec date et mktime
  • Example#2161 - Exemple avec date
  • Example#2162 - Exemple avec getdate
  • Example#2163 - Exemple avec gettimeofday
  • Example#2164 - Exemple avec gmdate
  • Example#2165 - Exemple avec gmmktime
  • Example#2166 - Exemple avec gmstrftime
  • Example#2167 - Exemple avec idate
  • Example#2168 - Exemple avec localtime
  • Example#2169 - Durée d'exécution d'un script en PHP
  • Example#2170 - Exemple avec microtime et REQUEST_TIME_FLOAT
  • Example#2171 - Exemple simple avec mktime
  • Example#2172 - Exemple avec mktime
  • Example#2173 - Dernier jour d'un mois
  • Example#2174 - Exemple avec strftime
  • Example#2175 - Exemple au format de date ISO 8601:1988
  • Example#2176 - %e fonctionnant sous toute plateforme
  • Example#2177 - Affiche tous les formats connus ou non.
  • Example#2178 - Exemple avec strptime
  • Example#2179 - Exemple avec strtotime
  • Example#2180 - Vérification d'erreur
  • Example#2181 - Exemple avec time
  • Example#2182 - Exemple avec timezone_name_from_abbr
  • Example#2183 - Lecture de la version de la timezonedb
  • Example#2184 - Mesure l'exécution de différents blocs et retourne le total
  • Example#2185 - Fermeture d'une ressource de fichier
  • Example#2186 - Positionnement et suppression d'un verrou
  • Example#2187 - Ouverture d'un fichier
  • Example#2188 - Positionnement dans un fichier
  • Example#2189 - Définition du débit des bauds sur un port série
  • Example#2190 - Exemple avec chdir
  • Example#2191 - Exemple avec chroot
  • Example#2192 - Exemple avec closedir
  • Example#2193 - Exemple avec dir
  • Example#2194 - Exemple avec getcwd
  • Example#2195 - Exemple avec opendir
  • Example#2196 - Liste de toutes les entrées d'un dossier
  • Example#2197 - Liste toutes les entrées du dossier courant et enlève les . et ..
  • Example#2198 - Un simple exemple avec scandir
  • Example#2199 - Exemple avec finfo_buffer
  • Example#2200 - Exemple avec finfo_file
  • Example#2201 - Style orienté objet
  • Example#2202 - Style procédural
  • Example#2203 - Exemple avec mime_content_type
  • Example#2204 - Exemple avec basename
  • Example#2205 - Modification de groupe d'un fichier
  • Example#2206 - Exemple avec chown
  • Example#2207 - Exemple avec clearstatcache
  • Example#2208 - Exemple avec copy
  • Example#2209 - Exemple avec dirname
  • Example#2210 - Exemple avec disk_free_space
  • Example#2211 - Exemple avec disk_total_space
  • Example#2212 - Exemple avec fclose
  • Example#2213 - fdatasync example
  • Example#2214 - Gestion des délais d'attente dépassés feof
  • Example#2215 - Exemple avec feof et un pointeur de fichier invalide
  • Example#2216 - Écriture d'un fichier en utilisant fflush
  • Example#2217 - Exemple avec fgetc
  • Example#2218 - Lit et affiche le contenu d'un fichier CSV
  • Example#2219 - Lecture d'un fichier ligne par ligne
  • Example#2220 - Lecture d'un fichier PHP ligne par ligne
  • Example#2221 - Teste l'existence d'un fichier
  • Example#2222 - Lit et affiche le code HTML d'un site Web
  • Example#2223 - Recherche un fichier dans le include_path
  • Example#2224 - Lit une section d'un fichier
  • Example#2225 - Utilisation des contextes de flux
  • Example#2226 - Utilisation simple de file_put_contents
  • Example#2227 - Utilisation d'options pour file_put_contents
  • Example#2228 - Exemple avec file
  • Example#2229 - Exemple avec fileatime
  • Example#2230 - Exemple avec filectime
  • Example#2231 - Recherche le groupe d'un fichier
  • Example#2232 - Comparaison de l'inode d'un fichier avec le fichier courant
  • Example#2233 - Exemple avec filemtime
  • Example#2234 - Recherche du propriétaire d'un fichier
  • Example#2235 - Affichage des droits en valeur octale
  • Example#2236 - Affichage de tous les droits
  • Example#2237 - Exemple avec filesize
  • Example#2238 - Exemple avec filetype
  • Example#2239 - Exemple avec flock
  • Example#2240 - Exemple avec flock en utilisant l'option LOCK_NB
  • Example#2241 - Vérifier le nom d'une couleur avec un masque Shell
  • Example#2242 - Exemple avec fopen
  • Example#2243 - Utilisation de fpassthru avec un fichier binaire
  • Example#2244 - Exemple avec fputcsv
  • Example#2245 - Exemple avec fread
  • Example#2246 - Exemple avec fread et un fichier binaire
  • Example#2247 - Exemple avec fread et un fichier distant
  • Example#2248 - Exemple avec fscanf
  • Example#2249 - Contenu du fichier users.txt
  • Example#2250 - Exemple avec fseek
  • Example#2251 - Exemple avec fstat
  • Example#2252 - fsync example
  • Example#2253 - Exemple avec ftell
  • Example#2254 - Exemple avec ftruncate
  • Example#2255 - Exemple avec fwrite
  • Example#2256 - Un moyen pratique pour remplacer opendir par glob
  • Example#2257 - Exemple avec is_dir
  • Example#2258 - Exemple avec is_executable
  • Example#2259 - Exemple avec is_file
  • Example#2260 - Création et vérification d'un lien symbolique
  • Example#2261 - Exemple avec is_readable
  • Example#2262 - Exemple avec is_uploaded_file
  • Example#2263 - Exemple avec is_writable
  • Example#2264 - Modification du groupe d'un lien symbolique
  • Example#2265 - Modification du propriétaire d'un lien symbolique
  • Example#2266 - Création d'un lien
  • Example#2267 - Exemple avec linkinfo
  • Example#2268 - Comparaison entre stat et lstat
  • Example#2269 - Exemple avec mkdir
  • Example#2270 - mkdir utilisant le paramètre recursive
  • Example#2271 - Téléchargement de plusieurs fichiers
  • Example#2272 - Contenu du fichier sample.ini
  • Example#2273 - Exemple avec parse_ini_file
  • Example#2274 - parse_ini_file pour analyser un fichier php.ini
  • Example#2275 - Interpolation de Valeur
  • Example#2276 - Échapper des Caractères
  • Example#2277 - Exemple avec pathinfo
  • Example#2278 - Exemple pathinfo sans extension
  • Example#2279 - Exemple avec pathinfo
  • Example#2280 - Exemple de pathinfo avec déréférencement de tableau
  • Example#2281 - Exemple avec pclose
  • Example#2282 - Exemple avec popen
  • Example#2283 - Exemple avec popen
  • Example#2284 - Forcer le téléchargement en utilisant readfile
  • Example#2285 - Exemple avec readlink
  • Example#2286 - Exemple avec realpath_cache_get
  • Example#2287 - Exemple avec realpath_cache_size
  • Example#2288 - Exemple avec realpath
  • Example#2289 - Exemple avec realpath sous Windows
  • Example#2290 - Exemple avec rename
  • Example#2291 - Exemple avec rewind
  • Example#2292 - Exemple avec rmdir
  • Example#2293 - Exemple avec stat
  • Example#2294 - Utilisation des informations issues de stat conjointement avec la fonction touch
  • Example#2295 - Création d'un lien symbolique
  • Example#2296 - Exemple avec tempnam
  • Example#2297 - Exemple avec tmpfile
  • Example#2298 - Exemple avec touch
  • Example#2299 - Exemple avec touch en utilisant le paramètre mtime
  • Example#2300 - Exemple avec umask
  • Example#2301 - Exemple avec unlink
  • Example#2302 - Exemple d'utilisatio d'inotify
  • Example#2303 - Vérifie si l'administrateur système a signé le fichier
  • Example#2304 - Affiche les noms de tous les attributs étendus d'un fichier
  • Example#2305 - Efface tous les attributs étendus d'un fichier
  • Example#2306 - Définition des attributs étendus dans un fichier .wav
  • Example#2307 - Exemple avec xattr_supported
  • Example#2308 - Exemple avec xdiff_file_bdiff_size
  • Example#2309 - Exemple avec xdiff_file_bdiff
  • Example#2310 - Exemple avec xdiff_file_bpatch
  • Example#2311 - Exemple avec xdiff_file_diff_binary
  • Example#2312 - Exemple avec xdiff_file_diff
  • Example#2313 - Exemple avec xdiff_file_merge3
  • Example#2314 - Exemple avec xdiff_file_patch_binary
  • Example#2315 - Exemple avec xdiff_file_patch
  • Example#2316 - Exemple de retour à l'état initial après l'application d'un patch
  • Example#2317 - Exemple avec xdiff_file_rabdiff
  • Example#2318 - Exemple avec xdiff_string_bdiff_size
  • Example#2319 - Exemple avec xdiff_string_diff
  • Example#2320 - Exemple avec xdiff_string_patch
  • Example#2321 - Exemple d'utilisation d'Enchant
  • Example#2322 - Liste les interfaces fournies par un sponsor donné
  • Example#2323 - Exemple avec enchant_broker_dict_exists
  • Example#2324 - Liste tous les dictionnaires disponibles pour un sponsor
  • Example#2325 - Exemple avec enchant_broker_request_dict
  • Example#2326 - Ajout d'un mot à un PWL
  • Example#2327 - Exemple avec enchant_dict_describe
  • Example#2328 - Exemple avec enchant_dict_quick_check
  • Example#2329 - Exemple avec enchant_dict_suggest
  • Example#2330 - Exemple d'utilisation
  • Example#2331 - Exemple avec Gender\Gender::country
  • Example#2332 - Exemple avec bindtextdomain
  • Example#2333 - Exemple avec gettext
  • Example#2334 - Exemple avec ngettext
  • Example#2335 - Exemple avec iconv_get_encoding
  • Example#2336 - Exemple avec iconv_mime_decode_headers
  • Example#2337 - Exemple avec iconv_mime_decode
  • Example#2338 - Exemple avec iconv_mime_encode
  • Example#2339 - Exemple avec iconv_set_encoding
  • Example#2340 - Exemple avec iconv
  • Example#2341 - Exemple avec ob_iconv_handler
  • Example#2342 - Exemple d'API procédurale pour intl
  • Example#2343 - Exemple d'API orientée objet pour intl
  • Example#2344 - Règles de FRENCH_COLLATION
  • Example#2345 - Règles ALTERNATE_HANDLING
  • Example#2346 - Règles CASE_FIRST
  • Example#2347 - Règles CASE_LEVEL
  • Example#2348 - Exemple avec collator_asort
  • Example#2349 - Exemple avec collator_compare
  • Example#2350 - Comparer des chaînes sans diacritique ou sensibilité à la casse
  • Example#2351 - Exemple avec Collator::__construct
  • Example#2352 - Exmple avec collator_create
  • Example#2353 - Exemple avec collator_get_attribute
  • Example#2354 - Exemple avec collator_get_error_code
  • Example#2355 - Exemple avec collator_get_error_message
  • Example#2356 - Exemple avec collator_get_locale
  • Example#2357 - Exemple collator_get_sort_key
  • Example#2358 - Exemple avec collator_get_strength
  • Example#2359 - Exemple avec collator_set_attribute
  • Example#2360 - Exemple avec collator_set_strength
  • Example#2361 - Exemple avec collator_sort_with_sort_keys
  • Example#2362 - Exemple avec collator_sort
  • Example#2363 - Exemple avec numfmt_create::create, Style procédural
  • Example#2364 - Exemple avec numfmt_create::create, style POO
  • Example#2365 - Exemple avec numfmt_format_currency, Style procédural
  • Example#2366 - Exemple avec numfmt_format_currency, style POO
  • Example#2367 - Exemple avec numfmt_format, Style procédural
  • Example#2368 - Exemple avec numfmt_format, style POO
  • Example#2369 - Exemple avec numfmt_get_attribute, Style procédural
  • Example#2370 - Exemple avec numfmt_get_attribute, style POO
  • Example#2371 - Exemple avec numfmt_get_error_code, Style procédural
  • Example#2372 - Exemple avec numfmt_get_error_code, style POO
  • Example#2373 - Exemple avec numfmt_get_error_message, Style procédural
  • Example#2374 - Exemple avec numfmt_get_error_code, style POO
  • Example#2375 - Exemple avec numfmt_get_error_code, Style procédural
  • Example#2376 - Exemple avec numfmt_get_pattern, Style procédural
  • Example#2377 - Exemple avec numfmt_get_pattern, style POO
  • Example#2378 - Exemple avec numfmt_get_symbol, Style procédural
  • Example#2379 - Exemple avec numfmt_get_symbol, style POO
  • Example#2380 - Exemple avec numfmt_get_text_attribute, Style procédural
  • Example#2381 - Exemple avec numfmt_get_text_attribute, style POO
  • Example#2382 - Exemple avec numfmt_parse_currency, Style procédural
  • Example#2383 - Exemple avec numfmt_parse_currency, Style procédural
  • Example#2384 - Exemple avec numfmt_parse, Style procédural
  • Example#2385 - Exemple avec numfmt_parse, style POO
  • Example#2386 - Exemple avec numfmt_set_attribute, Style procédural
  • Example#2387 - Exemple avec numfmt_set_attribute, style POO
  • Example#2388 - Exemple avec numfmt_set_pattern, Style procédural
  • Example#2389 - Exemple avec numfmt_set_pattern, style POO
  • Example#2390 - Exemple avec numfmt_set_symbol, Style procédural
  • Example#2391 - Exemple avec numfmt_set_symbol, style POO
  • Example#2392 - Exemple avec numfmt_set_text_attribute, Style procédural
  • Example#2393 - Exemple avec numfmt_set_text_attribute, Style procédural
  • Example#2394 - Exemple avec locale_accept_from_http, procédural
  • Example#2395 - Exemple avec locale_accept_from_http, POO
  • Example#2396 - Exemple avec locale_compose, procédural
  • Example#2397 - Exemple avec locale_compose, POO
  • Example#2398 - Limites des Sous-tags
  • Example#2399 - Exemple avec locale_filter_matches, procédural
  • Example#2400 - Exemple avec locale_filter_matches, POO
  • Example#2401 - Exemple avec locale_get_all_variants, procédural
  • Example#2402 - Exemple avec locale_get_all_variants, POO
  • Example#2403 - Exemple avec locale_get_default, procédural
  • Example#2404 - Exemple avec locale_get_default, POO
  • Example#2405 - Exemple avec locale_get_display_language, procédural
  • Example#2406 - Exemple avec locale_get_display_language, POO
  • Example#2407 - Exemple avec locale_get_display_name, procédural
  • Example#2408 - Exemple avec locale_get_display_name, POO
  • Example#2409 - Exemple avec locale_get_display_region, procédural
  • Example#2410 - Exemple avec locale_get_display_region, POO
  • Example#2411 - Exemple avec locale_get_display_script, procédural
  • Example#2412 - Exemple avec locale_get_display_script, POO
  • Example#2413 - Exemple avec locale_get_display_variant, procédural
  • Example#2414 - Exemple avec locale_get_display_variant, POO
  • Example#2415 - Exemple avec locale_get_keywords, procédural
  • Example#2416 - Exemple avec locale_get_keywords, POO
  • Example#2417 - Exemple avec locale_get_primary_language, procédural
  • Example#2418 - Exemple avec locale_get_primary_language, POO
  • Example#2419 - Exemple avec locale_get_region, procédural
  • Example#2420 - Exemple avec locale_get_region, POO
  • Example#2421 - Exemple avec locale_get_script, procédural
  • Example#2422 - Exemple avec locale_get_script, POO
  • Example#2423 - Exemple avec locale_lookup, procédural
  • Example#2424 - Exemple avec Locale::lookup, POO
  • Example#2425 - Exemple avec locale_parse, procédural
  • Example#2426 - Exemple avec locale_parse, POO
  • Example#2427 - Exemple avec locale_set_default, procédural
  • Example#2428 - Exemple avec locale_set_default, POO
  • Example#2429 - Normalizer::getRawDecomposition example
  • Example#2430 - Exemple avec normalizer_is_normalized, en style procédural
  • Example#2431 - Exemple avec normalizer_is_normalized, en style orienté objet
  • Example#2432 - Exemple avec normalizer_normalize, procédural
  • Example#2433 - Exemple avec normalizer_normalize, POO
  • Example#2434 - Exemple avec msgfmt_create, style procédural
  • Example#2435 - Exemple avec msgfmt_create, style procédural
  • Example#2436 - Exemple avec msgfmt_format_message, style procédural
  • Example#2437 - Exemple avec msgfmt_format_message, style procédural
  • Example#2438 - Demander à ICU de formater la devise avec le symbole monétaire commun et avec le symbole monétaire court.
  • Example#2439 - Exemple avec msgfmt_format, style procédural
  • Example#2440 - Exemple avec msgfmt_format, style POO
  • Example#2441 - Exemple avec msgfmt_get_error_message, style procédural
  • Example#2442 - Exemple avec msgfmt_get_error_message, style POO
  • Example#2443 - Exemple avec msgfmt_get_locale, style procédural
  • Example#2444 - Exemple avec msgfmt_get_locale, style POO
  • Example#2445 - Exemple avec msgfmt_get_pattern, style procédural
  • Example#2446 - Exemple avec msgfmt_get_pattern, style POO
  • Example#2447 - Exemple avec msgfmt_parse_message, style procédural
  • Example#2448 - Exemple avec msgfmt_parse_message, style POO
  • Example#2449 - Exemple avec msgfmt_parse, style procédural
  • Example#2450 - Exemple avec msgfmt_parse, style POO
  • Example#2451 - Exemple avec msgfmt_set_pattern, style procédural
  • Example#2452 - Exemple avec msgfmt_set_pattern, style POO
  • Example#2453 - Exemple avec IntlCalendar::add
  • Example#2454 - Exemple avec IntlCalendar::after
  • Example#2455 - Exempe avec IntlCalendar::clear
  • Example#2456 - Exemple avec IntlCalendar::createInstance
  • Example#2457 - Exemple avec IntlCalendar::equals
  • Example#2458 - Exemple avec IntlCalendar::fieldDifference
  • Example#2459 - IntlCalendar::fromDateTime
  • Example#2460 - IntlCalendar::get
  • Example#2461 - IntlCalendar::getActualMaximum
  • Example#2462 - IntlCalendar::getAvailableLocales
  • Example#2463 - IntlCalendar::getDayOfWeekType
  • Example#2464 - IntlCalendar::getErrorCode and IntlCalendar::getErrorMessage
  • Example#2465 - IntlCalendar::getErrorMessage
  • Example#2466 - IntlCalendar::getFirstDayOfWeek
  • Example#2467 - IntlCalendar::getKeyworkValuesForLocale
  • Example#2468 - Maxima examples
  • Example#2469 - IntlCalendar::getLocale
  • Example#2470 - IntlCalendar::getMinimalDaysInFirstWeek
  • Example#2471 - Exemple avec IntlCalendar::getNow
  • Example#2472 - IntlCalendar::getRepeatedWallTimeOption
  • Example#2473 - IntlCalendar::getSkippedWallTimeOption
  • Example#2474 - IntlCalendar::getTime
  • Example#2475 - Exemple avec IntlCalendar::getTimeZone
  • Example#2476 - Exemple avec IntlCalendar::getType
  • Example#2477 - IntlCalendar::inDaylightTime
  • Example#2478 - IntlCalendar::isEquivalentTo
  • Example#2479 - IntlCalendar::isLenient
  • Example#2480 - IntlCalendar::isWeekend
  • Example#2481 - IntlCalendar::roll
  • Example#2482 - IntlCalendar::set
  • Example#2483 - IntlCalendar::setDate example
  • Example#2484 - IntlCalendar::setDateTime example
  • Example#2485 - Exemple avec IntlCalendar::setFirstDayOfWeek
  • Example#2486 - Exemple avec IntlCalendar::setTime
  • Example#2487 - Exemple avec IntlCalendar::setTimeZone
  • Example#2488 - Exemple avec IntlCalendar::toDateTime
  • Example#2489 - IntlGregorianCalendar::createFromDate example
  • Example#2490 - IntlGregorianCalendar::createFromDateTime example
  • Example#2491 - Exemple avec datefmt_create, procédural
  • Example#2492 - Exemple avec datefmt_create, POO
  • Example#2493 - Exemple de gestion de locale invalide
  • Example#2494 - Exemple avec datefmt_format
  • Example#2495 - Exemple orienté objet
  • Example#2496 - Exemple avec un objet IntlCalendar
  • Example#2497 - Exemple avec IntlDateFormatter::formatObject
  • Example#2498 - Exemple avec datefmt_get_calendar
  • Example#2499 - Exemple orienté objet
  • Example#2500 - Exemple de gestion de locale invalide
  • Example#2501 - Exemple avec datefmt_get_datetype
  • Example#2502 - Exemple orienté objet
  • Example#2503 - Exemple avec datefmt_get_error_code
  • Example#2504 - Exemple orienté objet
  • Example#2505 - Exemple avec datefmt_get_error_message
  • Example#2506 - Exemple orienté objet
  • Example#2507 - Exemple avec datefmt_get_locale
  • Example#2508 - Exemple orienté objet
  • Example#2509 - Exemple avec datefmt_get_pattern
  • Example#2510 - Exemple orienté objet
  • Example#2511 - Exemple avec datefmt_get_timetype
  • Example#2512 - Exemple orienté objet
  • Example#2513 - Exemple avec datefmt_get_timezone_id
  • Example#2514 - Exemple orienté objet
  • Example#2515 - Exemple avec IntlDateFormatter::getCalendarObject
  • Example#2516 - Exemple avec IntlDateFormatter::getTimeZone
  • Example#2517 - Exemple avec datefmt_is_lenient
  • Example#2518 - Exemple orienté objet
  • Example#2519 - Exemple avec datefmt_localtime
  • Example#2520 - Exemple orienté objet
  • Example#2521 - Exemple orienté objet
  • Example#2522 - Exemple avec datefmt_parse
  • Example#2523 - Exemple avec datefmt_set_calendar
  • Example#2524 - Exemple orienté objet
  • Example#2525 - Exemple avec des arguments à IntlCalendar
  • Example#2526 - Exemple avec datefmt_set_lenient
  • Example#2527 - Exemple orienté objet
  • Example#2528 - Exemple avec datefmt_get_pattern
  • Example#2529 - Exemple orienté objet
  • Example#2530 - Exemple avec IntlDateFormatter::setTimeZone
  • Example#2531 - Exemple avec resourcebundle_count
  • Example#2532 - Exemple orienté objet
  • Example#2533 - Exemple avec resourcebundle_create
  • Example#2534 - Exemple avec ResourceBundle::create
  • Example#2535 - Exemple avec resourcebundle_get_error_code
  • Example#2536 - Exemple orienté objet
  • Example#2537 - Exemple avec resourcebundle_get_error_message
  • Example#2538 - Exemple orienté objet
  • Example#2539 - Exemple avec resourcebundle_get
  • Example#2540 - Exemple orienté objet
  • Example#2541 - Exemple avec resourcebundle_locales
  • Example#2542 - Exemple orienté objet
  • Example#2543 - Exemple Spoofchecker::areConfusable
  • Example#2544 - Exemple Spoofchecker::isSuspicious
  • Example#2545 - Récupération des identifiants transliterator enregistrés
  • Example#2546 - Conversion des échappements en unité UTF-16
  • Example#2547 - IntlDatePatternGenerator::getBestPattern example
  • Example#2548 - Conversion de UTF-8 à UTF-16 et inversement
  • Example#2549 - Caractères non valides en entrée
  • Example#2550 - Caractères ne pouvant être encodés
  • Example#2551 - Exemple avec grapheme_extract
  • Example#2552 - Exemple avec grapheme_stripos
  • Example#2553 - Exemple avec grapheme_stristr
  • Example#2554 - Exemple avec grapheme_strlen
  • Example#2555 - Exemple avec grapheme_strpos
  • Example#2556 - Exemple avec grapheme_strripos
  • Example#2557 - Exemple avec grapheme_strrpos
  • Example#2558 - Exemple avec grapheme_strstr
  • Example#2559 - Exemple avec grapheme_substr
  • Example#2560 - Exemple avec idn_to_ascii
  • Example#2561 - Exemple avec idn_to_utf8
  • Example#2562 - Test de différents codepoint
  • Example#2563 - Test de différents codepoint
  • Example#2564 - Test de différents codepoint
  • Example#2565 - Test de différents codepoint
  • Example#2566 - Test de différents codepoint
  • Example#2567 - Test de différents codepoint
  • Example#2568 - Test de différents codepoint
  • Example#2569 - Test de différents codepoint
  • Example#2570 - Test de différents codepoint
  • Example#2571 - Enumerating over a sample range of code points
  • Example#2572 - Enumerating over a sample range of code points
  • Example#2573 - Test de différents codepoint
  • Example#2574 - Test de différents codepoint
  • Example#2575 - Test de différents codepoint
  • Example#2576 - Test de différents codepoint
  • Example#2577 - Test de différents codepoint
  • Example#2578 - Test de différentes propriétés
  • Example#2579 - Test de différentes propriétés
  • Example#2580 - Test de différentes propriétés
  • Example#2581 - Test de différents codepoint
  • Example#2582 - Test de différentes propriétés
  • Example#2583 - Test de différentes propriétés
  • Example#2584 - Test de différentes propriétés
  • Example#2585 - Test de différentes propriétés
  • Example#2586 - Test de différentes propriétés
  • Example#2587 - Test de différentes propriétés
  • Example#2588 - Test de différents codepoint
  • Example#2589 - Test de différents codepoint
  • Example#2590 - Test de différents codepoint
  • Example#2591 - Test de différents codepoint
  • Example#2592 - Test de différents codepoint
  • Example#2593 - Test de différents codepoint
  • Example#2594 - Test de différents codepoint
  • Example#2595 - Test de différents codepoint
  • Example#2596 - Test de différents codepoint
  • Example#2597 - Test de différents codepoint
  • Example#2598 - Test de différents codepoint
  • Example#2599 - Test de différents codepoint
  • Example#2600 - Test de différents codepoint
  • Example#2601 - Test de différents codepoint
  • Example#2602 - Test de différents codepoint
  • Example#2603 - Test de différents codepoint
  • Example#2604 - Test de différents codepoint
  • Example#2605 - Test de différents codepoint
  • Example#2606 - Test de différents codepoint
  • Example#2607 - Test de différents codepoint
  • Example#2608 - Test de différents codepoint
  • Example#2609 - Test de différents codepoint
  • Example#2610 - Test de différents codepoint
  • Example#2611 - Test de différents codepoint
  • Example#2612 - Test de différents codepoint
  • Example#2613 - Test de différents codepoint
  • Example#2614 - Test de différents codepoint
  • Example#2615 - Test de différents codepoint
  • Example#2616 - Test de différents codepoint
  • Example#2617 - Test de différents codepoint
  • Example#2618 - Test de différents codepoint
  • Example#2619 - Test de différents codepoint
  • Example#2620 - Exemple avec intl_error_name
  • Example#2621 - Exemple avec intl_get_error_code
  • Example#2622 - Exemple avec intl_get_error_message
  • Example#2623 - Exemple avec intl_is_failure
  • Example#2624 - Configuration de php.ini pour mbstring
  • Example#2625 - Configuration de php.ini pour les utilisateurs de EUC-JP
  • Example#2626 - Configuration de php.ini pour les utilisateurs de SJIS
  • Example#2627 - Désactive la conversion HTTP dans le php.ini
  • Example#2628 - Exemple de configuration de mbstring dans php.ini
  • Example#2629 - Exemple de script avec mbstring
  • Example#2630 - Test de différents codepoint
  • Example#2631 - Exemple avec mb_convert_case
  • Example#2632 - Exemple avec mb_convert_case avec du texte UTF-8 non latin
  • Example#2633 - Exemple avec mb_convert_encoding
  • Example#2634 - Exemple avec mb_convert_kana
  • Example#2635 - Exemple avec mb_convert_variables
  • Example#2636 - Exemple avec map
  • Example#2637 - L'exemple map échappe la chaîne JavaScript
  • Example#2638 - Exemple avec mb_detect_encoding
  • Example#2639 - Effet du paramètre strict
  • Example#2640 - Effet de l'ordre quand plusieurs encodages correspondent
  • Example#2641 - Exemple avec mb_detect_order
  • Example#2642 - Exemple d'ordre de détection inutile
  • Example#2643 - Exemple avec mb_encode_mimeheader
  • Example#2644 - Exemple avec map
  • Example#2645 - Exemple avec mb_encode_numericentity
  • Example#2646 - Exemple avec mb_encoding_aliases
  • Example#2647 - Exemple avec mb_ereg_replace_callback
  • Example#2648 - mb_ereg_replace_callback utilisant les fonctions anonymes
  • Example#2649 - Exemple avec mb_internal_encoding
  • Example#2650 - Exemple avec mb_list_encodings
  • Example#2651 - Un example basique de mb_ord
  • Example#2652 - Exemple avec mb_output_handler
  • Example#2653 - Exemple avec mb_preferred_mime_name
  • Example#2654 - mb_str_pad example
  • Example#2655 - Exemple avec mb_strimwidth
  • Example#2656 - Exemple avec mb_strtolower
  • Example#2657 - Exemple avec mb_strtolower avec du texte UTF-8 non latin
  • Example#2658 - Exemple avec mb_strtoupper
  • Example#2659 - Exemple avec mb_strtoupper et du texte UTF-8 non latin
  • Example#2660 - Exemple mb_strwidth
  • Example#2661 - Exemple avec mb_substitute_character
  • Example#2662 - Exemple avec mb_substr_count
  • Example#2663 - pspell_add_to_personal
  • Example#2664 - Exemple avec pspell_check
  • Example#2665 - Exemple avec pspell_add_to_personal
  • Example#2666 - pspell_config_create
  • Example#2667 - pspell_config_ignore
  • Example#2668 - Exemple avec pspell_config_mode
  • Example#2669 - pspell_config_personal
  • Example#2670 - pspell_config_repl
  • Example#2671 - pspell_config_runtogether
  • Example#2672 - pspell_new_config
  • Example#2673 - pspell_new_personal
  • Example#2674 - pspell_new
  • Example#2675 - pspell_add_to_personal
  • Example#2676 - pspell_store_replacement
  • Example#2677 - Exemple avec pspell_suggest
  • Example#2678 - Exemple avec recode_file
  • Example#2679 - Exemple avec recode_string
  • Example#2680 - Exemple avec exif_imagetype
  • Example#2681 - Exemple avec exif_read_data
  • Example#2682 - exif_read_data avec les flux disponible depuis PHP 7.2.0
  • Example#2683 - Exemple pour exif_tagname
  • Example#2684 - Exemple avec exif_thumbnail
  • Example#2685 - Création d'une image PNG avec PHP
  • Example#2686 - Ajout d'un tatouage numérique sur des images en utilisant un canal Alpha
  • Example#2687 - Exemple avec imagecopymerge pour créer un tatouage numérique translucide
  • Example#2688 - Exemple avec gd_info
  • Example#2689 - getimagesize et types MIME
  • Example#2690 - Exemple avec getimagesize
  • Example#2691 - getimagesize avec une URL
  • Example#2692 - getimagesize qui retourne IPTC
  • Example#2693 - Exemple avec getimagesizefromstring
  • Example#2694 - Exemple avec image_type_to_extension
  • Example#2695 - Exemple avec image_type_to_mime_type
  • Example#2696 - Exemple avec image2wbmp
  • Example#2697 - Exemple pour imageaffinematrixconcat
  • Example#2698 - Exemple pour imageaffinematrixget
  • Example#2699 - Exemple avec imagealphablending
  • Example#2700 - Comparaison de 2 lignes, dont l'une est anti-aliasée
  • Example#2701 - Dessine d'un cercle avec imagearc
  • Example#2702 - Enregistrer un fichier BMP
  • Example#2703 - Exemple avec imagechar
  • Example#2704 - Exemple avec imagecharup
  • Example#2705 - Exemple avec imagecolorallocate
  • Example#2706 - Exemple d'utilisation de imagecolorallocatealpha
  • Example#2707 - Conversion de valeur alpha typique pour l'utiliser avec imagecolorallocatealpha
  • Example#2708 - Accès aux valeurs RGB
  • Example#2709 - Valeurs RVB lisibles en utilisant la fonction imagecolorsforindex
  • Example#2710 - Recherche d'un jeu de couleur dans une image
  • Example#2711 - Cherche un jeu de couleurs dans une image
  • Example#2712 - Exemple avec imagecolorclosesthwb
  • Example#2713 - Exemple avec imagecolordeallocate
  • Example#2714 - Récupération des couleurs composant le logo GD
  • Example#2715 - Récupération des couleurs composant le logo GD
  • Example#2716 - Exemple avec imagecolormatch
  • Example#2717 - Exemple avec imagecoloresolve pour récupérer les couleurs d'une image
  • Example#2718 - Exemple avec imagecoloresolve pour récupérer les couleurs d'une image
  • Example#2719 - Exemple avec imagecolorset
  • Example#2720 - Exemple avec imagecolorsforindex
  • Example#2721 - Récupération du nombre total de couleurs dans une image en utilisant la fonction imagecolorstotal
  • Example#2722 - Exemple avec imagecolortransparent
  • Example#2723 - Impression du logo PHP.net avec imageconvolution
  • Example#2724 - Flou gaussien avec imageconvolution
  • Example#2725 - On coupe le logo PHP.net
  • Example#2726 - Fusionne 2 copies du logo PHP.net avec 75% de transparence
  • Example#2727 - Exemple avec imagecopymergegray
  • Example#2728 - Exemple simple
  • Example#2729 - Redimensionnement proportionnel d'une image
  • Example#2730 - Redimensionnement d'une image
  • Example#2731 - Création d'une image GD et affichage de cette image
  • Example#2732 - Convertit une image BMP en image PNG en utilisant imagecreatefrombmp
  • Example#2733 - Exemple avec imagecreatefromgd2
  • Example#2734 - Exemple avec imagecreatefromgd2part
  • Example#2735 - Exemple avec imagecreatefromgd
  • Example#2736 - Exemple de prise en charge d'une erreur lors du chargement d'une image GIF
  • Example#2737 - Exemple de gestion d'une erreur lors du chargement d'une image JPEG
  • Example#2738 - Exemple de gestion d'une erreur lors du chargement d'une image PNG
  • Example#2739 - Exemple avec imagecreatefromstring
  • Example#2740 - Exemple de gestion d'une erreur lors du chargement d'une image WBMP
  • Example#2741 - Convertit une image WebP en une image jpeg en utilisant la fonction imagecreatefromwebp
  • Example#2742 - Convertie une image XBM en une image PNG en utilisant la fonction imagecreatefromxbm
  • Example#2743 - Création d'une instance d'image en utilisant la fonction imagecreatefromxpm
  • Example#2744 - Création d'un flux d'image GD, et affichage
  • Example#2745 - Exemple avec imagecrop
  • Example#2746 - Rognage automatique correcte
  • Example#2747 - Exemple avec imagedashedline
  • Example#2748 - Alternative à la fonction imagedashedline
  • Example#2749 - Utilisation de imagedestroy antérieur à PHP 8.0.0
  • Example#2750 - Exemple avec imageellipse
  • Example#2751 - Exemple avec imagefill
  • Example#2752 - Création d'un camembert en 3D
  • Example#2753 - Exemple avec imagefilledellipse
  • Example#2754 - Exemple avec imagefilledpolygon
  • Example#2755 - Exemple avec imagefilledrectangle
  • Example#2756 - Remplissage d'un ellipse avec une couleur
  • Example#2757 - Exemple de niveaux de gris avec imagefilter
  • Example#2758 - Exemple de luminosité avec imagefilter
  • Example#2759 - Exemple de colorisation avec imagefilter
  • Example#2760 - Exemple de négatif avec imagefilter
  • Example#2761 - Exemple de pixellisation avec imagefilter
  • Example#2762 - Exemple de dispersion avec imagefilter
  • Example#2763 - Retourne une image verticalement
  • Example#2764 - Retourne une image horizontalement
  • Example#2765 - Exemple avec imagefontheight et des polices internes
  • Example#2766 - Exemple avec imagefontheight et imageloadfont
  • Example#2767 - Exemple avec imagefontwidth et les polices internes
  • Example#2768 - Exemple avec imagefontwidth et imageloadfont
  • Example#2769 - Exemple avec imageftbbox
  • Example#2770 - Exemple avec imagefttext
  • Example#2771 - Exemple avec imagegammacorrect
  • Example#2772 - Affichage d'une image GD2
  • Example#2773 - Sauvegarde d'une image GD2
  • Example#2774 - Affichage d'une image GD
  • Example#2775 - Sauvegarde d'une image GD
  • Example#2776 - Exemple avec imagegetclip
  • Example#2777 - Affichage d'une image en utilisant imagegif
  • Example#2778 - Conversion d'une image PNG en GIF, en utilisant imagegif
  • Example#2779 - Exemple avec imagegrabscreen
  • Example#2780 - Exemple avec imagegrabwindow
  • Example#2781 - Activation de l'entrelacement en utilisant la fonction imageinterlace
  • Example#2782 - Détection simple d'une image en truecolor avec imageistruecolor
  • Example#2783 - Affichage d'une image JPEG vers le navigateur
  • Example#2784 - Sauvegarde d'une image JPEG dans un fichier
  • Example#2785 - Affichage de l'image avec une qualité de 75% vers le navigateur
  • Example#2786 - Exemple avec imagelayereffect
  • Example#2787 - Trace une ligne fine
  • Example#2788 - Exemple avec imageloadfont
  • Example#2789 - Exemple avec imageopenpolygon
  • Example#2790 - Exemple avec imagepalettecopy
  • Example#2791 - Convertit n'importe quelle objet image en couleur vraie
  • Example#2792 - Exemple avec imagepolygon
  • Example#2793 - Exemple avec imagerectangle
  • Example#2794 - Définir et récupérer la résolution d'une image
  • Example#2795 - Rotation d'une image de 180 degrés
  • Example#2796 - Utilisation simple de imagesavealpha
  • Example#2797 - Exemple avec imagesetbrush
  • Example#2798 - Exemple avec imagesetinterpolation
  • Example#2799 - Exemple avec imagesetpixel
  • Example#2800 - Exemple pour imagesetstyle
  • Example#2801 - Exemple avec imagesetthickness
  • Example#2802 - Exemple avec imagesettile
  • Example#2803 - Exemple avec imagestring
  • Example#2804 - Exemple avec imagestringup
  • Example#2805 - Exemple avec imagesx
  • Example#2806 - Exemple avec imagesy
  • Example#2807 - Convertion d'une image truecolor en une palette
  • Example#2808 - Exemple avec imagettfbbox
  • Example#2809 - Exemple avec imagettftext
  • Example#2810 - Exemple avec imagetypes
  • Example#2811 - Affichage d'une image WBMP
  • Example#2812 - Sauvegarde de l'image WBMP
  • Example#2813 - Affichage de l'image avec un premier-plan différent
  • Example#2814 - Sauvegarde d'un fichier WebP
  • Example#2815 - Sauvegarde d'un fichier XBM
  • Example#2816 - Sauvegarde d'un fichier XBM avec une couleur de premier-plan différente
  • Example#2817 - Exemple avec iptcembed
  • Example#2818 - Exemple avec iptcparse() et getimagesize
  • Example#2819 - Exemple avec jpeg2wbmp
  • Example#2820 - Exemple avec png2wbmp
  • Example#2821 - Gmagick Example
  • Example#2822 - Exemple avec Gmagick::despeckleimage
  • Example#2823 - Exemple avec Gmagick::setCompressionQuality
  • Example#2824 - Création d'une miniature avec Imagick
  • Example#2825 - Création de miniature de toutes les images JPG d'un dossier
  • Example#2826 - Création d'un reflet sur une image
  • Example#2827 - Remplissage d'un texte avec un dégradé
  • Example#2828 - Lit une image GIF et redimensionne toutes les frames
  • Example#2829 - Create a PHP logo
  • Example#2830 - Exemple avec Imagick::adaptiveBlurImage
  • Example#2831 - Exemple avec Imagick::adaptiveResizeImage
  • Example#2832 - Exemple avec Imagick::adaptiveSharpenImage
  • Example#2833 - Exemple avec Imagick::adaptiveThresholdImage
  • Example#2834 - Exemple avec Imagick::addNoiseImage
  • Example#2835 - Exemple avec Imagick::affineTransformImage
  • Example#2836 - Exemple avec Imagick::annotateImage
  • Example#2837 - Exemple avec Imagick::appendImages
  • Example#2838 - Imagick::autoLevelImage
  • Example#2839 - Exemple avec Imagick::blackThresholdImage
  • Example#2840 - Imagick::blueShiftImage
  • Example#2841 - Exemple avec Imagick::blurImage
  • Example#2842 - Exemple avec Imagick::borderImage
  • Example#2843 - Imagick::brightnessContrastImage
  • Example#2844 - Exemple avec Imagick::charcoalImage
  • Example#2845 - Exemple avec Imagick::chopImage
  • Example#2846 - Clonage d'objet Imagick avec différentes versions d'Imagick
  • Example#2847 - Exemple avec Imagick::clutImage
  • Example#2848 - Exemple avec Imagick::colorizeImage
  • Example#2849 - Imagick::colorMatrixImage
  • Example#2850 - Exemple avec Imagick::commentImage
  • Example#2851 - Exemple avec Imagick::compareImageLayers
  • Example#2852 - Exemple avec Imagick::compareImages
  • Example#2853 - Using Imagick::compositeImage:
  • Example#2854 - Exemple avec Imagick::contrastImage
  • Example#2855 - Exemple avec Imagick::convolveImage
  • Example#2856 - Exemple avec Imagick::cropImage
  • Example#2857 - Exemple avec Imagick::deskewImage
  • Example#2858 - Exemple avec Imagick::despeckleImage
  • Example#2859 - Exemple avec Imagick::distortImage
  • Example#2860 - Exemple avec Imagick::edgeImage
  • Example#2861 - Exemple avec Imagick::embossImage
  • Example#2862 - Exemple avec Imagick::enhanceImage
  • Example#2863 - Exemple avec Imagick::equalizeImage
  • Example#2864 - Exemple avec Imagick::evaluateImage
  • Example#2865 - Exemple avec Imagick::exportImagePixels
  • Example#2866 - Imagick::filter
  • Example#2867 - Exemple avec Imagick::flipImage
  • Example#2868 - Exemple avec Imagick::floodfillPaintImage
  • Example#2869 - Exemple avec Imagick::flopImage
  • Example#2870 - Imagick::forwardFourierTransformImage
  • Example#2871 - Exemple avec Imagick::frameImage
  • Example#2872 - Crée un gradient sinusoidal
  • Example#2873 - Crée un gradient depuis le polynome (4x^2 - 4x + 1)
  • Example#2874 - Crée un gradient complexe depuis le polynome (4x^2 - 4x^2 + 1) modulé par un gradient sinusoidal
  • Example#2875 - Exemple avec Imagick::fxImage
  • Example#2876 - Exemple avec Imagick::gammaImage
  • Example#2877 - Exemple avec Imagick::gaussianBlurImage
  • Example#2878 - Utilisation de Imagick::getImageGeometry
  • Example#2879 - Exemple avec Imagick::getImageHistogram
  • Example#2880 - Exemple avec Imagick::getImageLength:
  • Example#2881 - Exemple avec Imagick::getImageProperties
  • Example#2882 - Exemple avec Imagick::getImageProperty
  • Example#2883 - Exemple avec Imagick::getIteratorIndex
  • Example#2884 - Exemple avec Imagick::getPixelIterator
  • Example#2885 - Imagick::getPixelRegionIterator example
  • Example#2886 - Obtention de la taille d'une image RVB brute définie à 200x400, après mise à l'échelle à 400x800 (par rapport à la largeur/hauteur)
  • Example#2887 - Exemple avec Imagick::haldClutImage
  • Example#2888 - Imagick::identifyFormat
  • Example#2889 - Exemple de format du résultat
  • Example#2890 - Exemple avec Imagick::implodeImage
  • Example#2891 - Exemple avec Imagick::importImagePixels
  • Example#2892 - Exemple avec Imagick::levelImage
  • Example#2893 - Exemple avec Imagick::linearStretchImage
  • Example#2894 - Exemple avec Imagick::magnifyImage
  • Example#2895 - Exemple avec Imagick::medianFilterImage
  • Example#2896 - Exemple avec Imagick::mergeImageLayers
  • Example#2897 - Exemple avec Imagick::modulateImage
  • Example#2898 - Convolve Imagick::morphology
  • Example#2899 - Correlate Imagick::morphology
  • Example#2900 - Erode Imagick::morphology
  • Example#2901 - Erode Intensity Imagick::morphology
  • Example#2902 - Dilate Imagick::morphology
  • Example#2903 - Dilate intensity Imagick::morphology
  • Example#2904 - Distance with Chebyshev kernel Imagick::morphology
  • Example#2905 - Distance with Manhattan kernel Imagick::morphology
  • Example#2906 - Distance with ocatagonal kernel Imagick::morphology
  • Example#2907 - Distance with Euclidean kernel Imagick::morphology
  • Example#2908 - Edge Imagick::morphology
  • Example#2909 - Open Imagick::morphology
  • Example#2910 - Open intensity Imagick::morphology
  • Example#2911 - Close Imagick::morphology
  • Example#2912 - Close Intensity Imagick::morphology
  • Example#2913 - Smooth Imagick::morphology
  • Example#2914 - Edge in Imagick::morphology
  • Example#2915 - Edge out Imagick::morphology
  • Example#2916 - 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#2917 - The 'BottomHat' method, also known as 'Black TopHat' is the pixels that a Closing of the shape adds to the image. That is the pixels that were used to fill in the 'holes', 'gaps', and 'bridges'. Imagick::morphology
  • Example#2918 - Hit and Miss Imagick::morphology
  • Example#2919 - Thinning Imagick::morphology
  • Example#2920 - Thicken Imagick::morphology
  • Example#2921 - Thick to generate a convex hull Imagick::morphology
  • Example#2922 - Iterative morphology Imagick::morphology
  • Example#2923 - Helper function to get an image silhouette Imagick::morphology
  • Example#2924 - Exemple avec Imagick::motionBlurImage
  • Example#2925 - Exemple avec Imagick::negateImage
  • Example#2926 - Exemple avec Imagick::newImage
  • Example#2927 - Exemple avec Imagick::newPseudoImage
  • Example#2928 - Exemple avec Imagick::normalizeImage
  • Example#2929 - Exemple avec Imagick::oilPaintImage
  • Example#2930 - Exemple avec Imagick::optimizeImageLayers
  • Example#2931 - Exemple avec Imagick::orderedPosterizeImage
  • Example#2932 - Exemple avec Imagick::pingImageBlob
  • Example#2933 - Exemple avec Imagick::pingImageFile
  • Example#2934 - Exemple avec Imagick::polaroidImage
  • Example#2935 - Exemple avec Imagick::posterizeImage
  • Example#2936 - Exemple avec Imagick::quantizeImage
  • Example#2937 - Exemple avec Imagick::queryFontMetrics
  • Example#2938 - Exemple avec Imagick::queryFonts
  • Example#2939 - Exemple avec Imagick::queryFormats
  • Example#2940 - Exemple avec Imagick::radialBlurImage
  • Example#2941 - Exemple avec Imagick::raiseImage
  • Example#2942 - Exemple avec Imagick::randomThresholdImage
  • Example#2943 - Exemple avec Imagick::readImageBlob
  • Example#2944 - Exemple avec Imagick::recolorImage
  • Example#2945 - Exemple avec Imagick::reduceNoiseImage
  • Example#2946 - Exemple avec Imagick::resampleImage
  • Example#2947 - Exemple avec Imagick::resizeImage
  • Example#2948 - Exemple avec Imagick::rollImage
  • Example#2949 - Exemple avec Imagick::rotateImage
  • Example#2950 - Imagick::rotationalBlurImage
  • Example#2951 - Exemple avec Imagick::roundCorners:
  • Example#2952 - Exemple avec Imagick::scaleImage
  • Example#2953 - Exemple avec Imagick::segmentImage
  • Example#2954 - Imagick::selectiveBlurImage
  • Example#2955 - Exemple avec Imagick::separateImageChannel
  • Example#2956 - Exemple avec Imagick::sepiaToneImage
  • Example#2957 - Exemple avec Imagick::setCompressionQuality
  • Example#2958 - Exemple avec Imagick::setFont
  • Example#2959 - Exemple avec Imagick::setImage
  • Example#2960 - Exemple avec Imagick::setImageArtifact
  • Example#2961 - Exemple avec Imagick::setImageBias
  • Example#2962 - Exemple avec Imagick::setImageClipMask
  • Example#2963 - Exemple avec Imagick::setImageCompressionQuality
  • Example#2964 - Modification d'un GIF animé avec Imagick::setImageDelay
  • Example#2965 - Utilisation basique de la méthode Imagick::setImageIterations
  • Example#2966 - Exemple avec Imagick::setImageOpacity
  • Example#2967 - Exempe avec Imagick::setImageOrientation
  • Example#2968 - Exemple avec Imagick::setImageProperty
  • Example#2969 - Exempe avec Imagick::setImageResolution
  • Example#2970 - Modification d'un GIF animé avec la méthode Imagick::setImageTicksPerSecond
  • Example#2971 - Exemple avec Imagick::setIteratorIndex
  • Example#2972 - Tentative d'atteindre la taille '$extent' avec Imagick::setOption
  • Example#2973 - Exemple avec Imagick::setOption
  • Example#2974 - Exemple avec Imagick::setOption
  • Example#2975 - Exemple avec Imagick::setPointSize
  • Example#2976 - Imagick::setProgressMonitor
  • Example#2977 - Exemple avec Imagick::setSamplingFactors
  • Example#2978 - Exemple avec Imagick::shadeImage
  • Example#2979 - Exemple avec Imagick::shadowImage
  • Example#2980 - Exemple avec Imagick::sharpenImage
  • Example#2981 - Exemple avec Imagick::shaveImage
  • Example#2982 - Exemple avec Imagick::shearImage
  • Example#2983 - 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#2984 - Exemple avec Imagick::sketchImage
  • Example#2985 - Imagick::smushImages
  • Example#2986 - Exemple avec Imagick::solarizeImage
  • Example#2987 - Exemple avec Imagick::sparseColorImage et SPARSECOLORMETHOD_BARYCENTRIC
  • Example#2988 - Exemple avec Imagick::sparseColorImage et SPARSECOLORMETHOD_BILINEAR
  • Example#2989 - Exemple avec Imagick::sparseColorImage et SPARSECOLORMETHOD_SPEPARDS
  • Example#2990 - Exemple avec Imagick::sparseColorImage et SPARSECOLORMETHOD_VORONOI
  • Example#2991 - Exemple avec Imagick::sparseColorImage et SPARSECOLORMETHOD_BARYCENTRIC
  • Example#2992 - createGradientImage est utilisé par les autres exemples. Imagick::sparseColorImage
  • Example#2993 - Exemple avec Imagick::spliceImage
  • Example#2994 - Exemple avec Imagick::spreadImage
  • Example#2995 - Imagick::statisticImage
  • Example#2996 - Imagick::subImageMatch
  • Example#2997 - Exemple avec Imagick::swirlImage
  • Example#2998 - Exemple avec Imagick::textureImage
  • Example#2999 - Exemple avec Imagick::thresholdImage
  • Example#3000 - Exemple avec Imagick::thumbnailImage
  • Example#3001 - Exemple avec Imagick::tintImage
  • Example#3002 - Exemple avec Imagick::transformImage:
  • Example#3003 - Imagick::transformImageColorspace example
  • Example#3004 - Exemple avec Imagick::transparentPaintImage
  • Example#3005 - Exemple avec Imagick::transposeImage
  • Example#3006 - Exemple avec Imagick::transverseImage
  • Example#3007 - Exemple avec Imagick::trimImage:
  • Example#3008 - Exemple avec Imagick::uniqueImageColors
  • Example#3009 - Exemple avec Imagick::unsharpMaskImage
  • Example#3010 - Exemple avec Imagick::vignetteImage
  • Example#3011 - WaveImage peut être très lent ; Imagick::waveImage
  • Example#3012 - Exemple avec Imagick::whiteThresholdImage
  • Example#3013 - Exemple avec ImagickDraw::affine
  • Example#3014 - Exemple avec ImagickDraw::arc
  • Example#3015 - Exemple avec ImagickDraw::bezier
  • Example#3016 - Exemple avec ImagickDraw::circle
  • Example#3017 - Exemple avec ImagickDraw::composite
  • Example#3018 - Exemple avec ImagickDraw::ellipse
  • Example#3019 - Exemple avec ImagickDraw::line
  • Example#3020 - Exemple avec ImagickDraw::matte
  • Example#3021 - Exemple avec ImagickDraw::pathCurveToQuadraticBezierAbsolute
  • Example#3022 - Exemple avec ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute
  • Example#3023 - Exemple avec ImagickDraw::pathCurveToQuadraticBezierSmoothRelative
  • Example#3024 - Exemple avec ImagickDraw::pathStart
  • Example#3025 - Exemple avec ImagickDraw::point
  • Example#3026 - Exemple avec ImagickDraw::polygon
  • Example#3027 - Exempe avec ImagickDraw::polyline
  • Example#3028 - Exemple avec ImagickDraw::popDefs
  • Example#3029 - Exemple avec ImagickDraw::push
  • Example#3030 - Exemple avec ImagickDraw::pushPattern
  • Example#3031 - Exemple avec ImagickDraw::rectangle
  • Example#3032 - Exemple avec ImagickDraw::rotate
  • Example#3033 - Exemple avec ImagickDraw::roundRectangle
  • Example#3034 - Exemple avec ImagickDraw::scale
  • Example#3035 - Exemple avec ImagickDraw::setClipPath
  • Example#3036 - Exemple avec ImagickDraw::setClipRule
  • Example#3037 - Exemple avec ImagickDraw::setClipUnits
  • Example#3038 - Exemple avec ImagickDraw::setFillAlpha
  • Example#3039 - Exemple avec ImagickDraw::setFillColor
  • Example#3040 - Exemple avec ImagickDraw::setFillOpacity
  • Example#3041 - Exemple avec ImagickDraw::setFillRule
  • Example#3042 - Exemple avec ImagickDraw::setFont
  • Example#3043 - Exemple avec ImagickDraw::setFontFamily
  • Example#3044 - Exemple avec ImagickDraw::setFontSize
  • Example#3045 - Exemple avec ImagickDraw::setFontStretch
  • Example#3046 - Exemple avec ImagickDraw::setFontStyle
  • Example#3047 - Exemple avec ImagickDraw::setFontWeight
  • Example#3048 - Exemple avec ImagickDraw::setGravity
  • Example#3049 - Exemple avec ImagickDraw::setStrokeAlpha
  • Example#3050 - Exemple avec ImagickDraw::setStrokeAntialias
  • Example#3051 - Exemple avec ImagickDraw::setStrokeColor
  • Example#3052 - Exemple avec ImagickDraw::setStrokeDashArray
  • Example#3053 - Exemple avec ImagickDraw::setStrokeDashOffset
  • Example#3054 - Exemple avec ImagickDraw::setStrokeLineCap
  • Example#3055 - Exemple avec ImagickDraw::setStrokeLineJoin
  • Example#3056 - Exemple avec ImagickDraw::setStrokeMiterLimit
  • Example#3057 - Exemple avec ImagickDraw::setStrokeOpacity
  • Example#3058 - Exemple avec ImagickDraw::setStrokeWidth
  • Example#3059 - Exemple avec ImagickDraw::setTextAlignment
  • Example#3060 - Exemple avec ImagickDraw::setTextAntialias
  • Example#3061 - Exemple avec ImagickDraw::setTextDecoration
  • Example#3062 - Exemple avec ImagickDraw::setTextUnderColor
  • Example#3063 - Exemple avec ImagickDraw::setVectorGraphics
  • Example#3064 - Exemple avec ImagickDraw::setViewBox
  • Example#3065 - Exemple avec ImagickDraw::skewX
  • Example#3066 - Exemple avec ImagickDraw::skewY
  • Example#3067 - Exemple avec ImagickDraw::translate
  • Example#3068 - Exemple avec ImagickPixel::construct
  • Example#3069 - Utilisation simple de la méthode Imagick::getColor
  • Example#3070 - Utilisation basique de la méthode Imagick::getColorAsString
  • Example#3071 - ImagickPixel getColorCount
  • Example#3072 - Utilisation basique de la méthode Imagick::getColorValue
  • Example#3073 - ImagickPixel::getColorValueQuantum
  • Example#3074 - Exemple avec Imagick::getHSL
  • Example#3075 - Exemple avec ImagickPixel::isSimilar
  • Example#3076 - Exemple avec ImagickPixel::setColor
  • Example#3077 - Exemple avec Imagick::setColorValue
  • Example#3078 - ImagickPixel::setColorValueQuantum
  • Example#3079 - Exemple avec ImagickPixel::setHSL pour modifier une couleur
  • Example#3080 - Exemple avec ImagickPixelIterator::clear
  • Example#3081 - Exemple avec ImagickPixelIterator::construct
  • Example#3082 - Exemple avec ImagickPixelIterator::getNextIteratorRow
  • Example#3083 - Exemple avec ImagickPixelIterator::resetIterator
  • Example#3084 - Exemple avec ImagickPixelIterator::setIteratorRow
  • Example#3085 - ImagickKernel::addKernel
  • Example#3086 - ImagickKernel::addUnityKernel
  • Example#3087 - ImagickKernel::addUnityKernel
  • Example#3088 - ImagickKernel::fromBuiltin
  • Example#3089 - ImagickKernel::fromMatrix
  • Example#3090 - ImagickKernel::getMatrix
  • Example#3091 - ImagickKernel::scale
  • Example#3092 - ImagickKernel::separate
  • Example#3093 - Exemple avec imap_append
  • Example#3094 - Exemple avec imap_check
  • Example#3095 - Exemple avec imap_createmailbox
  • Example#3096 - Exemple avec imap_delete
  • Example#3097 - Exemple avec imap_fetch_overview
  • Example#3098 - Exemple avecimap_gc
  • Example#3099 - Exemple avec imap_get_quota
  • Example#3100 - Exemple avec imap_get_quota 4.3 ou supérieur
  • Example#3101 - Exemple avec imap_get_quotaroot
  • Example#3102 - Exemple avec imap_getacl
  • Example#3103 - Exemple avec imap_getmailboxes
  • Example#3104 - Exemple de imap_is_open
  • Example#3105 - Exemple avec imap_list
  • Example#3106 - Exemple avec imap_mail_compose
  • Example#3107 - Exemple avec imap_mailboxmsginfo
  • Example#3108 - Exemple avec imap_mime_header_decode
  • Example#3109 - Différentes utilisations de imap_open
  • Example#3110 - Exemple avec imap_open
  • Example#3111 - Exemple avec imap_ping
  • Example#3112 - Exemple avec imap_reopen
  • Example#3113 - Exemple avec imap_rfc822_parse_adrlist
  • Example#3114 - Exemple avec imap_rfc822_write_address
  • Example#3115 - Exemple avec imap_search
  • Example#3116 - Exemple avec imap_set_quota
  • Example#3117 - Exemple avec imap_setflag_full
  • Example#3118 - Exemple avec imap_status
  • Example#3119 - Exemple avec imap_thread
  • Example#3120 - Exemple avec imap_timeout
  • Example#3121 - Utilisation de base de la fonction imap_utf8
  • Example#3122 - Calcul du hachage et enregistrement d'un utilisateur de liste de diffusion
  • Example#3123 - Envoi d'un mail
  • Example#3124 - Envoi d'un mail avec des en-têtes supplémentaires
  • Example#3125 - Envoi d'un mail avec un array d'en-têtes supplémentaires
  • Example#3126 - Envoi d'un mail avec un paramètre de ligne de commande additionnel
  • Example#3127 - Envoi de mail HTML
  • Example#3128 - Exemple avec mailparse_determine_best_xfer_encoding
  • Example#3129 - Exemple avec mailparse_rfc822_parse_addresses
  • Example#3130 - Exemple avec mailparse_stream_encode
  • Example#3131 - Exemple avec mailparse_uudecode_all
  • Example#3132 - Exemple avec bcadd
  • Example#3133 - Exemple avec bccomp
  • Example#3134 - Exemple avec bcdiv
  • Example#3135 - Exemple avec bcmod
  • Example#3136 - bcmod aved des décimales
  • Example#3137 - Exemple avec bcmul
  • Example#3138 - bcpow exemple pour scale
  • Example#3139 - Exemple avec bcpow
  • Example#3140 - bcpow exemple pour scale
  • Example#3141 - Exemple avec bcscale
  • Example#3142 - Exemple avec bcsqrt
  • Example#3143 - Exemple avec bcsub
  • Example#3144 - Factorielle avec GMP
  • Example#3145 - Exemple avec gmp_abs
  • Example#3146 - Exemple avec gmp_add
  • Example#3147 - Exemple avec gmp_and
  • Example#3148 - Exemple avec gmp_clrbit
  • Example#3149 - Exemple avec gmp_cmp
  • Example#3150 - Exemple avec gmp_com
  • Example#3151 - Exemple avec gmp_div_q
  • Example#3152 - Division de nombres GMP
  • Example#3153 - Exemple avec gmp_div_r
  • Example#3154 - Exemple avec gmp_divexact
  • Example#3155 - Exemple avec gmp_export
  • Example#3156 - Exemple avec gmp_fact
  • Example#3157 - Exemple avec gmp_gcd
  • Example#3158 - Résolution d'une équation Diophantine linéaire
  • Example#3159 - Exemple avec gmp_hamdist
  • Example#3160 - Exemple avec gmp_import
  • Example#3161 - Création d'un nombre GMP
  • Example#3162 - Exemple avec gmp_intval
  • Example#3163 - Exemple avec gmp_invert
  • Example#3164 - Exemple avec gmp_jacobi
  • Example#3165 - Exemple avec gmp_legendre
  • Example#3166 - Exemple avec gmp_mod
  • Example#3167 - Exemple avec gmp_mul
  • Example#3168 - Exemple avec gmp_neg
  • Example#3169 - Exemple avec gmp_nextprime
  • Example#3170 - Exemple avec gmp_or
  • Example#3171 - Exemple avec gmp_perfect_square
  • Example#3172 - Exemple avec gmp_popcount
  • Example#3173 - Exemple avec gmp_pow
  • Example#3174 - Exemple avec gmp_powm
  • Example#3175 - Exemple avec gmp_prob_prime
  • Example#3176 - Exemple avec gmp_random_bits
  • Example#3177 - Exemple avec gmp_random_range
  • Example#3178 - Exemple avec gmp_random_seed
  • Example#3179 - Exemple avec gmp_random
  • Example#3180 - Exemple avec gmp_scan0
  • Example#3181 - Exemple avec gmp_scan1
  • Example#3182 - Exemple avec gmp_setbit - index 0
  • Example#3183 - Exemple avec gmp_setbit - index 1
  • Example#3184 - Exemple avec gmp_setbit - annule un octet
  • Example#3185 - Exemple avec gmp_sign
  • Example#3186 - Exemple avec gmp_sqrt
  • Example#3187 - Exemple avec gmp_sqrtrem
  • Example#3188 - Convertir un nombre GMP en chaîne de caractères
  • Example#3189 - Exemple avec gmp_sub
  • Example#3190 - Exemple avec gmp_testbit
  • Example#3191 - Exemple avec gmp_xor
  • Example#3192 - Exemple avec abs
  • Example#3193 - Exemple avec base_convert
  • Example#3194 - Exemple avec bindec
  • Example#3195 - bindec interprète l'entrée comme un entier non-signé
  • Example#3196 - Exemple avec ceil
  • Example#3197 - Exemple avec cos
  • Example#3198 - Exemple avec decbin
  • Example#3199 - Exemple avec dechex
  • Example#3200 - Exemple avec la fonction dechex avec de gros entiers
  • Example#3201 - Exemple avec decoct
  • Example#3202 - Exemple avec deg2rad
  • Example#3203 - Exemple avec exp
  • Example#3204 - Using fdiv
  • Example#3205 - Exemple avec floor
  • Example#3206 - Exemple avec fmod
  • Example#3207 - Exemple avec hexdec
  • Example#3208 - Exemple de intdiv
  • Example#3209 - Exemple de is_finite
  • Example#3210 - Exemple de is_infinite
  • Example#3211 - Exemple avec is_nan
  • Example#3212 - Exemple avec max
  • Example#3213 - Exemple avec min
  • Example#3214 - Exemple avec octdec
  • Example#3215 - Exemple avec pi
  • Example#3216 - Exemple avec pow
  • Example#3217 - Exemple avec rad2deg
  • Example#3218 - Exemple avec round
  • Example#3219 - Comment precision affecte un flottant
  • Example#3220 - Exemple avec mode
  • Example#3221 - Exemple avec mode et precision
  • Example#3222 - Exemple avec sin
  • Example#3223 - Exemple avec sqrt
  • Example#3224 - Exemple avec tan
  • Example#3225 - Évaluer un document FDF
  • Example#3226 - Ajout de code JavaScript à un document FDF
  • Example#3227 - Préremplir un formulaire PDF
  • Example#3228 - Enregistrement d'un fichier téléchargé
  • Example#3229 - Détecter tous les noms d'un formulaire FDF
  • Example#3230 - Accès aux données de formulaire FDF
  • Example#3231 - Accéder aux données du formulaire
  • Example#3232 - Lire un document FDF sous forme de chaîne de caractères
  • Example#3233 - Passer des données FDF à un second formulaire
  • Example#3234 - Exemple avec gnupg clearsign (Style procédural)
  • Example#3235 - Exemple avec gnupg clearsign (Style orienté objet)
  • Example#3236 - keylistiterator
  • Example#3237 - Exemple avec gnupg_adddecryptkey (Style procédural)
  • Example#3238 - Exemple avec gnupg_adddecryptkey (Style orienté objet)
  • Example#3239 - Exemple avec gnupg_addencryptkey (Style procédural)
  • Example#3240 - Exemple avec gnupg_addencryptkey (Style orienté objet)
  • Example#3241 - Exemple avec gnupg_addsignkey (Style procédural)
  • Example#3242 - Exemple avec gnupg_addsignkey (Style orienté objet)
  • Example#3243 - Exemple avec gnupg_cleardecryptkeys (Style procédural)
  • Example#3244 - Exemple avec gnupg_cleardecryptkeys (Style orienté objet)
  • Example#3245 - Exemple avec gnupg_clearencryptkeys (Style procédural)
  • Example#3246 - Exemple avec gnupg_clearencryptkeys (Style orienté objet)
  • Example#3247 - Exemple avec gnupg_clearsignkeys (Style procédural)
  • Example#3248 - Exemple avec gnupg_clearsignkeys (Style orienté objet)
  • Example#3249 - Exemple avec gnupg_decrypt (Style procédural)
  • Example#3250 - Exemple avec gnupg_decrypt (Style orienté objet)
  • Example#3251 - Exemple avec gnupg_decryptverify (Style procédural)
  • Example#3252 - Exemple avec gnupg_decryptverify (Style orienté objet)
  • Example#3253 - Procedural gnupg_deletekey example
  • Example#3254 - OO gnupg_deletekey example
  • Example#3255 - Exemple avec gnupg_encrypt (Style procédural)
  • Example#3256 - Exemple avec gnupg_encrypt (Style orienté objet)
  • Example#3257 - Exemple avec gnupg_encryptsign (Style procédural)
  • Example#3258 - Exemple avec gnupg_encryptsign (Style orienté objet)
  • Example#3259 - Exemple avec gnupg_export (Style procédural)
  • Example#3260 - Exemple avec gnupg_export (Style orienté objet)
  • Example#3261 - Procedural gnupg_getengineinfo example
  • Example#3262 - OO gnupg_getengineinfo example
  • Example#3263 - Exemple avec gnupg_geterror (Style procédural)
  • Example#3264 - Exemple avec gnupg_geterror (Style orienté objet)
  • Example#3265 - Procedural gnupg_geterrorinfo example
  • Example#3266 - OO gnupg_geterrorinfo example
  • Example#3267 - Exemple avec gnupg_getprotocol (Style procédural)
  • Example#3268 - Exemple avec gnupg_getprotocol (Style orienté objet)
  • Example#3269 - Procedural gnupg_gettrustlist example
  • Example#3270 - OO gnupg_gettrustlist example
  • Example#3271 - Exemple avec gnupg_import (Style procédural)
  • Example#3272 - Exemple avec gnupg_import (Style orienté objet)
  • Example#3273 - Exemple avec gnupg_init avec réglage par défaut (Style procédural)
  • Example#3274 - Exemple avec gnupg_init avec un nom de fichier et un répertoire d'origine surchargés (Style procédural)
  • Example#3275 - Exemple avec gnupg_init avec réglage par défaut (Style orienté objet)
  • Example#3276 - Exemple avec gnupg_init avec un nom de fichier et un répertoire d'origine surchargés (Style orienté objet)
  • Example#3277 - Exemple avec gnupg_keyinfo (Style procédural)
  • Example#3278 - Exemple avec gnupg_keyinfo (Style orienté objet)
  • Example#3279 - Procedural gnupg_listsignatures example
  • Example#3280 - OO gnupg_listsignatures example
  • Example#3281 - Exemple avec gnupg_setarmor (Style procédural)
  • Example#3282 - Exemple avec gnupg_setarmor (Style orienté objet)
  • Example#3283 - Exemple avec gnupg_seterrormode (Style procédural)
  • Example#3284 - Exemple avec gnupg_seterrormode (Style orienté objet)
  • Example#3285 - Exemple avec gnupg_setsignmode (Style procédural)
  • Example#3286 - Exemple avec gnupg_setsignmode (Style orienté objet)
  • Example#3287 - Exemple avec gnupg_sign (Style procédural)
  • Example#3288 - Exemple avec gnupg_sign (Style orienté objet)
  • Example#3289 - Exemple avec gnupg_verify (Style procédural)
  • Example#3290 - Exemple avec gnupg_verify (Style orienté objet)
  • Example#3291 - Création et utilisation d'un motif
  • Example#3292 - Création et utilisation d'un modèle PostScript
  • Example#3293 - Coupe un texte
  • Example#3294 - Dessin d'un rectangle
  • Example#3295 - Création et utilisation d'une tache de couleur
  • Example#3296 - Rotation d'un système de coordonnées
  • Example#3297 - Placement de texte à une position donnée
  • Example#3298 - Dessin d'une ligne pointillée
  • Example#3299 - Translation du système de coordonnées
  • Example#3300 - A rpmdbinfo example
  • Example#3301 - Searching for the package owning a file
  • Example#3302 - A rpminfo example
  • Example#3303 - Exemple
  • Example#3304 - Exemple
  • Example#3305 - Exemple
  • Example#3306 - Exemple
  • Example#3307 - Exemple
  • Example#3308 - Exemple
  • Example#3309 - Exemple
  • Example#3310 - Exemple
  • Example#3311 - Exemple
  • Example#3312 - example
  • Example#3313 - Exemple
  • Example#3314 - Exemple
  • Example#3315 - Exemple
  • Example#3316 - Exemple de setColumn
  • Example#3317 - Exemple de setRow
  • Example#3318 - Exemple de style d'alignement
  • Example#3319 - Exemple de style en gras
  • Example#3320 - Exemple de style en italique
  • Example#3321 - Exemple de style souligné
  • Example#3322 - Demandes incorrectes
  • Example#3323 - Exécution d'une demande dans la fonction de rappel d'une autre
  • Example#3324 - Exécution d'une demande depuis la fonction de rappel d'une autre
  • Example#3325 - Utilisation de eio et libevent
  • Example#3326 - Annulation d'une demande
  • Example#3327 - Appel de la fonction eio_chmod
  • Example#3328 - Fabrication d'une demande personnalisée
  • Example#3329 - Création d'un groupe de demandes
  • Example#3330 - Utilisation de eio avec libevent
  • Example#3331 - Utilisation de eio avec l'extension event
  • Example#3332 - Exemple avec eio_cancel
  • Example#3333 - Exemple avec eio_custom
  • Example#3334 - Exemple avec eio_event_loop
  • Example#3335 - eio_lstat example
  • Example#3336 - Utilisation de eio avec libevent
  • Example#3337 - Le regroupement des requêtes
  • Example#3338 - Exemple avec eio_grp
  • Example#3339 - Exemple avec eio_link
  • Example#3340 - Exemple avec eio_lstat
  • Example#3341 - Exemple avec eio_mkdir
  • Example#3342 - Exemple avec eio_mknod
  • Example#3343 - Exemple avec eio_nreqs
  • Example#3344 - Exempe avec eio_open
  • Example#3345 - Exemple avec eio_poll
  • Example#3346 - Exemple avec eio_read
  • Example#3347 - Exemple avec eio_readdir
  • Example#3348 - Exemple avec eio_readlink
  • Example#3349 - Exemple avec eio_realpath
  • Example#3350 - Exemple avec eio_rename
  • Example#3351 - Exemple avec eio_rmdir
  • Example#3352 - Exemple avec eio_stat
  • Example#3353 - Exemple avec eio_statvfs
  • Example#3354 - Exemple avec eio_symlink
  • Example#3355 - Exemple de minuteurs
  • Example#3356 - Minuteur périodique. Alerte toutes les 10.5 secondes
  • Example#3357 - Minuteur périodique. Utilisation de la fonction de rappel de reprogrammation
  • Example#3358 - Minuteur périodique. Alerte toutes les 10.5 secondes, en commençant maintenant
  • Example#3359 - Attend que STDIN devienne accessible en lecture
  • Example#3360 - Utilisation de quelques I/O asynchrones pour accéder à un socket
  • Example#3361 - Encapsule une boucle dans une autre
  • Example#3362 - Encapsule une boucle créée avec le backend kqueue dans la boucle par défaut
  • Example#3363 - Gestion du signal SIGTERM
  • Example#3364 - Surveillance des modifications dans /var/log/messages
  • Example#3365 - Surveillance des modifications dans /var/log/messages. On regarde les modifications avec une seconde de délai
  • Example#3366 - Modification du statut d'un processus
  • Example#3367 - Using reschedule callback
  • Example#3368 - Encapsule une boucle créée avec le backend kqueue dans la boucle par défaut
  • Example#3369 - Encapsule une boucle dans une autre
  • Example#3370 - Boucle embarqué créé avec le backend kqueue dans la boucle par défaut
  • Example#3371 - Encapsulage d'une boucle créée avec le gestionnaire kqueue dans la boucle par défaut
  • Example#3372 - Periodic timer. Use reschedule callback
  • Example#3373 - Timer périodique. Appelé toutes les 10.5 secondes
  • Example#3374 - Watcher chaque heure
  • Example#3375 - Gestion d'un signal SIGTERM
  • Example#3376 - Surveillance des modifications dans /var/log/messages
  • Example#3377 - Sruveillance des modifications dans le dossier /var/log/messages
  • Example#3378 - timers simples
  • Example#3379 - Surveillance des modifications dans of /var/log/messages. Détecte les mises à jour oubliées en ajoutant une seconde de délai
  • Example#3380 - Enregistre un Watcher I/O pour des sockets UDP
  • Example#3381 - Exemple d'Utilisation avec Expect
  • Example#3382 - Autre exemple d'utilisation d'Expect
  • Example#3383 - Exemple avec expect_expectl
  • Example#3384 - Exemple avec expect_popen
  • Example#3385 - Exemple de contrôle de processus
  • Example#3386 - Exemple avec pcntl_fork
  • Example#3387 - pcntl_rfork example
  • Example#3388 - Exemple avec pcntl_signal_dispatch
  • Example#3389 - Exemple avec pcntl_signal_get_handler
  • Example#3390 - Exemple avec pcntl_signal
  • Example#3391 - Exemple avec pcntl_sigprocmask
  • Example#3392 - Exemple avec pcntl_sigwaitinfo
  • Example#3393 - Exemple avec posix_access
  • Example#3394 - Exemple avec posix_ctermid
  • Example#3395 - posix_eaccess example
  • Example#3396 - posix_fpathconf example
  • Example#3397 - Exemple avec posix_get_last_error
  • Example#3398 - Exemple avec posix_getcwd
  • Example#3399 - Exemple avec posix_getegid
  • Example#3400 - Exemple avec posix_geteuid
  • Example#3401 - Exemple avec posix_getgid
  • Example#3402 - Exemple avec posix_getgrgid
  • Example#3403 - Exemple avec posix_getgrnam
  • Example#3404 - Exemple avec posix_getgroups
  • Example#3405 - Exemple avec posix_getlogin
  • Example#3406 - Exemple avec posix_getpgid
  • Example#3407 - Exemple avec posix_getpid
  • Example#3408 - Exemple avec posix_getppid
  • Example#3409 - Exemple avec posix_getpwnam
  • Example#3410 - Exemple avec posix_getpwuid
  • Example#3411 - Exemple avec posix_getrlimit
  • Example#3412 - Exemple avec posix_getsid
  • Example#3413 - Exemple avec posix_getuid
  • Example#3414 - Exemple avec posix_mknod
  • Example#3415 - posix_pathconf example
  • Example#3416 - Exemple avec posix_setegid
  • Example#3417 - Exemple avec posix_setgid
  • Example#3418 - Exemple avec posix_setuid
  • Example#3419 - Exemple avec posix_strerror
  • Example#3420 - posix_sysconf example
  • Example#3421 - Exemple avec posix_times
  • Example#3422 - Exemple avec posix_uname
  • Example#3423 - Exemple avec escapeshellarg
  • Example#3424 - Exemple avec escapeshellcmd
  • Example#3425 - Exemple avec exec
  • Example#3426 - Utilisation de proc_nice pour définir la priorité de processus à haute
  • Example#3427 - Exemple avec proc_open
  • Example#3428 - Bizarrerie de proc_open sur Windows
  • Example#3429 - Exemple avec shell_exec
  • Example#3430 - Exemple avec system
  • Example#3431 - Example showing Future as return value
  • Example#3432 - Example showing Future as synchronization point
  • Example#3433 - Parcours une partie de la table des propriétés
  • Example#3434 - Compte les propriétés d'un objet
  • Example#3435 - Héritage à l'exécution
  • Example#3436 - Détecte le statut de l'objet référencé
  • Example#3437 - Détecte le statut de l'objet référencé
  • Example#3438 - Fusionne l'objet threadé dans la table des propriétés
  • Example#3439 - Notifications et attente
  • Example#3440 - Notifications and Waiting
  • Example#3441 - Enlève le dernier élément depuis la table des propriétés d'un objet threadé
  • Example#3442 - Enlève le premier élément depuis la table de propriétés de l'objet threadé
  • Example#3443 - Synchronisation
  • Example#3444 - Notifications et attente
  • Example#3445 - Retourne l'identité du Thread ou du processus qui a créé le Thread référencé
  • Example#3446 - Retourne le thread actuellement en cours d'exécution
  • Example#3447 - Retourne l'identité du thread actuellement en cours d'exécution
  • Example#3448 - Retourne l'identité du Thread référencé
  • Example#3449 - Détecte le statut du Thread référencé
  • Example#3450 - Indique si le Thread référencé a été démarré
  • Example#3451 - Rejoint le Thread référencé
  • Example#3452 - Démarre les Threads
  • Example#3453 - A basic example of Worker::collect
  • Example#3454 - Un exemple de base de Worker::getStacked
  • Example#3455 - Détecte le statut d'un worker
  • Example#3456 - Eteint le worker référencé
  • Example#3457 - Empilage d'une tâche pour l'exécution sur un worker
  • Example#3458 - Supprime l'objet depuis la pile d'attente des Workers
  • Example#3459 - Un exemple de base de Pool::collect
  • Example#3460 - Création d'un Pool
  • Example#3461 - Shutting down a pool
  • Example#3462 - Soumission de tâches
  • Example#3463 - Soumission d'une tâche à un worker spécifique
  • Example#3464 - New immutability semantics of Threaded
  • Example#3465 - Volatile use-case
  • Example#3466 - Introduction à la mémoire partagée
  • Example#3467 - Fermeture d'un bloc de mémoire partagée
  • Example#3468 - Effacement d'un bloc de mémoire partagée
  • Example#3469 - Créer un nouveau bloc de mémoire partagée Shmop
  • Example#3470 - Lit un bloc de mémoire partagée
  • Example#3471 - Lit la taille d'un bloc de mémoire partagée
  • Example#3472 - Écrit un bloc de mémoire partagée
  • Example#3473 - Exemple avec SyncMutex::__construct et un mutex nommé avec un délai d'attente maximal pour le verrou
  • Example#3474 - Exemple avec SyncMutex::__construct et un mutex non nommé
  • Example#3475 - Exemple avec SyncMutex::lock
  • Example#3476 - Exemple avec SyncMutex::unlock
  • Example#3477 - Exemple avec SyncSemaphore::__construct
  • Example#3478 - Exemple avec SyncSemaphore::lock
  • Example#3479 - Exemple avec SyncSemaphore::unlock
  • Example#3480 - Exemple avec SyncEvent::__construct
  • Example#3481 - Exemple avec SyncEvent::fire
  • Example#3482 - Exemple avec SyncEvent::reset
  • Example#3483 - Exemple avec SyncEvent::wait
  • Example#3484 - Exemple avec SyncReaderWriter::__construct
  • Example#3485 - Exemple avec SyncReaderWriter::readlock
  • Example#3486 - Exemple avec SyncReaderWriter::readunlock
  • Example#3487 - Exemple avec SyncReaderWriter::writelock
  • Example#3488 - Exemple avec SyncReaderWriter::writeunlock
  • Example#3489 - SyncSharedMemory::__construct example
  • Example#3490 - SyncSharedMemory::first example
  • Example#3491 - SyncSharedMemory::__construct example
  • Example#3492 - SyncSharedMemory::size example
  • Example#3493 - SyncSharedMemory::write example
  • Example#3494 - Exemple avec geoip_asnum_by_name
  • Example#3495 - Exemple avec geoip_continent_code_by_name
  • Example#3496 - Exemple avec geoip_country_code_by_name
  • Example#3497 - Exemple avec geoip_country_code3_by_name
  • Example#3498 - Exemple avec geoip_country_name_by_name
  • Example#3499 - Exemple avec geoip_database_info
  • Example#3500 - Exemple avec geoip_db_avail
  • Example#3501 - Exemple avec geoip_db_filename
  • Example#3502 - Exemple avec geoip_db_get_all_info
  • Example#3503 - Exemple avec geoip_db_get_all_info
  • Example#3504 - Exemple avec geoip_domain_by_name
  • Example#3505 - Exemple avec geoip_id_by_name
  • Example#3506 - Exemple avec geoip_isp_by_name
  • Example#3507 - Exemple avec geoip_netspeedcell_by_name
  • Example#3508 - Exemple avec geoip_org_by_name
  • Example#3509 - Exemple avec geoip_record_by_name
  • Example#3510 - Exemple avec geoip_region_by_name
  • Example#3511 - Exemple avec geoip_region_name_by_code pour les USA et le Canada
  • Example#3512 - Exemple avec geoip_region_name_by_code en utilisant les codes FIPS
  • Example#3513 - Exemple avec geoip_setup_custom_directory
  • Example#3514 - Exemple avec geoip_time_zone_by_country_and_region pour les USA et Canada
  • Example#3515 - Exemple avec geoip_time_zone_by_country_and_region et les codes FIPS
  • Example#3516 - xor.data file
  • Example#3517 - Simple train
  • Example#3518 - Simple test
  • Example#3519 - Exemple avec fann_create_train_from_callback
  • Example#3520 - Exemple avec fann_read_train_from_file
  • Example#3521 - igbinary_serialize example
  • Example#3522 - Exemple avec JsonSerializable::jsonSerialize retournant un tableau
  • Example#3523 - Exemple avec JsonSerializable::jsonSerialize retournant un tableau associatif
  • Example#3524 - Exemple avec JsonSerializable::jsonSerialize retournant un entier
  • Example#3525 - Exemple avec JsonSerializable::jsonSerialize retournant une chaîne de caractères
  • Example#3526 - Exemple avec json_decode
  • Example#3527 - Accès à des propriétés d'objet invalides
  • Example#3528 - Erreurs habituelles lors de l'utilisation de la fonction json_decode
  • Example#3529 - Erreurs avec le paramètre depth
  • Example#3530 - Exemple avec json_decode et de gros entiers
  • Example#3531 - Exemple avec json_encode
  • Example#3532 - Exemple avec json_encode montrant quelques drapeaux en action
  • Example#3533 - Exemple avec l'option JSON_NUMERIC_CHECK
  • Example#3534 - Exemple avec un tableau séquentiel et un tableau non-séquentiel
  • Example#3535 - Exemple avec l'option JSON_PRESERVE_ZERO_FRACTION
  • Example#3536 - Exemple avec json_last_error
  • Example#3537 - json_last_error avec json_encode
  • Example#3538 - json_last_error et JSON_THROW_ON_ERROR
  • Example#3539 - json_validate examples
  • Example#3540 - simdjson_decode examples
  • Example#3541 - Accessing invalid object properties
  • Example#3542 - common mistakes using simdjson_decode
  • Example#3543 - depth errors
  • Example#3544 - simdjson_decode of large integers
  • Example#3545 - simdjson_decode examples
  • Example#3546 - depth errors
  • Example#3547 - Exemple avec Lua::assign
  • Example#3548 - Exemple avec Lua::call
  • Example#3549 - Exemple avec Lua::eval
  • Example#3550 - Exemple avec Lua::registerCallback
  • Example#3551 - Exemple avec LuaClosure::__invoke
  • Example#3552 - Execute some Lua code
  • Example#3553 - Calling a Lua function
  • Example#3554 - Profiling Lua code
  • Example#3555 - Loading code into Lua
  • Example#3556 - Manipulating the usage timer
  • Example#3557 - Registering PHP functions to call from Lua
  • Example#3558 - Calling a Lua function
  • Example#3559 - Calling a Lua function
  • Example#3560 - Utilisation de la fonction constant avec des constantes
  • Example#3561 - Utilisation de la fonction constant avec des types enum (à partir de PHP 8.1.0)
  • Example#3562 - Définition d'une constante
  • Example#3563 - Constantes avec des Noms Réservés
  • Example#3564 - Vérifier la présence de constantes avec defined
  • Example#3565 - Vérification des types enum (à partir de PHP 8.1.0)
  • Example#3566 - Exemple avec eval - concaténation de texte
  • Example#3567 - Exemple avec exit
  • Example#3568 - Exemple avec exit et un code d'erreur
  • Example#3569 - Exemple d'exécution des fonctions d'extinction et des destructeurs d'objets
  • Example#3570 - Exemple avec get_browser : liste des capacités du navigateur du client web
  • Example#3571 - Exemple avec __halt_compiler
  • Example#3572 - Exemple avec highlight_string
  • Example#3573 - hrtime usage
  • Example#3574 - Exemple avec ignore_user_abort
  • Example#3575 - Exemple avec pack
  • Example#3576 - Exemple avec php_strip_whitespace
  • Example#3577 - Basic sapi_windows_generate_ctrl_event Usage
  • Example#3578 - Basic sapi_windows_set_ctrl_handler Usage
  • Example#3579 - sapi_windows_vt100_support default state
  • Example#3580 - sapi_windows_vt100_support changing state
  • Example#3581 - Example usage of VT100 support enabled
  • Example#3582 - Exemple avec sleep
  • Example#3583 - Exemple avec sys_getloadavg
  • Example#3584 - Exemple avec time_nanosleep
  • Example#3585 - Exemple avec time_sleep_until
  • Example#3586 - Exemple avec uniqid
  • Example#3587 - Exemple avec unpack
  • Example#3588 - Exemple avec unpack et un argument de répétition
  • Example#3589 - Exemple avec unpack avec des clés non nommées
  • Example#3590 - Exemple avec usleep
  • Example#3591 - Exemple Random
  • Example#3592 - Exemple avec mt_rand
  • Example#3593 - Exemple avec rand
  • Example#3594 - Exemple avec random_bytes
  • Example#3595 - Exemple avec random_int
  • Example#3596 - Random\Randomizer::__construct example
  • Example#3597 - Random\Randomizer::getBytes example
  • Example#3598 - Random\Randomizer::getBytesFromString example
  • Example#3599 - Generate a random code for multi-factor authentication
  • Example#3600 - Select from a string with a non-uniform distribution
  • Example#3601 - Random\Randomizer::getFloat example
  • Example#3602 - Random\Randomizer::getInt example
  • Example#3603 - Random\Randomizer::nextFloat example
  • Example#3604 - Incorrect scaling using an affine transformation
  • Example#3605 - Random\Randomizer::nextInt example
  • Example#3606 - Random\Randomizer::pickArrayKeys example
  • Example#3607 - Picking random values
  • Example#3608 - Random\Randomizer::__serialize example
  • Example#3609 - Random\Randomizer::shuffleArray example
  • Example#3610 - Random\Randomizer::shuffleBytes example
  • Example#3611 - Byte-wise shuffling breaks Unicode characters
  • Example#3612 - Random\Randomizer::__unserialize example
  • Example#3613 - Exemple de Random\Engine::generate
  • Example#3614 - Random\Engine\Mt19937::__construct example
  • Example#3615 - Random\Engine\Mt19937::__debugInfo example
  • Example#3616 - Random\Engine\Mt19937::__serialize example
  • Example#3617 - Random\Engine\Mt19937::__unserialize example
  • Example#3618 - Random\Engine\PcgOneseq128XslRr64::__construct example
  • Example#3619 - Deriving a seed from a chaîne de caractères
  • Example#3620 - Random\Engine\PcgOneseq128XslRr64::__debugInfo example
  • Example#3621 - Random\Engine\PcgOneseq128XslRr64::jump example
  • Example#3622 - Randomizer methods may call the engine more than once
  • Example#3623 - Random\Engine\PcgOneseq128XslRr64::__serialize example
  • Example#3624 - Random\Engine\PcgOneseq128XslRr64::__unserialize example
  • Example#3625 - Random\Engine\Xoshiro256StarStar::__construct example
  • Example#3626 - Deriving a seed from a chaîne de caractères
  • Example#3627 - Random\Engine\Xoshiro256StarStar::__debugInfo example
  • Example#3628 - Random\Engine\Xoshiro256StarStar::jump example
  • Example#3629 - Random\Engine\Xoshiro256StarStar::jumpLong example
  • Example#3630 - Random\Engine\Xoshiro256StarStar::__serialize example
  • Example#3631 - Random\Engine\Xoshiro256StarStar::__unserialize example
  • Example#3632 - Get and set base path
  • Example#3633 - Get and set logger
  • Example#3634 - Fast write log
  • Example#3635 - Fast count some type of log count value
  • Example#3636 - Acquisit some type of log list
  • Example#3637 - seaslog_get_author example
  • Example#3638 - seaslog_get_version example
  • Example#3639 - SeasLog::alert example
  • Example#3640 - SeasLog::analyzerCount example
  • Example#3641 - SeasLog::analyzerDetail example
  • Example#3642 - SeasLog::closeLoggerStream example
  • Example#3643 - SeasLog::__construct example
  • Example#3644 - SeasLog::critical example
  • Example#3645 - SeasLog::debug example
  • Example#3646 - SeasLog::__destruct example
  • Example#3647 - SeasLog::emergency example
  • Example#3648 - SeasLog::error example
  • Example#3649 - SeasLog::flushBuffer example
  • Example#3650 - SeasLog::getBasePath example
  • Example#3651 - SeasLog::getBuffer example
  • Example#3652 - SeasLog::getBufferEnabled example
  • Example#3653 - SeasLog::getDatetimeFormat example
  • Example#3654 - SeasLog::getLastLogger example
  • Example#3655 - SeasLog::getRequestID example
  • Example#3656 - SeasLog::getRequestVariable example
  • Example#3657 - SeasLog::info example
  • Example#3658 - SeasLog::log example
  • Example#3659 - SeasLog::notice example
  • Example#3660 - SeasLog::setBasePath example
  • Example#3661 - SeasLog::setDatetimeFormat example
  • Example#3662 - SeasLog::setLogger example
  • Example#3663 - SeasLog::setRequestID example
  • Example#3664 - SeasLog::setRequestVariable example
  • Example#3665 - SeasLog::warning example
  • Example#3666 - Exemple de SplStack
  • Example#3667 - Exemple de SplQueue
  • Example#3668 - Traiter efficacement les tâches avec SplQueue
  • Example#3669 - Exemple avec SplFixedArray
  • Example#3670 - Exemple avec SplFixedArray::__construct
  • Example#3671 - Exemple avec SplFixedArray::count
  • Example#3672 - Exemple avec SplFixedArray::fromArray
  • Example#3673 - Exemple avec SplFixedArray::getSize
  • Example#3674 - Exemple avec SplFixedArray::setSize
  • Example#3675 - Exemple avec SplFixedArray::toArray
  • Example#3676 - Exemple avec SplObjectStorage, sous forme d'ensemble d'objets
  • Example#3677 - Exemple avec SplObjectStorage, sous forme de carte
  • Example#3678 - Exemple avec SplObjectStorage::addAll
  • Example#3679 - Exemple avec SplObjectStorage::attach
  • Example#3680 - Exemple avec SplObjectStorage::contains
  • Example#3681 - Exemple avec SplObjectStorage::count
  • Example#3682 - Exemple avec SplObjectStorage::current
  • Example#3683 - Exemple avec SplObjectStorage::detach
  • Example#3684 - Exemple avec SplObjectStorage::getHash
  • Example#3685 - Exemple avec SplObjectStorage::getInfo
  • Example#3686 - Exemple avec SplObjectStorage::key
  • Example#3687 - Exemple avec SplObjectStorage::next
  • Example#3688 - Exemple avec SplObjectStorage::offsetExists
  • Example#3689 - Exemple avec SplObjectStorage::offsetGet
  • Example#3690 - Exemple avec SplObjectStorage::offsetSet
  • Example#3691 - Exemple avec SplObjectStorage::offsetUnset
  • Example#3692 - Exemple avec SplObjectStorage::removeAll
  • Example#3693 - Exemple avec SplObjectStorage::removeAllExcept
  • Example#3694 - Exemple avec SplObjectStorage::rewind
  • Example#3695 - Exemple avec SplObjectStorage::serialize
  • Example#3696 - Exemple avec SplObjectStorage::setInfo
  • Example#3697 - Exemple avec SplObjectStorage::unserialize
  • Example#3698 - Exemple avec SplObjectStorage::valid
  • Example#3699 - Exemple avec AppendIterator::append
  • Example#3700 - Itère un AppendIterator avec la structure foreach
  • Example#3701 - Itère un AppendIterator avec l'API AppendIterator
  • Example#3702 - Exemple avec AppendIterator.getIteratorIndex
  • Example#3703 - Exemple avec AppendIterator::key
  • Example#3704 - Exemple avec ArrayIterator::current
  • Example#3705 - Exemple avec ArrayIterator::key
  • Example#3706 - Exemple avec ArrayIterator::next
  • Example#3707 - Exemple avec ArrayIterator::rewind
  • Example#3708 - Exemple avec ArrayIterator::valid
  • Example#3709 - Exemple avec CachingIterator::getCache
  • Example#3710 - Arguments disponibles pour la fonction de rappel
  • Example#3711 - Exemples simples de fonction de rappel
  • Example#3712 - Exemple avec DirectoryIterator::__construct
  • Example#3713 - Exemple avec DirectoryIterator::current
  • Example#3714 - Exemple avec DirectoryIterator::getBasename
  • Example#3715 - Exemple avec DirectoryIterator::getExtension
  • Example#3716 - Exemple avec DirectoryIterator::getFilename
  • Example#3717 - Exemple avec DirectoryIterator::isDot
  • Example#3718 - Exemple avec DirectoryIterator::key
  • Example#3719 - Exemple avec DirectoryIterator::next
  • Example#3720 - Exemple avec DirectoryIterator::rewind
  • Example#3721 - Exemple avec DirectoryIterator::seek
  • Example#3722 - Exemple avec DirectoryIterator::__toString
  • Example#3723 - Exemple avec DirectoryIterator::valid
  • Example#3724 - Exemple avec FilesystemIterator::__construct
  • Example#3725 - Exemple avec FilesystemIterator::current
  • Example#3726 - Exemple avec FilesystemIterator::key
  • Example#3727 - Exemple avec FilesystemIterator::next
  • Example#3728 - Exemple avec FilesystemIterator::rewind
  • Example#3729 - Exemple avec FilesystemIterator::key
  • Example#3730 - Exemple avec FilterIterator::accept
  • Example#3731 - Exemple avec GlobIterator
  • Example#3732 - Exemple avec GlobIterator::count
  • Example#3733 - Exemple avec InfiniteIterator::__construct
  • Example#3734 - Exemple d'utilisation de LimitIterator
  • Example#3735 - Exemple LimitIterator::__construct
  • Example#3736 - Exemple LimitIterator::getPosition
  • Example#3737 - Itère un MultipleIterator
  • Example#3738 - Exemple avec NoRewindIterator::__construct
  • Example#3739 - Exemple avec NoRewindIterator::rewind
  • Example#3740 - Exemple avec RecursiveArrayIterator::getChildren
  • Example#3741 - Exemple avec RecursiveArrayIterator::hasChildren
  • Example#3742 - Arguments disponibles pour la fonction de rappel
  • Example#3743 - Exemple simple d'une fonction de rappel récursive
  • Example#3744 - Exemple avec RecursiveCallbackFilterIterator::hasChildren
  • Example#3745 - Exemple avec RecursiveDirectoryIterator
  • Example#3746 - Exemple getSubPath
  • Example#3747 - Exemple getSubPathname
  • Example#3748 - Exemple avec RecursiveFilterIterator
  • Example#3749 - Exemple avec RecursiveFilterIterator
  • Example#3750 - Parcours d'un RecursiveIteratorIterator
  • Example#3751 - Exemple avec RecursiveRegexIterator::__construct
  • Example#3752 - Exemple avec RecursiveRegexIterator::getChildren
  • Example#3753 - Exemple avec RecursiveRegexIterator::hasChildren
  • Example#3754 - Exemple avec RegexIterator::accept
  • Example#3755 - Exemple avec RegexIterator::__construct
  • Example#3756 - Exemple avec RegexIterator::getFlags
  • Example#3757 - Exemple avec RegexIterator::getMode
  • Example#3758 - Exemple avec RegexIterator::getPregFlags
  • Example#3759 - Exemple avec RegexIterator::setFlags
  • Example#3760 - Exemple avec RegexIterator::setMode
  • Example#3761 - Exemple avec RegexIterator::setPregFlags
  • Example#3762 - Exemple avec Countable::count
  • Example#3763 - Utilisation simple
  • Example#3764 - Exemple avec SeekableIterator::seek
  • Example#3765 - Exemple avec class_implements
  • Example#3766 - Exemple avec class_parents
  • Example#3767 - Exemples pour class_uses
  • Example#3768 - Exemple avec iterator_apply
  • Example#3769 - Exemple avec iterator_count
  • Example#3770 - Exemple avec iterator_count qui modifie la position
  • Example#3771 - Exemple avec iterator_count dans une boucle foreach
  • Example#3772 - Exemple avec iterator_to_array
  • Example#3773 - Exemple avec spl_autoload_extensions
  • Example#3774 - Exemple avec spl_autoload_register comme remplacement d'une fonction __autoload
  • Example#3775 - Exemple avec spl_autoload_register où la classe n'est pas chargée
  • Example#3776 - L'identifiant sera fourni sans le backslash initial.
  • Example#3777 - Exemple avec spl_classes
  • Example#3778 - Exemple avec spl_object_hash
  • Example#3779 - Un exemple de spl_object_id
  • Example#3780 - Exemple avec SplFileInfo::__construct
  • Example#3781 - Exemple avec SplFileInfo::getATime
  • Example#3782 - Exemple avec SplFileInfo::getBasename
  • Example#3783 - Exemple avec SplFileInfo::getCTime
  • Example#3784 - Exemple avec SplFileInfo::getExtension
  • Example#3785 - Exemple avec SplFileInfo::getFilename
  • Example#3786 - Exemple avec SplFileInfo::getGroup
  • Example#3787 - Exemple avec SplFileInfo::getLinkTarget
  • Example#3788 - Exemple avec SplFileInfo::getMTime
  • Example#3789 - Exemple avec SplFileInfo::getOwner
  • Example#3790 - Exemple avec SplFileInfo::getPath
  • Example#3791 - Exemple avec SplFileInfo::getPathInfo
  • Example#3792 - Exemple avec SplFileInfo::getPathname
  • Example#3793 - Exemple avec SplFileInfo::getPerms
  • Example#3794 - Exemple avec SplFileInfo::getRealPath
  • Example#3795 - Exemple avec SplFileInfo::getSize
  • Example#3796 - Exemple avec SplFileInfo::getType
  • Example#3797 - Exemple avec SplFileInfo::isDir
  • Example#3798 - Exemple avec SplFileInfo::isExecutable
  • Example#3799 - Exemple avec SplFileInfo::isFile
  • Example#3800 - Exemple avec SplFileInfo::isLink
  • Example#3801 - Exemple avec SplFileInfo::isReadable
  • Example#3802 - Exemple avec SplFileInfo::isWriteable
  • Example#3803 - Exemple avec SplFileInfo::openFile
  • Example#3804 - Exemple avec SplFileInfo::setFileClass
  • Example#3805 - Exemple avec SplFileInfo::setFileClass
  • Example#3806 - Exemple avec SplFileInfo::__toString
  • Example#3807 - Exemple avec SplFileObject::__construct
  • Example#3808 - Exemple avec SplFileObject::current
  • Example#3809 - Exemple avec SplFileObject::eof
  • Example#3810 - Exemple avec SplFileObject::fflush
  • Example#3811 - Exemple avec SplFileObject::fgetc
  • Example#3812 - Exemple avec SplFileObject::fgetcsv
  • Example#3813 - Exemple avec SplFileObject::READ_CSV
  • Example#3814 - Exemple avec SplFileObject::fgets
  • Example#3815 - Exemple avec SplFileObject::fgetss
  • Example#3816 - Exemple avec SplFileObject::flock
  • Example#3817 - Exemple avec SplFileObject::fpassthru
  • Example#3818 - Exemple avec SplFileObject::fputcsv
  • Example#3819 - Exemple avec SplFileObject::fread
  • Example#3820 - Exemple avec SplFileObject::fscanf
  • Example#3821 - Exemple avec SplFileObject::fseek
  • Example#3822 - Exemple avec SplFileObject::fstat
  • Example#3823 - Exemple avec SplFileObject::ftell
  • Example#3824 - Exemple avec SplFileObject::ftruncate
  • Example#3825 - Exemple avec SplFileObject::fwrite
  • Example#3826 - Exemple avec SplFileObject::getCsvControl
  • Example#3827 - Exemple avec SplFileObject::getFlags
  • Example#3828 - Exemple avec SplFileObject::getMaxLineLen
  • Example#3829 - Exemple avec SplFileObject::key
  • Example#3830 - Exemple avec SplFileObject::key et SplFileObject::setMaxLineLen
  • Example#3831 - Exemple avec SplFileObject::next
  • Example#3832 - Exemple avec SplFileObject::rewind
  • Example#3833 - Exemple avec SplFileObject::seek
  • Example#3834 - Exemple avec SplFileObject::setCsvControl
  • Example#3835 - Exemple avec SplFileObject::setFlags
  • Example#3836 - Exemple avec SplFileObject::setMaxLineLen
  • Example#3837 - Exemple avec SplFileObject::valid
  • Example#3838 - Exemple avec SplTempFileObject
  • Example#3839 - Exemple avec ArrayObject::append
  • Example#3840 - Exemple avec ArrayObject::asort
  • Example#3841 - Exemple avec ArrayObject::__construct
  • Example#3842 - Exemple avec ArrayObject::count
  • Example#3843 - Exemple avec ArrayObject::exchangeArray
  • Example#3844 - Exemple avec ArrayObject::getArrayCopy
  • Example#3845 - Exemple avec ArrayObject::getFlags
  • Example#3846 - Exemple avec ArrayObject::getIterator
  • Example#3847 - Exemple avec ArrayObject::getIteratorClass
  • Example#3848 - Exemple avec ArrayObject::ksort
  • Example#3849 - Exemple avec ArrayObject::natcasesort
  • Example#3850 - Exemple avec ArrayObject::natsort
  • Example#3851 - Exemple avec ArrayObject::offsetExists
  • Example#3852 - Exemple avec ArrayObject::offsetGet
  • Example#3853 - Exemple avec ArrayObject::offsetSet
  • Example#3854 - Exemple avec ArrayObject::offsetUnset
  • Example#3855 - Exemple avec ArrayObject::serialize
  • Example#3856 - Exemple avec ArrayObject::setFlags
  • Example#3857 - Exemple avec ArrayObject::setIteratorClass
  • Example#3858 - Exemple avec ArrayObject::uasort
  • Example#3859 - Exemple avec ArrayObject::uksort
  • Example#3860 - Exemples avec file_get_contents
  • Example#3861 - Envoi d'une requête de type POST sur un serveur sécurisé
  • Example#3862 - Écrire des données dans un fichier compressé
  • Example#3863 - Un flux pour lire et écrire des variables globales
  • Example#3864 - Liste des fichiers d'une archive tar
  • Example#3865 - Exemple avec stream_bucket_prepend
  • Example#3866 - Exemple avec stream_context_create
  • Example#3867 - Exemple avec stream_context_get_default
  • Example#3868 - Exemple avec stream_context_get_options
  • Example#3869 - Exemple avec stream_context_get_params
  • Example#3870 - Exemple avec stream_context_set_default
  • Example#3871 - stream_context_set_options example
  • Example#3872 - Exemple avec stream_copy_to_stream
  • Example#3873 - Contrôler l'application des filtres
  • Example#3874 - Filtre sur les lettres majuscules sur le flux foo-bar.txt
  • Example#3875 - Enregistrement d'une classe de filtre générique pour correspondre avec de multiples noms de filtres
  • Example#3876 - Refiltrage dynamique d'un flux
  • Example#3877 - Exemple avec stream_get_contents
  • Example#3878 - Exemple avec stream_get_filters
  • Example#3879 - Exemple de stream_get_meta_data utilisant fopen avec http
  • Example#3880 - Exemple de stream_get_meta_data utilisant stream_socket_client avec https
  • Example#3881 - Exemple avec stream_get_transports
  • Example#3882 - Exemple avec stream_get_wrappers
  • Example#3883 - Vérification de l'existence d'un gestionnaire de flux
  • Example#3884 - Exemple avec stream_is_local
  • Example#3885 - Exemple avec stream_isatty
  • Example#3886 - Exemple avec stream_notification_callback
  • Example#3887 - Barre de progression simple pour un client de téléchargement en ligne de commande
  • Example#3888 - Exemple avec stream_resolve_include_path
  • Example#3889 - Exemple avec stream_select
  • Example#3890 - Exemple avec stream_set_timeout
  • Example#3891 - Exemple avec stream_set_write_buffer
  • Example#3892 - Exemple avec stream_socket_client
  • Example#3893 - Utilisation de connexions UDP
  • Example#3894 - Exemple avec stream_socket_enable_crypto
  • Example#3895 - Exemple avec stream_socket_pair
  • Example#3896 - Exemple avec stream_socket_recvfrom
  • Example#3897 - Exemple avec stream_socket_sendto
  • Example#3898 - Exemple avec stream_socket_server
  • Example#3899 - Utiliser un serveur de socket UDP
  • Example#3900 - Exemple avec stream_socket_shutdown
  • Example#3901 - Comment enregistrer un gestionnaire de flux
  • Example#3902 - Utilisation de base de Tidy
  • Example#3903 - Exemple avec tidy::getBody
  • Example#3904 - Exemple avec tidy::cleanrepair
  • Example#3905 - Exemple avec tidy::__construct
  • Example#3906 - Exemple avec tidy::diagnose
  • Example#3907 - Exemple avec tidy_get_error_buffer
  • Example#3908 - Exemple avec tidy::getConfig
  • Example#3909 - Exemple avec Tidy::getopt
  • Example#3910 - Affichage de toutes les options avec leur documentation et leur valeur par défaut
  • Example#3911 - Exemple avec tidy::getStatus
  • Example#3912 - Exemple avec tidy::head
  • Example#3913 - Exemple avec tidy::html
  • Example#3914 - Exemple avec tidy::parseFile
  • Example#3915 - Exemple avec tidy::parseString
  • Example#3916 - Exemple avec tidy::repairFile
  • Example#3917 - Exemple avec tidy::repairString
  • Example#3918 - Exemple avec tidy::root
  • Example#3919 - Exemple avec tidyNode::hasChildren
  • Example#3920 - Exemple avec tidyNode::hasChildren
  • Example#3921 - Exemple avec tidyNode::hasSiblings
  • Example#3922 - Extrait di code ASP depuis un document HTML mixte
  • Example#3923 - Extrait les commentais depuis un document HTML
  • Example#3924 - Extrait du code HTML depuis un document mixte
  • Example#3925 - Extrait du code JSTE depuis un document HTML
  • Example#3926 - Récupération de code PHP dans un document HTML
  • Example#3927 - Extrait du texte depuis un document HTML mixte
  • Example#3928 - Exemple avec ob_tidyhandler
  • Example#3929 - Exemple avec tidy_access_count
  • Example#3930 - Exemple avec tidy_config_count
  • Example#3931 - Exemple avec tidy_error_count
  • Example#3932 - Exemple avec tidy_get_output
  • Example#3933 - Exemple avec tidy_warning_count
  • Example#3934 - Supprime les commentaires avec le tokenizer
  • Example#3935 - PhpToken::getTokenName example
  • Example#3936 - PhpToken::is example
  • Example#3937 - Usage with array
  • Example#3938 - PhpToken::isIgnorable example
  • Example#3939 - PhpToken::__toString example
  • Example#3940 - PhpToken::tokenize example
  • Example#3941 - Extending PhpToken
  • Example#3942 - Exemple avec token_get_all
  • Example#3943 - Exemple d'utilisation incorrecte de la fonction token_get_all
  • Example#3944 - token_get_all dans une classe en utilisant un mot réservé
  • Example#3945 - Exemple avec token_name
  • Example#3946 - Exemple avec base64_decode
  • Example#3947 - Exemple avec base64_encode
  • Example#3948 - Exemple avec get_headers
  • Example#3949 - Exemple avec get_headers en utilisant HEAD
  • Example#3950 - Ce que la fonction get_meta_tags analyse
  • Example#3951 - Ce que la fonction get_meta_tags retourne
  • Example#3952 - Utilisation simple de http_build_query
  • Example#3953 - http_build_query avec tableau indexé
  • Example#3954 - http_build_query avec tableau complexe
  • Example#3955 - Utilisation de http_build_query avec un objet
  • Example#3956 - Exemple avec parse_url
  • Example#3957 - Exemple avec la fonction parse_url sans schéma
  • Example#3958 - Exemple avec rawurldecode
  • Example#3959 - Exemple avec rawurlencode
  • Example#3960 - Exemple avec rawurlencode
  • Example#3961 - Exemple avec urldecode
  • Example#3962 - Exemple avec urlencode
  • Example#3963 - Exemple avec urlencode et htmlentities
  • Example#3964 - Exécution d'un Javascript simple
  • Example#3965 - Exemples Yaml
  • Example#3966 - Exemple d'analyse de fonction de rappel
  • Example#3967 - Exemple d'émission des fonctions de rappel
  • Example#3968 - Exemple yaml_emit
  • Example#3969 - Exemple yaml_parse
  • Example#3970 - Une architecture classique d'une application
  • Example#3971 - Entry
  • Example#3972 - Règle de ré-écriture des requêtes
  • Example#3973 - Configuration de l'application
  • Example#3974 - Controlleur par défaut
  • Example#3975 - Template de rendu par défaut
  • Example#3976 - Exécution de l'application
  • Example#3977 - Exemple avec un tableau PHP
  • Example#3978 - Exemple avec un fichier ini
  • Example#3979 - Exemple avec A Bootstrap
  • Example#3980 - Exemple avec Yaf_Application::bootstrap
  • Example#3981 - Exemple avec Yaf_Application::clearLastError
  • Example#3982 - Un exemple de fichier de configuration au format ini
  • Example#3983 - Exemple avec Yaf_Application::__construct
  • Example#3984 - Exemple avec Yaf_Application::__construct
  • Example#3985 - Exemple avec Yaf_Application::environ
  • Example#3986 - Exemple avec Yaf_Application::execute
  • Example#3987 - Exemple avec Yaf_Application::getConfig
  • Example#3988 - Exemple avec Yaf_Application::getDispatcher
  • Example#3989 - Exemple avec Yaf_Application::getLastErrorMsg
  • Example#3990 - Exemple avec Yaf_Application::getLastErrorNo
  • Example#3991 - Exemple avec Yaf_Application::getModules
  • Example#3992 - Bootstrap example
  • Example#3993 - Exemple avec Yaf_Dispatcher::autoRender
  • Example#3994 - Exemple avec Yaf_Dispatcher::catchException
  • Example#3995 - Exemple avec Yaf_Dispatcher::registerPlugin
  • Example#3996 - Exemple avec Yaf_Dispatcher::setView
  • Example#3997 - Exemple avec Yaf_Dispatcher::setView
  • Example#3998 - Exemple avec Yaf_Dispatcher::throwexception
  • Example#3999 - Exemple avec Yaf_Dispatcher::throwexception
  • Example#4000 - Exemple avec Yaf_Config_Ini
  • Example#4001 - Définission d'une action dans un fichier séparé
  • Example#4002 - Dummy_action.php
  • Example#4003 - Exemple avec Yaf_Controller_Abstract::forward
  • Example#4004 - Exemple avec Yaf_Action_Abstract::execute
  • Example#4005 - Exemple avec Yaf_Action_Abstract::execute
  • Example#4006 - Exemple avec Yaf_View_Simple::assign
  • Example#4007 - Exemple avec template
  • Example#4008 - Exemple avec Yaf_View_Simple::assignRef
  • Example#4009 - Exemple avec template
  • Example#4010 - Exemple avec Yaf_View_Simple::clear
  • Example#4011 - Exemple avec Yaf_View_Simple::__constructor
  • Example#4012 - Exemple avec Yaf_View_Simple::__set
  • Example#4013 - Exemple de configuration
  • Example#4014 - Enregistrement de localnamespace
  • Example#4015 - Load class example
  • Example#4016 - Exemple de chargement de classe via des espaces de noms
  • Example#4017 - Exemple de chargement de classe MVC
  • Example#4018 - Distinctions d'une classe MVC
  • Example#4019 - Exemple de chargement MVC
  • Example#4020 - Exemple avec Yaf_Loader::registerNamespace
  • Example#4021 - Exemple avec Yaf_Loader::registerLocalNamespace
  • Example#4022 - Yaf_Loader::registerNamespaceexample
  • Example#4023 - Exemple d'un plugin
  • Example#4024 - Exemple avec Yaf_Plugin_Abstract::routerShutdown
  • Example#4025 - Exemple avec Yaf_Response_Abstract::appendBody
  • Example#4026 - Exemple avec Yaf_Response_Abstract::getBody
  • Example#4027 - Exemple avec Yaf_Response_Abstract::prependBody
  • Example#4028 - Exemple avec Yaf_Response_Abstract::response
  • Example#4029 - Exemple avec Yaf_Response_Abstract::setBody
  • Example#4030 - Exemple avec Yaf_Route_Map::assemble
  • Example#4031 - Exemple avec Yaf_Route_Map
  • Example#4032 - Exemple avec Yaf_Route_Map
  • Example#4033 - Exemple avec Yaf_Route_Map
  • Example#4034 - Exemple avec Yaf_Route_Regex::assemble
  • Example#4035 - Exemple avec Yaf_Route_Regex
  • Example#4036 - Exemple avec Yaf_Route_Regex (depuis la version 2.3.0)
  • Example#4037 - Exemple avec Yaf_Route_Regex et la capture du nom (depuis 2.3.0)
  • Example#4038 - Exemple avec Yaf_Route_Regex
  • Example#4039 - Exemple avec Yaf_Route_Rewrite::assemble
  • Example#4040 - Exemple avec Yaf_Route_Rewrite
  • Example#4041 - Exemple avec Yaf_Route_Rewrite
  • Example#4042 - Exemple avec Yaf_Route_Rewrite (depuis 2.3.0)
  • Example#4043 - Règle de ré-écriture pour Apache
  • Example#4044 - Règle de ré-écriture pour Apache
  • Example#4045 - Règle de ré-écriture pour Lighttpd
  • Example#4046 - Règle de ré-écriture pour Nginx
  • Example#4047 - Exemple avec Yaf_Route_Static (route par défaut)
  • Example#4048 - Exemple avec application.ini
  • Example#4049 - Exemple avec Yaf_Dispatcher::autoConfig
  • Example#4050 - Exemple avec Yaf_Dispatcher::autoRender
  • Example#4051 - Enregistre quelques routes dans le Bootstrap
  • Example#4052 - plugin Dummy.php (sous le dossier application.directory/plugins)
  • Example#4053 - Exemple avec Yaf_Route_Simple::assemble
  • Example#4054 - Exemple avec Yaf_Route_Simple::route
  • Example#4055 - Exemple avec Yaf_Route_Simple::route
  • Example#4056 - Exemple avec Yaf_Route_Static::assemble
  • Example#4057 - Exemple avec Yaf_Route_Static::route
  • Example#4058 - Exemple avec Yaf_Route_Supervar::assemble
  • Example#4059 - Exemple avec Yaf_Route_Supervar
  • Example#4060 - Exemple INI
  • Example#4061 - Exemple avec les sections INI
  • Example#4062 - Exemple INI
  • Example#4063 - Exemple avec Taint
  • Example#4064 - Vector
  • Example#4065 - Map
  • Example#4066 - Ds\Collection::clear example
  • Example#4067 - Ds\Collection::copy exemple
  • Example#4068 - Ds\Collection::isEmpty exemple
  • Example#4069 - Ds\Collection::toArray exemple
  • Example#4070 - Ds\Hashable::hash example
  • Example#4071 - Ds\Sequence::allocate example
  • Example#4072 - Ds\Sequence::apply example
  • Example#4073 - Ds\Sequence::capacity example
  • Example#4074 - Ds\Sequence::contains example
  • Example#4075 - Ds\Sequence::filter example using callback function
  • Example#4076 - Ds\Sequence::filter example without a callback function
  • Example#4077 - Ds\Sequence::find example
  • Example#4078 - Ds\Sequence::first example
  • Example#4079 - Ds\Sequence::get example
  • Example#4080 - Ds\Sequence::get example using array syntax
  • Example#4081 - Ds\Sequence::insert example
  • Example#4082 - Ds\Sequence::join example using a separator string
  • Example#4083 - Ds\Sequence::join example without a separator string
  • Example#4084 - Ds\Sequence::last example
  • Example#4085 - Ds\Sequence::map example
  • Example#4086 - Ds\Sequence::merge example
  • Example#4087 - Ds\Sequence::pop example
  • Example#4088 - Ds\Sequence::push example
  • Example#4089 - Ds\Sequence::reduce with initial value example
  • Example#4090 - Ds\Sequence::reduce without an initial value example
  • Example#4091 - Ds\Sequence::remove example
  • Example#4092 - Ds\Sequence::reverse example
  • Example#4093 - Ds\Sequence::reversed example
  • Example#4094 - Ds\Sequence::rotate example
  • Example#4095 - Ds\Sequence::set example
  • Example#4096 - Ds\Sequence::set example using array syntax
  • Example#4097 - Ds\Sequence::shift example
  • Example#4098 - Ds\Sequence::slice example
  • Example#4099 - Ds\Sequence::sort example
  • Example#4100 - Ds\Sequence::sort example using a comparator
  • Example#4101 - Ds\Sequence::sorted example
  • Example#4102 - Ds\Sequence::sorted example using a comparator
  • Example#4103 - Ds\Sequence::sum integer example
  • Example#4104 - Ds\Sequence::sum float example
  • Example#4105 - Ds\Sequence::unshift example
  • Example#4106 - Ds\Vector::allocate example
  • Example#4107 - Ds\Vector::apply example
  • Example#4108 - Ds\Vector::capacity example
  • Example#4109 - Ds\Vector::clear example
  • Example#4110 - Ds\Vector::__construct example
  • Example#4111 - Ds\Vector::contains example
  • Example#4112 - Ds\Vector::copy example
  • Example#4113 - Ds\Vector::filter example using callback function
  • Example#4114 - Ds\Vector::filter example without a callback function
  • Example#4115 - Ds\Vector::find example
  • Example#4116 - Ds\Vector::first example
  • Example#4117 - Ds\Vector::get example
  • Example#4118 - Ds\Vector::get example using array syntax
  • Example#4119 - Ds\Vector::insert example
  • Example#4120 - Ds\Vector::isEmpty example
  • Example#4121 - Ds\Vector::join example using a separator string
  • Example#4122 - Ds\Vector::join example without a separator string
  • Example#4123 - Ds\Vector::last example
  • Example#4124 - Ds\Vector::map example
  • Example#4125 - Ds\Vector::merge example
  • Example#4126 - Ds\Vector::pop example
  • Example#4127 - Ds\Vector::push example
  • Example#4128 - Ds\Vector::reduce with initial value example
  • Example#4129 - Ds\Vector::reduce without an initial value example
  • Example#4130 - Ds\Vector::remove example
  • Example#4131 - Ds\Vector::reverse example
  • Example#4132 - Ds\Vector::reversed example
  • Example#4133 - Ds\Vector::rotate example
  • Example#4134 - Ds\Vector::set example
  • Example#4135 - Ds\Vector::set example using array syntax
  • Example#4136 - Ds\Vector::shift example
  • Example#4137 - Ds\Vector::slice example
  • Example#4138 - Ds\Vector::sort example
  • Example#4139 - Ds\Vector::sort example using a comparator
  • Example#4140 - Ds\Vector::sorted example
  • Example#4141 - Ds\Vector::sorted example using a comparator
  • Example#4142 - Ds\Vector::sum integer example
  • Example#4143 - Ds\Vector::sum float example
  • Example#4144 - Ds\Vector::toArray example
  • Example#4145 - Ds\Vector::unshift example
  • Example#4146 - Ds\Deque::allocate example
  • Example#4147 - Ds\Deque::apply example
  • Example#4148 - Ds\Deque::capacity example
  • Example#4149 - Ds\Deque::clear example
  • Example#4150 - Ds\Deque::__construct example
  • Example#4151 - Ds\Deque::contains example
  • Example#4152 - Ds\Deque::copy example
  • Example#4153 - Ds\Deque::filter example using callback function
  • Example#4154 - Ds\Deque::filter example without a callback function
  • Example#4155 - Ds\Deque::find example
  • Example#4156 - Ds\Deque::first example
  • Example#4157 - Ds\Deque::get example
  • Example#4158 - Ds\Deque::get example using array syntax
  • Example#4159 - Ds\Deque::insert example
  • Example#4160 - Ds\Deque::isEmpty example
  • Example#4161 - Ds\Deque::join example using a separator string
  • Example#4162 - Ds\Deque::join example without a separator string
  • Example#4163 - Ds\Deque::last example
  • Example#4164 - Ds\Deque::map example
  • Example#4165 - Ds\Deque::merge example
  • Example#4166 - Ds\Deque::pop example
  • Example#4167 - Ds\Deque::push example
  • Example#4168 - Ds\Deque::reduce with initial value example
  • Example#4169 - Ds\Deque::reduce without an initial value example
  • Example#4170 - Ds\Deque::remove example
  • Example#4171 - Ds\Deque::reverse example
  • Example#4172 - Ds\Deque::reversed example
  • Example#4173 - Ds\Deque::rotate example
  • Example#4174 - Ds\Deque::set example
  • Example#4175 - Ds\Deque::set example using array syntax
  • Example#4176 - Ds\Deque::shift example
  • Example#4177 - Ds\Deque::slice example
  • Example#4178 - Ds\Deque::sort example
  • Example#4179 - Ds\Deque::sort example using a comparator
  • Example#4180 - Ds\Deque::sorted example
  • Example#4181 - Ds\Deque::sorted example using a comparator
  • Example#4182 - Ds\Deque::sum integer example
  • Example#4183 - Ds\Deque::sum float example
  • Example#4184 - Ds\Deque::toArray example
  • Example#4185 - Ds\Deque::unshift example
  • Example#4186 - Ds\Map::allocate example
  • Example#4187 - Ds\Map::apply example
  • Example#4188 - Ds\Map::capacity example
  • Example#4189 - Ds\Map::clear example
  • Example#4190 - Ds\Map::__construct example
  • Example#4191 - Ds\Map::copy example
  • Example#4192 - Ds\Map::diff example
  • Example#4193 - Ds\Map::filter example using callback function
  • Example#4194 - Ds\Map::filter example without a callback function
  • Example#4195 - Ds\Map::first example
  • Example#4196 - Ds\Map::get example
  • Example#4197 - Ds\Map::get example using array syntax
  • Example#4198 - Ds\Map::hasKey example
  • Example#4199 - Ds\Map::hasValue example
  • Example#4200 - Ds\Map::intersect example
  • Example#4201 - Ds\Map::isEmpty example
  • Example#4202 - Ds\Map::keys example
  • Example#4203 - Ds\Map::ksort example
  • Example#4204 - Ds\Map::ksort example using a comparator
  • Example#4205 - Ds\Map::ksorted example
  • Example#4206 - Ds\Map::ksorted example using a comparator
  • Example#4207 - Ds\Map::last example
  • Example#4208 - Ds\Map::map example
  • Example#4209 - Ds\Map::merge example
  • Example#4210 - Ds\Map::pairs example
  • Example#4211 - Ds\Map::put example
  • Example#4212 - Ds\Map::put example using objects as keys
  • Example#4213 - Ds\Map::putAll example
  • Example#4214 - Ds\Map::reduce with initial value example
  • Example#4215 - Ds\Map::reduce without an initial value example
  • Example#4216 - Ds\Map::remove example
  • Example#4217 - Ds\Map::reverse example
  • Example#4218 - Ds\Map::reversed example
  • Example#4219 - Ds\Map::skip example
  • Example#4220 - Ds\Map::slice example
  • Example#4221 - Ds\Map::sort example
  • Example#4222 - Ds\Map::sort example using a comparator
  • Example#4223 - Ds\Map::sort example
  • Example#4224 - Ds\Map::sort example using a comparator
  • Example#4225 - Ds\Map::sum integer example
  • Example#4226 - Ds\Map::sum float example
  • Example#4227 - Ds\Map::toArray example
  • Example#4228 - Ds\Map::union example
  • Example#4229 - Ds\Map::values example
  • Example#4230 - Ds\Map::xor example
  • Example#4231 - Ds\Pair::clear example
  • Example#4232 - Ds\Pair::copy example
  • Example#4233 - Ds\Pair::isEmpty example
  • Example#4234 - Ds\Pair::toArray example
  • Example#4235 - Ds\Set::add example using integers
  • Example#4236 - Ds\Set::add example using objects
  • Example#4237 - Ds\Set::allocate example
  • Example#4238 - Ds\Set::capacity example
  • Example#4239 - Ds\Set::clear example
  • Example#4240 - Ds\Set::__construct example
  • Example#4241 - Ds\Set::contains example
  • Example#4242 - Ds\Set::copy example
  • Example#4243 - Ds\Set::diff example
  • Example#4244 - Ds\Set::filter example using callback function
  • Example#4245 - Ds\Set::filter example without a callback function
  • Example#4246 - Ds\Set::first example
  • Example#4247 - Ds\Set::get example
  • Example#4248 - Ds\Set::get example using array syntax
  • Example#4249 - Ds\Set::intersect example
  • Example#4250 - Ds\Set::isEmpty example
  • Example#4251 - Ds\Set::join example using a separator string
  • Example#4252 - Ds\Set::join example without a separator string
  • Example#4253 - Ds\Set::last example
  • Example#4254 - Ds\Set::merge example
  • Example#4255 - Ds\Set::reduce with initial value example
  • Example#4256 - Ds\Set::reduce without an initial value example
  • Example#4257 - Ds\Set::remove example
  • Example#4258 - Ds\Set::reverse example
  • Example#4259 - Ds\Set::reversed example
  • Example#4260 - Ds\Set::slice example
  • Example#4261 - Ds\Set::sort example
  • Example#4262 - Ds\Set::sort example using a comparator
  • Example#4263 - Ds\Set::sorted example
  • Example#4264 - Ds\Set::sorted example using a comparator
  • Example#4265 - Ds\Set::sum integer example
  • Example#4266 - Ds\Set::sum float example
  • Example#4267 - Ds\Set::toArray example
  • Example#4268 - Ds\Set::union example
  • Example#4269 - Ds\Set::xor example
  • Example#4270 - Ds\Stack::clear example
  • Example#4271 - Ds\Stack::__construct example
  • Example#4272 - Ds\Stack::copy example
  • Example#4273 - Ds\Stack::isEmpty example
  • Example#4274 - Ds\Stack::peek example
  • Example#4275 - Ds\Stack::pop example
  • Example#4276 - Ds\Stack::push example
  • Example#4277 - Ds\Stack::toArray example
  • Example#4278 - Ds\Queue::allocate example
  • Example#4279 - Ds\Queue::capacity example
  • Example#4280 - Ds\Queue::clear example
  • Example#4281 - Ds\Queue::__construct example
  • Example#4282 - Ds\Queue::copy example
  • Example#4283 - Ds\Queue::isEmpty example
  • Example#4284 - Ds\Queue::peek example
  • Example#4285 - Ds\Queue::pop example
  • Example#4286 - Ds\Queue::push example
  • Example#4287 - Ds\Queue::toArray example
  • Example#4288 - Ds\PriorityQueue::allocate example
  • Example#4289 - Ds\PriorityQueue::capacity example
  • Example#4290 - Ds\PriorityQueue::clear example
  • Example#4291 - Ds\PriorityQueue::__construct example
  • Example#4292 - Ds\PriorityQueue::copy example
  • Example#4293 - Ds\PriorityQueue::isEmpty example
  • Example#4294 - Ds\PriorityQueue::peek example
  • Example#4295 - Ds\PriorityQueue::pop example
  • Example#4296 - Ds\PriorityQueue::push example
  • Example#4297 - Ds\PriorityQueue::toArray example
  • Example#4298 - var_representation Examples
  • Example#4299 - Escaping control characters
  • Example#4300 - Exporting stdClass
  • Example#4301 - Exporting classes
  • Example#4302 - Using __set_state()
  • Example#4303 - Utilisation du module cURL pour récupérer la page d'accueil de example.com
  • Example#4304 - Initialise une session cURL et récupère une page web
  • Example#4305 - Copie d'une ressource cURL
  • Example#4306 - Exemple avec curl_errno
  • Example#4307 - Exemple avec curl_error
  • Example#4308 - Exemple avec curl_escape
  • Example#4309 - Récupère le contenu d'une page web
  • Example#4310 - Exemple avec curl_getinfo
  • Example#4311 - Exemple de curl_getinfo avec le paramètre option
  • Example#4312 - Initialiser une session cURL et récupérer une page web
  • Example#4313 - Exemple avec curl_multi_add_handle
  • Example#4314 - Exemple avec curl_multi_close
  • Example#4315 - Exemple avec curl_multi_exec
  • Example#4316 - Exemple avec curl_multi_info_read
  • Example#4317 - Exemple avec curl_multi_init
  • Example#4318 - Exemple avec curl_multi_strerror
  • Example#4319 - Exemple avec curl_reset
  • Example#4320 - Initialisation d'une nouvelle session cURL et récupération d'une page web
  • Example#4321 - Initialisation d'une nouvelle session CURL et recherche d'une page Web
  • Example#4322 - Exempe avec curl_share_setopt
  • Example#4323 - Exemple avec curl_share_init
  • Example#4324 - Exemple avec curl_share_setopt
  • Example#4325 - Exemple avec curl_errno
  • Example#4326 - Exemple avec curl_escape
  • Example#4327 - Exemple de curl_upkeep
  • Example#4328 - Exemple avec curl_version
  • Example#4329 - Exemple avec CURLFile::__construct
  • Example#4330 - Exemple de téléversement de plusieurs fichiers avec CURLFile::__construct
  • Example#4331 - Exemple de CURLStringFile::__construct
  • Example#4332 - Client HTTP simple
  • Example#4333 - Client HTTP en utilisant une résolution DNS asynchrone
  • Example#4334 - Serveur d'affichage
  • Example#4335 - Serveur d'affichage SSL
  • Example#4336 - Gestionnaire de signal
  • Example#4337 - Utilisation d'une boucle libevent pour réaliser les requêtes de l'extension `eio'
  • Example#4338 - Divers
  • Example#4339 - Serveur HTTP simple
  • Example#4340 - Serveur HTTPS simple
  • Example#4341 - Connexion OpenSSL
  • Example#4342 - Exemple avec EventHttpConnection::makeRequest
  • Example#4343 - Ecoute d'une connexion en se basant sur un socket de domaine Unix
  • Example#4344 - Exemple de serveur SMTP
  • Example#4345 - Gestion d'un signal SIGTERM
  • Example#4346 - Ajout d'un signal personnalisé
  • Example#4347 - Ajout d'une minuterie
  • Example#4348 - Exemple avec EventBase::getFeatures
  • Example#4349 - Exemple avec EventBase::getMethod
  • Example#4350 - Exemple avec EventBuffer::search
  • Example#4351 - Exemple avec EventBufferEvent::connect
  • Example#4352 - Connexion à un socket UNIX, lecture de la réponse depuis le serveur, et affichage dans une console
  • Example#4353 - Exemple avec EventBufferEvent::connectHost
  • Example#4354 - Fonction de rappel pour un événement de lecture sur le tampon
  • Example#4355 - Exemple avec EventBufferEvent::getOutput
  • Example#4356 - Exemple avec EventBufferEvent::sslError
  • Example#4357 - Exemple de serveur SMTP
  • Example#4358 - Exemple avec EventConfig::avoidMethod
  • Example#4359 - Exemple avec EventConfig::__construct
  • Example#4360 - Exemple avec EventConfig::requireFeatures
  • Example#4361 - Exemple avec EventHttp::accept
  • Example#4362 - Exemple avec EventHttp::addServerAlias
  • Example#4363 - Exemple avec EventHttp::bind
  • Example#4364 - Serveur HTTP simple
  • Example#4365 - Exemple avec EventHttp::setCallback
  • Example#4366 - Exemple avec EventHttp::setDefaultCallback
  • Example#4367 - Exemple avec EventHttpConnection::makeRequest
  • Example#4368 - Exemple avec EventHttpConnection::setCloseCallback
  • Example#4369 - Exemple avec EventHttpRequest::__construct
  • Example#4370 - Exemple avec EventHttpRequest::sendError
  • Example#4371 - Exemple avec EventListener::__construct
  • Example#4372 - Exemple avec EventSslContext::__construct
  • Example#4373 - Exemple avec FTP
  • Example#4374 - Exemple avec ftp_alloc
  • Example#4375 - Exemple avec ftp_cdup
  • Example#4376 - Exemple avec ftp_chdir
  • Example#4377 - Exemple avec ftp_chmod
  • Example#4378 - Exemple avec ftp_close
  • Example#4379 - Exemple avec ftp_connect
  • Example#4380 - Exemple avec ftp_delete
  • Example#4381 - Exemple avec ftp_exec
  • Example#4382 - Exemple avec ftp_fget
  • Example#4383 - Exemple avec ftp_fput
  • Example#4384 - Exemple avec ftp_get_option
  • Example#4385 - Exemple avec ftp_get
  • Example#4386 - Exemple avec ftp_login
  • Example#4387 - Exemple avec ftp_mdtm
  • Example#4388 - Exemple avec ftp_mkdir
  • Example#4389 - Exemple avec ftp_mlsd
  • Example#4390 - Exemple avec ftp_nb_continue
  • Example#4391 - Exemple avec ftp_nb_fget
  • Example#4392 - Exemple avec ftp_nb_fput
  • Example#4393 - Exemple avec ftp_nb_get
  • Example#4394 - Reprise d'un téléchargement avec ftp_nb_get
  • Example#4395 - Reprise d'un téléchargement à la position 100 dans un nouveau fichier avec ftp_nb_get
  • Example#4396 - Exemple avec ftp_nb_put
  • Example#4397 - Reprise d'un chargement avec ftp_nb_put
  • Example#4398 - Exemple avec ftp_nlist
  • Example#4399 - Exemple avec ftp_pasv
  • Example#4400 - Exemple avec ftp_put
  • Example#4401 - Exemple avec ftp_pwd
  • Example#4402 - Utilisation de ftp_raw pour s'identifier manuellement sur un serveur FTP
  • Example#4403 - Exemple avec ftp_rawlist
  • Example#4404 - Exemple avec ftp_rename
  • Example#4405 - Exemple avec ftp_rmdir
  • Example#4406 - Exemple avec ftp_set_option
  • Example#4407 - Envoi d'une commande SITE à un serveur FTP
  • Example#4408 - Exemple avec ftp_size
  • Example#4409 - Exemple avec ftp_ssl_connect
  • Example#4410 - Exemple avec ftp_systype
  • Example#4411 - Client et agent Gearman simple
  • Example#4412 - Client et agent Gearman simple, en arrière-plan
  • Example#4413 - Client et agent Gearman simple, avec la soumission de tâches
  • Example#4414 - Ajout de deux serveurs
  • Example#4415 - Ajout de deux serveurs
  • Example#4416 - Ajout de 2 tâches
  • Example#4417 - Ajout de 2 tâches en passant le contexte de l'application
  • Example#4418 - 2 tâches dont une en arrière-plan
  • Example#4419 - Une tâche de forte priorité en même temps que deux tâches normales
  • Example#4420 - Une tâche de faible priorité en même temps que deux tâches normales
  • Example#4421 - Surveiller l'accomplissement de plusieurs tâches de fond
  • Example#4422 - Soumission d'une seule tâche avec un retour immédiat
  • Example#4423 - Soumission d'un travail et récupération incrémentale du statut
  • Example#4424 - Soumet et surveille un travail en arrière-plan
  • Example#4425 - Soumission d'une tâche avec un retour immédiat
  • Example#4426 - Soumission d'une tâche et récupération incrémentale du statut
  • Example#4427 - Récupère le statut d'un travail dont l'exécution prend du temps
  • Example#4428 - Surveille le statut d'un travail en arrière-plan mettant du temps à s'exécuter
  • Example#4429 - Agent simple qui utilise des données de contexte de l'application
  • Example#4430 - Ajout de serveurs Gearman
  • Example#4431 - Ajout de 2 serveurs de travaux
  • Example#4432 - Exemple avec GearmanWorker::setId
  • Example#4433 - Un agent simple qui attend 5 secondes
  • Example#4434 - Exécution d'un agent en mode non bloquant
  • Example#4435 - Exemple avec GearmanWorker::work
  • Example#4436 - Testing support for paged result control
  • Example#4437 - Recherche avec LDAP
  • Example#4438 - Lier avec des informations policy
  • Example#4439 - Modifier la description uniquement si elle n'est pas vide
  • Example#4440 - Lire des valeurs avant leurs suppresion
  • Example#4441 - Supprimer une référence
  • Example#4442 - Utiliser la pagination pour une recherche
  • Example#4443 - Exemple complet avec identification LDAP
  • Example#4444 - Authentification avec LDAP
  • Example#4445 - Connexion anonyme à un serveur LDAP
  • Example#4446 - Exemple complet de vérification de mot de passe avec lDAP
  • Example#4447 - Exemple de connexion à un serveur LDAP
  • Example#4448 - Exemple de connexion à un serveur LDAP SSL
  • Example#4449 - Pagination LDAP
  • Example#4450 - Pagination LDAP
  • Example#4451 - Exemple avec ldap_count_entries
  • Example#4452 - Énumérer tous les messages d'erreur LDAP
  • Example#4453 - Générer et intercepter une erreur
  • Example#4454 - Chercher une addresse email
  • Example#4455 - PASSWD extended operation
  • Example#4456 - Whoami extended operation
  • Example#4457 - Affiche la liste des attributs d'une entrée
  • Example#4458 - Vérification de la version du protocole
  • Example#4459 - Liste toutes les valeurs de l'attribut "mail" d'une entrée
  • Example#4460 - Produit une liste de tous les services d'une société
  • Example#4461 - Ajout d'un numéro de téléphone à un contact
  • Example#4462 - Renomme un utilisateur
  • Example#4463 - Ajoute deux adresses emails à un utilisateur
  • Example#4464 - Modifie le mot de passe d'un utilisateur
  • Example#4465 - Modifie le mot de passe d'un utilisateur (Active Directory)
  • Example#4466 - Exemple avec ldap_parse_result
  • Example#4467 - Recherche LDAP
  • Example#4468 - Modification de la version du protocole
  • Example#4469 - Modification des contrôles du serveur
  • Example#4470 - Tri LDAP
  • Example#4471 - Exemple avec l'extension Memcache
  • Example#4472 - Utilisation de memcache comme gestionnaire de session
  • Example#4473 - Exemple avec Memcache::add
  • Example#4474 - Exemple avec Memcache::addServer
  • Example#4475 - Exemple avec Memcache::close
  • Example#4476 - Exemple avec Memcache::connect
  • Example#4477 - Exemple avec Memcache::decrement
  • Example#4478 - Exemple avec Memcache::delete
  • Example#4479 - Exemple avec Memcache::flush
  • Example#4480 - Exemple avec Memcache::get
  • Example#4481 - Exemple avec Memcache::getExtendedStats
  • Example#4482 - Exemple avec Memcache::getServerStatus
  • Example#4483 - Exemple avec Memcache::getVersion
  • Example#4484 - Exemple avec Memcache::increment
  • Example#4485 - Exemple avec Memcache::pconnect
  • Example#4486 - Exemple avec Memcache::replace
  • Example#4487 - Exemple avec Memcache::set
  • Example#4488 - Exemple avec Memcache::set
  • Example#4489 - Exemple avec Memcache::setCompressThreshold
  • Example#4490 - Exemple avec Memcache::setServerParams
  • Example#4491 - Exemple de fonction de rappel de résultats
  • Example#4492 - Fonctions de rappel sur clé absente
  • Example#4493 - Exemple avec Memcached::addServer
  • Example#4494 - Exemple avec Memcached::addServers
  • Example#4495 - Exemple avec Memcached::append
  • Example#4496 - Exemple avec Memcached::cas
  • Example#4497 - Création d'un objet Memcached
  • Example#4498 - Exemple avec Memcached::decrement
  • Example#4499 - Exemple avec Memcached::delete
  • Example#4500 - Exemple avec Memcached::fetch
  • Example#4501 - Exemple avec Memcached::fetchAll
  • Example#4502 - Exemple avec Memcached::flush
  • Example#4503 - Exemple avec Memcached::get 1
  • Example#4504 - Exemple avec Memcached::get 2
  • Example#4505 - Exemple avec Memcached::getDelayed
  • Example#4506 - Exemple de Memcached::getMulti pour Memcached v3
  • Example#4507 - Exemple de Memcached::getMulti pour Memcached v1 et v2
  • Example#4508 - Exemple de Memcached::GET_PRESERVE_ORDER pour Memcached v3
  • Example#4509 - Exemple de Memcached::GET_PRESERVE_ORDER pour Memcached v1 et v2
  • Example#4510 - Lecture des options Memcached
  • Example#4511 - Exemple avec Memcached::getResultCode
  • Example#4512 - Exemple avec Memcached::getResultMessage
  • Example#4513 - Exemple avec Memcached::getServerByKey
  • Example#4514 - Exemple avec Memcached::getResultCode
  • Example#4515 - Exemple avec Memcached::getStats
  • Example#4516 - Exemple avec Memcached::getVersion
  • Example#4517 - Exemple avec Memcached::getResultCode
  • Example#4518 - Exemple avec Memcached::prepend
  • Example#4519 - Exemple avec Memcached::set
  • Example#4520 - Exemple avec Memcached::setByKey
  • Example#4521 - Exemple avec Memcached::setMulti
  • Example#4522 - Configuration d'une option Memcached
  • Example#4523 - Définit des options Memcache
  • Example#4524 - Exemple avec mqseries_back
  • Example#4525 - Exemple avec mqseries_begin
  • Example#4526 - Exemple avec mqseries_close
  • Example#4527 - Exemple avec mqseries_cmit
  • Example#4528 - Exemple avec mqseries_conn
  • Example#4529 - Exemple avec mqseries_connx
  • Example#4530 - Exemple avec mqseries_connx en utilisant une connexion SSL et une URL OCSP Responder
  • Example#4531 - Exemple avec mqseries_disc
  • Example#4532 - Exemple avec mqseries_get
  • Example#4533 - Exemple avec mqseries_inq
  • Example#4534 - Exemple avec mqseries_open
  • Example#4535 - Exemple avec mqseries_put
  • Example#4536 - Exemple avec mqseries_strerror
  • Example#4537 - Exemple avec dns_get_record
  • Example#4538 - Exemple avec dns_get_record et DNS_ANY
  • Example#4539 - Exemple avec fsockopen
  • Example#4540 - Utilisation d'une connexion UDP
  • Example#4541 - Exemple avec gethostbyaddr
  • Example#4542 - Exemple avec gethostbyname
  • Example#4543 - Exemple avec gethostbynamel
  • Example#4544 - Exemple avec gethostname
  • Example#4545 - Exemple avec getprotobyname
  • Example#4546 - Exemple avec getservbyname
  • Example#4547 - Exemple avec header_register_callback
  • Example#4548 - Supprimer un en-tête HTTP avec header_remove
  • Example#4549 - Supprimer tous les en-têtes HTTP avec header_remove
  • Example#4550 - Boîte de téléchargement
  • Example#4551 - Directives concernant la mise en cache
  • Example#4552 - Paramétrer un cookie
  • Example#4553 - Exemple avec headers_list
  • Example#4554 - Exemple avec headers_sent
  • Example#4555 - Utiliser http_response_code dans un environnement de serveur Web
  • Example#4556 - Utiliser http_response_code dans un environnement CLI
  • Example#4557 - Exemple avec inet_ntop
  • Example#4558 - Exemple avec inet_pton
  • Example#4559 - Exemple avec ip2long
  • Example#4560 - Affichage d'une adresse IP
  • Example#4561 - Exemple d'envoi d'un cookie avec setcookie
  • Example#4562 - Exemple d'effacement d'un cookie avec setcookie
  • Example#4563 - setcookie et les tableaux
  • Example#4564 - Exemple avec syslog
  • Example#4565 - Utilisation procédurale de rrd
  • Example#4566 - Utilisation orientée objet de rrd
  • Example#4567 - Exemple avec RRDGraph::setOptions
  • Example#4568 - Défini plusieurs options de couleur
  • Example#4569 - Exemple avec RRDUpdater::update
  • Example#4570 - Fetch instrumented calls
  • Example#4571 - Fetch the list of functions scoutapm will instrument
  • Example#4572 - Exemple avec snmp_get_quick_print
  • Example#4573 - Exemple avec snmp_get_valueretrieval
  • Example#4574 - Exemple avec snmp_read_mib
  • Example#4575 - Exemple avec snmp_set_enum_print
  • Example#4576 - Exemple avec snmprealwalk
  • Example#4577 - Exemple avec snmp_set_quick_print
  • Example#4578 - Exemple avec snmp_set_valueretrieval
  • Example#4579 - Exemple avec snmp2_get
  • Example#4580 - Exemple avec snmp2_get_next
  • Example#4581 - Exemple avec snmp2_real_walk
  • Example#4582 - Exemple avec snmp2_set
  • Example#4583 - Exemple avec snmp2_set pour configurer l'identifiant de l'objet SNMP BITS
  • Example#4584 - Exemple avec snmp2_walk
  • Example#4585 - Exemple avec snmp3_get
  • Example#4586 - Exemple avec snmp3_getnext
  • Example#4587 - Exemple avec snmp3_real_walk
  • Example#4588 - Exemple avec snmp3_set
  • Example#4589 - Exemple avec snmp3_set pour configurer l'identifiant de l'objet SNMP BITS
  • Example#4590 - Exemple avec snmp3_walk
  • Example#4591 - Exemple avec snmpget
  • Example#4592 - Exemple avec snmpgetnext
  • Example#4593 - Exemple avec snmprealwalk
  • Example#4594 - Exemple avec snmpset
  • Example#4595 - Exemple avec snmpset pour configurer l'identifiant de l'objet SNMP BITS
  • Example#4596 - Exemple avec snmpwalk
  • Example#4597 - Exemple avec snmpwalkoid
  • Example#4598 - Exemple avec SNMP::close
  • Example#4599 - Récupération de sysLocation
  • Example#4600 - Un seul objet SNMP
  • Example#4601 - Plusieurs objets SNMP
  • Example#4602 - SNMP::getErrno example
  • Example#4603 - Exemple avec SNMP::getError
  • Example#4604 - Un seul objet SNMP
  • Example#4605 - Plusieurs objets SNMP
  • Example#4606 - Définit un seul identifiant d'objet SNMP
  • Example#4607 - Définit plusieurs valeurs en utilisant un seul appel à la méthode SNMP::set call
  • Example#4608 - Exemple avec SNMP::set pour configurer l'identifiant d'objet SNMP BITS
  • Example#4609 - Exemple avec SNMP::setSecurity
  • Example#4610 - Exemple avec SNMP::walk
  • Example#4611 - Exemple avec la paramètre suffixAsKey
  • Example#4612 - Exemple de socket : serveur TCP/IP simple
  • Example#4613 - Exemple avec les sockets : client TCP/IP simple
  • Example#4614 - Using socket_atmark to set the source address
  • Example#4615 - Utilisation de socket_bind pour définir l'adresse de la source
  • Example#4616 - Exemple avec socket_create_pair
  • Example#4617 - Exemple IPC avec socket_create_pair
  • Example#4618 - Exemple avec socket_get_option
  • Example#4619 - Exemple avec socket_import_stream
  • Example#4620 - Exemple avec socket_last_error
  • Example#4621 - Exemples avec socket_recv
  • Example#4622 - Exemple avec socket_recvfrom
  • Example#4623 - Passer null à socket_select
  • Example#4624 - Analyser le résultat de socket_select
  • Example#4625 - Exemple avec socket_select
  • Example#4626 - Exemple avec socket_sendto
  • Example#4627 - Exemple avec socket_set_block
  • Example#4628 - Exemple avec socket_set_nonblock
  • Example#4629 - Exemple avec socket_set_option
  • Example#4630 - Exemple avec socket_strerror
  • Example#4631 - Authentification en utilisant un agent ssh
  • Example#4632 - Identification en utilisant une clé d'hôte publique
  • Example#4633 - Récupération de la liste des méthodes d'identification
  • Example#4634 - Identification avec un mot de passe
  • Example#4635 - Identification en utilisant une clé publique
  • Example#4636 - Exemple avec ssh2_connect
  • Example#4637 - Exécution d'une commande
  • Example#4638 - Ouverture d'un shell et récupération du flux stderr qui lui est associé
  • Example#4639 - Comparaison d'une empreinte à une valeur connue
  • Example#4640 - Détermine quelles méthodes ont été négociées
  • Example#4641 - Ajout d'une clé publique avec ssh2_publickey_add
  • Example#4642 - Liste des clés autorisées avec ssh2_publickey_list
  • Example#4643 - Téléchargement d'un fichier via SCP
  • Example#4644 - Chargement d'un fichier via SCP
  • Example#4645 - Changement du mode du fichier sur le serveur distant
  • Example#4646 - Statue un lien symbolique via SFTP
  • Example#4647 - Création d'un dossier sur un serveur distant
  • Example#4648 - Lecture d'un lien symbolique
  • Example#4649 - Résoudre un nom de chemin
  • Example#4650 - Renommer un fichier via sftp
  • Example#4651 - Effacement d'un dossier sur un serveur distant
  • Example#4652 - Statut d'un fichier via SFTP
  • Example#4653 - Création d'un lien symbolique
  • Example#4654 - Effacement d'un fichier
  • Example#4655 - Ouverture d'un fichier via SFTP
  • Example#4656 - Exécution d'une commande
  • Example#4657 - Ouverture d'un tunnel sur un hôte arbitraire
  • Example#4658 - Style orienté objet
  • Example#4659 - Style procédural
  • Example#4660 - Exemple avec stomp_connect_error
  • Example#4661 - Exemple avec stomp_version
  • Example#4662 - Style orienté objet
  • Example#4663 - Style procédural
  • Example#4664 - Style orienté objet
  • Example#4665 - Style procédural
  • Example#4666 - Style orienté objet
  • Example#4667 - Style procédural
  • Example#4668 - Style orienté objet
  • Example#4669 - Style procédural
  • Example#4670 - Style orienté objet
  • Example#4671 - Style procédural
  • Example#4672 - Style orienté objet
  • Example#4673 - Style procédural
  • Example#4674 - Style orienté objet
  • Example#4675 - Style procédural
  • Example#4676 - Style orienté objet
  • Example#4677 - Style procédural
  • Example#4678 - Style orienté objet
  • Example#4679 - Style procédural
  • Example#4680 - Entraînement depuis un tableau
  • Example#4681 - Entraînement depuis un fichier
  • Example#4682 - Exemple avec svn_add
  • Example#4683 - Exemple d'identification
  • Example#4684 - Exemple d'utilisation de svn_blame
  • Example#4685 - Exemple d'utilisation
  • Example#4686 - Exemple d'utilisation
  • Example#4687 - Exemple d'utilisation
  • Example#4688 - Exemple d'utilisation
  • Example#4689 - Exemple d'utilisation
  • Example#4690 - Exemple d'utilisation
  • Example#4691 - Comparaison de deux révisions d'un chemin du référentiel
  • Example#4692 - Comparaison, plus portable, de deux fichiers locaux
  • Example#4693 - Exemple d'utilisation de svn_export
  • Example#4694 - Exemple d'utilisation
  • Example#4695 - Exemple avec svn_log
  • Example#4696 - Exemple avec svn_ls
  • Example#4697 - Exemple d'utilisation
  • Example#4698 - Exemple d'utilisation
  • Example#4699 - Refuser toutes les connexions depuis localhost
  • Example#4700 - Bannir une URL
  • Example#4701 - Récupération de statistiques
  • Example#4702 - Lecture des logs Varnish depuis la mémoire partagée
  • Example#4703 - Exemple avec VarnishAdmin::__construct
  • Example#4704 - Recherche parallèle en utilisant Yaz
  • Example#4705 - Configuration CCL
  • Example#4706 - Analyse CCL
  • Example#4707 - Mise à Jour d'Enregistrements
  • Example#4708 - Tableau pour des enregistrements GRS-1
  • Example#4709 - Travail avec MARCXML
  • Example#4710 - Fonction PHP qui analyse les titres sur un serveur YAZ
  • Example#4711 - Exemples de Requête
  • Example#4712 - Critères de Tri
  • Example#4713 - Exemple avec ZMQContext
  • Example#4714 - Exemple avec ZMQContext
  • Example#4715 - Exemple avec ZMQContext
  • Example#4716 - Exemple avec ZMQSocket
  • Example#4717 - Un exemple d'envoi/réception
  • Example#4718 - Exemple avec ZMQPoll
  • Example#4719 - zookeeper_dispatch example #1
  • Example#4720 - zookeeper_dispatch example #2
  • Example#4721 - Zookeeper::addAuth example
  • Example#4722 - Zookeeper::create example
  • Example#4723 - Zookeeper::delete example
  • Example#4724 - Zookeeper::exists example
  • Example#4725 - Zookeeper::get example
  • Example#4726 - Zookeeper::get stat example
  • Example#4727 - Zookeeper::getAcl example
  • Example#4728 - Zookeeper::getChildren example
  • Example#4729 - Zookeeper::set example
  • Example#4730 - Zookeeper::setAcl example
  • Example#4731 - Zookeeper::setDebugLevel example
  • Example#4732 - ZookeeperConfig::add example
  • Example#4733 - ZookeeperConfig::get example
  • Example#4734 - ZookeeperConfig::remove example
  • Example#4735 - ZookeeperConfig::set example
  • Example#4736 - Exemple avec solr_get_version
  • Example#4737 - Contenu du fichier BootStrap
  • Example#4738 - Ajout d'un document à l'index
  • Example#4739 - Fusion d'un document dans un autre
  • Example#4740 - Recherche de documents - réponses sous la forme d'un objet SolrObject
  • Example#4741 - Recherche de documents - réponses sous la forme d'un objet SolrDocument
  • Example#4742 - Exemple simple avec TermsComponent
  • Example#4743 - Exemple simple avec TermsComponent en utilisant un préfixe
  • Example#4744 - Exemple simple avec TermsComponent en spécifiant une fréquence minimale
  • Example#4745 - Exemple simple avec Facet
  • Example#4746 - Exemple simple avec Facet et un champ optionnel d'écrasement pour mincount
  • Example#4747 - Exemple avec les Facet
  • Example#4748 - Connexion à un serveur SSL
  • Example#4749 - Exemple avec SolrQuery
  • Example#4750 - Exemple "Solr Real Time Get (RTG)" avec SolrClient::getById
  • Example#4751 - SolrInputDocument::addChildDocument example
  • Example#4752 - SolrInputDocument::addChildDocuments example
  • Example#4753 - Exemple avec SolrDocument::toArray
  • Example#4754 - Exemple avec SolrObject::__construct
  • Example#4755 - Exemple avec SolrObject::offsetUnset
  • Example#4756 - Exemple avec SolrClient::addDocument example
  • Example#4757 - Exemple 2 avec SolrClient::addDocument
  • Example#4758 - Exemple avec SolrClient::addDocuments
  • Example#4759 - Exemple avec SolrClient::__construct
  • Example#4760 - Exemple avec SolrQuery::deleteByQuery
  • Example#4761 - SolrClient::getById example
  • Example#4762 - SolrClient::getByIds example
  • Example#4763 - Exemple avec SolrClient::ping
  • Example#4764 - Exemple avec SolrClient::query
  • Example#4765 - Exemple avec SolrClient::request
  • Example#4766 - Exemple avec SolrClient::setResponseWriter
  • Example#4767 - Exemple avec SolrParams::setParam
  • Example#4768 - Exemple avec SolrQuery::addFacetField
  • Example#4769 - Exemple avec SolrQuery::addFacetField
  • Example#4770 - Exemple avec SolrQuery::addFilterQuery
  • Example#4771 - SolrQuery::addGroupSortField example
  • Example#4772 - SolrQuery::collapse example
  • Example#4773 - SolrQuery::setExpand example
  • Example#4774 - SolrDisMaxQuery::addBigramPhraseField example
  • Example#4775 - SolrDisMaxQuery::addBoostQuery example
  • Example#4776 - SolrDisMaxQuery::addPhraseField example
  • Example#4777 - SolrDisMaxQuery::addQueryField example
  • Example#4778 - SolrDisMaxQuery::addTrigramPhraseField example
  • Example#4779 - SolrDisMaxQuery::addUserField example
  • Example#4780 - SolrDisMaxQuery::__construct example
  • Example#4781 - SolrDisMaxQuery::removeBigramPhraseField example
  • Example#4782 - SolrDisMaxQuery::removeBoostQuery example
  • Example#4783 - SolrDisMaxQuery::removePhraseField example
  • Example#4784 - SolrDisMaxQuery::removeQueryField example
  • Example#4785 - SolrDisMaxQuery::removeTrigramPhraseField example
  • Example#4786 - SolrDisMaxQuery::removeUserField example
  • Example#4787 - SolrDisMaxQuery::setBigramPhraseFields example
  • Example#4788 - SolrDisMaxQuery::setBigramPhraseSlop example
  • Example#4789 - SolrDisMaxQuery::setBoostFunction example
  • Example#4790 - SolrDisMaxQuery::setBoostQuery example
  • Example#4791 - SolrDisMaxQuery::setMinimumMatch example
  • Example#4792 - SolrDisMaxQuery::setPhraseFields example
  • Example#4793 - SolrDisMaxQuery::setPhraseSlop example
  • Example#4794 - SolrDisMaxQuery::setQueryAlt example
  • Example#4795 - SolrDisMaxQuery::setQueryPhraseSlop example
  • Example#4796 - SolrDisMaxQuery::setTieBreaker example
  • Example#4797 - SolrDisMaxQuery::setTrigramPhraseFields example
  • Example#4798 - SolrDisMaxQuery::setTrigramPhraseSlop example
  • Example#4799 - SolrDisMaxQuery::setUserFields example
  • Example#4800 - SolrDisMaxQuery::useDisMaxQueryParser example
  • Example#4801 - SolrDisMaxQuery::useEDisMaxQueryParser example
  • Example#4802 - SolrCollapseFunction::__construct example
  • Example#4803 - SolrCollapseFunction::setHint example
  • Example#4804 - SolrCollapseFunction::setMax example
  • Example#4805 - Désactiver l'analyse des fichiers PHP dans un dossier avec .htaccess
  • Example#4806 - Exemple avec apache_get_modules
  • Example#4807 - Exemple avec apache_get_version
  • Example#4808 - Exemple avec apache_getenv
  • Example#4809 - Exemple avec apache_lookup_uri
  • Example#4810 - Passage d'informations entre PHP et Perl
  • Example#4811 - Valeurs d'identification dans le fichier access.log
  • Example#4812 - Exemple avec apache_request_headers
  • Example#4813 - Exemple avec apache_response_headers
  • Example#4814 - Exemple avec apache_setenv
  • Example#4815 - Exemple avec getallheaders
  • Example#4816 - Enregistrer une variable avec $_SESSION.
  • Example#4817 - Retirer une variable de session avec la superglobale $_SESSION.
  • Example#4818 - Compter le nombre de passages d'un utilisateur sur une page
  • Example#4819 - Exemple
  • Example#4820 - Exemple avec session_cache_expire
  • Example#4821 - Exemple avec session_cache_limiter
  • Example#4822 - Exemple de session_create_id avec session_regenerate_id
  • Example#4823 - Destruction d'une session avec $_SESSION
  • Example#4824 - Exemple de session_gc pour les planificateurs de tâches comme cron
  • Example#4825 - Exemple de session_gc pour des scripts accessible par l'utilisateur
  • Example#4826 - Exemple avec session_name
  • Example#4827 - Exemple avec session_regenerate_id
  • Example#4828 - Eviter la perte de session par session_regenerate_id
  • Example#4829 - Gestionnaire de session personnalisé : voir le code complet dans la documentation sur l'interface SessionHandlerInterface.
  • Example#4830 - page1.php
  • Example#4831 - Récupération de la session : page2.php
  • Example#4832 - Remplacement de la durée de vie du cookie
  • Example#4833 - Lecture de la session et fermeture
  • Example#4834 - Utilisation de la classe SessionHandler pour ajouter un cryptage aux gestionnaires de sauvegarde interne de PHP.
  • Example#4835 - Exemple avec SessionHandlerInterface
  • Example#4836 - Tokenize comma separated integer list
  • Example#4837 - Tokenize assign statement
  • Example#4838 - Simple calculator
  • Example#4839 - Parse words out from a sentence
  • Example#4840 - Exemples de masques valides
  • Example#4841 - Exemples de masques invalides
  • Example#4842 - Usage de commentaire dans un masque PCRE
  • Example#4843 - Exemple de comparaison de preg_filter avec preg_replace
  • Example#4844 - Exemple avec preg_grep
  • Example#4845 - preg_last_error_msg example
  • Example#4846 - Exemple avec preg_last_error
  • Example#4847 - Extraction de tous les numéros de téléphone d'un texte
  • Example#4848 - Recherche les couples de balises HTML (gourmand)
  • Example#4849 - Utilisation d'un sous-masque nommé
  • Example#4850 - Trouve la chaîne "php"
  • Example#4851 - Trouve le mot "web"
  • Example#4852 - Lire un nom de domaine dans une URL
  • Example#4853 - Utilisation des sous-masques nommés
  • Example#4854 - Exemple avec preg_quote
  • Example#4855 - Mise en italique d'un mot dans un texte
  • Example#4856 - Exemple de preg_replace_callback_array
  • Example#4857 - preg_replace_callback et fonction anonyme
  • Example#4858 - Exemple avec preg_replace_callback
  • Example#4859 - Exemple avec preg_replace_callback en utilisant une structure récursive pour gérer du BB code
  • Example#4860 - Utilisation des références arrières avec des littéraux numériques
  • Example#4861 - Utilisation de tableaux indexé avec preg_replace
  • Example#4862 - Remplacement de plusieurs valeurs simultanément
  • Example#4863 - Suppression des espaces
  • Example#4864 - Utilisation du paramètre count
  • Example#4865 - Exemple avec preg_split : Éclatement d'une chaîne de recherche
  • Example#4866 - Scinder une chaîne en caractères
  • Example#4867 - Scinde une chaîne et capture les positions
  • Example#4868 - Exemple avec addcslashes
  • Example#4869 - Exemple avec addslashes
  • Example#4870 - Exemple avec bin2hex
  • Example#4871 - Exemple avec chr
  • Example#4872 - Comportement de débordement
  • Example#4873 - Construite une chaîne UTF-8 à partir d'octet individuel
  • Example#4874 - Exemple avec chunk_split
  • Example#4875 - Exemple avec convert_uudecode
  • Example#4876 - Exemple avec convert_uuencode
  • Example#4877 - Exemple avec count_chars
  • Example#4878 - Afficher une somme de contrôle CRC32
  • Example#4879 - Exemple avec crypt
  • Example#4880 - Exemple avec echo
  • Example#4881 -
  • Example#4882 - Exemple avec explode
  • Example#4883 - Exemple de valeurs retournées par la fonction explode
  • Example#4884 - Exemple avec explode et le paramètre limit
  • Example#4885 - fprintf : Entiers avec zéros initiaux
  • Example#4886 - fprintf : Format monétaire
  • Example#4887 - Exemple avec la table de traduction des caractères en entités HTML
  • Example#4888 - Exemple avec hex2bin
  • Example#4889 - Décoder des entités HTML
  • Example#4890 - Exemple avec htmlentities
  • Example#4891 - Utilisation de ENT_IGNORE
  • Example#4892 - Exemple avec htmlspecialchars_decode
  • Example#4893 - Exemple avec htmlspecialchars
  • Example#4894 - Exemple avec implode
  • Example#4895 - Exemple avec lcfirst
  • Example#4896 - Exemple avec levenshtein
  • Example#4897 - Exemple avec localeconv
  • Example#4898 - Exemple avec ltrim
  • Example#4899 - Exemple d'utilisation de md5_file
  • Example#4900 - Exemple avec md5
  • Example#4901 - Exemple avec metaphone
  • Example#4902 - Utilisation du paramètre max_phonemes
  • Example#4903 - Utilisant le paramètre de max_phonemes
  • Example#4904 - Exemple avec money_format
  • Example#4905 - Exemple avec nl_langinfo
  • Example#4906 - Exemple avec nl2br
  • Example#4907 - Génération de code HTML valide avec le paramètre use_xhtml
  • Example#4908 - Divers séparateurs de nouvelles lignes
  • Example#4909 - Exemple avec number_format
  • Example#4910 - Exemple avec ord
  • Example#4911 - Examiner les octets individuels d'une chaîne UTF-8
  • Example#4912 - Exemple avec parse_str
  • Example#4913 - Déformation des nom par parse_str
  • Example#4914 - Exemple avec print
  • Example#4915 -
  • Example#4916 -
  • Example#4917 - printf : divers exemples
  • Example#4918 - printf : spécificateurs chaînes de caractères
  • Example#4919 - Exemple avec quoted_printable_decode
  • Example#4920 - Exemple avec quoted_printable_encode
  • Example#4921 - Exemple avec quotemeta
  • Example#4922 - Exemple avec rtrim
  • Example#4923 - Exemple avec setlocale
  • Example#4924 - Exemple avec setlocale sous Windows
  • Example#4925 - Exemple avec sha1_file
  • Example#4926 - Exemple avec sha1
  • Example#4927 - Exemple de similar_text en inversant les arguments
  • Example#4928 - Exemples Soundex
  • Example#4929 - Échange d'arguments
  • Example#4930 - Spécification du caractère de remplissage
  • Example#4931 - Spécificateur de position avec d'autres spécificateurs
  • Example#4932 - sprintf : entier sans espace
  • Example#4933 - sprintf : formatage de devises
  • Example#4934 - sprintf : notation scientifique
  • Example#4935 - Exemple avec sscanf
  • Example#4936 - sscanf - utilisation des paramètres optionnels
  • Example#4937 - Avec une chaîne vide ''
  • Example#4938 - Démonstration de la sensibilité à la casse
  • Example#4939 - Exemple basique de la fonction str_decrement
  • Example#4940 - Exemple de la fonction str_decrement avec une retenue
  • Example#4941 - Avec une chaîne vide ''
  • Example#4942 - Démonstration de la sensibilité à la casse
  • Example#4943 - Exemple avec str_getcsv
  • Example#4944 - Exemple de str_getcsv avec une chaîne vide
  • Example#4945 - Exemple basique de la fonction str_increment
  • Example#4946 - Exemple de str_increment avec une retenue
  • Example#4947 - Exemple avec str_ireplace
  • Example#4948 - Exemple avec str_pad
  • Example#4949 - Exemple avec str_repeat
  • Example#4950 - Exemple 1 avec str_replace
  • Example#4951 - Exemple 2 avec str_replace
  • Example#4952 - Exemple avec str_rot13
  • Example#4953 - Exemple avec str_shuffle
  • Example#4954 - Exemple avec str_split
  • Example#4955 - Avec une chaîne vide ''
  • Example#4956 - Démonstration de la sensibilité à la casse
  • Example#4957 - Exemple avec str_word_count
  • Example#4958 - Exemple avec strcasecmp
  • Example#4959 - Exemple d'utilisation de strcmp
  • Example#4960 - Exemple avec strcspn
  • Example#4961 - Exemple avec strip_tags
  • Example#4962 - Exemple avec stripcslashes
  • Example#4963 - Exemple avec stripos
  • Example#4964 - Exemple avec stripslashes
  • Example#4965 - Utilisation de stripslashes sur un tableau
  • Example#4966 - Exemple avec stristr
  • Example#4967 - Teste si une chaîne de caractères est trouvée ou pas
  • Example#4968 - Utilisation d'une "chaîne de caractères" en chiffre
  • Example#4969 - Exemple avec strlen
  • Example#4970 - Exemple avec strnatcasecmp
  • Example#4971 - Exemple avec strncasecmp
  • Example#4972 - Exemple avec strncmp
  • Example#4973 - Exemple avec strpbrk
  • Example#4974 - Avec ===
  • Example#4975 - Avec !==
  • Example#4976 - Utiliser un offset
  • Example#4977 - Exemple avec strrchr
  • Example#4978 - Inverser une chaîne avec strrev
  • Example#4979 - Exemple avec strripos
  • Example#4980 - Vérifie si une occurrence est trouvée dans une chaîne
  • Example#4981 - Recherche avec des positions
  • Example#4982 - Exemple avec strspn
  • Example#4983 - Exemple avec strstr
  • Example#4984 - Exemple avec strtok
  • Example#4985 - Comportement de strtok sur une partie vide trouvée
  • Example#4986 - La différence entre strtok et explode
  • Example#4987 - Exemple avec strtolower
  • Example#4988 - Exemple avec strtoupper
  • Example#4989 - Exemple avec strtr
  • Example#4990 - Exemple avec strtr et 2 arguments
  • Example#4991 - Comparaison de comportement de strtr
  • Example#4992 - Exemple avec substr_compare
  • Example#4993 - Exemple avec substr_count
  • Example#4994 - Exemple avec substr_replace
  • Example#4995 - Utilisation de substr_replace pour remplacer plusieurs chaînes en une seule fois
  • Example#4996 - Exemple de offset négatif
  • Example#4997 - Utilisation d'une valeur négative pour length
  • Example#4998 - Exemple avec substr
  • Example#4999 - Comportement du cast avec substr
  • Example#5000 - Intervalle de Caractères Invalide
  • Example#5001 - Exemple avec trim
  • Example#5002 - Suppression de caractères dans un tableau avec trim
  • Example#5003 - Exemple avec ucfirst
  • Example#5004 - Exemple avec ucwords
  • Example#5005 - Exemple avec ucwords et un séparation personnalisé
  • Example#5006 - Exemple de ucwords des séparateurs supplémentaires
  • Example#5007 - Exemple d'utilisation
  • Example#5008 - Exemple d'utilisation
  • Example#5009 - vfprintf : zéro comme caractères d'espacements
  • Example#5010 - Exemple avec vprintf : entiers complétés avec des zéros
  • Example#5011 - Exemple avec vsprintf : entiers avec zéro initiaux
  • Example#5012 - Exemple avec wordwrap
  • Example#5013 - Exemple avec wordwrap
  • Example#5014 - Exemple avec wordwrap
  • Example#5015 - Exemple avec array_change_key_case
  • Example#5016 - Exemple avec array_chunk
  • Example#5017 - Récupère la colonne des prénoms
  • Example#5018 - Récupère la colonne des noms, indexé par la colonne "id"
  • Example#5019 - Récupère la colonne des username depuis la propriété publique "username" d'un objet
  • Example#5020 - Récupère la colonne nom depuis la propriété privée "name" d'un objet en utilisant la méthode magique __get.
  • Example#5021 - Exemple avec array_combine
  • Example#5022 - Exemple avec array_count_values
  • Example#5023 - Exemple avec array_diff_assoc
  • Example#5024 - Exemple avec array_diff_assoc
  • Example#5025 - Exemple avec array_diff_key
  • Example#5026 - Exemple avec array_diff_uassoc
  • Example#5027 - Exemple avec array_diff_ukey
  • Example#5028 - Exemple avec array_diff
  • Example#5029 - Exemple avec la fonction array_diff avec des types qui ne correspondent pas
  • Example#5030 - Exemple avec array_fill_keys
  • Example#5031 - Exemple avec array_fill
  • Example#5032 - Exemple de array_fill avec un indice de départ négatif
  • Example#5033 - Exemple avec array_filter
  • Example#5034 - Exemple avec array_filter callback
  • Example#5035 - Exemple avec array_filter et mode
  • Example#5036 - Exemple avec array_flip
  • Example#5037 - Exemple avec array_flip : collision
  • Example#5038 - Exemple avec array_intersect_assoc
  • Example#5039 - Exemple avec array_intersect_key
  • Example#5040 - Exemple avec array_intersect_uassoc
  • Example#5041 - Exemple avec array_intersect_ukey
  • Example#5042 - Exemple avec array_intersect
  • Example#5043 - Exemple de array_is_list
  • Example#5044 - Exemple avec array_key_exists
  • Example#5045 - array_key_exists et isset
  • Example#5046 - Usage simple de array_key_first
  • Example#5047 - Exemple avec array_keys
  • Example#5048 - Exemple avec array_map
  • Example#5049 - array_map utilisant une fonction quelconque
  • Example#5050 - array_map : utilisation de plusieurs tableaux
  • Example#5051 - Exécution d'une opération zip de tableaux
  • Example#5052 - null callback avec seulement array
  • Example#5053 - array_map - avec des clés sous la forme de chaîne de caractères
  • Example#5054 - array_map - tableaux associatifs
  • Example#5055 - Exemple avec array_merge_recursive
  • Example#5056 - Exemple avec array_merge
  • Example#5057 - Exemple simple avec array_merge
  • Example#5058 - Exemple avec array_merge avec des types non-tableaux
  • Example#5059 - Trier plusieurs tableaux
  • Example#5060 - Trier un tableau multidimensionnel
  • Example#5061 - Classer les résultats d'une base de données
  • Example#5062 - Tri non sensible à la casse
  • Example#5063 - Exemple avec array_pad
  • Example#5064 - Exemple avec array_pop
  • Example#5065 - Exemple avec array_product
  • Example#5066 - Exemple avec array_push
  • Example#5067 - Exemple avec array_rand
  • Example#5068 - Exemple avec array_reduce
  • Example#5069 - Exemple avec array_replace_recursive
  • Example#5070 - Exemple avec array_replace_recursive et la récursivité
  • Example#5071 - Exemple avec array_replace
  • Example#5072 - Exemple avec array_reverse
  • Example#5073 - Exemple avec array_search
  • Example#5074 - Exemple avec array_shift
  • Example#5075 - Exemple avec array_slice
  • Example#5076 - array_slice et basé sur un tableau
  • Example#5077 - array_slice et tableau avec des clés mixtes
  • Example#5078 - Exemples avec array_splice
  • Example#5079 - Déclaration équivalentes à des exemples de array_splice divers
  • Example#5080 - Exemple avec array_sum
  • Example#5081 - Exemple avec array_udiff_assoc
  • Example#5082 - Exemple avec array_udiff_uassoc
  • Example#5083 - Exemple avec array_udiff en utilisant les objets stdClass
  • Example#5084 - Exemple avec array_udiff en utilisant des objets DateTime
  • Example#5085 - Exemple avec array_uintersect_assoc
  • Example#5086 - Exemple avec array_uintersect_uassoc
  • Example#5087 - Exemple avec array_uintersect
  • Example#5088 - Exemple avec array_unique
  • Example#5089 - Exemple avec array_unique et les types
  • Example#5090 - Exemple avec array_unshift
  • Example#5091 - Utilisation avec des tableaux associatifs
  • Example#5092 - Exemple avec array_values
  • Example#5093 - Exemple avec array_walk_recursive
  • Example#5094 - Exemple avec array_walk
  • Example#5095 - Exemple de array_walk avec l'utilisation d'une fonction anonyme
  • Example#5096 - Exemple avec array
  • Example#5097 - Index automatique avec array
  • Example#5098 - Index commençant à 1 avec array
  • Example#5099 - Accéder à un tableau dans des doubles guillemets
  • Example#5100 - Exemple avec arsort
  • Example#5101 - Exemple avec asort
  • Example#5102 - Exemple avec compact
  • Example#5103 - Exemple avec count
  • Example#5104 - Exemple de count avec un argument non Countable|array (contre-exemple - ne pas faire ceci)
  • Example#5105 - Exemple de récursivité avec count
  • Example#5106 - Objet Countable
  • Example#5107 - Exemple d'utilisation de current
  • Example#5108 - Exemple avec each
  • Example#5109 - Passer en revue un tableau avec each
  • Example#5110 - Exemple avec end
  • Example#5111 - Exemple avec extract
  • Example#5112 - Exemple avec in_array
  • Example#5113 - Exemple avec in_array et le mode strict
  • Example#5114 - Exemple avec in_array et un tableau en paramètre
  • Example#5115 - Exemple avec key
  • Example#5116 - Exemple avec krsort
  • Example#5117 - Exemple avec ksort
  • Example#5118 - ksort avec des clés int
  • Example#5119 - Exemple avec list
  • Example#5120 - Exemple d'utilisation de list
  • Example#5121 - Utilisation d'un sous-list
  • Example#5122 - list et l'ordre de définition des index
  • Example#5123 - list avec des clés
  • Example#5124 - Exemple avec natcasesort
  • Example#5125 - Exemple d'utilisation de base avec natsort
  • Example#5126 - Exemples montrant les pièges de natsort
  • Example#5127 - Exemple avec next
  • Example#5128 - Exemple avec prev
  • Example#5129 - Exemple avec range
  • Example#5130 - Exemple avec reset
  • Example#5131 - Exemple avec rsort
  • Example#5132 - Exemple avec shuffle
  • Example#5133 - Exemple avec sort
  • Example#5134 - Exemple avec sort en utilisant l'ordre naturel sans tenir compte de la casse
  • Example#5135 - Exemple avec uasort
  • Example#5136 - Exemple avec uksort
  • Example#5137 - Exemple avec usort
  • Example#5138 - Tri avec usort sur un tableau multidimensionnel
  • Example#5139 - Tri avec usort sur un objet
  • Example#5140 - Exemple avec usort en utilisant une closure pour trier un tableau multidimensionnel
  • Example#5141 - Exemple d'utilisation de l'opérateur combiné avec usort.
  • Example#5142 - Définitions des Classes
  • Example#5143 - test_script.php
  • Example#5144 - Exemple avec class_alias
  • Example#5145 - Exemple avec class_exists
  • Example#5146 - Exemple avec le paramètre autoload
  • Example#5147 - Exemple de enum_exists
  • Example#5148 - Exemple avec get_called_class
  • Example#5149 - Exemple avec get_class_methods
  • Example#5150 - Exemple avec get_class_vars
  • Example#5151 - Exemple avec get_class_vars et les contextes
  • Example#5152 - Exemple avec get_class
  • Example#5153 - Utilisation de get_class dans une superclasse
  • Example#5154 - Utilisation get_class avec des namespace de classe
  • Example#5155 - Exemple avec get_declared_classes
  • Example#5156 - Exemple avec get_declared_interfaces
  • Example#5157 - Exemple de get_mangled_object_vars
  • Example#5158 - Exemple avec get_object_vars
  • Example#5159 - Exemple avec get_parent_class
  • Example#5160 - Exemple avec interface_exists
  • Example#5161 - Exemple avec is_a
  • Example#5162 - Utilisation de l'opérateur instanceof
  • Example#5163 - Exemple avec is_subclass_of
  • Example#5164 - Exemple avec is_subclass_of en utilisant une interface
  • Example#5165 - Exemple avec method_exists
  • Example#5166 - Exemple avec method_exists en appel statique
  • Example#5167 - Exemple avec property_exists
  • Example#5168 - Exemple avec ctype_alnum (en utilisant les locales par défaut)
  • Example#5169 - Exemple avec ctype_alpha (en utilisant les locales courantes)
  • Example#5170 - Exemple avec ctype_cntrl
  • Example#5171 - Exemple avec ctype_digit
  • Example#5172 - Exemple avec ctype_digit pour comparer des chaînes et des nombres
  • Example#5173 - Exemple avec ctype_graph
  • Example#5174 - Exemple avec ctype_lower (en utilisant les locales courantes)
  • Example#5175 - Exemple avec ctype_print
  • Example#5176 - Exemple avec ctype_punct
  • Example#5177 - Exemple avec ctype_space
  • Example#5178 - Exemple avec ctype_upper (en utilisant la locale courante)
  • Example#5179 - Exemple avec ctype_xdigit
  • Example#5180 - Configurer le filtre par défaut pour qu'il agisse comme htmlspecialchars
  • Example#5181 - Configurer le filtre par défaut pour agir comme htmlspecialchars
  • Example#5182 - Validation d'adresses email avec filter_var
  • Example#5183 - Validation d'adresses IP avec filter_var
  • Example#5184 - Passage d'options à la fonction filter_var
  • Example#5185 - Nettoyage et validation d'adresses email
  • Example#5186 - Configurer le filtre par défaut
  • Example#5187 - Exemple avec filter_input_array
  • Example#5188 - Exemple avec filter_input
  • Example#5189 - Exemple avec filter_list
  • Example#5190 - Exemple avec filter_var_array
  • Example#5191 - Exemple avec filter_var
  • Example#5192 - Exemple de filtrage d'un tableau
  • Example#5193 - Exemple avec call_user_func_array
  • Example#5194 - Exemple avec call_user_func_array en utilisant un espace de nom
  • Example#5195 - Utilisation d'une fonction lambda
  • Example#5196 - En passant une valeur par référence
  • Example#5197 - call_user_func_array en utilisant des arguments nommés
  • Example#5198 - Exemple avec call_user_func par référence
  • Example#5199 - Exemple avec call_user_func
  • Example#5200 - Exemple avec call_user_func en utilisant un espace de noms
  • Example#5201 - Utilisation d'une méthode de classe avec call_user_func
  • Example#5202 - Utilisation d'une fonction lambda avec call_user_func
  • Example#5203 - Création d'une fonction anonyme avec create_function
  • Example#5204 - Traitement générique par fonction avec create_function
  • Example#5205 - Utilisation de fonctions anonymes comme fonction de rappel
  • Example#5206 - Exemple avec forward_static_call_array
  • Example#5207 - Exemple avec forward_static_call
  • Example#5208 - Exemple avec func_get_arg
  • Example#5209 - Exemple func_get_arg avec des arguments par référence et par valeur
  • Example#5210 - Exemple avec func_get_args
  • Example#5211 - Exemple func_get_args avec des arguments par référence et par valeur
  • Example#5212 - Exemple avec func_num_args
  • Example#5213 - Exemple avec function_exists
  • Example#5214 - Exemple avec get_defined_functions
  • Example#5215 - Exemple avec register_shutdown_function
  • Example#5216 - Exemple avec register_tick_function
  • Example#5217 - Quickhash Example
  • Example#5218 - Quickhash ArrayAccess Example
  • Example#5219 - Quickhash Iterator Example
  • Example#5220 - Quickhash String Values Example
  • Example#5221 - QuickHashIntSet::add example
  • Example#5222 - QuickHashIntSet::__construct example
  • Example#5223 - QuickHashIntSet::delete example
  • Example#5224 - QuickHashIntSet::exists example
  • Example#5225 - QuickHashIntSet::getSize example
  • Example#5226 - QuickHashIntSet::loadFromFile example
  • Example#5227 - QuickHashIntSet::loadFromString example
  • Example#5228 - QuickHashIntSet::saveToFile example
  • Example#5229 - QuickHashIntSet::saveToString example
  • Example#5230 - QuickHashIntHash::add example
  • Example#5231 - QuickHashIntHash::__construct example
  • Example#5232 - QuickHashIntHash::delete example
  • Example#5233 - QuickHashIntHash::exists example
  • Example#5234 - QuickHashIntHash::get example
  • Example#5235 - QuickHashIntHash::getSize example
  • Example#5236 - QuickHash IntHash file format
  • Example#5237 - QuickHash IntHash file format
  • Example#5238 - QuickHashIntHash::loadFromFile example
  • Example#5239 - QuickHashIntHash::loadFromString example
  • Example#5240 - QuickHashIntHash::saveToFile example
  • Example#5241 - QuickHashIntHash::saveToString example
  • Example#5242 - QuickHashIntHash::set example
  • Example#5243 - QuickHashIntHash::update example
  • Example#5244 - QuickHashStringIntHash::add example
  • Example#5245 - QuickHashStringIntHash::__construct example
  • Example#5246 - QuickHashStringIntHash::delete example
  • Example#5247 - QuickHashStringIntHash::get example
  • Example#5248 - QuickHashStringIntHash::getSize example
  • Example#5249 - QuickHash StringIntHash file format
  • Example#5250 - QuickHash IntHash file format
  • Example#5251 - QuickHashStringIntHash::loadFromFile example
  • Example#5252 - QuickHashStringIntHash::loadFromString example
  • Example#5253 - QuickHashStringIntHash::saveToFile example
  • Example#5254 - QuickHashStringIntHash::saveToString example
  • Example#5255 - QuickHashStringIntHash::set example
  • Example#5256 - QuickHashStringIntHash::update example
  • Example#5257 - QuickHashIntStringHash::add example
  • Example#5258 - QuickHashIntStringHash::__construct example
  • Example#5259 - QuickHashIntStringHash::delete example
  • Example#5260 - QuickHashIntStringHash::get example
  • Example#5261 - QuickHashIntStringHash::getSize example
  • Example#5262 - QuickHash IntString file format
  • Example#5263 - QuickHash IntString file format
  • Example#5264 - QuickHashIntStringHash::loadFromFile example
  • Example#5265 - QuickHashIntStringHash::loadFromString example
  • Example#5266 - QuickHashIntStringHash::saveToFile example
  • Example#5267 - QuickHashIntStringHash::saveToString example
  • Example#5268 - QuickHashIntStringHash::set example
  • Example#5269 - QuickHashIntStringHash::update example
  • Example#5270 - Exemple avec Reflection depuis un Shell (un Terminal)
  • Example#5271 - Étendre les classes internes
  • Example#5272 - Exemple Reflection::getModifierNames
  • Example#5273 - Utilisation simple de ReflectionClass
  • Example#5274 - Utilisation basique de ReflectionClass::export
  • Example#5275 - Utilisation basique de ReflectionClass::getAttributes
  • Example#5276 - Filtrer les résultats par un nom de classe
  • Example#5277 - Filtrer les résultats par nom de classe, avec héritage
  • Example#5278 - Utilisation de ReflectionClass::getConstant
  • Example#5279 - Utilisation simple de ReflectionClass::getConstructor
  • Example#5280 - Exemple avec ReflectionClass::getDefaultProperties
  • Example#5281 - Exemple avec ReflectionClass::getDocComment
  • Example#5282 - Exemple avec ReflectionClass::getEndLine
  • Example#5283 - Utilisation simple de ReflectionClass::getExtension
  • Example#5284 - Utilisation simple de ReflectionClass::getExtensionName
  • Example#5285 - Exemple avec ReflectionClass::getInterfaceNames
  • Example#5286 - >Exemple avec ReflectionClass::getInterfaces
  • Example#5287 - Utilisation simple de ReflectionClass::getMethod
  • Example#5288 - Utilisation simple de ReflectionClass::getMethods
  • Example#5289 - Filtrage des résultats depuis ReflectionClass::getMethods
  • Example#5290 - Exemple avec ReflectionClass::getName
  • Example#5291 - Exemple avec ReflectionClass::getNamespaceName
  • Example#5292 - Exemple avec ReflectionClass::getProperties
  • Example#5293 - Exemple avec ReflectionClass::getProperty
  • Example#5294 - Exemple basique de ReflectionClass::getReflectionConstants
  • Example#5295 - Exemple avec ReflectionClass::getShortName
  • Example#5296 - Exemple avec ReflectionClass::getStaticPropertyValue
  • Example#5297 - Exemple avec ReflectionClass::hasConstant
  • Example#5298 - Exemple avec ReflectionClass::hasMethod
  • Example#5299 - Exemple avec ReflectionClass::hasProperty
  • Example#5300 - Exemple avec ReflectionClass::inNamespace
  • Example#5301 - Exemple avec ReflectionClass::isAbstract
  • Example#5302 - Exemple avec ReflectionClass::isAnonymous
  • Example#5303 - Utilisation basique de ReflectionClass::isCloneable
  • Example#5304 - Exemple avec ReflectionClass::isFinal
  • Example#5305 - Exemple avec ReflectionClass::isInstance
  • Example#5306 - Exemple avec ReflectionClass::isInstantiable
  • Example#5307 - Exemple avec ReflectionClass::isInterface
  • Example#5308 - Exemple avec ReflectionClass::isInternal
  • Example#5309 - Utilisation simple de ReflectionClass::isIterable
  • Example#5310 - Exemple avec ReflectionClass::isReadOnly
  • Example#5311 - Utilisation basique de ReflectionClass::newInstanceArgs
  • Example#5312 - Exemple pour ReflectionClass::__toString
  • Example#5313 - Basic usage
  • Example#5314 - Filtering results by class name
  • Example#5315 - Filtering results by class name, with inheritance
  • Example#5316 - ReflectionClassConstant::isEnumCase example
  • Example#5317 - ReflectionEnum::getBackingType example
  • Example#5318 - ReflectionEnum::getCase example
  • Example#5319 - ReflectionEnum::getCases example
  • Example#5320 - ReflectionEnum::hasCase example
  • Example#5321 - ReflectionEnum::isBacked example
  • Example#5322 - ReflectionEnum::getValue example
  • Example#5323 - ReflectionEnum::getBackingValue example
  • Example#5324 - Exemple avec ReflectionExtension
  • Example#5325 - Exemple avec ReflectionExtension::getClasses
  • Example#5326 - Exemple avec ReflectionExtension::getClassNames
  • Example#5327 - Exemple avec ReflectionExtension::getConstants
  • Example#5328 - Exemple avec ReflectionExtension::getDependencies
  • Example#5329 - Exemple avec ReflectionExtension::getFunctions
  • Example#5330 - Exemple avec ReflectionExtension::getINIEntries
  • Example#5331 - Exemple avec ReflectionExtension::getName
  • Example#5332 - Exemple avec ReflectionExtension::getVersion
  • Example#5333 - Exemple avec ReflectionExtension::info
  • Example#5334 - Exemple avec ReflectionFunction::__construct
  • Example#5335 - Exemple avec ReflectionFunction::invoke
  • Example#5336 - Exemple avec ReflectionFunction::invokeArgs
  • Example#5337 - Exemple pour ReflectionFunction::invokeArgs avec des références
  • Example#5338 - ReflectionFunction::isAnonymous example
  • Example#5339 - Exemple pour ReflectionFunction::__toString
  • Example#5340 - Basic usage with a class method
  • Example#5341 - Basic usage with a function
  • Example#5342 - Filtering results by class name
  • Example#5343 - Filtering results by class name, with inheritance
  • Example#5344 - ReflectionFunctionAbstract::getClosureUsedVariables example
  • Example#5345 - Exemple avec ReflectionFunctionAbstract::getReturnType
  • Example#5346 - Utilisation sur les fonctions intégrés
  • Example#5347 - ReflectionFunctionAbstract::getTentativeReturnType example
  • Example#5348 - Exemple avec ReflectionFunctionAbstract::hasReturnType
  • Example#5349 - Utilisation sur les fonctions intégrés
  • Example#5350 - ReflectionFunctionAbstract::hasTentativeReturnType example
  • Example#5351 - Exemple de ReflectionFunctionAbstract::isClosure
  • Example#5352 - Exemple avec ReflectionFunctionAbstract::isDeprecated
  • Example#5353 - Exemple avec ReflectionMethod::__construct
  • Example#5354 - Exemple avec ReflectionMethod::createFromMethodName
  • Example#5355 - Exemple pour ReflectionMethod::getDeclaringClass
  • Example#5356 - Exemple avec ReflectionMethod::getModifiers
  • Example#5357 - Exemple avec ReflectionMethod::getPrototype
  • Example#5358 - Exemple avec ReflectionMethod::hasPrototype
  • Example#5359 - Exemple avec ReflectionMethod::invoke
  • Example#5360 - Exemple pour ReflectionMethod::invokeArgs
  • Example#5361 - Définition d'une classe simple
  • Example#5362 - ReflectionMethod::__toString example
  • Example#5363 - Exemple avec ReflectionNamedType::isBuiltin
  • Example#5364 - Exemple avec ReflectionParameter
  • Example#5365 - Basic usage
  • Example#5366 - Filtering results by class name
  • Example#5367 - Filtering results by class name, with inheritance
  • Example#5368 - Exemple d'utilisation de la classe ReflectionParameter
  • Example#5369 - Récupération de la classe qui a déclarée la méthode
  • Example#5370 - Récupérer les valeurs par défaut des paramètres de la fonction
  • Example#5371 - Récupérer les noms des constantes qui servent de valeurs par défaut aux paramètres d'une fonction
  • Example#5372 - Utilisation de ReflectionParameter::getType à partir de PHP 7.1.0
  • Example#5373 - Utilisation de ReflectionParameter::getType antérieur à PHP 7.1.0
  • Example#5374 - Utilisation de ReflectionParameter::getType en PHP 8.0.0 et ultérieur
  • Example#5375 - Exemple avec ReflectionParameter::hasType
  • Example#5376 - Équivalent PHP 8.0.0
  • Example#5377 - Équivalent PHP 8.0.0
  • Example#5378 - Exemple de ReflectionParameter::__toString
  • Example#5379 - Exemple avec ReflectionProperty::__construct
  • Example#5380 - Récupération d'une valeur depuis une propriété privée ou protégée en utilisant la classe ReflectionProperty
  • Example#5381 - Basic usage
  • Example#5382 - Filtering results by class name
  • Example#5383 - Filtering results by class name, with inheritance
  • Example#5384 - ReflectionProperty::getDefaultValue example
  • Example#5385 - ReflectionProperty::getDocComment example
  • Example#5386 - Multiple property declarations
  • Example#5387 - Exemple de ReflectionProperty::getType
  • Example#5388 - Exemple avec ReflectionProperty::getValue
  • Example#5389 - ReflectionProperty::hasDefaultValue example
  • Example#5390 - Exemple de ReflectionProperty::hasType
  • Example#5391 - Exemple avec ReflectionClass::isDefault
  • Example#5392 - Exemple de ReflectionProperty::isInitialized
  • Example#5393 - ReflectionProperty::isPromoted example
  • Example#5394 - Définition d'une classe simple
  • Example#5395 - Exemple avec ReflectionProperty::setValue
  • Example#5396 - Exemple avec ReflectionType::allowsNull
  • Example#5397 - Exemple avec ReflectionType::__toString
  • Example#5398 - ReflectionUnionType::getTypes example
  • Example#5399 - Exemple avec ReflectionGenerator::__construct
  • Example#5400 - Exemple avec ReflectionGenerator::getExecutingFile
  • Example#5401 - Exemple avec ReflectionGenerator::getExecutingGenerator
  • Example#5402 - Exemple avec ReflectionGenerator::getExecutingLine
  • Example#5403 - Exemple avec ReflectionGenerator::getFunction
  • Example#5404 - Exemple avec ReflectionGenerator::getThis
  • Example#5405 - Exemple avec ReflectionGenerator::getTrace
  • Example#5406 - ReflectionIntersectionType::getTypes example
  • Example#5407 - Basic ReflectionReference::getId usage
  • Example#5408 - Exemple avec boolval
  • Example#5409 - Exemple avec debug_zval_dump
  • Example#5410 -
  • Example#5411 - Une comparaison simple empty / isset.
  • Example#5412 - empty sur des positions dans une chaîne
  • Example#5413 - Exemple avec floatval
  • Example#5414 - Exemple avec floatval avec des caractères à gauche non numériques
  • Example#5415 - get_debug_type example
  • Example#5416 - Exemple avec get_defined_vars
  • Example#5417 - get_resource_id produit le même résultat qu'un cast int
  • Example#5418 - Exemple avec get_resource_type
  • Example#5419 - Exemple avec gettype
  • Example#5420 - Exemples avec intval
  • Example#5421 - Exemple avec is_array
  • Example#5422 - Exemple avec is_bool
  • Example#5423 - Exemple avec is_callable
  • Example#5424 - is_callable et les constructeurs
  • Example#5425 - Exemples avec is_countable
  • Example#5426 - Exemple avec is_float
  • Example#5427 - Exemple avec is_int
  • Example#5428 - Exemples avec is_iterable
  • Example#5429 - Exemple avec is_null
  • Example#5430 - Exemple avec is_numeric
  • Example#5431 - is_numeric avec des caractères d'espacement blanc
  • Example#5432 - Exemple avec is_object
  • Example#5433 - Exemple avec is_resource
  • Example#5434 - Exemple avec is_scalar
  • Example#5435 - Exemple avec is_string
  • Example#5436 - Exemple avec isset
  • Example#5437 - isset sur des positions dans une chaîne
  • Example#5438 - Exemple avec print_r
  • Example#5439 - Exemple avec le paramètre return
  • Example#5440 - Exemple avec serialize
  • Example#5441 - Exemple avec settype
  • Example#5442 - Exemple pour strval utilisant la méthode magique PHP __toString().
  • Example#5443 - Exemple avec unserialize
  • Example#5444 - Exemple avec la directive unserialize_callback_func
  • Example#5445 - Exemple avec unset
  • Example#5446 - Exemple avec un transtypage (unset)
  • Example#5447 - Exemple avec var_dump
  • Example#5448 - Exemple avec var_export
  • Example#5449 - Exporter stdClass (à partir de PHP 7.3.0)
  • Example#5450 - Exporter des classes
  • Example#5451 - Utilisation de __set_state
  • Example#5452 -
  • Example#5453 - Exemple avec OAuth::fetch
  • Example#5454 - Exemple avec OAuth::getAccessToken
  • Example#5455 - Exemple avec OAuth::getRequestToken
  • Example#5456 - Exemple avec OAuth::setRequestEngine
  • Example#5457 - Exemple avec OAuth::setRsaCertificate
  • Example#5458 - L'exemple OAuth::setToken
  • Example#5459 - Exemple avec OAuthProvider::__construct
  • Example#5460 - Exemple avec OAuthProvider::consumerHandler
  • Example#5461 - Exemple avec OAuthProvider::generateToken
  • Example#5462 - Exemple avec OAuthProvider::is2LeggedEndpoint
  • Example#5463 - Exemple avec OAuthProvider::timestampNonceHandler
  • Example#5464 - Exemple avec OAuthProvider::tokenHandler
  • Example#5465 - Exemple avec is_soap_fault
  • Example#5466 - Gestion des erreurs par exception avec SOAP
  • Example#5467 - Spécifier l'utilisation de TLS 1.3 uniquement
  • Example#5468 - Example SoapClient::__construct
  • Example#5469 - Utilisant la fonctionnalité SOAP_SINGLE_ELEMENT_ARRAYS
  • Example#5470 - Exemple avec SoapClient::__doRequest
  • Example#5471 - Exemple avec SoapClient::__getFunctions
  • Example#5472 - Exemple avec SoapClient::__getLastRequest
  • Example#5473 - SoapClient::__getLastRequestHeaders() example
  • Example#5474 - Exemple avec SoapClient::__getLastResponse
  • Example#5475 - Exemple avec SoapClient::__getLastResponseHeaders
  • Example#5476 - Exemple avec SoapClient::__getTypes
  • Example#5477 - Exemple avec SoapClient::__setLocation
  • Example#5478 - Exemple avec SoapClient::__setSoapHeaders
  • Example#5479 - Configuration d'en-têtes multiples pour SOAP
  • Example#5480 - Exemple avec SoapClient::__soapCall
  • Example#5481 - Exemple avec SoapServer::addFunction
  • Example#5482 - Exemples avec SoapServer::__construct
  • Example#5483 - Exemple avec SoapServer::getFunctions
  • Example#5484 - Exemple avec SoapServer::handle
  • Example#5485 - Exemple SoapServer::setPersistence
  • Example#5486 - Quelques exemples avec SoapFault
  • Example#5487 - Emission d'exceptions SoapFault
  • Example#5488 - Exemple avec SoapHeader::__construct
  • Example#5489 - Exemple avec SoapParam::__construct
  • Example#5490 - Exemple avec SoapVar::__construct
  • Example#5491 - Exemple de serveur Yar
  • Example#5492 - Accès au serveur depuis un navigateur (requête GET)
  • Example#5493 - Exemple de client Yar
  • Example#5494 - Exemple de client Yar concurrent
  • Example#5495 - Exemple avec Yar_Server::__construct
  • Example#5496 - Exemple avec Yar_Server::handle
  • Example#5497 - Exemple avec Yar_Client::__call
  • Example#5498 - Exemple avec Yar_Client::__construct
  • Example#5499 - Exemple avec Yar_Client::setOpt
  • Example#5500 - Exemple avec Yar_Concurrent_Client::call
  • Example#5501 - Exemple avec Yar_Concurrent_Client::loop
  • Example#5502 - Exemple avec Yar_Concurrent_Client::reset
  • Example#5503 - Exemple avec Yar_Server_Exception::getType
  • Example#5504 - Exemple avec Yar_Client_Exception::getType
  • Example#5505 - Exemple avec XMLRPC
  • Example#5506 - Exemple de type XML-RPC
  • Example#5507 - Exemple avec xmlrpc_set_type
  • Example#5508 - For Each en ASP
  • Example#5509 - Foreach en PHP
  • Example#5510 - Exemple com (1)
  • Example#5511 - Exemple com (2)
  • Example#5512 - Exemple dotnet
  • Example#5513 - Exemple variant
  • Example#5514 - Basic COMPersistHelper::saveToFile Usage
  • Example#5515 - Exemple de connexions d'événements COM
  • Example#5516 - Enregistre un script PHP pour exécuter en tant que service
  • Example#5517 - Efface un service
  • Example#5518 - Exécution d'un service
  • Example#5519 - Exemple avec win32_create_service
  • Example#5520 - Un exemple win32_create_service avec les dépendances
  • Example#5521 - Exemple de win32_create_service avec les options de récupération
  • Example#5522 - Exemple avec win32_delete_service
  • Example#5523 - Exemple avec win32_start_service_ctrl_dispatcher
  • Example#5524 - book.xml
  • Example#5525 - Création d'un nouvel objet DOMAttr
  • Example#5526 - Exemple avec DOMAttr::isId()
  • Example#5527 - Création d'un nouvel objet DOMCdataSection
  • Example#5528 - DOMCharacterData::after example
  • Example#5529 - DOMCharacterData::before example
  • Example#5530 - DOMCharacterData::remove example
  • Example#5531 - DOMCharacterData::replaceWith example
  • Example#5532 - Création d'un nouveau DOMComment
  • Example#5533 - DOMDocument::adoptNode example
  • Example#5534 - DOMDocument::append example
  • Example#5535 - Création d'un nouveau DOMDocument
  • Example#5536 - Création d'un nouvel élément et insertion en tant que racine
  • Example#5537 - Passer comme value du texte contenant & non échappé
  • Example#5538 - Création d'un nouvel élément et insertion en tant que racine
  • Example#5539 - Un exemple avec un espace de noms en préfixe
  • Example#5540 - Exemple avec DOMDocument::getElementById()
  • Example#5541 - Exemple de base
  • Example#5542 - Récupération de tous les éléments XInclude
  • Example#5543 - Exemple avec DOMDocument::importNode
  • Example#5544 - Création d'un Document
  • Example#5545 - Création d'un document
  • Example#5546 - Création d'un document
  • Example#5547 - Création d'un Document
  • Example#5548 - DOMDocument::prepend example
  • Example#5549 - Ajout d'un nouvelle méthode à DOMElement
  • Example#5550 - Récupération d'éléments sous la forme d'une classe personnalisée
  • Example#5551 - Récupération du propriétaire du document
  • Example#5552 - Les objets personalisé sont éphémère
  • Example#5553 - DOMDocument::replaceChildren example
  • Example#5554 - Sauvegarde d'un arbre DOM dans un fichier
  • Example#5555 - Sauvegarde d'un arbre HTML dans une chaîne de caractères
  • Example#5556 - Sauvegarde d'un arbre HTML dans un fichier
  • Example#5557 - Sauvegarde de l'arbre DOM dans une chaîne de caractères
  • Example#5558 - Exemple de validation DTD
  • Example#5559 - Exemple avec DOMDocument::xinclude()
  • Example#5560 - DOMDocumentFragment::append example
  • Example#5561 - Ajout de données XML à votre document
  • Example#5562 - DOMDocumentFragment::prepend example
  • Example#5563 - DOMDocumentFragment::replaceChildren example
  • Example#5564 - DOMElement::after example
  • Example#5565 - DOMElement::append example
  • Example#5566 - DOMElement::before example
  • Example#5567 - Création d'un nouveau DOMElement
  • Example#5568 - DOMElement::getAttributeNames example
  • Example#5569 - DOMElement::insertAdjacentElement example
  • Example#5570 - DOMElement::insertAdjacentText example
  • Example#5571 - DOMElement::prepend example
  • Example#5572 - DOMElement::remove example
  • Example#5573 - DOMElement::replaceChildren example
  • Example#5574 - DOMElement::replaceWith example
  • Example#5575 - Ajout d'un attribut
  • Example#5576 - DOMElement::toggleAttribute example
  • Example#5577 - Création d'un nouveau DOMEntityReference
  • Example#5578 - Création d'un document avec une DTD attachée
  • Example#5579 - Test votre implémentation DOM
  • Example#5580 - Ajout d'un fils
  • Example#5581 - Enfant imbriqué
  • Example#5582 - DOMNode::contains example
  • Example#5583 - Exemple avec DOMNode::getLineNo
  • Example#5584 - Exemple avec DOMNode::getNodePath
  • Example#5585 - DOMNode::getRootNode example
  • Example#5586 - DOMNode::isEqualNode example
  • Example#5587 - Effacement d'un fils
  • Example#5588 - Parcours de toutes les entrées de la table
  • Example#5589 - DOMParentNode::replaceChildren example
  • Example#5590 - Création d'un nouveau DOMProcessingInstruction
  • Example#5591 - Création d'un nouveau DOMText
  • Example#5592 - Récupération du nombre total de livres anglais
  • Example#5593 - Récupération de tous les livres anglais
  • Example#5594 - book.xml
  • Example#5595 - Exemple avec DOMXPath::registerPHPFunctions et php:functionString
  • Example#5596 - Exemple avec DOMXPath::registerPHPFunctions et php:function
  • Example#5597 - Importation d'un objet SimpleXML dans DOM avec dom_import_simplexml
  • Example#5598 - Exemple avec libxml_get_errors
  • Example#5599 - Exemple avec libxml_set_external_entity_loader
  • Example#5600 - Exemple avec libxml_set_streams_context
  • Example#5601 - Exemple avec libxml_use_internal_errors
  • Example#5602 - Fichier avec une chaîne XML qui sera inclus partout
  • Example#5603 - Lecture de <plot>
  • Example#5604 - Récupération de <line>
  • Example#5605 - Accéder à un élément non-unique avec SimpleXML
  • Example#5606 - Utilisation des attributs
  • Example#5607 - Comparaison des éléments et des attributs avec du texte
  • Example#5608 - Comparaison de 2 éléments
  • Example#5609 - Utilisation de XPath
  • Example#5610 - Attribuer des valeurs
  • Example#5611 - Ajout d'éléments et d'attributs
  • Example#5612 - Interopérabilité DOM
  • Example#5613 - Chargement de chaînes XML cassées
  • Example#5614 - Ajoute des attributs et enfants à un élément SimpleXML
  • Example#5615 - Ajoute des attributs et des enfants à un élément SimpleXML
  • Example#5616 - Obtenir du XML avec SimpleXML
  • Example#5617 - Utilisation de SimpleXMLElement::asXML avec les résultats de SimpleXMLElement::xpath
  • Example#5618 - Interprétation d'une chaîne XML
  • Example#5619 - Parcours d'un pseudo-tableau children()
  • Example#5620 - Utilisation des espaces de noms
  • Example#5621 - Crée un objet SimpleXMLElement
  • Example#5622 - Crée un objet SimpleXMLElement à partir d'un URL
  • Example#5623 - Comptage du nombre de fils
  • Example#5624 - Retourne l'élément courant
  • Example#5625 - Récupère les espaces de noms du document
  • Example#5626 - Travail avec plusieurs espaces de noms
  • Example#5627 - Récupère les noms des éléments XML
  • Example#5628 - Récupère les espaces de noms utilisés dans un document
  • Example#5629 - Lecture des sous-éléments de l'objet courant
  • Example#5630 - Vérifie si un élément a des sous-éléments
  • Example#5631 - Le nom de la balise XML courante
  • Example#5632 - Passe au prochain élément
  • Example#5633 - Fixe un préfixe d'espace de nom pour utiliser dans une requête XPath
  • Example#5634 - Retour au premier élément
  • Example#5635 - Récupérer le contenu chaine
  • Example#5636 - Vérifie si un élément est valide
  • Example#5637 - Xpath
  • Example#5638 - Import DOM
  • Example#5639 - Interprétation d'un document XML
  • Example#5640 - Convertir une chaîne XML
  • Example#5641 - Sérialisation d'une valeur simple avec WDDX
  • Example#5642 - Utilisation de paquets incrémentaux avec WDDX
  • Example#5643 - Exemple avec wddx_serialize_vars
  • Example#5644 - Afficher une structure XML
  • Example#5645 - Transtypage XML -> HTML
  • Example#5646 - Entité externe
  • Example#5647 - xmltest.xml
  • Example#5648 - xmltest2.xml
  • Example#5649 - Exemple avec xml_parse_into_struct
  • Example#5650 - moldb.xml - Petite base de données moléculaires
  • Example#5651 - parsemoldb.php : Analyse moldb.xml et crée un tableau d'objets moléculaires
  • Example#5652 - Analyse de gros documents XML par morceaux
  • Example#5653 - Exemple avec xml_set_object
  • Example#5654 - Validation XML
  • Example#5655 - Créer un document XML basique
  • Example#5656 - Travailler avec les espaces de noms XML
  • Example#5657 - Travailler avec l'API OO
  • Example#5658 - Écrire directement de l'XML
  • Example#5659 - XMLWriter::setIndent et divers contenus
  • Example#5660 - Utilisation Basique de XMLWriter::startAttribute
  • Example#5661 - Mélanger des Sous-éléments et Attributs
  • Example#5662 - Utilisation Basique de xmlwriter_write_cdata
  • Example#5663 - collection.xml
  • Example#5664 - collection.xsl
  • Example#5665 - fruits.xml
  • Example#5666 - fruits.xsl
  • Example#5667 - Collating and printing errors
  • Example#5668 - Exemple avec XSLTProcessor
  • Example#5669 - Test du support EXSLT
  • Example#5670 - Appel d'une fonction PHP depuis une feuille de style
  • Example#5671 - Modification du propriétaire avant la transformation
  • Example#5672 - Exemple d'utilisation du profilage
  • Example#5673 - Transformation en un document DOM
  • Example#5674 - Transformation en un fichier HTML
  • Example#5675 - Transformation en une chaîne
  • Example#5676 - Un élément de formulaire HTML caché
  • Example#5677 - Données éditables par l'utilisateur
  • Example#5678 - Dans une URL
  • Example#5679 - Génération de Javascript avec PHP
  • Example#5680 - Exemple de code PHP/FI
  • Example#5681 - Active la sortie d'erreur à l'écran pour dev.site.com
  • Example#5682 - Ajoute un script de sécurité pour les zones protégées
  • Example#5683 - include_path sous Unix
  • Example#5684 - include_path sous Windows
  • Example#5685 - include_path sous Unix en utilisant la variable d'environnement ${USER}
  • Example#5686 - string.rot13
  • Example#5687 - string.toupper
  • Example#5688 - string.tolower
  • Example#5689 - string.strip_tags
  • Example#5690 - convert.base64-encode & convert.base64-decode
  • Example#5691 - convert.quoted-printable-encode & convert.quoted-printable-decode
  • Example#5692 - convert.iconv.*
  • Example#5693 - zlib.deflate and zlib.inflate
  • Example#5694 - zlib.deflate simple
  • Example#5695 - bzip2.compress et bzip2.decompress
  • Example#5696 - Chiffrement / Déchiffrement avec Blowfish
  • Example#5697 - Chiffrer un fichier en utilisant AES-128 CBC avec SHA256 HMAC


Historique des modifications

Les modifications suivantes ont été apportées aux fonctions des extensions embarquées.

Version Fonction Description


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.